{"version":3,"file":"Base.cjs","sources":["../../../../../../packages/components/typography/src/Base.tsx"],"sourcesContent":["import type { CSSProperties, HTMLAttributes, VNodeTypes } from 'vue';\nimport type { BlockProps, CopyConfig, EditConfig, EllipsisConfig, Locale } from './interface';\nimport { CheckOutlined, CopyOutlined, EditOutlined } from '@ant-design/icons-vue';\nimport { useMergedState } from '@antdv/hooks';\nimport { devWarning, findDOMNode, isStyleSupport, omit, raf } from '@antdv/utils';\nimport { ResizeObserver, TransButton } from '@antdv/vue-components';\nimport {\n  computed,\n  defineComponent,\n  nextTick,\n  onBeforeUnmount,\n  onMounted,\n  reactive,\n  ref,\n  toRaw,\n  watch,\n  watchEffect,\n} from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport LocaleReceiver from '../../locale-provider/src/LocaleReceiver';\n\nimport Tooltip from '../../tooltip';\nimport copy from './copy';\nimport Editable from './Editable';\n\nimport { baseProps } from './props';\nimport Typography from './Typography';\nimport measure from './util';\n\nconst isLineClampSupport = isStyleSupport('webkitLineClamp');\nconst isTextOverflowSupport = isStyleSupport('textOverflow');\n\nconst ELLIPSIS_STR = '...';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'TypographyBase',\n  inheritAttrs: false,\n  props: baseProps(),\n  // emits: ['update:content'],\n  setup(props, { slots, attrs, emit }) {\n    const { prefixCls, direction } = useConfigInject('typography', props);\n\n    const state = reactive({\n      copied: false,\n      ellipsisText: '',\n      ellipsisContent: null,\n      isEllipsis: false,\n      expanded: false,\n      clientRendered: false,\n      // locale\n      expandStr: '',\n      copyStr: '',\n      copiedStr: '',\n      editStr: '',\n\n      copyId: undefined,\n      rafId: undefined,\n      prevProps: undefined,\n\n      originContent: '',\n    });\n\n    const contentRef = ref();\n    const editIcon = ref();\n    const ellipsis = computed((): EllipsisConfig => {\n      const ellipsis = props.ellipsis;\n      if (!ellipsis) return {};\n\n      return {\n        rows: 1,\n        expandable: false,\n        ...(typeof ellipsis === 'object' ? ellipsis : null),\n      };\n    });\n    onMounted(() => {\n      state.clientRendered = true;\n      syncEllipsis();\n    });\n\n    onBeforeUnmount(() => {\n      clearTimeout(state.copyId);\n      raf.cancel(state.rafId);\n    });\n\n    watch(\n      [() => ellipsis.value.rows, () => props.content],\n      () => {\n        nextTick(() => {\n          resizeOnNextFrame();\n        });\n      },\n      { flush: 'post', deep: true },\n    );\n\n    watchEffect(() => {\n      if (props.content === undefined) {\n        devWarning(\n          !props.editable,\n          'Typography',\n          'When `editable` is enabled, please use `content` instead of children',\n        );\n        devWarning(\n          !props.ellipsis,\n          'Typography',\n          'When `ellipsis` is enabled, please use `content` instead of children',\n        );\n      }\n    });\n\n    function getChildrenText(): string {\n      return (props.ellipsis || props.editable)\n        ? props.content\n        : findDOMNode(contentRef.value)?.innerText;\n    }\n\n    // =============== Expand ===============\n    function onExpandClick(e: MouseEvent) {\n      const { onExpand } = ellipsis.value;\n      state.expanded = true;\n      onExpand?.(e);\n    }\n    // ================ Edit ================\n    const editable = computed(() => {\n      const editable = props.editable;\n      if (!editable) return { editing: false };\n\n      return {\n        ...(typeof editable === 'object' ? editable : null),\n      };\n    });\n\n    function onEditClick(e: MouseEvent) {\n      e.preventDefault();\n      state.originContent = props.content;\n      triggerEdit(true);\n    }\n\n    function onEditChange(value: string) {\n      onContentChange(value);\n      triggerEdit(false);\n    }\n\n    function onContentChange(value: string) {\n      const { onChange } = editable.value;\n      if (value !== props.content) {\n        emit('update:content', value);\n        onChange?.(value);\n      }\n    }\n\n    function onEditCancel() {\n      editable.value.onCancel?.();\n      triggerEdit(false);\n    }\n\n    // ================ Copy ================\n    function onCopyClick(e: MouseEvent) {\n      e.preventDefault();\n      e.stopPropagation();\n      const { copyable } = props;\n\n      const copyConfig = {\n        ...(typeof copyable === 'object' ? copyable : null),\n      };\n\n      if (copyConfig.text === undefined)\n        copyConfig.text = getChildrenText();\n\n      copy(copyConfig.text || '');\n\n      state.copied = true;\n      nextTick(() => {\n        if (copyConfig.onCopy)\n          copyConfig.onCopy(e);\n\n        state.copyId = setTimeout(() => {\n          state.copied = false;\n        }, 3000);\n      });\n    }\n\n    const [editing, setEditing] = useMergedState(false, {\n      value: computed(() => {\n        return editable.value.editing;\n      }),\n    });\n\n    function triggerEdit(edit: boolean) {\n      const { onStart } = editable.value;\n      if (edit && onStart)\n        onStart();\n\n      setEditing(edit);\n    }\n    watch(\n      editing,\n      (val) => {\n        if (!val)\n          editIcon.value?.focus();\n      },\n      { flush: 'post' },\n    );\n\n    // ============== Ellipsis ==============\n    const canUseCSSEllipsis = computed(() => {\n      const { rows, expandable, suffix, onEllipsis, tooltip } = ellipsis.value;\n\n      if (suffix || tooltip) return false;\n\n      // Can't use css ellipsis since we need to provide the place for button\n      if (props.editable || props.copyable || expandable || onEllipsis)\n        return false;\n\n      if (rows === 1)\n        return isTextOverflowSupport;\n\n      return isLineClampSupport;\n    });\n\n    const syncEllipsis = () => {\n      const { ellipsisText, isEllipsis } = state;\n      const { rows, suffix, onEllipsis } = ellipsis.value;\n      if (\n        !rows\n        || rows < 0\n        || !findDOMNode(contentRef.value)\n        || state.expanded\n        || props.content === undefined\n      ) {\n        return;\n      }\n\n      // Do not measure if css already support ellipsis\n      if (canUseCSSEllipsis.value) return;\n\n      const {\n        content,\n        text,\n        ellipsis: ell,\n      } = measure(\n        findDOMNode(contentRef.value),\n        { rows, suffix },\n        props.content,\n        renderOperations(true),\n        ELLIPSIS_STR,\n      );\n\n      if (ellipsisText !== text || state.isEllipsis !== ell) {\n        state.ellipsisText = text;\n        state.ellipsisContent = content;\n        state.isEllipsis = ell;\n        if (isEllipsis !== ell && onEllipsis)\n          onEllipsis(ell);\n      }\n    };\n\n    function resizeOnNextFrame(sizeInfo?: { width: number; height: number }) {\n      if (sizeInfo) {\n        const { width, height } = sizeInfo;\n        if (!width || !height) return;\n      }\n      raf.cancel(state.rafId);\n      state.rafId = raf(() => {\n        // Do not bind `syncEllipsis`. It need for test usage on prototype\n        syncEllipsis();\n      });\n    }\n\n    function wrapperDecorations(\n      { mark, code, underline, delete: del, strong, keyboard }: BlockProps,\n      content,\n    ) {\n      let currentContent = content;\n\n      function wrap(needed: boolean, Tag: string) {\n        if (!needed) return;\n\n        currentContent = <Tag>{currentContent}</Tag>;\n      }\n\n      wrap(strong, 'strong');\n      wrap(underline, 'u');\n      wrap(del, 'del');\n      wrap(code, 'code');\n      wrap(mark, 'mark');\n      wrap(keyboard, 'kbd');\n\n      return currentContent;\n    }\n\n    function renderExpand(forceRender?: boolean) {\n      const { expandable, symbol } = ellipsis.value;\n\n      if (!expandable) return null;\n\n      // force render expand icon for measure usage or it will cause dead loop\n      if (!forceRender && (state.expanded || !state.isEllipsis)) return null;\n      const expandContent\n        = (slots.ellipsisSymbol ? slots.ellipsisSymbol() : symbol) || state.expandStr;\n\n      return (\n        <a\n          key=\"expand\"\n          class={`${prefixCls.value}-expand`}\n          onClick={onExpandClick}\n          aria-label={state.expandStr}\n        >\n          {expandContent}\n        </a>\n      );\n    }\n\n    function renderEdit() {\n      if (!props.editable) return;\n\n      const { tooltip, triggerType = ['icon'] } = props.editable as EditConfig;\n      const icon = slots.editableIcon ? slots.editableIcon() : <EditOutlined role=\"button\" />;\n      const title = slots.editableTooltip ? slots.editableTooltip() : state.editStr;\n      const ariaLabel = typeof title === 'string' ? title : '';\n\n      return triggerType.includes('icon')\n        ? (\n            <Tooltip key=\"edit\" title={tooltip === false ? '' : title}>\n              <TransButton\n                ref={editIcon}\n                class={`${prefixCls.value}-edit`}\n                onClick={onEditClick}\n                aria-label={ariaLabel}\n              >\n                {icon}\n              </TransButton>\n            </Tooltip>\n          )\n        : null;\n    }\n\n    function renderCopy() {\n      if (!props.copyable) return;\n\n      const { tooltip } = props.copyable as CopyConfig;\n      const defaultTitle = state.copied ? state.copiedStr : state.copyStr;\n      const title = slots.copyableTooltip\n        ? slots.copyableTooltip({ copied: state.copied })\n        : defaultTitle;\n      const ariaLabel = typeof title === 'string' ? title : '';\n      const defaultIcon = state.copied ? <CheckOutlined /> : <CopyOutlined />;\n      const icon = slots.copyableIcon\n        ? slots.copyableIcon({ copied: !!state.copied })\n        : defaultIcon;\n\n      return (\n        <Tooltip key=\"copy\" title={tooltip === false ? '' : title}>\n          <TransButton\n            class={[\n              `${prefixCls.value}-copy`,\n              { [`${prefixCls.value}-copy-success`]: state.copied },\n            ]}\n            onClick={onCopyClick}\n            aria-label={ariaLabel}\n          >\n            {icon}\n          </TransButton>\n        </Tooltip>\n      );\n    }\n\n    function renderEditInput() {\n      const { class: className, style } = attrs;\n      const { maxlength, autoSize, onEnd } = editable.value;\n\n      return (\n        <Editable\n          class={className}\n          style={style}\n          prefixCls={prefixCls.value}\n          value={props.content}\n          originContent={state.originContent}\n          maxlength={maxlength}\n          autoSize={autoSize}\n          onSave={onEditChange}\n          onChange={onContentChange}\n          onCancel={onEditCancel}\n          onEnd={onEnd}\n          direction={direction.value}\n          component={props.component}\n          v-slots={{ enterIcon: slots.editableEnterIcon }}\n        />\n      );\n    }\n\n    function renderOperations(forceRenderExpanded?: boolean) {\n      return [renderExpand(forceRenderExpanded), renderEdit(), renderCopy()].filter(node => node);\n    }\n\n    return () => {\n      const { triggerType = ['icon'] } = editable.value;\n      const children\n        = (props.ellipsis || props.editable)\n          ? props.content !== undefined\n            ? props.content\n            : slots.default?.()\n          : slots.default\n            ? slots.default()\n            : props.content;\n\n      if (editing.value)\n        return renderEditInput();\n\n      return (\n        <LocaleReceiver\n          componentName=\"Text\"\n          children={(locale: Locale) => {\n            const {\n              type,\n              disabled,\n              content,\n              class: className,\n              style,\n              ...restProps\n            } = {\n              ...props,\n              ...(attrs as HTMLAttributes),\n            };\n            const { rows, suffix, tooltip } = ellipsis.value;\n\n            const { edit, copy: copyStr, copied, expand } = locale;\n\n            state.editStr = edit;\n            state.copyStr = copyStr;\n            state.copiedStr = copied;\n            state.expandStr = expand;\n\n            const textProps = omit(restProps, [\n              'prefixCls',\n              'editable',\n              'copyable',\n              'ellipsis',\n              'mark',\n              'code',\n              'delete',\n              'underline',\n              'strong',\n              'keyboard',\n              'onUpdate:content',\n            ]);\n            const cssEllipsis = canUseCSSEllipsis.value;\n            const cssTextOverflow = rows === 1 && cssEllipsis;\n            const cssLineClamp = rows && rows > 1 && cssEllipsis;\n\n            let textNode = children as VNodeTypes;\n            let ariaLabel: string | undefined;\n\n            // Only use js ellipsis when css ellipsis not support\n            if (rows && state.isEllipsis && !state.expanded && !cssEllipsis) {\n              const { title } = restProps;\n              let restContent = title || '';\n\n              if (!title && (typeof children === 'string' || typeof children === 'number'))\n                restContent = String(children);\n\n              // show rest content as title on symbol\n              restContent = restContent?.slice(String(state.ellipsisContent || '').length);\n              // We move full content to outer element to avoid repeat read the content by accessibility\n              textNode = (\n                <>\n                  {toRaw(state.ellipsisContent)}\n                  <span title={restContent} aria-hidden=\"true\">\n                    {ELLIPSIS_STR}\n                  </span>\n                  {suffix}\n                </>\n              );\n            } else {\n              textNode = (\n                <>\n                  {children}\n                  {suffix}\n                </>\n              );\n            }\n\n            textNode = wrapperDecorations(props, textNode);\n\n            const showTooltip\n              = tooltip && rows && state.isEllipsis && !state.expanded && !cssEllipsis;\n            const title = slots.ellipsisTooltip ? slots.ellipsisTooltip() : tooltip;\n            return (\n              <ResizeObserver onResize={resizeOnNextFrame} disabled={!rows}>\n                <Typography\n                  ref={contentRef}\n                  class={[\n                    {\n                      [`${prefixCls.value}-${type}`]: type,\n                      [`${prefixCls.value}-disabled`]: disabled,\n                      [`${prefixCls.value}-ellipsis`]: rows,\n                      [`${prefixCls.value}-single-line`]: rows === 1 && !state.isEllipsis,\n                      [`${prefixCls.value}-ellipsis-single-line`]: cssTextOverflow,\n                      [`${prefixCls.value}-ellipsis-multiple-line`]: cssLineClamp,\n                    },\n                    className,\n                  ]}\n                  style={{\n                    ...(style as CSSProperties),\n                    WebkitLineClamp: cssLineClamp ? rows : undefined,\n                  }}\n                  aria-label={ariaLabel}\n                  direction={direction.value}\n                  onClick={triggerType.includes('text') ? onEditClick : () => {}}\n                  {...textProps}\n                >\n                  {showTooltip\n                    ? (\n                        <Tooltip title={tooltip === true ? children : title}>\n                          <span>{textNode}</span>\n                        </Tooltip>\n                      )\n                    : (\n                        textNode\n                      )}\n                  {renderOperations()}\n                </Typography>\n              </ResizeObserver>\n            );\n          }}\n        />\n      );\n    };\n  },\n});\n"],"names":["isLineClampSupport","isStyleSupport","isTextOverflowSupport","ELLIPSIS_STR","defineComponent","compatConfig","MODE","name","inheritAttrs","props","baseProps","setup","slots","attrs","emit","prefixCls","direction","useConfigInject","state","reactive","copied","ellipsisText","ellipsisContent","isEllipsis","expanded","clientRendered","expandStr","copyStr","copiedStr","editStr","copyId","undefined","rafId","prevProps","originContent","contentRef","ref","editIcon","ellipsis","computed","rows","expandable","onMounted","syncEllipsis","onBeforeUnmount","clearTimeout","raf","cancel","watch","value","content","nextTick","resizeOnNextFrame","flush","deep","watchEffect","devWarning","editable","getChildrenText","findDOMNode","innerText","onExpandClick","e","onExpand","editing","onEditClick","preventDefault","triggerEdit","onEditChange","onContentChange","onChange","onEditCancel","onCancel","onCopyClick","stopPropagation","copyable","copyConfig","text","copy","onCopy","setTimeout","setEditing","useMergedState","edit","onStart","val","focus","canUseCSSEllipsis","suffix","onEllipsis","tooltip","ell","measure","renderOperations","sizeInfo","width","height","wrapperDecorations","mark","code","underline","delete","del","strong","keyboard","currentContent","wrap","needed","Tag","_currentContent","_createVNode","default","renderExpand","forceRender","symbol","expandContent","ellipsisSymbol","renderEdit","triggerType","icon","editableIcon","EditOutlined","title","editableTooltip","ariaLabel","includes","Tooltip","TransButton","renderCopy","defaultTitle","copyableTooltip","defaultIcon","CheckOutlined","CopyOutlined","copyableIcon","renderEditInput","class","className","style","maxlength","autoSize","onEnd","Editable","component","enterIcon","editableEnterIcon","forceRenderExpanded","filter","node","children","LocaleReceiver","locale","type","disabled","restProps","expand","textProps","omit","cssEllipsis","cssTextOverflow","cssLineClamp","textNode","restContent","String","slice","length","_Fragment","toRaw","showTooltip","ellipsisTooltip","ResizeObserver","Typography","WebkitLineClamp"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAMA,kBAAAA,GAAqBC,4BAAe,iBAAiB,CAAA,CAAA;AAC3D,MAAMC,qBAAAA,GAAwBD,4BAAe,cAAc,CAAA,CAAA;AAE3D,MAAME,YAAe,GAAA,KAAA,CAAA;AAErB,sCAA+BC,mBAAA,CAAA;AAAA,EAC7BC,YAAc,EAAA;AAAA,IAAEC,IAAM,EAAA,CAAA;AAAA,GAAE;AAAA,EACxBC,IAAM,EAAA,gBAAA;AAAA,EACNC,YAAc,EAAA,KAAA;AAAA,EACdC,OAAOC,eAAU,EAAA;AAAA;AAAA,EAEjBC,MAAMF,KAAO,EAAA;AAAA,IAAEG,KAAAA;AAAAA,IAAOC,KAAAA;AAAAA,IAAOC,IAAAA;AAAAA,GAAQ,EAAA;AACnC,IAAM,MAAA;AAAA,MAAEC,SAAAA;AAAAA,MAAWC,SAAAA;AAAAA,KAAU,GAAIC,uBAAgB,CAAA,YAAA,EAAcR,KAAK,CAAA,CAAA;AAEpE,IAAA,MAAMS,QAAQC,YAAS,CAAA;AAAA,MACrBC,MAAQ,EAAA,KAAA;AAAA,MACRC,YAAc,EAAA,EAAA;AAAA,MACdC,eAAiB,EAAA,IAAA;AAAA,MACjBC,UAAY,EAAA,KAAA;AAAA,MACZC,QAAU,EAAA,KAAA;AAAA,MACVC,cAAgB,EAAA,KAAA;AAAA;AAAA,MAEhBC,SAAW,EAAA,EAAA;AAAA,MACXC,OAAS,EAAA,EAAA;AAAA,MACTC,SAAW,EAAA,EAAA;AAAA,MACXC,OAAS,EAAA,EAAA;AAAA,MAETC,MAAQC,EAAAA,KAAAA,CAAAA;AAAAA,MACRC,KAAOD,EAAAA,KAAAA,CAAAA;AAAAA,MACPE,SAAWF,EAAAA,KAAAA,CAAAA;AAAAA,MAEXG,aAAe,EAAA,EAAA;AAAA,KAChB,CAAA,CAAA;AAED,IAAA,MAAMC,aAAaC,OAAI,EAAA,CAAA;AACvB,IAAA,MAAMC,WAAWD,OAAI,EAAA,CAAA;AACrB,IAAME,MAAAA,QAAAA,GAAWC,aAAS,MAAsB;AAC9C,MAAA,MAAMD,YAAW7B,KAAM6B,CAAAA,QAAAA,CAAAA;AACvB,MAAA,IAAI,CAACA,SAAAA;AAAU,QAAA,OAAO,EAAC,CAAA;AAEvB,MAAO,OAAA;AAAA,QACLE,IAAM,EAAA,CAAA;AAAA,QACNC,UAAY,EAAA,KAAA;AAAA,QACZ,GAAI,OAAOH,SAAa,KAAA,QAAA,GAAWA,SAAW,GAAA,IAAA;AAAA,OAChD,CAAA;AAAA,KACD,CAAA,CAAA;AACDI,IAAAA,aAAAA,CAAU,MAAM;AACdxB,MAAAA,KAAAA,CAAMO,cAAiB,GAAA,IAAA,CAAA;AACvBkB,MAAa,YAAA,EAAA,CAAA;AAAA,KACd,CAAA,CAAA;AAEDC,IAAAA,mBAAAA,CAAgB,MAAM;AACpBC,MAAAA,YAAAA,CAAa3B,MAAMY,MAAM,CAAA,CAAA;AACzBgB,MAAIC,OAAAA,CAAAA,MAAAA,CAAO7B,MAAMc,KAAK,CAAA,CAAA;AAAA,KACvB,CAAA,CAAA;AAEDgB,IACEA,SAAA,CAAA,CAAC,MAAMV,QAASW,CAAAA,KAAAA,CAAMT,MAAM,MAAM/B,KAAAA,CAAMyC,OAAO,CAAA,EAC/C,MAAM;AACJC,MAAAA,YAAAA,CAAS,MAAM;AACbC,QAAkB,iBAAA,EAAA,CAAA;AAAA,OACnB,CAAA,CAAA;AAAA,KAEH,EAAA;AAAA,MAAEC,KAAO,EAAA,MAAA;AAAA,MAAQC,IAAM,EAAA,IAAA;AAAA,KACzB,CAAA,CAAA;AAEAC,IAAAA,eAAAA,CAAY,MAAM;AAChB,MAAI9C,IAAAA,KAAAA,CAAMyC,YAAYnB,KAAW,CAAA,EAAA;AAC/ByB,QAAAA,cAAAA,CACE,CAAC/C,KAAAA,CAAMgD,QACP,EAAA,YAAA,EACA,sEACF,CAAA,CAAA;AACAD,QAAAA,cAAAA,CACE,CAAC/C,KAAAA,CAAM6B,QACP,EAAA,YAAA,EACA,sEACF,CAAA,CAAA;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AAED,IAAA,SAASoB,eAA0B,GAAA;;AACjC,MAAQjD,OAAAA,KAAAA,CAAM6B,QAAY7B,IAAAA,KAAAA,CAAMgD,QAC5BhD,GAAAA,KAAAA,CAAMyC,WACNS,EAAYxB,GAAAA,mBAAAA,CAAAA,UAAAA,CAAWc,KAAK,CAAA,KAA5BU,IAA+BC,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,SAAAA,CAAAA;AAAAA,KACrC;AAGA,IAAA,SAASC,cAAcC,CAAe,EAAA;AACpC,MAAM,MAAA;AAAA,QAAEC,QAAAA;AAAAA,UAAazB,QAASW,CAAAA,KAAAA,CAAAA;AAC9B/B,MAAAA,KAAAA,CAAMM,QAAW,GAAA,IAAA,CAAA;AACjBuC,MAAWD,QAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAAA,KACb;AAEA,IAAML,MAAAA,QAAAA,GAAWlB,aAAS,MAAM;AAC9B,MAAA,MAAMkB,YAAWhD,KAAMgD,CAAAA,QAAAA,CAAAA;AACvB,MAAA,IAAI,CAACA,SAAAA;AAAU,QAAO,OAAA;AAAA,UAAEO,OAAS,EAAA,KAAA;AAAA,SAAM,CAAA;AAEvC,MAAO,OAAA;AAAA,QACL,GAAI,OAAOP,SAAa,KAAA,QAAA,GAAWA,SAAW,GAAA,IAAA;AAAA,OAChD,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,SAASQ,YAAYH,CAAe,EAAA;AAClCA,MAAAA,CAAAA,CAAEI,cAAe,EAAA,CAAA;AACjBhD,MAAAA,KAAAA,CAAMgB,gBAAgBzB,KAAMyC,CAAAA,OAAAA,CAAAA;AAC5BiB,MAAAA,WAAAA,CAAY,IAAI,CAAA,CAAA;AAAA,KAClB;AAEA,IAAA,SAASC,aAAanB,KAAe,EAAA;AACnCoB,MAAAA,eAAAA,CAAgBpB,KAAK,CAAA,CAAA;AACrBkB,MAAAA,WAAAA,CAAY,KAAK,CAAA,CAAA;AAAA,KACnB;AAEA,IAAA,SAASE,gBAAgBpB,KAAe,EAAA;AACtC,MAAM,MAAA;AAAA,QAAEqB,QAAAA;AAAAA,UAAab,QAASR,CAAAA,KAAAA,CAAAA;AAC9B,MAAIA,IAAAA,KAAAA,KAAUxC,MAAMyC,OAAS,EAAA;AAC3BpC,QAAAA,IAAAA,CAAK,kBAAkBmC,KAAK,CAAA,CAAA;AAC5BqB,QAAWrB,QAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAAA,CAAAA,KAAAA,CAAAA,CAAAA;AAAAA,OACb;AAAA,KACF;AAEA,IAAA,SAASsB,YAAe,GAAA;;AACtBd,MAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,QAAAA,CAASR,OAAMuB,QAAff,KAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,EAAAA,CAAAA,CAAAA;AACAU,MAAAA,WAAAA,CAAY,KAAK,CAAA,CAAA;AAAA,KACnB;AAGA,IAAA,SAASM,YAAYX,CAAe,EAAA;AAClCA,MAAAA,CAAAA,CAAEI,cAAe,EAAA,CAAA;AACjBJ,MAAAA,CAAAA,CAAEY,eAAgB,EAAA,CAAA;AAClB,MAAM,MAAA;AAAA,QAAEC,QAAAA;AAAAA,OAAalE,GAAAA,KAAAA,CAAAA;AAErB,MAAA,MAAMmE,UAAa,GAAA;AAAA,QACjB,GAAI,OAAOD,QAAa,KAAA,QAAA,GAAWA,QAAW,GAAA,IAAA;AAAA,OAChD,CAAA;AAEA,MAAA,IAAIC,WAAWC,IAAS9C,KAAAA,KAAAA,CAAAA;AACtB6C,QAAAA,UAAAA,CAAWC,OAAOnB,eAAgB,EAAA,CAAA;AAEpCoB,MAAKF,aAAAA,CAAAA,UAAAA,CAAWC,QAAQ,EAAE,CAAA,CAAA;AAE1B3D,MAAAA,KAAAA,CAAME,MAAS,GAAA,IAAA,CAAA;AACf+B,MAAAA,YAAAA,CAAS,MAAM;AACb,QAAA,IAAIyB,UAAWG,CAAAA,MAAAA;AACbH,UAAAA,UAAAA,CAAWG,OAAOjB,CAAC,CAAA,CAAA;AAErB5C,QAAMY,KAAAA,CAAAA,MAAAA,GAASkD,WAAW,MAAM;AAC9B9D,UAAAA,KAAAA,CAAME,MAAS,GAAA,KAAA,CAAA;AAAA,WACd,GAAI,CAAA,CAAA;AAAA,OACR,CAAA,CAAA;AAAA,KACH;AAEA,IAAA,MAAM,CAAC4C,OAAAA,EAASiB,UAAU,CAAA,GAAIC,uBAAe,KAAO,EAAA;AAAA,MAClDjC,KAAAA,EAAOV,aAAS,MAAM;AACpB,QAAA,OAAOkB,SAASR,KAAMe,CAAAA,OAAAA,CAAAA;AAAAA,OACvB,CAAA;AAAA,KACF,CAAA,CAAA;AAED,IAAA,SAASG,YAAYgB,IAAe,EAAA;AAClC,MAAM,MAAA;AAAA,QAAEC,OAAAA;AAAAA,UAAY3B,QAASR,CAAAA,KAAAA,CAAAA;AAC7B,MAAA,IAAIkC,IAAQC,IAAAA,OAAAA;AACVA,QAAQ,OAAA,EAAA,CAAA;AAEVH,MAAAA,UAAAA,CAAWE,IAAI,CAAA,CAAA;AAAA,KACjB;AACAnC,IAAAA,SAAAA,CACEgB,SACCqB,CAAQ,GAAA,KAAA;;AACP,MAAA,IAAI,CAACA,GAAAA;AACHhD,QAAAA,CAAAA,EAAAA,GAAAA,QAAAA,CAASY,UAATZ,IAAgBiD,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,KAAAA,EAAAA,CAAAA;AAAAA,KAEpB,EAAA;AAAA,MAAEjC,KAAO,EAAA,MAAA;AAAA,KACX,CAAA,CAAA;AAGA,IAAMkC,MAAAA,iBAAAA,GAAoBhD,aAAS,MAAM;AACvC,MAAM,MAAA;AAAA,QAAEC,IAAAA;AAAAA,QAAMC,UAAAA;AAAAA,QAAY+C,MAAAA;AAAAA,QAAQC,UAAAA;AAAAA,QAAYC,OAAAA;AAAAA,UAAYpD,QAASW,CAAAA,KAAAA,CAAAA;AAEnE,MAAA,IAAIuC,MAAUE,IAAAA,OAAAA;AAAS,QAAO,OAAA,KAAA,CAAA;AAG9B,MAAA,IAAIjF,KAAMgD,CAAAA,QAAAA,IAAYhD,KAAMkE,CAAAA,QAAAA,IAAYlC,UAAcgD,IAAAA,UAAAA;AACpD,QAAO,OAAA,KAAA,CAAA;AAET,MAAA,IAAIjD,IAAS,KAAA,CAAA;AACX,QAAOtC,OAAAA,qBAAAA,CAAAA;AAET,MAAOF,OAAAA,kBAAAA,CAAAA;AAAAA,KACR,CAAA,CAAA;AAED,IAAA,MAAM2C,eAAeA,MAAM;AACzB,MAAM,MAAA;AAAA,QAAEtB,YAAAA;AAAAA,QAAcE,UAAAA;AAAAA,OAAeL,GAAAA,KAAAA,CAAAA;AACrC,MAAM,MAAA;AAAA,QAAEsB,IAAAA;AAAAA,QAAMgD,MAAAA;AAAAA,QAAQC,UAAAA;AAAAA,UAAenD,QAASW,CAAAA,KAAAA,CAAAA;AAC9C,MAAA,IACE,CAACT,IAAAA,IACEA,IAAO,GAAA,CAAA,IACP,CAACmB,mBAAAA,CAAYxB,UAAWc,CAAAA,KAAK,CAC7B/B,IAAAA,KAAAA,CAAMM,QACNf,IAAAA,KAAAA,CAAMyC,YAAYnB,KACrB,CAAA,EAAA;AACA,QAAA,OAAA;AAAA,OACF;AAGA,MAAA,IAAIwD,iBAAkBtC,CAAAA,KAAAA;AAAO,QAAA,OAAA;AAE7B,MAAM,MAAA;AAAA,QACJC,OAAAA;AAAAA,QACA2B,IAAAA;AAAAA,QACAvC,QAAUqD,EAAAA,GAAAA;AAAAA,OACRC,GAAAA,YAAAA,CACFjC,mBAAYxB,CAAAA,UAAAA,CAAWc,KAAK,CAC5B,EAAA;AAAA,QAAET,IAAAA;AAAAA,QAAMgD,MAAAA;AAAAA,SACR/E,KAAMyC,CAAAA,OAAAA,EACN2C,gBAAiB,CAAA,IAAI,GACrB1F,YACF,CAAA,CAAA;AAEA,MAAA,IAAIkB,YAAiBwD,KAAAA,IAAAA,IAAQ3D,KAAMK,CAAAA,UAAAA,KAAeoE,GAAK,EAAA;AACrDzE,QAAAA,KAAAA,CAAMG,YAAewD,GAAAA,IAAAA,CAAAA;AACrB3D,QAAAA,KAAAA,CAAMI,eAAkB4B,GAAAA,OAAAA,CAAAA;AACxBhC,QAAAA,KAAAA,CAAMK,UAAaoE,GAAAA,GAAAA,CAAAA;AACnB,QAAA,IAAIpE,eAAeoE,GAAOF,IAAAA,UAAAA;AACxBA,UAAAA,UAAAA,CAAWE,GAAG,CAAA,CAAA;AAAA,OAClB;AAAA,KACF,CAAA;AAEA,IAAA,SAASvC,kBAAkB0C,QAA8C,EAAA;AACvE,MAAA,IAAIA,QAAU,EAAA;AACZ,QAAM,MAAA;AAAA,UAAEC,KAAAA;AAAAA,UAAOC,MAAAA;AAAAA,SAAWF,GAAAA,QAAAA,CAAAA;AAC1B,QAAI,IAAA,CAACC,SAAS,CAACC,MAAAA;AAAQ,UAAA,OAAA;AAAA,OACzB;AACAlD,MAAIC,OAAAA,CAAAA,MAAAA,CAAO7B,MAAMc,KAAK,CAAA,CAAA;AACtBd,MAAMc,KAAAA,CAAAA,KAAAA,GAAQc,QAAI,MAAM;AAEtBH,QAAa,YAAA,EAAA,CAAA;AAAA,OACd,CAAA,CAAA;AAAA,KACH;AAEA,IAAA,SAASsD,kBACP,CAAA;AAAA,MAAEC,IAAAA;AAAAA,MAAMC,IAAAA;AAAAA,MAAMC,SAAAA;AAAAA,MAAWC,MAAQC,EAAAA,GAAAA;AAAAA,MAAKC,MAAAA;AAAAA,MAAQC,QAAAA;AAAAA,OAC9CtD,OACA,EAAA;AACA,MAAA,IAAIuD,cAAiBvD,GAAAA,OAAAA,CAAAA;AAErB,MAASwD,SAAAA,IAAAA,CAAKC,QAAiBC,GAAa,EAAA;AAC1C,QAAA,IAAI,CAACD,MAAAA;AAAQ,UAAA,OAAA;AAAO,QAAA,MAAAE,kBAAA,WAAA;AAAA,UAEGJ,OAAAA,cAAAA,CAAAA;AAAAA,SAAc,EAAA,CAAA;AAArCA,QAAcK,cAAAA,GAAAA,eAAAA,CAAAF,KAAA,IAAA,EAAA;AAAA,UAAAG,OAAAA,EAAAA,MAAA,CAAAF,eAAA,CAAA;AAAA,SAA8B,CAAA,CAAA;AAAA,OAC9C;AAEAH,MAAAA,IAAAA,CAAKH,QAAQ,QAAQ,CAAA,CAAA;AACrBG,MAAAA,IAAAA,CAAKN,WAAW,GAAG,CAAA,CAAA;AACnBM,MAAAA,IAAAA,CAAKJ,KAAK,KAAK,CAAA,CAAA;AACfI,MAAAA,IAAAA,CAAKP,MAAM,MAAM,CAAA,CAAA;AACjBO,MAAAA,IAAAA,CAAKR,MAAM,MAAM,CAAA,CAAA;AACjBQ,MAAAA,IAAAA,CAAKF,UAAU,KAAK,CAAA,CAAA;AAEpB,MAAOC,OAAAA,cAAAA,CAAAA;AAAAA,KACT;AAEA,IAAA,SAASO,aAAaC,WAAuB,EAAA;AAC3C,MAAM,MAAA;AAAA,QAAExE,UAAAA;AAAAA,QAAYyE,MAAAA;AAAAA,UAAW5E,QAASW,CAAAA,KAAAA,CAAAA;AAExC,MAAA,IAAI,CAACR,UAAAA;AAAY,QAAO,OAAA,IAAA,CAAA;AAGxB,MAAA,IAAI,CAACwE,WAAAA,KAAgB/F,KAAMM,CAAAA,QAAAA,IAAY,CAACN,KAAMK,CAAAA,UAAAA,CAAAA;AAAa,QAAO,OAAA,IAAA,CAAA;AAClE,MAAA,MAAM4F,iBACDvG,KAAMwG,CAAAA,cAAAA,GAAiBxG,MAAMwG,cAAe,EAAA,GAAIF,WAAWhG,KAAMQ,CAAAA,SAAAA,CAAAA;AAEtE,MAAA,OAAAoF,gBAAA,GAAA,EAAA;AAAA,QAAA,KAAA,EAAA,QAAA;AAAA,QAAA,OAAA,EAGY,CAAE/F,EAAAA,SAAAA,CAAUkC,KAAM,CAAA,OAAA,CAAA;AAAA,QAAQ,SACzBY,EAAAA,aAAAA;AAAAA,QAAa,cACV3C,KAAMQ,CAAAA,SAAAA;AAAAA,OAAS,EAAA,CAE1ByF,aAAa,CAAA,CAAA,CAAA;AAAA,KAGpB;AAEA,IAAA,SAASE,UAAa,GAAA;AACpB,MAAA,IAAI,CAAC5G,KAAMgD,CAAAA,QAAAA;AAAU,QAAA,OAAA;AAErB,MAAM,MAAA;AAAA,QAAEiC,OAAAA;AAAAA,QAAS4B,WAAAA,GAAc,CAAC,MAAM,CAAA;AAAA,UAAM7G,KAAMgD,CAAAA,QAAAA,CAAAA;AAClD,MAAA,MAAM8D,OAAO3G,KAAM4G,CAAAA,YAAAA,GAAe5G,MAAM4G,YAAa,EAAA,GAACV,gBAAAW,qBAAA,EAAA;AAAA,QAAA,MAAA,EAAA,QAAA;AAAA,SAAiC,IAAA,CAAA,CAAA;AACvF,MAAA,MAAMC,QAAQ9G,KAAM+G,CAAAA,eAAAA,GAAkB/G,KAAM+G,CAAAA,eAAAA,KAAoBzG,KAAMW,CAAAA,OAAAA,CAAAA;AACtE,MAAA,MAAM+F,SAAY,GAAA,OAAOF,KAAU,KAAA,QAAA,GAAWA,KAAQ,GAAA,EAAA,CAAA;AAEtD,MAAA,OAAOJ,WAAYO,CAAAA,QAAAA,CAAS,MAAM,CAAA,GAACf,gBAAAgB,eAAA,EAAA;AAAA,QAAA,KAAA,EAAA,MAAA;AAAA,QAAA,OAAA,EAEFpC,OAAY,KAAA,KAAA,GAAQ,EAAKgC,GAAAA,KAAAA;AAAAA,OAAK,EAAA;AAAA,QAAAX,OAAAA,EAAAA,MAAAD,CAAAA,eAAAA,CAAAiB,uBAAA,EAAA;AAAA,UAAA,KAEhD1F,EAAAA,QAAAA;AAAAA,UAAQ,OAAA,EACL,CAAEtB,EAAAA,SAAAA,CAAUkC,KAAM,CAAA,KAAA,CAAA;AAAA,UAAM,SACvBgB,EAAAA,WAAAA;AAAAA,UAAW,YACR2D,EAAAA,SAAAA;AAAAA,SAAS,EAAA;AAAA,UAAAb,OAAAA,EAAAA,MAAA,CAEpBQ,IAAI,CAAA;AAAA,SAAA,CAAA,CAAA;AAAA,OAAA,CAIX,GAAA,IAAA,CAAA;AAAA,KACN;AAEA,IAAA,SAASS,UAAa,GAAA;AACpB,MAAA,IAAI,CAACvH,KAAMkE,CAAAA,QAAAA;AAAU,QAAA,OAAA;AAErB,MAAM,MAAA;AAAA,QAAEe,OAAAA;AAAAA,UAAYjF,KAAMkE,CAAAA,QAAAA,CAAAA;AAC1B,MAAA,MAAMsD,YAAe/G,GAAAA,KAAAA,CAAME,MAASF,GAAAA,KAAAA,CAAMU,YAAYV,KAAMS,CAAAA,OAAAA,CAAAA;AAC5D,MAAA,MAAM+F,KAAQ9G,GAAAA,KAAAA,CAAMsH,eAChBtH,GAAAA,KAAAA,CAAMsH,eAAgB,CAAA;AAAA,QAAE9G,QAAQF,KAAME,CAAAA,MAAAA;AAAAA,OAAQ,CAC9C6G,GAAAA,YAAAA,CAAAA;AACJ,MAAA,MAAML,SAAY,GAAA,OAAOF,KAAU,KAAA,QAAA,GAAWA,KAAQ,GAAA,EAAA,CAAA;AACtD,MAAMS,MAAAA,WAAAA,GAAcjH,KAAME,CAAAA,MAAAA,GAAM0F,eAAAsB,CAAAA,sBAAAA,EAAA,IAAA,EAAA,IAAA,CAAAtB,GAAAA,eAAAA,CAAAuB,qBAAuC,EAAA,IAAA,EAAA,IAAA,CAAA,CAAA;AACvE,MAAA,MAAMd,IAAO3G,GAAAA,KAAAA,CAAM0H,YACf1H,GAAAA,KAAAA,CAAM0H,YAAa,CAAA;AAAA,QAAElH,MAAAA,EAAQ,CAAC,CAACF,KAAME,CAAAA,MAAAA;AAAAA,OAAQ,CAC7C+G,GAAAA,WAAAA,CAAAA;AAEJ,MAAA,OAAArB,gBAAAgB,eAAA,EAAA;AAAA,QAAA,KAAA,EAAA,MAAA;AAAA,QAAA,OAAA,EAC6BpC,OAAY,KAAA,KAAA,GAAQ,EAAKgC,GAAAA,KAAAA;AAAAA,OAAK,EAAA;AAAA,QAAAX,OAAAA,EAAAA,MAAAD,CAAAA,eAAAA,CAAAiB,uBAAA,EAAA;AAAA,UAAA,OAE9C,EAAA,CACJ,CAAEhH,EAAAA,SAAAA,CAAUkC,KAAM,CACnB,KAAA,CAAA,EAAA;AAAA,YAAE,CAAE,CAAElC,EAAAA,SAAAA,CAAUkC,KAAM,CAAA,aAAA,CAAc,GAAG/B,KAAME,CAAAA,MAAAA;AAAAA,WAAQ,CAAA;AAAA,UACtD,SACQqD,EAAAA,WAAAA;AAAAA,UAAW,YACRmD,EAAAA,SAAAA;AAAAA,SAAS,EAAA;AAAA,UAAAb,OAAAA,EAAAA,MAAA,CAEpBQ,IAAI,CAAA;AAAA,SAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAIb;AAEA,IAAA,SAASgB,eAAkB,GAAA;AACzB,MAAM,MAAA;AAAA,QAAEC,KAAOC,EAAAA,SAAAA;AAAAA,QAAWC,KAAAA;AAAAA,OAAU7H,GAAAA,KAAAA,CAAAA;AACpC,MAAM,MAAA;AAAA,QAAE8H,SAAAA;AAAAA,QAAWC,QAAAA;AAAAA,QAAUC,KAAAA;AAAAA,UAAUpF,QAASR,CAAAA,KAAAA,CAAAA;AAEhD,MAAA,OAAA6D,gBAAAgC,gBAAA,EAAA;AAAA,QAAA,OAEWL,EAAAA,SAAAA;AAAAA,QAAS,OACTC,EAAAA,KAAAA;AAAAA,QAAK,aACD3H,SAAUkC,CAAAA,KAAAA;AAAAA,QAAK,SACnBxC,KAAMyC,CAAAA,OAAAA;AAAAA,QAAO,iBACLhC,KAAMgB,CAAAA,aAAAA;AAAAA,QAAa,WACvByG,EAAAA,SAAAA;AAAAA,QAAS,UACVC,EAAAA,QAAAA;AAAAA,QAAQ,QACVxE,EAAAA,YAAAA;AAAAA,QAAY,UACVC,EAAAA,eAAAA;AAAAA,QAAe,UACfE,EAAAA,YAAAA;AAAAA,QAAY,OACfsE,EAAAA,KAAAA;AAAAA,QAAK,aACD7H,SAAUiC,CAAAA,KAAAA;AAAAA,QAAK,aACfxC,KAAMsI,CAAAA,SAAAA;AAAAA,OACR,EAAA;AAAA,QAAEC,WAAWpI,KAAMqI,CAAAA,iBAAAA;AAAAA,OAAmB,CAAA,CAAA;AAAA,KAGrD;AAEA,IAAA,SAASpD,iBAAiBqD,mBAA+B,EAAA;AACvD,MAAO,OAAA,CAAClC,YAAakC,CAAAA,mBAAmB,CAAG7B,EAAAA,UAAAA,EAAcW,EAAAA,UAAAA,EAAY,CAAA,CAAEmB,MAAOC,CAAAA,CAAAA,IAAAA,KAAQA,IAAI,CAAA,CAAA;AAAA,KAC5F;AAEA,IAAA,OAAO,MAAM;;AACX,MAAM,MAAA;AAAA,QAAE9B,WAAAA,GAAc,CAAC,MAAM,CAAA;AAAA,UAAM7D,QAASR,CAAAA,KAAAA,CAAAA;AAC5C,MAAA,MAAMoG,WACD5I,KAAM6B,CAAAA,QAAAA,IAAY7B,MAAMgD,QACvBhD,GAAAA,KAAAA,CAAMyC,YAAYnB,KAChBtB,CAAAA,GAAAA,KAAAA,CAAMyC,OACNtC,GAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAMmG,YAANnG,IACFA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAMmG,UACJnG,KAAMmG,CAAAA,OAAAA,KACNtG,KAAMyC,CAAAA,OAAAA,CAAAA;AAEd,MAAA,IAAIc,OAAQf,CAAAA,KAAAA;AACV,QAAA,OAAOsF,eAAgB,EAAA,CAAA;AAEzB,MAAA,OAAAzB,gBAAAwC,sBAAA,EAAA;AAAA,QAAA,eAAA,EAAA,MAAA;AAAA,QAAA,YAGeC,CAAmB,MAAA,KAAA;AAC5B,UAAM,MAAA;AAAA,YACJC,IAAAA;AAAAA,YACAC,QAAAA;AAAAA,YACAvG,OAAAA;AAAAA,YACAsF,KAAOC,EAAAA,SAAAA;AAAAA,YACPC,KAAAA;AAAAA,YACA,GAAGgB,SAAAA;AAAAA,WACD,GAAA;AAAA,YACF,GAAGjJ,KAAAA;AAAAA,YACH,GAAII,KAAAA;AAAAA,WACN,CAAA;AACA,UAAM,MAAA;AAAA,YAAE2B,IAAAA;AAAAA,YAAMgD,MAAAA;AAAAA,YAAQE,OAAAA;AAAAA,cAAYpD,QAASW,CAAAA,KAAAA,CAAAA;AAE3C,UAAM,MAAA;AAAA,YAAEkC,IAAAA;AAAAA,YAAML,IAAMnD,EAAAA,OAAAA;AAAAA,YAASP,MAAAA;AAAAA,YAAQuI,MAAAA;AAAAA,WAAWJ,GAAAA,MAAAA,CAAAA;AAEhDrI,UAAAA,KAAAA,CAAMW,OAAUsD,GAAAA,IAAAA,CAAAA;AAChBjE,UAAAA,KAAAA,CAAMS,OAAUA,GAAAA,OAAAA,CAAAA;AAChBT,UAAAA,KAAAA,CAAMU,SAAYR,GAAAA,MAAAA,CAAAA;AAClBF,UAAAA,KAAAA,CAAMQ,SAAYiI,GAAAA,MAAAA,CAAAA;AAElB,UAAA,MAAMC,SAAYC,GAAAA,SAAAA,CAAKH,SAAW,EAAA,CAChC,aACA,UACA,EAAA,UAAA,EACA,UACA,EAAA,MAAA,EACA,QACA,QACA,EAAA,WAAA,EACA,QACA,EAAA,UAAA,EACA,kBAAkB,CACnB,CAAA,CAAA;AACD,UAAA,MAAMI,cAAcvE,iBAAkBtC,CAAAA,KAAAA,CAAAA;AACtC,UAAM8G,MAAAA,eAAAA,GAAkBvH,SAAS,CAAKsH,IAAAA,WAAAA,CAAAA;AACtC,UAAME,MAAAA,YAAAA,GAAexH,IAAQA,IAAAA,IAAAA,GAAO,CAAKsH,IAAAA,WAAAA,CAAAA;AAEzC,UAAA,IAAIG,QAAWZ,GAAAA,QAAAA,CAAAA;AACf,UAAIzB,IAAAA,SAAAA,CAAAA;AAGJ,UAAA,IAAIpF,QAAQtB,KAAMK,CAAAA,UAAAA,IAAc,CAACL,KAAMM,CAAAA,QAAAA,IAAY,CAACsI,WAAa,EAAA;AAC/D,YAAM,MAAA;AAAA,cAAEpC,KAAAA,EAAAA,MAAAA;AAAAA,aAAUgC,GAAAA,SAAAA,CAAAA;AAClB,YAAA,IAAIQ,cAAcxC,MAAS,IAAA,EAAA,CAAA;AAE3B,YAAA,IAAI,CAACA,MAAU,KAAA,OAAO2B,QAAa,KAAA,QAAA,IAAY,OAAOA,QAAa,KAAA,QAAA,CAAA;AACjEa,cAAAA,WAAAA,GAAcC,OAAOd,QAAQ,CAAA,CAAA;AAG/Ba,YAAAA,WAAAA,GAAcA,2CAAaE,KAAMD,CAAAA,MAAAA,CAAOjJ,KAAMI,CAAAA,eAAAA,IAAmB,EAAE,CAAE+I,CAAAA,MAAAA,CAAAA,CAAAA;AAErEJ,YAAQnD,QAAAA,GAAAA,eAAAA,CAAAwD,cAEHC,IAAAA,EAAAA,CAAAA,UAAMrJ,KAAMI,CAAAA,eAAe,CAACwF,EAAAA,eAAAA,CAAA,MAAA,EAAA;AAAA,cAAA,OAChBoD,EAAAA,WAAAA;AAAAA,cAAW,aAAA,EAAA,MAAA;AAAA,eACrB/J,CAAAA,YAAY,CAEdqF,CAAAA,EAAAA,MAAM,CAEV,CAAA,CAAA;AAAA,WACI,MAAA;AACLyE,YAAAA,QAAAA,GAAQnD,gBAAAwD,qBAEHjB,QAAAA,EACA7D,MAAM,CAEV,CAAA,CAAA;AAAA,WACH;AAEAyE,UAAWhE,QAAAA,GAAAA,kBAAAA,CAAmBxF,OAAOwJ,QAAQ,CAAA,CAAA;AAE7C,UAAMO,MAAAA,WAAAA,GACF9E,WAAWlD,IAAQtB,IAAAA,KAAAA,CAAMK,cAAc,CAACL,KAAAA,CAAMM,YAAY,CAACsI,WAAAA,CAAAA;AAC/D,UAAA,MAAMpC,KAAQ9G,GAAAA,KAAAA,CAAM6J,eAAkB7J,GAAAA,KAAAA,CAAM6J,iBAAoB/E,GAAAA,OAAAA,CAAAA;AAChE,UAAA,OAAAoB,gBAAA4D,eAAA,EAAA;AAAA,YAAA,UAC4BtH,EAAAA,iBAAAA;AAAAA,YAAiB,YAAY,CAACZ,IAAAA;AAAAA,WAAI,EAAA;AAAA,YAAAuE,OAAAA,EAAAA,MAAAD,CAAAA,eAAAA,CAAA6D,kBAAA,EAAA;AAAA,cAAA,KAEnDxI,EAAAA,UAAAA;AAAAA,cAAU,SACR,CACL;AAAA,gBACE,CAAE,CAAEpB,EAAAA,SAAAA,CAAUkC,KAAM,CAAGuG,CAAAA,EAAAA,IAAK,EAAC,GAAGA,IAAAA;AAAAA,gBAChC,CAAE,CAAA,EAAEzI,SAAUkC,CAAAA,KAAM,WAAU,GAAGwG,QAAAA;AAAAA,gBACjC,CAAE,CAAA,EAAE1I,SAAUkC,CAAAA,KAAM,WAAU,GAAGT,IAAAA;AAAAA,gBACjC,CAAE,GAAEzB,SAAUkC,CAAAA,KAAM,cAAa,GAAGT,IAAAA,KAAS,CAAK,IAAA,CAACtB,KAAMK,CAAAA,UAAAA;AAAAA,gBACzD,CAAE,CAAA,EAAER,SAAUkC,CAAAA,KAAM,uBAAsB,GAAG8G,eAAAA;AAAAA,gBAC7C,CAAE,CAAA,EAAEhJ,SAAUkC,CAAAA,KAAM,yBAAwB,GAAG+G,YAAAA;AAAAA,iBAEjDvB,SAAS,CAAA;AAAA,cACV,OACM,EAAA;AAAA,gBACL,GAAIC,KAAAA;AAAAA,gBACJkC,eAAAA,EAAiBZ,eAAexH,IAAOT,GAAAA,KAAAA,CAAAA;AAAAA,eACzC;AAAA,cAAC,YACW6F,EAAAA,SAAAA;AAAAA,cAAS,aACV5G,SAAUiC,CAAAA,KAAAA;AAAAA,cAAK,WACjBqE,WAAYO,CAAAA,QAAAA,CAAS,MAAM,CAAA,GAAI5D,cAAc,MAAM;AAAA,eAAC;AAAA,cAAC,GAC1D2F,SAAAA;AAAAA,aAAS,EAAA;AAAA,cAAA7C,OAAAA,EAAAA,MAAA,CAEZyD,WAAAA,GAAW1D,gBAAAgB,eAAA,EAAA;AAAA,gBAAA,OAAA,EAEUpC,OAAY,KAAA,IAAA,GAAO2D,QAAW3B,GAAAA,KAAAA;AAAAA,eAAK,EAAA;AAAA,gBAAAX,OAAAA,EAAAA,MAAAD,CAAAA,eAAAA,gBAC1CmD,QAAQ,CAAA,CAAA,CAAA;AAAA,eAAA,CAAA,GAIjBA,QAELpE,EAAAA,gBAAAA,EAAkB,CAAA;AAAA,aAAA,CAAA,CAAA;AAAA,WAAA,CAAA,CAAA;AAAA,SAI3B;AAAA,SAAC,IAAA,CAAA,CAAA;AAAA,KAGP,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}