@startlibs/components 1.0.4 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/BasicBulletList.mjs +9 -0
- package/lib/BasicBulletList.mjs.map +1 -0
- package/lib/Button.mjs +95 -0
- package/lib/Button.mjs.map +1 -0
- package/lib/ContextMenu.mjs +452 -0
- package/lib/ContextMenu.mjs.map +1 -0
- package/lib/Dialog.mjs +232 -0
- package/lib/Dialog.mjs.map +1 -0
- package/lib/Draggable.mjs +880 -0
- package/lib/Draggable.mjs.map +1 -0
- package/lib/ErrorBoundary.mjs +108 -0
- package/lib/ErrorBoundary.mjs.map +1 -0
- package/lib/FillLastLineResizer.mjs +238 -0
- package/lib/FillLastLineResizer.mjs.map +1 -0
- package/lib/Flip.mjs +604 -0
- package/lib/Flip.mjs.map +1 -0
- package/lib/FlipList.mjs +186 -0
- package/lib/FlipList.mjs.map +1 -0
- package/lib/FormatDate.mjs +25 -0
- package/lib/FormatDate.mjs.map +1 -0
- package/lib/Icon.mjs +50 -0
- package/lib/Icon.mjs.map +1 -0
- package/lib/Image.mjs +41 -0
- package/lib/Image.mjs.map +1 -0
- package/lib/Link.mjs +116 -0
- package/lib/Link.mjs.map +1 -0
- package/lib/Loading.mjs +10 -0
- package/lib/Loading.mjs.map +1 -0
- package/lib/LoadingDiv.mjs +83 -0
- package/lib/LoadingDiv.mjs.map +1 -0
- package/lib/Notifications.mjs +63 -0
- package/lib/Notifications.mjs.map +1 -0
- package/lib/PageLoader.mjs +42 -0
- package/lib/PageLoader.mjs.map +1 -0
- package/lib/PersistentNotifications.mjs +130 -0
- package/lib/PersistentNotifications.mjs.map +1 -0
- package/lib/Popup.mjs +49 -0
- package/lib/Popup.mjs.map +1 -0
- package/lib/SplitColumnsContainer.mjs +43 -0
- package/lib/SplitColumnsContainer.mjs.map +1 -0
- package/lib/SwitchDiv.mjs +61 -0
- package/lib/SwitchDiv.mjs.map +1 -0
- package/lib/TextButton.mjs +41 -0
- package/lib/TextButton.mjs.map +1 -0
- package/lib/ToastNotifications.mjs +215 -0
- package/lib/ToastNotifications.mjs.map +1 -0
- package/lib/Tooltip.mjs +160 -0
- package/lib/Tooltip.mjs.map +1 -0
- package/lib/TransitionDiv.mjs +56 -0
- package/lib/TransitionDiv.mjs.map +1 -0
- package/lib/WarningDialog.mjs +84 -0
- package/lib/WarningDialog.mjs.map +1 -0
- package/lib/alt/buttons/OnClickLoadingButton.mjs +36 -0
- package/lib/alt/buttons/OnClickLoadingButton.mjs.map +1 -0
- package/lib/alt/dialogs/DialogWithImageHeader.mjs +14 -0
- package/lib/alt/dialogs/DialogWithImageHeader.mjs.map +1 -0
- package/lib/alt/dialogs/DialogWithSidebar.mjs +106 -0
- package/lib/alt/dialogs/DialogWithSidebar.mjs.map +1 -0
- package/lib/alt/dialogs/MobileBubbleDialog.mjs +49 -0
- package/lib/alt/dialogs/MobileBubbleDialog.mjs.map +1 -0
- package/lib/containers/DialogContainer.mjs +413 -0
- package/lib/containers/DialogContainer.mjs.map +1 -0
- package/lib/containers/Reposition.mjs +35 -0
- package/lib/containers/Reposition.mjs.map +1 -0
- package/lib/containers/usePositioning.mjs +294 -0
- package/lib/containers/usePositioning.mjs.map +1 -0
- package/lib/index.cjs +5000 -0
- package/lib/index.cjs.map +1 -0
- package/lib/index.mjs +37 -0
- package/lib/index.mjs.map +1 -0
- package/lib/useDialogWithToggle.mjs +18 -0
- package/lib/useDialogWithToggle.mjs.map +1 -0
- package/lib/willUseIsSticky.mjs +123 -0
- package/lib/willUseIsSticky.mjs.map +1 -0
- package/package.json +47 -30
- package/src/BasicBulletList.jsx +21 -0
- package/src/Button.jsx +288 -0
- package/src/ContextMenu.jsx +621 -0
- package/src/Dialog.jsx +413 -0
- package/src/Draggable.jsx +801 -0
- package/src/ErrorBoundary.jsx +75 -0
- package/src/FillLastLineResizer.jsx +226 -0
- package/src/Flip.jsx +560 -0
- package/src/FlipList.jsx +136 -0
- package/src/FormatDate.jsx +9 -0
- package/src/Icon.jsx +49 -0
- package/src/Image.jsx +23 -0
- package/src/Link.jsx +68 -0
- package/src/Loading.jsx +29 -0
- package/src/LoadingDiv.jsx +75 -0
- package/src/Notifications.jsx +89 -0
- package/src/PageLoader.jsx +48 -0
- package/src/PersistentNotifications.jsx +182 -0
- package/src/Popup.jsx +49 -0
- package/src/SplitColumnsContainer.jsx +63 -0
- package/src/SwitchDiv.jsx +30 -0
- package/src/TextButton.jsx +34 -0
- package/src/ToastNotifications.jsx +298 -0
- package/src/Tooltip.jsx +158 -0
- package/src/TransitionDiv.jsx +34 -0
- package/src/WarningDialog.jsx +70 -0
- package/src/alt/buttons/OnClickLoadingButton.jsx +16 -0
- package/src/alt/dialogs/DialogWithImageHeader.jsx +42 -0
- package/src/alt/dialogs/DialogWithSidebar.jsx +135 -0
- package/src/alt/dialogs/MobileBubbleDialog.jsx +56 -0
- package/src/containers/DialogContainer.jsx +423 -0
- package/src/containers/Reposition.jsx +24 -0
- package/src/containers/usePositioning.jsx +305 -0
- package/src/index.js +35 -0
- package/src/useDialogWithToggle.jsx +12 -0
- package/src/willUseIsSticky.jsx +113 -0
- package/.babelrc +0 -27
- package/lib/index.js +0 -5429
- package/rollup.config.js +0 -52
- package/yarn-error.log +0 -3724
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/Icon.jsx","../src/Loading.jsx","../src/Link.jsx","../src/Button.jsx","../src/alt/buttons/OnClickLoadingButton.jsx","../src/TextButton.jsx","../src/Flip.jsx","../src/LoadingDiv.jsx","../src/SplitColumnsContainer.jsx","../src/ErrorBoundary.jsx","../src/containers/DialogContainer.jsx","../src/willUseIsSticky.jsx","../src/Dialog.jsx","../src/useDialogWithToggle.jsx","../src/WarningDialog.jsx","../src/Notifications.jsx","../src/FlipList.jsx","../src/SwitchDiv.jsx","../src/ToastNotifications.jsx","../src/PersistentNotifications.jsx","../src/containers/usePositioning.jsx","../src/containers/Reposition.jsx","../src/Draggable.jsx","../src/Popup.jsx","../src/Tooltip.jsx","../src/ContextMenu.jsx","../src/PageLoader.jsx","../src/FillLastLineResizer.jsx","../src/TransitionDiv.jsx","../src/FormatDate.jsx","../src/Image.jsx","../src/alt/dialogs/DialogWithImageHeader.jsx","../src/alt/dialogs/DialogWithSidebar.jsx","../src/alt/dialogs/MobileBubbleDialog.jsx","../src/BasicBulletList.jsx"],"sourcesContent":["import React from 'react'\nimport styled from 'styled-components'\nimport { withTheme } from 'styled-components'\n\n\nclass IconComponent extends React.Component {\n\n state = {}\n\n componentDidMount() {\n const icon = this.props.icon\n if ((this.props.theme.svgIcons || {})[icon]) {\n this.props.theme.svgLoader(icon).then((i) => this.setState({Svg: i.default}))\n }\n }\n\n render() {\n const {icon, children, theme, clickable, customIcon, colorSet, color, ...rest} = this.props\n if ((theme.svgIcons || {})[icon]) {\n if (this.state.Svg) {\n return <this.state.Svg {...rest} />\n } else {\n return null\n }\n }\n return <span {...rest}>{theme.icons[icon] || (customIcon && icon)}{children}</span>\n }\n}\n\nexport const Icon = styled(withTheme(IconComponent))`\n font-family: '${props => props.theme?.iconFont}' !important;\n speak: none;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n \n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n user-select: none; \n ${props => props.clickable && `\n cursor: pointer;\n &:hover {\n opacity: 0.85;\n }\n `}\n`","import styled from 'styled-components'\nimport {getColor} from '@startlibs/utils'\n\nexport const Loading = styled.div`\n z-index:1;\n --loading-color: ${props => props.color || (props.white ? 'rgba(255,255,255,0.9)' : getColor(\"main\")(props))};\n --loading-bw: ${props => props.borderWidth || 4}px;\n width: ${props => props.size || 26}px;\n aspect-ratio: 1;\n flex-shrink: 0;\n border-radius: 50%;\n background:\n radial-gradient(farthest-side, var(--loading-color) 94%, #0000) top/var(--loading-bw) var(--loading-bw) no-repeat,\n conic-gradient(#0000 15%, var(--loading-color));\n -webkit-mask: radial-gradient(farthest-side, #0000 calc(100% - var(--loading-bw)), #000 0);\n mask: radial-gradient(farthest-side, #0000 calc(100% - var(--loading-bw)), #000 0);\n animation: loading-spin 0.6s infinite linear;\n ${props => props.absolute && `\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n margin: auto;\n `}\n @keyframes loading-spin {\n 100% {transform: rotate(1turn)}\n }\n `\n","import React, {useMemo} from 'react'\nimport * as Wouter from 'wouter'\nimport { useBrowserLocation } from \"wouter/use-browser-location\"\nimport { useCallbackStable } from \"@startlibs/core\"\nimport {callIfFunction, addQueryString} from \"@startlibs/utils\";\nimport _ from 'lodash/fp'\n\nexport const Link = ({href,...props}) => _.isString(props.to) ? <Wouter.Link {...props} /> : <a {...props} href={href?.replace(\"~\",\"\")} />\n\nexport const HistoryLink = ({to,onClick,...props}) => {\n return <a onClick={(e) => {\n if (onClick && !callIfFunction(onClick,e)) { return }\n if (e.isDefaultPrevented()) { return }\n if (!to) { return }\n e.preventDefault()\n const {state,pathname,search,hash} = _.isObject(to) ? to : {pathname:to}\n const url = (pathname || \"\") + (search ? \"?\" + search.replace(/^\\?/,\"\") : \"\") + (hash ? \"#\" + hash.replace(/^#/,\"\") : \"\")\n window.history.pushState(state, '', url)\n var popStateEvent = new PopStateEvent('popstate', { state: state });\n window.dispatchEvent(popStateEvent);\n }} {...props} />\n}\n\nexport const Route = ({element,children,...props}) => <Wouter.Route {...props}>{element || children}</Wouter.Route>\nexport const Routes = Wouter.Switch\nexport const Navigate = Wouter.Redirect\nexport const useLocation = () => {\n const [path] = Wouter.useLocation()\n const [search] = Wouter.useSearchParams()\n return {pathname:path,search:search ? \"?\" + search : \"\",state:window.history.state}\n}\nexport const useAbsolutePath = () => {\n const router = Wouter.useRouter();\n const [path] = Wouter.useLocation()\n return router.base + path\n}\nexport const useAbsoluteLocation = () => {\n const router = Wouter.useRouter();\n const {pathname,search} = useLocation()\n return router.base + pathname + search\n}\nexport const useNavigate = () => Wouter.useLocation()[1]\nexport const useParams = Wouter.useParams\nexport const useSearchParams = (defaultParams) => {\n const [location, navigate] = Wouter.useLocation()\n const search = Wouter.useSearch()\n const searchParams = useMemo(() => _.assign(defaultParams,Object.fromEntries(new URLSearchParams(search).entries())), [search])\n\n let tempSearchParams = searchParams\n\n const setSearchParams = useCallbackStable((nextParams, options) => {\n tempSearchParams = _.isFunction(nextParams) ? nextParams(tempSearchParams) : _.assign(tempSearchParams, nextParams)\n const cleanParams = defaultParams\n ? _.flow(\n _.toPairs,\n _.filter(([k,v]) => defaultParams[k] !== v),\n _.fromPairs\n )(tempSearchParams)\n : tempSearchParams\n navigate(addQueryString(location, cleanParams), options)\n })\n\n return [searchParams, setSearchParams]\n}\n\nexport const Router = Wouter.Router\n\nexport {useBrowserLocation}","import React from 'react'\n\nimport {customTheme, getColor, media, styledExtend} from '@startlibs/utils'\nimport {darken, transparentize} from 'polished'\nimport styled, {css} from 'styled-components'\n\nimport {Icon} from './Icon'\nimport {Link} from './Link'\nimport {Loading} from './Loading'\n\nexport const DropdownIcon = styledExtend(Icon)`\n position: absolute;\n top: 51%;\n transform: translateY(-50%);\n right: 1rem;\n font-size: 12px;\n`\nconst LockIcon = styled(Icon)`\n position:absolute;\n bottom: 10px;\n right: .75rem;\n left: auto;\n top: auto;\n font-size: 18px;\n`\n\nconst focus = css`\n:after{\n content: '';\n pointer-events: none;\n position: absolute;\n top: -3px;\n right: -3px;\n left: -3px;\n bottom: -3px;\n border-radius: ${props => props.rounded ? '100px' : '11px'};\n border: 2px solid rgba(0, 0, 0, 0.15);\n}\n`\n\nexport const Button = styled(React.forwardRef(({\n type = \"button\", locked, color, alpha, success, alert, warning, highlight, light, hover, white, icon, onlyIcon, small, withDropdown, onlyDropdown, outline, dashed, textOnly, isLoading, isLoadingIcon, dark,\n innerAs: Wrapper = 'button', className, children, rounded, tabIndex = 1, focused, noFocus,\n colorSet, concealed, concealedModule, buttonRef, ...props\n },ref) =>\n <Wrapper ref={ref || buttonRef} tabIndex={tabIndex} className={className + ' styled-button' + ((color || success || alert || warning || highlight || dark || hover || outline || dashed || textOnly || white || alpha || props.lightAlert || props.lightWarning) ? ' styled-button-colored' : '')} type={Wrapper === 'button' ? type : ''} {...props}>\n {icon && <Icon icon={icon} aria-hidden=\"true\"/>}\n {isLoadingIcon && <Loading white={!light && !outline && !dashed && !white} size={small ? '10' : '18'} borderWidth={small ? '2' : '3'}/>}\n {(withDropdown || onlyDropdown) && !locked && <DropdownIcon icon='arrow-down' aria-hidden=\"true\"/>}\n {locked && <LockIcon icon=\"lock\" aria-hidden=\"true\"/>}\n {children}\n {isLoading && <Loading white={!light && !outline && !dashed && !white} absolute size={small && '16'} borderWidth={small && '3'} />}\n </Wrapper>))`\n vertical-align: top;\n border: 0;\n font-size: 13px;\n border-radius: ${props => props.rounded ? '100px' : '8px'};\n background: ${getColor};\n color: white;\n min-width: 8rem;\n font-weight: 600;\n display: inline-block;\n // line-height: 16px;\n text-align: center;\n padding: 10px 1.25rem;\n outline: none;\n cursor: pointer;\n position: relative;\n text-decoration: none;\n user-select: none;\n flex-shrink: 0;\n :hover {\n background: ${props => darken(0.05, getColor(props, true))};\n }\n :active {\n background: ${props => darken(0.08, getColor(props, true))};\n }\n ${props => props.nowrap && `\n white-space: nowrap;\n `}\n ${props => !props.noFocus && !props.isLoading && css`\n :focus {\n ${focus}\n }\n ${props => props.focused && focus}\n `}\n & + & {\n margin-left: 1rem;\n }\n \n ${props => props.hasErrors && css`\n :after {\n content: '';\n pointer-events: none;\n position: absolute;\n top: -4px;\n right: -4px;\n left: -4px;\n bottom: -4px;\n border-radius: ${props => props.rounded ? '100px' : '11px'};\n border: 3px solid ${props => transparentize(0.7, getColor(\"alert\")(props))};\n }\n `}\n ${props => props.icon && css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 3rem;\n min-height: 3rem;\n ${Icon} {\n font-size: 23px;\n margin-left: -4px;\n margin-right: 8px;\n pointer-events: none;\n line-height: 0;\n }\n `}\n ${props => props.onlyIcon && css`\n padding: 0;\n ${Icon} {\n margin: 0;\n }\n `}\n ${props => props.small && css`\n font-size: 13px;\n padding: 3px 1rem;\n min-width: 2rem;\n min-height: 2rem;\n font-weight: 550;\n ${props.icon && css`\n ${Icon} {\n font-size: 18px;\n margin-left: -5px;\n margin-right: 5px;\n line-height: 0.9;\n }\n `}\n ${props.onlyIcon && css`\n padding: 0;\n ${Icon} {\n margin: 0;\n }\n `}\n `}\n ${props => props.big && css`\n font-size: 14px;\n padding: 13px 1.75rem;\n min-height: 42px;\n `}\n ${props => props.withDropdown && css`\n padding-right: 2.25rem;\n text-align: left;\n `}\n ${props => props.onlyDropdown && css`\n ${DropdownIcon} {\n right: 50%;\n transform: translate(50%,-50%);\n }\n `}\n ${props => props.light && css`\n background: ${getColor('bluishGray')};\n color: ${getColor('gray90')};\n :hover {\n background: ${props => darken(0.05, getColor('bluishGray')(props))};\n }\n :active {\n background: ${props => darken(0.08, getColor('bluishGray')(props))};\n }\n `}\n ${props => props.lightAlert && css`\n background: ${props => transparentize(0.86, getColor(\"alert\")(props))};\n color: ${getColor('alert')};\n :hover {\n background: ${props => transparentize(0.83, getColor(\"alert\")(props))};\n }\n :active {\n background: ${props => transparentize(0.80, getColor(\"alert\")(props))};\n }\n `}\n ${props => props.lightWarning && css`\n background: ${props => transparentize(0.84, darken(0.05, getColor('warning')(props)))};\n color: ${props => darken(0.05, getColor('warning')(props))};\n :hover {\n background: ${props => transparentize(0.78, darken(0.05, getColor('warning')(props)))};\n }\n :active {\n background: ${props => transparentize(0.76, darken(0.05, getColor('warning')(props)))};\n }\n `}\n ${props => (props.outline || props.dashed || props.textOnly) && css`\n color: ${props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.6)'};\n background: none;\n ${Icon}, ${DropdownIcon} {\n color: ${props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.5)'};\n }\n :before {\n content: '';\n border: 1px ${props.outline ? 'solid' : props.dashed ? 'dashed' : ''} ${props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.35)'};\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n border-radius: ${props.rounded ? '100px' : '8px'};\n pointer-events: none;\n }\n :hover {\n background-color: rgba(0,0,0,0.05);\n }\n :active {\n background-color: rgba(0,0,0,0.08);\n }\n :focus {\n :before {\n box-shadow: 0 0 0 2px rgba(0,0,0,0.1);\n ${props.textOnly && 'content: none;'}\n }\n :after {\n content: none;\n }\n }\n `}\n ${props => props.alpha && css`\n background: rgba(0,0,0,0.45);\n :hover {\n background: rgba(0,0,0,0.50);\n }\n :active {\n background: rgba(0,0,0,0.55);\n }\n `}\n ${props => props.white && !props.outline && !props.dashed && css`\n color: ${getColor('main')};\n background: #FFFFFF;\n :hover {\n background: ${darken(0.05, '#FFFFFF')};\n }\n :active {\n background: ${darken(0.08, '#FFFFFF')};\n }\n `}\n ${props => props.isLoading && css`\n color: transparent !important;\n pointer-events: none;\n ${Icon} {\n visibility: hidden;\n }\n `}\n ${props => props.isLoadingIcon && css`\n pointer-events: none;\n ${Icon} {\n visibility: hidden;\n }\n ${Loading} {\n left: 10px;\n position: absolute;\n }\n `}\n ${media.mobile`\n ${props => !props.small && !props.onlyIcon && css`\n padding: 13px 1.5rem;\n font-size: 14px;\n `}\n ${props => !props.small && props.onlyIcon && css`\n min-width: 3.5rem;\n min-height: 3.5rem;\n `}\n ${props => props.withDropdown && css`\n padding-right: 2.5rem;\n ${DropdownIcon} {\n right: 14px;\n }\n `}\n `}\n ${media.max(359)`\n ${props => !props.small && !props.onlyIcon && !props.onlyDropdown && css`\n min-width: 0;\n `}\n `}\n ${props => props.fullwidth && `\n width: 100%;\n `}\n ${customTheme(\"Button\")}\n`\n\nButton.a = (props) => <Button {...props} className={props.className} innerAs=\"a\"/>\nButton.Link = (props) => <Button {...props} className={props.className} innerAs={Link}/>\nexport default Button\n","import React from 'react'\nimport {useToggle} from '@startlibs/core'\nimport {callIfFunction} from '@startlibs/utils'\nimport {Button} from '../../Button'\n\nexport const OnClickLoadingButton = ({onClick,children,onSuccess, as = Button, onFailure, className,...props}) => {\n const loading = useToggle()\n const Element = as\n return <Element className={className} isLoading={loading.isOpen} {...props} onClick={(e) => loading.wait(onClick(e).then(async (e) => {\n await callIfFunction(onSuccess,e)\n return e\n },async (e) => {\n await callIfFunction(onFailure,e)\n throw e\n }))}>{children}</Element>\n}","import React from 'react'\nimport styled from 'styled-components';\nimport {darken} from 'polished'\nimport { getColor } from '@startlibs/utils';\nimport {Link} from './Link'\nimport {Loading} from './Loading'\n\nexport const TextButton = styled(({className,isLoading,alert, fontSize, children, innerAs: Wrapper = 'div', ...props}) => <Wrapper className={className} {...props}>\n {children} {isLoading && <Loading size={14} borderWidth={3} />}\n</Wrapper>)`\n display: inline-block;\n font-weight: 600;\n font-size: ${props => props.fontSize ? fontSize : \"14\"}px;\n color: ${props => props.alert ? getColor('alert') : getColor('main')};\n cursor: pointer;\n text-decoration: none;\n :hover, :active {\n color: ${props => props.alert ? darken(0.1, getColor(\"alert\")(props)) : darken(0.1, getColor(\"main\")(props))};\n }\n ${Loading} {\n display: inline-block;\n margin-left: 0.25rem;\n vertical-align: -3px;\n }\n ${props => props.nowrap && `\n white-space: nowrap;\n `}\n & ~ & {\n margin-left: 1rem;\n }\n`\n\nTextButton.a = (props) => <TextButton {...props} className={props.className} innerAs=\"a\"/>\nTextButton.Link = (props) => <TextButton {...props} className={props.className} innerAs={Link}/>","import React, {useLayoutEffect} from 'react'\nimport _ from 'lodash/fp'\nimport {_s, animationTiming, callIfFunction, oneWayAnimation} from '@startlibs/utils'\nimport {useConstant, useHiddenFill, willUseSharedCallback} from '@startlibs/core'\nimport {ifUndefined} from '@startlibs/utils'\n\nconst getMargins = (domNode) => {\n const {marginTop,marginLeft,marginBottom,marginRight,paddingTop} = window.getComputedStyle(domNode);\n return {marginTop,marginLeft,marginBottom,marginRight,paddingTop}\n}\n\nconst getParentProperties = (parentNode) => {\n if (!parentNode) return {}\n const {marginTop,marginLeft,marginBottom,marginRight,paddingBottom,paddingTop} = window.getComputedStyle(parentNode);\n return {parentStyle:{marginTop,marginLeft,marginBottom,marginRight,paddingBottom,paddingTop},parentNode}\n\n}\n\nexport const toPosition = (domNode, parentRect = (domNode.offsetParent ? domNode.offsetParent.getBoundingClientRect() : {\n top: 0,\n left: 0\n}), {allowFixed, finalPosition,withMargins} = {}) => {\n if ((!allowFixed && domNode.style.position === 'fixed') || domNode.style.display === 'none') return\n const {left, top, height, width} = domNode.getBoundingClientRect()\n const margins = withMargins ? getMargins(domNode) : {}\n\n // const {offsetLeft, offsetTop} = domNode\n return {\n domNode,\n nextSibling: domNode.nextSibling,\n top: finalPosition ? domNode.offsetTop : (top - parentRect.top),\n left: finalPosition ? domNode.offsetLeft : (left - parentRect.left),\n height, width,\n ...getParentProperties(domNode.parentNode),\n ...margins\n }\n}\n\nconst sumWithPx = (...args) => args.map(parseFloat).reduce((a, b) => a + b, 0) + 'px'\n\nconst childMAp = (childs, fn) => {\n for (var c of childs) {\n fn(c)\n }\n}\n\nexport const defaultAnimationMaker = animationTiming('0.25s ease-out')\nconst defaultEnterAnimation = oneWayAnimation('opacity: 0;', 'opacity: 1;')\nconst defaultSwitchAnimation = oneWayAnimation(`opacity: 1;`, `opacity: 0;`, `opacity: 0;`)\n\nconst SHORT_ANIMATIONS = {\n fadeIn: defaultEnterAnimation\n}\nconst applyDefault = (k) => SHORT_ANIMATIONS[k] || k\n\nexport const formatAnimation = (animationName /* array or string or fn with array or string*/, animationTimer /* string or fn */, reverse) => {\n const animationMaker = typeof animationTimer === 'string' ? ((k) => k + ' ' + animationTimer) : animationTimer\n const animationNameExecuted = typeof animationName === 'function' ? animationName() : animationName\n const keyframes = [].concat(typeof animationNameExecuted === 'string' ? animationNameExecuted.split(',') : animationNameExecuted)\n const applyReverse = (k) => reverse ? k + ' reverse' : k\n return keyframes.map(k => applyReverse(k.trim().indexOf(' ') < 0 ? animationMaker(k) : applyDefault(k))).join(', ')\n}\n\nconst cloneWrapper = (element) => {\n const cloned = element.cloneNode(true)\n const tempWrapper = document.createElement('div');\n [].slice.call(cloned.childNodes).forEach(c => tempWrapper.append(c))\n const {display, width, height, padding, borderLeftWidth, borderRightWidth, borderBottomWidth, borderTopWidth} = window.getComputedStyle(element)\n Object.assign(tempWrapper.style, {\n display,\n width: sumWithPx(width, '-' + borderLeftWidth, '-' + borderRightWidth),\n height: sumWithPx(height, '-' + borderBottomWidth, '-' + borderTopWidth),\n padding,\n position: 'absolute',\n top: 0,\n left: 0\n })\n return tempWrapper\n}\n\nconst morphingEndEvents = new Map()\nconst morphTime = new Map()\nconst continueSwitchCallbacks = new Map()\n\nconst continueSwitchOnClone = (oldWrapper) => (newWrapper) => {\n const prevOldClone = oldWrapper.querySelector('.JS-old-snap')\n const prevNewClone = oldWrapper.querySelector('.JS-new-snap')\n const oldClone = newWrapper.querySelector('.JS-old-snap')\n const newClone = newWrapper.querySelector('.JS-new-snap')\n oldClone.style.animationDelay = getDelays(prevOldClone, oldClone.style.animation)\n newClone.style.animationDelay = getDelays(prevNewClone, newClone.style.animation)\n morphTime.set(oldClone, morphTime.get(prevOldClone))\n morphTime.set(newClone, morphTime.get(prevNewClone))\n oldClone.addEventListener('animationend', oldClone.remove)\n newClone.addEventListener('animationend', finishSwitchNew(newClone, newWrapper))\n continueSwitchCallbacks.delete(oldWrapper)\n continueSwitchCallbacks.set(newWrapper, continueSwitchOnClone(newWrapper))\n}\n\nconst finishSwitchNew = (clone, wrapper) => () => {\n clone.remove()\n const newChildren = [].slice.call(wrapper.children)\n childMAp(newChildren, c => {\n if (c.dataset) {\n // Guard against stale \"0\" from a prior uncompleted cycle: always restore\n // to empty when prev is \"0\" since \"0\" is never a legitimate captured value.\n const prev = c.dataset.prevOpacity\n c.style.opacity = (prev && prev !== '0') ? prev : ''\n }\n })\n // wrapper.style.willChange = ''\n continueSwitchCallbacks.delete(wrapper)\n}\nconst supportsEvent = \"onanimationend\" in HTMLElement.prototype\nexport const morph = (node, animation, callback) => {\n if (!animation) {return}\n const [cachedAnimation, cachedCallback] = morphingEndEvents.get(node) || []\n const oldAnimation = cachedAnimation || node.style.animation\n morphTime.set(node, Date.now())\n const didNotStartPromise = Promise\n .race([\n new Promise(res => node.addEventListener('animationstart', res)),\n new Promise((res,rej) => setTimeout(rej,supportsEvent? 1000 : 200)),\n ])\n\n node.style.animation = animation\n if (!cachedCallback) {\n const end = ({target}) => {\n if (target !== node) return\n morphTime.delete(node)\n morphingEndEvents.delete(node)\n node.removeEventListener('animationend', end)\n callback && callback()\n node.style.animation = oldAnimation\n }\n didNotStartPromise\n .catch(() => end({target:node}))\n node.addEventListener('animationend', end)\n morphingEndEvents.set(node, [oldAnimation, end])\n }\n}\n\nconst hasClientRectChanged = (oldSnap, newSnap) => !['top', 'left', 'height', 'width'].every(_ => oldSnap[_] === newSnap[_])\n\nexport const getClientRectAnimation = (oldSnap, newSnap, {skipTransform, smallJumpFix } = {}) => {\n if (oldSnap && newSnap && hasClientRectChanged(oldSnap, newSnap)) {\n const node = newSnap.domNode\n const {offsetLeft, offsetTop, scrollHeight, clientHeight, scrollWidth, clientWidth} = node\n const scrollTop = (node.parentNode && node.parentNode.scrollTop) || 0\n const scrollLeft = (node.parentNode && node.parentNode.scrollLeft) || 0\n const left = oldSnap.left - offsetLeft + scrollLeft\n const top = oldSnap.top - offsetTop + scrollTop\n const deltaHeight = oldSnap.height - newSnap.height\n let heightFix = ''\n let finalPadding = ''\n if (deltaHeight > 0) {\n const {paddingBottom} = window.getComputedStyle(node)\n finalPadding = 'padding-bottom:' + paddingBottom + ';'\n heightFix = `padding-bottom: ${sumWithPx(deltaHeight, paddingBottom) + (smallJumpFix || 0)};`\n }\n const overflowFix = scrollHeight > clientHeight || scrollWidth > clientWidth ? `overflow: hidden;` : ``\n const transform = ((left !== 0 || top !== 0) && !skipTransform) ? `transform: translate(${left}px,${top}px);` : ''\n const parentPaddingTopDelta = (parseInt(oldSnap.parentStyle?.paddingTop) || 0) - (parseInt(newSnap.parentStyle?.paddingTop) || 0)\n const parentPaddingBottomDelta = (parseInt(oldSnap.parentStyle?.paddingBottom) || 0) - (parseInt(newSnap.parentStyle?.paddingBottom) || 0)\n const oldMarginTop = (parseInt(oldSnap.marginTop) || 0) + parentPaddingTopDelta\n const oldMarginBottom = (parseInt(oldSnap.marginBottom) || 0) + parentPaddingBottomDelta\n\n const oldTransform = node.style.transform\n return [oneWayAnimation(`\n ${transform}\n ${heightFix}\n ${overflowFix}\n margin-top: ${oldMarginTop}px;\n margin-bottom: ${oldMarginBottom}px;\n width: ${oldSnap.width}px;\n height: ${Math.max(0,oldSnap.height+(smallJumpFix || 0))}px;\n `, `\n ${finalPadding}\n ${oldTransform ? `transform:${oldTransform};` : ''}\n ${overflowFix}\n margin-top:${parseInt(newSnap.marginTop) || 0}px;\n margin-bottom:${parseInt(newSnap.marginBottom) || 0}px;\n width: ${newSnap.width}px;\n height: ${Math.max(0,newSnap.height+(smallJumpFix || 0))}px;\n `)]\n } else {\n return []\n }\n}\n\nconst getClientRectAnimationForSwitch = (oldSnap, newSnap, {skipTransform } = {}) => {\n if (hasClientRectChanged(oldSnap, newSnap)) {\n const node = newSnap.domNode\n const {offsetLeft, offsetTop, scrollHeight, clientHeight, scrollWidth, clientWidth} = node\n const scrollTop = node.parentNode?.scrollTop || 0\n const scrollLeft = node.parentNode?.scrollLeft || 0\n\n\n // get margin-bottom\n const prevBorder = node.style.border\n node.style.border = '1px solid transparent'\n const borderHeight = node.clientHeight\n node.style.border = prevBorder\n\n // get negative margin top\n const prevPadding = newSnap.paddingTop\n const nonPaddingFixTop = newSnap.clonedNode.getBoundingClientRect().top\n let topWithPaddingFix = nonPaddingFixTop\n if (!parseInt(prevPadding)) {\n node.style.paddingTop = '1px'\n topWithPaddingFix = newSnap.clonedNode.getBoundingClientRect().top\n node.style.paddingTop = ''\n }\n\n const newSnapNegativeTopMarginDelta = topWithPaddingFix - nonPaddingFixTop\n const newSnapBottomMarginDelta = clientHeight - borderHeight\n\n const left = oldSnap.left - offsetLeft + scrollLeft\n const top = oldSnap.top - offsetTop + scrollTop - newSnapNegativeTopMarginDelta\n\n\n const deltaHeight = oldSnap.height - newSnap.height\n let heightFix = ''\n let finalPadding = ''\n if (deltaHeight > 0) {\n const {paddingBottom} = window.getComputedStyle(node)\n finalPadding = 'padding-bottom:' + paddingBottom + ';'\n heightFix = `padding-bottom: ${sumWithPx(deltaHeight, paddingBottom)};`\n }\n const overflowFix = scrollHeight > clientHeight || scrollWidth > clientWidth ? `overflow: hidden;` : ``\n const transform = ((left !== 0 || top !== 0) && !skipTransform) ? `transform: translate(${left}px,${top}px);` : ''\n\n\n const oldTransform = node.style.transform\n return [oneWayAnimation(`\n ${transform}\n ${heightFix}\n ${overflowFix}\n width: ${oldSnap.width}px;\n height: ${oldSnap.height}px;\n `, `\n ${finalPadding}\n ${oldTransform ? `transform:${oldTransform};` : ''}\n ${overflowFix}\n width: ${newSnap.width}px;\n height: ${(newSnap.height - newSnapBottomMarginDelta)}px;\n `)]\n } else {\n return []\n }\n}\n\nconst willPlaySwitch = (oldSnap, newSnap, {switchIn, switchOut, switchAnimation, timing, transformHeight = _.identity}) => {\n const realWrapper = newSnap.domNode\n const newChildren = [].slice.call(realWrapper.children)\n // realWrapper.style.willChange = 'width,height,margin-top;'\n if (realWrapper.firstChild) {\n realWrapper.insertBefore(oldSnap.clonedNode, realWrapper.firstChild)\n realWrapper.insertBefore(newSnap.clonedNode, realWrapper.firstChild)\n } else {\n realWrapper.append(oldSnap.clonedNode)\n realWrapper.append(newSnap.clonedNode)\n }\n\n oldSnap.clonedNode.className = oldSnap.clonedNode.className + ' JS-old-snap'\n newSnap.clonedNode.className = newSnap.clonedNode.className + ' JS-new-snap'\n // newSnap.clonedNode.style.willChange = 'width,height,opacity'\n // oldSnap.clonedNode.style.willChange = 'width,height,opacity'\n const realWrapperRect = realWrapper.getBoundingClientRect()\n const resizeToNew = oneWayAnimation(`\n overflow: hidden;\n width: ${oldSnap.width}px;\n height: ${oldSnap.height}px;\n `, `\n overflow: hidden;\n width: ${newSnap.clonedNode.style.width};\n height: ${callIfFunction(transformHeight,newSnap.clonedNode.style.height,realWrapperRect)};\n `)\n\n childMAp(newChildren, c => {\n if (c.dataset && !c.dataset.noFlip) {\n // Don't capture \"0\" as prevOpacity — it's always a transient value from\n // a prior uncompleted willPlaySwitch. Otherwise finishSwitchNew restores\n // opacity to \"0\" permanently, leaving content invisible.\n if (c.style.opacity && c.style.opacity !== '0') {\n c.dataset.prevOpacity = c.style.opacity\n }\n c.style.opacity = '0'\n }\n })\n childMAp([].slice.call(oldSnap.clonedNode.children), c => {\n if (c.dataset && c.dataset.noFlip) {\n c.style.opacity = '0'\n }\n })\n\n const resizeOld = (oldSnap.width > newSnap.width || oldSnap.height > newSnap.height) ? [resizeToNew] : [resizeToNew]\n const resizeNew = (oldSnap.width < newSnap.width || oldSnap.height < newSnap.height) ? [resizeToNew] : [resizeToNew]\n\n return () => {\n morph(oldSnap.clonedNode,\n formatAnimation([].concat(switchOut || switchAnimation, resizeOld), timing),\n () => oldSnap.clonedNode.remove()\n )\n newSnap.clonedNode.style.opacity = '0'\n continueSwitchCallbacks.set(realWrapper, continueSwitchOnClone(realWrapper))\n\n morph(newSnap.clonedNode,\n formatAnimation([formatAnimation(\n switchIn || switchAnimation,\n timing,\n !switchIn\n )].concat(resizeNew), timing),\n finishSwitchNew(newSnap.clonedNode, realWrapper)\n )\n }\n}\n\n\nconst getDelays = (el, animation) => {\n const delayStr = (morphTime.get(el) - Date.now()) + 'ms'\n return animation.split(',').map(_ => delayStr).join(',')\n}\n\nclass Snapshoter extends React.Component {\n\n getSnapshotBeforeUpdate(oldProps) {\n if (oldProps.on !== this.props.on) {\n console.log('on', 'UHUL')\n } else if (oldProps.moveOn !== this.props.moveOn) {\n console.log('moveOn', 'UHUL')\n }\n return null\n }\n\n render() {\n return null\n }\n}\n\nexport const useFlip = ({on, moveOn}) => {\n useHiddenFill(<Snapshoter on={on} moveOn={moveOn} callback={console.log}/>)\n}\n\nconst getAnimationNames = (animation) => animation.split(',').map(_ => _.replace(/\\s*(\\S+).*/, '$1'))\n\nexport const willUseFlip = () => {\n\n let controlElement = null\n let morphEnabled = false\n const disableMorph = () => {\n controlElement = null\n morphEnabled = false\n }\n const [useRegisterEnter, enterChildrenCallback] = willUseSharedCallback(useLayoutEffect)\n const [useRegisterLeave, leaveChildrenCallback] = willUseSharedCallback(useLayoutEffect)\n const [useRegisterMorph, morphChildrenCallback, getSize] = willUseSharedCallback(useLayoutEffect)\n\n\n const useEnterAnimation = (ref, onEnter = defaultEnterAnimation, {onEnterEnd, timing = defaultAnimationMaker, enterEffect} = {}) => {\n useLayoutEffect(() => {\n if (!morphEnabled && onEnter && ref.current) {\n const el = ref.current\n const animation = formatAnimation(onEnter, timing)\n const endEffect = callIfFunction(enterEffect,el)\n morph(\n el,\n animation,\n () => {\n callIfFunction(onEnterEnd)\n callIfFunction(endEffect,el)\n }\n )\n enterChildrenCallback(timing)\n }\n }, [onEnter])\n }\n\n const useLeaveAnimation = (ref, onLeave = defaultEnterAnimation, {ref: removeRef, leaveEffect, timing = defaultAnimationMaker, nestedFlip = false, events = {}, reverse = true} = {}) => {\n useLayoutEffect(() => () => {\n if (onLeave && ref.current) {\n const el = ref.current\n const animation = formatAnimation(onLeave, timing, reverse)\n // on leave animations require a clone, as the real node will be intantaneousy removed by react\n leaveChildrenCallback(timing)\n const isNested = callIfFunction(nestedFlip)\n const clone = isNested ? el : el.cloneNode(true)\n _s.each((callback, type) => clone.addEventListener(type, callback), events)\n\n const endEffect = callIfFunction(leaveEffect,clone,el)\n\n if (removeRef) { removeRef.current = clone }\n if (!isNested) {\n el.parentNode.insertBefore(clone, el)\n }\n // sometimes the clone may need to trigger events (usual case: onmouseover to reopen the element)\n\n // allow clone to be continued by another animation\n controlElement = clone\n // the animation\n const animate = () => {\n morph(\n clone,\n animation,\n () => {\n clone.remove()\n disableMorph()\n callIfFunction(endEffect,clone,el)\n }\n )\n }\n\n // wait for current animation to end and then animate\n if (clone.style.animation) {\n const maxAnimationTime = _.max((clone.style.animationDuration.split(\",\") || [\"0.25s\"]).map(s => parseFloat(s.trim() || \"0.25\") * (s.indexOf(\"m\")>0 ? 1 : 1000)))\n const timeoutRef = {}\n const animationEnd = (e) => {\n clearTimeout(timeoutRef.current || -1)\n clone.removeEventListener('animationend', animationEnd)\n clone.style.animationDelay = ''\n e?.stopImmediatePropagation()\n setTimeout(animate, 1)\n }\n timeoutRef.current = setTimeout(animationEnd,maxAnimationTime)\n clone.addEventListener('animationend', animationEnd)\n\n clone.style.animationDelay = getDelays(el, clone.style.animation)\n } else {\n animate()\n }\n }\n }, [onLeave])\n }\n\n const useMorphAnimation = (ref, ready = true, {timing = defaultAnimationMaker} = {}) => {\n useLayoutEffect(() => {\n if (ready && controlElement && ref.current) {\n // const controlElement =getControlElement()\n const el = ref.current\n const animation = oneWayAnimation(`opacity:${window.getComputedStyle(controlElement).opacity};`, `opacity: 1`)\n const oldSnap = {\n ...toPosition(controlElement, undefined, {allowFixed: true}),\n clonedNode: cloneWrapper(controlElement)\n }\n const newSnap = {...toPosition(el, undefined, {allowFixed: true}), clonedNode: cloneWrapper(el)}\n const rectAnimation = getClientRectAnimation(oldSnap, newSnap)\n morph(newSnap.domNode, formatAnimation(rectAnimation.concat(animation), timing), disableMorph)\n morphChildrenCallback((executeAnimation) => executeAnimation(timing))\n if (rectAnimation.length) {\n willPlaySwitch(oldSnap, newSnap, {switchAnimation: defaultSwitchAnimation, timing})()\n }\n controlElement.remove()\n disableMorph()\n }\n return () => {\n morphEnabled = true\n // continue existing switch animation on the clone\n if (continueSwitchCallbacks.has(ref.current)) {\n continueSwitchCallbacks.get(ref.current)(controlElement)\n }\n }\n }, [ready])\n }\n\n const useNestedEnterAnimation = (ref, onEnter, {timing} = {}) => {\n useRegisterEnter((parentTiming) => {\n const el = ref.current\n const animation = formatAnimation(onEnter, timing || parentTiming)\n morph(el, animation)\n return getAnimationNames(animation)\n })\n }\n const useNestLeaveAnimation = (ref, onLeave, {timing, events} = {}) => {\n useRegisterLeave((parentTiming) => {\n const el = ref.current\n const animation = formatAnimation(onLeave, timing || parentTiming)\n morph(el, animation)\n return getAnimationNames(animation)\n })\n }\n\n const willUseNestedMorphAnimation = () => {\n const morphId = _.uniqueId('JS-')\n return (ref) => {\n useLayoutEffect(() => {\n if (ref.current?.dataset) {\n ref.current.dataset.morphId = morphId\n }\n })\n const executeAnimation = useConstant((timing) => {\n const prev = controlElement.querySelector(`[data-morph-id='${morphId}']`)\n const next = ref.current\n if (next.dataset) {\n next.dataset.noFlip = true\n }\n next.style.opacity = '1'\n const prevPos = prev.getBoundingClientRect()\n const nextPos = next.getBoundingClientRect()\n const originalTransform = next.style.transform || ''\n const deltaX = Math.round(nextPos.left - prevPos.left)\n const deltaY = Math.round(nextPos.top - prevPos.top)\n const newLeft = deltaX > 0 ? -deltaX : -deltaX\n const animation = oneWayAnimation(`\n transform: translate(${newLeft}px,${deltaY}px) ${originalTransform};\n `, `\n transform: translate(0,0) ${originalTransform};\n `)\n morph(next, formatAnimation(animation, timing))\n })\n useRegisterMorph(executeAnimation)\n }\n }\n\n return [[useEnterAnimation, useLeaveAnimation, useMorphAnimation], [useNestedEnterAnimation, useNestLeaveAnimation], willUseNestedMorphAnimation]\n}\n\nexport const willUseFlipSwitch = () => {\n let oldSnap = null\n const getTempWrapper = (parent,positionConfig = {}) => {\n const tempWrapper = cloneWrapper(parent)\n return {...toPosition(parent,undefined,positionConfig), clonedNode: tempWrapper}\n }\n\n return (ref, onEnter, onLeave, {timing = defaultAnimationMaker, switchAnimation = defaultSwitchAnimation, effect} = {}) => {\n useLayoutEffect(() => {\n if (oldSnap && ref.current) {\n const newSnap = getTempWrapper(ref.current,{withMargins:true})\n let switchToPlay = _.identity\n if (oldSnap.clonedNode) {\n switchToPlay = willPlaySwitch(oldSnap, newSnap, {\n switchIn: callIfFunction(onEnter),\n switchOut: callIfFunction(onLeave),\n switchAnimation: callIfFunction(switchAnimation),\n timing\n })\n }\n const animation = getClientRectAnimationForSwitch(oldSnap, newSnap)\n const endEffect = callIfFunction(effect,oldSnap.clonedNode,newSnap.clonedNode,ref.current)\n switchToPlay()\n morph(newSnap.domNode, formatAnimation(animation, timing), () => callIfFunction(endEffect,oldSnap.clonedNode,newSnap.clonedNode))\n }\n return () => {\n oldSnap = getTempWrapper(ref.current,{withMargins:true})\n }\n }, [])\n }\n}\n\nconst flipHooks = willUseFlip()\nconst useFlipEnter = flipHooks[0][0]\nconst useFlipLeave = flipHooks[0][1]\nexport {useFlipEnter, useFlipLeave}\n\nexport const useFlipAnimation = (ref, onEnterOrBoth, onLeaveOrIgnore = true, config = {}) => {\n const onEnter = ifUndefined(onEnterOrBoth && onEnterOrBoth.onEnter,onEnterOrBoth)\n const onLeave = ifUndefined(onEnterOrBoth && onEnterOrBoth.onLeave,onLeaveOrIgnore)\n useFlipEnter(ref, onEnter, config)\n useFlipLeave(ref, onLeave === true ? onEnter : onLeave, {...config, reverse: onLeave === true})\n}\n\n","import React from 'react'\nimport _ from 'lodash/fp'\nimport styled from 'styled-components'\nimport {willUseFlipSwitch} from './Flip'\nimport {Loading} from './Loading'\nimport {useEnsureRef, useLazyConstant} from '@startlibs/core'\nimport {twoWayAnimation} from '@startlibs/utils'\n\n\nconst [loadingEnter, loadingLeave] = twoWayAnimation('opacity:0;', 'opacity:1;')\nconst [onEnter, onLeave] = twoWayAnimation('opacity:0; transform:translateY(50%)', 'opacity:1;transform:translateY(0)')\n\nconst BlockContainer = styled.div`\n position:relative;\n`\n\nconst FlipDiv = ({useAnimation, outerRef, onEnter = onEnter, onLeave = onLeave, ...props}) => {\n const ensuredRef = useEnsureRef(outerRef)\n useAnimation(ensuredRef, onEnter, onLeave)\n return <BlockContainer {...props} ref={ensuredRef}/>\n}\n\nconst PaddingDiv = styled.div`\n padding: ${props => props.height} 0;\n`\n\nexport const LoadingDiv = ({defaultToSuspense = true, fallback, isLoading, className, height = 12, size = 32, borderWidth = 5, children}) => {\n const flipAnimation = useLazyConstant(willUseFlipSwitch)\n\n const loadingBlock = <PaddingDiv height={_.isString(height) ? borderWidth : (height+'rem')}>\n <Loading autoFocus absolute size={size} borderWidth={borderWidth}/>\n </PaddingDiv>\n\n return <React.Suspense\n fallback={<FlipDiv\n key=\"loading\"\n padded\n onEnter={loadingEnter}\n onLeave={loadingLeave}\n useAnimation={flipAnimation}\n className={className}\n >\n {fallback}\n {loadingBlock}\n </FlipDiv>}\n >\n {\n (typeof isLoading === 'boolean' || defaultToSuspense)\n ? (isLoading\n ? <FlipDiv\n key=\"loading\"\n padded\n onEnter={loadingEnter}\n onLeave={loadingLeave}\n useAnimation={flipAnimation}\n className={className}\n >\n {fallback}\n {loadingBlock}\n </FlipDiv>\n : <FlipDiv\n key=\"loaded\"\n loaded\n onEnter={loadingEnter}\n onLeave={loadingLeave}\n useAnimation={flipAnimation}\n className={className}\n >\n {children}\n </FlipDiv>\n )\n : children\n }\n </React.Suspense>\n}","import React from 'react'\n\nimport {getMargin, media} from '@startlibs/utils'\nimport styled, {css} from 'styled-components'\n\nconst getMarginFromFieldChild = (props) => {\n if (!props.last) return 0;\n const fields = React.Children.toArray(props.children).filter(c => c.type.displayName === \"Field\" || c.type.displayName === \"EnhancedInput\")\n if (!fields.length) return 0\n const lastField = fields.slice(-1)[0]\n return '-' + getMargin(props.theme.Field.margins)(lastField.props)\n}\n\n\nconst splitColumnMargins = {small:0.5,'default':1, big:2}\n\nexport const SplitColumnsContainer = styled.div`\n\n margin-bottom: ${getMarginFromFieldChild}rem;\n \n ${props => css`\n ${media.min(props.viewportMinWidth || 0)`\n display: flex;\n flex-wrap: nowrap;\n margin-left: -${props=>getMargin(splitColumnMargins)(props)/2}rem;\n margin-right: -${props=>getMargin(splitColumnMargins)(props)/2}rem;\n margin-top: -${props=>getMargin(splitColumnMargins)(props)}rem;\n > * {\n flex-basis: 0;\n flex-grow: 1;\n margin-left: ${props=>getMargin(splitColumnMargins)(props)/2}rem;\n margin-right: ${props=>getMargin(splitColumnMargins)(props)/2}rem;\n margin-top: ${props=>getMargin(splitColumnMargins)(props)}rem;\n }\n `}\n `}\n ${props => props.twoColumnsBelowVW && css`\n ${media.max(props.twoColumnsBelowVW)`\n flex-wrap: wrap;\n > * {\n flex-basis: 47%;\n }\n `}\n `}\n`\n\nexport const fixDoubledLastMarginBottom = (children) => {\n let last = React.Children.count(children)-1\n\n function processChild(child, i) {\n if (i === last && child && child.type && child.type.displayName === SplitColumnsContainer.displayName) {\n return React.cloneElement(child, {last: true})\n }\n return child\n }\n if (!Array.isArray(children) || children.length===0) {\n return processChild(children,0)\n }\n while ((!children[last] || (children[last] && children[last].type && children[last].type.displayName === \"Errors\")) && last > 0) {\n last--\n }\n return React.Children.map(children,processChild)\n}\n","import React from 'react'\nimport _ from 'lodash/fp'\nimport {useUpdateEffect} from '@startlibs/core'\nimport {postFetcher} from '@startlibs/utils'\nimport {useLocation} from './Link'\n\nconst ResetOnLocationChange = ({children,reset}) => {\n const location = useLocation()\n useUpdateEffect(() => {\n reset()\n }, [location]);\n return children\n}\nexport class ErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { hasError: false };\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.location !== prevProps.location) {\n this.setState({hasError:false})\n }\n if (this.props.resetOn !== prevProps.resetOn) {\n this.setState({hasError:false})\n }\n }\n\n componentDidCatch(e, info) {\n if (_.get([0],e) === 'login' && _.get([1,'status'],e) === 401) {\n window.location = \"/login\"\n }\n if (e?.notFound) {\n return;\n }\n var error = e && e.stack\n try {\n if (!e || !e.stack) {\n error = JSON.stringify(e)\n }\n } catch (exception) {\n error = e.toString()\n }\n if (!(/bot|spider|crawl/i.test(window.navigator.userAgent))) {\n postFetcher(\"/log/errorBoundary\", {\n error,\n message: e?.message,\n name: e?.name,\n componentStack: info?.componentStack,\n url: window.location.href,\n })\n }\n }\n\n static getDerivedStateFromError(error) {\n // Update state so the next render will show the fallback UI.\n return { hasError: true, error};\n }\n\n render() {\n const {Error,children,...props} = this.props\n const {hasError,error} = this.state\n const reset =() => this.setState({hasError:false,error:null})\n if (hasError) {\n if (React.isValidElement(Error)) {\n return <ResetOnLocationChange reset={reset}>{Error}</ResetOnLocationChange>\n }\n // You can render any custom fallback UI\n return <ResetOnLocationChange reset={reset}><Error {...props} error={error} fixed={reset}/></ResetOnLocationChange>;\n }\n return children;\n }\n}\n\n// StartlibsProvider.registerInternal('ErrorBoundary',ErrorBoundary)","import React, {forwardRef, useEffect, useRef} from 'react'\nimport styled from 'styled-components'\nimport _ from 'lodash/fp'\nimport {Fill, Slot, useEnsureRef, useRefState, willUseLayers} from '@startlibs/core'\nimport {callIfFunction, identityOpacityFrames, media, oneWayAnimation, twoWayAnimation} from '@startlibs/utils'\nimport {ErrorBoundary} from '../ErrorBoundary'\nimport {useFlipAnimation} from '../Flip'\n\nexport const dialogFadeInDown = oneWayAnimation('opacity: 0; transform: translateY(50px);', 'opacity: 1; transform: translateY(0);')\nconst [dialogModalIn, dialogModalOut] = twoWayAnimation('opacity: 0;', 'opacity: 1;')\nexport {dialogModalIn, dialogModalOut}\n\nexport const Modal = styled.div`\n position: fixed;\n top:0;\n bottom:0;\n left:0;\n right:0;\n will-change: opacity;\n background-color: rgba(0,0,0,0.7);\n ${props => props.$blurBackdrop && `backdrop-filter: blur(10px);`}\n`\n\nexport const ModalContainer = styled.div`\n position: fixed;\n top:0;\n bottom:0;\n left:0;\n right:0;\n /* Barra invisível mantendo a LARGURA NATIVA da calha (scrollbar-color não\n colapsa a largura como scrollbar-width:none / ::-webkit-scrollbar faziam).\n Essa calha compensa a remoção da scrollbar do body ao abrir a dialog (body\n vira overflow:hidden e o viewport alarga ~15px no fim da animação); sem ela,\n a dialog centralizada dá um pulinho lateral. Aqui: sem barra visível e sem salto. */\n scrollbar-color: transparent transparent;\n`\n\nconst DialogCenter = styled.div`\n @supports (position:sticky) {\n will-change: transform, opacity;\n &.JS-wc-off {\n will-change: auto;\n }\n } \n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n overflow-y: ${props => props.withScroll ? \"scroll\" : \"hidden\"};\n overflow-x:hidden;\n /* idem ModalContainer: calha nativa reservada (sem salto), track invisível — mas o\n polegar é visível, senão dialog mais alta que a tela rola sem nenhuma pista.\n Claro porque a calha fica sobre o backdrop escuro. Sem overflow, o Chromium não\n desenha polegar → não sobra track fantasma. */\n scrollbar-color: rgba(255,255,255,0.6) transparent;\n position:fixed;\n top:0;\n bottom:0;\n left:0;\n right:0;\n align-items: center;\n ${media.desktop`\n padding: ${props => props.fullscreen ? '1rem' : '3rem 0.5rem;'};\n `}\n ${media.mobile`\n padding: ${props => props.fullscreenOnMobile ? '0' : '0.5rem'};\n `}\n`\n\nconst PopupSlot = styled(Slot)`\nposition: absolute;\nleft:0;\ntop: 0;\nwidth: 100%;\n`\nconst RelativeSlot = styled(Slot)`\nwidth:100%;\nposition: absolute;\n`\nconst editableSelector = 'textarea,input,[contenteditable]'\nconst focusableSelector = 'button,a,'+editableSelector\n\nconst shouldPreventResolvers = []\nlet shouldPreventDialogPop = Promise.resolve()\nexport const preventDialogPop = (cb) => {\n shouldPreventDialogPop = shouldPreventDialogPop.then(() => {\n new Promise((res) => {\n shouldPreventResolvers.push(res)\n cb()\n })\n })\n}\nexport const waitForPop = () => {\n return shouldPreventDialogPop\n}\nconst preventDialogPopState = (e) => {\n const resolver = shouldPreventResolvers.shift()\n if (resolver) {\n e.stopImmediatePropagation()\n resolver()\n }\n}\n\nwindow.addEventListener(\"popstate\",preventDialogPopState)\n\nconst fixPosition = (query, fn) => {\n const elements = document.querySelectorAll(query)\n if (elements.length) {\n Array.prototype.slice.call(elements).forEach(fn)\n }\n}\n\nlet openLayers = 0\nlet fakedScrollTop = 0\nexport const isFakeScrolled = () => openLayers>0 && fakedScrollTop > 0\nexport const removeWindowScroll = (opening, keepDisabledScroll) => {\n if (opening) {\n openLayers = Math.max(openLayers+1,1)\n if (openLayers>1) {\n return\n }\n } else {\n openLayers = Math.min(openLayers-1,0)\n if (openLayers<0) {\n return\n }\n }\n const finishReset = (marginRight, scrollTop) => {\n // body.style.paddingRight = marginRight + 'px'\n window.scroll(window.scrollLeft || window.scrollX || 0, scrollTop)\n if (keepDisabledScroll) { return }\n fixPosition('.navbar,.JS-fix-dialog-scroll', n => {\n if (opening) {\n const {right} = window.getComputedStyle(n)\n n.style.right = (parseInt(right) + marginRight) + 'px'\n } else {\n n.style.right = null\n }\n })\n fixPosition('.JS-fix-dialog-scroll-transform', n => {\n if (marginRight) {\n n.style.transform = window.getComputedStyle(n).transform + ` translateX(-${marginRight / 2}px)`\n } else {\n n.style.transform = null\n }\n })\n\n fixPosition('.JS-on-open-dialog', n => {\n if (opening) {\n n.classList.add('JS-dialog-open')\n } else {\n n.classList.remove('JS-dialog-open')\n }\n })\n window.requestAnimationFrame(()=>window.dispatchEvent(new CustomEvent('resize', {detail: {dialog: true}})))\n }\n\n const body = document.body\n let bodyWidth = body.offsetWidth\n if (opening) {\n const scrollTop = window.pageYOffset\n fakedScrollTop = scrollTop\n if (keepDisabledScroll) {\n body.style.overflowY = 'scroll'\n } else {\n body.style.overflow = 'hidden'\n }\n const marginRight = (body.offsetWidth - bodyWidth)\n\n body.style.position = 'fixed'\n body.style.top = -scrollTop + \"px\"\n body.style.left = '0'\n if (!keepDisabledScroll) {\n body.style.right = marginRight + 'px'\n } else {\n body.style.right = '0'\n }\n\n finishReset(marginRight,scrollTop)\n } else {\n fakedScrollTop = 0\n // setTimeout(() => {\n const scrollTop = parseInt(body.style.top)\n body.style.overflow = ''\n\n body.style.position = ''\n body.style.top = ''\n body.style.left = ''\n body.style.right = ''\n finishReset(0,-scrollTop)\n // },250)\n }\n}\n\nconst {href: originalHref, hash: originalHash} = window.location\n\nconst [useDialogLayers, getDialogLayersSize] = willUseLayers(React.useLayoutEffect)\nexport {useDialogLayers, getDialogLayersSize}\n\nexport const DialogContainer = forwardRef((\n {\n children, title, closeDialog, closeOnClick, dontRefocus, onConfirm, prev, next, form, noFormWrap, withFormWrap, placement = 'Dialog',\n DialogErrorContent, customHref, animation = dialogFadeInDown, animationTiming, animationLeaveEffect, animationEnterEffect, skipKeys,fullscreenOnMobile, fullscreen, confirmChanges = false, skipDom, modalRef, skipCheckFocus,\n autoComplete, blurBackdrop\n },\n forwardedRef) => {\n\n const dialogRef = useEnsureRef(forwardedRef)\n const prevActiveElement = useRefState(document.activeElement)\n const modal = useEnsureRef(modalRef)\n const modalScroll = useRef()\n const mouseDownInModal = useRefState()\n const previousHash = useRefState(window.location.hash)\n\n const [layerIndex, {isTop, getSize}] = useDialogLayers({\n onFirst: () => {\n waitForPop().then(() => {\n if (customHref && encodeURI(customHref) === window.location.hash) {\n window.history.replaceState(history.state, '', window.location.pathname)\n window.history.pushState({dialog: true}, '', customHref)\n } else {\n window.history.pushState({dialog: true}, '', window.location.href + (customHref || \"\"))\n }\n })\n // clearPreventDialogPop()\n if (document.body.scrollHeight === document.body.clientHeight) {\n modal.current.style.overflowY = \"scroll\"\n if (modalScroll.current) {\n modalScroll.current.style.overflowY = \"scroll\"\n }\n }\n // resetNavbar(true)\n },\n onRemove: (layers) => {\n if (\n (layers === 0 && _.get('dialog', window.history.state) === true) ||\n (customHref && window.location.hash === encodeURI(customHref))\n ) {\n preventDialogPop(() => {\n window.history.back()\n })\n }\n },\n onEmpty: () => {\n if (document.body.scrollHeight > document.body.clientHeight) {\n if (modalScroll.current) {\n modalScroll.current.style.overflowY = \"hidden\"\n }\n } else if (modal.current) {\n modal.current.style.overflowY = \"scroll\"\n }\n removeWindowScroll(false)\n }\n })\n\n const confirmCloseDialog = () => {\n if (form && form.getHasChanged() && confirmChanges) {\n form.confirm()\n .then(closeDialog)\n } else {\n callIfFunction(closeDialog)\n }\n }\n/*\n useEffect(() => () => {\n setTimeout(() => {\n if (window.location.hash === previousHash.get() && _.get('dialog', window.history.state) === true) {\n console.log(\"???\")\n }\n }, 100)\n }, [])*/\n\n const pastFirstTime = React.useRef()\n\n\n useEffect(() => {\n if (customHref && window.location.hash !== customHref) {\n // if (pastFirstTime.current) {\n waitForPop().then(() => {\n if (window.location.hash) {\n window.history.replaceState({dialog: true}, '', customHref)\n } else {\n window.history.pushState({dialog: true}, '', customHref)\n }\n })\n // } else {\n // window.history.pushState({dialog: true}, '', customHref)\n // pastFirstTime.current = true\n // }\n previousHash.set(encodeURI(customHref))\n }\n }, [customHref])\n\n useEffect(() => {\n window.addEventListener('keydown', checkKey)\n window.addEventListener('focusin', checkFocus)\n window.addEventListener('popstate', checkHistory)\n return () => {\n window.removeEventListener('keydown', checkKey)\n window.removeEventListener('focusin', checkFocus)\n window.removeEventListener('popstate', checkHistory)\n if (!dontRefocus && document.body.contains(prevActiveElement.get()) && prevActiveElement.get().matches(focusableSelector)) {\n setTimeout(() => prevActiveElement.get().focus(), 0)\n }\n }\n }, [])\n\n\n const checkHistory = (e) => {\n if (!isTop()/* || (previousHash.get() !== window.location.hash && !customHref)*/) return\n if (_.get('willOpenDialog', window.history.state) === true) { return }\n if (_.get('dialog', window.history.state) !== true) {\n window.history.pushState({dialog: true}, '', window.location.href)\n }\n confirmCloseDialog()\n }\n\n const checkFocus = (e) => {\n if (!isTop() || skipCheckFocus) return\n if (modal.current && !e.target.closest('.' + modal.current.className.split(' ').join('.'))) {\n const nextTab = modal.current.querySelector('[tabindex]')\n if (nextTab)\n nextTab.focus()\n }\n }\n\n const checkKey = (e) => {\n if (!isTop() || skipKeys || e.target?.className?.indexOf(\"JS-dialog-skip-evts\")>=0 || e.target?.closest(\".JS-dialog-skip-evts\")) return\n if (modal.current && e.shiftKey && e.keyCode === 9 && modal.current.querySelector('[tabindex]') === document.activeElement) {\n e.preventDefault()\n const prevTab = [].slice.call(modal.current.querySelectorAll('[tabindex]')).reduce((acc, el) => el.tabIndex >= acc.tabIndex ? el : acc, {tabIndex: -1})\n if (prevTab && prevTab.focus)\n prevTab.focus()\n }\n if (e.key === 'Escape') {\n e.preventDefault()\n confirmCloseDialog()\n } else if (e.key === 'Enter') {\n if (e.target) {\n const target = e.target.closest(focusableSelector + ',div')\n if (target && (target.tagName.toLowerCase() !== 'input' || target.form || target.type.toLowerCase() === 'file') && target.matches(focusableSelector))\n return\n }\n e.preventDefault()\n e.stopPropagation()\n if (onConfirm) {\n onConfirm()\n } else if (form) {\n form.submitForm()\n }\n } else if (!e.target.matches(editableSelector)) {\n if (e.key === 'ArrowLeft' && prev) {\n prev()\n } else if (e.key === 'ArrowRight' && next) {\n next()\n }\n }\n }\n\n const checkClick = (e) => {\n if (closeOnClick && e.target === e.currentTarget && mouseDownInModal.get()) {\n confirmCloseDialog()\n }\n mouseDownInModal.set(false)\n }\n const mouseDown = (e) => {\n mouseDownInModal.set(e.target === e.currentTarget)\n }\n\n const usingForm = withFormWrap || (form && !noFormWrap)\n\n useFlipAnimation(dialogRef, animation, true, {\n nestedFlip: !skipDom,\n onEnterEnd: () => {\n if (getSize() === 1) {\n removeWindowScroll(true);\n }\n if (document.body.scrollHeight === document.body.clientHeight) {\n modal.current.style.overflowY = \"none\"\n }\n if (modalScroll.current) {\n modalScroll.current.style.overflowY = \"scroll\"\n }\n },\n leaveEffect:animationLeaveEffect,\n enterEffect:animationEnterEffect,\n timing:animationTiming\n })\n useFlipAnimation(modal, !skipDom && identityOpacityFrames, true,{timing:animationTiming})\n\n const content = <>\n <PopupSlot name={'Popup-' + layerIndex}/>\n <ErrorBoundary title={callIfFunction(title)} closeDialog={closeDialog} Error={DialogErrorContent}>\n {callIfFunction(children, {confirmCloseDialog}, dialogRef, fullscreenOnMobile)}\n </ErrorBoundary>\n </>\n\n return (\n <Fill name={placement}>\n {\n skipDom\n ? content\n : <>\n <AnimatedModal timing={animationTiming} blurBackdrop={blurBackdrop}/>\n <ModalContainer ref={modal}>\n\n <DialogCenter autoComplete={autoComplete} className=\"JS-has-wc\" withScroll={getSize()>1} fullscreen={fullscreen} fullscreenOnMobile={fullscreenOnMobile} ref={modalScroll} as={usingForm ? 'form' : undefined} onClick={checkClick}\n onSubmit={usingForm ? () => {} : undefined}\n onMouseDown={mouseDown}>\n {content}\n </DialogCenter>\n </ModalContainer>\n </>\n }\n </Fill>\n )\n})\n\nexport const AnimatedModal = React.forwardRef(({timing,nestedFlip,enterEffect,leaveEffect,modalIn = dialogModalIn, modalOut = dialogModalOut, blurBackdrop,...props},ref) => {\n const modal = useEnsureRef(ref)\n useFlipAnimation(modal, modalIn, modalOut,{timing,nestedFlip,leaveEffect,enterEffect})\n return <Modal {...props} $blurBackdrop={blurBackdrop} ref={modal}/>\n})\n\n","import React, {useEffect, useState} from 'react'\nimport {useEnsureRef, willUseSharedState, willUseSharedCallback} from '@startlibs/core'\nimport styled from 'styled-components'\nimport _ from 'lodash/fp'\nimport {callIfFunction} from '@startlibs/utils'\n\n\nconst TOP_TRIGGER = (posInfo,refInfo) => {\n // Started sticking.\n if (posInfo.bottom < refInfo.top) {\n return true\n }\n // Stopped sticking.\n if (posInfo.bottom >= refInfo.top &&\n posInfo.bottom < refInfo.bottom) {\n return false\n }\n}\nconst BOTTOM_TRIGGER = (posInfo,refInfo) => {\n // Started sticking.\n if (posInfo.top > refInfo.bottom) {\n return true\n }\n if (posInfo.top <= refInfo.bottom &&\n posInfo.top > refInfo.top) {\n return false\n }\n}\n\nconst SentinelStyle = styled.div`\n position:absolute;\n visibility: hidden;\n height:1px;\n width: 1px;\n ${props => props.addCss}\n`\n\nexport const willUseIsSticky = (options = {}) => {\n\n const [useRegister, onChange] = willUseSharedCallback()\n const [useSharedIsSticky,, setSharedIsSticky] = willUseSharedState()\n\n const createObserver = (root) => window.IntersectionObserver ? new window.IntersectionObserver((records, observer) => {\n for (const record of records) {\n const targetInfo = record.boundingClientRect\n const rootBoundsInfo = record.rootBounds\n if (!rootBoundsInfo) {\n return\n }\n onChange(targetInfo,rootBoundsInfo, record.target, record.isIntersecting)\n }\n },{root,...options}) : {observe:_.identity,unobserve:_.identity}\n\n const observerMap = new Map()\n const getObserver = (root = null) => {\n const result = observerMap.get(root)\n if (result) {\n return result\n }\n const observer = createObserver(root)\n observerMap.set(root,observer)\n return observer\n }\n \n let activeObserved = []\n const resetObservers = (root = null) => {\n const observer = getObserver(root)\n activeObserved.forEach((observed) => {\n observer.unobserve(observed)\n observer.observe(observed)\n })\n }\n\n const WithIsSticky = React.forwardRef(({className, id, css, children,bottom, root, intersection,onChange},ref) => {\n const ensuredRef = useEnsureRef(ref)\n const [isSticky,setIsSticky] = useState(false)\n\n useRegister((posInfo,refInfo,target, isIntersecting) => {\n if (ensuredRef.current === target) {\n const value = intersection ? isIntersecting : (bottom ? BOTTOM_TRIGGER(posInfo,refInfo) : TOP_TRIGGER(posInfo,refInfo))\n if (value!==undefined) {\n setIsSticky(value)\n callIfFunction(onChange,value)\n if (!id) {\n setSharedIsSticky(value)\n } else if (value) {\n setSharedIsSticky(id)\n }\n }\n }\n })\n\n useEffect(() => {\n setIsSticky(false)\n getObserver(callIfFunction(root)).observe(ensuredRef.current)\n activeObserved = activeObserved.concat(ensuredRef.current)\n return () => {\n // observer.unobserve(ref.current)\n activeObserved = _.without([ensuredRef.current],activeObserved)\n }\n },[])\n\n const renderSentinel = (css = \"\") => <SentinelStyle addCss={css} className={className} ref={ensuredRef} />\n\n return children\n ? children(renderSentinel,isSticky)\n : renderSentinel(css)\n\n })\n\n\n return [WithIsSticky, useSharedIsSticky, resetObservers]\n}","import React from 'react';\nimport _ from 'lodash/fp'\nimport styled, {css} from 'styled-components'\nimport {darken} from 'polished'\n\nimport {callIfFunction, customTheme, getColor, media} from '@startlibs/utils'\nimport {StartlibsConsumer, useEnsureRef} from '@startlibs/core'\n\nimport {Button} from './Button'\nimport {Icon} from './Icon'\nimport {LoadingDiv} from './LoadingDiv'\nimport {fixDoubledLastMarginBottom} from './SplitColumnsContainer'\nimport {DialogContainer} from './containers/DialogContainer'\nimport {willUseIsSticky} from './willUseIsSticky'\n\nexport const DialogIcon = styled(Icon)`\n font-size: 60px;\n width: 8rem;\n text-align: center;\n color: #d2d2d2;\n right: 0;\n top: 1rem;\n position: absolute;\n ${media.desktop`\n top: 0\n `}\n`\n\nconst CloseIcon = styled(Icon).attrs(_.assign({icon: 'x'}))`\n position: absolute;\n width: 32px;\n height: 32px;\n font-size: 24px;\n line-height: 32px;\n cursor: pointer;\n border-radius: 50%;\n text-align: center;\n color: rgba(0,0,0,0.3);\n transition: 0.2s linear;\n z-index: 1000;\n top: 1rem;\n right: 1rem;\n &:hover {\n background-color: rgba(0,0,0,0.075);\n }\n `\n\nconst DialogIllustration = styled.img`\n max-width: 16rem;\n position: absolute;\n right: 1rem;\n bottom: 0;\n ${media.mobile`\n display: none;\n `}\n`\n\nconst DialogContent = styled((props) =>\n <div {...props}>\n {fixDoubledLastMarginBottom(props.children)}\n {props.icon && <DialogIcon icon={props.icon}/>}\n {props.illustration && <DialogIllustration src={props.illustration}/>}\n </div>\n)`\n outline:none;\n width: 100%;\n position: relative;\n min-height: 5rem;\n ${props => props.icon && css`\n padding-right: 8rem;\n min-height: 6rem;\n `}\n ${props => props.illustration && css`\n padding-right: 15rem;\n ${media.mobile`\n padding-right: 1.5rem;\n `}\n `}\n p {\n font-size: 14px;\n }\n `\n\nconst DialogTitle = styled.h2`\n margin-bottom: 1rem;\n padding-bottom: 1rem;\n ${props => props.fixTitleMargin && `\n padding-bottom: 0;\n `}\n ${media.mobile`\n font-size: 19px;\n `}\n`\n\nconst DialogFooter = styled.div`\n display: block;\n padding-top: 1rem;\n margin-top: 1rem;\n align-items: stretch;\n text-align: right;\n ${props => props.sticky && css`\n position: sticky;\n background: white;\n width: inherit;\n z-index: 50;\n ${media.desktop`\n bottom: -3rem;\n margin-left: -2rem;\n margin-right: -2rem;\n margin-bottom: -1.5rem;\n margin-top: 0.5rem;\n padding: 1.5rem 2rem;\n border-radius: 0 0 1rem 1rem;\n `}\n ${media.mobile`\n bottom: -0.5rem;\n padding: 0.75rem 1.75rem;\n margin-bottom: -1rem;\n margin-left: -1.75rem;\n margin-right: -1.75rem;\n `}\n ${props => props.isSticky && `\n box-shadow: 0 0px 2px 0 rgba(0,0,0,0.1), 0 0px 5px 1px rgba(0,0,0,0.15);\n border-radius: 0;\n `}\n `}\n ${media.max(370)`\n ${Button} {\n min-width: unset;\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n }\n `}\n // Footer's plain (non-colored) buttons use the \"light\" look; colored variants keep their color.\n // ponytail: for a plain footer button that shows a loading spinner, pass \\`light\\` explicitly so the spinner renders dark instead of white-on-light.\n ${Button}:not(.styled-button-colored) {\n background: ${props => darken(0.03, getColor('bluishGray')(props))};\n color: ${getColor('gray90')};\n &:hover {\n background: ${props => darken(0.06, getColor('bluishGray')(props))};\n }\n &:active {\n background: ${props => darken(0.09, getColor('bluishGray')(props))};\n }\n }\n `\n\nconst FooterAuxiliaryContainer = styled.div`\n flex-grow: 1;\n align-self: center;\n display: inline-block;\n padding-right: 1rem;\n float: left;\n`\n\n// THIS IS NEEDED FOR LOADING ANIMATION ON DialogWithImageHeader\n\nexport const DialogContentWrapper = styled(LoadingDiv)`\n padding: 2rem;\n margin: -2rem;\n ${media.mobile`\n padding: 1.75rem;\n margin: -1.75rem;\n `}\n`\nconst DialogAlwaysVisibleDiv = styled.div`\n padding: 2rem 2rem 0;\n margin: -2rem;\n ${media.mobile`\n padding: 1.75rem 1.75rem 0;\n margin: -1.75rem;\n `}\n`\n// END\n\nconst Dialog = styled(React.forwardRef(({className, skipWrap, wrapChildren, stickyFooter, fixTitleMargin, skipCloseIcon, isLoading, footer, Content, children, title, illustration, icon, auxiliarActions, container = true, onClose, ...props}, outerRef) => {\n const ref = useEnsureRef(outerRef)\n const [WithIsSticky] = willUseIsSticky()\n\n const handleClose = React.useCallback(async () => {\n if (onClose) await onClose().catch(console.error)\n if (props.closeDialog) props.closeDialog()\n }, [onClose, props.closeDialog])\n\n const alwaysVisible = (confirmCloseDialog) => <>\n {\n props.closeDialog && !skipCloseIcon &&\n <CloseIcon className=\"JS-dialog-close\" onClick={confirmCloseDialog}/>\n }\n {\n title &&\n <DialogTitle fixTitleMargin>{callIfFunction(title)}</DialogTitle>\n }\n </>\n\n const content = <>\n {\n Content &&\n <DialogContent icon={icon} illustration={illustration}>{callIfFunction(Content)}</DialogContent>\n }\n {\n !Content && children &&\n <DialogContent icon={icon} illustration={illustration}>{wrapChildren ? wrapChildren(children) : callIfFunction(children)}</DialogContent>\n }\n {\n Content && children && (wrapChildren ? wrapChildren(children) : callIfFunction(children))\n }\n {\n footer &&\n <WithIsSticky bottom>{(sentinel, isSticky) => <>\n <DialogFooter isSticky={isSticky} sticky={stickyFooter}>\n {auxiliarActions && <FooterAuxiliaryContainer>{callIfFunction(auxiliarActions)}</FooterAuxiliaryContainer>}\n {callIfFunction(footer)}\n </DialogFooter>\n {sentinel()}\n </>\n }</WithIsSticky>\n }\n </>\n\n const dialog = (confirmCloseDialog) => <div\n className={className + \" JS-has-wc JS-dialog\"}\n ref={ref}\n >\n {skipWrap\n ? <>\n {alwaysVisible(confirmCloseDialog)}\n {content}\n </>\n : <>\n <DialogAlwaysVisibleDiv>\n {alwaysVisible(confirmCloseDialog)}\n </DialogAlwaysVisibleDiv>\n <DialogContentWrapper isLoading={isLoading}>\n {content}\n </DialogContentWrapper>\n </>\n }\n </div>\n\n return container\n ? <DialogContainer {...props} DialogErrorContent={DialogErrorContent}\n ref={ref}\n title={title}\n closeDialog={handleClose}\n >{({confirmCloseDialog}) => dialog(confirmCloseDialog)}</DialogContainer>\n : dialog(handleClose)\n}))`\n @supports (position:sticky) {\n will-change: transform, opacity;\n &.JS-wc-off {\n will-change: auto;\n }\n }\n \n border-radius: 24px;\n padding: 2rem;\n background-color: white;\n width: 100%;\n max-width: 45rem;\n /* Override opcional via prop. Fica ANTES do media.mobile de propósito: no mobile\n o max-width:100% de lá continua ganhando. Inerte sem a prop → zero efeito em\n quem já ajusta a largura por css=\"max-width:...\". */\n ${props => props.$maxWidth && css`max-width: ${props.$maxWidth};`}\n margin: auto;\n position: relative;\n align-self: baseline;\n display: block; \n overflow: clip;\n > h3:first-child {\n margin-top: 0.5rem;\n }\n p {\n line-height: 140%;\n }\n ${media.mobile`\n padding: 1.75rem;\n max-width: 100%;\n ${props => props.fullscreenOnMobile && `\n border-radius: 0;\n min-height: 100%;\n `};\n `}\n ${props => props.closeDialog && css`\n ${DialogTitle} {\n padding-right: 2rem;\n }\n `}\n ${customTheme('Dialog')}\n`\n\n\nexport {\n FooterAuxiliaryContainer,\n DialogTitle,\n DialogFooter,\n DialogContent,\n CloseIcon,\n Dialog\n}\n\nexport const ConfirmDialog = (props) => <Dialog {...props} placement=\"Confirm-Dialog\">{props.children}</Dialog>\n\nexport const DefaultConfirmDialog = (props) => (\n <StartlibsConsumer>{({confirmDialogLabels}) => {\n const handleCancel = async () => {\n if (props.onCancel) props.onCancel()\n if (props.onClose) await props.onClose().catch(console.error)\n }\n\n return (\n <ConfirmDialog\n title={confirmDialogLabels.title}\n closeDialog={handleCancel}\n onClose={props.onClose}\n onConfirm={props.onConfirm}\n footer={<>\n <Button onClick={handleCancel}>{confirmDialogLabels.cancel}</Button>\n <Button\n hover=\"success\" isLoading={props.isLoading}\n onClick={props.onSaveInstead}\n >{confirmDialogLabels.confirm}</Button>\n <Button autoFocus alert onClick={props.onConfirm}>{confirmDialogLabels.discard}</Button>\n </>}\n >\n <p>{confirmDialogLabels.content}</p>\n </ConfirmDialog>\n )}}\n </StartlibsConsumer>)\n\n// Estado de erro genérico da dialog: badge circular centralizado (mesma linguagem\n// dos error pages da app) no lugar do ícone cinza flutuando no canto. Cores em rgba\n// (não getColor) pra não depender dos tokens de tema da app que consome a lib.\nconst DialogErrorLayout = styled.div`\n text-align: center;\n /* max-width (não <br/>) força a quebra do título em ~2 linhas como o error page,\n mas deixa telas estreitas quebrarem sozinhas. Ajuste fino se o corte não bater. */\n ${DialogTitle} {\n max-width: 18rem;\n margin-left: auto;\n margin-right: auto;\n }\n ${DialogContent} {\n min-height: 0; /* mata o vão vazio que sobrava acima do botão */\n p {\n max-width: 20rem;\n margin-left: auto;\n margin-right: auto;\n }\n }\n ${DialogFooter} {\n text-align: center;\n margin-top: 0;\n padding-top: 0.5rem;\n }\n`\n\nconst DialogErrorBadge = styled.div`\n width: 72px;\n height: 72px;\n margin: 0 auto 1.5rem;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.06);\n display: flex;\n align-items: center;\n justify-content: center;\n ${Icon} {\n font-size: 40px;\n color: rgba(0, 0, 0, 0.4);\n }\n`\n\nexport const DialogErrorContent = ({ closeDialog, onClose, title }) => {\n const handleClose = React.useCallback(async () => {\n if (onClose) await onClose().catch(console.error)\n if (closeDialog) closeDialog()\n }, [onClose, closeDialog])\n\n return (\n <StartlibsConsumer>\n {({ ErrorDialog: { title, content, close } }) => (\n <Dialog as=\"div\" $maxWidth=\"30rem\">\n {closeDialog && <CloseIcon onClick={handleClose} />}\n <DialogErrorLayout>\n <DialogErrorBadge><Icon icon=\"warning\"/></DialogErrorBadge>\n {title && <DialogTitle fixTitleMargin>{title}</DialogTitle>}\n <DialogContent>{content}</DialogContent>\n <DialogFooter>\n <Button highlight rounded onClick={handleClose}>{close}</Button>\n </DialogFooter>\n </DialogErrorLayout>\n </Dialog>\n )}\n </StartlibsConsumer>\n )\n}\n\nexport const DialogError = ({ closeDialog, onClose }) => {\n const handleClose = React.useCallback(async () => {\n if (onClose) await onClose().catch(console.error)\n if (closeDialog) closeDialog()\n }, [onClose, closeDialog])\n\n return (\n <StartlibsConsumer>\n {({ ErrorDialog: { title } }) => (\n <Dialog closeDialog={handleClose} title={title}>\n <DialogErrorContent closeDialog={handleClose} onClose={onClose} />\n </Dialog>\n )}\n </StartlibsConsumer>\n )\n}\n","import {useToggle,useFill} from '@startlibs/core'\n\nexport const useDialog = (dialog, args = [], toggleCallback) => {\n const toggle = useToggle(false,toggleCallback)\n useFill(\"Dialog\", toggle.isOpen !== false && dialog(toggle.close), [toggle.isOpen, ...args])\n return toggle.open\n}\nexport const useDialogWithToggle = (dialog, args = []) => {\n const toggle = useToggle()\n useFill(\"Dialog\", toggle.isOpen !== false && dialog(toggle), [toggle.isOpen, ...args])\n return toggle\n}","import {willUseSharedState} from '@startlibs/core'\nimport {Button} from './Button'\nimport {Dialog} from './Dialog'\nimport {Icon} from './Icon'\nimport {useDialogWithToggle} from './useDialogWithToggle'\nimport { getColor, callIfFunction } from '@startlibs/utils';\nimport React from 'react'\nimport _ from 'lodash/fp'\nimport styled from 'styled-components';\n\nexport const WarningDialog = styled(({content, footer, withX ,closeDialog,leftButton,additionalContent,title,rightButton,className, color = \"alert\", icon = \"warning\",confirmLabel = \"Entendi\",noActions,children}) => {\n return <Dialog className={className} closeDialog={withX && closeDialog}>\n {_.isString(icon) ? <WarningDialogIcon icon={icon} color={color}/> : icon}\n {title && <WarningDialogTitle color={color}>{title}</WarningDialogTitle>}\n {content && <Content noTitle={!title} noActions={noActions}>{content}</Content>}\n {additionalContent}\n {callIfFunction(leftButton,closeDialog)}\n {confirmLabel !== false && <Button highlight onClick={closeDialog}>{confirmLabel}</Button>}\n {callIfFunction(rightButton,closeDialog)}\n {callIfFunction(footer,closeDialog)}\n {children}\n </Dialog>\n})`\n text-align: center;\n max-width: 36rem;\n padding: 2.5rem;\n ${Button} {\n margin: 0.5rem !important;\n }\n`\nexport const WarningDialogTitle = styled.h3 `\n color: ${props => getColor(props.color)(props)};\n font-weight: 500;\n font-size: 20px;\n`\nconst Content = styled.div `\n font-size: 15px;\n max-width: 27rem;\n margin: 0 auto;\n line-height: 130%;\n ${props => !props.noActions && `\n margin: 0 auto 1.5rem;\n `}\n ${props => props.noTitle &&`\n font-weight: 500;\n font-size: 16px;\n `}\n`\nexport const WarningDialogIcon = styled(Icon)`\n color: ${props => getColor(props.color)(props)};;\n font-size: 46px;\n display: block;\n margin-bottom: 1.25rem;\n`\n\nexport const useWarningDialog = () => useDialogWithToggle((toggle) =>\n <WarningDialog {...toggle.isOpen} closeDialog={toggle.close} />\n\n)\nconst [useRenderDefaultWarningDialog,,_setWarningDialog] = willUseSharedState()\n\nexport const setWarningDialog = ({as: Dialog = WarningDialog,...props}) => _setWarningDialog(<Dialog {...props} closeDialog={() => _setWarningDialog(null)}/>)\n\nexport const DefaultWarningDialog = () => {\n const [warningDialog] = useRenderDefaultWarningDialog()\n if (warningDialog) {\n return warningDialog\n }\n return null\n}","import React, {useEffect, useRef} from 'react'\nimport _ from 'lodash/fp'\nimport styled from 'styled-components'\nimport {Fill, useToggle, willUseSharedState} from '@startlibs/core'\nimport {callIfFunction, getColor, oneWayAnimation} from '@startlibs/utils'\nimport {useFlipAnimation} from './Flip'\nimport {Icon} from './Icon'\n\nconst NotificationContainer = styled.div `\n position: fixed;\n top: 0;\n height: 1px;\n left: 0;\n right: 0;\n text-align: center;\n`\n\nconst Notification = styled.div `\n padding: 1rem 4.5rem 1rem 1.5rem;\n font-size: 14px;\n font-weight: 500;\n border-radius: 10px;\n color: white;\n text-align: left;\n background: ${props => getColor(props.type)(props)};\n box-shadow: 0 2px 0px 0px rgba(0,0,0,0.1);\n min-width: 12rem;\n min-height: 48px;\n display: inline-flex;\n align-items: center;\n position: relative;\n top: 1rem;\n ${Icon} {\n color: white;\n display: inline-block;\n background-color: rgba(0,0,0,0.1);\n font-size: 18px;\n width: 24px;\n height: 24px;\n text-align: center;\n line-height: 24px;\n border-radius: 50%;\n cursor: pointer;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n right: 1rem;\n &:hover {\n background-color: rgba(0,0,0,0.2);\n }\n }\n`\n\nconst [useNotification, useNotificationRef,setNotification] = willUseSharedState()\nexport {useNotification, useNotificationRef, setNotification}\nexport const willSetNotification = (str) => () => setNotification(str)\n\nconst animation = oneWayAnimation('opacity:0; transform:translateY(-20px)', 'opacity:1;transform:translate(0)')\n\nexport const Notifications = () => {\n const toggle = useToggle()\n const [rawNotification,setNotification] = useNotification()\n\n const {msg,type,timeout = 5000} = _.isObject(rawNotification) ? rawNotification : {type:\"success\",msg:rawNotification}\n\n useEffect(() => {\n if (msg) {\n toggle.open()\n setTimeout(toggle.willCloseAfter(timeout), 100)\n }\n },[msg])\n useEffect(() => {\n if (!toggle.isOpen) {\n setNotification(null)\n }\n },[toggle.isOpen])\n\n return toggle.isOpen && (<Fill name=\"Notifications\">\n <FlipNotification type={type}>\n {callIfFunction(msg,toggle.close)}\n <Icon icon=\"x\" onClick={toggle.close}/>\n </FlipNotification>\n </Fill>)\n}\nconst FlipNotification = (props) => {\n const ref = useRef()\n useFlipAnimation(ref,animation)\n return <NotificationContainer ref={ref}><Notification id=\"js-share-notification\" {...props}/></NotificationContainer>\n}","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport {defaultAnimationMaker, morph, formatAnimation, getClientRectAnimation, toPosition} from './Flip'\nimport {oneWayAnimation} from '@startlibs/utils'\nimport {callIfFunction} from '@startlibs/utils'\n\n\nexport class FlipList extends React.Component {\n\n static defaultProps = {\n timing: defaultAnimationMaker,\n animation: oneWayAnimation(`transform: scale(1); transform-origin: center; opacity: 1;`, `transform: scale(0); transform-origin: center; opacity: 0;`)\n }\n\n componentDidUpdate(prevProps, prevState, snap) {\n if (snap) {\n const useLockedParentRect = (this.props.anchoredDownList) && snap.parentRect\n const newSnap = this.calculatePositionForAnimation(useLockedParentRect ? snap.parentRect : undefined)\n if (newSnap) { // se não tiver parentNode, verficar se há uma div sendo offsetParent, body não serve\n this.play(snap, newSnap)\n }\n }\n }\n\n play = (oldSnap, newSnap) => {\n const {animation,insertAnimation,removeAnimation, onEndAnimation, onStartAnimation, effect, skipChromeFix, timing, skipParentMorph} = this.props\n newSnap.children.forEach(newItemSnap => {\n const oldItemSnap = oldSnap.children.get(newItemSnap.domNode)\n if (!oldItemSnap) return\n const rectAnimation = getClientRectAnimation(oldItemSnap, newItemSnap)\n morph(newItemSnap.domNode,formatAnimation(rectAnimation,timing))\n })\n if (newSnap.children.size > oldSnap.children.size) {\n const newItems = Array.from(newSnap.children.values()).filter(item => !oldSnap.children.has(item.domNode))\n newItems.forEach((newItem) => {\n morph(newItem.domNode, formatAnimation(insertAnimation || animation, timing, !insertAnimation))\n })\n } else if (newSnap.children.size < oldSnap.children.size) {\n const oldItems = Array.from(oldSnap.children.values()).filter(item => !newSnap.children.has(item.domNode))\n\n oldItems.forEach((oldItem) => {\n const reinserted = this.reinsertSnap(oldItem,oldSnap.scrollTop - newSnap.scrollTop, oldItems)\n if (!reinserted) { return }\n new Promise(res => {\n morph(oldItem.domNode, formatAnimation(removeAnimation || animation, timing), res)\n setTimeout(res,1500)\n }).then(() => {\n oldItem.domNode.remove()\n })\n })\n\n }\n const rectAnimation = getClientRectAnimation(oldSnap.parent, newSnap.parent,{skipTransform:true,smallJumpFix: this.props.smallJumpFix})\n if (newSnap.parent?.domNode && !skipParentMorph) {\n const endEffect = callIfFunction(effect, newSnap.parent.domNode, {newSnap, oldSnap})\n callIfFunction(onStartAnimation)\n morph(newSnap.parent.domNode,formatAnimation(rectAnimation, timing),endEffect || onEndAnimation)\n }\n }\n\n reinsertSnap = (item,scrollDelta, allChildren) => {\n if (item.nextSibling) {\n\n if (!item.nextSibling.parentNode) {\n const next = allChildren.find(possible => item.nextSibling === possible.domNode)\n if (next) {\n return this.reinsertSnap({...item,nextSibling:next.nextSibling},scrollDelta,allChildren)\n }\n return false;\n }\n item.nextSibling.parentNode?.insertBefore(item.domNode, item.nextSibling)\n } else {\n item.parentNode.appendChild(item.domNode)\n }\n const {width,height} = item.domNode.getBoundingClientRect()\n item.domNode.style.left = item.domNode.offsetLeft + 'px'\n item.domNode.style.top = item.domNode.offsetTop - scrollDelta + 'px'\n if (!this.props.anchoredDownList) {\n item.domNode.style.marginTop = 0\n }\n item.domNode.style.marginLeft = 0\n item.domNode.style.width = width + 'px'\n item.domNode.style.height = height + 'px'\n item.domNode.style.position = 'absolute'\n callIfFunction(this.props.onReinsert,item.domNode,item)\n return true\n }\n\n getSnapshotBeforeUpdate(oldProps) {\n if (this.props.play || this.props.on !== oldProps.on || (this.props.children.length !== oldProps.children.length)) {\n return this.calculatePositionForAnimation()\n }\n return null\n }\n\n getParents = () => {\n const node = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n const {parentNode, offsetParent: possibleOffsetParent} = node\n const offsetParent = possibleOffsetParent || (window.getComputedStyle(parentNode).position !== 'static' ? parentNode : parentNode.offsetParent)\n if (!offsetParent) return {};\n const parentRect = offsetParent.getBoundingClientRect()\n return {\n offsetParent,\n parentNode,\n parentRect\n }\n }\n\n calculatePositionForAnimation = (lockedParentRect) => {\n const {parentRect, parentNode, offsetParent} = this.getParents()\n if (!offsetParent) return null\n const effectiveParentRect = lockedParentRect || parentRect\n const children = new Map();\n [].slice.call(parentNode.children).map((node) => {\n const position = toPosition(node, effectiveParentRect, {withMargins:true, numberOfSiblings: this.props.numberOfElements || 1})\n if (position) { children.set(node, position) }\n })\n return {\n children,\n parent: toPosition(offsetParent,undefined, {withMargins:true}),\n parentRect: effectiveParentRect,\n scrollTop:offsetParent.scrollTop\n }\n }\n\n render() {\n const {children, as, play, on, onStartAnimation, onEndAnimation, ...rest} = this.props\n const result = React.Children.count(children) ? children : <div style={{display: 'none'}}/>\n if (as) {\n const RenderAs = as\n return <RenderAs {...rest}>{result}</RenderAs>\n }\n return result\n }\n\n}\n","import React, {useRef} from 'react'\nimport styled from 'styled-components'\nimport {oneWayAnimation} from '@startlibs/utils'\nimport {willUseFlipSwitch} from './Flip'\nimport {useLazyConstant} from '@startlibs/core'\nimport {callIfFunction, twoWayAnimation} from '@startlibs/utils'\n\n\nconst BlockContainer = styled.div`\nposition:relative;\n`\n\nconst [fadeIn, relativeFadeout] = twoWayAnimation('opacity: 0;','opacity: 0;', 'opacity: 1;')\nconst absoluteOnLeave = oneWayAnimation('position: absolute;', 'position: absolute;')\nconst fadeOut = [absoluteOnLeave,relativeFadeout]\n\nexport const SwitchDiv = styled(({children, className,enterAnimation = fadeIn, effect, leaveAnimation = fadeOut, skipChromeFix, on,...rest}) => {\n const switchAnimation = useLazyConstant(willUseFlipSwitch)\n\n return <SwitchContainer enterAnimation={enterAnimation} effect={effect} className={className} leaveAnimation={leaveAnimation} key={on + \"\"} switchAnimation={switchAnimation} children={children} />\n})``\n\nconst SwitchContainer = ({children,switchAnimation, className, effect ,enterAnimation,leaveAnimation}) => {\n const contentRef = useRef()\n switchAnimation(contentRef,enterAnimation,leaveAnimation, {effect})\n\n return <BlockContainer ref={contentRef} className={className}>\n {callIfFunction(children)}\n </BlockContainer>\n}\n","import React, {useEffect, useMemo, useRef} from 'react'\nimport {oneWayAnimation, constrainEvent} from '@startlibs/utils'\nimport _ from 'lodash/fp'\nimport styled from 'styled-components'\nimport {rgba} from 'polished'\nimport {Fill, useToggle, willUseSharedState} from '@startlibs/core'\nimport {getUID, ifUndefined, media, callIfFunction, getColor} from '@startlibs/utils'\nimport {css} from \"styled-components/macro\";\nimport {FlipList} from './FlipList'\nimport {Icon} from './Icon'\nimport {Loading} from './Loading'\nimport {SwitchDiv} from './SwitchDiv'\n\nconst NotificationContainer = styled.div `\n position: fixed;\n bottom: 0;\n max-height: 100%;\n z-index: 999999; \n display: flex;\n flex-direction: column-reverse;\n align-items: flex-end;\n overflow-y: auto;\n right: 1.5rem;\n ${media.desktop`\n padding-bottom: 1.5rem;\n `}\n ${media.mobile`\n padding-bottom: 0.75rem;\n `}\n ::-webkit-scrollbar {\n width: 21px;\n height: 21px;\n }\n ::-webkit-scrollbar-thumb {\n pointer-events: all;\n background: rgba(0,0,0,0.4);\n border-radius: 100px;\n background-clip: padding-box;\n border: 6px solid transparent;\n min-height: 30px;\n min-width: 30px;\n &:hover {\n background: rgba(0,0,0,0.5);\n background-clip: padding-box;\n border: 6px solid transparent;\n }\n }\n ::-webkit-scrollbar-corner {\n background: transparent;\n }\n ${media.desktop`\n &.JS-dialog-open {\n right: 2.75rem;\n }\n `}\n ${media.mobile`\n left: 0.75rem;\n right: 0.75rem;\n `}\n`\n\nconst ToastBox = styled.div`\n color: white;\n font-size: 14px;\n font-weight: 500;\n border-radius: 12px;\n flex-shrink: 0;\n margin-top: 0.5rem;\n overflow: hidden;\n transition: 0.3s background ease, 0.4s opacity 1.5s;\n ${media.desktop`\n background: ${props => rgba(getColor(props.type)(props),ifUndefined(props.opacity,0.7))};\n max-width: 300px;\n `}\n ${media.mobile`\n background: ${props => rgba(getColor(props.type)(props),ifUndefined(props.opacity,0.8))};\n `}\n ${props => css`background: ${getColor(props.type)};`}\n`\nconst NotificationTitleContainer = styled.div`\n background: rgba(0,0,0,0.1);\n padding: 0.5rem 2.25rem 0.5rem 0.75rem;\n border-radius: 12px 12px 0 0;\n position: relative;\n min-height: 30px;\n font-size: 13px;\n display: flex;\n align-items: center;\n font-weight: 400;\n ${props => props.onClick && \"cursor: pointer;\"}\n`\nconst NotificationTitle = styled.div`\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n`\nconst NotificationContent = styled.div`\n display: flex;\n align-items: center;\n text-align: left;\n padding: 1rem 1.5rem;\n ${media.mobile`\n justify-content: center;\n `}\n`\nconst NotificationIconWrapper = styled.div`\n margin-right: 1rem;\n position: relative;\n width: 36px;\n text-align: center;\n flex-shrink: 0;\n ${Icon} {\n font-size: ${props => (props.isLoading ? 22 : (props.iconFontSize || 40))}px;\n }\n`\nconst CloseIcon = styled(Icon).attrs({icon: 'x'})`\n font-size: 20px;\n cursor: pointer;\n width: 2rem;\n height: 2rem;\n line-height: 2rem;\n text-align: center;\n position: absolute;\n top: 50%;\n right: 0.25rem;\n transform: translateY(-50%);\n border-radius: 100px;\n opacity: 0.8;\n :hover, :active {\n background: rgba(0,0,0,0.1);\n opacity: 1;\n }\n`\nconst NotificationDetails = styled.div`\n background: rgba(0,0,0,0.1);\n border-radius: 8px;\n padding: 1rem;\n margin: 0 1rem 1rem;\n font-weight: 400;\n font-size: 13px;\n`\n\nconst [useToastNotifications, _useToastNotificationsRef,setToastNotifications] = willUseSharedState([])\nexport {useToastNotifications}\nconst formatNotification = (notification,extra) =>\n _.isObject(notification)\n ? {...notification,...extra, _key: getUID()}\n : {type:\"success\",content:notification,...extra, _key: getUID()}\n\nexport const createToastNotification = (notification,timeout, closeCallback) => {\n const uid = getUID()\n let currentTimer = -1;\n let hasClosed = false;\n const close = () => {\n clearTimeout(currentTimer);\n if (hasClosed) return\n setToastNotifications(_.differenceBy('uid',_, [{uid}]))\n hasClosed = true\n callIfFunction(closeCallback)\n }\n const notificationObj = formatNotification(notification,{uid,close})\n setToastNotifications(_.concat(notificationObj))\n if (timeout>0) {\n currentTimer = setTimeout(close,timeout)\n }\n return {\n close,\n openWith:(obj,timeout) => {\n clearTimeout(currentTimer);\n if (timeout > 0) {\n currentTimer = setTimeout(close,timeout)\n }\n const notificationObj = formatNotification(obj,{uid,close})\n if (hasClosed) {\n hasClosed = false\n setToastNotifications(_.concat(notificationObj))\n } else {\n setToastNotifications(_.map(n => n.uid === uid ? {...notificationObj, _key: n._key} : n))\n }\n }\n }\n}\nexport const useToastNotificationToggle = (notification,timeout) => {\n const toggle = useToggle()\n const extraProps = useMemo(() => notification.content || notification.element ? {} : notification,[])\n const make = (notification,timeout) => notification && createToastNotification(formatNotification(notification,extraProps),timeout,() => toggle.close())\n useEffect(() => {\n if (notification.content || notification.element) {\n toggle.openWith(make(notification))\n }\n },[])\n\n return useMemo(() => ({\n close: () => toggle.get()?.close(),\n openWith: (notification,timeout) => toggle.get() ? toggle.get().openWith(formatNotification(notification,extraProps),timeout) : toggle.openWith(make(notification,timeout)),\n open: () => toggle.get() ? toggle.get().openWith(formatNotification(notification,extraProps),timeout) : toggle.openWith(make(notification,timeout))\n }),[toggle.isOpen])\n}\nexport const willShowToastNotification = (str) => () => showToastNotification(str)\n\nconst EXIT_ANIMATION_MS = 300\nconst TOAST_EASING = 'cubic-bezier(0.22, 0.61, 0.36, 1)'\nconst TOAST_TIMING = `${EXIT_ANIMATION_MS}ms ${TOAST_EASING}`\n\nconst animation = oneWayAnimation(\n 'transform: translateY(0); opacity: 1;',\n 'transform: translateY(0.25rem); opacity: 1;',\n 'transform: translateY(1rem); opacity: 0;'\n)\nconst removeAnimationReinsertPosition = e => e.style.position=''\nexport const ToastNotifications = () => {\n const [notifications,setNotifications] = useToastNotifications()\n const containerRef = useRef(null)\n const {lockWidth, unlockWidth} = useNotificationContainerWidthLock(containerRef)\n\n return (<Fill name=\"Notifications\">\n <NotificationContainer ref={containerRef} className=\"JS-on-open-dialog\">\n <FlipList animation={animation} timing={TOAST_TIMING} onReinsert={removeAnimationReinsertPosition} skipParentMorph anchoredDownList>\n {\n notifications.map(notification => {\n const closeWithLock = () => {\n lockWidth()\n notification.close()\n setTimeout(unlockWidth, EXIT_ANIMATION_MS)\n }\n\n return (\n callIfFunction(notification.element,closeWithLock) ||\n <ToastBox\n key={`toast-${notification.uid}`}\n type={notification.type}\n onClick={notification.onClick}\n opacity={notification.opacity}\n >\n {notification.title ? \n <NotificationTitleContainer onClick={notification.onClickTitle ? (e) => notification.onClickTitle(e,closeWithLock) : undefined}>\n <NotificationTitle>{notification.title}</NotificationTitle>\n {notification.closeOnX && <CloseIcon onClick={constrainEvent(closeWithLock)}/>}\n </NotificationTitleContainer>\n :\n notification.closeOnX && <CloseIcon onClick={closeWithLock}/>\n }\n <SwitchDiv on={notification._key}>\n <NotificationContent>\n {notification.icon &&\n <NotificationIconWrapper\n isLoading={notification.isLoading}\n iconFontSize={notification.iconFontSize}\n >\n <Icon icon={notification.icon}/>\n {notification.isLoading && <Loading size={36} white absolute/>}\n </NotificationIconWrapper>\n }\n <div css=\"min-width: 0;\">{callIfFunction(notification.content,closeWithLock)}</div>\n </NotificationContent>\n {notification.details &&\n <NotificationDetails onClick={constrainEvent()}>\n {notification.details}\n </NotificationDetails>\n }\n </SwitchDiv>\n </ToastBox>\n )\n })\n }\n </FlipList>\n </NotificationContainer>\n </Fill>)\n}\n\nconst useNotificationContainerWidthLock = (containerRef) => {\n const lockCountRef = useRef(0)\n const prevWidthRef = useRef(null)\n\n const lockWidth = () => {\n const el = containerRef.current\n if (!el) return\n if (lockCountRef.current === 0) {\n prevWidthRef.current = el.style.width\n const measured = el.getBoundingClientRect().width\n el.style.width = measured + 'px'\n }\n lockCountRef.current = lockCountRef.current + 1\n }\n\n const unlockWidth = () => {\n const el = containerRef.current\n if (!el) return\n const next = Math.max(0, lockCountRef.current - 1)\n lockCountRef.current = next\n if (next === 0) {\n el.style.width = prevWidthRef.current || ''\n prevWidthRef.current = null\n }\n }\n\n return {lockWidth, unlockWidth}\n}","import React, {useRef} from 'react'\nimport _ from 'lodash/fp'\nimport styled from 'styled-components'\nimport {Fill, willUseSharedState} from '@startlibs/core'\nimport {media,getColor, callIfFunction, oneWayAnimation, printerMedia} from '@startlibs/utils'\nimport {useFlipAnimation} from './Flip'\nimport {Icon} from './Icon'\nimport {darken, transparentize } from 'polished';\nimport {Button} from './Button'\n\nexport const PersistentNotification = styled.div`\n color: ${getColor('warning')};\n h4 {\n font-size: 15px;\n font-weight: 500;\n margin-bottom: 0.5rem;\n }\n p {\n font-size: 13px;\n margin-bottom: 0;\n }\n`\n\nexport const PersistentNotificationContent = styled.div`\n display: flex;\n align-items: center;\n padding: 1.5rem;\n`\nexport const PersistentNotificationIcon = styled(Icon)`\n font-size: 38px;\n width: 4rem;\n height: 4rem;\n line-height: 4rem;\n border-radius: 100px;\n text-align: center;\n background: ${props => transparentize(0.88, getColor(\"warning\")(props))};\n margin-right: 1rem;\n flex-shrink: 0;\n ${props => props.icon === 'warning' && `font-size:30px;`}\n`\nexport const PersistentNotificationActions = styled.div`\n display: flex;\n margin-top: -0.25rem;\n padding: 0 1.5rem 1.5rem;\n ${Button} {\n flex-grow: 1;\n }\n ${Button} ~ ${Button} {\n margin-left: 0;\n margin-right: 1rem;\n }\n ${media.max(390)`\n display: block;\n ${Button} {\n width: 100%;\n }\n ${Button} ~ ${Button} {\n margin-left: 0;\n margin-top: 0.75rem;\n }\n `}\n`\nexport const PersistentNotificationCloseIcon = styled(Icon).attrs({icon: 'x'})`\n position: absolute;\n width: 30px;\n height: 30px;\n font-size: 20px;\n line-height: 30px;\n cursor: pointer;\n border-radius: 50%;\n text-align: center;\n z-index: 1000;\n top: 0.5rem;\n right: 0.5rem;\n color: ${props => props.type && props.type!== 'main' ? getColor(props.type)(props) : darken(0.1, getColor(\"main\")(props))};\n background: ${props => transparentize(0.90, getColor(props.type || \"main\")(props))};\n :hover {\n background: ${props => transparentize(0.85, getColor(props.type || \"main\")(props))};\n }\n :active {\n background: ${props => transparentize(0.82, getColor(props.type || \"main\")(props))};\n }\n `\n\n\nconst [useNotifications, ,setNotifications] = willUseSharedState([])\n\nexport const openPersistentNotification = (notification) => {\n const newNotification = {priority:0,type:\"success\",...(_.isObject(notification) ? notification : {content:notification})}\n\n setNotifications(list => {\n const nextIndex = list.findIndex(n => n.priority < newNotification.priority)\n return nextIndex < 0\n ? [...list,newNotification]\n : [...list.slice(0,nextIndex),newNotification,...list.slice(nextIndex)]\n })\n return () => setNotifications(_.without([newNotification]))\n}\n\n\nconst animation = oneWayAnimation('opacity:0; transform:translateY(-20px)', 'opacity:1;transform:translate(0)')\n\nconst NotificationContainer = styled.div `\n position: fixed;\n top: 0;\n height: 0;\n right: 0;\n z-index:20;\n`\n\nconst Notification = styled.div `\n background: ${props => transparentize(0.9, getColor(props.type)(props))};\n position: relative;\n border-radius: 19px;\n`\nconst NotificationWrapper = styled.div `\n background: white;\n margin-top: ${props => props.marginTop || \"3.5rem\"};\n margin-right: 0.75rem;\n margin-left: 0.75rem;\n padding: 5px;\n border-radius: 22px;\n box-shadow: 0 0 10px 0 rgba(0,0,0,0.1), 0 1px 2px 1px rgba(0,0,0,0.15);\n max-width: 364px;\n ${media.mobile`\n margin-top: ${props => props.marginTop || \"4rem\"};\n `}\n ${printerMedia`\n display: none;\n `}\n`\nconst [useIsHiddenPersistentNotifications,,hidePersistentNotifications] = willUseSharedState(false)\nexport {useIsHiddenPersistentNotifications, hidePersistentNotifications}\nexport const PersistentNotifications = () => {\n const [notifications,setNotifications] = useNotifications()\n const [isHidden] = useIsHiddenPersistentNotifications()\n\n if (!notifications.length || isHidden) {\n return null;\n }\n const closeMessage = (e) => {\n setNotifications((list) => list.slice(1))\n }\n\n const {content,type,marginTop,...notification} = notifications[0]\n\n return <Fill name=\"PersistentNotifications\">\n <FlipNotification type={type} marginTop={marginTop}>\n {content\n ? callIfFunction(content,closeMessage)\n : <DefaultNotification type={type} _onClose={closeMessage} {...notification} />\n }\n </FlipNotification>\n </Fill>\n}\n\nconst DefaultNotification = ({type, title,body,actions, icon, skipClose,_onClose,onClose}) => {\n return <PersistentNotification>\n <PersistentNotificationContent>\n {(_.isString(icon) || !icon) ? <PersistentNotificationIcon icon={icon || type}/> : icon}\n <div>\n <h4>{title}</h4>\n {body}\n </div>\n </PersistentNotificationContent>\n {\n actions &&\n <PersistentNotificationActions>\n {actions}\n </PersistentNotificationActions>\n }\n {!skipClose && <PersistentNotificationCloseIcon type=\"warning\" onClick={_.over([_onClose,onClose])}/>}\n </PersistentNotification>\n}\n\nconst FlipNotification = (props) => {\n const ref = useRef()\n useFlipAnimation(ref,animation)\n return <NotificationContainer className=\"JS-fix-dialog-scroll\" ref={ref}>\n <NotificationWrapper marginTop={props.marginTop}><Notification id=\"js-share-notification\" {...props}/></NotificationWrapper>\n </NotificationContainer>\n}\n","import React, {useEffect, useLayoutEffect, useRef, useState} from 'react'\nimport _ from 'lodash/fp'\nimport styled from 'styled-components'\nimport {getClosestOffsetScroll} from '@startlibs/utils'\nimport {useEnsureRef} from '@startlibs/core'\nimport {getDialogLayersSize} from './DialogContainer'\n\nconst Placeholder = styled.span`\n top:0;\n left:0;\n padding: 0 !important;\n position: absolute;\n`\n/*\ntype Alignment = 'top left' | 'top center' | 'top right' |\n 'center left' | 'center center' | 'center right' |\n 'bottom left' | 'bottom center' | 'bottom right'\n\ntype Collision = 'fit fit' | 'fit flip' | 'fit fitflip' | 'fit none' |\n 'flip fit' | 'flip flip' | 'flip fitflip' | 'flip none' |\n 'flipfit fit' | 'flipfit flip' | 'flipfit fitflip' | 'flipfit none' |\n 'none fit' | 'none flip' | 'none fitflip' | 'none none'\n*/\n\nconst HORIZONTAL_MAPPING = ['left', 'center', 'right']\nconst VERTICAL_MAPPING = ['top', 'center', 'bottom']\nconst ARROW_KEY_POSITIONS = {left: '0', right: '-0', top: '0', bottom: '-0'}\n\nconst POSITIONING_BOUNDS = {left:0,top:0,right:0,bottom:0}\nexport const addPositioningBound = (key,value) => {\n POSITIONING_BOUNDS[key] += value\n return () => POSITIONING_BOUNDS[key] -= value\n}\n\nfunction getPosition(origin, offset, max, originSize, selfSize, originalAlignment, selfAlignment, onCollision, mapping, boundMargin) {\n\n // 0 pra left ou top, 1/2 pra center, 1 pra right ou bottom\n const originDiff = originSize * (mapping.indexOf(originalAlignment) / 2)\n // 0 pra left ou top, -1/2 pra center, -1 pra right ou bottom\n const selfDiff = -(selfSize * (mapping.indexOf(selfAlignment) / 2))\n\n const respectingBounds = boundMargin !== false\n const upperBound = respectingBounds ? (POSITIONING_BOUNDS[mapping[0]] + boundMargin) : Number.MIN_SAFE_INTEGER\n const lowerBound = respectingBounds ? (POSITIONING_BOUNDS[mapping[2]] + boundMargin) : 0\n const newPosition = Math.max(upperBound, origin + selfDiff + originDiff + offset)\n\n const collision = Math.max(-newPosition, newPosition + selfSize - max + lowerBound)\n if (collision > 0 && onCollision !== 'none') {\n if (onCollision.indexOf('flip') >= 0) {\n const flippedPosition = getPosition(origin, -offset, max, originSize, selfSize, originalAlignment, selfAlignment, onCollision.indexOf('fit') >= 0 ? 'fit' : 'none', mapping.slice().reverse(), boundMargin)\n const flippedCollision = Math.max(-flippedPosition[0], flippedPosition[0] + selfSize - max)\n if ((collision > 0 && flippedCollision > 0) || flippedPosition[0] < upperBound) {\n return getPosition(origin, offset, max, originSize, selfSize, originalAlignment, selfAlignment, 'fit', mapping, boundMargin)\n }\n return collision < flippedCollision ? [newPosition, 'none'] : [flippedPosition[0], flippedPosition[1] === 'fit' ? 'flipfit' : 'flip']\n } else {\n const minBound = respectingBounds ? upperBound : 0\n const fittedPosition = Math.max(minBound, Math.min(newPosition, max - selfSize - lowerBound))\n return [fittedPosition, fittedPosition !== newPosition ? 'fit' : 'none']\n }\n } else {\n return [newPosition, 'none']\n }\n}\n\nconst arrowShadow = {\n top: '-1px -1px 2px -1px rgba(0,0,0,.25)',\n right: '1px -1px 2px -1px rgba(0,0,0,.25)',\n bottom: '1px 1px 2px -1px rgba(0,0,0,.25)',\n left: '-1px 1px 2px -1px rgba(0,0,0,.25)'\n}\n\nconst translate = (position, offset) => (position === 'left' ? '-50%' : position === 'right' ? '50%' : offset) + ',' +\n (position === 'top' ? '-50%' : position === 'bottom' ? '50%' : offset)\n\nconst ARROW_DEFAULT_SIZE = 14\n\nexport const DefaultArrow = styled.div`\n background-color: #fff;\n position: absolute;\n width: ${ARROW_DEFAULT_SIZE}px;\n height: ${ARROW_DEFAULT_SIZE}px;\n transform: translate(-50%,50%) rotate(45deg);\n bottom: 0;\n left: 50%;\n box-shadow: ${arrowShadow.bottom};\n`\n\nexport const usePositioning = (\n element,\n {\n my = 'top right',\n offset = '0 0', // x y\n at = 'bottom right',\n onCollision = 'flip flip',\n arrow,\n arrowPadding = 10,\n fill,\n useLayers = true,\n fixed,\n bottom: onBottom,\n left: onLeft,\n right: onRight,\n top: onTop,\n keepWidth = true,\n boundMargin = 6,\n respectBounds,\n respectOffsetScroll,\n on,\n placeholderAs\n },\n arrowRefOpt\n) => {\n const placeholder = useRef()\n const arrowRef = useEnsureRef(arrowRefOpt)\n const [positionInfo, setPositionInfo] = useState()\n\n const setPosition = (retry=0) => {\n if (retry>10) { return }\n if (!element.current?.style || !(placeholder.current?.offsetParent || placeholder.current?.parentNode?.offsetParent)) {\n setTimeout(()=>setPosition(retry+1),100)\n return\n }\n if (keepWidth) {\n element.current.style.width = ''\n } else {\n element.current.style.maxWidth = ''\n }\n const placeholderOffsetParent = (placeholder.current?.offsetParent || placeholder.current?.parentNode?.offsetParent)\n const usingLayer = respectOffsetScroll || useLayers && getDialogLayersSize() > 0\n const scrollOwner =\n usingLayer\n ? (_.isFunction(respectOffsetScroll) ? respectOffsetScroll(element.current.offsetParent) : getClosestOffsetScroll(element.current.offsetParent))\n : {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset}\n\n // console.log({scrollOwner,scrollTop:scrollOwner.scrollTop,pageYOffset:window.pageYOffset})\n\n const scrollY = !isNaN(scrollOwner.scrollTop) ? scrollOwner.scrollTop : window.pageYOffset\n const scrollX = !isNaN(scrollOwner.scrollLeft) ? scrollOwner.scrollLeft : window.pageXOffset\n const getRespectOffsetScrollTopLeft = () => {\n const {top,left} = placeholder.current.getBoundingClientRect()\n const {top:scrollOwnerTop, left: scrollOwnerLeft} = scrollOwner.getBoundingClientRect()\n return {top: top-scrollOwnerTop,left: left-scrollOwnerLeft}\n }\n const {left: leftPlusBorder, top: topPlusBorder} =\n respectOffsetScroll\n ? getRespectOffsetScrollTopLeft()\n :placeholder.current.getBoundingClientRect()\n\n const {borderLeftWidth, borderTopWidth} = window.getComputedStyle(placeholderOffsetParent)\n const left = leftPlusBorder - parseInt(borderLeftWidth, 10)\n const top = topPlusBorder - parseInt(borderTopWidth, 10)\n const {offsetWidth: parentOffsetWidth, offsetHeight: parentOffsetHeight} = (placeholderOffsetParent)\n const {offsetWidth: popupOffsetWidth, offsetHeight: popupOffsetHeight} = element.current\n const {width:popupCurrentWidth} = element.current.getBoundingClientRect()\n const [offsetX, offsetY] = [].concat(offset).join(' ').split(' ').map(_ => Number(_ || 0))\n const simplePositioning = [onTop, onRight, onBottom, onLeft].map(_ => _ === true ? 'center' : _)\n const simplePositioningIndex = simplePositioning.findIndex(_ => _)\n const bodyWidth = document.body.offsetWidth - (usingLayer ? parseInt(getComputedStyle(document.body).paddingRight, 10) : 0)\n // Barra fixa inferior (footer mobile) registrada em POSITIONING_BOUNDS conta como\n // borda da tela: sem isso o popup se posiciona atrás dela. Com respectBounds o\n // desconto já vem do lowerBound em getPosition, não descontar duas vezes.\n const windowHeight = window.innerHeight - (respectBounds ? 0 : POSITIONING_BOUNDS.bottom)\n\n const [verticalCollision, horizontalCollision] = onCollision.split(' ')\n const [verticalMy, horizontalMy] = [my, 'bottom $', '$ left', 'top $', '$ right'][simplePositioningIndex + 1].replace('$', simplePositioning[simplePositioningIndex]).split(' ')\n const [verticalAt, horizontalAt] = [at, 'top $', '$ right', 'bottom $', '$ left'][simplePositioningIndex + 1].replace('$', simplePositioning[simplePositioningIndex]).split(' ')\n\n const [processedLeft, collisionH] = getPosition(left, offsetX, bodyWidth, parentOffsetWidth, fill ? parentOffsetWidth : popupOffsetWidth, horizontalAt, horizontalMy, horizontalCollision, HORIZONTAL_MAPPING,!!respectBounds && boundMargin)\n const [processedTop, collisionV] = getPosition(top, offsetY, windowHeight, parentOffsetHeight, popupOffsetHeight, verticalAt, verticalMy, verticalCollision, VERTICAL_MAPPING,!!respectBounds && boundMargin)\n\n\n const flippedV = collisionV.indexOf('flip') >= 0\n const flippedH = collisionH.indexOf('flip') >= 0\n\n\n //arrow\n const arrowSide = Math.abs(VERTICAL_MAPPING.indexOf(verticalMy) - VERTICAL_MAPPING.indexOf(verticalAt)) === 2 ? (flippedV ? verticalAt : verticalMy) :\n Math.abs(HORIZONTAL_MAPPING.indexOf(horizontalMy) - HORIZONTAL_MAPPING.indexOf(horizontalAt)) === 2 ? (flippedH ? horizontalAt : horizontalMy) : ''\n const arrowElement = arrowRef.current\n const arrowOnVerticalSide = arrowSide === 'left' || arrowSide === 'right'\n const arrowSize = arrowElement ? arrowElement.getBoundingClientRect()[arrowOnVerticalSide ? 'height' : 'width'] : (ARROW_DEFAULT_SIZE * Math.sqrt(2))\n const [arrowOffset, popupArrowOffset] = arrowOnVerticalSide ?\n processArrow(ARROW_KEY_POSITIONS[arrow] || arrow, arrowSize, arrowOnVerticalSide, parentOffsetHeight, popupOffsetHeight, processedTop - top, flippedV) :\n processArrow(ARROW_KEY_POSITIONS[arrow] || arrow, arrowSize, arrowOnVerticalSide, parentOffsetWidth, popupOffsetWidth, processedLeft - left, flippedV)\n\n\n const maxHeight = window.innerHeight - (POSITIONING_BOUNDS.top + POSITIONING_BOUNDS.bottom) - (respectBounds ? boundMargin*2 : 0)\n const maxWidth = window.innerWidth - (POSITIONING_BOUNDS.left + POSITIONING_BOUNDS.right) - (respectBounds ? boundMargin*2 : 0)\n\n element.current.style.maxHeight = ''\n if (parseInt(window.getComputedStyle(element.current).maxHeight) > maxHeight) {\n element.current.style.maxHeight = maxHeight+'px'\n }\n if (keepWidth) {\n element.current.style.width = Math.ceil(popupCurrentWidth)+\"px\"\n } else {\n element.current.style.maxWidth = maxWidth+'px'\n }\n // console.log({processedTop,top,offsetY,scrollY})\n\n\n element.current.style.top = (processedTop + (arrowOnVerticalSide ? popupArrowOffset : 0) + (fixed ? 0 : scrollY)) + 'px'\n element.current.style.left = (processedLeft + (arrowOnVerticalSide ? 0 : popupArrowOffset) + (fixed ? 0 : scrollX)) + 'px'\n\n const arrowStyle = {\n transform: `translate(${translate(arrowSide, arrowOffset[0] === 'top' || arrowOffset[0] === 'left' ? '-50%' : '50%')}) rotate(45deg)`,\n bottom:\"auto\",\n left:\"auto\",\n [arrowSide]: '0',\n boxShadow: arrowShadow[arrowSide],\n [arrowOffset[0]]: arrowOffset[1]+'px'\n }\n if (arrowRef.current) {\n Object.assign(arrowRef.current.style,arrowStyle)\n }\n\n setPositionInfo({\n atTop: (verticalAt === 'top' && !flippedV) || (verticalAt === 'bottom' && flippedV),\n atBottom: (verticalAt === 'bottom' && !flippedV) || (verticalAt === 'top' && flippedV),\n atLeft: (horizontalAt === 'left' && !flippedH) || (verticalAt === 'right' && flippedH),\n atRight: (horizontalAt === 'right' && !flippedH) || (verticalAt === 'left' && flippedH),\n fullHeight: popupOffsetHeight > maxHeight,\n fullWidth: popupOffsetWidth > maxWidth,\n arrowSide,\n arrowOffset,\n arrowStyle\n })\n\n if (fill) {\n element.current.style.width = parentOffsetWidth + 'px'\n }\n if (fixed) {\n element.current.style.position = 'fixed'\n }\n }\n\n useLayoutEffect(setPosition, [on])\n\n\n useEffect(() => {\n window.addEventListener('portalReposition', setPosition)\n window.addEventListener('stepResize', setPosition)\n window.addEventListener('scroll', setPosition, {passive:true})\n return () => {\n window.removeEventListener('portalReposition', setPosition)\n window.removeEventListener('stepResize', setPosition)\n window.removeEventListener('scroll', setPosition)\n }\n }, []\n )\n\n\n const processArrow = (arrow, arrowSize, onVerticalSide, arrowContainerWidth, popupSize, deltaPopupPosition, flipped) => {\n if (!arrow) {\n return ['', 0]\n }\n const margin = arrowPadding + (arrowSize / 2)\n const [invertDirection, percent, px] = (arrow === true ? '50%' : arrow).replace(/(-)?(\\d+%)?\\s?(-?\\d+)?/, '$1:$2:$3').split(':')\n const invertAndFlipDirection = flipped ? !invertDirection : invertDirection\n const arrowPosition = onVerticalSide ? (invertAndFlipDirection ? 'bottom' : 'top') : (invertAndFlipDirection ? 'right' : 'left')\n const fromOriginCorner = arrowPosition === 'left' || arrowPosition === 'top'\n\n const popupOffset = fromOriginCorner ? deltaPopupPosition : (arrowContainerWidth - deltaPopupPosition - popupSize)\n\n /* ____________________________\n | arrow container |\n |___________________________|\n ..../\\_______\n | popup |\n |____________|\n\n |-------| = delta popup position (popupOffset)\n\n .... = arrowPadding prop, applies to both sides, moves popup or does nothing\n\n arrow prop = invert percent px // relative to arrow container\n invert = -?\n percent = (\\d+%)?\n px = (-?\\d+)?\n\n procedure:\n 1- position arrow according to container - arrowInitialPos\n 2- constrain position inside container - constrainedArrowPosition\n 3- move popup according to arrowPadding (margin) - popupDelta\n 4- final arrow position, relative to final popup position - finalArrowPosition\n */\n\n const arrowInitialPos = (parseInt(percent || 0, 10) * arrowContainerWidth / 100) + parseInt(px || 0, 10)\n const constrainedArrowPosition = (Math.min(Math.max(arrowInitialPos, 0), arrowContainerWidth))\n const arrowPositionRelativeToPopup = fromOriginCorner ? constrainedArrowPosition - popupOffset : (arrowContainerWidth - popupOffset - constrainedArrowPosition)\n const popupDelta = arrowPositionRelativeToPopup < margin ?\n (arrowPositionRelativeToPopup - margin) :\n arrowPositionRelativeToPopup > (popupSize - margin) ?\n (margin + arrowPositionRelativeToPopup - popupSize) :\n 0\n const finalPopupPosition = fromOriginCorner ? popupOffset + popupDelta : (arrowContainerWidth - popupOffset - popupDelta - popupSize)\n return [[arrowPosition,(constrainedArrowPosition - finalPopupPosition)], popupDelta]\n }\n\n const arrowElement = arrow && <DefaultArrow ref={arrowRef} />\n\n const placeholderElement = <Placeholder as={placeholderAs} ref={placeholder}/>\n return [positionInfo,placeholderElement,arrowElement]\n}","import React, {useMemo} from 'react'\nimport {Fill, useEnsureRef} from '@startlibs/core'\nimport {usePositioning} from './usePositioning'\nimport styled from 'styled-components'\nimport {getDialogLayersSize} from './DialogContainer'\n\nconst AbsoluteContainer = styled.div`\nposition: absolute;\n`\n\nexport const Reposition = React.forwardRef(({slot = 'Popup', className, onClick, children, ...rest},ref) => {\n const popupRef = useEnsureRef(ref)\n const [positionInfo, placeholder] = usePositioning(popupRef, rest)\n\n const slotName = useMemo(() => getDialogLayersSize() === 0 ? slot : (slot + '-' + (getDialogLayersSize() - 1)), [])\n return <>\n {placeholder}\n <Fill name={slotName}>\n <AbsoluteContainer {...positionInfo} onClick={onClick} className={className} ref={popupRef}>\n {children}\n </AbsoluteContainer>\n </Fill>\n </>\n})","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport _ from 'lodash/fp'\nimport styled from 'styled-components'\nimport {getScrollParent, normalizeMouse, normalizeTouch} from '@startlibs/utils'\nimport {FlipList} from './FlipList'\n\nconst {Provider, Consumer} = React.createContext({})\n\nconst areComponentsEqual = (a,b) => a === b\n\nconst DropPosition = styled.div`\n border: 2px dashed rgba(0,0,0,0.1);\n background-color: rgba(0,0,0,0.025);\n border-radius: 18px;\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n visibility: visible;\n display: block;\n border-radius: inherit;\n ${props => props.rounded && `\n border-radius: 1000rem;\n `}\n`\nconst EmptyPlaceholder = styled.div`\n position:absolute;\n`\n\nconst HORIZONTAL_DIMENSIONS = {\n min: 'left',\n max: 'right',\n axis: 'x',\n size: 'Width'\n}\nconst VERTICAL_DIMENSIONS = {\n min: 'top',\n max: 'bottom',\n axis: 'y',\n size: 'Height'\n}\n\n\nconst AUTO_SCROLL_BORDER_SIZE = 30\nconst AUTO_SCROLL_MAX_VELOCITY = 20\nconst AUTO_SCROLL_OVERFLOW_BUFFER = 100\n\nfunction easeInCubic(t) { return Math.ceil(t * t * t / (AUTO_SCROLL_MAX_VELOCITY * AUTO_SCROLL_MAX_VELOCITY)) }\n\nconst disableWillChange = (el) => {\n const willChange = el?.closest(\".JS-has-wc\")\n if (willChange) {\n willChange.classList.add('JS-wc-off')\n disableWillChange(willChange.parentNode)\n }\n}\nconst reenableWillChange = (el) => {\n const willChange = el?.closest(\".JS-has-wc\")\n if (willChange) {\n willChange.classList.remove('JS-wc-off')\n reenableWillChange(willChange.parentNode)\n }\n}\n\n\nconst shouldPreventDrag = (e) => !(e.target).closest('body,.drag-drop-item,[data-drag=\"false\"],input,textarea,button').matches('body,.drag-drop-item,[data-drag=\"true\"]')\n\nexport class DraggableItem extends React.Component {\n\n events = this.props.eventHandlers(this)\n\n render() {\n const {DragTag, as = 'div', eventHandlers, className, isDragging, droppable, dragIndex,roundedPlaceholder, inheritRadius, children, ...props} = this.props\n const Wrapper = DragTag || as\n const extraClassName = (isDragging ? ' drag-drop-placeholder' : '') + ' drag-drop-item'\n return typeof children === 'function' ?\n children({className: extraClassName, ...this.events, children: isDragging && <DropPosition rounded={roundedPlaceholder} inheritRadius={inheritRadius}/>}) :\n <Wrapper\n className={className + extraClassName}\n isDragging={isDragging}\n {...props}\n {...this.events}\n >\n {children}\n {\n isDragging &&\n <DropPosition rounded={roundedPlaceholder} inheritRadius={inheritRadius}/>\n }\n\n </Wrapper>\n }\n}\n\nDraggableItem.a = (props) => <DraggableItem {...props} DragTag='a'/>\n\nexport const DroppableContainer = (props) =>\n <Consumer>\n {(dragProps) =>\n <DroppableContainerComponent {...props} {...dragProps} />\n }\n </Consumer>\n\n\nclass DroppableContainerComponent extends React.Component {\n\n static defaultProps = {\n placeholder: () => <EmptyPlaceholder/>\n }\n\n draggables = []\n emptyPlaceholder\n\n addProps = (children, eventHandlers, activeIndex, extraProps) =>\n children.map((c, index) =>\n c.type === DraggableItem ? React.cloneElement(c, {\n isDragging: activeIndex === index,\n dragIndex: index,\n droppable: this,\n ref: (el) => this.draggables[index] = el,\n eventHandlers: eventHandlers\n }) : c\n )\n\n toPosition = (parentRect, {scrollTop, scrollLeft}) => (el, i) => {\n if (el) {\n const domNode = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(el)\n const {width, height} = domNode.getBoundingClientRect()\n return {\n droppable: this,\n index: i,\n width,\n height,\n y: parentRect.top + domNode.offsetTop + (height / 2) + (scrollTop || 0),\n x: parentRect.left + domNode.offsetLeft + (width / 2) + (scrollLeft || 0)\n }\n }\n }\n\n getPosition = (i, scrollXY) => {\n const el = this.draggables[i]\n if (el) {\n const parent = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this).offsetParent\n const parentRect = parent.getBoundingClientRect()\n return this.toPosition(parentRect, 0)(el, i)\n }\n }\n\n getPositions = (scrollXY, dragInfo) => {\n if (this.props.allowDrop && !this.props.allowDrop(_.map(dragInfo, v => v && v.props ? v.props.id : v))) {\n return []\n }\n const parent = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this).offsetParent\n if (!parent) { return []}\n const parentRect = parent.getBoundingClientRect()\n const toPosition = this.toPosition(parentRect, scrollXY)\n const existing = this.draggables.map(toPosition).filter(_ => _)\n if (existing.length || !this.props.placeholder) return existing\n return [ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)].map(toPosition).filter(_ => _)\n }\n\n\n componentDidMount() {\n this.props.addDroppable(this)\n }\n\n componentWillUnmount() {\n this.props.removeDroppable(this)\n }\n\n repositionDragged = (array, {active, startIndex, startDroppable, activeIndex, activeDroppable}, getActiveElement) => {\n // Repositioning dereferences startDroppable.props further down. Rendering with an\n // activeDroppable but no startDroppable would take the whole tree down, so render\n // the list untouched instead and let the next commit reconcile it.\n if (!startDroppable) { return array }\n if (activeDroppable && (activeDroppable === this || startDroppable === this)) {\n // remove\n const removedOrInserted = _.pullAt(startDroppable === this ? startIndex : [], array)\n if (activeDroppable === this) {\n // insert\n removedOrInserted.splice(activeIndex, 0, getActiveElement())\n }\n return removedOrInserted\n }\n return array\n }\n\n\n getPlaceholder = (childArray, dragInfo) => childArray.find(_ => _.props.droppable) || dragInfo.startDroppable.props.children[dragInfo.startIndex]\n\n getDragged = (childArray, dragInfo) => dragInfo.startDroppable === this ?\n childArray[dragInfo.startIndex] :\n React.cloneElement(this.getPlaceholder(childArray, dragInfo), {key: childArray[0].key + 'si' + dragInfo.startIndex})\n\n\n childrenToarray = ({children, list, dragInfo}) => {\n const {startDroppable, startIndex} = dragInfo\n if (list) {\n return React.Children.toArray(children(this.repositionDragged(list, dragInfo, () => startDroppable.props.list[startIndex])))\n } else {\n const childArray = React.Children.toArray(children)\n return this.repositionDragged(childArray, dragInfo, () => this.getDragged(childArray, dragInfo))\n }\n }\n\n render() {\n const {group, placeholder, dragInfo, animation, timing, eventHandlers} = this.props\n const {active, activeIndex, activeDroppable} = dragInfo\n const childArray = this.childrenToarray(this.props)\n if (!childArray.length && placeholder) {\n return placeholder()\n }\n return <FlipList animation={animation} timing={timing} play={active}>{\n this.addProps(childArray, eventHandlers, active && activeDroppable === this && activeIndex)\n }</FlipList>\n }\n}\n\n\nexport class DraggableContainer extends React.Component {\n\n static defaultProps = {\n holdTouchTimer: 500,\n scrollOnDrag: true,\n setDragRef: () => {}\n }\n\n props/*: {\n scrollContainer,\n setItemOrder,\n children,\n noResistance,\n holdTouchTimer\n }*/\n\n ghost\n // dragEnd animates the ghost out over 300ms, so the tail of a drag is asynchronous\n // and a new drag can start before the previous one has finished. Each drag therefore\n // gets its own session holding everything its completion needs (ghost, dragInfo),\n // instead of reading the shared slots a newer drag may already have taken over.\n // dragToken identifies the drag that currently owns the shared state.\n dragToken = 0\n activeSession = null\n positions = {}\n passedResistance = false\n pressedEnough = false\n holdTouchTimer//: number\n\n preventScroll//: boolean\n state = {dragInfo: {}}\n\n droppables = {}\n offsetParent//: HTMLElement\n parent//: HTMLElement\n ghostDimensions//: GhostDimensions\n itemsPositions//: Array<{ index: number, y: number, x: number }>\n scrollContainer//: HTMLElement & any\n\n lastScrollTop//: number\n lastScrollLeft//: number\n\n settedDragRef = false\n\n preventDefault = (e) => {\n if (!shouldPreventDrag(e) && this.preventScroll)\n e.preventDefault()\n }\n\n getScrollContainer = () => {\n return this.scrollContainer = this.scrollContainer || (this.props.scrollContainer ? this.props.scrollContainer : getScrollParent((ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this))))\n }\n\n componentDidMount() {\n this.parent.addEventListener('touchmove', this.preventDefault)\n }\n\n componentWillUnmount() {\n this.parent.removeEventListener('touchmove', this.preventDefault)\n }\n\n componentDidUpdate(_, prevState) {\n if (!isNaN(this.lastScrollTop) || !isNaN(this.lastScrollLeft)) {\n this.getScrollContainer().scroll(this.lastScrollLeft, this.lastScrollTop)\n this.lastScrollLeft = this.lastScrollTop = undefined\n }\n if (this.ghost && this.ghost.parentNode) {\n this.ghost.parentNode.appendChild(this.ghost)\n }\n if (this.state.dragInfo !== prevState.dragInfo) {\n this.resetPositions()\n }\n }\n\n\n removeItem = (el) => {\n this.domItems = this.domItems.filter(e => e !== el)\n }\n\n setOffsetParent = (e) => {\n this.parent = e\n this.offsetParent = e && (window.getComputedStyle(e).position !== 'static' ? e : e.offsetParent)\n }\n\n getConstraintDimensions = () => {\n if (!this.offsetParent)\n return {left: 0, top: 0, bottom: 0, right: 0, width: 0, height: 0}\n return this.offsetParent.getBoundingClientRect()\n }\n\n\n dragStart = (draggable) => (e, {pageX, pageY, clientX, clientY}) => {\n const currentTarget = e.currentTarget\n if (shouldPreventDrag(e) || this.props.disabled) {\n return\n }\n if (e.type === 'mousedown' && e.button !== 0) {\n return\n }\n e.stopPropagation()\n this.passedResistance = false\n const holdTouchTimer = this.props.holdTouchTimer\n this.pressedEnough = !holdTouchTimer\n if (holdTouchTimer) {\n e.persist()\n this.holdTouchTimer = setTimeout(() => {\n this.pressedEnough = true\n if (window.navigator.vibrate)\n window.navigator.vibrate([65])\n if (!this.state.dragInfo.active) {\n this.dragMove(e, {pageX, pageY, clientX, clientY}, )\n }\n }, holdTouchTimer)\n }\n const {width, height, top, left} = currentTarget.getBoundingClientRect()\n const targetStyle = window.getComputedStyle(currentTarget)\n const {top: parentTop, left: parentLeft} = this.getConstraintDimensions()\n const offsetTop = parentTop + pageY - top + parseInt(targetStyle['margin-top'], 10)\n const offsetLeft = parentLeft + pageX - left + parseInt(targetStyle['margin-left'], 10)\n const {scrollTop, scrollLeft, scrollY, scrollX} = this.getScrollContainer()\n this.positions = {\n originalX: pageX, originalY: pageY,\n offsetTop, offsetLeft, ghostHeight: height, ghostWidth: width,\n ghostMarginTop: parseInt(targetStyle['margin-top'], 10),\n ghostMarginLeft: parseInt(targetStyle['margin-left'], 10),\n scrollLeft: scrollLeft || 0, scrollTop: scrollTop || 0,\n scrollY: scrollY || 0, scrollX: scrollX || 0\n }\n\n\n const ghost = currentTarget.cloneNode(true)\n ghost.className += ' dragging'\n Object.assign(ghost.style, {\n transition: '',\n position: 'fixed', display: 'none', zIndex: '10', width: width + 'px', height: height + 'px', margin: '0',\n top: (top - clientY) + 'px', left: (left - clientX) + 'px'\n })\n\n this.setupMove(ghost, currentTarget.offsetParent, draggable, {\n width,\n height,\n offsetX: pageX - left,\n offsetY: pageY - top\n })\n window.addEventListener('mousemove', this.mouseMove)\n window.addEventListener('touchmove', this.touchMove, {passive: false})\n window.addEventListener('mouseup', this.dragEnd)\n window.addEventListener('touchend', this.dragEnd)\n window.addEventListener('visibilitychange', this.dragEnd)\n window.addEventListener('blur', this.dragEnd, false)\n window.addEventListener('selectstart', this.disableSelect)\n }\n\n\n setupMove = (el, parent, item, ghostDimensions) => {\n this.ghostDimensions = ghostDimensions\n parent.click() // close popups\n this.ghost = el\n // Open this drag's session and take ownership of the shared state. Any previous\n // session is now superseded: it still holds its own ghost and dragInfo, so it can\n // finish animating and clean itself up without touching anything below.\n this.dragToken++\n this.activeSession = {\n token: this.dragToken,\n ghost: el,\n dragInfo: null,\n ended: false,\n endTimeout: null,\n onTransitionEnd: null\n }\n parent.appendChild(this.ghost)\n disableWillChange(this.ghost)\n this.setState({\n dragInfo: {\n active: false,\n startIndex: item.props.dragIndex,\n activeGroup: item.props.droppable.props.group,\n startDroppable: item.props.droppable\n }\n })\n this.settedDragRef = false\n }\n\n getScrollPosition = () => {\n const {scrollY, scrollX, scrollLeft, scrollTop} = this.getScrollContainer()\n const left = (scrollX || 0 + scrollLeft || 0) - this.positions.scrollX - this.positions.scrollLeft\n const top = (scrollY || 0 + scrollTop || 0) - this.positions.scrollY - this.positions.scrollTop\n return {scrollLeft: left, scrollTop: top}\n }\n\n resetPositions = (group = this.state.dragInfo.activeGroup) => {\n this.itemsPositions =\n this.droppables[group]\n .reduce((acc, _) => acc.concat(_.getPositions(this.getScrollPosition(), this.state.dragInfo)), [])\n .sort((a, b) => a.y - b.y || a.x - b.x)\n }\n\n move = (x, y) => {\n if (!this.settedDragRef && this.props.setDragRef) {\n this.props.setDragRef(this.ghost)\n this.settedDragRef = true\n }\n const {scrollTop, scrollLeft} = this.getScrollPosition()\n this.preventScroll = true\n let item = this.findGhostIndex(x - this.ghostDimensions.offsetX + (scrollLeft || 0), y - this.ghostDimensions.offsetY + (scrollTop || 0), this.ghostDimensions.width, this.ghostDimensions.height)\n if (!item) {\n return\n }\n const dragInfo = this.state.dragInfo\n if (item.index !== dragInfo.activeIndex || item.droppable !== dragInfo.activeDroppable) {\n this.setState({\n dragInfo: _.assign(dragInfo, {\n active: true,\n activePosition: item,\n activeIndex: item.index,\n activeDroppable: item.droppable\n })\n })\n }\n }\n\n findGhostIndex = (ghostX1, ghostY1, ghostWidth, ghostHeight) => {\n const ghostY2 = ghostY1 + ghostHeight\n const ghostX2 = ghostX1 + ghostWidth\n const centerInsideGhost = this.itemsPositions.filter(position =>\n position.y >= ghostY1 &&\n position.x >= ghostX1 &&\n position.y <= ghostY2 &&\n position.x <= ghostX2\n )\n const ghostX = ghostX1 + (ghostWidth / 2)\n const ghostY = ghostY1 + (ghostHeight / 2)\n const rectanglesIntersection = (a, b) => Math.max(0, Math.min(a.x2, b.x2) - Math.max(a.x1, b.x1)) * Math.max(0, Math.min(a.y2, b.y2) - Math.max(a.y1, b.y1))\n const closestIndex = centerInsideGhost\n .map((item) => {\n const {x, y, width, height} = item\n const area = width * height\n const intersectionArea = rectanglesIntersection(\n //at least 1px wide\n {\n x1: x - (Math.max(1, width) / 2),\n x2: x + (width / 2),\n y1: y - (Math.max(1, height) / 2),\n y2: y + (height / 2)\n },\n {x1: ghostX1, x2: ghostX2, y1: ghostY1, y2: ghostY2}\n )\n const distance = Math.sqrt(Math.pow(x - ghostX, 2) + Math.pow(y - ghostY, 2))\n return {area: intersectionArea / area, distance}\n }).reduce((iMax, {area, distance}, i, arr) => area > arr[iMax].area || (area === arr[iMax].area && distance < arr[iMax].distance) ? i : iMax, 0)\n return centerInsideGhost[closestIndex]\n }\n\n stopMoving = (session) => {\n // Completion runs from mouseup, from a transitionend, or from the 300ms fallback\n // timer, so it can be reached more than once for the same drag.\n if (!session || session.ended) { return }\n session.ended = true\n\n const {token, ghost, dragInfo} = session\n const {activeIndex, startIndex, activeGroup, activeDroppable, startDroppable} = dragInfo || {}\n if (session.endTimeout) {\n clearTimeout(session.endTimeout)\n session.endTimeout = null\n }\n if (ghost && session.onTransitionEnd) {\n ghost.removeEventListener('transitionend', session.onTransitionEnd)\n session.onTransitionEnd = null\n }\n\n // Everything below acts on this session's own ghost and dragInfo, so it stays\n // correct even once a newer drag has replaced this.ghost and this.state.dragInfo.\n const finish = () => {\n if (ghost?.parentNode) {\n reenableWillChange(ghost)\n ghost.parentNode.removeChild(ghost)\n }\n if ((activeIndex !== startIndex && activeIndex !== undefined) || (activeDroppable !== startDroppable && activeDroppable !== undefined)) {\n const promise = this.props.setItemOrder(startIndex, activeIndex, startDroppable?.props?.id, activeDroppable?.props?.id, activeGroup)\n if (promise && promise.then) {\n promise.then(() => this.clearChangedOrder(token), () => this.clearChangedOrder(token))\n } else {\n this.clearChangedOrder(token)\n }\n } else {\n this.clearChangedOrder(token)\n }\n }\n\n if (token !== this.dragToken) {\n // Superseded: a newer drag owns the shared state and the render output. Drop\n // our ghost and commit our reorder, but leave that drag's state alone.\n finish()\n return\n }\n\n this.setState({\n saving: {\n list: this.props.list,\n children: this.props.children,\n dragInfo: _.set('active', false, dragInfo || {})\n }\n }, () => {\n this.preventScroll = false\n this.props.setDragRef(null)\n this.settedDragRef = false\n finish()\n })\n }\n\n clearChangedOrder = (token) => {\n // Only the drag that still owns the shared state may reset it — a superseded\n // session clearing dragInfo here would wipe the drag currently in progress.\n if (token !== undefined && token !== this.dragToken) { return }\n this.setState({dragInfo: {}, saving: false})\n }\n\n dragMove = (e, {pageX, pageY, clientX, clientY}) => {\n const distance = Math.sqrt((this.positions.originalX - pageX) ** 2 + (this.positions.originalY - pageY) ** 2)\n if (e.type === 'mousemove') { // get touchstart and touchmove\n if (!this.passedResistance && !this.props.noResistance && distance < 5) {\n return\n }\n } else {\n if (!this.pressedEnough) {\n if (distance > 5) {\n this.dragEnd()\n }\n return\n }\n e.preventDefault()\n }\n this.passedResistance = true\n\n this.processAutoScroll(pageX, pageY, clientX, clientY)\n }\n\n completeMove = (pageX, pageY) => {\n const {scrollTop, scrollLeft} = this.getScrollContainer()\n const scrollYDelta = this.positions.scrollTop - (scrollTop || 0)\n const scrollXDelta = this.positions.scrollLeft - (scrollLeft || 0)\n const ghostLeft = pageX - this.positions.offsetLeft\n const ghostTop = pageY - this.positions.offsetTop\n const {height: parentHeight, width: parentWidth} = this.getConstraintDimensions()\n const normalizedLeft = Math.max(Math.min(ghostLeft, parentWidth - this.positions.ghostWidth - this.positions.ghostMarginLeft + scrollXDelta), 0 - this.positions.ghostMarginLeft + scrollXDelta)\n const normalizedTop = Math.max(Math.min(ghostTop, parentHeight - this.positions.ghostHeight - this.positions.ghostMarginTop + scrollYDelta), 0 - this.positions.ghostMarginTop + scrollYDelta)\n const x = (normalizedLeft - ghostLeft) + pageX - window.scrollX\n const y = (normalizedTop - ghostTop) + pageY - window.scrollY\n\n if (this.ghost) {\n this.ghost.style.transform = `translate(${x}px,${y}px)` + (this.props.ghostScale ? ' scale(' + this.props.ghostScale + ')' : '')\n this.ghost.style.display = ''\n }\n this.move(pageX - (ghostLeft - normalizedLeft), pageY - (ghostTop - normalizedTop))\n if (!this.state.dragInfo.active) {\n this.setState({\n dragInfo: _.assign(this.state.dragInfo,\n {\n activeIndex: this.state.dragInfo.startIndex,\n activeDroppable: this.state.dragInfo.startDroppable,\n active: true\n })\n }\n )\n }\n }\n\n autoScrollAnimation\n autoScrollX\n autoScrollY\n\n getFixedParentRect = (node, not) => {\n if (node) {\n if (window.getComputedStyle(node)['position'].toLowerCase() === 'fixed' && not !== node)\n return node.getBoundingClientRect()\n else\n return this.getFixedParentRect((node).offsetParent, not)\n } else {\n return {}\n }\n }\n\n calculateDistanceFromBorder = (ghost, position, getElementBeforeBorder, scrollContainer, parentRect, keys) => {\n const fixedUnderMouse = scrollContainer === window ? this.getFixedParentRect(getElementBeforeBorder(+AUTO_SCROLL_BORDER_SIZE), ghost) : {}\n const min = scrollContainer !== window ? scrollContainer.getBoundingClientRect()[keys.min] :\n (fixedUnderMouse)[keys.max] || (this.getFixedParentRect(getElementBeforeBorder(-AUTO_SCROLL_BORDER_SIZE), ghost))[keys.max] || 0\n const max = scrollContainer !== window ? scrollContainer.getBoundingClientRect()[keys.max] :\n (fixedUnderMouse)[keys.min] || (this.getFixedParentRect(getElementBeforeBorder(+AUTO_SCROLL_BORDER_SIZE), ghost))[keys.min] || window['inner' + keys.size]\n const distanceMin = position - AUTO_SCROLL_BORDER_SIZE - min\n const distanceMax = position + AUTO_SCROLL_BORDER_SIZE - max\n\n const containerMin = scrollContainer === window ? 0 : Math.max(scrollContainer.getBoundingClientRect()[keys.min], 0)\n const containerMax = scrollContainer === window ? window['inner' + keys.size] : Math.min(scrollContainer.getBoundingClientRect()[keys.max], window['inner' + keys.size])\n const afterCenter = ((position - containerMin) * 2 / (containerMax - containerMin)) > 1\n if (distanceMin < 0 && !afterCenter) return distanceMin\n if (distanceMax > 0) return distanceMax\n return 0\n }\n\n processAutoScroll = (pageX, pageY, clientX, clientY) => {\n const scrollContainer = this.getScrollContainer()\n const parentRect = this.getConstraintDimensions()\n this.autoScrollY = this.calculateDistanceFromBorder(this.ghost, clientY, (diff) => document.elementFromPoint(clientX, clientY + diff), scrollContainer, parentRect, VERTICAL_DIMENSIONS)\n // this.autoScrollX = this.calculateDistanceFromBorder(clientX, (diff) => document.elementFromPoint(clientX + diff, clientY), scrollContainer, parentRect, HORIZONTAL_DIMENSIONS)\n this.autoScrollX = 0\n // noinspection JSSuspiciousNameCombination\n const keepY = this.autoScrollX === 0 || (this.autoScrollY !== 0 && Math.abs(this.autoScrollY) < Math.abs(this.autoScrollX))\n\n this.autoScrollY = this.props.scrollOnDrag && keepY ? this.autoScrollY : 0\n this.autoScrollX = this.props.scrollOnDrag && !keepY ? this.autoScrollX : 0\n\n if (this.autoScrollX || this.autoScrollY) {\n\n this.startAutoScroll(pageX, pageY, scrollContainer)\n } else {\n if (this.autoScrollAnimation) {\n this.stopAutoScroll()\n }\n this.completeMove(pageX, pageY)\n }\n }\n\n checkLimits = (delta, boundRect, constraintRect, scrollRect, keys) => {\n if (delta > 0) {\n if (constraintRect[keys.max] + AUTO_SCROLL_OVERFLOW_BUFFER < scrollRect[keys.max]) {\n return 0\n }\n }\n if (delta < 0) {\n if (constraintRect[keys.min] - AUTO_SCROLL_OVERFLOW_BUFFER > scrollRect[keys.min]) {\n return 0\n }\n }\n return delta\n }\n\n startAutoScroll = (pageX, pageY, scrollContainer) => {\n if (!this.autoScrollAnimation) {\n this.autoScrollAnimation = window.requestAnimationFrame((timestamp) => {\n const ghostRect = (this.ghost).getBoundingClientRect()\n const parentRect = this.getConstraintDimensions()\n const scrollRect = scrollContainer === window ?\n {top: 0, bottom: window.innerHeight, left: 0, right: window.innerWidth} :\n scrollContainer.getBoundingClientRect()\n const deltaScrollX = easeInCubic(this.checkLimits(\n this.autoScrollX < 0 ? Math.max(this.autoScrollX, -AUTO_SCROLL_MAX_VELOCITY) : Math.min(this.autoScrollX, AUTO_SCROLL_MAX_VELOCITY),\n ghostRect,\n parentRect,\n scrollRect,\n HORIZONTAL_DIMENSIONS\n ))\n const deltaScrollY = easeInCubic(this.checkLimits(\n this.autoScrollY < 0 ? Math.max(this.autoScrollY, -AUTO_SCROLL_MAX_VELOCITY) : Math.min(this.autoScrollY, AUTO_SCROLL_MAX_VELOCITY),\n ghostRect,\n parentRect,\n scrollRect,\n VERTICAL_DIMENSIONS\n ))\n\n const willScroll = deltaScrollX !== 0 || deltaScrollY !== 0\n if (willScroll) {\n\n scrollContainer.scroll(\n (isNaN(scrollContainer.scrollLeft) ? scrollContainer.pageXOffset : scrollContainer.scrollLeft) + deltaScrollX,\n (isNaN(scrollContainer.scrollTop) ? scrollContainer.pageYOffset : scrollContainer.scrollTop) + deltaScrollY\n )\n }\n\n this.autoScrollAnimation = 0\n this.completeMove(pageX, pageY)\n if (willScroll) {\n this.startAutoScroll(pageX + (scrollContainer === window ? deltaScrollX : 0), pageY + (scrollContainer === window ? deltaScrollY : 0), scrollContainer)\n }\n }\n )\n } else {\n this.completeMove(pageX, pageY)\n }\n }\n\n stopAutoScroll = () => {\n window.cancelAnimationFrame(this.autoScrollAnimation)\n this.autoScrollAnimation = 0\n }\n\n dragEnd = () => {\n window.removeEventListener('touchmove', this.touchMove)\n window.removeEventListener('mousemove', this.mouseMove)\n window.removeEventListener('mouseup', this.dragEnd)\n window.removeEventListener('touchend', this.dragEnd)\n window.removeEventListener('visibilitychange', this.dragEnd)\n window.removeEventListener('blur', this.dragEnd)\n window.removeEventListener('selectstart', this.disableSelect)\n this.stopAutoScroll()\n this.props.setDragRef && this.props.setDragRef(null)\n clearTimeout(this.holdTouchTimer)\n // Wired to mouseup, touchend, visibilitychange and blur, so this can fire several\n // times for one drag. Only the first call owns the session and completes it.\n const session = this.activeSession\n if (!session) { return }\n this.activeSession = null\n session.dragInfo = this.state.dragInfo\n\n const ghost = session.ghost\n const {activeDroppable, activeIndex} = session.dragInfo\n const finalPosition = activeDroppable && activeDroppable.getPosition(activeIndex, this.getScrollPosition())\n if (activeDroppable && ghost && finalPosition) {\n const {marginTop, marginLeft, left, top} = window.getComputedStyle(ghost)\n const finalLeft = finalPosition.x - (Math.max(1, finalPosition.width) / 2) - parseInt(left) - parseInt(marginLeft)\n const finalTop = finalPosition.y - (Math.max(1, finalPosition.height) / 2) - parseInt(top) - parseInt(marginTop)\n ghost.style.transition = `transform 300ms ease-in-out 0ms, opacity 300ms ease-in-out 0ms`\n const newTransform = `translate(${finalLeft}px,${finalTop}px)`\n if ((ghost.style.transform||\"\").replace(/\\s/g,'') === newTransform) {\n this.stopMoving(session)\n } else {\n ghost.style.transform = newTransform\n session.onTransitionEnd = () => this.stopMoving(session)\n ghost.addEventListener('transitionend', session.onTransitionEnd)\n session.endTimeout = setTimeout(session.onTransitionEnd, 300)\n }\n } else {\n this.stopMoving(session)\n }\n }\n\n disableSelect(event) {\n event.preventDefault()\n }\n\n\n addDroppable = (el) => {\n this.droppables[el.props.group] = (this.droppables[el.props.group] || []).concat(el)\n }\n\n remoevDroppable = (el) => {\n this.droppables[el.props.group] = this.droppables[el.props.group].filter(_ => _ !== el)\n }\n\n mouseDown = (draggable) => normalizeMouse(this.dragStart(draggable),this.dragEnd)\n mouseMove = normalizeMouse(this.dragMove,this.dragEnd)\n touchStart = (draggable) => normalizeTouch(this.dragStart(draggable), this.dragEnd)\n touchMove = normalizeTouch(this.dragMove, this.dragEnd)\n\n providerValue = {}\n\n providerEvents = (draggable) => ({\n onMouseDown: this.mouseDown(draggable),\n onTouchStart: this.touchStart(draggable)\n })\n\n render() {\n const {setItemOrder, noResistance, animation, timing, disabled, list, ghostScale, setDragRef, scrollOnDrag, holdTouchTimer, children, ...rest} = this.props\n const {saving, dragInfo} = this.state\n this.providerValue = _.assign(\n this.providerValue,\n {\n addDroppable: this.addDroppable,\n removeDroppable: this.remoevDroppable,\n dragInfo: saving ? saving.dragInfo : dragInfo,\n eventHandlers: this.providerEvents\n }\n )\n if (this.scrollContainer) {\n const scrollContainer = this.getScrollContainer()\n this.lastScrollTop = (isNaN(scrollContainer['scrollTop']) ? scrollContainer['pageYOffset'] : scrollContainer['scrollTop']) || undefined\n this.lastScrollLeft = (isNaN(scrollContainer['scrollLeft']) ? scrollContainer['pageXOffset'] : scrollContainer['scrollLeft']) || undefined\n }\n return (\n <Provider value={this.providerValue}>\n <div {...rest} ref={this.setOffsetParent}>\n <DroppableContainer animation={animation} timing={timing} list={saving ? saving.list : list} placeholder={false}>\n {saving ? saving.children : children}\n </DroppableContainer>\n </div>\n </Provider>\n )\n }\n}\n\n\n// type GhostDimensions = { offsetX: number, offsetY: number, width: number, height: number }\n","import React, {useMemo} from 'react'\nimport styled, {css} from 'styled-components'\nimport {Fill, useEnsureRef} from '@startlibs/core'\nimport {useFlipAnimation} from './Flip'\nimport {getDialogLayersSize} from './containers/DialogContainer'\nimport {usePositioning} from './containers/usePositioning'\nimport {twoWayAnimation, customTheme} from '@startlibs/utils'\n\nconst [fadeIn, fadeOut] = twoWayAnimation(`opacity:0;`, `opacity:1;`)\n\nconst PopupDiv = styled.div`\n position: absolute;\n background-color: #FFF;\n box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 10px -2px rgba(0,0,0,0.15), 0 0px 2px 0px rgba(0,0,0,0.2);\n border-radius: 8px;\n padding: 1rem;\n text-align: initial;\n line-height: 140%;\n font-size: 14px;\n z-index: 999;\n ${props => props.atTop && css`\n margin-top: -0.25rem;\n `}\n ${props => props.atBottom && css`\n margin-top: 0.25rem;\n `}\n ${customTheme('Popup')}\n`\n\nexport const Popup = React.forwardRef(({slot = 'Popup',skipPortal, animation = fadeIn, leaveAnimation = true, animationOptions, arrowRef, className, onClick, children, ...rest},ref) => {\n const popupRef = useEnsureRef(ref)\n const [positionInfo, placeholder, arrow] = usePositioning(popupRef, rest, arrowRef)\n\n // leaveAnimation=false → sem animação de saída (nenhum clone no unmount): útil quando\n // o popup é portalado num slot persistente (ex: NavbarPopup) e o dono desmonta na\n // navegação — senão o clone da saída fica órfão no slot. Default true = comportamento atual.\n useFlipAnimation(popupRef, animation, leaveAnimation, animationOptions)\n const slotName = useMemo(() => getDialogLayersSize() === 0 ? slot : (slot + '-' + (getDialogLayersSize() - 1)), [])\n const popupContainer = <PopupDiv {...positionInfo} onClick={onClick} className={className} ref={popupRef}>\n {arrow}\n {children}\n </PopupDiv>\n return skipPortal ? popupContainer : <>\n {placeholder}\n <Fill name={slotName}>\n {popupContainer}\n </Fill>\n </>\n})","import React, {useEffect, useMemo} from 'react'\nimport _ from 'lodash/fp'\nimport styled, {css} from 'styled-components'\nimport {Popup} from './Popup'\nimport {useRefState, useToggle} from '@startlibs/core'\nimport {customTheme,twoWayAnimation} from '@startlibs/utils'\n\nconst TooltipContainer = styled.div`\n display: inline-block;\n ${props => props.isWrapper ?\n `position:relative;` :\n css`\n position:absolute;\n top:0;\n left:0;\n bottom:0;\n right:0;\n ${props => props.isOpen && 'pointer-events: none;'}\n `} \n`\nconst TooltipPopup = styled(Popup)`\n font-size: 12px;\n pointer-events: none;\n background-color: rgba(0,0,0,0.6);\n box-shadow: none;\n color: white;\n padding: 0.25rem 1rem;\n border-radius: 100px;\n ${customTheme('Tooltip')}\n`\n\nconst [fadeIn, fadeOut] = twoWayAnimation(`opacity:0;`, `opacity:1;`)\n\nconst isEllipsis = (event) => event.currentTarget.firstChild && event.currentTarget.firstChild.offsetWidth < event.currentTarget.firstChild.scrollWidth\n\nconst RECENTLY_CLOSED_TIMEOUT = 200\nlet recentlyClosed = false\nconst openRef = {current:null}\n\nexport const Tooltip = ({children, delay = 400, instant, whenEllipsis, content, showOnClick, showOnMount, clickTimeout = 3000, ...rest}) => {\n\n const tooltip = useToggle()\n const timeout = useRefState(-1)\n\n // showOnMount (ms): abre sozinho ao montar (hint) e some após o tempo dado. O\n // hover continua normal — se o usuário passa o mouse durante a janela, o open\n // cancela o closeAfter (clearClosing) e o tooltip fica até o mouseleave.\n useEffect(() => {\n if (!showOnMount) return\n tooltip.open()\n tooltip.closeAfter(showOnMount)\n // Dispensa o hint na primeira interação do usuário: clique em qualquer lugar\n // (o popup tem pointer-events:none, então todo clique é \"fora\") ou scroll.\n // O assentamento da página é resize (não scroll), então não dispara isso.\n const dismiss = () => tooltip.close()\n document.addEventListener('click', dismiss, {once: true})\n window.addEventListener('scroll', dismiss, {once: true, passive: true})\n // O conteúdo da página pode assentar depois do mount (imagens/dados async),\n // mudando a posição do âncora — mas o popup fixed só reposiciona em scroll/\n // resize, então ficava travado no lugar antigo. Enquanto o hint está visível,\n // observa o crescimento da página e reposiciona (portalReposition → setPosition).\n const ro = new ResizeObserver(() => window.dispatchEvent(new CustomEvent('portalReposition')))\n ro.observe(document.body)\n const stopRO = setTimeout(() => ro.disconnect(), showOnMount)\n return () => {\n document.removeEventListener('click', dismiss)\n window.removeEventListener('scroll', dismiss)\n ro.disconnect()\n clearTimeout(stopRO)\n }\n }, [])\n\n // Modo clique: abre no clique e some sozinho após clickTimeout (closeAfter é\n // à prova de unmount). Não borbulha stopPropagation — quem usa decide isso.\n const openOnClick = () => {\n tooltip.open()\n tooltip.closeAfter(clickTimeout)\n }\n\n // Long-press no mobile: hover não existe e \"segurar\" não dispara mouseenter, então\n // sem isso o tooltip não reaparece no toque. touchstart arma um timer; se segurou\n // além do delay, reusa o openOnClick. Se o press disparou, preventDefault no touchend\n // suprime o clique sintético (segurar espia, não aciona).\n const touchTimer = useRefState(-1)\n const didLongPress = useRefState(false)\n const onTouchStart = () => {\n didLongPress.set(false)\n touchTimer.set(setTimeout(() => {\n didLongPress.set(true)\n openOnClick()\n // Dispensa no scroll em QUALQUER lugar (como o hint do showOnMount): o touchmove do\n // container só pegaria scroll com o dedo ainda no alvo — soltar e rolar não fecharia.\n // tooltip.close é estável (useMemo []) e no-op após unmount; {once} se auto-remove.\n window.addEventListener('scroll', tooltip.close, {once: true, passive: true})\n }, delay))\n }\n const onTouchEnd = (e) => {\n clearTimeout(touchTimer.get())\n if (didLongPress.get()) e.preventDefault()\n }\n // Só cancela o press pendente — não abrir no meio de um scroll iniciado sobre o alvo.\n const onTouchMove = () => clearTimeout(touchTimer.get())\n\n // Remove o listener de scroll pendente se desmontar antes de rolar (evita leak da closure).\n useEffect(() => () => window.removeEventListener('scroll', tooltip.close), [])\n\n const mouseEnter = (e) => {\n if (!whenEllipsis || (_.isFunction(whenEllipsis) ? whenEllipsis : isEllipsis)(e)) {\n timeout.set(setTimeout(() => {\n\n tooltip.open()\n if (recentlyClosed && openRef.current) {\n openRef.current.remove()\n }\n },(instant || recentlyClosed) ? 0 : delay))\n !children && e.currentTarget.parentNode.addEventListener('mouseleave', onMouseLeave)\n }\n }\n\n const onMouseLeave = (e) => {\n clearTimeout(timeout.get())\n if (tooltip.get()) {\n timeout.set(false)\n !children && e.currentTarget.removeEventListener('mouseleave', onMouseLeave)\n const currentlyClosed = recentlyClosed = setTimeout(() => {\n recentlyClosed = recentlyClosed === currentlyClosed ? false : recentlyClosed\n },RECENTLY_CLOSED_TIMEOUT)\n tooltip.close()\n }\n }\n\n const getAnimation = () => {\n if (recentlyClosed && timeout.get()!==false) {\n return ''\n } else {\n return fadeIn\n }\n }\n\n const canLongPress = content && !showOnClick\n\n return <TooltipContainer isOpen={tooltip.isOpen} isWrapper={!!children}\n onMouseUp={showOnClick ? undefined : onMouseLeave}\n onMouseLeave={(children && !showOnClick) ? onMouseLeave : undefined}\n onMouseEnter={showOnClick ? undefined : mouseEnter}\n onTouchStart={canLongPress ? onTouchStart : undefined}\n onTouchEnd={canLongPress ? onTouchEnd : undefined}\n onTouchMove={canLongPress ? onTouchMove : undefined}\n onClick={showOnClick ? openOnClick : undefined}>\n {\n tooltip.isOpen && content &&\n <TooltipPopup animation={getAnimation} animationOptions={{ref:openRef}} top={!(rest.bottom || rest.left || rest.right || rest.at || rest.my)} {...rest}>\n {content}\n </TooltipPopup>\n }\n {children}\n </TooltipContainer>\n}\n","import React, {useState, useMemo, useEffect, useRef, forwardRef} from 'react';\nimport ReactDOM from 'react-dom'\nimport styled, {css, isStyledComponent} from 'styled-components'\n\nimport {\n Fill,\n useEnsureRef,\n useRefState,\n useToggle,\n willUseLayers,\n willUseSharedState\n} from '@startlibs/core';\nimport {darken, transparentize} from 'polished'\nimport {isMemo} from 'react-is'\nimport {\n stopPropagation,\n getColor,\n ifProp,\n callIfFunction,\n customTheme,\n oneWayAnimation,\n animationTiming,\n styledExtend,\n media\n} from '@startlibs/utils'\nimport mitt from 'mitt'\n\nimport {Button} from './Button'\nimport {useFlipEnter, useFlipLeave} from './Flip'\nimport {Icon} from './Icon'\nimport {Link} from './Link'\nimport {getDialogLayersSize} from './containers/DialogContainer'\nimport {usePositioning} from './containers/usePositioning'\nimport {createPressAndMoveEvent, isMobile} from '@startlibs/utils'\n\n\nconst fadeIn = oneWayAnimation('opacity: 0', 'opacity: 1')\nconst slideDown = oneWayAnimation('transform: translateY(-10px); pointer-events: none', 'transform: translateY(0); pointer-events: none')\nconst slideUpOnTop = oneWayAnimation('transform: translateY(10px); pointer-events: none', 'transform: translateY(0); pointer-events: none')\nconst slideRight = oneWayAnimation('transform: translateX(-10px)', 'transform: none;')\nconst slideLeftOnLeft = oneWayAnimation('transform: translateX(10px); pointer-events: none', 'transform: translateX(0px); pointer-events: none')\n\nconst popupAnimation = animationTiming('0.2s ease-out')\n\nconst areComponentsEqual = (a,b) => a === b\n\nexport const ListItem = styled.li`\n position: relative;\n font-size: 13px;\n & > * {\n padding: 11px 1.5rem 11px 3.5rem;\n display: block;\n }\n ${props => props.hasSubmenu && `\n & > * {\n padding-right: 3rem;\n }\n `}\n ${Icon}, .icon {\n font-size: ${props => props.iconSize || 23}px;\n position: absolute;\n padding-left: 0.25rem;\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3.5rem;\n text-align: center;\n }\n ${media.mobile`\n font-size: 15px;\n & > * {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n ${Icon}, .icon {\n font-size: ${props => (props.iconSize || 23) + 2}px;\n }\n `}\n & > a {\n color: inherit;\n font-weight: inherit;\n text-decoration: inherit;\n }\n & > a, & > label {\n cursor: pointer;\n }\n ${ifProp('hover', css`\n & > a, & > label {\n // background: ${props => lighten(0.53, getColor(\"main\")(props))};\n background: ${props => transparentize(0.88, getColor(\"main\")(props))};\n color: ${props => darken(0.03, getColor(\"main\")(props))};\n }`)}\n ${ifProp('highlight', css`\n color: ${getColor('main')};\n `)}\n input[type=\"radio\"] {\n display: none;\n }\n ${ifProp('noActions', `\n max-width: 17rem;\n color: rgba(0,0,0,0.4);\n pointer-events: none;\n text-align: center;\n white-space: normal;\n `)}\n ${ifProp('withButton', css`\n padding: 0.25rem 1rem;\n ${Button} {\n width: 100%;\n color: white;\n font-weight: 500;\n padding: 10px 1.25rem;\n ${media.mobile`\n padding: 13px 1.25rem;\n `}\n }\n `)}\n ${ifProp('smallPaddingRight', css`\n & > * {\n padding-right: 1.5rem;\n }\n `)}\n ${customTheme('ListItem')}\n`\n\nconst ListItemDescText = styled.div`\n font-size: 11px;\n margin-top: 0.25rem;\n opacity: 0.6;\n ${media.mobile `\n font-size: 12px;\n `}\n`\nconst ListItemHelpText = styled.span`\n opacity: 0.5;\n`\n\nexport const ListMenu = styled.ul`\n padding: 0.5rem 0;\n cursor: default;\n overflowY: auto;\n text-align: left;\n color: inherit;\n user-select: none;\n`\n\nexport const ContextListMenu = styled(ListMenu)`\n position: absolute;\n z-index: 999;\n background-color: white;\n backdrop-filter: blur(20px);\n background-color: rgb(255 255 255 / 80%);\n box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 10px -2px rgba(0,0,0,0.15), 0 0px 2px 0px rgba(0,0,0,0.2);\n border-radius: 12px;\n margin-bottom: 0.5rem;\n overflow: auto;\n max-height: 100vh;\n max-height: 100dvh;\n max-width: 100vw;\n max-width: 100dvw;\n ${props => props.withoutIcons && `\n ${ListItem} > * {\n padding-left: 1.5rem;\n }\n `}\n ${ifProp('sub', css`\n ${props => props.fullHeight ? '' : (props.atTop ? 'margin-top: -0.5rem;' : 'margin-top: 0.5rem;')}\n\n ${ifProp('atRight', `\n margin-left: -4px;\n `, `\n margin-left: 4px;\n `)}\n `)}\n ${customTheme('ContextMenu')}\n`\n\nexport const StickyContainer = styled.div`\n position: sticky;\n background: white;\n ${props => props.atBottom && `\n bottom: -0.5rem;\n padding-bottom: 0.5rem;\n margin-bottom: -0.5rem;\n `}\n ${props => props.atTop && `\n top: -0.5rem;\n padding-top: 0.5rem;\n margin-top: -0.5rem;\n `}\n`\n\nexport const ListSeparator = styled.li`\n border-bottom: 1px solid rgba(0,0,0,0.1);\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n cursor: default;\n height: 0;\n ${ifProp('lighten', css`\n border-color: rgba(255,255,255,0.15);\n `)}\n`\n\nexport const ListHeading = styled.li`\n display: flex;\n align-items: center;\n padding: .5rem 1rem;\n color: rgba(0,0,0,0.4);\n font-size: 12px;\n text-transform: uppercase;\n :after {\n content: '';\n flex-grow: 1;\n margin-left: 0.75rem;\n height: 1px;\n background: rgba(0,0,0,0.15);\n }\n`\n\nconst SubmenuArrowIcon = styledExtend(Icon)`\n font-size: 13px;\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3rem;\n text-align: center;\n`\n\n\nlet layerCursor = 0\n\nexport class SimpleLi extends React.Component {\n\n static isKeyboardNavigable = true\n static defaultProps = {\n emitter: mitt()\n }\n\n componentWillUnmount() {\n this.props.emitter.off('confirm', this.confirm)\n }\n\n componentDidUpdate() {\n if (this.props.hover) {\n this.scrollToVisibility()\n }\n }\n\n componentDidMount() {\n this.props.emitter.on('confirm', this.confirm)\n if (this.props.selected && this.props.setCursorOnHover) {\n this.props.setCursorOnHover(this.props.index)\n const el = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n const list = el.parentNode\n list.scrollTop = el.offsetTop + (el.offsetHeight / 2) - (list.offsetHeight / 2)\n }\n }\n\n scrollToVisibility = () => {\n const el = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n const list = el.parentNode\n if (el.offsetTop < list.scrollTop) {\n list.scrollTop = el.offsetTop\n } else if (el.offsetTop + el.offsetHeight > list.scrollTop + list.offsetHeight) {\n list.scrollTop = el.offsetTop + el.offsetHeight - list.offsetHeight\n }\n }\n\n confirm = () => {\n if (this.props.hover) {\n const node = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n node.click()\n }\n }\n onMouseEnter = () => this.props.setCursorOnHover && this.props.setCursorOnHover(this.props.index)\n onMouseOut = () => this.props.setCursorOnHover && this.props.setCursorOnHover(-1)\n\n touchEnd = (e) => {\n if (this.props.children) {\n e.preventDefault()\n if (!this.props.hover)\n this.onMouseEnter()\n }\n }\n\n onClick = (e) => {\n this.props.onClick && this.props.onClick()\n }\n\n render() {\n const {label, layerIndex, href, linkTo, prefixWith, subMenu, icon, children, ...rest} = this.props\n const Tag = (linkTo) ? Link : 'a'\n return <ListItem\n {...rest}\n onClick={this.onClick}\n onMouseLeave={this.onMouseOut}\n onMouseEnter={this.onMouseEnter}\n onTouchEnd={this.touchEnd}\n >\n <Tag href={href} to={linkTo}>\n {prefixWith}\n {icon && <Icon icon={icon}/>}\n {label}\n </Tag>\n </ListItem>\n }\n}\n\nexport const Li = React.forwardRef(({emitter = mitt(), index, menuSlot, keepOpen, hover, layerIndex, hoverCursor, passTouchThrough, children, setCursorOnHover, onClick, prefixWith, linkTo, icon, label,descText,helpText, target, href, ...rest},ref) => {\n const nodeRef = useEnsureRef(ref)\n const tagRef = useRef()\n const subMenu = useToggle()\n const subPrevented = useRefState(false)\n\n const onOpenSub = () => {\n subPrevented.set(false)\n if (hover && children) {\n subMenu.open()\n }\n }\n\n const onPreventSub = (subIndex) => {\n if (index !== subIndex)\n subMenu.close()\n subPrevented.set(true)\n }\n\n const confirm = () => {\n if (hover) {\n nodeRef.current.click()\n }\n }\n\n useEffect(() => {\n if (hover) {\n try {\n const el = nodeRef.current\n const parent = el.parentElement\n const stickyContainer = parent.lastChild\n const stickyContainerHeight =\n (stickyContainer && stickyContainer.tagName === \"DIV\" && (stickyContainer.offsetTop - parent.scrollTop) < parent.offsetHeight)\n ? stickyContainer.offsetHeight\n : 0\n if (el.offsetTop > parent.offsetHeight + parent.scrollTop - stickyContainerHeight - el.offsetHeight) {\n parent.scroll(0, el.offsetTop - parent.offsetHeight + el.offsetHeight + stickyContainerHeight)\n } else if (el.offsetTop < parent.scrollTop) {\n parent.scroll(0, el.offsetTop)\n }\n } catch (e) {}\n }\n emitter.on('confirm', confirm)\n emitter.on('preventSub', onPreventSub)\n emitter.on('openSub', onOpenSub)\n return () => {\n emitter.off('confirm', confirm)\n emitter.off('preventSub', onPreventSub)\n emitter.off('openSub', onOpenSub)\n }\n }, [hover])\n\n useEffect(() => () => subMenu.close(), [])\n\n useEffect(() => {\n if (children && !isMobile()) {\n if (hover) {\n if (!subMenu.isOpen || subMenu.closing || !subPrevented.get()) {\n subMenu.open()\n }\n } else {\n if (subMenu.isOpen) {\n if (hoverCursor === -1) {\n // Mouse saiu de todos os itens — provavelmente indo até o submenu (que\n // abre ao lado, com um pequeno gap). Janela generosa; ao alcançá-lo, o\n // onMouseEnter/onMouseMove do submenu chama subMenu.open e cancela.\n subMenu.closeAfter(450)\n } else {\n // Mouse foi para outro item do menu — mantém os 200ms originais.\n subMenu.closeAfter(200)\n }\n emitter.emit('preventSub', index)\n }\n }\n }\n }, [hoverCursor])\n\n const onMouseMove = (e) => {\n if (!hover) {\n callIfFunction(setCursorOnHover, index)\n }\n e?.stopPropagation()\n }\n\n const onMouseOut = (e) => {\n callIfFunction(setCursorOnHover, -1)\n e?.stopPropagation()\n }\n\n const onClickHandler = (e) => {\n if (children || keepOpen) {\n e.stopPropagation()\n }\n if (children) {\n if (hover) {\n subMenu.toggle()\n } else {\n onMouseMove()\n }\n } else {\n callIfFunction(onClick, e)\n }\n }\n\n const onCloseSub = () => emitter.emit('openSub')\n\n const addProps = (children) => React.Children.map(children, c => React.cloneElement(c, {\n fixed: rest.fixedPosition,\n closing: subMenu.closing,\n onMouseMove: subMenu.open,\n // onMouseEnter não borbulha, então não é barrado pelo stopPropagation dos itens\n // do submenu (linha onMouseMove do Li). Garante que alcançar o submenu sempre\n // cancele o fechamento agendado por closeAfter(200), mantendo-o aberto.\n onMouseEnter: subMenu.open,\n onClose: onCloseSub,\n sub: true,\n slot: c.props.slot || menuSlot\n }))\n\n const content = <>\n {prefixWith}\n {icon && <Icon icon={icon}/>}\n {label} {helpText && <ListItemHelpText>({helpText})</ListItemHelpText>}\n {descText && <ListItemDescText>{descText}</ListItemDescText>}\n {children && <SubmenuArrowIcon icon=\"arrow-right\"/>}\n </>\n\n const Tag = linkTo ? Link : 'a'\n return <ListItem\n ref={nodeRef}\n {...rest}\n hover={hover}\n onClick={onClickHandler}\n onMouseLeave={onMouseOut}\n onMouseMove={onMouseMove}\n hasSubmenu={children}\n >\n {\n (rest.withButton || rest.noActions)\n ? content\n : <Tag href={href} target={target} to={linkTo} ref={tagRef} onMouseEnter={onMouseMove}>{content}</Tag>\n }\n {\n subMenu.isOpen && addProps(children)\n }\n </ListItem>\n})\nLi.isKeyboardNavigable\nLi.Simple = SimpleLi\n\nconst [useContextMenuLayers, contextMenuLayersSize] = willUseLayers()\nexport const contextMenuLayersQuantity = contextMenuLayersSize\nconst [useContextMenuSharedState] = willUseSharedState()\n\nexport const ContextMenuComponent = forwardRef((\n {\n children, sub, hoverIndex, autoHover, menuSlot, withoutIcons, onClose, onHover = () => 0, fill, onClick, ...props\n },\n unesuredRef\n) => {\n const ref = useEnsureRef(unesuredRef)\n const [hoverCursor, setHoverCursor] = useState(autoHover || sub ? 0 : -1)\n const [layerCursor, setLayerCursor] = useContextMenuSharedState(0)\n\n const [layerIndex, {getSize}] = useContextMenuLayers()\n\n const itemsEmitter = useMemo(() => mitt(), [])\n useEffect(() => {\n window.addEventListener('keydown', keydown)\n return () => {\n callIfFunction(onClose)\n window.removeEventListener('keydown', keydown)\n }\n }, [layerIndex, layerCursor, hoverCursor])\n\n useEffect(() => {\n if (hoverIndex !== undefined) {\n setHoverCursor(Math.min(Math.max(hoverIndex, -1), getTotalKeyboardItems(children) + 1))\n }\n }, [hoverIndex !== hoverCursor])\n\n const keydown = (e) => {\n if (e.keyCode === 37 || e.keyCode === 39) {\n if (!e.defaultPrevented) {\n const layers = getSize()\n const direction = e.keyCode - 38\n setLayerCursor((layerCursor + direction + layers) % layers)\n }\n e.preventDefault()\n }\n if (layerIndex !== layerCursor) return\n if (e.keyCode === 27 && ref.current) {\n ref.current.click()\n }\n if (e.keyCode === 13 || e.keyCode === 32 && hoverCursor >= 0) {// enter\n e.preventDefault()\n itemsEmitter.emit('confirm')\n }\n if (e.keyCode === 38 || e.keyCode === 40) { // up down\n e.preventDefault()\n const direction = e.keyCode - 39\n const max = getTotalKeyboardItems(children)\n const newIndex = (hoverCursor + direction + max) % max\n setHoverCursor(newIndex)\n onHover(newIndex)\n }\n }\n\n const getTotalKeyboardItems = (children) => {\n let sum = 0\n React.Children.forEach(children, child => {\n if (child && !child.props.disabled && !child.props.readOnly) {\n if ((!isStyledComponent(child.type) && child.type === Li) || child.type.isKeyboardNavigable) {\n sum += 1\n }\n if (areComponentsEqual(child.type, StickyContainer) || child.props.nested) {\n sum += getTotalKeyboardItems(child.props.children)\n }\n }\n }\n )\n return sum\n }\n\n const setCursorOnHover = (index) => {\n setLayerCursor(layerIndex)\n setHoverCursor(index)\n onHover(index)\n }\n\n const formatChildren = (children, indexRef = {current: 0}) => {\n return React.Children.map(children, (child, j) =>\n child && !child.props.disabled && !child.props.readOnly\n ? (\n child.props.nested\n ? React.cloneElement(child, child.props, formatChildren(child.props.children, indexRef))\n : ((!isStyledComponent(child.type) && !isMemo(child.type) && areComponentsEqual(child.type, Li)) || child.type.isKeyboardNavigable)\n ? React.cloneElement(child, {\n fixedPosition:props.fixed,\n hover: hoverCursor === indexRef.current && layerIndex === layerCursor,\n hoverCursor: hoverCursor,\n index: indexRef.current++,\n setCursorOnHover,\n emitter: itemsEmitter,\n layerIndex: layerIndex,\n menuSlot\n })\n : (\n areComponentsEqual(child.type, StickyContainer)\n ? React.cloneElement(child, {\n ...child.props,\n children: formatChildren(child.props.children, indexRef)\n })\n : child\n )\n )\n : child\n )\n }\n\n const touchStart = createPressAndMoveEvent((e,prevPos) => {\n // e.preventDefault()\n e.stopPropagation()\n e.target.dispatchEvent(new MouseEvent('mousemove', {bubbles: true}))\n let passedResistance = false\n return (e,nextPos) => {\n const delta = prevPos.clientY - nextPos.clientY\n if (Math.abs(delta) > 10) {\n passedResistance = true\n setCursorOnHover(-1)\n }\n }\n })\n\n return (\n <ContextListMenu\n data-drag={false}\n ref={ref}\n sub={sub}\n onWheel={e => e.stopPropagation()}\n onTouchStart={touchStart}\n withoutIcons={withoutIcons}\n onMouseDown={stopPropagation()}\n {...props}\n >\n {formatChildren(children)}\n </ContextListMenu>\n )\n})\n\n\nexport const ContextMenu = forwardRef(({slot = 'Popup', sub, withoutIcons, children, ...rest}, ref) => {\n const contextMenuRef = useEnsureRef(ref)\n const [positionInfo, placeholder, arrow] = usePositioning(contextMenuRef, rest)\n const {atRight, atBottom} = {...positionInfo}\n const slotName = useMemo(() => getDialogLayersSize() === 0 ? slot : (slot + '-' + (getDialogLayersSize() - 1)), [])\n\n const enterAnimation = useMemo(() => [fadeIn, sub ? (atRight ? slideRight : slideLeftOnLeft) : (atBottom ? slideDown : slideUpOnTop)], [atRight, atBottom])\n useFlipEnter(contextMenuRef, !!positionInfo && enterAnimation)\n useFlipLeave(contextMenuRef, !!positionInfo && enterAnimation, sub && {events: {mouseover: rest.onMouseMove}})\n return <>\n {placeholder}\n <Fill name={slotName}>\n <ContextMenuComponent {...rest} menuSlot={slot} sub={sub} {...positionInfo} ref={contextMenuRef} withoutIcons={withoutIcons}>\n {arrow}\n {children}\n </ContextMenuComponent>\n </Fill>\n </>\n})\n\nContextMenu.ListItem = ListItem\n","import React, {useEffect} from 'react'\nimport styled, {css} from 'styled-components'\nimport {oneWayAnimation, getColor} from '@startlibs/utils'\nimport {useToggle} from '@startlibs/core'\nimport {useFlipLeave} from './Flip'\nimport {animationTiming} from '@startlibs/utils'\n\nexport const LoadingBar = styled.div`\n width: 100%;\n border-radius: 0 1px 1px 0;\n height: 4px;\n position: fixed;\n background: ${props => props.bottom ? css`${getColor('main')}`:`#84D359`};\n transform: translateX(-100%);\n ${props => props.bottom ? \"bottom:69px;\" : \"top: 0;\"}\n left: 0;\n z-index: 99999;\n box-shadow: ${props => props.bottom ? `0 0 1px 1px rgba(0,132,214,0.2);`:`0 0 2px 0 rgba(0,0,0,0.5);`};\n ${props => props.loading && `\n transform: translateX(-30%);\n transition: transform 1.5s ease;\n `}\n ${props => props.closing && `\n transform: translateX(0);\n transition: transform 0.3s ease-in;\n `}\n`\n\n\nexport const PageLoader = ({isLoading}) => {\n const loader = useToggle()\n useEffect(() => {\n if (isLoading) {\n loader.open()\n } else {\n loader.closeAfter(500)\n }\n },[isLoading])\n\n return <LoadingBar loading={loader.isOpen} closing={loader.closing}/>\n}\n\nconst animation = oneWayAnimation('transform:translateX(-30%);','transform:translateX(0);')\nexport const SuspenseLoadingBar = () => {\n const ref = React.useRef()\n useFlipLeave(ref,animation,{reverse: false,timing:animationTiming('0.3s ease-in')})\n return <LoadingBar ref={ref} loading/>\n}","import React from 'react'\nimport {isMobile} from '@startlibs/utils'\n\nconst isNodeJunction = (nextNode) => nextNode && !nextNode.hasChangedLine && nextNode.words[0]!==''\n\nconst calculateCanvasFillWidth = (nodes, maxWidth, ctx) => {\n let lineCount = 0\n let currentNodeLine = [];\n let biggestWidth = 0\n\n let previousWidth = 0;\n let previousNodesLineWidth = 0\n let currentMultiNodeWordWidth = 0\n\n let lineWordsDebug = ''\n\n nodes.forEach(({font,hasChangedLine,words}, nodeIndex) => {\n ctx.font = font\n const nextNode = nodes[nodeIndex+1]\n\n\n words.forEach((word,wordIndex) => {\n const {width} = ctx.measureText(currentNodeLine.concat(word || (currentNodeLine.length ? '' : ' ')).join(' '));\n const realizedWidth = width + previousNodesLineWidth\n const overflowed = realizedWidth >= maxWidth\n const lastWord = wordIndex === words.length - 1\n if (!overflowed) {\n if (lastWord && (nextNode && !nextNode.hasChangedLine)) {\n previousNodesLineWidth = realizedWidth\n currentNodeLine = []\n if (word!=='' && isNodeJunction(nextNode)) {\n currentMultiNodeWordWidth += ctx.measureText(word || ' ').width\n }\n } else {\n currentNodeLine.push(word);\n currentMultiNodeWordWidth = 0;\n biggestWidth = biggestWidth > realizedWidth ? biggestWidth : realizedWidth\n }\n lineWordsDebug += ' ' + word\n previousWidth = realizedWidth;\n } else {\n lineCount++;\n lineWordsDebug = ''\n if (lastWord) {\n currentMultiNodeWordWidth += ctx.measureText(word || ' ').width;\n previousNodesLineWidth = currentMultiNodeWordWidth;\n currentNodeLine = []\n } else {\n previousNodesLineWidth = currentMultiNodeWordWidth;\n currentMultiNodeWordWidth = 0;\n currentNodeLine = [word]\n }\n previousWidth = 0\n }\n if (lastWord && (!nextNode || nextNode?.hasChangedLine)) {\n lineCount++;\n currentMultiNodeWordWidth =0;\n currentNodeLine = [];\n previousWidth = 0;\n previousNodesLineWidth=0;\n }\n })\n });\n return {max: biggestWidth, lines:lineCount}\n}\n\nconst getCanvasFillWidth = (nodes, maxWidth, ctx, maxLines) => {\n const {max, lines} = calculateCanvasFillWidth(nodes, maxWidth-1, ctx)\n if (lines > maxLines) {\n return null\n } else {\n const smallerResult = getCanvasFillWidth(nodes, max-1, ctx, lines)\n if (smallerResult === null || max === smallerResult) {\n return maxLines === undefined ? maxWidth : Math.ceil(max)\n } else {\n return smallerResult\n }\n }\n}\n\nexport class FillLastLineResizer extends React.Component {\n static defaultProps = {\n Tag: 'div'\n }\n fontIsLoaded = false\n\n\n setRef = (el) => {\n this.el = el\n if (el && parseInt(this.el.style.maxWidth, 10) !== parseInt(this.lastMaxWidth, 10)) {\n this.resizeEvent()\n }\n }\n\n resizeEvent = (fontLoadedOrEvent) => {\n const fromDialog = typeof fontLoadedOrEvent === 'object' ? fontLoadedOrEvent.detail && fontLoadedOrEvent.detail.dialog : false\n if (fromDialog) return;\n const fontAlreadyLoaded = window.getComputedStyle(this.el).fontWeight === '500' && window.getComputedStyle(this.el).fontFamily.indexOf('Roboto') > 0\n if (fontAlreadyLoaded) {\n this.el.style.fontFamily = 'Roboto, sans-serif'\n this.fontIsLoaded = true\n }\n if (this.fontIsLoaded || this.props.resizeOnMount || fontLoadedOrEvent === true || document.readyState === 'complete') {\n this.fontIsLoaded = true\n } else {\n return\n }\n this.el.style.removeProperty('max-width')\n if (this.props.shouldCancelResize === true || (typeof this.props.shouldCancelResize === 'function' && this.props.shouldCancelResize())) {\n return\n }\n\n if (isMobile() && this.el.firstElementChild) {\n return\n }\n\n const {offsetWidth, offsetHeight} = this.el\n if (offsetWidth && offsetHeight) {\n const range = document.createRange()\n range.setStart(this.el, 0)\n range.setEnd(this.el, this.el.childNodes.length)\n if (range.getClientRects().length <= 1) {\n return;\n }\n let newMaxWidth = 0;\n if (this.props.withoutCanvas) {\n newMaxWidth = this.getMaxWidth(this.el, offsetHeight, offsetWidth, 256, offsetWidth)\n } else {\n try {\n const canvasCtx = document.createElement(\"canvas\").getContext(\"2d\");\n const nodeIterator = document.createNodeIterator(this.el, NodeFilter.SHOW_TEXT)\n const text = this.el.innerText\n let lastIndex = -1\n let node;\n const nodes = []\n while (node = nodeIterator.nextNode()) {\n const currentText = node.textContent.replace( / +/g, ' ' )\n const currentIndex = text.indexOf(currentText,lastIndex+1)\n nodes.push({\n font:window.getComputedStyle(node.parentElement).font,\n hasChangedLine:text[currentIndex-1]==='\\n',\n words:currentText.split(' ')\n })\n lastIndex = currentIndex\n }\n newMaxWidth = getCanvasFillWidth(nodes, offsetWidth, canvasCtx)\n } catch (e) {\n console.log(e)\n newMaxWidth = offsetWidth\n }\n }\n\n this.el.style.maxWidth = newMaxWidth + 'px'\n const {offsetHeight: newOffsetHeight} = this.el\n\n // confere se o maxWidth antigo ainda serve, garantir que não haja influencia de um ou outro pixel\n if (this.lastMaxWidth) {\n this.el.style.maxWidth = this.lastMaxWidth + 'px'\n const {offsetHeight: lastOffsetHeight} = this.el\n if (newOffsetHeight !== lastOffsetHeight || this.lastMaxWidth >= this.el.offsetWidth) {\n // if (this.el.tagName.toLowerCase()==='ul') {\n // console.log(newMaxWidth)\n // }\n this.lastMaxWidth = newMaxWidth\n this.el.style.maxWidth = this.lastMaxWidth + 'px'\n }\n } else {\n this.lastMaxWidth = newMaxWidth\n }\n }\n }\n\n getMaxWidth = (element, prevHeight, prevWidth, window, originalWidth) => {\n const newWidth = Math.max(1, prevWidth - window)\n element.style.maxWidth = newWidth + 'px'\n if (element.offsetHeight === prevHeight && prevWidth > 10) {\n return this.getMaxWidth(element, prevHeight, newWidth, window, originalWidth)\n } else if (window > 1) {\n return this.getMaxWidth(element, prevHeight, prevWidth, window / 2, originalWidth)\n } else if (prevWidth < 10) {\n return originalWidth > prevWidth ? originalWidth : 10\n } else {\n return prevWidth + 1\n }\n }\n\n componentDidMount() {\n window.addEventListener('stepResize', this.resizeEvent)\n if (document.readyState === 'complete') {\n this.resizeEvent()\n } else {\n window.addEventListener('load', this.resizeEvent)\n if (window.document.fonts && window.document.fonts.ready && window.document.fonts.ready.catch) {\n window.document.fonts.ready.catch(_ => _).then(() => {\n window.removeEventListener('load', this.resizeEvent)\n this.resizeEvent(true)\n })\n }\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener('stepResize', this.resizeEvent)\n window.removeEventListener('load', this.resizeEvent)\n }\n\n componentDidUpdate() {\n this.resizeEvent()\n }\n\n shouldComponentUpdate(nextProps) {\n const ignoreHtml = nextProps.dangerouslySetInnerHTML && this.props.dangerouslySetInnerHTML &&\n nextProps.dangerouslySetInnerHTML.__html === this.props.dangerouslySetInnerHTML.__html\n const isShallowEqual = Object.keys(nextProps).every(key => this.props[key] === nextProps[key] || (ignoreHtml && key === \"dangerouslySetInnerHTML\"))\n return !isShallowEqual;\n\n }\n\n render() {\n const {Tag, linkColor, resizeOnMount, shouldCancelResize, ...rest} = this.props\n return <Tag ref={this.setRef} {...rest}/>\n }\n}\n\nFillLastLineResizer.ul = (props) => <FillLastLineResizer Tag='ul' {...props}/>\nFillLastLineResizer.h2 = (props) => <FillLastLineResizer Tag='h2' {...props}/>","import React, {useRef} from 'react'\nimport styled from 'styled-components'\nimport {FlipList} from './FlipList'\nimport {oneWayAnimation} from '@startlibs/utils'\n\n\nconst DEFAULT_ANIMATION = oneWayAnimation(`opacity: 1;`, `opacity: 0;`)\n\nexport const AnimationBlockContainer = styled.div`\n ${props => props.inline ? 'display: inline-block; ' : ''}\n position:relative;\n`\n\n\nexport const TransitionDiv = ({children,animation, skipChromeFix, className, block, inline,...rest}) => {\n\n const blockRef = useRef()\n\n const overflowEffect = () => {\n if (blockRef.current) {\n const prevOverflow = blockRef.current.style.overflow\n blockRef.current.style.overflow = 'hidden'\n return () => {\n blockRef.current.style.overflow = prevOverflow\n }\n }\n }\n\n const content = children\n ? <FlipList smallJumpFix={inline && -3} effect={overflowEffect} skipChromeFix={skipChromeFix} animation={animation || DEFAULT_ANIMATION} {...rest}>{[<div className={(block || inline) ? \"\" : className} key=\"first\">{children}</div>]}</FlipList>\n : <FlipList smallJumpFix={inline && -3} effect={overflowEffect} skipChromeFix={skipChromeFix} animation={animation || DEFAULT_ANIMATION} {...rest}>{[]}</FlipList>\n\n return (block || inline) ? <AnimationBlockContainer inline={inline} ref={blockRef} className={className}>{content}</AnimationBlockContainer> : content\n}","import React from 'react'\nimport {StartlibsConsumer} from '@startlibs/core'\nimport {formatDate} from '@startlibs/utils'\n\nexport const FormatDate = ({date,format, noUTC,children}) => <StartlibsConsumer>{({dateMessages}) => {\n if (!date) { return null }\n const formatted = formatDate(new Date(date), format, dateMessages, noUTC)\n return children ? children(formatted) : formatted\n}}</StartlibsConsumer>","import React, {forwardRef, useEffect, useState} from 'react'\n\nexport const Image = forwardRef(({dom,src,style, ...rest}, ref) => {\n\n const [image, setImage] = useState(typeof src === 'string' ? src : (src && URL.createObjectURL(src)))\n\n useEffect(() => {\n if (src) {\n const imageStr = typeof src === 'string' ? src : URL.createObjectURL(src)\n const img = document.createElement('img')\n img.onload = () => {\n setImage(imageStr)\n }\n img.src = imageStr\n } else {\n setImage(\"\")\n }\n }, [src])\n\n return dom\n ? <img {...rest} src={image} ref={ref}/>\n : <div {...rest} style={{...style,backgroundImage:image && `url(\"${image}\")`}} ref={ref}/>\n})","import React from 'react'\nimport styled from 'styled-components'\nimport {media, getColor} from '@startlibs/utils'\nimport {CloseIcon, Dialog} from '../../Dialog'\n\nexport const DialogWithImageHeader = styled(Dialog)`\n max-width: 51rem;\n \n ${CloseIcon} {\n background: ${getColor('gray240')};\n text-shadow: none;\n color: rgba(120,120,120,1);\n font-size: 20px;\n box-shadow: rgba(0,0,0,0.2) 0px 1px 3px 0px, rgba(0,0,0,0.05) 0px 0px 0px 1px;\n width: 36px;\n height: 36px;\n line-height: 36px;\n transition: 0.1s ease-out;\n :hover {\n background-color: rgb(230,230,230);\n }\n :active {\n background-color: rgb(220,220,220);\n transition: 0s ease-out;\n }\n @supports (position: sticky) {\n position: sticky;\n top: -2.5rem;\n right: 0rem;\n float: right;\n margin-right: -1.25rem;\n margin-top: 0.75rem;\n }\n ${media.mobile`\n @supports (position: sticky) {\n top: 0;\n margin-right: -1rem;\n }\n `}\n \n }\n`","import React, {useRef} from 'react'\nimport styled from 'styled-components'\nimport {media, callIfFunction, getColor, twoWayAnimation, oneWayAnimation} from '@startlibs/utils'\nimport {useToggle, usePopupToggle, useLazyConstant} from '@startlibs/core'\nimport {CloseIcon, Dialog} from '../../Dialog'\nimport {willUseFlipSwitch} from '../../Flip'\nimport {Loading} from '../../Loading'\nimport {DialogContainer} from '../../containers/DialogContainer'\n\nexport const SideMenu = styled.div`\n background-color: ${getColor('lightBluishGray')};\n border-top-left-radius: 18px;\n border-bottom-left-radius: 18px;\n width: 19rem;\n flex-shrink: 0;\n padding: 1.25rem 0;\n ${props => !props.visibleOnDesktop && 'display:none;'}\n ${media.mobile`\n display:block;\n position:fixed;\n top:0;\n left:0;\n bottom:0;\n z-index:1000;\n transition: 0.25s transform ease-out;\n background-color: ${getColor('gray240')};\n box-shadow: -5px 0 20px 5px rgba(0,0,0,0.4);\n border-radius: 0;\n ${props => !props.isOpen && `\n transform: translateX(-100%);\n box-shadow: none;\n `}\n `}\n`\nexport const DialogTabMenu = styled.ul`\n cursor: default;\n overflow: auto;\n text-align: left;\n color: inherit;\n user-select: none;\n li {\n position: relative;\n padding: 1rem 2rem 1rem 4.1rem;\n font-size: 14px;\n ${media.mobile`\n font-size: 16px;\n `}\n :hover {\n background-color: ${getColor('bluishGray')};\n cursor: pointer;\n }\n &.selected {\n color: ${getColor('main')};\n background: rgba(0, 132, 214, 0.125);\n pointer-events: none;\n }\n }\n .icon{\n position: absolute;\n left: 1rem;\n top: 50%;\n transform: translateY(-50%);\n width: 3rem;\n text-align: center;\n line-height: 0;\n font-size: 26px;\n }\n ${props => props.menuTabIsOpen && `\n li {\n padding: 1.25rem 2rem 1.25rem 3.25rem;\n border-radius: 6px\n }\n .icon{\n left: 0;\n }\n `}\n`\n\nconst [fadeIn, relativeFadeout] = twoWayAnimation('opacity: 0;','opacity: 0;', 'opacity: 1;')\nconst absoluteOnLeave = oneWayAnimation('position: absolute;', 'position: absolute;')\nconst fadeOut = [absoluteOnLeave,relativeFadeout]\n\nexport const MENU_TAB = '$menu$'\n\n// ponytail: sem footer — padrão do dialog com barra lateral; fecha pelo X ou por fora\nexport const DialogWithSidebarPresentation = ({className, tabIsOpen, menuIsOpen, sidebar, Content, openTab, children, title, ...props}) => {\n const tab = useToggle(tabIsOpen)\n const sideMenu = usePopupToggle(menuIsOpen)\n const ref = useRef()\n const switchAnimation = useLazyConstant(willUseFlipSwitch)\n\n const menuTabIsOpen = tab.isOpen === MENU_TAB\n\n return <DialogContainer {...props} ref={ref}>{({confirmCloseDialog}) =>\n <div className={className + \" JS-has-wc\"} ref={ref}>\n {\n props.closeDialog &&\n <CloseIcon onClick={confirmCloseDialog}/>\n }\n <SideMenu isOpen={sideMenu.isOpen} visibleOnDesktop>\n {sidebar(tab)}\n </SideMenu>\n\n <div className={(menuTabIsOpen ? \"menuTabIsOpen \" : \"\") + \"main-container\"}>\n <h2>{\n menuTabIsOpen ? \"Configurações gerais\" : <><span className=\"icon icon-menu mobile-only\" onClick={sideMenu.open}/>\n {title(tab)}</>}</h2>\n <React.Suspense fallback={<TabContent key=\"loading\" switchAnimation={switchAnimation} tab={tab} children={<Loading absolute/>} />}>\n <TabContent key={tab.isOpen} switchAnimation={switchAnimation} tab={tab} Content={Content} children={children} />\n </React.Suspense>\n </div>\n </div>\n }</DialogContainer>\n}\n\nconst TabContent = ({Content,children,tab,switchAnimation}) => {\n const contentRef = useRef()\n switchAnimation(contentRef,fadeIn,fadeOut)\n\n return <div ref={contentRef} className=\"dialog-content\">\n {callIfFunction(Content,tab)}\n {callIfFunction(children,tab)}\n </div>\n}\n\nexport const DialogWithSidebar = styled((props) => <Dialog fullscreenOnMobile as={DialogWithSidebarPresentation} {...props} />)`\n max-width: 59rem;\n display: flex;\n padding: 0;\n flex-direction: row;\n ${media.mobile`\n min-height: 100%;\n overflow: hidden;\n `}\n`\n","import React, {useRef} from 'react'\n\nimport {callIfFunction, getColor} from '@startlibs/utils'\nimport styled from 'styled-components'\n\nimport {DialogErrorContent} from '../../Dialog'\nimport {DialogContainer} from '../../containers/DialogContainer'\n\nconst MobileBubbleDialogFooter = styled.div `\n background-color: ${getColor('gray240')};\n min-height: 5rem;\n color: ${getColor('main')};\n font-size: 13px;\n font-weight: 500;\n text-transform: uppercase;\n padding: 1rem;\n user-select: none;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-bottom-left-radius: 10px;\n border-bottom-right-radius: 10px;\n :active {\n background: rgb(232,232,232);\n }\n`\n\nexport const MobileBubbleDialog = styled(({className, footer, Content, children, title, illustration, icon, auxiliarActions, ...props}) => {\n const ref = useRef()\n return <DialogContainer {...props} closeOnClick ref={ref} DialogErrorContent={DialogErrorContent} title={title}>{({confirmCloseDialog}) =>\n <>\n <div className={className} ref={ref}>\n {\n children && callIfFunction(children)\n }\n <MobileBubbleDialogFooter onClick={confirmCloseDialog}>\n Fechar\n </MobileBubbleDialogFooter>\n </div>\n </>\n }</DialogContainer>\n})`\n border-radius: 10px;\n background-color: white;\n width: 100%;\n margin: auto;\n position: relative;\n align-self: baseline;\n overflow: hidden;\n @supports (flex-wrap: wrap) {\n display: flex;\n flex-direction: column;\n }\n`\n\n","import styled from 'styled-components'\n\nexport const BasicBulletList = styled.ul`\n margin-bottom: 0;\n font-size: 13px;\n\n li {\n margin-top: 4px;\n padding-left: 1rem;\n position: relative;\n\n :before {\n content: '•';\n font-size: 17px;\n line-height: 0;\n position: absolute;\n left: 0;\n top: 7px;\n }\n }\n`"],"names":["IconComponent","React","Component","constructor","arguments","state","componentDidMount","icon","props","theme","svgIcons","svgLoader","then","i","setState","Svg","default","render","_this$props","children","clickable","customIcon","colorSet","color","rest","_objectWithoutProperties","_excluded","createElement","icons","Icon","styled","withTheme","withConfig","displayName","componentId","_props$theme","iconFont","Loading","div","white","getColor","borderWidth","size","absolute","Link","_ref","href","_isString","to","Wouter","_extends","replace","HistoryLink","_ref2","onClick","_excluded2","e","callIfFunction","isDefaultPrevented","preventDefault","pathname","search","hash","_isObject","url","window","history","pushState","popStateEvent","PopStateEvent","dispatchEvent","Route","_ref3","element","_excluded3","Routes","Switch","Navigate","Redirect","useLocation","path","useSearchParams","useAbsolutePath","router","useRouter","base","useAbsoluteLocation","useNavigate","useParams","defaultParams","location","navigate","useSearch","searchParams","useMemo","_assign","Object","fromEntries","URLSearchParams","entries","tempSearchParams","setSearchParams","useCallbackStable","nextParams","options","_isFunction","cleanParams","_flow","_toPairs","_filter","_ref4","k","v","_fromPairs","addQueryString","Router","DropdownIcon","styledExtend","_templateObject","_taggedTemplateLiteral","LockIcon","focus","css","rounded","Button","forwardRef","ref","type","locked","alpha","success","alert","warning","highlight","light","hover","onlyIcon","small","withDropdown","onlyDropdown","outline","dashed","textOnly","isLoading","isLoadingIcon","dark","innerAs","Wrapper","className","tabIndex","focused","noFocus","concealed","concealedModule","buttonRef","lightAlert","lightWarning","darken","nowrap","hasErrors","transparentize","big","media","mobile","_templateObject2","max","_templateObject3","fullwidth","customTheme","a","OnClickLoadingButton","onSuccess","as","onFailure","loading","useToggle","Element","isOpen","wait","TextButton","fontSize","getMargins","domNode","marginTop","marginLeft","marginBottom","marginRight","paddingTop","getComputedStyle","getParentProperties","parentNode","paddingBottom","parentStyle","toPosition","parentRect","length","undefined","offsetParent","getBoundingClientRect","top","left","allowFixed","finalPosition","withMargins","style","position","display","height","width","margins","_objectSpread","nextSibling","offsetTop","offsetLeft","sumWithPx","_len","args","Array","_key","map","parseFloat","reduce","b","childMAp","childs","fn","c","defaultAnimationMaker","animationTiming","defaultEnterAnimation","oneWayAnimation","defaultSwitchAnimation","SHORT_ANIMATIONS","fadeIn","applyDefault","formatAnimation","animationName","animationTimer","reverse","animationMaker","animationNameExecuted","keyframes","concat","split","applyReverse","trim","indexOf","join","cloneWrapper","cloned","cloneNode","tempWrapper","document","slice","call","childNodes","forEach","append","padding","borderLeftWidth","borderRightWidth","borderBottomWidth","borderTopWidth","assign","morphingEndEvents","Map","morphTime","continueSwitchCallbacks","continueSwitchOnClone","oldWrapper","newWrapper","prevOldClone","querySelector","prevNewClone","oldClone","newClone","animationDelay","getDelays","animation","set","get","addEventListener","remove","finishSwitchNew","delete","clone","wrapper","newChildren","dataset","prev","prevOpacity","opacity","supportsEvent","HTMLElement","prototype","morph","node","callback","cachedAnimation","cachedCallback","oldAnimation","Date","now","didNotStartPromise","Promise","race","res","rej","setTimeout","end","target","removeEventListener","catch","hasClientRectChanged","oldSnap","newSnap","every","_","getClientRectAnimation","skipTransform","smallJumpFix","_oldSnap$parentStyle","_newSnap$parentStyle","_oldSnap$parentStyle2","_newSnap$parentStyle2","scrollHeight","clientHeight","scrollWidth","clientWidth","scrollTop","scrollLeft","deltaHeight","heightFix","finalPadding","overflowFix","transform","parentPaddingTopDelta","parseInt","parentPaddingBottomDelta","oldMarginTop","oldMarginBottom","oldTransform","Math","getClientRectAnimationForSwitch","_node$parentNode","_node$parentNode2","prevBorder","border","borderHeight","prevPadding","nonPaddingFixTop","clonedNode","topWithPaddingFix","newSnapNegativeTopMarginDelta","newSnapBottomMarginDelta","willPlaySwitch","switchIn","switchOut","switchAnimation","timing","transformHeight","_identity","realWrapper","firstChild","insertBefore","realWrapperRect","resizeToNew","noFlip","resizeOld","resizeNew","el","delayStr","Snapshoter","getSnapshotBeforeUpdate","oldProps","on","console","log","moveOn","useFlip","useHiddenFill","getAnimationNames","willUseFlip","controlElement","morphEnabled","disableMorph","useRegisterEnter","enterChildrenCallback","willUseSharedCallback","useLayoutEffect","useRegisterLeave","leaveChildrenCallback","useRegisterMorph","morphChildrenCallback","getSize","useEnterAnimation","onEnter","onEnterEnd","enterEffect","current","endEffect","useLeaveAnimation","onLeave","removeRef","leaveEffect","nestedFlip","events","isNested","_s","each","animate","maxAnimationTime","_max","animationDuration","s","timeoutRef","animationEnd","clearTimeout","stopImmediatePropagation","useMorphAnimation","ready","rectAnimation","executeAnimation","has","useNestedEnterAnimation","parentTiming","useNestLeaveAnimation","willUseNestedMorphAnimation","morphId","_uniqueId","_ref$current","useConstant","next","prevPos","nextPos","originalTransform","deltaX","round","deltaY","newLeft","willUseFlipSwitch","getTempWrapper","parent","positionConfig","effect","switchToPlay","flipHooks","useFlipEnter","useFlipLeave","useFlipAnimation","onEnterOrBoth","onLeaveOrIgnore","config","ifUndefined","loadingEnter","loadingLeave","twoWayAnimation","BlockContainer","FlipDiv","useAnimation","outerRef","ensuredRef","useEnsureRef","PaddingDiv","LoadingDiv","defaultToSuspense","fallback","flipAnimation","useLazyConstant","loadingBlock","autoFocus","Suspense","key","padded","loaded","getMarginFromFieldChild","last","fields","Children","toArray","filter","lastField","getMargin","Field","splitColumnMargins","SplitColumnsContainer","min","viewportMinWidth","twoColumnsBelowVW","fixDoubledLastMarginBottom","count","processChild","child","cloneElement","isArray","ResetOnLocationChange","reset","useUpdateEffect","ErrorBoundary","hasError","componentDidUpdate","prevProps","resetOn","componentDidCatch","info","_get","notFound","error","stack","JSON","stringify","exception","toString","test","navigator","userAgent","postFetcher","message","name","componentStack","getDerivedStateFromError","Error","isValidElement","fixed","dialogFadeInDown","dialogModalIn","dialogModalOut","Modal","$blurBackdrop","ModalContainer","DialogCenter","withScroll","desktop","fullscreen","fullscreenOnMobile","PopupSlot","Slot","editableSelector","focusableSelector","shouldPreventResolvers","shouldPreventDialogPop","resolve","preventDialogPop","cb","push","waitForPop","preventDialogPopState","resolver","shift","fixPosition","query","elements","querySelectorAll","openLayers","fakedScrollTop","isFakeScrolled","removeWindowScroll","opening","keepDisabledScroll","finishReset","scroll","scrollX","n","right","classList","add","requestAnimationFrame","CustomEvent","detail","dialog","body","bodyWidth","offsetWidth","pageYOffset","overflowY","overflow","useDialogLayers","getDialogLayersSize","willUseLayers","DialogContainer","forwardedRef","title","closeDialog","closeOnClick","dontRefocus","onConfirm","form","noFormWrap","withFormWrap","placement","DialogErrorContent","customHref","animationLeaveEffect","animationEnterEffect","skipKeys","confirmChanges","skipDom","modalRef","skipCheckFocus","autoComplete","blurBackdrop","dialogRef","prevActiveElement","useRefState","activeElement","modal","modalScroll","useRef","mouseDownInModal","previousHash","layerIndex","isTop","onFirst","encodeURI","replaceState","onRemove","layers","back","onEmpty","confirmCloseDialog","getHasChanged","confirm","useEffect","checkKey","checkFocus","checkHistory","contains","matches","closest","nextTab","_e$target","_e$target2","shiftKey","keyCode","prevTab","acc","tagName","toLowerCase","stopPropagation","submitForm","checkClick","currentTarget","mouseDown","usingForm","identityOpacityFrames","content","Fragment","Fill","AnimatedModal","onSubmit","onMouseDown","modalIn","modalOut","TOP_TRIGGER","posInfo","refInfo","bottom","BOTTOM_TRIGGER","SentinelStyle","addCss","willUseIsSticky","useRegister","onChange","useSharedIsSticky","setSharedIsSticky","willUseSharedState","createObserver","root","IntersectionObserver","records","observer","record","targetInfo","boundingClientRect","rootBoundsInfo","rootBounds","isIntersecting","observe","unobserve","observerMap","getObserver","result","activeObserved","resetObservers","observed","WithIsSticky","id","intersection","isSticky","setIsSticky","useState","value","_without","renderSentinel","DialogIcon","CloseIcon","attrs","DialogIllustration","img","DialogContent","illustration","src","DialogTitle","h2","fixTitleMargin","_templateObject4","DialogFooter","sticky","_templateObject5","_templateObject6","_templateObject7","FooterAuxiliaryContainer","DialogContentWrapper","_templateObject8","DialogAlwaysVisibleDiv","_templateObject9","Dialog","skipWrap","wrapChildren","stickyFooter","skipCloseIcon","footer","Content","auxiliarActions","container","onClose","handleClose","useCallback","alwaysVisible","sentinel","$maxWidth","_templateObject10","ConfirmDialog","DefaultConfirmDialog","StartlibsConsumer","confirmDialogLabels","handleCancel","onCancel","cancel","onSaveInstead","discard","DialogErrorLayout","DialogErrorBadge","_ref5","ErrorDialog","close","DialogError","_ref6","_ref7","useDialog","toggleCallback","toggle","useFill","open","useDialogWithToggle","WarningDialog","withX","leftButton","additionalContent","rightButton","confirmLabel","noActions","WarningDialogIcon","WarningDialogTitle","noTitle","h3","useWarningDialog","useRenderDefaultWarningDialog","_setWarningDialog","setWarningDialog","DefaultWarningDialog","warningDialog","NotificationContainer","Notification","useNotification","useNotificationRef","setNotification","willSetNotification","str","Notifications","rawNotification","msg","timeout","willCloseAfter","FlipNotification","FlipList","play","_newSnap$parent","insertAnimation","removeAnimation","onEndAnimation","onStartAnimation","skipChromeFix","skipParentMorph","newItemSnap","oldItemSnap","newItems","from","values","item","newItem","oldItems","oldItem","reinserted","reinsertSnap","scrollDelta","allChildren","_item$nextSibling$par","find","possible","appendChild","anchoredDownList","onReinsert","getParents","ReactDOM","__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","findDOMNode","possibleOffsetParent","calculatePositionForAnimation","lockedParentRect","effectiveParentRect","numberOfSiblings","numberOfElements","prevState","snap","useLockedParentRect","RenderAs","defaultProps","relativeFadeout","absoluteOnLeave","fadeOut","SwitchDiv","enterAnimation","leaveAnimation","SwitchContainer","contentRef","ToastBox","rgba","NotificationTitleContainer","NotificationTitle","NotificationContent","NotificationIconWrapper","iconFontSize","NotificationDetails","useToastNotifications","_useToastNotificationsRef","setToastNotifications","formatNotification","notification","extra","getUID","createToastNotification","closeCallback","uid","currentTimer","hasClosed","_differenceBy","placeholder","notificationObj","_concat","openWith","obj","_map","useToastNotificationToggle","extraProps","make","_toggle$get","willShowToastNotification","showToastNotification","EXIT_ANIMATION_MS","TOAST_EASING","TOAST_TIMING","removeAnimationReinsertPosition","ToastNotifications","notifications","setNotifications","containerRef","lockWidth","unlockWidth","useNotificationContainerWidthLock","closeWithLock","onClickTitle","closeOnX","constrainEvent","_StyledDiv","details","lockCountRef","prevWidthRef","measured","PersistentNotification","PersistentNotificationContent","PersistentNotificationIcon","PersistentNotificationActions","PersistentNotificationCloseIcon","useNotifications","openPersistentNotification","newNotification","priority","list","nextIndex","findIndex","NotificationWrapper","printerMedia","useIsHiddenPersistentNotifications","hidePersistentNotifications","PersistentNotifications","isHidden","closeMessage","_notifications$","DefaultNotification","_onClose","actions","skipClose","_over","Placeholder","span","HORIZONTAL_MAPPING","VERTICAL_MAPPING","ARROW_KEY_POSITIONS","POSITIONING_BOUNDS","addPositioningBound","getPosition","origin","offset","originSize","selfSize","originalAlignment","selfAlignment","onCollision","mapping","boundMargin","originDiff","selfDiff","respectingBounds","upperBound","Number","MIN_SAFE_INTEGER","lowerBound","newPosition","collision","flippedPosition","flippedCollision","minBound","fittedPosition","arrowShadow","translate","ARROW_DEFAULT_SIZE","DefaultArrow","usePositioning","arrowRefOpt","my","at","arrow","arrowPadding","fill","useLayers","onBottom","onLeft","onRight","onTop","keepWidth","respectBounds","respectOffsetScroll","placeholderAs","arrowRef","positionInfo","setPositionInfo","setPosition","_element$current","_placeholder$current","_placeholder$current2","_placeholder$current3","_placeholder$current4","retry","maxWidth","placeholderOffsetParent","usingLayer","scrollOwner","getClosestOffsetScroll","pageXOffset","scrollY","isNaN","getRespectOffsetScrollTopLeft","scrollOwnerTop","scrollOwnerLeft","leftPlusBorder","topPlusBorder","parentOffsetWidth","offsetHeight","parentOffsetHeight","popupOffsetWidth","popupOffsetHeight","popupCurrentWidth","offsetX","offsetY","simplePositioning","simplePositioningIndex","paddingRight","windowHeight","innerHeight","verticalCollision","horizontalCollision","verticalMy","horizontalMy","verticalAt","horizontalAt","processedLeft","collisionH","processedTop","collisionV","flippedV","flippedH","arrowSide","abs","arrowElement","arrowOnVerticalSide","arrowSize","sqrt","arrowOffset","popupArrowOffset","processArrow","maxHeight","innerWidth","ceil","arrowStyle","boxShadow","atTop","atBottom","atLeft","atRight","fullHeight","fullWidth","passive","onVerticalSide","arrowContainerWidth","popupSize","deltaPopupPosition","flipped","margin","invertDirection","percent","px","invertAndFlipDirection","arrowPosition","fromOriginCorner","popupOffset","arrowInitialPos","constrainedArrowPosition","arrowPositionRelativeToPopup","popupDelta","finalPopupPosition","placeholderElement","AbsoluteContainer","Reposition","slot","popupRef","slotName","Provider","Consumer","createContext","DropPosition","EmptyPlaceholder","HORIZONTAL_DIMENSIONS","axis","VERTICAL_DIMENSIONS","AUTO_SCROLL_BORDER_SIZE","AUTO_SCROLL_MAX_VELOCITY","AUTO_SCROLL_OVERFLOW_BUFFER","easeInCubic","t","disableWillChange","willChange","reenableWillChange","shouldPreventDrag","DraggableItem","eventHandlers","DragTag","isDragging","droppable","dragIndex","roundedPlaceholder","inheritRadius","extraClassName","DroppableContainer","dragProps","DroppableContainerComponent","draggables","emptyPlaceholder","addProps","activeIndex","index","y","x","scrollXY","getPositions","dragInfo","allowDrop","existing","repositionDragged","array","getActiveElement","active","startIndex","startDroppable","activeDroppable","removedOrInserted","_pullAt","splice","getPlaceholder","childArray","getDragged","childrenToarray","addDroppable","componentWillUnmount","removeDroppable","group","DraggableContainer","_this","this","ghost","dragToken","activeSession","positions","passedResistance","pressedEnough","holdTouchTimer","preventScroll","droppables","ghostDimensions","itemsPositions","scrollContainer","lastScrollTop","lastScrollLeft","settedDragRef","getScrollContainer","getScrollParent","removeItem","domItems","setOffsetParent","getConstraintDimensions","dragStart","draggable","pageX","pageY","clientX","clientY","disabled","button","persist","vibrate","dragMove","targetStyle","parentTop","parentLeft","originalX","originalY","ghostHeight","ghostWidth","ghostMarginTop","ghostMarginLeft","transition","zIndex","setupMove","mouseMove","touchMove","dragEnd","disableSelect","click","token","ended","endTimeout","onTransitionEnd","activeGroup","getScrollPosition","resetPositions","sort","move","setDragRef","findGhostIndex","activePosition","ghostX1","ghostY1","ghostY2","ghostX2","centerInsideGhost","ghostX","ghostY","rectanglesIntersection","x2","x1","y2","y1","closestIndex","area","intersectionArea","distance","pow","iMax","arr","stopMoving","session","finish","removeChild","_startDroppable$props","_activeDroppable$prop","promise","setItemOrder","clearChangedOrder","saving","_set","noResistance","processAutoScroll","completeMove","scrollYDelta","scrollXDelta","ghostLeft","ghostTop","parentHeight","parentWidth","normalizedLeft","normalizedTop","ghostScale","autoScrollAnimation","autoScrollX","autoScrollY","getFixedParentRect","not","calculateDistanceFromBorder","getElementBeforeBorder","keys","fixedUnderMouse","distanceMin","distanceMax","containerMin","containerMax","afterCenter","diff","elementFromPoint","keepY","scrollOnDrag","startAutoScroll","stopAutoScroll","checkLimits","delta","boundRect","constraintRect","scrollRect","timestamp","ghostRect","deltaScrollX","deltaScrollY","willScroll","cancelAnimationFrame","finalLeft","finalTop","newTransform","remoevDroppable","normalizeMouse","touchStart","normalizeTouch","providerValue","providerEvents","onTouchStart","event","_this$props2","PopupDiv","Popup","skipPortal","animationOptions","popupContainer","TooltipContainer","isWrapper","TooltipPopup","isEllipsis","RECENTLY_CLOSED_TIMEOUT","recentlyClosed","openRef","Tooltip","delay","instant","whenEllipsis","showOnClick","showOnMount","clickTimeout","tooltip","closeAfter","dismiss","once","ro","ResizeObserver","stopRO","disconnect","openOnClick","touchTimer","didLongPress","onTouchEnd","onTouchMove","mouseEnter","onMouseLeave","currentlyClosed","getAnimation","canLongPress","onMouseUp","onMouseEnter","slideDown","slideUpOnTop","slideRight","slideLeftOnLeft","areComponentsEqual","ListItem","li","hasSubmenu","iconSize","ifProp","ListItemDescText","ListItemHelpText","ListMenu","ul","ContextListMenu","withoutIcons","StickyContainer","ListSeparator","ListHeading","SubmenuArrowIcon","SimpleLi","scrollToVisibility","setCursorOnHover","onMouseOut","touchEnd","emitter","off","selected","label","linkTo","prefixWith","subMenu","Tag","isKeyboardNavigable","mitt","Li","menuSlot","keepOpen","hoverCursor","passTouchThrough","descText","helpText","nodeRef","tagRef","subPrevented","onOpenSub","onPreventSub","subIndex","parentElement","stickyContainer","lastChild","stickyContainerHeight","isMobile","closing","emit","onMouseMove","onClickHandler","onCloseSub","fixedPosition","sub","withButton","Simple","useContextMenuLayers","contextMenuLayersSize","contextMenuLayersQuantity","useContextMenuSharedState","ContextMenuComponent","unesuredRef","hoverIndex","autoHover","onHover","setHoverCursor","layerCursor","setLayerCursor","itemsEmitter","keydown","getTotalKeyboardItems","defaultPrevented","direction","newIndex","sum","readOnly","isStyledComponent","nested","formatChildren","indexRef","j","isMemo","createPressAndMoveEvent","MouseEvent","bubbles","onWheel","ContextMenu","_excluded4","contextMenuRef","mouseover","LoadingBar","PageLoader","loader","SuspenseLoadingBar","isNodeJunction","nextNode","hasChangedLine","words","calculateCanvasFillWidth","nodes","ctx","lineCount","currentNodeLine","biggestWidth","previousNodesLineWidth","currentMultiNodeWordWidth","nodeIndex","font","word","wordIndex","measureText","realizedWidth","overflowed","lastWord","lines","getCanvasFillWidth","maxLines","smallerResult","FillLastLineResizer","fontIsLoaded","setRef","lastMaxWidth","resizeEvent","fontLoadedOrEvent","fromDialog","fontAlreadyLoaded","fontWeight","fontFamily","resizeOnMount","readyState","removeProperty","shouldCancelResize","firstElementChild","range","createRange","setStart","setEnd","getClientRects","newMaxWidth","withoutCanvas","getMaxWidth","canvasCtx","getContext","nodeIterator","createNodeIterator","NodeFilter","SHOW_TEXT","text","innerText","lastIndex","currentText","textContent","currentIndex","newOffsetHeight","lastOffsetHeight","prevHeight","prevWidth","originalWidth","newWidth","fonts","shouldComponentUpdate","nextProps","ignoreHtml","dangerouslySetInnerHTML","__html","isShallowEqual","linkColor","DEFAULT_ANIMATION","AnimationBlockContainer","inline","TransitionDiv","block","blockRef","overflowEffect","prevOverflow","FormatDate","date","format","noUTC","dateMessages","formatted","formatDate","Image","dom","image","setImage","URL","createObjectURL","imageStr","onload","backgroundImage","DialogWithImageHeader","SideMenu","visibleOnDesktop","DialogTabMenu","menuTabIsOpen","MENU_TAB","DialogWithSidebarPresentation","tabIsOpen","menuIsOpen","sidebar","openTab","tab","sideMenu","usePopupToggle","TabContent","DialogWithSidebar","MobileBubbleDialogFooter","MobileBubbleDialog","BasicBulletList"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,aAAa,SAASC,yBAAK,CAACC,SAAS,CAAC;EAAAC,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAAC,SAAA,CAAA,CAAA;IAAA,IAE1CC,CAAAA,KAAK,GAAG,EAAE,CAAA;AAAA,GAAA;AAEVC,EAAAA,iBAAiBA,GAAG;AAClB,IAAA,MAAMC,IAAI,GAAG,IAAI,CAACC,KAAK,CAACD,IAAI,CAAA;AAC5B,IAAA,IAAI,CAAC,IAAI,CAACC,KAAK,CAACC,KAAK,CAACC,QAAQ,IAAI,EAAE,EAAEH,IAAI,CAAC,EAAE;AAC3C,MAAA,IAAI,CAACC,KAAK,CAACC,KAAK,CAACE,SAAS,CAACJ,IAAI,CAAC,CAACK,IAAI,CAAEC,CAAC,IAAK,IAAI,CAACC,QAAQ,CAAC;QAACC,GAAG,EAAEF,CAAC,CAACG,OAAAA;AAAO,OAAC,CAAC,CAAC,CAAA;AAC/E,KAAA;AACF,GAAA;AAEAC,EAAAA,MAAMA,GAAG;AACP,IAAA,MAAAC,WAAA,GAAiF,IAAI,CAACV,KAAK;AAArF,MAAA;QAACD,IAAI;QAAEY,QAAQ;QAAEV,KAAK;QAAEW,SAAS;QAAEC,UAAU;QAAEC,QAAQ;AAAEC,QAAAA,KAAAA;AAAc,OAAC,GAAAL,WAAA;AAALM,MAAAA,IAAI,GAAAC,4CAAA,CAAAP,WAAA,EAAAQ,WAAA,CAAA,CAAA;IAC7E,IAAI,CAACjB,KAAK,CAACC,QAAQ,IAAI,EAAE,EAAEH,IAAI,CAAC,EAAE;AAChC,MAAA,IAAI,IAAI,CAACF,KAAK,CAACU,GAAG,EAAE;QAClB,oBAAOd,yBAAA,CAAA0B,aAAA,CAAA,IAAA,CAAMtB,KAAK,CAACU,GAAG,EAAKS,IAAO,CAAC,CAAA;AACrC,OAAC,MAAM;AACL,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;AACF,KAAA;AACA,IAAA,oBAAOvB,yBAAA,CAAA0B,aAAA,SAAUH,IAAI,EAAGf,KAAK,CAACmB,KAAK,CAACrB,IAAI,CAAC,IAAKc,UAAU,IAAId,IAAK,EAAEY,QAAe,CAAC,CAAA;AACrF,GAAA;AACF,CAAA;AAEO,MAAMU,IAAI,gBAAGC,0BAAM,CAACC,gBAAS,CAAC/B,aAAa,CAAC,CAAC,CAAAgC,UAAA,CAAA;EAAAC,WAAA,EAAA,MAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,eAAA,EAAA,2MAAA,EAAA,EAAA,CAAA,EAClC1B,KAAK,IAAA;AAAA,EAAA,IAAA2B,YAAA,CAAA;EAAA,OAAAA,CAAAA,YAAA,GAAI3B,KAAK,CAACC,KAAK,cAAA0B,YAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAXA,YAAA,CAAaC,QAAQ,CAAA;AAAA,CAAA,EAY5C5B,KAAK,IAAIA,KAAK,CAACY,SAAS,4EAKzB;;MC5CUiB,OAAO,gBAAGP,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,SAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,4BAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,kbAAA,EAAA,yDAAA,CAAA,EAEV1B,KAAK,IAAIA,KAAK,CAACe,KAAK,KAAKf,KAAK,CAAC+B,KAAK,GAAG,uBAAuB,GAAGC,cAAQ,CAAC,MAAM,CAAC,CAAChC,KAAK,CAAC,CAAC,EAC5FA,KAAK,IAAIA,KAAK,CAACiC,WAAW,IAAI,CAAC,EACtCjC,KAAK,IAAIA,KAAK,CAACkC,IAAI,IAAI,EAAE,EAUhClC,KAAK,IAAIA,KAAK,CAACmC,QAAQ,8HAOxB;;;;;ACjBE,MAAMC,IAAI,GAAGC,IAAA,IAAA;EAAA,IAAC;AAACC,MAAAA,IAAAA;AAAa,KAAC,GAAAD,IAAA;AAANrC,IAAAA,KAAK,GAAAiB,4CAAA,CAAAoB,IAAA,EAAAnB,WAAA,CAAA,CAAA;EAAA,OAAMqB,6BAAA,CAAWvC,KAAK,CAACwC,EAAE,CAAC,gBAAG/C,yBAAA,CAAA0B,aAAA,CAACsB,iBAAM,CAACL,IAAI,EAAKpC,KAAQ,CAAC,gBAAGP,yBAAA,CAAA0B,aAAA,CAAA,GAAA,EAAAuB,4BAAA,CAAA,EAAA,EAAO1C,KAAK,EAAA;IAAEsC,IAAI,EAAEA,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEK,OAAO,CAAC,GAAG,EAAC,EAAE,CAAA;AAAE,GAAA,CAAG,CAAC,CAAA;AAAA,EAAA;AAE9HC,MAAAA,WAAW,GAAGC,KAAA,IAA2B;EAAA,IAA1B;MAACL,EAAE;AAACM,MAAAA,OAAAA;AAAgB,KAAC,GAAAD,KAAA;AAAN7C,IAAAA,KAAK,GAAAiB,4CAAA,CAAA4B,KAAA,EAAAE,YAAA,CAAA,CAAA;AAC9C,EAAA,oBAAOtD,yBAAA,CAAA0B,aAAA,CAAA,GAAA,EAAAuB,4BAAA,CAAA;IAAGI,OAAO,EAAGE,CAAC,IAAK;MACxB,IAAIF,OAAO,IAAI,CAACG,oBAAc,CAACH,OAAO,EAACE,CAAC,CAAC,EAAE;AAAE,QAAA,OAAA;AAAO,OAAA;AACpD,MAAA,IAAIA,CAAC,CAACE,kBAAkB,EAAE,EAAE;AAAE,QAAA,OAAA;AAAO,OAAA;MACrC,IAAI,CAACV,EAAE,EAAE;AAAE,QAAA,OAAA;AAAO,OAAA;MAClBQ,CAAC,CAACG,cAAc,EAAE,CAAA;MAClB,MAAM;QAACtD,KAAK;QAACuD,QAAQ;QAACC,MAAM;AAACC,QAAAA,IAAAA;AAAI,OAAC,GAAGC,6BAAA,CAAWf,EAAE,CAAC,GAAGA,EAAE,GAAG;AAACY,QAAAA,QAAQ,EAACZ,EAAAA;OAAG,CAAA;AACxE,MAAA,MAAMgB,GAAG,GAAG,CAACJ,QAAQ,IAAI,EAAE,KAAKC,MAAM,GAAG,GAAG,GAAGA,MAAM,CAACV,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAIW,IAAI,GAAG,GAAG,GAAGA,IAAI,CAACX,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;MACzHc,MAAM,CAACC,OAAO,CAACC,SAAS,CAAC9D,KAAK,EAAE,EAAE,EAAE2D,GAAG,CAAC,CAAA;AACxC,MAAA,IAAII,aAAa,GAAG,IAAIC,aAAa,CAAC,UAAU,EAAE;AAAEhE,QAAAA,KAAK,EAAEA,KAAAA;AAAM,OAAC,CAAC,CAAA;AACnE4D,MAAAA,MAAM,CAACK,aAAa,CAACF,aAAa,CAAC,CAAA;AACrC,KAAA;GAAO5D,EAAAA,KAAK,CAAG,CAAC,CAAA;AAClB,EAAC;AAEM,MAAM+D,KAAK,GAAGC,KAAA,IAAA;EAAA,IAAC;MAACC,OAAO;AAACtD,MAAAA,QAAAA;AAAiB,KAAC,GAAAqD,KAAA;AAANhE,IAAAA,KAAK,GAAAiB,4CAAA,CAAA+C,KAAA,EAAAE,YAAA,CAAA,CAAA;AAAA,EAAA,oBAAMzE,yBAAA,CAAA0B,aAAA,CAACsB,iBAAM,CAACsB,KAAK,EAAK/D,KAAK,EAAGiE,OAAO,IAAItD,QAAuB,CAAC,CAAA;AAAA,EAAA;AACtGwD,MAAAA,MAAM,GAAG1B,iBAAM,CAAC2B,OAAM;AACtBC,MAAAA,QAAQ,GAAG5B,iBAAM,CAAC6B,SAAQ;AAC1BC,MAAAA,WAAW,GAAGA,MAAM;EAC/B,MAAM,CAACC,IAAI,CAAC,GAAG/B,iBAAM,CAAC8B,WAAW,EAAE,CAAA;EACnC,MAAM,CAAClB,MAAM,CAAC,GAAGZ,iBAAM,CAACgC,eAAe,EAAE,CAAA;EACzC,OAAO;AAACrB,IAAAA,QAAQ,EAACoB,IAAI;AAACnB,IAAAA,MAAM,EAACA,MAAM,GAAG,GAAG,GAAGA,MAAM,GAAG,EAAE;AAACxD,IAAAA,KAAK,EAAC4D,MAAM,CAACC,OAAO,CAAC7D,KAAAA;GAAM,CAAA;AACrF,EAAC;AACY6E,MAAAA,eAAe,GAAGA,MAAM;AACnC,EAAA,MAAMC,MAAM,GAAGlC,iBAAM,CAACmC,SAAS,EAAE,CAAA;EACjC,MAAM,CAACJ,IAAI,CAAC,GAAG/B,iBAAM,CAAC8B,WAAW,EAAE,CAAA;AACnC,EAAA,OAAOI,MAAM,CAACE,IAAI,GAAGL,IAAI,CAAA;AAC3B,EAAC;AACYM,MAAAA,mBAAmB,GAAGA,MAAM;AACvC,EAAA,MAAMH,MAAM,GAAGlC,iBAAM,CAACmC,SAAS,EAAE,CAAA;EACjC,MAAM;IAACxB,QAAQ;AAACC,IAAAA,MAAAA;GAAO,GAAGkB,WAAW,EAAE,CAAA;AACvC,EAAA,OAAOI,MAAM,CAACE,IAAI,GAAGzB,QAAQ,GAAGC,MAAM,CAAA;AACxC,EAAC;AACY0B,MAAAA,WAAW,GAAGA,MAAMtC,iBAAM,CAAC8B,WAAW,EAAE,CAAC,CAAC,EAAC;AAC3CS,MAAAA,SAAS,GAAGvC,iBAAM,CAACuC,UAAS;AAC5BP,MAAAA,eAAe,GAAIQ,aAAa,IAAK;EAChD,MAAM,CAACC,QAAQ,EAAEC,QAAQ,CAAC,GAAG1C,iBAAM,CAAC8B,WAAW,EAAE,CAAA;AACjD,EAAA,MAAMlB,MAAM,GAAGZ,iBAAM,CAAC2C,SAAS,EAAE,CAAA;AACjC,EAAA,MAAMC,YAAY,GAAGC,aAAO,CAAC,MAAMC,2BAAA,CAASN,aAAa,EAACO,MAAM,CAACC,WAAW,CAAC,IAAIC,eAAe,CAACrC,MAAM,CAAC,CAACsC,OAAO,EAAE,CAAC,CAAC,EAAE,CAACtC,MAAM,CAAC,CAAC,CAAA;EAE/H,IAAIuC,gBAAgB,GAAGP,YAAY,CAAA;EAEnC,MAAMQ,eAAe,GAAGC,sBAAiB,CAAC,CAACC,UAAU,EAAEC,OAAO,KAAK;AACjEJ,IAAAA,gBAAgB,GAAGK,+BAAA,CAAaF,UAAU,CAAC,GAAGA,UAAU,CAACH,gBAAgB,CAAC,GAAGL,2BAAA,CAASK,gBAAgB,EAAEG,UAAU,CAAC,CAAA;IACnH,MAAMG,WAAW,GAAGjB,aAAa,GAC7BkB,yBAAA,CAAAC,4BAAA,EAEAC,2BAAA,CAASC,KAAA,IAAA;AAAA,MAAA,IAAC,CAACC,CAAC,EAACC,CAAC,CAAC,GAAAF,KAAA,CAAA;AAAA,MAAA,OAAKrB,aAAa,CAACsB,CAAC,CAAC,KAAKC,CAAC,CAAA;AAAA,KAAA,CAAC,EAAAC,8BAE7C,CAAC,CAACb,gBAAgB,CAAC,GACjBA,gBAAgB,CAAA;IACpBT,QAAQ,CAACuB,oBAAc,CAACxB,QAAQ,EAAEgB,WAAW,CAAC,EAAEF,OAAO,CAAC,CAAA;AAC1D,GAAC,CAAC,CAAA;AAEF,EAAA,OAAO,CAACX,YAAY,EAAEQ,eAAe,CAAC,CAAA;AACxC,EAAC;AAEYc,MAAAA,MAAM,GAAGlE,iBAAM,CAACkE;;;;ACvDhBC,MAAAA,YAAY,GAAGC,kBAAY,CAACxF,IAAI,CAAC,CAAAyF,iBAAA,KAAAA,iBAAA,GAAAC,0CAAA,CAM7C,CAAA,4GAAA,CAAA,CAAA,CAAA,EAAA;AACD,MAAMC,QAAQ,gBAAG1F,0BAAM,CAACD,IAAI,CAAC,CAAAG,UAAA,CAAA;EAAAC,WAAA,EAAA,kBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAO5B,CAAA,CAAA,CAAA,+EAAA,CAAA,CAAA,CAAA;AAED,MAAMuF,KAAK,gBAAGC,UAAG,CAAA,CAAA,kHAAA,EAAA,sCAAA,CAAA,EASElH,KAAK,IAAIA,KAAK,CAACmH,OAAO,GAAG,OAAO,GAAG,MAAM,CAG3D,CAAA;AAEYC,MAAAA,MAAM,gBAAG9F,0BAAM,cAAC7B,yBAAK,CAAC4H,UAAU,CAAC,CAAAhF,IAAA,EAIdiF,GAAG,KAAA;EAAA,IAJY;AACfC,MAAAA,IAAI,GAAG,QAAQ;MAAEC,MAAM;MAAEzG,KAAK;MAAE0G,KAAK;MAAEC,OAAO;MAAEC,KAAK;MAAEC,OAAO;MAAEC,SAAS;MAAEC,KAAK;MAAEC,KAAK;MAAEhG,KAAK;MAAEhC,IAAI;MAAEiI,QAAQ;MAAEC,KAAK;MAAEC,YAAY;MAAEC,YAAY;MAAEC,OAAO;MAAEC,MAAM;MAAEC,QAAQ;MAAEC,SAAS;MAAEC,aAAa;MAAEC,IAAI;MAC5MC,OAAO,EAAEC,OAAO,GAAG,QAAQ;MAAEC,SAAS;MAAEjI,QAAQ;MAAEwG,OAAO;AAAE0B,MAAAA,QAAQ,GAAG,CAAC;MAAEC,OAAO;MAAEC,OAAO;MACzFjI,QAAQ;MAAEkI,SAAS;MAAEC,eAAe;AAAEC,MAAAA,SAAAA;AACxC,KAAC,GAAA7G,IAAA;AADqDrC,IAAAA,KAAK,GAAAiB,4CAAA,CAAAoB,IAAA,EAAAnB,WAAA,CAAA,CAAA;AAAA,EAAA,oBAEvFzB,yBAAA,CAAA0B,aAAA,CAACwH,OAAO,EAAAjG,4BAAA,CAAA;IAAC4E,GAAG,EAAEA,GAAG,IAAI4B,SAAU;AAACL,IAAAA,QAAQ,EAAEA,QAAS;AAACD,IAAAA,SAAS,EAAEA,SAAS,GAAG,gBAAgB,IAAK7H,KAAK,IAAI2G,OAAO,IAAIC,KAAK,IAAIC,OAAO,IAAIC,SAAS,IAAIY,IAAI,IAAIV,KAAK,IAAIK,OAAO,IAAIC,MAAM,IAAIC,QAAQ,IAAIvG,KAAK,IAAI0F,KAAK,IAAIzH,KAAK,CAACmJ,UAAU,IAAInJ,KAAK,CAACoJ,YAAY,GAAI,wBAAwB,GAAG,EAAE,CAAE;AAAC7B,IAAAA,IAAI,EAAEoB,OAAO,KAAK,QAAQ,GAAGpB,IAAI,GAAG,EAAA;GAAQvH,EAAAA,KAAK,GACjVD,IAAI,iBAAIN,yBAAA,CAAA0B,aAAA,CAACE,IAAI,EAAA;AAACtB,IAAAA,IAAI,EAAEA,IAAK;IAAC,aAAY,EAAA,MAAA;GAAO,CAAC,EAC9CyI,aAAa,iBAAI/I,yBAAA,CAAA0B,aAAA,CAACU,OAAO,EAAA;IAACE,KAAK,EAAE,CAAC+F,KAAK,IAAI,CAACM,OAAO,IAAI,CAACC,MAAM,IAAI,CAACtG,KAAM;AAACG,IAAAA,IAAI,EAAE+F,KAAK,GAAG,IAAI,GAAG,IAAK;AAAChG,IAAAA,WAAW,EAAEgG,KAAK,GAAG,GAAG,GAAG,GAAA;AAAI,GAAC,CAAC,EACtI,CAACC,YAAY,IAAIC,YAAY,KAAK,CAACX,MAAM,iBAAI/H,yBAAA,CAAA0B,aAAA,CAACyF,YAAY,EAAA;AAAC7G,IAAAA,IAAI,EAAC,YAAY;IAAC,aAAY,EAAA,MAAA;GAAO,CAAC,EACjGyH,MAAM,iBAAI/H,yBAAA,CAAA0B,aAAA,CAAC6F,QAAQ,EAAA;AAACjH,IAAAA,IAAI,EAAC,MAAM;IAAC,aAAY,EAAA,MAAA;GAAO,CAAC,EACpDY,QAAQ,EACR4H,SAAS,iBAAI9I,yBAAA,CAAA0B,aAAA,CAACU,OAAO,EAAA;IAACE,KAAK,EAAE,CAAC+F,KAAK,IAAI,CAACM,OAAO,IAAI,CAACC,MAAM,IAAI,CAACtG,KAAM;IAACI,QAAQ,EAAA,IAAA;IAACD,IAAI,EAAE+F,KAAK,IAAI,IAAK;IAAChG,WAAW,EAAEgG,KAAK,IAAI,GAAA;AAAI,GAAE,CAC1H,CAAC,CAAA;AAAA,CAAC,CAAA,CAAC,CAAAzG,UAAA,CAAA;EAAAC,WAAA,EAAA,QAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,2DAAA,EAAA,cAAA,EAAA,8NAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,GAAA,EAAA,2BAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAIK1B,KAAK,IAAIA,KAAK,CAACmH,OAAO,GAAG,OAAO,GAAG,KAAK,EAC3CnF,cAAQ,EAeNhC,KAAK,IAAIqJ,eAAM,CAAC,IAAI,EAAErH,cAAQ,CAAChC,KAAK,EAAE,IAAI,CAAC,CAAC,EAG5CA,KAAK,IAAIqJ,eAAM,CAAC,IAAI,EAAErH,cAAQ,CAAChC,KAAK,EAAE,IAAI,CAAC,CAAC,EAE1DA,KAAK,IAAIA,KAAK,CAACsJ,MAAM,oCAEtB,EACCtJ,KAAK,IAAI,CAACA,KAAK,CAAC+I,OAAO,IAAI,CAAC/I,KAAK,CAACuI,SAAS,IAAIrB,UAAG,uBAE9CD,KAAK,EAEPjH,KAAK,IAAIA,KAAK,CAAC8I,OAAO,IAAI7B,KAAK,CAClC,EAKCjH,KAAK,IAAIA,KAAK,CAACuJ,SAAS,IAAIrC,UAAG,CAAA,CAAA,kHAAA,EAAA,oBAAA,EAAA,IAAA,CAAA,EASZlH,KAAK,IAAIA,KAAK,CAACmH,OAAO,GAAG,OAAO,GAAG,MAAM,EACtCnH,KAAK,IAAIwJ,uBAAc,CAAC,GAAG,EAAExH,cAAQ,CAAC,OAAO,CAAC,CAAChC,KAAK,CAAC,CAAC,CAE7E,EACCA,KAAK,IAAIA,KAAK,CAACD,IAAI,IAAImH,UAAG,CAMxB7F,CAAAA,+FAAAA,EAAAA,uFAAAA,CAAAA,EAAAA,IAAI,CAOP,EACCrB,KAAK,IAAIA,KAAK,CAACgI,QAAQ,IAAId,UAAG,CAAA,CAAA,YAAA,EAAA,aAAA,CAAA,EAE5B7F,IAAI,CAGP,EACCrB,KAAK,IAAIA,KAAK,CAACiI,KAAK,IAAIf,UAAG,+FAMzBlH,KAAK,CAACD,IAAI,IAAImH,UAAG,CACf7F,CAAAA,EAAAA,EAAAA,qEAAAA,CAAAA,EAAAA,IAAI,CAMP,EACCrB,KAAK,CAACgI,QAAQ,IAAId,UAAG,gCAEnB7F,IAAI,CAGP,CACF,EACCrB,KAAK,IAAIA,KAAK,CAACyJ,GAAG,IAAIvC,UAAG,CAI1B,CAAA,sDAAA,CAAA,CAAA,EACClH,KAAK,IAAIA,KAAK,CAACkI,YAAY,IAAIhB,UAAG,4CAGnC,EACClH,KAAK,IAAIA,KAAK,CAACmI,YAAY,IAAIjB,UAAG,CAAA,CAAA,EAAA,EAAA,4CAAA,CAAA,EAChCN,YAAY,CAIf,EACC5G,KAAK,IAAIA,KAAK,CAAC8H,KAAK,IAAIZ,UAAG,mFACblF,cAAQ,CAAC,YAAY,CAAC,EAC3BA,cAAQ,CAAC,QAAQ,CAAC,EAEXhC,KAAK,IAAIqJ,eAAM,CAAC,IAAI,EAAErH,cAAQ,CAAC,YAAY,CAAC,CAAChC,KAAK,CAAC,CAAC,EAGpDA,KAAK,IAAIqJ,eAAM,CAAC,IAAI,EAAErH,cAAQ,CAAC,YAAY,CAAC,CAAChC,KAAK,CAAC,CAAC,CAErE,EACCA,KAAK,IAAIA,KAAK,CAACmJ,UAAU,IAAIjC,UAAG,CAClBlH,CAAAA,aAAAA,EAAAA,SAAAA,EAAAA,qBAAAA,EAAAA,uBAAAA,EAAAA,IAAAA,CAAAA,EAAAA,KAAK,IAAIwJ,uBAAc,CAAC,IAAI,EAAExH,cAAQ,CAAC,OAAO,CAAC,CAAChC,KAAK,CAAC,CAAC,EAC5DgC,cAAQ,CAAC,OAAO,CAAC,EAEVhC,KAAK,IAAIwJ,uBAAc,CAAC,IAAI,EAAExH,cAAQ,CAAC,OAAO,CAAC,CAAChC,KAAK,CAAC,CAAC,EAGvDA,KAAK,IAAIwJ,uBAAc,CAAC,IAAI,EAAExH,cAAQ,CAAC,OAAO,CAAC,CAAChC,KAAK,CAAC,CAAC,CAExE,EACCA,KAAK,IAAIA,KAAK,CAACoJ,YAAY,IAAIlC,UAAG,CAAA,CAAA,aAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,IAAA,CAAA,EACpBlH,KAAK,IAAIwJ,uBAAc,CAAC,IAAI,EAAEH,eAAM,CAAC,IAAI,EAAErH,cAAQ,CAAC,SAAS,CAAC,CAAChC,KAAK,CAAC,CAAC,CAAC,EAC5EA,KAAK,IAAIqJ,eAAM,CAAC,IAAI,EAAErH,cAAQ,CAAC,SAAS,CAAC,CAAChC,KAAK,CAAC,CAAC,EAE1CA,KAAK,IAAIwJ,uBAAc,CAAC,IAAI,EAAEH,eAAM,CAAC,IAAI,EAAErH,cAAQ,CAAC,SAAS,CAAC,CAAChC,KAAK,CAAC,CAAC,CAAC,EAGvEA,KAAK,IAAIwJ,uBAAc,CAAC,IAAI,EAAEH,eAAM,CAAC,IAAI,EAAErH,cAAQ,CAAC,SAAS,CAAC,CAAChC,KAAK,CAAC,CAAC,CAAC,CAExF,EACCA,KAAK,IAAI,CAACA,KAAK,CAACoI,OAAO,IAAIpI,KAAK,CAACqI,MAAM,IAAIrI,KAAK,CAACsI,QAAQ,KAAKpB,UAAG,CAAA,CAAA,QAAA,EAAA,mBAAA,EAAA,GAAA,EAAA,SAAA,EAAA,kCAAA,EAAA,GAAA,EAAA,iEAAA,EAAA,iKAAA,EAAA,yBAAA,CAAA,EACxDlH,KAAK,CAAC+B,KAAK,GAAG,OAAO,GAAG/B,KAAK,CAAC6H,SAAS,GAAG7F,cAAQ,CAAC,MAAM,CAAC,GAAG,iBAAiB,EAErFX,IAAI,EAAKuF,YAAY,EACZ5G,KAAK,CAAC+B,KAAK,GAAG,OAAO,GAAG/B,KAAK,CAAC6H,SAAS,GAAG7F,cAAQ,CAAC,MAAM,CAAC,GAAG,iBAAiB,EAIzEhC,KAAK,CAACoI,OAAO,GAAG,OAAO,GAAGpI,KAAK,CAACqI,MAAM,GAAG,QAAQ,GAAG,EAAE,EAAIrI,KAAK,CAAC+B,KAAK,GAAG,OAAO,GAAG/B,KAAK,CAAC6H,SAAS,GAAG7F,cAAQ,CAAC,MAAM,CAAC,GAAG,kBAAkB,EAMtIhC,KAAK,CAACmH,OAAO,GAAG,OAAO,GAAG,KAAK,EAY5CnH,KAAK,CAACsI,QAAQ,IAAI,gBAAgB,CAMzC,EACCtI,KAAK,IAAIA,KAAK,CAACyH,KAAK,IAAIP,UAAG,2GAQ5B,EACClH,KAAK,IAAIA,KAAK,CAAC+B,KAAK,IAAI,CAAC/B,KAAK,CAACoI,OAAO,IAAI,CAACpI,KAAK,CAACqI,MAAM,IAAInB,UAAG,CAAA,CAAA,QAAA,EAAA,wCAAA,EAAA,uBAAA,EAAA,IAAA,CAAA,EACrDlF,cAAQ,CAAC,MAAM,CAAC,EAGTqH,eAAM,CAAC,IAAI,EAAE,SAAS,CAAC,EAGvBA,eAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAExC,EACCrJ,KAAK,IAAIA,KAAK,CAACuI,SAAS,IAAIrB,UAAG,CAAA,CAAA,mDAAA,EAAA,sBAAA,CAAA,EAG7B7F,IAAI,CAGP,EACCrB,KAAK,IAAIA,KAAK,CAACwI,aAAa,IAAItB,UAAG,CAEjC7F,CAAAA,sBAAAA,EAAAA,sBAAAA,EAAAA,gCAAAA,CAAAA,EAAAA,IAAI,EAGJQ,OAAO,CAIV,EACC6H,WAAK,CAACC,MAAM,CAAAC,kBAAA,KAAAA,kBAAA,GAAA7C,0CAAA,2CACV/G,KAAK,IAAI,CAACA,KAAK,CAACiI,KAAK,IAAI,CAACjI,KAAK,CAACgI,QAAQ,IAAId,UAAG,CAGhD,CAAA,qCAAA,CAAA,CAAA,EACClH,KAAK,IAAI,CAACA,KAAK,CAACiI,KAAK,IAAIjI,KAAK,CAACgI,QAAQ,IAAId,UAAG,yCAG/C,EACClH,KAAK,IAAIA,KAAK,CAACkI,YAAY,IAAIhB,UAAG,CAAA,CAAA,uBAAA,EAAA,eAAA,CAAA,EAEhCN,YAAY,CAGf,CAAA,EAED8C,WAAK,CAACG,GAAG,CAAC,GAAG,CAAC,CAAAC,kBAAA,KAAAA,kBAAA,GAAA/C,0CAAA,uBACZ/G,KAAK,IAAI,CAACA,KAAK,CAACiI,KAAK,IAAI,CAACjI,KAAK,CAACgI,QAAQ,IAAI,CAAChI,KAAK,CAACmI,YAAY,IAAIjB,UAAG,CAAA,CAAA,cAAA,CAAA,CAEvE,GAEDlH,KAAK,IAAIA,KAAK,CAAC+J,SAAS,IAEzB,wBAAA,EACCC,iBAAW,CAAC,QAAQ,CAAC,EACxB;AAED5C,MAAM,CAAC6C,CAAC,GAAIjK,KAAK,iBAAKP,yBAAA,CAAA0B,aAAA,CAACiG,MAAM,EAAA1E,4BAAA,KAAK1C,KAAK,EAAA;EAAE4I,SAAS,EAAE5I,KAAK,CAAC4I,SAAU;AAACF,EAAAA,OAAO,EAAC,GAAA;AAAG,CAAA,CAAC,CAAC,CAAA;AAClFtB,MAAM,CAAChF,IAAI,GAAIpC,KAAK,iBAAKP,yBAAA,CAAA0B,aAAA,CAACiG,MAAM,EAAA1E,4BAAA,KAAK1C,KAAK,EAAA;EAAE4I,SAAS,EAAE5I,KAAK,CAAC4I,SAAU;AAACF,EAAAA,OAAO,EAAEtG,IAAAA;AAAK,CAAA,CAAC,CAAC;;;ACzR3E8H,MAAAA,oBAAoB,GAAG7H,IAAA,IAA8E;EAAA,IAA7E;MAACS,OAAO;MAACnC,QAAQ;MAACwJ,SAAS;AAAEC,MAAAA,EAAE,GAAGhD,MAAM;MAAEiD,SAAS;AAAEzB,MAAAA,SAAAA;AAAkB,KAAC,GAAAvG,IAAA;AAANrC,IAAAA,KAAK,GAAAiB,4CAAA,CAAAoB,IAAA,EAAAnB,WAAA,CAAA,CAAA;AAC1G,EAAA,MAAMoJ,OAAO,GAAGC,cAAS,EAAE,CAAA;EAC3B,MAAMC,OAAO,GAAGJ,EAAE,CAAA;AAClB,EAAA,oBAAO3K,yBAAA,CAAA0B,aAAA,CAACqJ,OAAO,EAAA9H,4BAAA,CAAA;AAACkG,IAAAA,SAAS,EAAEA,SAAU;IAACL,SAAS,EAAE+B,OAAO,CAACG,MAAAA;AAAO,GAAA,EAAKzK,KAAK,EAAA;AAAE8C,IAAAA,OAAO,EAAGE,CAAC,IAAKsH,OAAO,CAACI,IAAI,CAAC5H,OAAO,CAACE,CAAC,CAAC,CAAC5C,IAAI,CAAC,MAAO4C,CAAC,IAAK;AACpI,MAAA,MAAMC,oBAAc,CAACkH,SAAS,EAACnH,CAAC,CAAC,CAAA;AACjC,MAAA,OAAOA,CAAC,CAAA;KACT,EAAC,MAAOA,CAAC,IAAK;AACb,MAAA,MAAMC,oBAAc,CAACoH,SAAS,EAACrH,CAAC,CAAC,CAAA;AACjC,MAAA,MAAMA,CAAC,CAAA;AACT,KAAC,CAAC,CAAA;AAAE,GAAA,CAAA,EAAErC,QAAkB,CAAC,CAAA;AAC3B;;;ACRagK,MAAAA,UAAU,gBAAGrJ,0BAAM,CAACe,IAAA,IAAA;EAAA,IAAC;MAACuG,SAAS;MAACL,SAAS;MAACZ,KAAK;MAAEiD,QAAQ;MAAEjK,QAAQ;MAAE+H,OAAO,EAAEC,OAAO,GAAG,KAAA;AAAe,KAAC,GAAAtG,IAAA;AAANrC,IAAAA,KAAK,GAAAiB,4CAAA,CAAAoB,IAAA,EAAAnB,WAAA,CAAA,CAAA;AAAA,EAAA,oBAAMzB,yBAAA,CAAA0B,aAAA,CAACwH,OAAO,EAAAjG,4BAAA,CAAA;AAACkG,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAAK5I,KAAK,CAAA,EAC/JW,QAAQ,EAAC,GAAC,EAAC4H,SAAS,iBAAI9I,yBAAA,CAAA0B,aAAA,CAACU,OAAO,EAAA;AAACK,IAAAA,IAAI,EAAE,EAAG;AAACD,IAAAA,WAAW,EAAE,CAAA;AAAE,GAAE,CACtD,CAAC,CAAA;AAAA,CAAA,CAAC,CAAAT,UAAA,CAAA;EAAAC,WAAA,EAAA,YAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,iDAAA,EAAA,WAAA,EAAA,4DAAA,EAAA,IAAA,EAAA,iEAAA,EAAA,2BAAA,CAAA,EAGI1B,KAAK,IAAIA,KAAK,CAAC4K,QAAQ,GAAGA,QAAQ,GAAG,IAAI,EAC7C5K,KAAK,IAAIA,KAAK,CAAC2H,KAAK,GAAG3F,cAAQ,CAAC,OAAO,CAAC,GAAGA,cAAQ,CAAC,MAAM,CAAC,EAIzDhC,KAAK,IAAIA,KAAK,CAAC2H,KAAK,GAAG0B,eAAM,CAAC,GAAG,EAAErH,cAAQ,CAAC,OAAO,CAAC,CAAChC,KAAK,CAAC,CAAC,GAAGqJ,eAAM,CAAC,GAAG,EAAErH,cAAQ,CAAC,MAAM,CAAC,CAAChC,KAAK,CAAC,CAAC,EAE5G6B,OAAO,EAKP7B,KAAK,IAAIA,KAAK,CAACsJ,MAAM,oCAEtB,EAIF;AAEDqB,UAAU,CAACV,CAAC,GAAIjK,KAAK,iBAAKP,yBAAA,CAAA0B,aAAA,CAACwJ,UAAU,EAAAjI,4BAAA,KAAK1C,KAAK,EAAA;EAAE4I,SAAS,EAAE5I,KAAK,CAAC4I,SAAU;AAACF,EAAAA,OAAO,EAAC,GAAA;AAAG,CAAA,CAAC,CAAC,CAAA;AAC1FiC,UAAU,CAACvI,IAAI,GAAIpC,KAAK,iBAAKP,yBAAA,CAAA0B,aAAA,CAACwJ,UAAU,EAAAjI,4BAAA,KAAK1C,KAAK,EAAA;EAAE4I,SAAS,EAAE5I,KAAK,CAAC4I,SAAU;AAACF,EAAAA,OAAO,EAAEtG,IAAAA;AAAK,CAAA,CAAC,CAAC;;;;AC3BhG,MAAMyI,UAAU,GAAIC,OAAO,IAAK;EAC9B,MAAM;IAACC,SAAS;IAACC,UAAU;IAACC,YAAY;IAACC,WAAW;AAACC,IAAAA,UAAAA;AAAU,GAAC,GAAG1H,MAAM,CAAC2H,gBAAgB,CAACN,OAAO,CAAC,CAAA;EACnG,OAAO;IAACC,SAAS;IAACC,UAAU;IAACC,YAAY;IAACC,WAAW;AAACC,IAAAA,UAAAA;GAAW,CAAA;AACnE,CAAC,CAAA;AAED,MAAME,mBAAmB,GAAIC,UAAU,IAAK;AAC1C,EAAA,IAAI,CAACA,UAAU,EAAE,OAAO,EAAE,CAAA;EAC1B,MAAM;IAACP,SAAS;IAACC,UAAU;IAACC,YAAY;IAACC,WAAW;IAACK,aAAa;AAACJ,IAAAA,UAAAA;AAAU,GAAC,GAAG1H,MAAM,CAAC2H,gBAAgB,CAACE,UAAU,CAAC,CAAA;EACpH,OAAO;AAACE,IAAAA,WAAW,EAAC;MAACT,SAAS;MAACC,UAAU;MAACC,YAAY;MAACC,WAAW;MAACK,aAAa;AAACJ,MAAAA,UAAAA;KAAW;AAACG,IAAAA,UAAAA;GAAW,CAAA;AAE1G,CAAC,CAAA;MAEYG,UAAU,GAAG,UAACX,OAAO,EAGmB;EAAA,IAHjBY,UAAU,GAAA9L,SAAA,CAAA+L,MAAA,GAAA/L,CAAAA,IAAAA,SAAA,CAAAgM,CAAAA,CAAAA,KAAAA,SAAA,GAAAhM,SAAA,MAAIkL,OAAO,CAACe,YAAY,GAAGf,OAAO,CAACe,YAAY,CAACC,qBAAqB,EAAE,GAAG;AACtHC,IAAAA,GAAG,EAAE,CAAC;AACNC,IAAAA,IAAI,EAAE,CAAA;GACP,CAAA;EAAA,IAAG;IAACC,UAAU;IAAEC,aAAa;AAACC,IAAAA,WAAAA;AAAW,GAAC,GAAAvM,SAAA,CAAA+L,MAAA,GAAA/L,CAAAA,IAAAA,SAAA,CAAAgM,CAAAA,CAAAA,KAAAA,SAAA,GAAAhM,SAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;AAC9C,EAAA,IAAK,CAACqM,UAAU,IAAInB,OAAO,CAACsB,KAAK,CAACC,QAAQ,KAAK,OAAO,IAAKvB,OAAO,CAACsB,KAAK,CAACE,OAAO,KAAK,MAAM,EAAE,OAAA;EAC7F,MAAM;IAACN,IAAI;IAAED,GAAG;IAAEQ,MAAM;AAAEC,IAAAA,KAAAA;AAAK,GAAC,GAAG1B,OAAO,CAACgB,qBAAqB,EAAE,CAAA;EAClE,MAAMW,OAAO,GAAGN,WAAW,GAAGtB,UAAU,CAACC,OAAO,CAAC,GAAG,EAAE,CAAA;;AAEtD;EACA,OAAA4B,eAAA,CAAAA,eAAA,CAAA;IACE5B,OAAO;IACP6B,WAAW,EAAE7B,OAAO,CAAC6B,WAAW;IAChCZ,GAAG,EAAEG,aAAa,GAAGpB,OAAO,CAAC8B,SAAS,GAAIb,GAAG,GAAGL,UAAU,CAACK,GAAI;IAC/DC,IAAI,EAAEE,aAAa,GAAGpB,OAAO,CAAC+B,UAAU,GAAIb,IAAI,GAAGN,UAAU,CAACM,IAAK;IACnEO,MAAM;AAAEC,IAAAA,KAAAA;AAAK,GAAA,EACVnB,mBAAmB,CAACP,OAAO,CAACQ,UAAU,CAAC,GACvCmB,OAAO,CAAA,CAAA;AAEd,EAAC;AAED,MAAMK,SAAS,GAAG,YAAA;AAAA,EAAA,KAAA,IAAAC,IAAA,GAAAnN,SAAA,CAAA+L,MAAA,EAAIqB,IAAI,GAAAC,IAAAA,KAAA,CAAAF,IAAA,GAAAG,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA,EAAA,EAAA;AAAJF,IAAAA,IAAI,CAAAE,IAAA,CAAAtN,GAAAA,SAAA,CAAAsN,IAAA,CAAA,CAAA;AAAA,GAAA;EAAA,OAAKF,IAAI,CAACG,GAAG,CAACC,UAAU,CAAC,CAACC,MAAM,CAAC,CAACpD,CAAC,EAAEqD,CAAC,KAAKrD,CAAC,GAAGqD,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;AAAA,CAAA,CAAA;AAErF,MAAMC,QAAQ,GAAGA,CAACC,MAAM,EAAEC,EAAE,KAAK;AAC/B,EAAA,KAAK,IAAIC,CAAC,IAAIF,MAAM,EAAE;IACpBC,EAAE,CAACC,CAAC,CAAC,CAAA;AACP,GAAA;AACF,CAAC,CAAA;MAEYC,qBAAqB,GAAGC,qBAAe,CAAC,gBAAgB,EAAC;AACtE,MAAMC,qBAAqB,GAAGC,qBAAe,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;AAC3E,MAAMC,sBAAsB,GAAGD,qBAAe,CAAA,aAAA,EAAA,aAAA,EAAA,aAA4C,CAAC,CAAA;AAE3F,MAAME,gBAAgB,GAAG;AACvBC,EAAAA,MAAM,EAAEJ,qBAAAA;AACV,CAAC,CAAA;AACD,MAAMK,YAAY,GAAI3H,CAAC,IAAKyH,gBAAgB,CAACzH,CAAC,CAAC,IAAIA,CAAC,CAAA;AAE7C,MAAM4H,eAAe,GAAGA,CAACC,aAAa,kDAAkDC,cAAc,qBAAqBC,OAAO,KAAK;AAC5I,EAAA,MAAMC,cAAc,GAAG,OAAOF,cAAc,KAAK,QAAQ,GAAK9H,CAAC,IAAKA,CAAC,GAAG,GAAG,GAAG8H,cAAc,GAAIA,cAAc,CAAA;EAC9G,MAAMG,qBAAqB,GAAG,OAAOJ,aAAa,KAAK,UAAU,GAAGA,aAAa,EAAE,GAAGA,aAAa,CAAA;AACnG,EAAA,MAAMK,SAAS,GAAG,EAAE,CAACC,MAAM,CAAC,OAAOF,qBAAqB,KAAK,QAAQ,GAAGA,qBAAqB,CAACG,KAAK,CAAC,GAAG,CAAC,GAAGH,qBAAqB,CAAC,CAAA;EACjI,MAAMI,YAAY,GAAIrI,CAAC,IAAK+H,OAAO,GAAG/H,CAAC,GAAG,UAAU,GAAGA,CAAC,CAAA;AACxD,EAAA,OAAOkI,SAAS,CAACtB,GAAG,CAAC5G,CAAC,IAAIqI,YAAY,CAACrI,CAAC,CAACsI,IAAI,EAAE,CAACC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAGP,cAAc,CAAChI,CAAC,CAAC,GAAG2H,YAAY,CAAC3H,CAAC,CAAC,CAAC,CAAC,CAACwI,IAAI,CAAC,IAAI,CAAC,CAAA;AACrH,EAAC;AAED,MAAMC,YAAY,GAAI/K,OAAO,IAAK;AAChC,EAAA,MAAMgL,MAAM,GAAGhL,OAAO,CAACiL,SAAS,CAAC,IAAI,CAAC,CAAA;AACtC,EAAA,MAAMC,WAAW,GAAGC,QAAQ,CAACjO,aAAa,CAAC,KAAK,CAAC,CAAA;EACjD,EAAE,CAACkO,KAAK,CAACC,IAAI,CAACL,MAAM,CAACM,UAAU,CAAC,CAACC,OAAO,CAAC9B,CAAC,IAAIyB,WAAW,CAACM,MAAM,CAAC/B,CAAC,CAAC,CAAC,CAAA;EACpE,MAAM;IAACpB,OAAO;IAAEE,KAAK;IAAED,MAAM;IAAEmD,OAAO;IAAEC,eAAe;IAAEC,gBAAgB;IAAEC,iBAAiB;AAAEC,IAAAA,cAAAA;AAAc,GAAC,GAAGrM,MAAM,CAAC2H,gBAAgB,CAACnH,OAAO,CAAC,CAAA;AAChJuB,EAAAA,MAAM,CAACuK,MAAM,CAACZ,WAAW,CAAC/C,KAAK,EAAE;IAC/BE,OAAO;AACPE,IAAAA,KAAK,EAAEM,SAAS,CAACN,KAAK,EAAE,GAAG,GAAGmD,eAAe,EAAE,GAAG,GAAGC,gBAAgB,CAAC;AACtErD,IAAAA,MAAM,EAAEO,SAAS,CAACP,MAAM,EAAE,GAAG,GAAGsD,iBAAiB,EAAE,GAAG,GAAGC,cAAc,CAAC;IACxEJ,OAAO;AACPrD,IAAAA,QAAQ,EAAE,UAAU;AACpBN,IAAAA,GAAG,EAAE,CAAC;AACNC,IAAAA,IAAI,EAAE,CAAA;AACR,GAAC,CAAC,CAAA;AACF,EAAA,OAAOmD,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,MAAMa,iBAAiB,GAAG,IAAIC,GAAG,EAAE,CAAA;AACnC,MAAMC,SAAS,GAAG,IAAID,GAAG,EAAE,CAAA;AAC3B,MAAME,uBAAuB,GAAG,IAAIF,GAAG,EAAE,CAAA;AAEzC,MAAMG,qBAAqB,GAAIC,UAAU,IAAMC,UAAU,IAAK;AAC5D,EAAA,MAAMC,YAAY,GAAGF,UAAU,CAACG,aAAa,CAAC,cAAc,CAAC,CAAA;AAC7D,EAAA,MAAMC,YAAY,GAAGJ,UAAU,CAACG,aAAa,CAAC,cAAc,CAAC,CAAA;AAC7D,EAAA,MAAME,QAAQ,GAAGJ,UAAU,CAACE,aAAa,CAAC,cAAc,CAAC,CAAA;AACzD,EAAA,MAAMG,QAAQ,GAAGL,UAAU,CAACE,aAAa,CAAC,cAAc,CAAC,CAAA;AACzDE,EAAAA,QAAQ,CAACtE,KAAK,CAACwE,cAAc,GAAGC,SAAS,CAACN,YAAY,EAAEG,QAAQ,CAACtE,KAAK,CAAC0E,SAAS,CAAC,CAAA;AACjFH,EAAAA,QAAQ,CAACvE,KAAK,CAACwE,cAAc,GAAGC,SAAS,CAACJ,YAAY,EAAEE,QAAQ,CAACvE,KAAK,CAAC0E,SAAS,CAAC,CAAA;EACjFZ,SAAS,CAACa,GAAG,CAACL,QAAQ,EAAER,SAAS,CAACc,GAAG,CAACT,YAAY,CAAC,CAAC,CAAA;EACpDL,SAAS,CAACa,GAAG,CAACJ,QAAQ,EAAET,SAAS,CAACc,GAAG,CAACP,YAAY,CAAC,CAAC,CAAA;EACpDC,QAAQ,CAACO,gBAAgB,CAAC,cAAc,EAAEP,QAAQ,CAACQ,MAAM,CAAC,CAAA;EAC1DP,QAAQ,CAACM,gBAAgB,CAAC,cAAc,EAAEE,eAAe,CAACR,QAAQ,EAAEL,UAAU,CAAC,CAAC,CAAA;AAChFH,EAAAA,uBAAuB,CAACiB,MAAM,CAACf,UAAU,CAAC,CAAA;EAC1CF,uBAAuB,CAACY,GAAG,CAACT,UAAU,EAAEF,qBAAqB,CAACE,UAAU,CAAC,CAAC,CAAA;AAC5E,CAAC,CAAA;AAED,MAAMa,eAAe,GAAGA,CAACE,KAAK,EAAEC,OAAO,KAAK,MAAM;EAChDD,KAAK,CAACH,MAAM,EAAE,CAAA;EACd,MAAMK,WAAW,GAAG,EAAE,CAAClC,KAAK,CAACC,IAAI,CAACgC,OAAO,CAAC3Q,QAAQ,CAAC,CAAA;AACnD4M,EAAAA,QAAQ,CAACgE,WAAW,EAAE7D,CAAC,IAAI;IACzB,IAAIA,CAAC,CAAC8D,OAAO,EAAE;AACb;AACA;AACA,MAAA,MAAMC,IAAI,GAAG/D,CAAC,CAAC8D,OAAO,CAACE,WAAW,CAAA;AAClChE,MAAAA,CAAC,CAACtB,KAAK,CAACuF,OAAO,GAAIF,IAAI,IAAIA,IAAI,KAAK,GAAG,GAAIA,IAAI,GAAG,EAAE,CAAA;AACtD,KAAA;AACF,GAAC,CAAC,CAAA;AACF;AACAtB,EAAAA,uBAAuB,CAACiB,MAAM,CAACE,OAAO,CAAC,CAAA;AACzC,CAAC,CAAA;AACD,MAAMM,aAAa,GAAG,gBAAgB,IAAIC,WAAW,CAACC,SAAS,CAAA;AACxD,MAAMC,KAAK,GAAGA,CAACC,IAAI,EAAElB,SAAS,EAAEmB,QAAQ,KAAK;EAClD,IAAI,CAACnB,SAAS,EAAE;AAAC,IAAA,OAAA;AAAM,GAAA;AACvB,EAAA,MAAM,CAACoB,eAAe,EAAEC,cAAc,CAAC,GAAGnC,iBAAiB,CAACgB,GAAG,CAACgB,IAAI,CAAC,IAAI,EAAE,CAAA;EAC3E,MAAMI,YAAY,GAAGF,eAAe,IAAIF,IAAI,CAAC5F,KAAK,CAAC0E,SAAS,CAAA;EAC5DZ,SAAS,CAACa,GAAG,CAACiB,IAAI,EAAEK,IAAI,CAACC,GAAG,EAAE,CAAC,CAAA;AAC/B,EAAA,MAAMC,kBAAkB,GAAGC,OAAO,CAC/BC,IAAI,CAAC,CACJ,IAAID,OAAO,CAACE,GAAG,IAAIV,IAAI,CAACf,gBAAgB,CAAC,gBAAgB,EAAEyB,GAAG,CAAC,CAAC,EAChE,IAAIF,OAAO,CAAC,CAACE,GAAG,EAACC,GAAG,KAAKC,UAAU,CAACD,GAAG,EAACf,aAAa,GAAE,IAAI,GAAG,GAAG,CAAC,CAAC,CACpE,CAAC,CAAA;AAEJI,EAAAA,IAAI,CAAC5F,KAAK,CAAC0E,SAAS,GAAGA,SAAS,CAAA;EAChC,IAAI,CAACqB,cAAc,EAAE;IACnB,MAAMU,GAAG,GAAGxQ,IAAA,IAAc;MAAA,IAAb;AAACyQ,QAAAA,MAAAA;AAAM,OAAC,GAAAzQ,IAAA,CAAA;MACnB,IAAIyQ,MAAM,KAAKd,IAAI,EAAE,OAAA;AACrB9B,MAAAA,SAAS,CAACkB,MAAM,CAACY,IAAI,CAAC,CAAA;AACtBhC,MAAAA,iBAAiB,CAACoB,MAAM,CAACY,IAAI,CAAC,CAAA;AAC9BA,MAAAA,IAAI,CAACe,mBAAmB,CAAC,cAAc,EAAEF,GAAG,CAAC,CAAA;MAC7CZ,QAAQ,IAAIA,QAAQ,EAAE,CAAA;AACtBD,MAAAA,IAAI,CAAC5F,KAAK,CAAC0E,SAAS,GAAGsB,YAAY,CAAA;KACpC,CAAA;AACDG,IAAAA,kBAAkB,CACfS,KAAK,CAAC,MAAMH,GAAG,CAAC;AAACC,MAAAA,MAAM,EAACd,IAAAA;AAAI,KAAC,CAAC,CAAC,CAAA;AAClCA,IAAAA,IAAI,CAACf,gBAAgB,CAAC,cAAc,EAAE4B,GAAG,CAAC,CAAA;IAC1C7C,iBAAiB,CAACe,GAAG,CAACiB,IAAI,EAAE,CAACI,YAAY,EAAES,GAAG,CAAC,CAAC,CAAA;AAClD,GAAA;AACF,EAAC;AAED,MAAMI,oBAAoB,GAAGA,CAACC,OAAO,EAAEC,OAAO,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAACC,KAAK,CAACC,CAAC,IAAIH,OAAO,CAACG,CAAC,CAAC,KAAKF,OAAO,CAACE,CAAC,CAAC,CAAC,CAAA;AAErH,MAAMC,sBAAsB,GAAG,UAACJ,OAAO,EAAEC,OAAO,EAA0C;EAAA,IAAxC;IAACI,aAAa;AAAEC,IAAAA,YAAAA;AAAa,GAAC,GAAA5T,SAAA,CAAA+L,MAAA,GAAA/L,CAAAA,IAAAA,SAAA,CAAAgM,CAAAA,CAAAA,KAAAA,SAAA,GAAAhM,SAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;EAC1F,IAAIsT,OAAO,IAAIC,OAAO,IAAIF,oBAAoB,CAACC,OAAO,EAAEC,OAAO,CAAC,EAAE;AAAA,IAAA,IAAAM,oBAAA,EAAAC,oBAAA,EAAAC,qBAAA,EAAAC,qBAAA,CAAA;AAChE,IAAA,MAAM5B,IAAI,GAAGmB,OAAO,CAACrI,OAAO,CAAA;IAC5B,MAAM;MAAC+B,UAAU;MAAED,SAAS;MAAEiH,YAAY;MAAEC,YAAY;MAAEC,WAAW;AAAEC,MAAAA,WAAAA;AAAW,KAAC,GAAGhC,IAAI,CAAA;AAC1F,IAAA,MAAMiC,SAAS,GAAIjC,IAAI,CAAC1G,UAAU,IAAI0G,IAAI,CAAC1G,UAAU,CAAC2I,SAAS,IAAK,CAAC,CAAA;AACrE,IAAA,MAAMC,UAAU,GAAIlC,IAAI,CAAC1G,UAAU,IAAI0G,IAAI,CAAC1G,UAAU,CAAC4I,UAAU,IAAK,CAAC,CAAA;IACvE,MAAMlI,IAAI,GAAGkH,OAAO,CAAClH,IAAI,GAAGa,UAAU,GAAGqH,UAAU,CAAA;IACnD,MAAMnI,GAAG,GAAGmH,OAAO,CAACnH,GAAG,GAAGa,SAAS,GAAGqH,SAAS,CAAA;IAC/C,MAAME,WAAW,GAAGjB,OAAO,CAAC3G,MAAM,GAAG4G,OAAO,CAAC5G,MAAM,CAAA;IACnD,IAAI6H,SAAS,GAAG,EAAE,CAAA;IAClB,IAAIC,YAAY,GAAG,EAAE,CAAA;IACrB,IAAIF,WAAW,GAAG,CAAC,EAAE;MACnB,MAAM;AAAC5I,QAAAA,aAAAA;AAAa,OAAC,GAAG9H,MAAM,CAAC2H,gBAAgB,CAAC4G,IAAI,CAAC,CAAA;AACrDqC,MAAAA,YAAY,GAAG,iBAAiB,GAAG9I,aAAa,GAAG,GAAG,CAAA;AACtD6I,MAAAA,SAAS,GAAA1F,kBAAAA,CAAAA,MAAA,CAAsB5B,SAAS,CAACqH,WAAW,EAAE5I,aAAa,CAAC,IAAIiI,YAAY,IAAI,CAAC,CAAC,EAAG,GAAA,CAAA,CAAA;AAC/F,KAAA;IACA,MAAMc,WAAW,GAAGT,YAAY,GAAGC,YAAY,IAAIC,WAAW,GAAGC,WAAW,GAA2B,mBAAA,GAAA,EAAA,CAAA;IACvG,MAAMO,SAAS,GAAI,CAACvI,IAAI,KAAK,CAAC,IAAID,GAAG,KAAK,CAAC,KAAK,CAACwH,aAAa,GAAA,uBAAA,CAAA7E,MAAA,CAA4B1C,IAAI,SAAA0C,MAAA,CAAM3C,GAAG,EAAA,MAAA,CAAA,GAAS,EAAE,CAAA;AAClH,IAAA,MAAMyI,qBAAqB,GAAG,CAACC,QAAQ,CAAA,CAAAhB,oBAAA,GAACP,OAAO,CAAC1H,WAAW,cAAAiI,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnBA,oBAAA,CAAqBtI,UAAU,CAAC,IAAI,CAAC,KAAKsJ,QAAQ,CAAAf,CAAAA,oBAAA,GAACP,OAAO,CAAC3H,WAAW,MAAA,IAAA,IAAAkI,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnBA,oBAAA,CAAqBvI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;AACjI,IAAA,MAAMuJ,wBAAwB,GAAG,CAACD,QAAQ,CAAA,CAAAd,qBAAA,GAACT,OAAO,CAAC1H,WAAW,cAAAmI,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnBA,qBAAA,CAAqBpI,aAAa,CAAC,IAAI,CAAC,KAAKkJ,QAAQ,CAAAb,CAAAA,qBAAA,GAACT,OAAO,CAAC3H,WAAW,MAAA,IAAA,IAAAoI,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnBA,qBAAA,CAAqBrI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;AAC1I,IAAA,MAAMoJ,YAAY,GAAG,CAACF,QAAQ,CAACvB,OAAO,CAACnI,SAAS,CAAC,IAAI,CAAC,IAAIyJ,qBAAqB,CAAA;AAC/E,IAAA,MAAMI,eAAe,GAAG,CAACH,QAAQ,CAACvB,OAAO,CAACjI,YAAY,CAAC,IAAI,CAAC,IAAIyJ,wBAAwB,CAAA;AAExF,IAAA,MAAMG,YAAY,GAAG7C,IAAI,CAAC5F,KAAK,CAACmI,SAAS,CAAA;IACzC,OAAO,CAACzG,qBAAe,CAAA,YAAA,CAAAY,MAAA,CACjB6F,SAAS,EAAA7F,YAAAA,CAAAA,CAAAA,MAAA,CACT0F,SAAS,EAAA1F,YAAAA,CAAAA,CAAAA,MAAA,CACT4F,WAAW,EAAA,wBAAA,CAAA,CAAA5F,MAAA,CACCiG,YAAY,EAAA,8BAAA,CAAA,CAAAjG,MAAA,CACTkG,eAAe,EAAA,sBAAA,CAAA,CAAAlG,MAAA,CACvBwE,OAAO,CAAC1G,KAAK,EAAAkC,uBAAAA,CAAAA,CAAAA,MAAA,CACZoG,IAAI,CAACjL,GAAG,CAAC,CAAC,EAACqJ,OAAO,CAAC3G,MAAM,IAAEiH,YAAY,IAAI,CAAC,CAAC,CAAC,EAAA9E,eAAAA,CAAAA,EAAAA,YAAAA,CAAAA,MAAA,CAEtD2F,YAAY,EAAA3F,YAAAA,CAAAA,CAAAA,MAAA,CACZmG,YAAY,GAAAnG,YAAAA,CAAAA,MAAA,CAAgBmG,YAAY,EAAA,GAAA,CAAA,GAAM,EAAE,EAAA,YAAA,CAAA,CAAAnG,MAAA,CAChD4F,WAAW,EAAA5F,uBAAAA,CAAAA,CAAAA,MAAA,CACA+F,QAAQ,CAACtB,OAAO,CAACpI,SAAS,CAAC,IAAI,CAAC,EAAA2D,6BAAAA,CAAAA,CAAAA,MAAA,CAC7B+F,QAAQ,CAACtB,OAAO,CAAClI,YAAY,CAAC,IAAI,CAAC,EAAAyD,sBAAAA,CAAAA,CAAAA,MAAA,CAC1CyE,OAAO,CAAC3G,KAAK,2BAAAkC,MAAA,CACZoG,IAAI,CAACjL,GAAG,CAAC,CAAC,EAACsJ,OAAO,CAAC5G,MAAM,IAAEiH,YAAY,IAAI,CAAC,CAAC,CAAC,EACvD,eAAA,CAAA,CAAC,CAAC,CAAA;AACT,GAAC,MAAM;AACL,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACF,EAAC;AAED,MAAMuB,+BAA+B,GAAG,UAAC7B,OAAO,EAAEC,OAAO,EAA4B;EAAA,IAA1B;AAACI,IAAAA,aAAAA;AAAc,GAAC,GAAA3T,SAAA,CAAA+L,MAAA,GAAA/L,CAAAA,IAAAA,SAAA,CAAAgM,CAAAA,CAAAA,KAAAA,SAAA,GAAAhM,SAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;AAC9E,EAAA,IAAIqT,oBAAoB,CAACC,OAAO,EAAEC,OAAO,CAAC,EAAE;IAAA,IAAA6B,gBAAA,EAAAC,iBAAA,CAAA;AAC1C,IAAA,MAAMjD,IAAI,GAAGmB,OAAO,CAACrI,OAAO,CAAA;IAC5B,MAAM;MAAC+B,UAAU;MAAED,SAAS;MAAEiH,YAAY;MAAEC,YAAY;MAAEC,WAAW;AAAEC,MAAAA,WAAAA;AAAW,KAAC,GAAGhC,IAAI,CAAA;AAC1F,IAAA,MAAMiC,SAAS,GAAG,CAAAe,CAAAA,gBAAA,GAAAhD,IAAI,CAAC1G,UAAU,MAAA,IAAA,IAAA0J,gBAAA,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAA,CAAiBf,SAAS,KAAI,CAAC,CAAA;AACjD,IAAA,MAAMC,UAAU,GAAG,CAAAe,CAAAA,iBAAA,GAAAjD,IAAI,CAAC1G,UAAU,MAAA,IAAA,IAAA2J,iBAAA,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAA,CAAiBf,UAAU,KAAI,CAAC,CAAA;;AAGnD;AACA,IAAA,MAAMgB,UAAU,GAAGlD,IAAI,CAAC5F,KAAK,CAAC+I,MAAM,CAAA;AACpCnD,IAAAA,IAAI,CAAC5F,KAAK,CAAC+I,MAAM,GAAG,uBAAuB,CAAA;AAC3C,IAAA,MAAMC,YAAY,GAAGpD,IAAI,CAAC8B,YAAY,CAAA;AACtC9B,IAAAA,IAAI,CAAC5F,KAAK,CAAC+I,MAAM,GAAGD,UAAU,CAAA;;AAE9B;AACA,IAAA,MAAMG,WAAW,GAAGlC,OAAO,CAAChI,UAAU,CAAA;IACtC,MAAMmK,gBAAgB,GAAGnC,OAAO,CAACoC,UAAU,CAACzJ,qBAAqB,EAAE,CAACC,GAAG,CAAA;IACvE,IAAIyJ,iBAAiB,GAAGF,gBAAgB,CAAA;AACxC,IAAA,IAAI,CAACb,QAAQ,CAACY,WAAW,CAAC,EAAE;AAC1BrD,MAAAA,IAAI,CAAC5F,KAAK,CAACjB,UAAU,GAAG,KAAK,CAAA;MAC7BqK,iBAAiB,GAAGrC,OAAO,CAACoC,UAAU,CAACzJ,qBAAqB,EAAE,CAACC,GAAG,CAAA;AAClEiG,MAAAA,IAAI,CAAC5F,KAAK,CAACjB,UAAU,GAAG,EAAE,CAAA;AAC5B,KAAA;AAEA,IAAA,MAAMsK,6BAA6B,GAAGD,iBAAiB,GAAGF,gBAAgB,CAAA;AAC1E,IAAA,MAAMI,wBAAwB,GAAG5B,YAAY,GAAGsB,YAAY,CAAA;IAE5D,MAAMpJ,IAAI,GAAGkH,OAAO,CAAClH,IAAI,GAAGa,UAAU,GAAGqH,UAAU,CAAA;IACnD,MAAMnI,GAAG,GAAGmH,OAAO,CAACnH,GAAG,GAAGa,SAAS,GAAGqH,SAAS,GAAGwB,6BAA6B,CAAA;IAG/E,MAAMtB,WAAW,GAAGjB,OAAO,CAAC3G,MAAM,GAAG4G,OAAO,CAAC5G,MAAM,CAAA;IACnD,IAAI6H,SAAS,GAAG,EAAE,CAAA;IAClB,IAAIC,YAAY,GAAG,EAAE,CAAA;IACrB,IAAIF,WAAW,GAAG,CAAC,EAAE;MACnB,MAAM;AAAC5I,QAAAA,aAAAA;AAAa,OAAC,GAAG9H,MAAM,CAAC2H,gBAAgB,CAAC4G,IAAI,CAAC,CAAA;AACrDqC,MAAAA,YAAY,GAAG,iBAAiB,GAAG9I,aAAa,GAAG,GAAG,CAAA;MACtD6I,SAAS,GAAA,kBAAA,CAAA1F,MAAA,CAAsB5B,SAAS,CAACqH,WAAW,EAAE5I,aAAa,CAAC,EAAG,GAAA,CAAA,CAAA;AACzE,KAAA;IACA,MAAM+I,WAAW,GAAGT,YAAY,GAAGC,YAAY,IAAIC,WAAW,GAAGC,WAAW,GAA2B,mBAAA,GAAA,EAAA,CAAA;IACvG,MAAMO,SAAS,GAAI,CAACvI,IAAI,KAAK,CAAC,IAAID,GAAG,KAAK,CAAC,KAAK,CAACwH,aAAa,GAAA,uBAAA,CAAA7E,MAAA,CAA4B1C,IAAI,SAAA0C,MAAA,CAAM3C,GAAG,EAAA,MAAA,CAAA,GAAS,EAAE,CAAA;AAGlH,IAAA,MAAM8I,YAAY,GAAG7C,IAAI,CAAC5F,KAAK,CAACmI,SAAS,CAAA;AACzC,IAAA,OAAO,CAACzG,qBAAe,CAAAY,YAAAA,CAAAA,MAAA,CACjB6F,SAAS,EAAA7F,YAAAA,CAAAA,CAAAA,MAAA,CACT0F,SAAS,EAAA1F,YAAAA,CAAAA,CAAAA,MAAA,CACT4F,WAAW,EAAA5F,mBAAAA,CAAAA,CAAAA,MAAA,CACJwE,OAAO,CAAC1G,KAAK,EAAAkC,uBAAAA,CAAAA,CAAAA,MAAA,CACZwE,OAAO,CAAC3G,MAAM,EAAAmC,eAAAA,CAAAA,EAAAA,YAAAA,CAAAA,MAAA,CAEtB2F,YAAY,EAAA3F,YAAAA,CAAAA,CAAAA,MAAA,CACZmG,YAAY,GAAAnG,YAAAA,CAAAA,MAAA,CAAgBmG,YAAY,EAAM,GAAA,CAAA,GAAA,EAAE,EAAAnG,YAAAA,CAAAA,CAAAA,MAAA,CAChD4F,WAAW,EAAA5F,mBAAAA,CAAAA,CAAAA,MAAA,CACJyE,OAAO,CAAC3G,KAAK,EAAAkC,uBAAAA,CAAAA,CAAAA,MAAA,CACXyE,OAAO,CAAC5G,MAAM,GAAGmJ,wBAAwB,EACnD,eAAA,CAAA,CAAC,CAAC,CAAA;AACT,GAAC,MAAM;AACL,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACF,CAAC,CAAA;AAED,MAAMC,cAAc,GAAGA,CAACzC,OAAO,EAAEC,OAAO,EAAAtQ,KAAA,KAAmF;EAAA,IAAjF;IAAC+S,QAAQ;IAAEC,SAAS;IAAEC,eAAe;IAAEC,MAAM;AAAEC,IAAAA,eAAe,GAAAC,6BAAAA;AAAa,GAAC,GAAApT,KAAA,CAAA;AACpH,EAAA,MAAMqT,WAAW,GAAG/C,OAAO,CAACrI,OAAO,CAAA;EACnC,MAAMyG,WAAW,GAAG,EAAE,CAAClC,KAAK,CAACC,IAAI,CAAC4G,WAAW,CAACvV,QAAQ,CAAC,CAAA;AACvD;EACA,IAAIuV,WAAW,CAACC,UAAU,EAAE;IAC1BD,WAAW,CAACE,YAAY,CAAClD,OAAO,CAACqC,UAAU,EAAEW,WAAW,CAACC,UAAU,CAAC,CAAA;IACpED,WAAW,CAACE,YAAY,CAACjD,OAAO,CAACoC,UAAU,EAAEW,WAAW,CAACC,UAAU,CAAC,CAAA;AACtE,GAAC,MAAM;AACLD,IAAAA,WAAW,CAACzG,MAAM,CAACyD,OAAO,CAACqC,UAAU,CAAC,CAAA;AACtCW,IAAAA,WAAW,CAACzG,MAAM,CAAC0D,OAAO,CAACoC,UAAU,CAAC,CAAA;AACxC,GAAA;EAEArC,OAAO,CAACqC,UAAU,CAAC3M,SAAS,GAAGsK,OAAO,CAACqC,UAAU,CAAC3M,SAAS,GAAG,cAAc,CAAA;EAC5EuK,OAAO,CAACoC,UAAU,CAAC3M,SAAS,GAAGuK,OAAO,CAACoC,UAAU,CAAC3M,SAAS,GAAG,cAAc,CAAA;AAC5E;AACA;AACA,EAAA,MAAMyN,eAAe,GAAGH,WAAW,CAACpK,qBAAqB,EAAE,CAAA;AAC3D,EAAA,MAAMwK,WAAW,GAAGxI,qBAAe,wCAAAY,MAAA,CAExBwE,OAAO,CAAC1G,KAAK,uBAAAkC,MAAA,CACZwE,OAAO,CAAC3G,MAAM,uDAAAmC,MAAA,CAGfyE,OAAO,CAACoC,UAAU,CAACnJ,KAAK,CAACI,KAAK,EAAAkC,iBAAAA,CAAAA,CAAAA,MAAA,CAC7BzL,oBAAc,CAAC+S,eAAe,EAAC7C,OAAO,CAACoC,UAAU,CAACnJ,KAAK,CAACG,MAAM,EAAC8J,eAAe,CAAC,YACxF,CAAC,CAAA;AAEJ9I,EAAAA,QAAQ,CAACgE,WAAW,EAAE7D,CAAC,IAAI;IACzB,IAAIA,CAAC,CAAC8D,OAAO,IAAI,CAAC9D,CAAC,CAAC8D,OAAO,CAAC+E,MAAM,EAAE;AAClC;AACA;AACA;AACA,MAAA,IAAI7I,CAAC,CAACtB,KAAK,CAACuF,OAAO,IAAIjE,CAAC,CAACtB,KAAK,CAACuF,OAAO,KAAK,GAAG,EAAE;QAC9CjE,CAAC,CAAC8D,OAAO,CAACE,WAAW,GAAGhE,CAAC,CAACtB,KAAK,CAACuF,OAAO,CAAA;AACzC,OAAA;AACAjE,MAAAA,CAAC,CAACtB,KAAK,CAACuF,OAAO,GAAG,GAAG,CAAA;AACvB,KAAA;AACF,GAAC,CAAC,CAAA;AACFpE,EAAAA,QAAQ,CAAC,EAAE,CAAC8B,KAAK,CAACC,IAAI,CAAC4D,OAAO,CAACqC,UAAU,CAAC5U,QAAQ,CAAC,EAAE+M,CAAC,IAAI;IACxD,IAAIA,CAAC,CAAC8D,OAAO,IAAI9D,CAAC,CAAC8D,OAAO,CAAC+E,MAAM,EAAE;AACjC7I,MAAAA,CAAC,CAACtB,KAAK,CAACuF,OAAO,GAAG,GAAG,CAAA;AACvB,KAAA;AACF,GAAC,CAAC,CAAA;EAEF,MAAM6E,SAAS,GAAItD,OAAO,CAAC1G,KAAK,GAAG2G,OAAO,CAAC3G,KAAK,IAAI0G,OAAO,CAAC3G,MAAM,GAAG4G,OAAO,CAAC5G,MAAM,GAAI,CAAC+J,WAAW,CAAC,GAAG,CAACA,WAAW,CAAC,CAAA;EACpH,MAAMG,SAAS,GAAIvD,OAAO,CAAC1G,KAAK,GAAG2G,OAAO,CAAC3G,KAAK,IAAI0G,OAAO,CAAC3G,MAAM,GAAG4G,OAAO,CAAC5G,MAAM,GAAI,CAAC+J,WAAW,CAAC,GAAG,CAACA,WAAW,CAAC,CAAA;AAEpH,EAAA,OAAO,MAAM;AACXvE,IAAAA,KAAK,CAACmB,OAAO,CAACqC,UAAU,EACtBpH,eAAe,CAAC,EAAE,CAACO,MAAM,CAACmH,SAAS,IAAIC,eAAe,EAAEU,SAAS,CAAC,EAAET,MAAM,CAAC,EAC3E,MAAM7C,OAAO,CAACqC,UAAU,CAACrE,MAAM,EACjC,CAAC,CAAA;AACDiC,IAAAA,OAAO,CAACoC,UAAU,CAACnJ,KAAK,CAACuF,OAAO,GAAG,GAAG,CAAA;IACtCxB,uBAAuB,CAACY,GAAG,CAACmF,WAAW,EAAE9F,qBAAqB,CAAC8F,WAAW,CAAC,CAAC,CAAA;AAE5EnE,IAAAA,KAAK,CAACoB,OAAO,CAACoC,UAAU,EACtBpH,eAAe,CAAC,CAACA,eAAe,CAC9ByH,QAAQ,IAAIE,eAAe,EAC3BC,MAAM,EACN,CAACH,QACH,CAAC,CAAC,CAAClH,MAAM,CAAC+H,SAAS,CAAC,EAAEV,MAAM,CAAC,EAC7B5E,eAAe,CAACgC,OAAO,CAACoC,UAAU,EAAEW,WAAW,CACjD,CAAC,CAAA;GACF,CAAA;AACH,CAAC,CAAA;AAGD,MAAMrF,SAAS,GAAGA,CAAC6F,EAAE,EAAE5F,SAAS,KAAK;AACnC,EAAA,MAAM6F,QAAQ,GAAIzG,SAAS,CAACc,GAAG,CAAC0F,EAAE,CAAC,GAAGrE,IAAI,CAACC,GAAG,EAAE,GAAI,IAAI,CAAA;AACxD,EAAA,OAAOxB,SAAS,CAACnC,KAAK,CAAC,GAAG,CAAC,CAACxB,GAAG,CAACkG,CAAC,IAAIsD,QAAQ,CAAC,CAAC5H,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1D,CAAC,CAAA;AAED,MAAM6H,UAAU,SAASnX,yBAAK,CAACC,SAAS,CAAC;EAEvCmX,uBAAuBA,CAACC,QAAQ,EAAE;IAChC,IAAIA,QAAQ,CAACC,EAAE,KAAK,IAAI,CAAC/W,KAAK,CAAC+W,EAAE,EAAE;AACjCC,MAAAA,OAAO,CAACC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;KAC1B,MAAM,IAAIH,QAAQ,CAACI,MAAM,KAAK,IAAI,CAAClX,KAAK,CAACkX,MAAM,EAAE;AAChDF,MAAAA,OAAO,CAACC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;AAC/B,KAAA;AACA,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEAxW,EAAAA,MAAMA,GAAG;AACP,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACF,CAAA;AAEa0W,MAAAA,OAAO,GAAGnT,KAAA,IAAkB;EAAA,IAAjB;IAAC+S,EAAE;AAAEG,IAAAA,MAAAA;AAAM,GAAC,GAAAlT,KAAA,CAAA;AAClCoT,EAAAA,kBAAa,cAAC3X,yBAAA,CAAA0B,aAAA,CAACyV,UAAU,EAAA;AAACG,IAAAA,EAAE,EAAEA,EAAG;AAACG,IAAAA,MAAM,EAAEA,MAAO;IAACjF,QAAQ,EAAE+E,OAAO,CAACC,GAAAA;AAAI,GAAC,CAAC,CAAC,CAAA;AAC7E,EAAC;AAED,MAAMI,iBAAiB,GAAIvG,SAAS,IAAKA,SAAS,CAACnC,KAAK,CAAC,GAAG,CAAC,CAACxB,GAAG,CAACkG,CAAC,IAAIA,CAAC,CAAC1Q,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAA;AAExF2U,MAAAA,WAAW,GAAGA,MAAM;EAE/B,IAAIC,cAAc,GAAG,IAAI,CAAA;EACzB,IAAIC,YAAY,GAAG,KAAK,CAAA;EACxB,MAAMC,YAAY,GAAGA,MAAM;AACzBF,IAAAA,cAAc,GAAG,IAAI,CAAA;AACrBC,IAAAA,YAAY,GAAG,KAAK,CAAA;GACrB,CAAA;EACD,MAAM,CAACE,gBAAgB,EAAEC,qBAAqB,CAAC,GAAGC,0BAAqB,CAACC,qBAAe,CAAC,CAAA;EACxF,MAAM,CAACC,gBAAgB,EAAEC,qBAAqB,CAAC,GAAGH,0BAAqB,CAACC,qBAAe,CAAC,CAAA;EACxF,MAAM,CAACG,gBAAgB,EAAEC,qBAAqB,EAAEC,OAAO,CAAC,GAAGN,0BAAqB,CAACC,qBAAe,CAAC,CAAA;AAGjG,EAAA,MAAMM,iBAAiB,GAAG,UAAC7Q,GAAG,EAAsG;AAAA,IAAA,IAApG8Q,OAAO,GAAAxY,SAAA,CAAA+L,MAAA,GAAA,CAAA,IAAA/L,SAAA,CAAA,CAAA,CAAA,KAAAgM,SAAA,GAAAhM,SAAA,CAAA,CAAA,CAAA,GAAGiO,qBAAqB,CAAA;IAAA,IAAE;MAACwK,UAAU;AAAEtC,MAAAA,MAAM,GAAGpI,qBAAqB;AAAE2K,MAAAA,WAAAA;AAAW,KAAC,GAAA1Y,SAAA,CAAA+L,MAAA,GAAA/L,CAAAA,IAAAA,SAAA,CAAAgM,CAAAA,CAAAA,KAAAA,SAAA,GAAAhM,SAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;AAC7HiY,IAAAA,qBAAe,CAAC,MAAM;MACpB,IAAI,CAACL,YAAY,IAAIY,OAAO,IAAI9Q,GAAG,CAACiR,OAAO,EAAE;AAC3C,QAAA,MAAM7B,EAAE,GAAGpP,GAAG,CAACiR,OAAO,CAAA;AACtB,QAAA,MAAMzH,SAAS,GAAG3C,eAAe,CAACiK,OAAO,EAAErC,MAAM,CAAC,CAAA;AAClD,QAAA,MAAMyC,SAAS,GAAGvV,oBAAc,CAACqV,WAAW,EAAC5B,EAAE,CAAC,CAAA;AAChD3E,QAAAA,KAAK,CACH2E,EAAE,EACF5F,SAAS,EACT,MAAM;UACJ7N,oBAAc,CAACoV,UAAU,CAAC,CAAA;AAC1BpV,UAAAA,oBAAc,CAACuV,SAAS,EAAC9B,EAAE,CAAC,CAAA;AAC9B,SACF,CAAC,CAAA;QACDiB,qBAAqB,CAAC5B,MAAM,CAAC,CAAA;AAC/B,OAAA;AACF,KAAC,EAAE,CAACqC,OAAO,CAAC,CAAC,CAAA;GACd,CAAA;AAED,EAAA,MAAMK,iBAAiB,GAAG,UAACnR,GAAG,EAA2J;AAAA,IAAA,IAAzJoR,OAAO,GAAA9Y,SAAA,CAAA+L,MAAA,GAAA,CAAA,IAAA/L,SAAA,CAAA,CAAA,CAAA,KAAAgM,SAAA,GAAAhM,SAAA,CAAA,CAAA,CAAA,GAAGiO,qBAAqB,CAAA;IAAA,IAAE;AAACvG,MAAAA,GAAG,EAAEqR,SAAS;MAAEC,WAAW;AAAE7C,MAAAA,MAAM,GAAGpI,qBAAqB;AAAEkL,MAAAA,UAAU,GAAG,KAAK;MAAEC,MAAM,GAAG,EAAE;AAAExK,MAAAA,OAAO,GAAG,IAAA;AAAI,KAAC,GAAA1O,SAAA,CAAA+L,MAAA,GAAA/L,CAAAA,IAAAA,SAAA,CAAAgM,CAAAA,CAAAA,KAAAA,SAAA,GAAAhM,SAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;IAClLiY,qBAAe,CAAC,MAAM,MAAM;AAC1B,MAAA,IAAIa,OAAO,IAAIpR,GAAG,CAACiR,OAAO,EAAE;AAC1B,QAAA,MAAM7B,EAAE,GAAGpP,GAAG,CAACiR,OAAO,CAAA;QACtB,MAAMzH,SAAS,GAAG3C,eAAe,CAACuK,OAAO,EAAE3C,MAAM,EAAEzH,OAAO,CAAC,CAAA;AAC3D;QACAyJ,qBAAqB,CAAChC,MAAM,CAAC,CAAA;AAC7B,QAAA,MAAMgD,QAAQ,GAAG9V,oBAAc,CAAC4V,UAAU,CAAC,CAAA;QAC3C,MAAMxH,KAAK,GAAG0H,QAAQ,GAAGrC,EAAE,GAAGA,EAAE,CAACxH,SAAS,CAAC,IAAI,CAAC,CAAA;AAChD8J,QAAAA,QAAE,CAACC,IAAI,CAAC,CAAChH,QAAQ,EAAE1K,IAAI,KAAK8J,KAAK,CAACJ,gBAAgB,CAAC1J,IAAI,EAAE0K,QAAQ,CAAC,EAAE6G,MAAM,CAAC,CAAA;QAE3E,MAAMN,SAAS,GAAGvV,oBAAc,CAAC2V,WAAW,EAACvH,KAAK,EAACqF,EAAE,CAAC,CAAA;AAEtD,QAAA,IAAIiC,SAAS,EAAE;UAAEA,SAAS,CAACJ,OAAO,GAAGlH,KAAK,CAAA;AAAC,SAAA;QAC3C,IAAI,CAAC0H,QAAQ,EAAE;UACbrC,EAAE,CAACpL,UAAU,CAAC8K,YAAY,CAAC/E,KAAK,EAAEqF,EAAE,CAAC,CAAA;AACvC,SAAA;AACA;;AAEA;AACAa,QAAAA,cAAc,GAAGlG,KAAK,CAAA;AACtB;QACA,MAAM6H,OAAO,GAAGA,MAAM;AACpBnH,UAAAA,KAAK,CACHV,KAAK,EACLP,SAAS,EACT,MAAM;YACJO,KAAK,CAACH,MAAM,EAAE,CAAA;AACduG,YAAAA,YAAY,EAAE,CAAA;AACdxU,YAAAA,oBAAc,CAACuV,SAAS,EAACnH,KAAK,EAACqF,EAAE,CAAC,CAAA;AACpC,WACF,CAAC,CAAA;SACF,CAAA;;AAED;AACA,QAAA,IAAIrF,KAAK,CAACjF,KAAK,CAAC0E,SAAS,EAAE;UACzB,MAAMqI,gBAAgB,GAAGC,wBAAA,CAAM,CAAC/H,KAAK,CAACjF,KAAK,CAACiN,iBAAiB,CAAC1K,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAExB,GAAG,CAACmM,CAAC,IAAIlM,UAAU,CAACkM,CAAC,CAACzK,IAAI,EAAE,IAAI,MAAM,CAAC,IAAIyK,CAAC,CAACxK,OAAO,CAAC,GAAG,CAAC,GAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;UAChK,MAAMyK,UAAU,GAAG,EAAE,CAAA;UACrB,MAAMC,YAAY,GAAIxW,CAAC,IAAK;AAC1ByW,YAAAA,YAAY,CAACF,UAAU,CAAChB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;AACtClH,YAAAA,KAAK,CAAC0B,mBAAmB,CAAC,cAAc,EAAEyG,YAAY,CAAC,CAAA;AACvDnI,YAAAA,KAAK,CAACjF,KAAK,CAACwE,cAAc,GAAG,EAAE,CAAA;AAC/B5N,YAAAA,CAAC,aAADA,CAAC,KAAA,KAAA,CAAA,IAADA,CAAC,CAAE0W,wBAAwB,EAAE,CAAA;AAC7B9G,YAAAA,UAAU,CAACsG,OAAO,EAAE,CAAC,CAAC,CAAA;WACvB,CAAA;UACDK,UAAU,CAAChB,OAAO,GAAG3F,UAAU,CAAC4G,YAAY,EAACL,gBAAgB,CAAC,CAAA;AAC9D9H,UAAAA,KAAK,CAACJ,gBAAgB,CAAC,cAAc,EAAEuI,YAAY,CAAC,CAAA;AAEpDnI,UAAAA,KAAK,CAACjF,KAAK,CAACwE,cAAc,GAAGC,SAAS,CAAC6F,EAAE,EAAErF,KAAK,CAACjF,KAAK,CAAC0E,SAAS,CAAC,CAAA;AACnE,SAAC,MAAM;AACLoI,UAAAA,OAAO,EAAE,CAAA;AACX,SAAA;AACF,OAAA;AACF,KAAC,EAAE,CAACR,OAAO,CAAC,CAAC,CAAA;GACd,CAAA;AAED,EAAA,MAAMiB,iBAAiB,GAAG,UAACrS,GAAG,EAA0D;AAAA,IAAA,IAAxDsS,KAAK,GAAAha,SAAA,CAAA+L,MAAA,GAAA,CAAA,IAAA/L,SAAA,CAAA,CAAA,CAAA,KAAAgM,SAAA,GAAAhM,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;IAAA,IAAE;AAACmW,MAAAA,MAAM,GAAGpI,qBAAAA;AAAqB,KAAC,GAAA/N,SAAA,CAAA+L,MAAA,GAAA/L,CAAAA,IAAAA,SAAA,CAAAgM,CAAAA,CAAAA,KAAAA,SAAA,GAAAhM,SAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;AACjFiY,IAAAA,qBAAe,CAAC,MAAM;AACpB,MAAA,IAAI+B,KAAK,IAAIrC,cAAc,IAAIjQ,GAAG,CAACiR,OAAO,EAAE;AAC1C;AACA,QAAA,MAAM7B,EAAE,GAAGpP,GAAG,CAACiR,OAAO,CAAA;AACtB,QAAA,MAAMzH,SAAS,GAAGhD,qBAAe,CAAA,UAAA,CAAAY,MAAA,CAAYjL,MAAM,CAAC2H,gBAAgB,CAACmM,cAAc,CAAC,CAAC5F,OAAO,oBAAiB,CAAC,CAAA;QAC9G,MAAMuB,OAAO,GAAAxG,eAAA,CAAAA,eAAA,CACRjB,EAAAA,EAAAA,UAAU,CAAC8L,cAAc,EAAE3L,SAAS,EAAE;AAACK,UAAAA,UAAU,EAAE,IAAA;AAAI,SAAC,CAAC,CAAA,EAAA,EAAA,EAAA;UAC5DsJ,UAAU,EAAEvG,YAAY,CAACuI,cAAc,CAAA;SACxC,CAAA,CAAA;QACD,MAAMpE,OAAO,GAAAzG,eAAA,CAAAA,eAAA,CAAOjB,EAAAA,EAAAA,UAAU,CAACiL,EAAE,EAAE9K,SAAS,EAAE;AAACK,UAAAA,UAAU,EAAE,IAAA;AAAI,SAAC,CAAC,CAAA,EAAA,EAAA,EAAA;UAAEsJ,UAAU,EAAEvG,YAAY,CAAC0H,EAAE,CAAA;SAAE,CAAA,CAAA;AAChG,QAAA,MAAMmD,aAAa,GAAGvG,sBAAsB,CAACJ,OAAO,EAAEC,OAAO,CAAC,CAAA;AAC9DpB,QAAAA,KAAK,CAACoB,OAAO,CAACrI,OAAO,EAAEqD,eAAe,CAAC0L,aAAa,CAACnL,MAAM,CAACoC,SAAS,CAAC,EAAEiF,MAAM,CAAC,EAAE0B,YAAY,CAAC,CAAA;AAC9FQ,QAAAA,qBAAqB,CAAE6B,gBAAgB,IAAKA,gBAAgB,CAAC/D,MAAM,CAAC,CAAC,CAAA;QACrE,IAAI8D,aAAa,CAAClO,MAAM,EAAE;AACxBgK,UAAAA,cAAc,CAACzC,OAAO,EAAEC,OAAO,EAAE;AAAC2C,YAAAA,eAAe,EAAE/H,sBAAsB;AAAEgI,YAAAA,MAAAA;WAAO,CAAC,EAAE,CAAA;AACvF,SAAA;QACAwB,cAAc,CAACrG,MAAM,EAAE,CAAA;AACvBuG,QAAAA,YAAY,EAAE,CAAA;AAChB,OAAA;AACA,MAAA,OAAO,MAAM;AACXD,QAAAA,YAAY,GAAG,IAAI,CAAA;AACnB;QACA,IAAIrH,uBAAuB,CAAC4J,GAAG,CAACzS,GAAG,CAACiR,OAAO,CAAC,EAAE;UAC5CpI,uBAAuB,CAACa,GAAG,CAAC1J,GAAG,CAACiR,OAAO,CAAC,CAAChB,cAAc,CAAC,CAAA;AAC1D,SAAA;OACD,CAAA;AACH,KAAC,EAAE,CAACqC,KAAK,CAAC,CAAC,CAAA;GACZ,CAAA;AAED,EAAA,MAAMI,uBAAuB,GAAG,UAAC1S,GAAG,EAAE8Q,OAAO,EAAoB;IAAA,IAAlB;AAACrC,MAAAA,MAAAA;AAAM,KAAC,GAAAnW,SAAA,CAAA+L,MAAA,GAAA/L,CAAAA,IAAAA,SAAA,CAAAgM,CAAAA,CAAAA,KAAAA,SAAA,GAAAhM,SAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;IAC1D8X,gBAAgB,CAAEuC,YAAY,IAAK;AACjC,MAAA,MAAMvD,EAAE,GAAGpP,GAAG,CAACiR,OAAO,CAAA;MACtB,MAAMzH,SAAS,GAAG3C,eAAe,CAACiK,OAAO,EAAErC,MAAM,IAAIkE,YAAY,CAAC,CAAA;AAClElI,MAAAA,KAAK,CAAC2E,EAAE,EAAE5F,SAAS,CAAC,CAAA;MACpB,OAAOuG,iBAAiB,CAACvG,SAAS,CAAC,CAAA;AACrC,KAAC,CAAC,CAAA;GACH,CAAA;AACD,EAAA,MAAMoJ,qBAAqB,GAAG,UAAC5S,GAAG,EAAEoR,OAAO,EAA4B;IAAA,IAA1B;MAAC3C,MAAM;AAAE+C,MAAAA,MAAAA;AAAM,KAAC,GAAAlZ,SAAA,CAAA+L,MAAA,GAAA/L,CAAAA,IAAAA,SAAA,CAAAgM,CAAAA,CAAAA,KAAAA,SAAA,GAAAhM,SAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;IAChEkY,gBAAgB,CAAEmC,YAAY,IAAK;AACjC,MAAA,MAAMvD,EAAE,GAAGpP,GAAG,CAACiR,OAAO,CAAA;MACtB,MAAMzH,SAAS,GAAG3C,eAAe,CAACuK,OAAO,EAAE3C,MAAM,IAAIkE,YAAY,CAAC,CAAA;AAClElI,MAAAA,KAAK,CAAC2E,EAAE,EAAE5F,SAAS,CAAC,CAAA;MACpB,OAAOuG,iBAAiB,CAACvG,SAAS,CAAC,CAAA;AACrC,KAAC,CAAC,CAAA;GACH,CAAA;EAED,MAAMqJ,2BAA2B,GAAGA,MAAM;AACxC,IAAA,MAAMC,OAAO,GAAGC,6BAAA,CAAW,KAAK,CAAC,CAAA;AACjC,IAAA,OAAQ/S,GAAG,IAAK;AACduQ,MAAAA,qBAAe,CAAC,MAAM;AAAA,QAAA,IAAAyC,YAAA,CAAA;QACpB,IAAAA,CAAAA,YAAA,GAAIhT,GAAG,CAACiR,OAAO,MAAA+B,IAAAA,IAAAA,YAAA,KAAXA,KAAAA,CAAAA,IAAAA,YAAA,CAAa9I,OAAO,EAAE;AACxBlK,UAAAA,GAAG,CAACiR,OAAO,CAAC/G,OAAO,CAAC4I,OAAO,GAAGA,OAAO,CAAA;AACvC,SAAA;AACF,OAAC,CAAC,CAAA;AACF,MAAA,MAAMN,gBAAgB,GAAGS,gBAAW,CAAExE,MAAM,IAAK;QAC/C,MAAMtE,IAAI,GAAG8F,cAAc,CAAC/G,aAAa,oBAAA9B,MAAA,CAAoB0L,OAAO,EAAA,IAAA,CAAI,CAAC,CAAA;AACzE,QAAA,MAAMI,IAAI,GAAGlT,GAAG,CAACiR,OAAO,CAAA;QACxB,IAAIiC,IAAI,CAAChJ,OAAO,EAAE;AAChBgJ,UAAAA,IAAI,CAAChJ,OAAO,CAAC+E,MAAM,GAAG,IAAI,CAAA;AAC5B,SAAA;AACAiE,QAAAA,IAAI,CAACpO,KAAK,CAACuF,OAAO,GAAG,GAAG,CAAA;AACxB,QAAA,MAAM8I,OAAO,GAAGhJ,IAAI,CAAC3F,qBAAqB,EAAE,CAAA;AAC5C,QAAA,MAAM4O,OAAO,GAAGF,IAAI,CAAC1O,qBAAqB,EAAE,CAAA;QAC5C,MAAM6O,iBAAiB,GAAGH,IAAI,CAACpO,KAAK,CAACmI,SAAS,IAAI,EAAE,CAAA;AACpD,QAAA,MAAMqG,MAAM,GAAG9F,IAAI,CAAC+F,KAAK,CAACH,OAAO,CAAC1O,IAAI,GAAGyO,OAAO,CAACzO,IAAI,CAAC,CAAA;AACtD,QAAA,MAAM8O,MAAM,GAAGhG,IAAI,CAAC+F,KAAK,CAACH,OAAO,CAAC3O,GAAG,GAAG0O,OAAO,CAAC1O,GAAG,CAAC,CAAA;QACpD,MAAMgP,OAAO,GAAGH,MAAM,GAAG,CAAC,GAAG,CAACA,MAAM,GAAG,CAACA,MAAM,CAAA;QAC9C,MAAM9J,SAAS,GAAGhD,qBAAe,CAAA,mCAAA,CAAAY,MAAA,CACRqM,OAAO,SAAArM,MAAA,CAAMoM,MAAM,EAAApM,MAAAA,CAAAA,CAAAA,MAAA,CAAOiM,iBAAiB,EAAA,aAAA,CAAA,EAAA,wCAAA,CAAAjM,MAAA,CAEtCiM,iBAAiB,gBAC9C,CAAC,CAAA;QACF5I,KAAK,CAACyI,IAAI,EAAErM,eAAe,CAAC2C,SAAS,EAAEiF,MAAM,CAAC,CAAC,CAAA;AACjD,OAAC,CAAC,CAAA;MACFiC,gBAAgB,CAAC8B,gBAAgB,CAAC,CAAA;KACnC,CAAA;GACF,CAAA;AAED,EAAA,OAAO,CAAC,CAAC3B,iBAAiB,EAAEM,iBAAiB,EAAEkB,iBAAiB,CAAC,EAAE,CAACK,uBAAuB,EAAEE,qBAAqB,CAAC,EAAEC,2BAA2B,CAAC,CAAA;AACnJ,EAAC;AAEYa,MAAAA,iBAAiB,GAAGA,MAAM;EACrC,IAAI9H,OAAO,GAAG,IAAI,CAAA;AAClB,EAAA,MAAM+H,cAAc,GAAG,UAACC,MAAM,EAAyB;AAAA,IAAA,IAAxBC,cAAc,GAAAvb,SAAA,CAAA+L,MAAA,GAAA,CAAA,IAAA/L,SAAA,CAAA,CAAA,CAAA,KAAAgM,SAAA,GAAAhM,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAChD,IAAA,MAAMuP,WAAW,GAAGH,YAAY,CAACkM,MAAM,CAAC,CAAA;IACxC,OAAAxO,eAAA,CAAAA,eAAA,CAAWjB,EAAAA,EAAAA,UAAU,CAACyP,MAAM,EAACtP,SAAS,EAACuP,cAAc,CAAC,CAAA,EAAA,EAAA,EAAA;AAAE5F,MAAAA,UAAU,EAAEpG,WAAAA;AAAW,KAAA,CAAA,CAAA;GAChF,CAAA;AAED,EAAA,OAAO,UAAC7H,GAAG,EAAE8Q,OAAO,EAAEM,OAAO,EAA8F;IAAA,IAA5F;AAAC3C,MAAAA,MAAM,GAAGpI,qBAAqB;AAAEmI,MAAAA,eAAe,GAAG/H,sBAAsB;AAAEqN,MAAAA,MAAAA;AAAM,KAAC,GAAAxb,SAAA,CAAA+L,MAAA,GAAA/L,CAAAA,IAAAA,SAAA,CAAAgM,CAAAA,CAAAA,KAAAA,SAAA,GAAAhM,SAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;AACpHiY,IAAAA,qBAAe,CAAC,MAAM;AACpB,MAAA,IAAI3E,OAAO,IAAI5L,GAAG,CAACiR,OAAO,EAAE;AAC1B,QAAA,MAAMpF,OAAO,GAAG8H,cAAc,CAAC3T,GAAG,CAACiR,OAAO,EAAC;AAACpM,UAAAA,WAAW,EAAC,IAAA;AAAI,SAAC,CAAC,CAAA;QAC9D,IAAIkP,YAAY,GAAApF,6BAAa,CAAA;QAC7B,IAAI/C,OAAO,CAACqC,UAAU,EAAE;AACtB8F,UAAAA,YAAY,GAAG1F,cAAc,CAACzC,OAAO,EAAEC,OAAO,EAAE;AAC9CyC,YAAAA,QAAQ,EAAE3S,oBAAc,CAACmV,OAAO,CAAC;AACjCvC,YAAAA,SAAS,EAAE5S,oBAAc,CAACyV,OAAO,CAAC;AAClC5C,YAAAA,eAAe,EAAE7S,oBAAc,CAAC6S,eAAe,CAAC;AAChDC,YAAAA,MAAAA;AACF,WAAC,CAAC,CAAA;AACJ,SAAA;AACA,QAAA,MAAMjF,SAAS,GAAGiE,+BAA+B,CAAC7B,OAAO,EAAEC,OAAO,CAAC,CAAA;AACnE,QAAA,MAAMqF,SAAS,GAAGvV,oBAAc,CAACmY,MAAM,EAAClI,OAAO,CAACqC,UAAU,EAACpC,OAAO,CAACoC,UAAU,EAACjO,GAAG,CAACiR,OAAO,CAAC,CAAA;AAC1F8C,QAAAA,YAAY,EAAE,CAAA;QACdtJ,KAAK,CAACoB,OAAO,CAACrI,OAAO,EAAEqD,eAAe,CAAC2C,SAAS,EAAEiF,MAAM,CAAC,EAAE,MAAM9S,oBAAc,CAACuV,SAAS,EAACtF,OAAO,CAACqC,UAAU,EAACpC,OAAO,CAACoC,UAAU,CAAC,CAAC,CAAA;AACnI,OAAA;AACA,MAAA,OAAO,MAAM;AACXrC,QAAAA,OAAO,GAAG+H,cAAc,CAAC3T,GAAG,CAACiR,OAAO,EAAC;AAACpM,UAAAA,WAAW,EAAC,IAAA;AAAI,SAAC,CAAC,CAAA;OACzD,CAAA;KACF,EAAE,EAAE,CAAC,CAAA;GACP,CAAA;AACH,EAAC;AAED,MAAMmP,SAAS,GAAGhE,WAAW,EAAE,CAAA;AACzBiE,MAAAA,YAAY,GAAGD,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;AAC9BE,MAAAA,YAAY,GAAGF,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;AAG7B,MAAMG,gBAAgB,GAAG,UAACnU,GAAG,EAAEoU,aAAa,EAA0C;AAAA,EAAA,IAAxCC,eAAe,GAAA/b,SAAA,CAAA+L,MAAA,GAAA,CAAA,IAAA/L,SAAA,CAAA,CAAA,CAAA,KAAAgM,SAAA,GAAAhM,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AAAA,EAAA,IAAEgc,MAAM,GAAAhc,SAAA,CAAA+L,MAAA,GAAA,CAAA,IAAA/L,SAAA,CAAA,CAAA,CAAA,KAAAgM,SAAA,GAAAhM,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EACtF,MAAMwY,OAAO,GAAGyD,iBAAW,CAACH,aAAa,IAAIA,aAAa,CAACtD,OAAO,EAACsD,aAAa,CAAC,CAAA;EACjF,MAAMhD,OAAO,GAAGmD,iBAAW,CAACH,aAAa,IAAIA,aAAa,CAAChD,OAAO,EAACiD,eAAe,CAAC,CAAA;AACnFJ,EAAAA,YAAY,CAACjU,GAAG,EAAE8Q,OAAO,EAAEwD,MAAM,CAAC,CAAA;AAClCJ,EAAAA,YAAY,CAAClU,GAAG,EAAEoR,OAAO,KAAK,IAAI,GAAGN,OAAO,GAAGM,OAAO,EAAAhM,eAAA,CAAAA,eAAA,KAAMkP,MAAM,CAAA,EAAA,EAAA,EAAA;IAAEtN,OAAO,EAAEoK,OAAO,KAAK,IAAA;AAAI,GAAA,CAAC,CAAC,CAAA;AACjG;;;ACriBA,MAAM,CAACoD,YAAY,EAAEC,YAAY,CAAC,GAAGC,qBAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;AACrDA,qBAAe,CAAC,sCAAsC,EAAE,mCAAmC,EAAC;AAEvH,MAAMC,gBAAc,gBAAG3a,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,4BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAEhC,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA;AAED,MAAMwa,OAAO,GAAG7Z,IAAA,IAA8E;EAAA,IAA7E;MAAC8Z,YAAY;MAAEC,QAAQ;AAAEhE,MAAAA,OAAO,GAAGA,OAAO;AAAEM,MAAAA,OAAO,GAAGA,OAAAA;AAAiB,KAAC,GAAArW,IAAA;AAANrC,IAAAA,KAAK,GAAAiB,4CAAA,CAAAoB,IAAA,EAAAnB,WAAA,CAAA,CAAA;AACtF,EAAA,MAAMmb,UAAU,GAAGC,iBAAY,CAACF,QAAQ,CAAC,CAAA;AACzCD,EAAAA,YAAY,CAACE,UAAU,EAAEjE,OAAO,EAAEM,OAAO,CAAC,CAAA;EAC1C,oBAAOjZ,yBAAA,CAAA0B,aAAA,CAAC8a,gBAAc,EAAAvZ,4BAAA,KAAK1C,KAAK,EAAA;AAAEsH,IAAAA,GAAG,EAAE+U,UAAAA;AAAW,GAAA,CAAC,CAAC,CAAA;AACtD,CAAC,CAAA;AAED,MAAME,UAAU,gBAAGjb,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,wBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,UAAA,EAAA,KAAA,CAAA,EAChB1B,KAAK,IAAIA,KAAK,CAACuM,MAAM,CACjC,CAAA;AAEYiQ,MAAAA,UAAU,GAAG3Z,KAAA,IAAmH;EAAA,IAAlH;AAAC4Z,IAAAA,iBAAiB,GAAG,IAAI;IAAEC,QAAQ;IAAEnU,SAAS;IAAEK,SAAS;AAAE2D,IAAAA,MAAM,GAAG,EAAE;AAAErK,IAAAA,IAAI,GAAG,EAAE;AAAED,IAAAA,WAAW,GAAG,CAAC;AAAEtB,IAAAA,QAAAA;AAAQ,GAAC,GAAAkC,KAAA,CAAA;AACtI,EAAA,MAAM8Z,aAAa,GAAGC,oBAAe,CAAC5B,iBAAiB,CAAC,CAAA;AAExD,EAAA,MAAM6B,YAAY,gBAAGpd,yBAAA,CAAA0B,aAAA,CAACob,UAAU,EAAA;IAAChQ,MAAM,EAAEhK,6BAAA,CAAWgK,MAAM,CAAC,GAAGtK,WAAW,GAAIsK,MAAM,GAAC,KAAA;AAAO,GAAA,eACzF9M,yBAAA,CAAA0B,aAAA,CAACU,OAAO,EAAA;IAACib,SAAS,EAAA,IAAA;IAAC3a,QAAQ,EAAA,IAAA;AAACD,IAAAA,IAAI,EAAEA,IAAK;AAACD,IAAAA,WAAW,EAAEA,WAAAA;AAAY,GAAC,CACxD,CAAC,CAAA;AAEb,EAAA,oBAAOxC,yBAAA,CAAA0B,aAAA,CAAC1B,yBAAK,CAACsd,QAAQ,EAAA;AACpBL,IAAAA,QAAQ,eAAEjd,yBAAA,CAAA0B,aAAA,CAAC+a,OAAO,EAAA;AAChBc,MAAAA,GAAG,EAAC,SAAS;MACbC,MAAM,EAAA,IAAA;AACN7E,MAAAA,OAAO,EAAE0D,YAAa;AACtBpD,MAAAA,OAAO,EAAEqD,YAAa;AACtBI,MAAAA,YAAY,EAAEQ,aAAc;AAC5B/T,MAAAA,SAAS,EAAEA,SAAAA;KAEV8T,EAAAA,QAAQ,EACRG,YACM,CAAA;AAAE,GAAA,EAGR,OAAOtU,SAAS,KAAK,SAAS,IAAIkU,iBAAiB,GAC/ClU,SAAS,gBACR9I,yBAAA,CAAA0B,aAAA,CAAC+a,OAAO,EAAA;AACRc,IAAAA,GAAG,EAAC,SAAS;IACbC,MAAM,EAAA,IAAA;AACN7E,IAAAA,OAAO,EAAE0D,YAAa;AACtBpD,IAAAA,OAAO,EAAEqD,YAAa;AACtBI,IAAAA,YAAY,EAAEQ,aAAc;AAC5B/T,IAAAA,SAAS,EAAEA,SAAAA;GAEV8T,EAAAA,QAAQ,EACRG,YACM,CAAC,gBACRpd,yBAAA,CAAA0B,aAAA,CAAC+a,OAAO,EAAA;AACRc,IAAAA,GAAG,EAAC,QAAQ;IACZE,MAAM,EAAA,IAAA;AACN9E,IAAAA,OAAO,EAAE0D,YAAa;AACtBpD,IAAAA,OAAO,EAAEqD,YAAa;AACtBI,IAAAA,YAAY,EAAEQ,aAAc;AAC5B/T,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAEpBjI,QACM,CAAC,GAEVA,QAEQ,CAAC,CAAA;AACnB;;;ACrEA,MAAMwc,uBAAuB,GAAInd,KAAK,IAAK;AACzC,EAAA,IAAI,CAACA,KAAK,CAACod,IAAI,EAAE,OAAO,CAAC,CAAA;AACzB,EAAA,MAAMC,MAAM,GAAG5d,yBAAK,CAAC6d,QAAQ,CAACC,OAAO,CAACvd,KAAK,CAACW,QAAQ,CAAC,CAAC6c,MAAM,CAAC9P,CAAC,IAAIA,CAAC,CAACnG,IAAI,CAAC9F,WAAW,KAAK,OAAO,IAAIiM,CAAC,CAACnG,IAAI,CAAC9F,WAAW,KAAK,eAAe,CAAC,CAAA;AAC3I,EAAA,IAAI,CAAC4b,MAAM,CAAC1R,MAAM,EAAE,OAAO,CAAC,CAAA;EAC5B,MAAM8R,SAAS,GAAGJ,MAAM,CAAChO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACrC,EAAA,OAAO,GAAG,GAAGqO,eAAS,CAAC1d,KAAK,CAACC,KAAK,CAAC0d,KAAK,CAAClR,OAAO,CAAC,CAACgR,SAAS,CAACzd,KAAK,CAAC,CAAA;AACpE,CAAC,CAAA;AAGD,MAAM4d,kBAAkB,GAAG;AAAC3V,EAAAA,KAAK,EAAC,GAAG;AAAC,EAAA,SAAS,EAAC,CAAC;AAAEwB,EAAAA,GAAG,EAAC,CAAA;AAAC,CAAC,CAAA;MAE5CoU,qBAAqB,gBAAGvc,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,uBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAE5Byb,CAAAA,CAAAA,CAAAA,gBAAAA,EAAAA,MAAAA,EAAAA,GAAAA,EAAAA,EAAAA,CAAAA,EAAAA,uBAAuB,EAEtCnd,KAAK,IAAIkH,UAAG,WACVwC,WAAK,CAACoU,GAAG,CAAC9d,KAAK,CAAC+d,gBAAgB,IAAI,CAAC,CAAC,CAAAjX,iBAAA,KAAAA,iBAAA,GAAAC,0CAAA,CAAA,CAAA,wEAAA,EAAA,6BAAA,EAAA,2BAAA,EAAA,yFAAA,EAAA,8BAAA,EAAA,4BAAA,EAAA,qBAAA,CAAA,CAAA,CAAA,EAGtB/G,KAAK,IAAE0d,eAAS,CAACE,kBAAkB,CAAC,CAAC5d,KAAK,CAAC,GAAC,CAAC,EAC5CA,KAAK,IAAE0d,eAAS,CAACE,kBAAkB,CAAC,CAAC5d,KAAK,CAAC,GAAC,CAAC,EAC/CA,KAAK,IAAE0d,eAAS,CAACE,kBAAkB,CAAC,CAAC5d,KAAK,CAAC,EAIzCA,KAAK,IAAE0d,eAAS,CAACE,kBAAkB,CAAC,CAAC5d,KAAK,CAAC,GAAC,CAAC,EAC5CA,KAAK,IAAE0d,eAAS,CAACE,kBAAkB,CAAC,CAAC5d,KAAK,CAAC,GAAC,CAAC,EAC/CA,KAAK,IAAE0d,eAAS,CAACE,kBAAkB,CAAC,CAAC5d,KAAK,CAAC,CAG9D,CAAA,EACCA,KAAK,IAAIA,KAAK,CAACge,iBAAiB,IAAI9W,UAAG,CAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EACrCwC,WAAK,CAACG,GAAG,CAAC7J,KAAK,CAACge,iBAAiB,CAAC,CAAApU,kBAAA,KAAAA,kBAAA,GAAA7C,0CAAA,CAAA,CAAA,gFAAA,CAAA,CAAA,CAAA,CAAA,CAMrC,EACF;AAEYkX,MAAAA,0BAA0B,GAAItd,QAAQ,IAAK;EACtD,IAAIyc,IAAI,GAAG3d,yBAAK,CAAC6d,QAAQ,CAACY,KAAK,CAACvd,QAAQ,CAAC,GAAC,CAAC,CAAA;AAE3C,EAAA,SAASwd,YAAYA,CAACC,KAAK,EAAE/d,CAAC,EAAE;AAC9B,IAAA,IAAIA,CAAC,KAAK+c,IAAI,IAAIgB,KAAK,IAAIA,KAAK,CAAC7W,IAAI,IAAI6W,KAAK,CAAC7W,IAAI,CAAC9F,WAAW,KAAKoc,qBAAqB,CAACpc,WAAW,EAAE;AACrG,MAAA,oBAAOhC,yBAAK,CAAC4e,YAAY,CAACD,KAAK,EAAE;AAAChB,QAAAA,IAAI,EAAE,IAAA;AAAI,OAAC,CAAC,CAAA;AAChD,KAAA;AACA,IAAA,OAAOgB,KAAK,CAAA;AACd,GAAA;AACA,EAAA,IAAI,CAACnR,KAAK,CAACqR,OAAO,CAAC3d,QAAQ,CAAC,IAAIA,QAAQ,CAACgL,MAAM,KAAG,CAAC,EAAE;AACnD,IAAA,OAAOwS,YAAY,CAACxd,QAAQ,EAAC,CAAC,CAAC,CAAA;AACjC,GAAA;AACA,EAAA,OAAO,CAAC,CAACA,QAAQ,CAACyc,IAAI,CAAC,IAAKzc,QAAQ,CAACyc,IAAI,CAAC,IAAIzc,QAAQ,CAACyc,IAAI,CAAC,CAAC7V,IAAI,IAAI5G,QAAQ,CAACyc,IAAI,CAAC,CAAC7V,IAAI,CAAC9F,WAAW,KAAK,QAAS,KAAK2b,IAAI,GAAG,CAAC,EAAE;AAC/HA,IAAAA,IAAI,EAAE,CAAA;AACR,GAAA;EACA,OAAO3d,yBAAK,CAAC6d,QAAQ,CAACnQ,GAAG,CAACxM,QAAQ,EAACwd,YAAY,CAAC,CAAA;AAClD;;;ACxDA,MAAMI,qBAAqB,GAAGlc,IAAA,IAAsB;EAAA,IAArB;IAAC1B,QAAQ;AAAC6d,IAAAA,KAAAA;AAAK,GAAC,GAAAnc,IAAA,CAAA;AAC5C,EAAA,MAAM6C,QAAQ,GAAGX,WAAW,EAAE,CAAA;AAC/Bka,EAAAA,oBAAe,CAAC,MAAM;AACpBD,IAAAA,KAAK,EAAE,CAAA;AACT,GAAC,EAAE,CAACtZ,QAAQ,CAAC,CAAC,CAAA;AACd,EAAA,OAAOvE,QAAQ,CAAA;AACjB,CAAC,CAAA;AACM,MAAM+d,aAAa,SAASjf,yBAAK,CAACC,SAAS,CAAC;EACjDC,WAAWA,CAACK,KAAK,EAAE;IACjB,KAAK,CAACA,KAAK,CAAC,CAAA;IACZ,IAAI,CAACH,KAAK,GAAG;AAAE8e,MAAAA,QAAQ,EAAE,KAAA;KAAO,CAAA;AAClC,GAAA;EAEAC,kBAAkBA,CAACC,SAAS,EAAE;IAC5B,IAAI,IAAI,CAAC7e,KAAK,CAACkF,QAAQ,KAAK2Z,SAAS,CAAC3Z,QAAQ,EAAE;MAC9C,IAAI,CAAC5E,QAAQ,CAAC;AAACqe,QAAAA,QAAQ,EAAC,KAAA;AAAK,OAAC,CAAC,CAAA;AACjC,KAAA;IACA,IAAI,IAAI,CAAC3e,KAAK,CAAC8e,OAAO,KAAKD,SAAS,CAACC,OAAO,EAAE;MAC5C,IAAI,CAACxe,QAAQ,CAAC;AAACqe,QAAAA,QAAQ,EAAC,KAAA;AAAK,OAAC,CAAC,CAAA;AACjC,KAAA;AACF,GAAA;AAEAI,EAAAA,iBAAiBA,CAAC/b,CAAC,EAAEgc,IAAI,EAAE;IACzB,IAAIC,wBAAA,CAAM,CAAC,CAAC,CAAC,EAACjc,CAAC,CAAC,KAAK,OAAO,IAAIic,wBAAA,CAAM,CAAC,CAAC,EAAC,QAAQ,CAAC,EAACjc,CAAC,CAAC,KAAK,GAAG,EAAE;MAC7DS,MAAM,CAACyB,QAAQ,GAAG,QAAQ,CAAA;AAC5B,KAAA;AACA,IAAA,IAAIlC,CAAC,KAADA,IAAAA,IAAAA,CAAC,eAADA,CAAC,CAAEkc,QAAQ,EAAE;AACf,MAAA,OAAA;AACF,KAAA;AACA,IAAA,IAAIC,KAAK,GAAGnc,CAAC,IAAIA,CAAC,CAACoc,KAAK,CAAA;IACxB,IAAI;AACF,MAAA,IAAI,CAACpc,CAAC,IAAI,CAACA,CAAC,CAACoc,KAAK,EAAE;AAClBD,QAAAA,KAAK,GAAGE,IAAI,CAACC,SAAS,CAACtc,CAAC,CAAC,CAAA;AAC3B,OAAA;KACD,CAAC,OAAOuc,SAAS,EAAE;AAClBJ,MAAAA,KAAK,GAAGnc,CAAC,CAACwc,QAAQ,EAAE,CAAA;AACtB,KAAA;IACA,IAAI,CAAE,mBAAmB,CAACC,IAAI,CAAChc,MAAM,CAACic,SAAS,CAACC,SAAS,CAAE,EAAE;MAC3DC,iBAAW,CAAC,oBAAoB,EAAE;QAChCT,KAAK;AACLU,QAAAA,OAAO,EAAE7c,CAAC,KAAA,IAAA,IAADA,CAAC,KAADA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAC,CAAE6c,OAAO;AACnBC,QAAAA,IAAI,EAAE9c,CAAC,KAAA,IAAA,IAADA,CAAC,KAADA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAC,CAAE8c,IAAI;AACbC,QAAAA,cAAc,EAAEf,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAJA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEe,cAAc;AACpCvc,QAAAA,GAAG,EAAEC,MAAM,CAACyB,QAAQ,CAAC5C,IAAAA;AACvB,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAA;EAEA,OAAO0d,wBAAwBA,CAACb,KAAK,EAAE;AACrC;IACA,OAAO;AAAER,MAAAA,QAAQ,EAAE,IAAI;AAAEQ,MAAAA,KAAAA;KAAM,CAAA;AACjC,GAAA;AAEA1e,EAAAA,MAAMA,GAAG;AACP,IAAA,MAAAC,WAAA,GAAkC,IAAI,CAACV,KAAK;AAAtC,MAAA;QAACigB,KAAK;AAACtf,QAAAA,QAAAA;AAAiB,OAAC,GAAAD,WAAA;AAANV,MAAAA,KAAK,GAAAiB,4CAAA,CAAAP,WAAA,EAAAQ,WAAA,CAAA,CAAA;IAC9B,MAAM;MAACyd,QAAQ;AAACQ,MAAAA,KAAAA;KAAM,GAAG,IAAI,CAACtf,KAAK,CAAA;AACnC,IAAA,MAAM2e,KAAK,GAAEA,MAAM,IAAI,CAACle,QAAQ,CAAC;AAACqe,MAAAA,QAAQ,EAAC,KAAK;AAACQ,MAAAA,KAAK,EAAC,IAAA;AAAI,KAAC,CAAC,CAAA;AAC7D,IAAA,IAAIR,QAAQ,EAAE;AACZ,MAAA,iBAAIlf,yBAAK,CAACygB,cAAc,CAACD,KAAK,CAAC,EAAE;AAC/B,QAAA,oBAAOxgB,yBAAA,CAAA0B,aAAA,CAACod,qBAAqB,EAAA;AAACC,UAAAA,KAAK,EAAEA,KAAAA;AAAM,SAAA,EAAEyB,KAA6B,CAAC,CAAA;AAC7E,OAAA;AACA;AACA,MAAA,oBAAOxgB,yBAAA,CAAA0B,aAAA,CAACod,qBAAqB,EAAA;AAACC,QAAAA,KAAK,EAAEA,KAAAA;OAAO/e,eAAAA,yBAAA,CAAA0B,aAAA,CAAC8e,KAAK,EAAAvd,4BAAA,KAAK1C,KAAK,EAAA;AAAEmf,QAAAA,KAAK,EAAEA,KAAM;AAACgB,QAAAA,KAAK,EAAE3B,KAAAA;AAAM,OAAA,CAAC,CAAwB,CAAC,CAAA;AACrH,KAAA;AACA,IAAA,OAAO7d,QAAQ,CAAA;AACjB,GAAA;AACF,CAAA;;AAEA;;;;AClEO,MAAMyf,gBAAgB,GAAGtS,qBAAe,CAAC,0CAA0C,EAAE,uCAAuC,EAAC;AAC9H,MAAA,CAACuS,aAAa,EAAEC,cAAc,CAAC,GAAGtE,qBAAe,CAAC,aAAa,EAAE,aAAa,EAAC;MAGxEuE,KAAK,gBAAGjf,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,wBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,oGAAA,EAAA,EAAA,CAAA,EAQzB1B,KAAK,IAAIA,KAAK,CAACwgB,aAAa,kCAAkC,EACnE;MAEYC,cAAc,gBAAGnf,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,iCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAYvC,CAAA,CAAA,CAAA,uFAAA,CAAA,EAAA;AAED,MAAMgf,YAAY,gBAAGpf,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,+BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAUf1B,CAAAA,CAAAA,CAAAA,2JAAAA,EAAAA,uIAAAA,EAAAA,GAAAA,EAAAA,EAAAA,CAAAA,EAAAA,KAAK,IAAIA,KAAK,CAAC2gB,UAAU,GAAG,QAAQ,GAAG,QAAQ,EAa3DjX,WAAK,CAACkX,OAAO,CAAA9Z,iBAAA,KAAAA,iBAAA,GAAAC,0CAAA,CAAA,CAAA,iBAAA,EAAA,OAAA,CAAA,CAAA,CAAA,EACF/G,KAAK,IAAIA,KAAK,CAAC6gB,UAAU,GAAG,MAAM,GAAG,cAAc,CAAA,EAE9DnX,WAAK,CAACC,MAAM,CAAAC,kBAAA,KAAAA,kBAAA,GAAA7C,0CAAA,CAAA,CAAA,iBAAA,EAAA,OAAA,CAAA,CAAA,CAAA,EACD/G,KAAK,IAAIA,KAAK,CAAC8gB,kBAAkB,GAAG,GAAG,GAAG,QAAQ,CAEhE,CAAA,CAAA;AAED,MAAMC,SAAS,gBAAGzf,0BAAM,CAAC0f,SAAI,CAAC,CAAAxf,UAAA,CAAA;EAAAC,WAAA,EAAA,4BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAK7B,CAAA,CAAA,CAAA,4CAAA,CAAA,CAAA,CAAA;AAKD,MAAMuf,gBAAgB,GAAG,kCAAkC,CAAA;AAC3D,MAAMC,iBAAiB,GAAG,WAAW,GAACD,gBAAgB,CAAA;AAEtD,MAAME,sBAAsB,GAAG,EAAE,CAAA;AACjC,IAAIC,sBAAsB,GAAG5O,OAAO,CAAC6O,OAAO,EAAE,CAAA;AACjCC,MAAAA,gBAAgB,GAAIC,EAAE,IAAK;AACtCH,EAAAA,sBAAsB,GAAGA,sBAAsB,CAAChhB,IAAI,CAAC,MAAM;IACzD,IAAIoS,OAAO,CAAEE,GAAG,IAAK;AACnByO,MAAAA,sBAAsB,CAACK,IAAI,CAAC9O,GAAG,CAAC,CAAA;AAChC6O,MAAAA,EAAE,EAAE,CAAA;AACN,KAAC,CAAC,CAAA;AACJ,GAAC,CAAC,CAAA;AACJ,EAAC;AACYE,MAAAA,UAAU,GAAGA,MAAM;AAC9B,EAAA,OAAOL,sBAAsB,CAAA;AAC/B,EAAC;AACD,MAAMM,qBAAqB,GAAI1e,CAAC,IAAK;AACnC,EAAA,MAAM2e,QAAQ,GAAGR,sBAAsB,CAACS,KAAK,EAAE,CAAA;AAC/C,EAAA,IAAID,QAAQ,EAAE;IACZ3e,CAAC,CAAC0W,wBAAwB,EAAE,CAAA;AAC5BiI,IAAAA,QAAQ,EAAE,CAAA;AACZ,GAAA;AACF,CAAC,CAAA;AAEDle,MAAM,CAACwN,gBAAgB,CAAC,UAAU,EAACyQ,qBAAqB,CAAC,CAAA;AAEzD,MAAMG,WAAW,GAAGA,CAACC,KAAK,EAAErU,EAAE,KAAK;AACjC,EAAA,MAAMsU,QAAQ,GAAG3S,QAAQ,CAAC4S,gBAAgB,CAACF,KAAK,CAAC,CAAA;EACjD,IAAIC,QAAQ,CAACpW,MAAM,EAAE;AACnBsB,IAAAA,KAAK,CAAC6E,SAAS,CAACzC,KAAK,CAACC,IAAI,CAACyS,QAAQ,CAAC,CAACvS,OAAO,CAAC/B,EAAE,CAAC,CAAA;AAClD,GAAA;AACF,CAAC,CAAA;AAED,IAAIwU,UAAU,GAAG,CAAC,CAAA;AAClB,IAAIC,cAAc,GAAG,CAAC,CAAA;AACf,MAAMC,cAAc,GAAGA,MAAMF,UAAU,GAAC,CAAC,IAAIC,cAAc,GAAG,EAAC;MACzDE,kBAAkB,GAAGA,CAACC,OAAO,EAAEC,kBAAkB,KAAK;AACjE,EAAA,IAAID,OAAO,EAAE;IACXJ,UAAU,GAAGnN,IAAI,CAACjL,GAAG,CAACoY,UAAU,GAAC,CAAC,EAAC,CAAC,CAAC,CAAA;IACrC,IAAIA,UAAU,GAAC,CAAC,EAAE;AAChB,MAAA,OAAA;AACF,KAAA;AACF,GAAC,MAAM;IACLA,UAAU,GAAGnN,IAAI,CAACgJ,GAAG,CAACmE,UAAU,GAAC,CAAC,EAAC,CAAC,CAAC,CAAA;IACrC,IAAIA,UAAU,GAAC,CAAC,EAAE;AAChB,MAAA,OAAA;AACF,KAAA;AACF,GAAA;AACA,EAAA,MAAMM,WAAW,GAAGA,CAACrX,WAAW,EAAE+I,SAAS,KAAK;AAC9C;AACAxQ,IAAAA,MAAM,CAAC+e,MAAM,CAAC/e,MAAM,CAACyQ,UAAU,IAAIzQ,MAAM,CAACgf,OAAO,IAAI,CAAC,EAAExO,SAAS,CAAC,CAAA;AAClE,IAAA,IAAIqO,kBAAkB,EAAE;AAAE,MAAA,OAAA;AAAO,KAAA;AACjCT,IAAAA,WAAW,CAAC,+BAA+B,EAAEa,CAAC,IAAI;AAChD,MAAA,IAAIL,OAAO,EAAE;QACX,MAAM;AAACM,UAAAA,KAAAA;AAAK,SAAC,GAAGlf,MAAM,CAAC2H,gBAAgB,CAACsX,CAAC,CAAC,CAAA;AAC1CA,QAAAA,CAAC,CAACtW,KAAK,CAACuW,KAAK,GAAIlO,QAAQ,CAACkO,KAAK,CAAC,GAAGzX,WAAW,GAAI,IAAI,CAAA;AACxD,OAAC,MAAM;AACLwX,QAAAA,CAAC,CAACtW,KAAK,CAACuW,KAAK,GAAG,IAAI,CAAA;AACtB,OAAA;AACF,KAAC,CAAC,CAAA;AACFd,IAAAA,WAAW,CAAC,iCAAiC,EAAEa,CAAC,IAAI;AAClD,MAAA,IAAIxX,WAAW,EAAE;AACfwX,QAAAA,CAAC,CAACtW,KAAK,CAACmI,SAAS,GAAG9Q,MAAM,CAAC2H,gBAAgB,CAACsX,CAAC,CAAC,CAACnO,SAAS,GAAA7F,eAAAA,CAAAA,MAAA,CAAmBxD,WAAW,GAAG,CAAC,EAAK,KAAA,CAAA,CAAA;AACjG,OAAC,MAAM;AACLwX,QAAAA,CAAC,CAACtW,KAAK,CAACmI,SAAS,GAAG,IAAI,CAAA;AAC1B,OAAA;AACF,KAAC,CAAC,CAAA;AAEFsN,IAAAA,WAAW,CAAC,oBAAoB,EAAEa,CAAC,IAAI;AACrC,MAAA,IAAIL,OAAO,EAAE;AACXK,QAAAA,CAAC,CAACE,SAAS,CAACC,GAAG,CAAC,gBAAgB,CAAC,CAAA;AACnC,OAAC,MAAM;AACLH,QAAAA,CAAC,CAACE,SAAS,CAAC1R,MAAM,CAAC,gBAAgB,CAAC,CAAA;AACtC,OAAA;AACF,KAAC,CAAC,CAAA;AACFzN,IAAAA,MAAM,CAACqf,qBAAqB,CAAC,MAAIrf,MAAM,CAACK,aAAa,CAAC,IAAIif,WAAW,CAAC,QAAQ,EAAE;AAACC,MAAAA,MAAM,EAAE;AAACC,QAAAA,MAAM,EAAE,IAAA;AAAI,OAAA;KAAE,CAAC,CAAC,CAAC,CAAA;GAC5G,CAAA;AAED,EAAA,MAAMC,IAAI,GAAG9T,QAAQ,CAAC8T,IAAI,CAAA;AAC1B,EAAA,IAAIC,SAAS,GAAGD,IAAI,CAACE,WAAW,CAAA;AAChC,EAAA,IAAIf,OAAO,EAAE;AACX,IAAA,MAAMpO,SAAS,GAAGxQ,MAAM,CAAC4f,WAAW,CAAA;AACpCnB,IAAAA,cAAc,GAAGjO,SAAS,CAAA;AAC1B,IAAA,IAAIqO,kBAAkB,EAAE;AACtBY,MAAAA,IAAI,CAAC9W,KAAK,CAACkX,SAAS,GAAG,QAAQ,CAAA;AACjC,KAAC,MAAM;AACLJ,MAAAA,IAAI,CAAC9W,KAAK,CAACmX,QAAQ,GAAG,QAAQ,CAAA;AAChC,KAAA;AACA,IAAA,MAAMrY,WAAW,GAAIgY,IAAI,CAACE,WAAW,GAAGD,SAAU,CAAA;AAElDD,IAAAA,IAAI,CAAC9W,KAAK,CAACC,QAAQ,GAAG,OAAO,CAAA;IAC7B6W,IAAI,CAAC9W,KAAK,CAACL,GAAG,GAAG,CAACkI,SAAS,GAAG,IAAI,CAAA;AAClCiP,IAAAA,IAAI,CAAC9W,KAAK,CAACJ,IAAI,GAAG,GAAG,CAAA;IACrB,IAAI,CAACsW,kBAAkB,EAAE;AACvBY,MAAAA,IAAI,CAAC9W,KAAK,CAACuW,KAAK,GAAGzX,WAAW,GAAG,IAAI,CAAA;AACvC,KAAC,MAAM;AACLgY,MAAAA,IAAI,CAAC9W,KAAK,CAACuW,KAAK,GAAG,GAAG,CAAA;AACxB,KAAA;AAEAJ,IAAAA,WAAW,CAACrX,WAAW,EAAC+I,SAAS,CAAC,CAAA;AACpC,GAAC,MAAM;AACLiO,IAAAA,cAAc,GAAG,CAAC,CAAA;AAClB;IACA,MAAMjO,SAAS,GAAGQ,QAAQ,CAACyO,IAAI,CAAC9W,KAAK,CAACL,GAAG,CAAC,CAAA;AAC1CmX,IAAAA,IAAI,CAAC9W,KAAK,CAACmX,QAAQ,GAAG,EAAE,CAAA;AAExBL,IAAAA,IAAI,CAAC9W,KAAK,CAACC,QAAQ,GAAG,EAAE,CAAA;AACxB6W,IAAAA,IAAI,CAAC9W,KAAK,CAACL,GAAG,GAAG,EAAE,CAAA;AACnBmX,IAAAA,IAAI,CAAC9W,KAAK,CAACJ,IAAI,GAAG,EAAE,CAAA;AACpBkX,IAAAA,IAAI,CAAC9W,KAAK,CAACuW,KAAK,GAAG,EAAE,CAAA;AACrBJ,IAAAA,WAAW,CAAC,CAAC,EAAC,CAACtO,SAAS,CAAC,CAAA;AACxB;AACH,GAAA;AACF,EAAC;AAIK,MAAA,CAACuP,eAAe,EAAEC,mBAAmB,CAAC,GAAGC,kBAAa,CAACjkB,yBAAK,CAACoY,eAAe,EAAC;AAG5E,MAAM8L,eAAe,gBAAGtc,gBAAU,CAAC,CAAAhF,IAAA,EAMxCuhB,YAAY,KAAK;EAAA,IALjB;IACEjjB,QAAQ;IAAEkjB,KAAK;IAAEC,WAAW;IAAEC,YAAY;IAAEC,WAAW;IAAEC,SAAS;IAAExS,IAAI;IAAE+I,IAAI;IAAE0J,IAAI;IAAEC,UAAU;IAAEC,YAAY;AAAEC,IAAAA,SAAS,GAAG,QAAQ;IACpIC,kBAAkB;IAAEC,UAAU;AAAEzT,IAAAA,SAAS,GAAGsP,gBAAgB;IAAExS,eAAe;IAAE4W,oBAAoB;IAAEC,oBAAoB;IAAEC,QAAQ;IAAC5D,kBAAkB;IAAED,UAAU;AAAE8D,IAAAA,cAAc,GAAG,KAAK;IAAEC,OAAO;IAAEC,QAAQ;IAAEC,cAAc;IAC7NC,YAAY;AAAEC,IAAAA,YAAAA;AAChB,GAAC,GAAA3iB,IAAA,CAAA;AAGD,EAAA,MAAM4iB,SAAS,GAAG3I,iBAAY,CAACsH,YAAY,CAAC,CAAA;AAC5C,EAAA,MAAMsB,iBAAiB,GAAGC,gBAAW,CAAC/V,QAAQ,CAACgW,aAAa,CAAC,CAAA;AAC7D,EAAA,MAAMC,KAAK,GAAG/I,iBAAY,CAACuI,QAAQ,CAAC,CAAA;AACpC,EAAA,MAAMS,WAAW,GAAGC,YAAM,EAAE,CAAA;AAC5B,EAAA,MAAMC,gBAAgB,GAAGL,gBAAW,EAAE,CAAA;EACtC,MAAMM,YAAY,GAAGN,gBAAW,CAAC1hB,MAAM,CAACyB,QAAQ,CAAC5B,IAAI,CAAC,CAAA;EAEtD,MAAM,CAACoiB,UAAU,EAAE;IAACC,KAAK;AAAEzN,IAAAA,OAAAA;GAAQ,CAAC,GAAGsL,eAAe,CAAC;IACrDoC,OAAO,EAAEA,MAAM;AACbnE,MAAAA,UAAU,EAAE,CAACrhB,IAAI,CAAC,MAAM;AACtB,QAAA,IAAImkB,UAAU,IAAIsB,SAAS,CAACtB,UAAU,CAAC,KAAK9gB,MAAM,CAACyB,QAAQ,CAAC5B,IAAI,EAAE;AAChEG,UAAAA,MAAM,CAACC,OAAO,CAACoiB,YAAY,CAACpiB,OAAO,CAAC7D,KAAK,EAAE,EAAE,EAAE4D,MAAM,CAACyB,QAAQ,CAAC9B,QAAQ,CAAC,CAAA;AACxEK,UAAAA,MAAM,CAACC,OAAO,CAACC,SAAS,CAAC;AAACsf,YAAAA,MAAM,EAAE,IAAA;AAAI,WAAC,EAAE,EAAE,EAAEsB,UAAU,CAAC,CAAA;AAC1D,SAAC,MAAM;AACL9gB,UAAAA,MAAM,CAACC,OAAO,CAACC,SAAS,CAAC;AAACsf,YAAAA,MAAM,EAAE,IAAA;AAAI,WAAC,EAAE,EAAE,EAAExf,MAAM,CAACyB,QAAQ,CAAC5C,IAAI,IAAIiiB,UAAU,IAAI,EAAE,CAAC,CAAC,CAAA;AACzF,SAAA;AACF,OAAC,CAAC,CAAA;AACF;MACA,IAAInV,QAAQ,CAAC8T,IAAI,CAACrP,YAAY,KAAKzE,QAAQ,CAAC8T,IAAI,CAACpP,YAAY,EAAE;AAC7DuR,QAAAA,KAAK,CAAC9M,OAAO,CAACnM,KAAK,CAACkX,SAAS,GAAG,QAAQ,CAAA;QACxC,IAAIgC,WAAW,CAAC/M,OAAO,EAAE;AACvB+M,UAAAA,WAAW,CAAC/M,OAAO,CAACnM,KAAK,CAACkX,SAAS,GAAG,QAAQ,CAAA;AAChD,SAAA;AACF,OAAA;AACA;KACD;IACDyC,QAAQ,EAAGC,MAAM,IAAK;AACpB,MAAA,IACGA,MAAM,KAAK,CAAC,IAAI/G,wBAAA,CAAM,QAAQ,EAAExb,MAAM,CAACC,OAAO,CAAC7D,KAAK,CAAC,KAAK,IAAI,IAC9D0kB,UAAU,IAAI9gB,MAAM,CAACyB,QAAQ,CAAC5B,IAAI,KAAKuiB,SAAS,CAACtB,UAAU,CAAE,EAC9D;AACAjD,QAAAA,gBAAgB,CAAC,MAAM;AACrB7d,UAAAA,MAAM,CAACC,OAAO,CAACuiB,IAAI,EAAE,CAAA;AACvB,SAAC,CAAC,CAAA;AACJ,OAAA;KACD;IACDC,OAAO,EAAEA,MAAM;MACb,IAAI9W,QAAQ,CAAC8T,IAAI,CAACrP,YAAY,GAAGzE,QAAQ,CAAC8T,IAAI,CAACpP,YAAY,EAAE;QAC3D,IAAIwR,WAAW,CAAC/M,OAAO,EAAE;AACvB+M,UAAAA,WAAW,CAAC/M,OAAO,CAACnM,KAAK,CAACkX,SAAS,GAAG,QAAQ,CAAA;AAChD,SAAA;AACF,OAAC,MAAM,IAAI+B,KAAK,CAAC9M,OAAO,EAAE;AACxB8M,QAAAA,KAAK,CAAC9M,OAAO,CAACnM,KAAK,CAACkX,SAAS,GAAG,QAAQ,CAAA;AAC1C,OAAA;MACAlB,kBAAkB,CAAC,KAAK,CAAC,CAAA;AAC3B,KAAA;AACF,GAAC,CAAC,CAAA;EAEF,MAAM+D,kBAAkB,GAAGA,MAAM;IAC/B,IAAIjC,IAAI,IAAIA,IAAI,CAACkC,aAAa,EAAE,IAAIzB,cAAc,EAAE;MAClDT,IAAI,CAACmC,OAAO,EAAE,CACXjmB,IAAI,CAAC0jB,WAAW,CAAC,CAAA;AACtB,KAAC,MAAM;MACL7gB,oBAAc,CAAC6gB,WAAW,CAAC,CAAA;AAC7B,KAAA;GACD,CAAA;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEE,EAAsBrkB,yBAAK,CAAC8lB,MAAM,GAAE;AAGpCe,EAAAA,eAAS,CAAC,MAAM;IACd,IAAI/B,UAAU,IAAI9gB,MAAM,CAACyB,QAAQ,CAAC5B,IAAI,KAAKihB,UAAU,EAAE;AACrD;AACA9C,MAAAA,UAAU,EAAE,CAACrhB,IAAI,CAAC,MAAM;AACtB,QAAA,IAAIqD,MAAM,CAACyB,QAAQ,CAAC5B,IAAI,EAAE;AACxBG,UAAAA,MAAM,CAACC,OAAO,CAACoiB,YAAY,CAAC;AAAC7C,YAAAA,MAAM,EAAE,IAAA;AAAI,WAAC,EAAE,EAAE,EAAEsB,UAAU,CAAC,CAAA;AAC7D,SAAC,MAAM;AACL9gB,UAAAA,MAAM,CAACC,OAAO,CAACC,SAAS,CAAC;AAACsf,YAAAA,MAAM,EAAE,IAAA;AAAI,WAAC,EAAE,EAAE,EAAEsB,UAAU,CAAC,CAAA;AAC1D,SAAA;AACF,OAAC,CAAC,CAAA;AACF;AACA;AACA;AACA;AACAkB,MAAAA,YAAY,CAAC1U,GAAG,CAAC8U,SAAS,CAACtB,UAAU,CAAC,CAAC,CAAA;AACzC,KAAA;AACF,GAAC,EAAE,CAACA,UAAU,CAAC,CAAC,CAAA;AAEhB+B,EAAAA,eAAS,CAAC,MAAM;AACd7iB,IAAAA,MAAM,CAACwN,gBAAgB,CAAC,SAAS,EAAEsV,QAAQ,CAAC,CAAA;AAC5C9iB,IAAAA,MAAM,CAACwN,gBAAgB,CAAC,SAAS,EAAEuV,UAAU,CAAC,CAAA;AAC9C/iB,IAAAA,MAAM,CAACwN,gBAAgB,CAAC,UAAU,EAAEwV,YAAY,CAAC,CAAA;AACjD,IAAA,OAAO,MAAM;AACXhjB,MAAAA,MAAM,CAACsP,mBAAmB,CAAC,SAAS,EAAEwT,QAAQ,CAAC,CAAA;AAC/C9iB,MAAAA,MAAM,CAACsP,mBAAmB,CAAC,SAAS,EAAEyT,UAAU,CAAC,CAAA;AACjD/iB,MAAAA,MAAM,CAACsP,mBAAmB,CAAC,UAAU,EAAE0T,YAAY,CAAC,CAAA;MACpD,IAAI,CAACzC,WAAW,IAAI5U,QAAQ,CAAC8T,IAAI,CAACwD,QAAQ,CAACxB,iBAAiB,CAAClU,GAAG,EAAE,CAAC,IAAIkU,iBAAiB,CAAClU,GAAG,EAAE,CAAC2V,OAAO,CAACzF,iBAAiB,CAAC,EAAE;AACzHtO,QAAAA,UAAU,CAAC,MAAMsS,iBAAiB,CAAClU,GAAG,EAAE,CAAC/J,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;AACtD,OAAA;KACD,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;EAGN,MAAMwf,YAAY,GAAIzjB,CAAC,IAAK;AAC1B,IAAA,IAAI,CAAC2iB,KAAK,EAAE,uEAAsE,OAAA;AAClF,IAAA,IAAI1G,wBAAA,CAAM,gBAAgB,EAAExb,MAAM,CAACC,OAAO,CAAC7D,KAAK,CAAC,KAAK,IAAI,EAAE;AAAE,MAAA,OAAA;AAAO,KAAA;AACrE,IAAA,IAAIof,wBAAA,CAAM,QAAQ,EAAExb,MAAM,CAACC,OAAO,CAAC7D,KAAK,CAAC,KAAK,IAAI,EAAE;AAClD4D,MAAAA,MAAM,CAACC,OAAO,CAACC,SAAS,CAAC;AAACsf,QAAAA,MAAM,EAAE,IAAA;OAAK,EAAE,EAAE,EAAExf,MAAM,CAACyB,QAAQ,CAAC5C,IAAI,CAAC,CAAA;AACpE,KAAA;AACA6jB,IAAAA,kBAAkB,EAAE,CAAA;GACrB,CAAA;EAED,MAAMK,UAAU,GAAIxjB,CAAC,IAAK;AACxB,IAAA,IAAI,CAAC2iB,KAAK,EAAE,IAAIb,cAAc,EAAE,OAAA;AAChC,IAAA,IAAIO,KAAK,CAAC9M,OAAO,IAAI,CAACvV,CAAC,CAAC8P,MAAM,CAAC8T,OAAO,CAAC,GAAG,GAAGvB,KAAK,CAAC9M,OAAO,CAAC3P,SAAS,CAAC+F,KAAK,CAAC,GAAG,CAAC,CAACI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;MAC1F,MAAM8X,OAAO,GAAGxB,KAAK,CAAC9M,OAAO,CAAC/H,aAAa,CAAC,YAAY,CAAC,CAAA;AACzD,MAAA,IAAIqW,OAAO,EACTA,OAAO,CAAC5f,KAAK,EAAE,CAAA;AACnB,KAAA;GACD,CAAA;EAED,MAAMsf,QAAQ,GAAIvjB,CAAC,IAAK;IAAA,IAAA8jB,SAAA,EAAAC,UAAA,CAAA;IACtB,IAAI,CAACpB,KAAK,EAAE,IAAIjB,QAAQ,IAAI,EAAAoC,SAAA,GAAA9jB,CAAC,CAAC8P,MAAM,cAAAgU,SAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,SAAA,GAARA,SAAA,CAAUle,SAAS,MAAAke,IAAAA,IAAAA,SAAA,uBAAnBA,SAAA,CAAqBhY,OAAO,CAAC,qBAAqB,CAAC,KAAE,CAAC,IAAAiY,CAAAA,UAAA,GAAI/jB,CAAC,CAAC8P,MAAM,MAAA,IAAA,IAAAiU,UAAA,KAARA,KAAAA,CAAAA,IAAAA,UAAA,CAAUH,OAAO,CAAC,sBAAsB,CAAC,EAAE,OAAA;IACjI,IAAIvB,KAAK,CAAC9M,OAAO,IAAIvV,CAAC,CAACgkB,QAAQ,IAAIhkB,CAAC,CAACikB,OAAO,KAAK,CAAC,IAAI5B,KAAK,CAAC9M,OAAO,CAAC/H,aAAa,CAAC,YAAY,CAAC,KAAKpB,QAAQ,CAACgW,aAAa,EAAE;MAC1HpiB,CAAC,CAACG,cAAc,EAAE,CAAA;AAClB,MAAA,MAAM+jB,OAAO,GAAG,EAAE,CAAC7X,KAAK,CAACC,IAAI,CAAC+V,KAAK,CAAC9M,OAAO,CAACyJ,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC3U,MAAM,CAAC,CAAC8Z,GAAG,EAAEzQ,EAAE,KAAKA,EAAE,CAAC7N,QAAQ,IAAIse,GAAG,CAACte,QAAQ,GAAG6N,EAAE,GAAGyQ,GAAG,EAAE;AAACte,QAAAA,QAAQ,EAAE,CAAC,CAAA;AAAC,OAAC,CAAC,CAAA;MACvJ,IAAIqe,OAAO,IAAIA,OAAO,CAACjgB,KAAK,EAC1BigB,OAAO,CAACjgB,KAAK,EAAE,CAAA;AACnB,KAAA;AACA,IAAA,IAAIjE,CAAC,CAACga,GAAG,KAAK,QAAQ,EAAE;MACtBha,CAAC,CAACG,cAAc,EAAE,CAAA;AAClBgjB,MAAAA,kBAAkB,EAAE,CAAA;AACtB,KAAC,MAAM,IAAInjB,CAAC,CAACga,GAAG,KAAK,OAAO,EAAE;MAC5B,IAAIha,CAAC,CAAC8P,MAAM,EAAE;QACZ,MAAMA,MAAM,GAAG9P,CAAC,CAAC8P,MAAM,CAAC8T,OAAO,CAAC1F,iBAAiB,GAAG,MAAM,CAAC,CAAA;AAC3D,QAAA,IAAIpO,MAAM,KAAKA,MAAM,CAACsU,OAAO,CAACC,WAAW,EAAE,KAAK,OAAO,IAAIvU,MAAM,CAACoR,IAAI,IAAIpR,MAAM,CAACvL,IAAI,CAAC8f,WAAW,EAAE,KAAK,MAAM,CAAC,IAAIvU,MAAM,CAAC6T,OAAO,CAACzF,iBAAiB,CAAC,EAClJ,OAAA;AACJ,OAAA;MACAle,CAAC,CAACG,cAAc,EAAE,CAAA;MAClBH,CAAC,CAACskB,eAAe,EAAE,CAAA;AACnB,MAAA,IAAIrD,SAAS,EAAE;AACbA,QAAAA,SAAS,EAAE,CAAA;OACZ,MAAM,IAAIC,IAAI,EAAE;QACfA,IAAI,CAACqD,UAAU,EAAE,CAAA;AACnB,OAAA;KACD,MAAM,IAAI,CAACvkB,CAAC,CAAC8P,MAAM,CAAC6T,OAAO,CAAC1F,gBAAgB,CAAC,EAAE;AAC9C,MAAA,IAAIje,CAAC,CAACga,GAAG,KAAK,WAAW,IAAIvL,IAAI,EAAE;AACjCA,QAAAA,IAAI,EAAE,CAAA;OACP,MAAM,IAAIzO,CAAC,CAACga,GAAG,KAAK,YAAY,IAAIxC,IAAI,EAAE;AACzCA,QAAAA,IAAI,EAAE,CAAA;AACR,OAAA;AACF,KAAA;GACD,CAAA;EAED,MAAMgN,UAAU,GAAIxkB,CAAC,IAAK;AACxB,IAAA,IAAI+gB,YAAY,IAAI/gB,CAAC,CAAC8P,MAAM,KAAK9P,CAAC,CAACykB,aAAa,IAAIjC,gBAAgB,CAACxU,GAAG,EAAE,EAAE;AAC1EmV,MAAAA,kBAAkB,EAAE,CAAA;AACtB,KAAA;AACAX,IAAAA,gBAAgB,CAACzU,GAAG,CAAC,KAAK,CAAC,CAAA;GAC5B,CAAA;EACD,MAAM2W,SAAS,GAAI1kB,CAAC,IAAK;IACvBwiB,gBAAgB,CAACzU,GAAG,CAAC/N,CAAC,CAAC8P,MAAM,KAAK9P,CAAC,CAACykB,aAAa,CAAC,CAAA;GACnD,CAAA;AAED,EAAA,MAAME,SAAS,GAAGvD,YAAY,IAAKF,IAAI,IAAI,CAACC,UAAW,CAAA;AAEvD1I,EAAAA,gBAAgB,CAACwJ,SAAS,EAAEnU,SAAS,EAAE,IAAI,EAAE;IAC3C+H,UAAU,EAAE,CAAC+L,OAAO;IACpBvM,UAAU,EAAEA,MAAM;AAChB,MAAA,IAAIH,OAAO,EAAE,KAAK,CAAC,EAAE;QACnBkK,kBAAkB,CAAC,IAAI,CAAC,CAAA;AAC1B,OAAA;MACA,IAAIhT,QAAQ,CAAC8T,IAAI,CAACrP,YAAY,KAAKzE,QAAQ,CAAC8T,IAAI,CAACpP,YAAY,EAAE;AAC7DuR,QAAAA,KAAK,CAAC9M,OAAO,CAACnM,KAAK,CAACkX,SAAS,GAAG,MAAM,CAAA;AACxC,OAAA;MACA,IAAIgC,WAAW,CAAC/M,OAAO,EAAE;AACvB+M,QAAAA,WAAW,CAAC/M,OAAO,CAACnM,KAAK,CAACkX,SAAS,GAAG,QAAQ,CAAA;AAChD,OAAA;KACD;AACD1K,IAAAA,WAAW,EAAC4L,oBAAoB;AAChClM,IAAAA,WAAW,EAACmM,oBAAoB;AAChC1O,IAAAA,MAAM,EAACnI,eAAAA;AACT,GAAC,CAAC,CAAA;EACF6N,gBAAgB,CAAC4J,KAAK,EAAE,CAACT,OAAO,IAAIgD,2BAAqB,EAAE,IAAI,EAAC;AAAC7R,IAAAA,MAAM,EAACnI,eAAAA;AAAe,GAAC,CAAC,CAAA;AAEzF,EAAA,MAAMia,OAAO,gBAAGpoB,yBAAA,CAAA0B,aAAA,CAAA1B,yBAAA,CAAAqoB,QAAA,EACdroB,IAAAA,eAAAA,yBAAA,CAAA0B,aAAA,CAAC4f,SAAS,EAAA;IAACjB,IAAI,EAAE,QAAQ,GAAG4F,UAAAA;AAAW,GAAC,CAAC,eACzCjmB,yBAAA,CAAA0B,aAAA,CAACud,aAAa,EAAA;AAACmF,IAAAA,KAAK,EAAE5gB,oBAAc,CAAC4gB,KAAK,CAAE;AAACC,IAAAA,WAAW,EAAEA,WAAY;AAAC7D,IAAAA,KAAK,EAAEqE,kBAAAA;GAC3ErhB,EAAAA,oBAAc,CAACtC,QAAQ,EAAE;AAACwlB,IAAAA,kBAAAA;AAAkB,GAAC,EAAElB,SAAS,EAAEnE,kBAAkB,CAChE,CACf,CAAC,CAAA;AAEH,EAAA,oBACErhB,yBAAA,CAAA0B,aAAA,CAAC4mB,SAAI,EAAA;AAACjI,IAAAA,IAAI,EAAEuE,SAAAA;AAAU,GAAA,EAElBO,OAAO,GACHiD,OAAO,gBACPpoB,yBAAA,CAAA0B,aAAA,CAAA1B,yBAAA,CAAAqoB,QAAA,EACAroB,IAAAA,eAAAA,yBAAA,CAAA0B,aAAA,CAAC6mB,aAAa,EAAA;AAACjS,IAAAA,MAAM,EAAEnI,eAAgB;AAACoX,IAAAA,YAAY,EAAEA,YAAAA;AAAa,GAAC,CAAC,eACrEvlB,yBAAA,CAAA0B,aAAA,CAACsf,cAAc,EAAA;AAACnZ,IAAAA,GAAG,EAAE+d,KAAAA;AAAM,GAAA,eAE3B5lB,yBAAA,CAAA0B,aAAA,CAACuf,YAAY,EAAA;AAACqE,IAAAA,YAAY,EAAEA,YAAa;AAACnc,IAAAA,SAAS,EAAC,WAAW;AAAC+X,IAAAA,UAAU,EAAEzI,OAAO,EAAE,GAAC,CAAE;AAAC2I,IAAAA,UAAU,EAAEA,UAAW;AAACC,IAAAA,kBAAkB,EAAEA,kBAAmB;AAACxZ,IAAAA,GAAG,EAAEge,WAAY;AAAClb,IAAAA,EAAE,EAAEud,SAAS,GAAG,MAAM,GAAG/b,SAAU;AAAC9I,IAAAA,OAAO,EAAE0kB,UAAW;AACrNS,IAAAA,QAAQ,EAAEN,SAAS,GAAG,MAAM,EAAE,GAAG/b,SAAU;AAC3Csc,IAAAA,WAAW,EAAER,SAAAA;AAAU,GAAA,EAClCG,OACW,CACA,CACd,CAEF,CAAC,CAAA;AAEX,CAAC,EAAC;AAEK,MAAMG,aAAa,gBAAGvoB,yBAAK,CAAC4H,UAAU,CAAC,CAAAxE,KAAA,EAAuHyE,GAAG,KAAK;EAAA,IAA9H;MAACyO,MAAM;MAAC8C,UAAU;MAACP,WAAW;MAACM,WAAW;AAACuP,MAAAA,OAAO,GAAG9H,aAAa;AAAE+H,MAAAA,QAAQ,GAAG9H,cAAc;AAAE0E,MAAAA,YAAAA;AAAqB,KAAC,GAAAniB,KAAA;AAAN7C,IAAAA,KAAK,GAAAiB,4CAAA,CAAA4B,KAAA,EAAA3B,WAAA,CAAA,CAAA;AACjK,EAAA,MAAMmkB,KAAK,GAAG/I,iBAAY,CAAChV,GAAG,CAAC,CAAA;AAC/BmU,EAAAA,gBAAgB,CAAC4J,KAAK,EAAE8C,OAAO,EAAEC,QAAQ,EAAC;IAACrS,MAAM;IAAC8C,UAAU;IAACD,WAAW;AAACN,IAAAA,WAAAA;AAAW,GAAC,CAAC,CAAA;EACtF,oBAAO7Y,yBAAA,CAAA0B,aAAA,CAACof,KAAK,EAAA7d,4BAAA,KAAK1C,KAAK,EAAA;AAAEwgB,IAAAA,aAAa,EAAEwE,YAAa;AAAC1d,IAAAA,GAAG,EAAE+d,KAAAA;AAAM,GAAA,CAAC,CAAC,CAAA;AACrE,CAAC;;;;AC9ZD,MAAMgD,WAAW,GAAGA,CAACC,OAAO,EAACC,OAAO,KAAK;AACvC;AACA,EAAA,IAAID,OAAO,CAACE,MAAM,GAAGD,OAAO,CAACxc,GAAG,EAAE;AAChC,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA;AACA,EAAA,IAAIuc,OAAO,CAACE,MAAM,IAAID,OAAO,CAACxc,GAAG,IAC/Buc,OAAO,CAACE,MAAM,GAAGD,OAAO,CAACC,MAAM,EAAE;AACjC,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACF,CAAC,CAAA;AACD,MAAMC,cAAc,GAAGA,CAACH,OAAO,EAACC,OAAO,KAAK;AAC1C;AACA,EAAA,IAAID,OAAO,CAACvc,GAAG,GAAGwc,OAAO,CAACC,MAAM,EAAE;AAChC,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA,EAAA,IAAIF,OAAO,CAACvc,GAAG,IAAIwc,OAAO,CAACC,MAAM,IACjCF,OAAO,CAACvc,GAAG,GAAGwc,OAAO,CAACxc,GAAG,EAAE;AACzB,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACF,CAAC,CAAA;AAED,MAAM2c,aAAa,gBAAGpnB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,gCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,2DAAA,EAAA,EAAA,CAAA,EAK5B1B,KAAK,IAAIA,KAAK,CAAC2oB,MAAM,CACxB,CAAA;AAEYC,MAAAA,eAAe,GAAG,YAAkB;AAAA,EAAA,IAAjB5iB,OAAO,GAAApG,SAAA,CAAA+L,MAAA,GAAA,CAAA,IAAA/L,SAAA,CAAA,CAAA,CAAA,KAAAgM,SAAA,GAAAhM,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAE1C,MAAM,CAACipB,WAAW,EAAEC,QAAQ,CAAC,GAAGlR,0BAAqB,EAAE,CAAA;EACvD,MAAM,CAACmR,iBAAiB,GAAGC,iBAAiB,CAAC,GAAGC,uBAAkB,EAAE,CAAA;AAEpE,EAAA,MAAMC,cAAc,GAAIC,IAAI,IAAK1lB,MAAM,CAAC2lB,oBAAoB,GAAG,IAAI3lB,MAAM,CAAC2lB,oBAAoB,CAAC,CAACC,OAAO,EAAEC,QAAQ,KAAK;AACpH,IAAA,KAAK,MAAMC,MAAM,IAAIF,OAAO,EAAE;AAC5B,MAAA,MAAMG,UAAU,GAAGD,MAAM,CAACE,kBAAkB,CAAA;AAC5C,MAAA,MAAMC,cAAc,GAAGH,MAAM,CAACI,UAAU,CAAA;MACxC,IAAI,CAACD,cAAc,EAAE;AACnB,QAAA,OAAA;AACF,OAAA;AACAZ,MAAAA,QAAQ,CAACU,UAAU,EAACE,cAAc,EAAEH,MAAM,CAACzW,MAAM,EAAEyW,MAAM,CAACK,cAAc,CAAC,CAAA;AAC3E,KAAA;AACF,GAAC,EAAAld,eAAA,CAAA;AAAEyc,IAAAA,IAAAA;GAAQnjB,EAAAA,OAAO,CAAC,CAAC,GAAG;AAAC6jB,IAAAA,OAAO,EAAA5T,6BAAW;AAAC6T,IAAAA,SAAS,EAAA7T,6BAAAA;GAAY,CAAA;AAEhE,EAAA,MAAM8T,WAAW,GAAG,IAAI9Z,GAAG,EAAE,CAAA;AAC7B,EAAA,MAAM+Z,WAAW,GAAG,YAAiB;AAAA,IAAA,IAAhBb,IAAI,GAAAvpB,SAAA,CAAA+L,MAAA,GAAA,CAAA,IAAA/L,SAAA,CAAA,CAAA,CAAA,KAAAgM,SAAA,GAAAhM,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AAC9B,IAAA,MAAMqqB,MAAM,GAAGF,WAAW,CAAC/Y,GAAG,CAACmY,IAAI,CAAC,CAAA;AACpC,IAAA,IAAIc,MAAM,EAAE;AACV,MAAA,OAAOA,MAAM,CAAA;AACf,KAAA;AACA,IAAA,MAAMX,QAAQ,GAAGJ,cAAc,CAACC,IAAI,CAAC,CAAA;AACrCY,IAAAA,WAAW,CAAChZ,GAAG,CAACoY,IAAI,EAACG,QAAQ,CAAC,CAAA;AAC9B,IAAA,OAAOA,QAAQ,CAAA;GAChB,CAAA;EAED,IAAIY,cAAc,GAAG,EAAE,CAAA;AACvB,EAAA,MAAMC,cAAc,GAAG,YAAiB;AAAA,IAAA,IAAhBhB,IAAI,GAAAvpB,SAAA,CAAA+L,MAAA,GAAA,CAAA,IAAA/L,SAAA,CAAA,CAAA,CAAA,KAAAgM,SAAA,GAAAhM,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AACjC,IAAA,MAAM0pB,QAAQ,GAAGU,WAAW,CAACb,IAAI,CAAC,CAAA;AAClCe,IAAAA,cAAc,CAAC1a,OAAO,CAAE4a,QAAQ,IAAK;AACnCd,MAAAA,QAAQ,CAACQ,SAAS,CAACM,QAAQ,CAAC,CAAA;AAC5Bd,MAAAA,QAAQ,CAACO,OAAO,CAACO,QAAQ,CAAC,CAAA;AAC5B,KAAC,CAAC,CAAA;GACH,CAAA;EAED,MAAMC,YAAY,gBAAG5qB,yBAAK,CAAC4H,UAAU,CAAC,CAAAhF,IAAA,EAAoEiF,GAAG,KAAK;IAAA,IAA3E;MAACsB,SAAS;MAAE0hB,EAAE;MAAEpjB,GAAG;MAAEvG,QAAQ;MAAC6nB,MAAM;MAAEW,IAAI;MAAEoB,YAAY;AAACzB,MAAAA,QAAAA;AAAQ,KAAC,GAAAzmB,IAAA,CAAA;AACvG,IAAA,MAAMga,UAAU,GAAGC,iBAAY,CAAChV,GAAG,CAAC,CAAA;IACpC,MAAM,CAACkjB,QAAQ,EAACC,WAAW,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC,CAAA;IAE9C7B,WAAW,CAAC,CAACP,OAAO,EAACC,OAAO,EAACzV,MAAM,EAAE8W,cAAc,KAAK;AACtD,MAAA,IAAIvN,UAAU,CAAC9D,OAAO,KAAKzF,MAAM,EAAE;QACjC,MAAM6X,KAAK,GAAGJ,YAAY,GAAIX,cAAc,GAAIpB,MAAM,GAAGC,cAAc,CAACH,OAAO,EAACC,OAAO,CAAC,GAAGF,WAAW,CAACC,OAAO,EAACC,OAAO,CAAE,CAAA;QACxH,IAAIoC,KAAK,KAAG/e,SAAS,EAAE;UACrB6e,WAAW,CAACE,KAAK,CAAC,CAAA;AAClB1nB,UAAAA,oBAAc,CAAC6lB,QAAQ,EAAC6B,KAAK,CAAC,CAAA;UAC9B,IAAI,CAACL,EAAE,EAAE;YACPtB,iBAAiB,CAAC2B,KAAK,CAAC,CAAA;WACzB,MAAM,IAAIA,KAAK,EAAE;YAChB3B,iBAAiB,CAACsB,EAAE,CAAC,CAAA;AACvB,WAAA;AACF,SAAA;AACF,OAAA;AACF,KAAC,CAAC,CAAA;AAEFhE,IAAAA,eAAS,CAAC,MAAM;MACdmE,WAAW,CAAC,KAAK,CAAC,CAAA;AAClBT,MAAAA,WAAW,CAAC/mB,oBAAc,CAACkmB,IAAI,CAAC,CAAC,CAACU,OAAO,CAACxN,UAAU,CAAC9D,OAAO,CAAC,CAAA;MAC7D2R,cAAc,GAAGA,cAAc,CAACxb,MAAM,CAAC2N,UAAU,CAAC9D,OAAO,CAAC,CAAA;AAC1D,MAAA,OAAO,MAAM;AACX;QACA2R,cAAc,GAAGU,4BAAA,CAAU,CAACvO,UAAU,CAAC9D,OAAO,CAAC,EAAC2R,cAAc,CAAC,CAAA;OAChE,CAAA;KACF,EAAC,EAAE,CAAC,CAAA;IAEL,MAAMW,cAAc,GAAG,YAAA;AAAA,MAAA,IAAC3jB,GAAG,GAAAtH,SAAA,CAAA+L,MAAA,GAAA,CAAA,IAAA/L,SAAA,CAAA,CAAA,CAAA,KAAAgM,SAAA,GAAAhM,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAAA,MAAA,oBAAKH,yBAAA,CAAA0B,aAAA,CAACunB,aAAa,EAAA;AAACC,QAAAA,MAAM,EAAEzhB,GAAI;AAAC0B,QAAAA,SAAS,EAAEA,SAAU;AAACtB,QAAAA,GAAG,EAAE+U,UAAAA;AAAW,OAAE,CAAC,CAAA;AAAA,KAAA,CAAA;AAE1G,IAAA,OAAO1b,QAAQ,GACXA,QAAQ,CAACkqB,cAAc,EAACL,QAAQ,CAAC,GACjCK,cAAc,CAAC3jB,GAAG,CAAC,CAAA;AAEzB,GAAC,CAAC,CAAA;AAGF,EAAA,OAAO,CAACmjB,YAAY,EAAEtB,iBAAiB,EAAEoB,cAAc,CAAC,CAAA;AAC1D;;;;ACjGO,MAAMW,UAAU,gBAAGxpB,0BAAM,CAACD,IAAI,CAAC,CAAAG,UAAA,CAAA;EAAAC,WAAA,EAAA,oBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAQlCgI,CAAAA,CAAAA,CAAAA,+FAAAA,EAAAA,EAAAA,CAAAA,EAAAA,WAAK,CAACkX,OAAO,CAAA9Z,iBAAA,KAAAA,iBAAA,GAAAC,0CAAA,CAGhB,CAAA,kBAAA,CAAA,CAAA,CAAA,CAAA,EAAA;AAEKgkB,MAAAA,WAAS,gBAAGzpB,0BAAM,CAACD,IAAI,CAAC,CAAC2pB,KAAK,CAACzlB,2BAAA,CAAS;AAACxF,EAAAA,IAAI,EAAE,GAAA;AAAG,CAAC,CAAC,CAAC,CAAAyB,UAAA,CAAA;EAAAC,WAAA,EAAA,mBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAiBxD,CAAA,CAAA,CAAA,wPAAA,CAAA,EAAA;AAEH,MAAMupB,kBAAkB,gBAAG3pB,0BAAM,CAAC4pB,GAAG,CAAA1pB,UAAA,CAAA;EAAAC,WAAA,EAAA,4BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAK/BgI,CAAAA,CAAAA,CAAAA,wDAAAA,EAAAA,EAAAA,CAAAA,EAAAA,WAAK,CAACC,MAAM,CAAAC,kBAAA,KAAAA,kBAAA,GAAA7C,0CAAA,CAGjB,CAAA,8BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEKokB,MAAAA,aAAa,gBAAG7pB,0BAAM,CAAEtB,KAAK,iBACjCP,yBAAA,CAAA0B,aAAA,CAASnB,KAAAA,EAAAA,KAAK,EACXie,0BAA0B,CAACje,KAAK,CAACW,QAAQ,CAAC,EAC1CX,KAAK,CAACD,IAAI,iBAAIN,yBAAA,CAAA0B,aAAA,CAAC2pB,UAAU,EAAA;EAAC/qB,IAAI,EAAEC,KAAK,CAACD,IAAAA;AAAK,CAAC,CAAC,EAC7CC,KAAK,CAACorB,YAAY,iBAAI3rB,yBAAA,CAAA0B,aAAA,CAAC8pB,kBAAkB,EAAA;EAACI,GAAG,EAAErrB,KAAK,CAACorB,YAAAA;AAAa,CAAC,CACjE,CACP,CAAC,CAAA5pB,UAAA,CAAA;EAAAC,WAAA,EAAA,uBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAKK1B,CAAAA,CAAAA,CAAAA,4DAAAA,EAAAA,GAAAA,EAAAA,qBAAAA,CAAAA,EAAAA,KAAK,IAAIA,KAAK,CAACD,IAAI,IAAImH,UAAG,CAG3B,CAAA,qCAAA,CAAA,CAAA,EACClH,KAAK,IAAIA,KAAK,CAACorB,YAAY,IAAIlkB,UAAG,CAAA,CAAA,sBAAA,EAAA,EAAA,CAAA,EAEhCwC,WAAK,CAACC,MAAM,CAAAG,kBAAA,KAAAA,kBAAA,GAAA/C,0CAAA,CAAA,CAAA,0CAAA,CAAA,CAAA,CAAA,CAAA,CAGf,EAIA;AAEL,MAAMukB,WAAW,gBAAGhqB,0BAAM,CAACiqB,EAAE,CAAA/pB,UAAA,CAAA;EAAAC,WAAA,EAAA,qBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,yCAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAGvB1B,KAAK,IAAIA,KAAK,CAACwrB,cAAc,sCAE9B,EACC9hB,WAAK,CAACC,MAAM,CAAA8hB,kBAAA,KAAAA,kBAAA,GAAA1kB,0CAAA,CAGjB,CAAA,gCAAA,CAAA,CAAA,CAAA,CAAA,EAAA;AAED,MAAM2kB,YAAY,gBAAGpqB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,sBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAMzB1B,CAAAA,CAAAA,CAAAA,sFAAAA,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,0CAAAA,EAAAA,SAAAA,EAAAA,sBAAAA,EAAAA,wBAAAA,EAAAA,KAAAA,CAAAA,EAAAA,KAAK,IAAIA,KAAK,CAAC2rB,MAAM,IAAIzkB,UAAG,CAK1BwC,CAAAA,4DAAAA,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,EAAAA,CAAAA,EAAAA,WAAK,CAACkX,OAAO,CAAAgL,kBAAA,KAAAA,kBAAA,GAAA7kB,0CAAA,yOASb2C,WAAK,CAACC,MAAM,CAAAkiB,kBAAA,KAAAA,kBAAA,GAAA9kB,0CAAA,+KAOZ/G,KAAK,IAAIA,KAAK,CAACwqB,QAAQ,IAGxB,uHAAA,CACF,EACC9gB,WAAK,CAACG,GAAG,CAAC,GAAG,CAAC,CAAAiiB,kBAAA,KAAAA,kBAAA,GAAA/kB,0CAAA,CAAA,CAAA,UAAA,EAAA,+GAAA,CAAA,CAAA,CAAA,EACZK,MAAM,CAAA,EAQRA,MAAM,EACQpH,KAAK,IAAIqJ,eAAM,CAAC,IAAI,EAAErH,cAAQ,CAAC,YAAY,CAAC,CAAChC,KAAK,CAAC,CAAC,EACzDgC,cAAQ,CAAC,QAAQ,CAAC,EAEXhC,KAAK,IAAIqJ,eAAM,CAAC,IAAI,EAAErH,cAAQ,CAAC,YAAY,CAAC,CAAChC,KAAK,CAAC,CAAC,EAGpDA,KAAK,IAAIqJ,eAAM,CAAC,IAAI,EAAErH,cAAQ,CAAC,YAAY,CAAC,CAAChC,KAAK,CAAC,CAAC,EAGvE;AAEH,MAAM+rB,wBAAwB,gBAAGzqB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,kCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAM1C,CAAA,CAAA,CAAA,mFAAA,CAAA,EAAA;;AAED;;AAEO,MAAMsqB,oBAAoB,gBAAG1qB,0BAAM,CAACkb,UAAU,CAAC,CAAAhb,UAAA,CAAA;EAAAC,WAAA,EAAA,8BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAGlDgI,CAAAA,CAAAA,CAAAA,4BAAAA,EAAAA,EAAAA,CAAAA,EAAAA,WAAK,CAACC,MAAM,CAAAsiB,kBAAA,KAAAA,kBAAA,GAAAllB,0CAAA,CAIf,CAAA,oDAAA,CAAA,CAAA,CAAA,CAAA,EAAA;AACD,MAAMmlB,sBAAsB,gBAAG5qB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,gCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAGrCgI,CAAAA,CAAAA,CAAAA,mCAAAA,EAAAA,EAAAA,CAAAA,EAAAA,WAAK,CAACC,MAAM,CAAAwiB,gBAAA,KAAAA,gBAAA,GAAAplB,0CAAA,CAIf,CAAA,8DAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD;;AAEA,MAAMqlB,MAAM,gBAAG9qB,0BAAM,cAAC7B,yBAAK,CAAC4H,UAAU,CAAC,CAAAhF,IAAA,EAA0M+Z,QAAQ,KAAK;EAAA,IAAtN;MAACxT,SAAS;MAAEyjB,QAAQ;MAAEC,YAAY;MAAEC,YAAY;MAAEf,cAAc;MAAEgB,aAAa;MAAEjkB,SAAS;MAAEkkB,MAAM;MAAEC,OAAO;MAAE/rB,QAAQ;MAAEkjB,KAAK;MAAEuH,YAAY;MAAErrB,IAAI;MAAE4sB,eAAe;AAAEC,MAAAA,SAAS,GAAG,IAAI;AAAEC,MAAAA,OAAAA;AAAiB,KAAC,GAAAxqB,IAAA;AAANrC,IAAAA,KAAK,GAAAiB,4CAAA,CAAAoB,IAAA,EAAAnB,WAAA,CAAA,CAAA;AAC5O,EAAA,MAAMoG,GAAG,GAAGgV,iBAAY,CAACF,QAAQ,CAAC,CAAA;AAClC,EAAA,MAAM,CAACiO,YAAY,CAAC,GAAGzB,eAAe,EAAE,CAAA;AAExC,EAAA,MAAMkE,WAAW,GAAGrtB,yBAAK,CAACstB,WAAW,CAAC,YAAY;AAChD,IAAA,IAAIF,OAAO,EAAE,MAAMA,OAAO,EAAE,CAAC7Z,KAAK,CAACgE,OAAO,CAACmI,KAAK,CAAC,CAAA;IACjD,IAAInf,KAAK,CAAC8jB,WAAW,EAAE9jB,KAAK,CAAC8jB,WAAW,EAAE,CAAA;GAC3C,EAAE,CAAC+I,OAAO,EAAE7sB,KAAK,CAAC8jB,WAAW,CAAC,CAAC,CAAA;EAEhC,MAAMkJ,aAAa,GAAI7G,kBAAkB,iBAAK1mB,yBAAA,CAAA0B,aAAA,CAAA1B,yBAAA,CAAAqoB,QAAA,QAE1C9nB,KAAK,CAAC8jB,WAAW,IAAI,CAAC0I,aAAa,iBACnC/sB,yBAAA,CAAA0B,aAAA,CAAC4pB,WAAS,EAAA;AAACniB,IAAAA,SAAS,EAAC,iBAAiB;AAAC9F,IAAAA,OAAO,EAAEqjB,kBAAAA;GAAoB,CAAC,EAGrEtC,KAAK,iBACLpkB,yBAAA,CAAA0B,aAAA,CAACmqB,WAAW,EAAA;IAACE,cAAc,EAAA,IAAA;AAAA,GAAA,EAAEvoB,oBAAc,CAAC4gB,KAAK,CAAe,CAElE,CAAC,CAAA;AAEH,EAAA,MAAMgE,OAAO,gBAAGpoB,yBAAA,CAAA0B,aAAA,CAAA1B,yBAAA,CAAAqoB,QAAA,EAAA,IAAA,EAEZ4E,OAAO,iBACPjtB,yBAAA,CAAA0B,aAAA,CAACgqB,aAAa,EAAA;AAACprB,IAAAA,IAAI,EAAEA,IAAK;AAACqrB,IAAAA,YAAY,EAAEA,YAAAA;AAAa,GAAA,EAAEnoB,oBAAc,CAACypB,OAAO,CAAiB,CAAC,EAGhG,CAACA,OAAO,IAAI/rB,QAAQ,iBACpBlB,yBAAA,CAAA0B,aAAA,CAACgqB,aAAa,EAAA;AAACprB,IAAAA,IAAI,EAAEA,IAAK;AAACqrB,IAAAA,YAAY,EAAEA,YAAAA;AAAa,GAAA,EAAEkB,YAAY,GAAGA,YAAY,CAAC3rB,QAAQ,CAAC,GAAGsC,oBAAc,CAACtC,QAAQ,CAAiB,CAAC,EAGzI+rB,OAAO,IAAI/rB,QAAQ,KAAK2rB,YAAY,GAAGA,YAAY,CAAC3rB,QAAQ,CAAC,GAAGsC,oBAAc,CAACtC,QAAQ,CAAC,CAAC,EAGzF8rB,MAAM,iBACNhtB,yBAAA,CAAA0B,aAAA,CAACkpB,YAAY,EAAA;IAAC7B,MAAM,EAAA,IAAA;AAAA,GAAA,EAAE,CAACyE,QAAQ,EAAEzC,QAAQ,kBAAK/qB,yBAAA,CAAA0B,aAAA,CAAA1B,yBAAA,CAAAqoB,QAAA,EAAA,IAAA,eAC5CroB,yBAAA,CAAA0B,aAAA,CAACuqB,YAAY,EAAA;AAAClB,IAAAA,QAAQ,EAAEA,QAAS;AAACmB,IAAAA,MAAM,EAAEY,YAAAA;GACvCI,EAAAA,eAAe,iBAAIltB,yBAAA,CAAA0B,aAAA,CAAC4qB,wBAAwB,EAAA,IAAA,EAAE9oB,oBAAc,CAAC0pB,eAAe,CAA4B,CAAC,EACzG1pB,oBAAc,CAACwpB,MAAM,CACV,CAAC,EACdQ,QAAQ,EACT,CACa,CAEjB,CAAC,CAAA;AAEH,EAAA,MAAMhK,MAAM,GAAIkD,kBAAkB,iBAAK1mB,yBAAA,CAAA0B,aAAA,CAAA,KAAA,EAAA;IACrCyH,SAAS,EAAEA,SAAS,GAAG,sBAAuB;AAC9CtB,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,EAER+kB,QAAQ,gBACL5sB,yBAAA,CAAA0B,aAAA,CAAA1B,yBAAA,CAAAqoB,QAAA,QACCkF,aAAa,CAAC7G,kBAAkB,CAAC,EACjC0B,OACD,CAAC,gBACDpoB,yBAAA,CAAA0B,aAAA,CAAA1B,yBAAA,CAAAqoB,QAAA,EAAA,IAAA,eACAroB,yBAAA,CAAA0B,aAAA,CAAC+qB,sBAAsB,EAAA,IAAA,EACpBc,aAAa,CAAC7G,kBAAkB,CACX,CAAC,eACzB1mB,yBAAA,CAAA0B,aAAA,CAAC6qB,oBAAoB,EAAA;AAACzjB,IAAAA,SAAS,EAAEA,SAAAA;GAC9Bsf,EAAAA,OACmB,CACtB,CAED,CAAC,CAAA;EAEN,OAAO+E,SAAS,gBACZntB,yBAAA,CAAA0B,aAAA,CAACwiB,eAAe,EAAAjhB,4BAAA,CAAA,EAAA,EAAK1C,KAAK,EAAA;AAAEskB,IAAAA,kBAAkB,EAAEA,kBAAmB;AAC/Chd,IAAAA,GAAG,EAAEA,GAAI;AACTuc,IAAAA,KAAK,EAAEA,KAAM;AACbC,IAAAA,WAAW,EAAEgJ,WAAAA;AAAY,GAAA,CAAA,EAC/CjqB,KAAA,IAAA;IAAA,IAAC;AAACsjB,MAAAA,kBAAAA;AAAkB,KAAC,GAAAtjB,KAAA,CAAA;IAAA,OAAKogB,MAAM,CAACkD,kBAAkB,CAAC,CAAA;AAAA,GAAkB,CAAC,GACrElD,MAAM,CAAC6J,WAAW,CAAC,CAAA;AACzB,CAAC,CAAC,CAAC,CAAAtrB,UAAA,CAAA;EAAAC,WAAA,EAAA,QAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAgBC1B,CAAAA,CAAAA,CAAAA,6KAAAA,EAAAA,yIAAAA,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,EAAAA,CAAAA,EAAAA,KAAK,IAAIA,KAAK,CAACktB,SAAS,IAAIhmB,UAAG,sBAAclH,KAAK,CAACktB,SAAS,CAAG,EAY/DxjB,WAAK,CAACC,MAAM,CAAAwjB,iBAAA,KAAAA,iBAAA,GAAApmB,0CAAA,qEAGV/G,KAAK,IAAIA,KAAK,CAAC8gB,kBAAkB,8DAGlC,CAED9gB,EAAAA,KAAK,IAAIA,KAAK,CAAC8jB,WAAW,IAAI5c,UAAG,gCAC/BokB,WAAW,CAGd,EACCthB,iBAAW,CAAC,QAAQ,CAAC,EACxB;AAYYojB,MAAAA,aAAa,GAAIptB,KAAK,iBAAKP,yBAAA,CAAA0B,aAAA,CAACirB,MAAM,EAAA1pB,4BAAA,KAAK1C,KAAK,EAAA;AAAEqkB,EAAAA,SAAS,EAAC,gBAAA;AAAgB,CAAErkB,CAAAA,EAAAA,KAAK,CAACW,QAAiB,EAAC;AAElG0sB,MAAAA,oBAAoB,GAAIrtB,KAAK,iBACxCP,yBAAA,CAAA0B,aAAA,CAACmsB,sBAAiB,EAAEtpB,IAAAA,EAAAA,KAAA,IAA2B;EAAA,IAA1B;AAACupB,IAAAA,mBAAAA;AAAmB,GAAC,GAAAvpB,KAAA,CAAA;AACxC,EAAA,MAAMwpB,YAAY,GAAG,YAAY;IAC7B,IAAIxtB,KAAK,CAACytB,QAAQ,EAAEztB,KAAK,CAACytB,QAAQ,EAAE,CAAA;AACpC,IAAA,IAAIztB,KAAK,CAAC6sB,OAAO,EAAE,MAAM7sB,KAAK,CAAC6sB,OAAO,EAAE,CAAC7Z,KAAK,CAACgE,OAAO,CAACmI,KAAK,CAAC,CAAA;GAC9D,CAAA;AAED,EAAA,oBACE1f,yBAAA,CAAA0B,aAAA,CAACisB,aAAa,EAAA;IACZvJ,KAAK,EAAE0J,mBAAmB,CAAC1J,KAAM;AACjCC,IAAAA,WAAW,EAAE0J,YAAa;IAC1BX,OAAO,EAAE7sB,KAAK,CAAC6sB,OAAQ;IACvB5I,SAAS,EAAEjkB,KAAK,CAACikB,SAAU;AAC3BwI,IAAAA,MAAM,eAAEhtB,yBAAA,CAAA0B,aAAA,CAAA1B,yBAAA,CAAAqoB,QAAA,EACNroB,IAAAA,eAAAA,yBAAA,CAAA0B,aAAA,CAACiG,MAAM,EAAA;AAACtE,MAAAA,OAAO,EAAE0qB,YAAAA;KAAeD,EAAAA,mBAAmB,CAACG,MAAe,CAAC,eACpEjuB,yBAAA,CAAA0B,aAAA,CAACiG,MAAM,EAAA;AACLW,MAAAA,KAAK,EAAC,SAAS;MAACQ,SAAS,EAAEvI,KAAK,CAACuI,SAAU;MAC3CzF,OAAO,EAAE9C,KAAK,CAAC2tB,aAAAA;KACfJ,EAAAA,mBAAmB,CAAClH,OAAgB,CAAC,eACvC5mB,yBAAA,CAAA0B,aAAA,CAACiG,MAAM,EAAA;MAAC0V,SAAS,EAAA,IAAA;MAACnV,KAAK,EAAA,IAAA;MAAC7E,OAAO,EAAE9C,KAAK,CAACikB,SAAAA;KAAYsJ,EAAAA,mBAAmB,CAACK,OAAgB,CACvF,CAAA;GAEFnuB,eAAAA,yBAAA,CAAA0B,aAAA,CAAA,GAAA,EAAA,IAAA,EAAIosB,mBAAmB,CAAC1F,OAAW,CACtB,CAAC,CAAA;AACnB,CACkB,EAAE;;AAEzB;AACA;AACA;AACA,MAAMgG,iBAAiB,gBAAGvsB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,2BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,oBAAA,EAAA,uDAAA,EAAA,uEAAA,EAAA,sDAAA,CAAA,EAIhC4pB,WAAW,EAKXH,aAAa,EAQbO,YAAY,CAKf,CAAA;AAED,MAAMoC,gBAAgB,gBAAGxsB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,0BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,mJAAA,EAAA,yCAAA,CAAA,EAS/BL,IAAI,CAIP,CAAA;AAEYijB,MAAAA,kBAAkB,GAAGhe,KAAA,IAAqC;EAAA,IAApC;IAAEwd,WAAW;IAAE+I,OAAO;AAAEhJ,IAAAA,KAAAA;AAAM,GAAC,GAAAvd,KAAA,CAAA;AAChE,EAAA,MAAMwmB,WAAW,GAAGrtB,yBAAK,CAACstB,WAAW,CAAC,YAAY;AAChD,IAAA,IAAIF,OAAO,EAAE,MAAMA,OAAO,EAAE,CAAC7Z,KAAK,CAACgE,OAAO,CAACmI,KAAK,CAAC,CAAA;AACjD,IAAA,IAAI2E,WAAW,EAAEA,WAAW,EAAE,CAAA;AAChC,GAAC,EAAE,CAAC+I,OAAO,EAAE/I,WAAW,CAAC,CAAC,CAAA;AAE1B,EAAA,oBACErkB,yBAAA,CAAA0B,aAAA,CAACmsB,sBAAiB,QACfS,KAAA,IAAA;IAAA,IAAC;AAAEC,MAAAA,WAAW,EAAE;QAAEnK,KAAK;QAAEgE,OAAO;AAAEoG,QAAAA,KAAAA;AAAM,OAAA;AAAE,KAAC,GAAAF,KAAA,CAAA;AAAA,IAAA,oBAC1CtuB,yBAAA,CAAA0B,aAAA,CAACirB,MAAM,EAAA;AAAChiB,MAAAA,EAAE,EAAC,KAAK;AAAC8iB,MAAAA,SAAS,EAAC,OAAA;AAAO,KAAA,EAC/BpJ,WAAW,iBAAIrkB,yBAAA,CAAA0B,aAAA,CAAC4pB,WAAS,EAAA;AAACjoB,MAAAA,OAAO,EAAEgqB,WAAAA;AAAY,KAAE,CAAC,eACnDrtB,yBAAA,CAAA0B,aAAA,CAAC0sB,iBAAiB,EAChBpuB,IAAAA,eAAAA,yBAAA,CAAA0B,aAAA,CAAC2sB,gBAAgB,EAAA,IAAA,eAACruB,yBAAA,CAAA0B,aAAA,CAACE,IAAI,EAAA;AAACtB,MAAAA,IAAI,EAAC,SAAA;KAAU,CAAmB,CAAC,EAC1D8jB,KAAK,iBAAIpkB,yBAAA,CAAA0B,aAAA,CAACmqB,WAAW,EAAA;MAACE,cAAc,EAAA,IAAA;KAAE3H,EAAAA,KAAmB,CAAC,eAC3DpkB,yBAAA,CAAA0B,aAAA,CAACgqB,aAAa,EAAA,IAAA,EAAEtD,OAAuB,CAAC,eACxCpoB,yBAAA,CAAA0B,aAAA,CAACuqB,YAAY,qBACXjsB,yBAAA,CAAA0B,aAAA,CAACiG,MAAM,EAAA;MAACS,SAAS,EAAA,IAAA;MAACV,OAAO,EAAA,IAAA;AAACrE,MAAAA,OAAO,EAAEgqB,WAAAA;AAAY,KAAA,EAAEmB,KAAc,CACnD,CACG,CACb,CAAC,CAAA;AAAA,GAEM,CAAC,CAAA;AAExB,EAAC;AAEYC,MAAAA,WAAW,GAAGC,KAAA,IAA8B;EAAA,IAA7B;IAAErK,WAAW;AAAE+I,IAAAA,OAAAA;AAAQ,GAAC,GAAAsB,KAAA,CAAA;AAClD,EAAA,MAAMrB,WAAW,GAAGrtB,yBAAK,CAACstB,WAAW,CAAC,YAAY;AAChD,IAAA,IAAIF,OAAO,EAAE,MAAMA,OAAO,EAAE,CAAC7Z,KAAK,CAACgE,OAAO,CAACmI,KAAK,CAAC,CAAA;AACjD,IAAA,IAAI2E,WAAW,EAAEA,WAAW,EAAE,CAAA;AAChC,GAAC,EAAE,CAAC+I,OAAO,EAAE/I,WAAW,CAAC,CAAC,CAAA;AAE1B,EAAA,oBACErkB,yBAAA,CAAA0B,aAAA,CAACmsB,sBAAiB,QACfc,KAAA,IAAA;IAAA,IAAC;AAAEJ,MAAAA,WAAW,EAAE;AAAEnK,QAAAA,KAAAA;AAAM,OAAA;AAAE,KAAC,GAAAuK,KAAA,CAAA;AAAA,IAAA,oBAC1B3uB,yBAAA,CAAA0B,aAAA,CAACirB,MAAM,EAAA;AAACtI,MAAAA,WAAW,EAAEgJ,WAAY;AAACjJ,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KAAA,eAC7CpkB,yBAAA,CAAA0B,aAAA,CAACmjB,kBAAkB,EAAA;AAACR,MAAAA,WAAW,EAAEgJ,WAAY;AAACD,MAAAA,OAAO,EAAEA,OAAAA;AAAQ,KAAE,CAC3D,CAAC,CAAA;AAAA,GAEM,CAAC,CAAA;AAExB;;MC1ZawB,SAAS,GAAG,UAACpL,MAAM,EAAgC;AAAA,EAAA,IAA9BjW,IAAI,GAAApN,SAAA,CAAA+L,MAAA,GAAA,CAAA,IAAA/L,SAAA,CAAA,CAAA,CAAA,KAAAgM,SAAA,GAAAhM,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAAA,IAAE0uB,cAAc,GAAA1uB,SAAA,CAAA+L,MAAA,GAAA/L,CAAAA,GAAAA,SAAA,MAAAgM,SAAA,CAAA;AACzD,EAAA,MAAM2iB,MAAM,GAAGhkB,cAAS,CAAC,KAAK,EAAC+jB,cAAc,CAAC,CAAA;EAC9CE,YAAO,CAAC,QAAQ,EAAED,MAAM,CAAC9jB,MAAM,KAAK,KAAK,IAAIwY,MAAM,CAACsL,MAAM,CAACN,KAAK,CAAC,EAAE,CAACM,MAAM,CAAC9jB,MAAM,EAAE,GAAGuC,IAAI,CAAC,CAAC,CAAA;EAC5F,OAAOuhB,MAAM,CAACE,IAAI,CAAA;AACpB,EAAC;MACYC,mBAAmB,GAAG,UAACzL,MAAM,EAAgB;AAAA,EAAA,IAAdjW,IAAI,GAAApN,SAAA,CAAA+L,MAAA,GAAA,CAAA,IAAA/L,SAAA,CAAA,CAAA,CAAA,KAAAgM,SAAA,GAAAhM,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AACnD,EAAA,MAAM2uB,MAAM,GAAGhkB,cAAS,EAAE,CAAA;EAC1BikB,YAAO,CAAC,QAAQ,EAAED,MAAM,CAAC9jB,MAAM,KAAK,KAAK,IAAIwY,MAAM,CAACsL,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC9jB,MAAM,EAAE,GAAGuC,IAAI,CAAC,CAAC,CAAA;AACtF,EAAA,OAAOuhB,MAAM,CAAA;AACf;;;MCDaI,aAAa,gBAAGrtB,0BAAM,CAACe,IAAA,IAAmL;EAAA,IAAlL;IAACwlB,OAAO;IAAE4E,MAAM;IAAEmC,KAAK;IAAE9K,WAAW;IAAC+K,UAAU;IAACC,iBAAiB;IAACjL,KAAK;IAACkL,WAAW;IAACnmB,SAAS;AAAE7H,IAAAA,KAAK,GAAG,OAAO;AAAEhB,IAAAA,IAAI,GAAG,SAAS;AAACivB,IAAAA,YAAY,GAAG,SAAS;IAACC,SAAS;AAACtuB,IAAAA,QAAAA;AAAQ,GAAC,GAAA0B,IAAA,CAAA;AAChN,EAAA,oBAAO5C,yBAAA,CAAA0B,aAAA,CAACirB,MAAM,EAAA;AAACxjB,IAAAA,SAAS,EAAEA,SAAU;IAACkb,WAAW,EAAE8K,KAAK,IAAI9K,WAAAA;GACxDvhB,EAAAA,6BAAA,CAAWxC,IAAI,CAAC,gBAAGN,yBAAA,CAAA0B,aAAA,CAAC+tB,iBAAiB,EAAA;AAACnvB,IAAAA,IAAI,EAAEA,IAAK;AAACgB,IAAAA,KAAK,EAAEA,KAAAA;GAAO,CAAC,GAAGhB,IAAI,EACxE8jB,KAAK,iBAAIpkB,yBAAA,CAAA0B,aAAA,CAACguB,kBAAkB,EAAA;AAACpuB,IAAAA,KAAK,EAAEA,KAAAA;GAAQ8iB,EAAAA,KAA0B,CAAC,EACvEgE,OAAO,iBAAIpoB,yBAAA,CAAA0B,aAAA,CAACurB,OAAO,EAAA;IAAC0C,OAAO,EAAE,CAACvL,KAAM;AAACoL,IAAAA,SAAS,EAAEA,SAAAA;GAAYpH,EAAAA,OAAiB,CAAC,EAC9EiH,iBAAiB,EACjB7rB,oBAAc,CAAC4rB,UAAU,EAAC/K,WAAW,CAAC,EACtCkL,YAAY,KAAK,KAAK,iBAAIvvB,yBAAA,CAAA0B,aAAA,CAACiG,MAAM,EAAA;IAACS,SAAS,EAAA,IAAA;AAAC/E,IAAAA,OAAO,EAAEghB,WAAAA;AAAY,GAAA,EAAEkL,YAAqB,CAAC,EACzF/rB,oBAAc,CAAC8rB,WAAW,EAACjL,WAAW,CAAC,EACvC7gB,oBAAc,CAACwpB,MAAM,EAAC3I,WAAW,CAAC,EAClCnjB,QACK,CAAC,CAAA;AACX,CAAC,CAAC,CAAAa,UAAA,CAAA;EAAAC,WAAA,EAAA,eAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,mDAAA,EAAA,6BAAA,CAAA,EAIE0F,MAAM,EAGT;MACY+nB,kBAAkB,gBAAG7tB,0BAAM,CAAC+tB,EAAE,CAAA7tB,UAAA,CAAA;EAAAC,WAAA,EAAA,mCAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAChC1B,CAAAA,CAAAA,CAAAA,QAAAA,EAAAA,kCAAAA,CAAAA,EAAAA,KAAK,IAAIgC,cAAQ,CAAChC,KAAK,CAACe,KAAK,CAAC,CAACf,KAAK,CAAC,EAG/C;AACD,MAAM0sB,OAAO,gBAAGprB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,wBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,gEAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAKtB1B,KAAK,IAAI,CAACA,KAAK,CAACivB,SAAS,IAAA,kCAE1B,EACCjvB,KAAK,IAAIA,KAAK,CAACovB,OAAO,uDAGvB,CACF,CAAA;AACM,MAAMF,iBAAiB,gBAAG5tB,0BAAM,CAACD,IAAI,CAAC,CAAAG,UAAA,CAAA;EAAAC,WAAA,EAAA,kCAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAClC1B,CAAAA,CAAAA,CAAAA,QAAAA,EAAAA,uDAAAA,CAAAA,EAAAA,KAAK,IAAIgC,cAAQ,CAAChC,KAAK,CAACe,KAAK,CAAC,CAACf,KAAK,CAAC,EAI/C;MAEYsvB,gBAAgB,GAAGA,MAAMZ,mBAAmB,CAAEH,MAAM,iBAC/D9uB,yBAAA,CAAA0B,aAAA,CAACwtB,aAAa,EAAAjsB,4BAAA,CAAK6rB,EAAAA,EAAAA,MAAM,CAAC9jB,MAAM,EAAA;EAAEqZ,WAAW,EAAEyK,MAAM,CAACN,KAAAA;AAAM,CAAA,CAAE,CAEhE,EAAC;AACD,MAAM,CAACsB,6BAA6B,GAAEC,iBAAiB,CAAC,GAAGvG,uBAAkB,EAAE,CAAA;AAExE,MAAMwG,gBAAgB,GAAG5sB,KAAA,IAAA;EAAA,IAAC;MAACuH,EAAE,EAAEgiB,MAAM,GAAGuC,aAAAA;AAAsB,KAAC,GAAA9rB,KAAA;AAAN7C,IAAAA,KAAK,GAAAiB,4CAAA,CAAA4B,KAAA,EAAA3B,WAAA,CAAA,CAAA;EAAA,OAAMsuB,iBAAiB,cAAC/vB,yBAAA,CAAA0B,aAAA,CAACirB,MAAM,EAAA1pB,4BAAA,CAAA,EAAA,EAAK1C,KAAK,EAAA;AAAE8jB,IAAAA,WAAW,EAAEA,MAAM0L,iBAAiB,CAAC,IAAI,CAAA;AAAE,GAAA,CAAC,CAAC,CAAC,CAAA;AAAA,EAAA;AAEjJE,MAAAA,oBAAoB,GAAGA,MAAM;AACxC,EAAA,MAAM,CAACC,aAAa,CAAC,GAAGJ,6BAA6B,EAAE,CAAA;AACvD,EAAA,IAAII,aAAa,EAAE;AACjB,IAAA,OAAOA,aAAa,CAAA;AACtB,GAAA;AACA,EAAA,OAAO,IAAI,CAAA;AACb;;AC7DA,MAAMC,uBAAqB,gBAAGtuB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,sCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAOvC,CAAA,CAAA,CAAA,mEAAA,CAAA,CAAA,CAAA;AAED,MAAMmuB,cAAY,gBAAGvuB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,6BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,2HAAA,EAAA,8IAAA,EAAA,0RAAA,CAAA,EAOf1B,KAAK,IAAIgC,cAAQ,CAAChC,KAAK,CAACuH,IAAI,CAAC,CAACvH,KAAK,CAAC,EAQhDqB,IAAI,CAmBP,CAAA;AAEK,MAAA,CAACyuB,eAAe,EAAEC,kBAAkB,EAACC,eAAe,CAAC,GAAG/G,uBAAkB,GAAE;AAE3E,MAAMgH,mBAAmB,GAAIC,GAAG,IAAK,MAAMF,eAAe,CAACE,GAAG,EAAC;AAEtE,MAAMpf,WAAS,GAAGhD,qBAAe,CAAC,wCAAwC,EAAE,kCAAkC,CAAC,CAAA;AAElGqiB,MAAAA,aAAa,GAAGA,MAAM;AACjC,EAAA,MAAM5B,MAAM,GAAGhkB,cAAS,EAAE,CAAA;EAC1B,MAAM,CAAC6lB,eAAe,EAACJ,eAAe,CAAC,GAAGF,eAAe,EAAE,CAAA;EAE3D,MAAM;IAACO,GAAG;IAAC9oB,IAAI;AAAC+oB,IAAAA,OAAO,GAAG,IAAA;AAAI,GAAC,GAAG/sB,6BAAA,CAAW6sB,eAAe,CAAC,GAAGA,eAAe,GAAG;AAAC7oB,IAAAA,IAAI,EAAC,SAAS;AAAC8oB,IAAAA,GAAG,EAACD,eAAAA;GAAgB,CAAA;AAEtH9J,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI+J,GAAG,EAAE;MACP9B,MAAM,CAACE,IAAI,EAAE,CAAA;MACb7b,UAAU,CAAC2b,MAAM,CAACgC,cAAc,CAACD,OAAO,CAAC,EAAE,GAAG,CAAC,CAAA;AACjD,KAAA;AACF,GAAC,EAAC,CAACD,GAAG,CAAC,CAAC,CAAA;AACR/J,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI,CAACiI,MAAM,CAAC9jB,MAAM,EAAE;MAClBulB,eAAe,CAAC,IAAI,CAAC,CAAA;AACvB,KAAA;AACF,GAAC,EAAC,CAACzB,MAAM,CAAC9jB,MAAM,CAAC,CAAC,CAAA;EAElB,OAAO8jB,MAAM,CAAC9jB,MAAM,iBAAKhL,yBAAA,CAAA0B,aAAA,CAAC4mB,SAAI,EAAA;AAACjI,IAAAA,IAAI,EAAC,eAAA;AAAe,GAAA,eACjDrgB,yBAAA,CAAA0B,aAAA,CAACqvB,kBAAgB,EAAA;AAACjpB,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,EAC1BtE,oBAAc,CAACotB,GAAG,EAAC9B,MAAM,CAACN,KAAK,CAAC,eACjCxuB,yBAAA,CAAA0B,aAAA,CAACE,IAAI,EAAA;AAACtB,IAAAA,IAAI,EAAC,GAAG;IAAC+C,OAAO,EAAEyrB,MAAM,CAACN,KAAAA;GAAO,CACtB,CACd,CAAE,CAAA;AACV,EAAC;AACD,MAAMuC,kBAAgB,GAAIxwB,KAAK,IAAK;AAClC,EAAA,MAAMsH,GAAG,GAAGie,YAAM,EAAE,CAAA;AACpB9J,EAAAA,gBAAgB,CAACnU,GAAG,EAACwJ,WAAS,CAAC,CAAA;AAC/B,EAAA,oBAAOrR,yBAAA,CAAA0B,aAAA,CAACyuB,uBAAqB,EAAA;AAACtoB,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,eAAC7H,yBAAA,CAAA0B,aAAA,CAAC0uB,cAAY,EAAAntB,4BAAA,CAAA;AAAC4nB,IAAAA,EAAE,EAAC,uBAAA;GAA4BtqB,EAAAA,KAAK,CAAE,CAAwB,CAAC,CAAA;AACvH,CAAC;;;;;ACjFM,MAAMywB,QAAQ,SAAShxB,yBAAK,CAACC,SAAS,CAAC;EAAAC,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAAC,SAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CAiB5C8wB,IAAI,GAAG,CAACxd,OAAO,EAAEC,OAAO,KAAK;AAAA,MAAA,IAAAwd,eAAA,CAAA;MAC3B,MAAM;QAAC7f,SAAS;QAAC8f,eAAe;QAACC,eAAe;QAAEC,cAAc;QAAEC,gBAAgB;QAAE3V,MAAM;QAAE4V,aAAa;QAAEjb,MAAM;AAAEkb,QAAAA,eAAAA;OAAgB,GAAG,IAAI,CAACjxB,KAAK,CAAA;AAChJmT,MAAAA,OAAO,CAACxS,QAAQ,CAAC6O,OAAO,CAAC0hB,WAAW,IAAI;QACtC,MAAMC,WAAW,GAAGje,OAAO,CAACvS,QAAQ,CAACqQ,GAAG,CAACkgB,WAAW,CAACpmB,OAAO,CAAC,CAAA;QAC7D,IAAI,CAACqmB,WAAW,EAAE,OAAA;AAClB,QAAA,MAAMtX,aAAa,GAAGvG,sBAAsB,CAAC6d,WAAW,EAAED,WAAW,CAAC,CAAA;QACtEnf,KAAK,CAACmf,WAAW,CAACpmB,OAAO,EAACqD,eAAe,CAAC0L,aAAa,EAAC9D,MAAM,CAAC,CAAC,CAAA;AAClE,OAAC,CAAC,CAAA;MACF,IAAI5C,OAAO,CAACxS,QAAQ,CAACuB,IAAI,GAAGgR,OAAO,CAACvS,QAAQ,CAACuB,IAAI,EAAE;AACjD,QAAA,MAAMkvB,QAAQ,GAAGnkB,KAAK,CAACokB,IAAI,CAACle,OAAO,CAACxS,QAAQ,CAAC2wB,MAAM,EAAE,CAAC,CAAC9T,MAAM,CAAC+T,IAAI,IAAI,CAACre,OAAO,CAACvS,QAAQ,CAACoZ,GAAG,CAACwX,IAAI,CAACzmB,OAAO,CAAC,CAAC,CAAA;AAC1GsmB,QAAAA,QAAQ,CAAC5hB,OAAO,CAAEgiB,OAAO,IAAK;AAC5Bzf,UAAAA,KAAK,CAACyf,OAAO,CAAC1mB,OAAO,EAAEqD,eAAe,CAACyiB,eAAe,IAAI9f,SAAS,EAAEiF,MAAM,EAAE,CAAC6a,eAAe,CAAC,CAAC,CAAA;AACjG,SAAC,CAAC,CAAA;AACJ,OAAC,MAAM,IAAIzd,OAAO,CAACxS,QAAQ,CAACuB,IAAI,GAAGgR,OAAO,CAACvS,QAAQ,CAACuB,IAAI,EAAE;AACxD,QAAA,MAAMuvB,QAAQ,GAAGxkB,KAAK,CAACokB,IAAI,CAACne,OAAO,CAACvS,QAAQ,CAAC2wB,MAAM,EAAE,CAAC,CAAC9T,MAAM,CAAC+T,IAAI,IAAI,CAACpe,OAAO,CAACxS,QAAQ,CAACoZ,GAAG,CAACwX,IAAI,CAACzmB,OAAO,CAAC,CAAC,CAAA;AAE1G2mB,QAAAA,QAAQ,CAACjiB,OAAO,CAAEkiB,OAAO,IAAK;AAC5B,UAAA,MAAMC,UAAU,GAAG,IAAI,CAACC,YAAY,CAACF,OAAO,EAACxe,OAAO,CAACe,SAAS,GAAGd,OAAO,CAACc,SAAS,EAAEwd,QAAQ,CAAC,CAAA;UAC7F,IAAI,CAACE,UAAU,EAAE;AAAE,YAAA,OAAA;AAAO,WAAA;UAC1B,IAAInf,OAAO,CAACE,GAAG,IAAI;AACjBX,YAAAA,KAAK,CAAC2f,OAAO,CAAC5mB,OAAO,EAAEqD,eAAe,CAAC0iB,eAAe,IAAI/f,SAAS,EAAEiF,MAAM,CAAC,EAAErD,GAAG,CAAC,CAAA;AAClFE,YAAAA,UAAU,CAACF,GAAG,EAAC,IAAI,CAAC,CAAA;AACtB,WAAC,CAAC,CAACtS,IAAI,CAAC,MAAM;AACZsxB,YAAAA,OAAO,CAAC5mB,OAAO,CAACoG,MAAM,EAAE,CAAA;AAC1B,WAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;AAEJ,OAAA;MACA,MAAM2I,aAAa,GAAGvG,sBAAsB,CAACJ,OAAO,CAACgI,MAAM,EAAE/H,OAAO,CAAC+H,MAAM,EAAC;AAAC3H,QAAAA,aAAa,EAAC,IAAI;AAACC,QAAAA,YAAY,EAAE,IAAI,CAACxT,KAAK,CAACwT,YAAAA;AAAY,OAAC,CAAC,CAAA;AACvI,MAAA,IAAI,CAAAmd,eAAA,GAAAxd,OAAO,CAAC+H,MAAM,MAAA,IAAA,IAAAyV,eAAA,KAAA,KAAA,CAAA,IAAdA,eAAA,CAAgB7lB,OAAO,IAAI,CAACmmB,eAAe,EAAE;QAC/C,MAAMzY,SAAS,GAAGvV,oBAAc,CAACmY,MAAM,EAAEjI,OAAO,CAAC+H,MAAM,CAACpQ,OAAO,EAAE;UAACqI,OAAO;AAAED,UAAAA,OAAAA;AAAO,SAAC,CAAC,CAAA;QACpFjQ,oBAAc,CAAC8tB,gBAAgB,CAAC,CAAA;AAChChf,QAAAA,KAAK,CAACoB,OAAO,CAAC+H,MAAM,CAACpQ,OAAO,EAACqD,eAAe,CAAC0L,aAAa,EAAE9D,MAAM,CAAC,EAACyC,SAAS,IAAIsY,cAAc,CAAC,CAAA;AAClG,OAAA;KACD,CAAA;IAAA,IAEDc,CAAAA,YAAY,GAAG,CAACL,IAAI,EAACM,WAAW,EAAEC,WAAW,KAAK;MAChD,IAAIP,IAAI,CAAC5kB,WAAW,EAAE;AAAA,QAAA,IAAAolB,qBAAA,CAAA;AAEpB,QAAA,IAAI,CAACR,IAAI,CAAC5kB,WAAW,CAACrB,UAAU,EAAE;AAChC,UAAA,MAAMkP,IAAI,GAAGsX,WAAW,CAACE,IAAI,CAACC,QAAQ,IAAIV,IAAI,CAAC5kB,WAAW,KAAKslB,QAAQ,CAACnnB,OAAO,CAAC,CAAA;AAChF,UAAA,IAAI0P,IAAI,EAAE;YACR,OAAO,IAAI,CAACoX,YAAY,CAAAllB,eAAA,CAAAA,eAAA,KAAK6kB,IAAI,CAAA,EAAA,EAAA,EAAA;cAAC5kB,WAAW,EAAC6N,IAAI,CAAC7N,WAAAA;aAAaklB,CAAAA,EAAAA,WAAW,EAACC,WAAW,CAAC,CAAA;AAC1F,WAAA;AACA,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;QACA,CAAAC,qBAAA,GAAAR,IAAI,CAAC5kB,WAAW,CAACrB,UAAU,cAAAymB,qBAAA,KAAA,KAAA,CAAA,IAA3BA,qBAAA,CAA6B3b,YAAY,CAACmb,IAAI,CAACzmB,OAAO,EAAEymB,IAAI,CAAC5kB,WAAW,CAAC,CAAA;AAC3E,OAAC,MAAM;QACL4kB,IAAI,CAACjmB,UAAU,CAAC4mB,WAAW,CAACX,IAAI,CAACzmB,OAAO,CAAC,CAAA;AAC3C,OAAA;MACA,MAAM;QAAC0B,KAAK;AAACD,QAAAA,MAAAA;AAAM,OAAC,GAAGglB,IAAI,CAACzmB,OAAO,CAACgB,qBAAqB,EAAE,CAAA;AAC3DylB,MAAAA,IAAI,CAACzmB,OAAO,CAACsB,KAAK,CAACJ,IAAI,GAAGulB,IAAI,CAACzmB,OAAO,CAAC+B,UAAU,GAAG,IAAI,CAAA;AACxD0kB,MAAAA,IAAI,CAACzmB,OAAO,CAACsB,KAAK,CAACL,GAAG,GAAGwlB,IAAI,CAACzmB,OAAO,CAAC8B,SAAS,GAAGilB,WAAW,GAAG,IAAI,CAAA;AACpE,MAAA,IAAI,CAAC,IAAI,CAAC7xB,KAAK,CAACmyB,gBAAgB,EAAE;AAChCZ,QAAAA,IAAI,CAACzmB,OAAO,CAACsB,KAAK,CAACrB,SAAS,GAAG,CAAC,CAAA;AAClC,OAAA;AACAwmB,MAAAA,IAAI,CAACzmB,OAAO,CAACsB,KAAK,CAACpB,UAAU,GAAG,CAAC,CAAA;MACjCumB,IAAI,CAACzmB,OAAO,CAACsB,KAAK,CAACI,KAAK,GAAGA,KAAK,GAAG,IAAI,CAAA;MACvC+kB,IAAI,CAACzmB,OAAO,CAACsB,KAAK,CAACG,MAAM,GAAGA,MAAM,GAAG,IAAI,CAAA;AACzCglB,MAAAA,IAAI,CAACzmB,OAAO,CAACsB,KAAK,CAACC,QAAQ,GAAG,UAAU,CAAA;AACxCpJ,MAAAA,oBAAc,CAAC,IAAI,CAACjD,KAAK,CAACoyB,UAAU,EAACb,IAAI,CAACzmB,OAAO,EAACymB,IAAI,CAAC,CAAA;AACvD,MAAA,OAAO,IAAI,CAAA;KACZ,CAAA;IAAA,IASDc,CAAAA,UAAU,GAAG,MAAM;MACjB,MAAMrgB,IAAI,GAAGsgB,4BAAQ,CAACC,4DAA4D,CAACC,WAAW,CAAC,IAAI,CAAC,CAAA;MACpG,MAAM;QAAClnB,UAAU;AAAEO,QAAAA,YAAY,EAAE4mB,oBAAAA;AAAoB,OAAC,GAAGzgB,IAAI,CAAA;MAC7D,MAAMnG,YAAY,GAAG4mB,oBAAoB,KAAKhvB,MAAM,CAAC2H,gBAAgB,CAACE,UAAU,CAAC,CAACe,QAAQ,KAAK,QAAQ,GAAGf,UAAU,GAAGA,UAAU,CAACO,YAAY,CAAC,CAAA;AAC/I,MAAA,IAAI,CAACA,YAAY,EAAE,OAAO,EAAE,CAAA;AAC5B,MAAA,MAAMH,UAAU,GAAGG,YAAY,CAACC,qBAAqB,EAAE,CAAA;MACvD,OAAO;QACLD,YAAY;QACZP,UAAU;AACVI,QAAAA,UAAAA;OACD,CAAA;KACF,CAAA;IAAA,IAEDgnB,CAAAA,6BAA6B,GAAIC,gBAAgB,IAAK;MACpD,MAAM;QAACjnB,UAAU;QAAEJ,UAAU;AAAEO,QAAAA,YAAAA;AAAY,OAAC,GAAG,IAAI,CAACwmB,UAAU,EAAE,CAAA;AAChE,MAAA,IAAI,CAACxmB,YAAY,EAAE,OAAO,IAAI,CAAA;AAC9B,MAAA,MAAM+mB,mBAAmB,GAAGD,gBAAgB,IAAIjnB,UAAU,CAAA;AAC1D,MAAA,MAAM/K,QAAQ,GAAG,IAAIsP,GAAG,EAAE,CAAA;AAC1B,MAAA,EAAE,CAACZ,KAAK,CAACC,IAAI,CAAChE,UAAU,CAAC3K,QAAQ,CAAC,CAACwM,GAAG,CAAE6E,IAAI,IAAK;AAC/C,QAAA,MAAM3F,QAAQ,GAAGZ,UAAU,CAACuG,IAAI,EAAE4gB,mBAAmB,EAAE;AAACzmB,UAAAA,WAAW,EAAC,IAAI;AAAE0mB,UAAAA,gBAAgB,EAAE,IAAI,CAAC7yB,KAAK,CAAC8yB,gBAAgB,IAAI,CAAA;AAAC,SAAC,CAAC,CAAA;AAC9H,QAAA,IAAIzmB,QAAQ,EAAE;AAAE1L,UAAAA,QAAQ,CAACoQ,GAAG,CAACiB,IAAI,EAAE3F,QAAQ,CAAC,CAAA;AAAC,SAAA;AAC/C,OAAC,CAAC,CAAA;MACF,OAAO;QACL1L,QAAQ;AACRua,QAAAA,MAAM,EAAEzP,UAAU,CAACI,YAAY,EAACD,SAAS,EAAE;AAACO,UAAAA,WAAW,EAAC,IAAA;AAAI,SAAC,CAAC;AAC9DT,QAAAA,UAAU,EAAEknB,mBAAmB;QAC/B3e,SAAS,EAACpI,YAAY,CAACoI,SAAAA;OACxB,CAAA;KACF,CAAA;AAAA,GAAA;AA7GD2K,EAAAA,kBAAkBA,CAACC,SAAS,EAAEkU,SAAS,EAAEC,IAAI,EAAE;AAC7C,IAAA,IAAIA,IAAI,EAAE;MACR,MAAMC,mBAAmB,GAAI,IAAI,CAACjzB,KAAK,CAACmyB,gBAAgB,IAAKa,IAAI,CAACtnB,UAAU,CAAA;AAC5E,MAAA,MAAMyH,OAAO,GAAG,IAAI,CAACuf,6BAA6B,CAACO,mBAAmB,GAAGD,IAAI,CAACtnB,UAAU,GAAGE,SAAS,CAAC,CAAA;AACpG,MAAA,IAAIuH,OAAO,EAAE;AAAE;AACb,QAAA,IAAI,CAACud,IAAI,CAACsC,IAAI,EAAE7f,OAAO,CAAC,CAAA;AAC3B,OAAA;AACF,KAAA;AACF,GAAA;EAkEA0D,uBAAuBA,CAACC,QAAQ,EAAE;AAChC,IAAA,IAAI,IAAI,CAAC9W,KAAK,CAAC0wB,IAAI,IAAI,IAAI,CAAC1wB,KAAK,CAAC+W,EAAE,KAAKD,QAAQ,CAACC,EAAE,IAAK,IAAI,CAAC/W,KAAK,CAACW,QAAQ,CAACgL,MAAM,KAAKmL,QAAQ,CAACnW,QAAQ,CAACgL,MAAO,EAAE;AACjH,MAAA,OAAO,IAAI,CAAC+mB,6BAA6B,EAAE,CAAA;AAC7C,KAAA;AACA,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAgCAjyB,EAAAA,MAAMA,GAAG;AACP,IAAA,MAAAC,WAAA,GAA4E,IAAI,CAACV,KAAK;AAAhF,MAAA;QAACW,QAAQ;QAAEyJ,EAAE;QAAEsmB,IAAI;QAAE3Z,EAAE;QAAEga,gBAAgB;AAAED,QAAAA,cAAAA;AAAuB,OAAC,GAAApwB,WAAA;AAALM,MAAAA,IAAI,GAAAC,4CAAA,CAAAP,WAAA,EAAAQ,WAAA,CAAA,CAAA;AACxE,IAAA,MAAM+oB,MAAM,GAAGxqB,yBAAK,CAAC6d,QAAQ,CAACY,KAAK,CAACvd,QAAQ,CAAC,GAAGA,QAAQ,gBAAGlB,yBAAA,CAAA0B,aAAA,CAAA,KAAA,EAAA;AAAKiL,MAAAA,KAAK,EAAE;AAACE,QAAAA,OAAO,EAAE,MAAA;AAAM,OAAA;AAAE,KAAC,CAAC,CAAA;AAC3F,IAAA,IAAIlC,EAAE,EAAE;MACN,MAAM8oB,QAAQ,GAAG9oB,EAAE,CAAA;MACnB,oBAAO3K,yBAAA,CAAA0B,aAAA,CAAC+xB,QAAQ,EAAKlyB,IAAI,EAAGipB,MAAiB,CAAC,CAAA;AAChD,KAAA;AACA,IAAA,OAAOA,MAAM,CAAA;AACf,GAAA;AAEF,CAAA;AAhIawG,QAAQ,CAEZ0C,YAAY,GAAG;AACpBpd,EAAAA,MAAM,EAAEpI,qBAAqB;EAC7BmD,SAAS,EAAEhD,qBAAe,CAA2H,4DAAA,EAAA,4DAAA,CAAA;AACvJ,CAAC;;;ACJH,MAAMmO,cAAc,gBAAG3a,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,2BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAEhC,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA;AAED,MAAM,CAACuM,QAAM,EAAEmlB,iBAAe,CAAC,GAAGpX,qBAAe,CAAC,aAAa,EAAC,aAAa,EAAE,aAAa,CAAC,CAAA;AAC7F,MAAMqX,iBAAe,GAAGvlB,qBAAe,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAA;AACrF,MAAMwlB,SAAO,GAAG,CAACD,iBAAe,EAACD,iBAAe,CAAC,CAAA;MAEpCG,SAAS,gBAAGjyB,0BAAM,CAACe,IAAA,IAAgH;EAA/G,IAAA;MAAC1B,QAAQ;MAAEiI,SAAS;AAAC4qB,MAAAA,cAAc,GAAGvlB,QAAM;MAAEmN,MAAM;AAAEqY,MAAAA,cAAc,GAAGH,SAAO;MAAEtC,aAAa;AAAEja,MAAAA,EAAAA;AAAU,KAAC,GAAA1U,IAAA,CAAA;AAALrB,IAAIC,4CAAA,CAAAoB,IAAA,EAAAnB,WAAA,EAAA;AACxI,EAAA,MAAM4U,eAAe,GAAG8G,oBAAe,CAAC5B,iBAAiB,CAAC,CAAA;AAE1D,EAAA,oBAAOvb,yBAAA,CAAA0B,aAAA,CAACuyB,eAAe,EAAA;AAACF,IAAAA,cAAc,EAAEA,cAAe;AAACpY,IAAAA,MAAM,EAAEA,MAAO;AAACxS,IAAAA,SAAS,EAAEA,SAAU;AAAC6qB,IAAAA,cAAc,EAAEA,cAAe;IAACzW,GAAG,EAAEjG,EAAE,GAAG,EAAG;AAACjB,IAAAA,eAAe,EAAEA,eAAgB;AAACnV,IAAAA,QAAQ,EAAEA,QAAAA;AAAS,GAAE,CAAC,CAAA;AACtM,CAAC,CAAC,CAAAa,UAAA,CAAA;EAAAC,WAAA,EAAA,WAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAE,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAEJ,MAAMgyB,eAAe,GAAG7wB,KAAA,IAAkF;EAAA,IAAjF;IAAClC,QAAQ;IAACmV,eAAe;IAAElN,SAAS;IAAEwS,MAAM;IAAEoY,cAAc;AAACC,IAAAA,cAAAA;AAAc,GAAC,GAAA5wB,KAAA,CAAA;AACnG,EAAA,MAAM8wB,UAAU,GAAGpO,YAAM,EAAE,CAAA;AAC3BzP,EAAAA,eAAe,CAAC6d,UAAU,EAACH,cAAc,EAACC,cAAc,EAAE;AAACrY,IAAAA,MAAAA;AAAM,GAAC,CAAC,CAAA;AAEnE,EAAA,oBAAO3b,yBAAA,CAAA0B,aAAA,CAAC8a,cAAc,EAAA;AAAC3U,IAAAA,GAAG,EAAEqsB,UAAW;AAAC/qB,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAC1D3F,oBAAc,CAACtC,QAAQ,CACV,CAAC,CAAA;AACnB,CAAC;;;;;AChBD,MAAMivB,uBAAqB,gBAAGtuB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,2CAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,sJAAA,EAAA,GAAA,EAAA,oXAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAUpCgI,WAAK,CAACkX,OAAO,CAAA9Z,iBAAA,KAAAA,iBAAA,GAAAC,0CAAA,CAAA,CAAA,mCAAA,CAAA,CAAA,CAAA,CAAA,EAGb2C,WAAK,CAACC,MAAM,CAAAC,kBAAA,KAAAA,kBAAA,GAAA7C,0CAAA,CAwBZ2C,CAAAA,oCAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,WAAK,CAACkX,OAAO,CAAA9W,kBAAA,KAAAA,kBAAA,GAAA/C,0CAAA,CAAA,CAAA,4DAAA,CAAA,CAAA,CAAA,CAAA,EAKb2C,WAAK,CAACC,MAAM,CAAA8hB,kBAAA,KAAAA,kBAAA,GAAA1kB,0CAAA,CAIf,CAAA,+CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAED,MAAM6sB,QAAQ,gBAAGtyB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,8BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,kKAAA,EAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EASvBgI,WAAK,CAACkX,OAAO,CAAAgL,gBAAA,KAAAA,gBAAA,GAAA7kB,0CAAA,CACC/G,CAAAA,oBAAAA,EAAAA,8BAAAA,CAAAA,CAAAA,CAAAA,EAAAA,KAAK,IAAI6zB,aAAI,CAAC7xB,cAAQ,CAAChC,KAAK,CAACuH,IAAI,CAAC,CAACvH,KAAK,CAAC,EAAC6b,iBAAW,CAAC7b,KAAK,CAAC2R,OAAO,EAAC,GAAG,CAAC,CAAC,GAGvFjI,WAAK,CAACC,MAAM,CAAAkiB,gBAAA,KAAAA,gBAAA,GAAA9kB,0CAAA,CAAA,CAAA,oBAAA,EAAA,OAAA,CAAA,CAAA,CAAA,EACE/G,KAAK,IAAI6zB,aAAI,CAAC7xB,cAAQ,CAAChC,KAAK,CAACuH,IAAI,CAAC,CAACvH,KAAK,CAAC,EAAC6b,iBAAW,CAAC7b,KAAK,CAAC2R,OAAO,EAAC,GAAG,CAAC,CAAC,CAEvF3R,EAAAA,KAAK,IAAIkH,UAAG,CAAA4kB,gBAAA,KAAAA,gBAAA,GAAA/kB,0CAAA,CAAA,CAAA,cAAA,EAAA,GAAA,CAAA,CAAA,CAAA,EAAe/E,cAAQ,CAAChC,KAAK,CAACuH,IAAI,CAAC,CAAG,CACrD,CAAA;AACD,MAAMusB,0BAA0B,gBAAGxyB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,gDAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,gMAAA,EAAA,EAAA,CAAA,EAUzC1B,KAAK,IAAIA,KAAK,CAAC8C,OAAO,IAAI,kBAAkB,CAC/C,CAAA;AACD,MAAMixB,iBAAiB,gBAAGzyB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,uCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAInC,CAAA,CAAA,CAAA,4DAAA,CAAA,CAAA,CAAA;AACD,MAAMsyB,mBAAmB,gBAAG1yB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,yCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAKlCgI,CAAAA,CAAAA,CAAAA,sEAAAA,EAAAA,EAAAA,CAAAA,EAAAA,WAAK,CAACC,MAAM,CAAAsiB,gBAAA,KAAAA,gBAAA,GAAAllB,0CAAA,CAGf,CAAA,oCAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,MAAMktB,uBAAuB,gBAAG3yB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,6CAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,iFAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAMtCL,IAAI,EACSrB,KAAK,IAAKA,KAAK,CAACuI,SAAS,GAAG,EAAE,GAAIvI,KAAK,CAACk0B,YAAY,IAAI,EAAI,CAE5E,CAAA;AACD,MAAMnJ,SAAS,gBAAGzpB,0BAAM,CAACD,IAAI,CAAC,CAAC2pB,KAAK,CAAC;AAACjrB,EAAAA,IAAI,EAAE,GAAA;AAAG,CAAC,CAAC,CAAAyB,UAAA,CAAA;EAAAC,WAAA,EAAA,+BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAiBhD,CAAA,CAAA,CAAA,kPAAA,CAAA,CAAA,CAAA;AACD,MAAMyyB,mBAAmB,gBAAG7yB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,yCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAOrC,CAAA,CAAA,CAAA,8GAAA,CAAA,CAAA,CAAA;AAEK,MAAA,CAAC0yB,qBAAqB,EAAEC,yBAAyB,EAACC,qBAAqB,CAAC,GAAGrL,uBAAkB,CAAC,EAAE,EAAC;AAEvG,MAAMsL,kBAAkB,GAAGA,CAACC,YAAY,EAACC,KAAK,KAC5ClxB,6BAAA,CAAWixB,YAAY,CAAC,GAAA9nB,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAChB8nB,EAAAA,EAAAA,YAAY,GAAIC,KAAK,CAAA,EAAA,EAAA,EAAA;EAAEvnB,IAAI,EAAEwnB,YAAM,EAAC;AAAC,CAAAhoB,CAAAA,GAAAA,eAAA,CAAAA,eAAA,CAAA;AACxCnF,EAAAA,IAAI,EAAC,SAAS;AAACsgB,EAAAA,OAAO,EAAC2M,YAAAA;AAAY,CAAA,EAAIC,KAAK,CAAA,EAAA,EAAA,EAAA;EAAEvnB,IAAI,EAAEwnB,YAAM,EAAC;AAAC,CAAC,CAAA,CAAA;AAE7D,MAAMC,uBAAuB,GAAGA,CAACH,YAAY,EAAClE,OAAO,EAAEsE,aAAa,KAAK;AAC9E,EAAA,MAAMC,GAAG,GAAGH,YAAM,EAAE,CAAA;EACpB,IAAII,YAAY,GAAG,CAAC,CAAC,CAAA;EACrB,IAAIC,SAAS,GAAG,KAAK,CAAA;EACrB,MAAM9G,KAAK,GAAGA,MAAM;IAClBxU,YAAY,CAACqb,YAAY,CAAC,CAAA;AAC1B,IAAA,IAAIC,SAAS,EAAE,OAAA;IACfT,qBAAqB,CAACU,iCAAA,CAAe,KAAK,EAAAA,iCAAA,CAAAC,WAAA,EAAI,CAAC;AAACJ,MAAAA,GAAAA;KAAI,CAAC,CAAC,CAAC,CAAA;AACvDE,IAAAA,SAAS,GAAG,IAAI,CAAA;IAChB9xB,oBAAc,CAAC2xB,aAAa,CAAC,CAAA;GAC9B,CAAA;AACD,EAAA,MAAMM,eAAe,GAAGX,kBAAkB,CAACC,YAAY,EAAC;IAACK,GAAG;AAAC5G,IAAAA,KAAAA;AAAK,GAAC,CAAC,CAAA;AACpEqG,EAAAA,qBAAqB,CAACa,2BAAA,CAASD,eAAe,CAAC,CAAC,CAAA;EAChD,IAAI5E,OAAO,GAAC,CAAC,EAAE;AACbwE,IAAAA,YAAY,GAAGliB,UAAU,CAACqb,KAAK,EAACqC,OAAO,CAAC,CAAA;AAC1C,GAAA;EACA,OAAO;IACLrC,KAAK;AACLmH,IAAAA,QAAQ,EAACA,CAACC,GAAG,EAAC/E,OAAO,KAAK;MACxB7W,YAAY,CAACqb,YAAY,CAAC,CAAA;MAC1B,IAAIxE,OAAO,GAAG,CAAC,EAAE;AACfwE,QAAAA,YAAY,GAAGliB,UAAU,CAACqb,KAAK,EAACqC,OAAO,CAAC,CAAA;AAC1C,OAAA;AACA,MAAA,MAAM4E,eAAe,GAAGX,kBAAkB,CAACc,GAAG,EAAC;QAACR,GAAG;AAAC5G,QAAAA,KAAAA;AAAK,OAAC,CAAC,CAAA;AAC3D,MAAA,IAAI8G,SAAS,EAAE;AACbA,QAAAA,SAAS,GAAG,KAAK,CAAA;AACjBT,QAAAA,qBAAqB,CAACa,2BAAA,CAASD,eAAe,CAAC,CAAC,CAAA;AAClD,OAAC,MAAM;AACLZ,QAAAA,qBAAqB,CAACgB,wBAAA,CAAM5S,CAAC,IAAIA,CAAC,CAACmS,GAAG,KAAKA,GAAG,GAAAnoB,eAAA,CAAAA,eAAA,KAAOwoB,eAAe,CAAA,EAAA,EAAA,EAAA;UAAEhoB,IAAI,EAAEwV,CAAC,CAACxV,IAAAA;SAAQwV,CAAAA,GAAAA,CAAC,CAAC,CAAC,CAAA;AAC3F,OAAA;AACF,KAAA;GACD,CAAA;AACH,EAAC;MACY6S,0BAA0B,GAAGA,CAACf,YAAY,EAAClE,OAAO,KAAK;AAClE,EAAA,MAAM/B,MAAM,GAAGhkB,cAAS,EAAE,CAAA;AAC1B,EAAA,MAAMirB,UAAU,GAAGlwB,aAAO,CAAC,MAAMkvB,YAAY,CAAC3M,OAAO,IAAI2M,YAAY,CAACvwB,OAAO,GAAG,EAAE,GAAGuwB,YAAY,EAAC,EAAE,CAAC,CAAA;EACrG,MAAMiB,IAAI,GAAGA,CAACjB,YAAY,EAAClE,OAAO,KAAKkE,YAAY,IAAIG,uBAAuB,CAACJ,kBAAkB,CAACC,YAAY,EAACgB,UAAU,CAAC,EAAClF,OAAO,EAAC,MAAM/B,MAAM,CAACN,KAAK,EAAE,CAAC,CAAA;AACxJ3H,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAIkO,YAAY,CAAC3M,OAAO,IAAI2M,YAAY,CAACvwB,OAAO,EAAE;AAChDsqB,MAAAA,MAAM,CAAC6G,QAAQ,CAACK,IAAI,CAACjB,YAAY,CAAC,CAAC,CAAA;AACrC,KAAA;GACD,EAAC,EAAE,CAAC,CAAA;EAEL,OAAOlvB,aAAO,CAAC,OAAO;AACpB2oB,IAAAA,KAAK,EAAEA,MAAA;AAAA,MAAA,IAAAyH,WAAA,CAAA;AAAA,MAAA,OAAA,CAAAA,WAAA,GAAMnH,MAAM,CAACvd,GAAG,EAAE,MAAA0kB,IAAAA,IAAAA,WAAA,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAczH,KAAK,EAAE,CAAA;AAAA,KAAA;AAClCmH,IAAAA,QAAQ,EAAEA,CAACZ,YAAY,EAAClE,OAAO,KAAK/B,MAAM,CAACvd,GAAG,EAAE,GAAGud,MAAM,CAACvd,GAAG,EAAE,CAACokB,QAAQ,CAACb,kBAAkB,CAACC,YAAY,EAACgB,UAAU,CAAC,EAAClF,OAAO,CAAC,GAAG/B,MAAM,CAAC6G,QAAQ,CAACK,IAAI,CAACjB,YAAY,EAAClE,OAAO,CAAC,CAAC;AAC3K7B,IAAAA,IAAI,EAAEA,MAAMF,MAAM,CAACvd,GAAG,EAAE,GAAGud,MAAM,CAACvd,GAAG,EAAE,CAACokB,QAAQ,CAACb,kBAAkB,CAACC,YAAY,EAACgB,UAAU,CAAC,EAAClF,OAAO,CAAC,GAAG/B,MAAM,CAAC6G,QAAQ,CAACK,IAAI,CAACjB,YAAY,EAAClE,OAAO,CAAC,CAAA;AACpJ,GAAC,CAAC,EAAC,CAAC/B,MAAM,CAAC9jB,MAAM,CAAC,CAAC,CAAA;AACrB,EAAC;AACM,MAAMkrB,yBAAyB,GAAIzF,GAAG,IAAK,MAAM0F,qBAAqB,CAAC1F,GAAG,EAAC;AAElF,MAAM2F,iBAAiB,GAAG,GAAG,CAAA;AAC7B,MAAMC,YAAY,GAAG,mCAAmC,CAAA;AACxD,MAAMC,YAAY,MAAArnB,MAAA,CAAMmnB,iBAAiB,EAAAnnB,KAAAA,CAAAA,CAAAA,MAAA,CAAMonB,YAAY,CAAE,CAAA;AAE7D,MAAMhlB,WAAS,GAAGhD,qBAAe,CAC/B,uCAAuC,EACvC,6CAA6C,EAC7C,0CACF,CAAC,CAAA;AACD,MAAMkoB,+BAA+B,GAAGhzB,CAAC,IAAIA,CAAC,CAACoJ,KAAK,CAACC,QAAQ,GAAC,EAAE,CAAA;AACnD4pB,MAAAA,kBAAkB,GAAGA,MAAM;EACtC,MAAM,CAACC,aAAa,EAACC,gBAAgB,CAAC,GAAG/B,qBAAqB,EAAE,CAAA;AAChE,EAAA,MAAMgC,YAAY,GAAG7Q,YAAM,CAAC,IAAI,CAAC,CAAA;EACjC,MAAM;IAAC8Q,SAAS;AAAEC,IAAAA,WAAAA;AAAW,GAAC,GAAGC,iCAAiC,CAACH,YAAY,CAAC,CAAA;AAEhF,EAAA,oBAAQ32B,yBAAA,CAAA0B,aAAA,CAAC4mB,SAAI,EAAA;AAACjI,IAAAA,IAAI,EAAC,eAAA;AAAe,GAAA,eAChCrgB,yBAAA,CAAA0B,aAAA,CAACyuB,uBAAqB,EAAA;AAACtoB,IAAAA,GAAG,EAAE8uB,YAAa;AAACxtB,IAAAA,SAAS,EAAC,mBAAA;AAAmB,GAAA,eACrEnJ,yBAAA,CAAA0B,aAAA,CAACsvB,QAAQ,EAAA;AAAC3f,IAAAA,SAAS,EAAEA,WAAU;AAACiF,IAAAA,MAAM,EAAEggB,YAAa;AAAC3D,IAAAA,UAAU,EAAE4D,+BAAgC;IAAC/E,eAAe,EAAA,IAAA;IAACkB,gBAAgB,EAAA,IAAA;AAAA,GAAA,EAE/H+D,aAAa,CAAC/oB,GAAG,CAACqnB,YAAY,IAAI;IAClC,MAAMgC,aAAa,GAAGA,MAAM;AAC1BH,MAAAA,SAAS,EAAE,CAAA;MACX7B,YAAY,CAACvG,KAAK,EAAE,CAAA;AAClBrb,MAAAA,UAAU,CAAC0jB,WAAW,EAAET,iBAAiB,CAAC,CAAA;KAC7C,CAAA;AAED,IAAA,OACE5yB,oBAAc,CAACuxB,YAAY,CAACvwB,OAAO,EAACuyB,aAAa,CAAC,iBAClD/2B,yBAAA,CAAA0B,aAAA,CAACyyB,QAAQ,EAAA;AACP5W,MAAAA,GAAG,WAAAtO,MAAA,CAAW8lB,YAAY,CAACK,GAAG,CAAG;MACjCttB,IAAI,EAAEitB,YAAY,CAACjtB,IAAK;MACxBzE,OAAO,EAAE0xB,YAAY,CAAC1xB,OAAQ;MAC9B6O,OAAO,EAAE6iB,YAAY,CAAC7iB,OAAAA;KAErB6iB,EAAAA,YAAY,CAAC3Q,KAAK,gBACjBpkB,yBAAA,CAAA0B,aAAA,CAAC2yB,0BAA0B,EAAA;AAAChxB,MAAAA,OAAO,EAAE0xB,YAAY,CAACiC,YAAY,GAAIzzB,CAAC,IAAKwxB,YAAY,CAACiC,YAAY,CAACzzB,CAAC,EAACwzB,aAAa,CAAC,GAAG5qB,SAAAA;AAAU,KAAA,eAC7HnM,yBAAA,CAAA0B,aAAA,CAAC4yB,iBAAiB,EAAA,IAAA,EAAES,YAAY,CAAC3Q,KAAyB,CAAC,EAC1D2Q,YAAY,CAACkC,QAAQ,iBAAIj3B,yBAAA,CAAA0B,aAAA,CAAC4pB,SAAS,EAAA;MAACjoB,OAAO,EAAE6zB,oBAAc,CAACH,aAAa,CAAA;KAAG,CACnD,CAAC,GAE7BhC,YAAY,CAACkC,QAAQ,iBAAIj3B,yBAAA,CAAA0B,aAAA,CAAC4pB,SAAS,EAAA;AAACjoB,MAAAA,OAAO,EAAE0zB,aAAAA;AAAc,KAAC,CAAC,eAE/D/2B,yBAAA,CAAA0B,aAAA,CAACoyB,SAAS,EAAA;MAACxc,EAAE,EAAEyd,YAAY,CAACtnB,IAAAA;AAAK,KAAA,eAC/BzN,yBAAA,CAAA0B,aAAA,CAAC6yB,mBAAmB,EACjBQ,IAAAA,EAAAA,YAAY,CAACz0B,IAAI,iBAChBN,yBAAA,CAAA0B,aAAA,CAAC8yB,uBAAuB,EAAA;MACtB1rB,SAAS,EAAEisB,YAAY,CAACjsB,SAAU;MAClC2rB,YAAY,EAAEM,YAAY,CAACN,YAAAA;AAAa,KAAA,eAExCz0B,yBAAA,CAAA0B,aAAA,CAACE,IAAI,EAAA;MAACtB,IAAI,EAAEy0B,YAAY,CAACz0B,IAAAA;KAAM,CAAC,EAC/By0B,YAAY,CAACjsB,SAAS,iBAAI9I,yBAAA,CAAA0B,aAAA,CAACU,OAAO,EAAA;AAACK,MAAAA,IAAI,EAAE,EAAG;MAACH,KAAK,EAAA,IAAA;MAACI,QAAQ,EAAA,IAAA;AAAA,KAAC,CACtC,CAAC,eAE5B1C,yBAAA,CAAA0B,aAAA,CAAAy1B,UAAA,EAA0B3zB,IAAAA,EAAAA,oBAAc,CAACuxB,YAAY,CAAC3M,OAAO,EAAC2O,aAAa,CAAO,CAC/D,CAAC,EACrBhC,YAAY,CAACqC,OAAO,iBACnBp3B,yBAAA,CAAA0B,aAAA,CAACgzB,mBAAmB,EAAA;MAACrxB,OAAO,EAAE6zB,oBAAc,EAAC;AAAE,KAAA,EAC5CnC,YAAY,CAACqC,OACK,CAEd,CACH,CAAC,CAAA;GAEd,CAEO,CACW,CACnB,CAAC,CAAA;AACT,EAAC;AAED,MAAMN,iCAAiC,GAAIH,YAAY,IAAK;AAC1D,EAAA,MAAMU,YAAY,GAAGvR,YAAM,CAAC,CAAC,CAAC,CAAA;AAC9B,EAAA,MAAMwR,YAAY,GAAGxR,YAAM,CAAC,IAAI,CAAC,CAAA;EAEjC,MAAM8Q,SAAS,GAAGA,MAAM;AACtB,IAAA,MAAM3f,EAAE,GAAG0f,YAAY,CAAC7d,OAAO,CAAA;IAC/B,IAAI,CAAC7B,EAAE,EAAE,OAAA;AACT,IAAA,IAAIogB,YAAY,CAACve,OAAO,KAAK,CAAC,EAAE;AAC9Bwe,MAAAA,YAAY,CAACxe,OAAO,GAAG7B,EAAE,CAACtK,KAAK,CAACI,KAAK,CAAA;MACrC,MAAMwqB,QAAQ,GAAGtgB,EAAE,CAAC5K,qBAAqB,EAAE,CAACU,KAAK,CAAA;AACjDkK,MAAAA,EAAE,CAACtK,KAAK,CAACI,KAAK,GAAGwqB,QAAQ,GAAG,IAAI,CAAA;AAClC,KAAA;AACAF,IAAAA,YAAY,CAACve,OAAO,GAAGue,YAAY,CAACve,OAAO,GAAG,CAAC,CAAA;GAChD,CAAA;EAED,MAAM+d,WAAW,GAAGA,MAAM;AACxB,IAAA,MAAM5f,EAAE,GAAG0f,YAAY,CAAC7d,OAAO,CAAA;IAC/B,IAAI,CAAC7B,EAAE,EAAE,OAAA;AACT,IAAA,MAAM8D,IAAI,GAAG1F,IAAI,CAACjL,GAAG,CAAC,CAAC,EAAEitB,YAAY,CAACve,OAAO,GAAG,CAAC,CAAC,CAAA;IAClDue,YAAY,CAACve,OAAO,GAAGiC,IAAI,CAAA;IAC3B,IAAIA,IAAI,KAAK,CAAC,EAAE;MACd9D,EAAE,CAACtK,KAAK,CAACI,KAAK,GAAGuqB,YAAY,CAACxe,OAAO,IAAI,EAAE,CAAA;MAC3Cwe,YAAY,CAACxe,OAAO,GAAG,IAAI,CAAA;AAC7B,KAAA;GACD,CAAA;EAED,OAAO;IAAC8d,SAAS;AAAEC,IAAAA,WAAAA;GAAY,CAAA;AACjC,CAAC,CAAA;AAAA,IAAAM,UAAA,gBAAAt1B,0BAAA,CAAA,KAAA,CAAA,CAAAE,UAAA,CAAA;EAAAC,WAAA,EAAA,gCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAA;;;;;;MC/RYu1B,sBAAsB,gBAAG31B,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,iDAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,QAAA,EAAA,6FAAA,CAAA,EACrCM,cAAQ,CAAC,SAAS,CAAC,EAU7B;MAEYk1B,6BAA6B,gBAAG51B,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,wDAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAItD,CAAA,CAAA,CAAA,iDAAA,CAAA,EAAA;AACM,MAAMy1B,0BAA0B,gBAAG71B,0BAAM,CAACD,IAAI,CAAC,CAAAG,UAAA,CAAA;EAAAC,WAAA,EAAA,qDAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAOtC1B,CAAAA,CAAAA,CAAAA,0GAAAA,EAAAA,mCAAAA,EAAAA,EAAAA,CAAAA,EAAAA,KAAK,IAAIwJ,uBAAc,CAAC,IAAI,EAAExH,cAAQ,CAAC,SAAS,CAAC,CAAChC,KAAK,CAAC,CAAC,EAGrEA,KAAK,IAAIA,KAAK,CAACD,IAAI,KAAK,SAAS,IAAA,iBAAqB,EACzD;MACYq3B,6BAA6B,gBAAG91B,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,wDAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAInD0F,CAAAA,CAAAA,CAAAA,2DAAAA,EAAAA,gBAAAA,EAAAA,KAAAA,EAAAA,oCAAAA,EAAAA,EAAAA,CAAAA,EAAAA,MAAM,EAGNA,MAAM,EAAMA,MAAM,EAIlBsC,WAAK,CAACG,GAAG,CAAC,GAAG,CAAC,CAAA/C,iBAAA,KAAAA,iBAAA,GAAAC,0CAAA,CAAA,CAAA,6BAAA,EAAA,qCAAA,EAAA,KAAA,EAAA,kEAAA,CAAA,CAAA,CAAA,EAEZK,MAAM,EAGNA,MAAM,EAAMA,MAAM,CAKvB,EAAA;AACM,MAAMiwB,+BAA+B,gBAAG/1B,0BAAM,CAACD,IAAI,CAAC,CAAC2pB,KAAK,CAAC;AAACjrB,EAAAA,IAAI,EAAE,GAAA;AAAG,CAAC,CAAC,CAAAyB,UAAA,CAAA;EAAAC,WAAA,EAAA,0DAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,yKAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,IAAA,CAAA,EAYjE1B,KAAK,IAAIA,KAAK,CAACuH,IAAI,IAAIvH,KAAK,CAACuH,IAAI,KAAI,MAAM,GAAGvF,cAAQ,CAAChC,KAAK,CAACuH,IAAI,CAAC,CAACvH,KAAK,CAAC,GAAGqJ,eAAM,CAAC,GAAG,EAAErH,cAAQ,CAAC,MAAM,CAAC,CAAChC,KAAK,CAAC,CAAC,EAC3GA,KAAK,IAAIwJ,uBAAc,CAAC,IAAI,EAAExH,cAAQ,CAAChC,KAAK,CAACuH,IAAI,IAAI,MAAM,CAAC,CAACvH,KAAK,CAAC,CAAC,EAElEA,KAAK,IAAIwJ,uBAAc,CAAC,IAAI,EAAExH,cAAQ,CAAChC,KAAK,CAACuH,IAAI,IAAI,MAAM,CAAC,CAACvH,KAAK,CAAC,CAAC,EAGpEA,KAAK,IAAIwJ,uBAAc,CAAC,IAAI,EAAExH,cAAQ,CAAChC,KAAK,CAACuH,IAAI,IAAI,MAAM,CAAC,CAACvH,KAAK,CAAC,CAAC,EAErF;AAGH,MAAM,CAACs3B,gBAAgB,GAAGnB,gBAAgB,CAAC,GAAGlN,uBAAkB,CAAC,EAAE,CAAC,CAAA;AAEvDsO,MAAAA,0BAA0B,GAAI/C,YAAY,IAAK;EAC1D,MAAMgD,eAAe,GAAA9qB,eAAA,CAAA;AAAI+qB,IAAAA,QAAQ,EAAC,CAAC;AAAClwB,IAAAA,IAAI,EAAC,SAAA;AAAS,GAAA,EAAKhE,6BAAA,CAAWixB,YAAY,CAAC,GAAGA,YAAY,GAAG;AAAC3M,IAAAA,OAAO,EAAC2M,YAAAA;AAAY,GAAC,CAAE,CAAA;EAEzH2B,gBAAgB,CAACuB,IAAI,IAAI;AACvB,IAAA,MAAMC,SAAS,GAAGD,IAAI,CAACE,SAAS,CAAClV,CAAC,IAAIA,CAAC,CAAC+U,QAAQ,GAAGD,eAAe,CAACC,QAAQ,CAAC,CAAA;AAC5E,IAAA,OAAOE,SAAS,GAAG,CAAC,GAChB,CAAC,GAAGD,IAAI,EAACF,eAAe,CAAC,GACzB,CAAC,GAAGE,IAAI,CAACroB,KAAK,CAAC,CAAC,EAACsoB,SAAS,CAAC,EAACH,eAAe,EAAC,GAAGE,IAAI,CAACroB,KAAK,CAACsoB,SAAS,CAAC,CAAC,CAAA;AAC3E,GAAC,CAAC,CAAA;EACF,OAAO,MAAMxB,gBAAgB,CAACvL,4BAAA,CAAU,CAAC4M,eAAe,CAAC,CAAC,CAAC,CAAA;AAC7D,EAAC;AAGD,MAAM1mB,WAAS,GAAGhD,qBAAe,CAAC,wCAAwC,EAAE,kCAAkC,CAAC,CAAA;AAE/G,MAAM8hB,qBAAqB,gBAAGtuB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,gDAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAMvC,CAAA,CAAA,CAAA,mDAAA,CAAA,CAAA,CAAA;AAED,MAAMmuB,YAAY,gBAAGvuB,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,uCAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,aAAA,EAAA,wCAAA,CAAA,EACf1B,KAAK,IAAIwJ,uBAAc,CAAC,GAAG,EAAExH,cAAQ,CAAChC,KAAK,CAACuH,IAAI,CAAC,CAACvH,KAAK,CAAC,CAAC,CAGxE,CAAA;AACD,MAAM63B,mBAAmB,gBAAGv2B,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,8CAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,8BAAA,EAAA,gKAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAEtB1B,KAAK,IAAIA,KAAK,CAAC+K,SAAS,IAAI,QAAQ,EAOhDrB,WAAK,CAACC,MAAM,CAAAC,kBAAA,KAAAA,kBAAA,GAAA7C,0CAAA,CAAA,CAAA,oBAAA,EAAA,OAAA,CAAA,CAAA,CAAA,EACE/G,KAAK,IAAIA,KAAK,CAAC+K,SAAS,IAAI,MAAM,CAEhD+sB,EAAAA,kBAAY,CAAAhuB,kBAAA,KAAAA,kBAAA,GAAA/C,0CAAA,CAGf,CAAA,0BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACK,MAAA,CAACgxB,kCAAkC,GAAEC,2BAA2B,CAAC,GAAG/O,uBAAkB,CAAC,KAAK,EAAC;AAEtFgP,MAAAA,uBAAuB,GAAGA,MAAM;EAC3C,MAAM,CAAC/B,aAAa,EAACC,gBAAgB,CAAC,GAAGmB,gBAAgB,EAAE,CAAA;AAC3D,EAAA,MAAM,CAACY,QAAQ,CAAC,GAAGH,kCAAkC,EAAE,CAAA;AAEvD,EAAA,IAAI,CAAC7B,aAAa,CAACvqB,MAAM,IAAIusB,QAAQ,EAAE;AACrC,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EACA,MAAMC,YAAY,GAAIn1B,CAAC,IAAK;IAC1BmzB,gBAAgB,CAAEuB,IAAI,IAAKA,IAAI,CAACroB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;GAC1C,CAAA;AAED,EAAA,MAAA+oB,eAAA,GAAiDlC,aAAa,CAAC,CAAC,CAAC;AAA3D,IAAA;MAACrO,OAAO;MAACtgB,IAAI;AAACwD,MAAAA,SAAAA;AAAyB,KAAC,GAAAqtB,eAAA;AAAb5D,IAAAA,YAAY,GAAAvzB,4CAAA,CAAAm3B,eAAA,EAAAl3B,WAAA,CAAA,CAAA;AAE7C,EAAA,oBAAOzB,yBAAA,CAAA0B,aAAA,CAAC4mB,SAAI,EAAA;AAACjI,IAAAA,IAAI,EAAC,yBAAA;AAAyB,GAAA,eACzCrgB,yBAAA,CAAA0B,aAAA,CAACqvB,gBAAgB,EAAA;AAACjpB,IAAAA,IAAI,EAAEA,IAAK;AAACwD,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAChD8c,OAAO,GACJ5kB,oBAAc,CAAC4kB,OAAO,EAACsQ,YAAY,CAAC,gBACpC14B,yBAAA,CAAA0B,aAAA,CAACk3B,mBAAmB,EAAA31B,4BAAA,CAAA;AAAC6E,IAAAA,IAAI,EAAEA,IAAK;AAAC+wB,IAAAA,QAAQ,EAAEH,YAAAA;AAAa,GAAA,EAAK3D,YAAY,CAAG,CAEhE,CACd,CAAC,CAAA;AACT,EAAC;AAED,MAAM6D,mBAAmB,GAAGh2B,IAAA,IAAkE;EAAA,IAAjE;IAACkF,IAAI;IAAEsc,KAAK;IAACX,IAAI;IAACqV,OAAO;IAAEx4B,IAAI;IAAEy4B,SAAS;IAACF,QAAQ;AAACzL,IAAAA,OAAAA;AAAO,GAAC,GAAAxqB,IAAA,CAAA;EACvF,oBAAQ5C,yBAAA,CAAA0B,aAAA,CAAC81B,sBAAsB,qBAC7Bx3B,yBAAA,CAAA0B,aAAA,CAAC+1B,6BAA6B,EAAA,IAAA,EAC1B30B,6BAAA,CAAWxC,IAAI,CAAC,IAAI,CAACA,IAAI,gBAAIN,yBAAA,CAAA0B,aAAA,CAACg2B,0BAA0B,EAAA;IAACp3B,IAAI,EAAEA,IAAI,IAAIwH,IAAAA;AAAK,GAAC,CAAC,GAAGxH,IAAI,eACvFN,yBAAA,CAAA0B,aAAA,CAAA,KAAA,EAAA,IAAA,eACE1B,yBAAA,CAAA0B,aAAA,CAAK0iB,IAAAA,EAAAA,IAAAA,EAAAA,KAAU,CAAC,EACfX,IACE,CACwB,CAAC,EAE9BqV,OAAO,iBACP94B,yBAAA,CAAA0B,aAAA,CAACi2B,6BAA6B,EAC3BmB,IAAAA,EAAAA,OAC4B,CAAC,EAEjC,CAACC,SAAS,iBAAI/4B,yBAAA,CAAA0B,aAAA,CAACk2B,+BAA+B,EAAA;AAAC9vB,IAAAA,IAAI,EAAC,SAAS;AAACzE,IAAAA,OAAO,EAAE21B,yBAAA,CAAO,CAACH,QAAQ,EAACzL,OAAO,CAAC,CAAA;AAAE,GAAC,CAC9E,CAAC,CAAA;AAC3B,CAAC,CAAA;AAED,MAAM2D,gBAAgB,GAAIxwB,KAAK,IAAK;AAClC,EAAA,MAAMsH,GAAG,GAAGie,YAAM,EAAE,CAAA;AACpB9J,EAAAA,gBAAgB,CAACnU,GAAG,EAACwJ,WAAS,CAAC,CAAA;AAC/B,EAAA,oBAAOrR,yBAAA,CAAA0B,aAAA,CAACyuB,qBAAqB,EAAA;AAAChnB,IAAAA,SAAS,EAAC,sBAAsB;AAACtB,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,eACtE7H,yBAAA,CAAA0B,aAAA,CAAC02B,mBAAmB,EAAA;IAAC9sB,SAAS,EAAE/K,KAAK,CAAC+K,SAAAA;AAAU,GAAA,eAACtL,yBAAA,CAAA0B,aAAA,CAAC0uB,YAAY,EAAAntB,4BAAA,CAAA;AAAC4nB,IAAAA,EAAE,EAAC,uBAAA;AAAuB,GAAA,EAAKtqB,KAAK,CAAE,CAAsB,CACtG,CAAC,CAAA;AAC1B,CAAC;;AC9KD,MAAM04B,WAAW,gBAAGp3B,0BAAM,CAACq3B,IAAI,CAAAn3B,UAAA,CAAA;EAAAC,WAAA,EAAA,6BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAK9B,CAAA,CAAA,CAAA,sDAAA,CAAA,CAAA,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMk3B,kBAAkB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;AACtD,MAAMC,gBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;AACpD,MAAMC,mBAAmB,GAAG;AAAC9sB,EAAAA,IAAI,EAAE,GAAG;AAAE2W,EAAAA,KAAK,EAAE,IAAI;AAAE5W,EAAAA,GAAG,EAAE,GAAG;AAAEyc,EAAAA,MAAM,EAAE,IAAA;AAAI,CAAC,CAAA;AAE5E,MAAMuQ,kBAAkB,GAAG;AAAC/sB,EAAAA,IAAI,EAAC,CAAC;AAACD,EAAAA,GAAG,EAAC,CAAC;AAAC4W,EAAAA,KAAK,EAAC,CAAC;AAAC6F,EAAAA,MAAM,EAAC,CAAA;AAAC,CAAC,CAAA;MAC7CwQ,mBAAmB,GAAGA,CAAChc,GAAG,EAAC2N,KAAK,KAAK;AAChDoO,EAAAA,kBAAkB,CAAC/b,GAAG,CAAC,IAAI2N,KAAK,CAAA;AAChC,EAAA,OAAO,MAAMoO,kBAAkB,CAAC/b,GAAG,CAAC,IAAI2N,KAAK,CAAA;AAC/C,EAAC;AAED,SAASsO,WAAWA,CAACC,MAAM,EAAEC,MAAM,EAAEtvB,GAAG,EAAEuvB,UAAU,EAAEC,QAAQ,EAAEC,iBAAiB,EAAEC,aAAa,EAAEC,WAAW,EAAEC,OAAO,EAAEC,WAAW,EAAE;AAEnI;AACA,EAAA,MAAMC,UAAU,GAAGP,UAAU,IAAIK,OAAO,CAAC3qB,OAAO,CAACwqB,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;AACxE;AACA,EAAA,MAAMM,QAAQ,GAAG,EAAEP,QAAQ,IAAII,OAAO,CAAC3qB,OAAO,CAACyqB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAEnE,EAAA,MAAMM,gBAAgB,GAAGH,WAAW,KAAK,KAAK,CAAA;AAC9C,EAAA,MAAMI,UAAU,GAAGD,gBAAgB,GAAId,kBAAkB,CAACU,OAAO,CAAC,CAAC,CAAC,CAAC,GAAGC,WAAW,GAAIK,MAAM,CAACC,gBAAgB,CAAA;AAC9G,EAAA,MAAMC,UAAU,GAAGJ,gBAAgB,GAAId,kBAAkB,CAACU,OAAO,CAAC,CAAC,CAAC,CAAC,GAAGC,WAAW,GAAI,CAAC,CAAA;AACxF,EAAA,MAAMQ,WAAW,GAAGplB,IAAI,CAACjL,GAAG,CAACiwB,UAAU,EAAEZ,MAAM,GAAGU,QAAQ,GAAGD,UAAU,GAAGR,MAAM,CAAC,CAAA;AAEjF,EAAA,MAAMgB,SAAS,GAAGrlB,IAAI,CAACjL,GAAG,CAAC,CAACqwB,WAAW,EAAEA,WAAW,GAAGb,QAAQ,GAAGxvB,GAAG,GAAGowB,UAAU,CAAC,CAAA;AACnF,EAAA,IAAIE,SAAS,GAAG,CAAC,IAAIX,WAAW,KAAK,MAAM,EAAE;IAC3C,IAAIA,WAAW,CAAC1qB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACpC,MAAA,MAAMsrB,eAAe,GAAGnB,WAAW,CAACC,MAAM,EAAE,CAACC,MAAM,EAAEtvB,GAAG,EAAEuvB,UAAU,EAAEC,QAAQ,EAAEC,iBAAiB,EAAEC,aAAa,EAAEC,WAAW,CAAC1qB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,MAAM,EAAE2qB,OAAO,CAACpqB,KAAK,EAAE,CAACf,OAAO,EAAE,EAAEorB,WAAW,CAAC,CAAA;MAC3M,MAAMW,gBAAgB,GAAGvlB,IAAI,CAACjL,GAAG,CAAC,CAACuwB,eAAe,CAAC,CAAC,CAAC,EAAEA,eAAe,CAAC,CAAC,CAAC,GAAGf,QAAQ,GAAGxvB,GAAG,CAAC,CAAA;AAC3F,MAAA,IAAKswB,SAAS,GAAG,CAAC,IAAIE,gBAAgB,GAAG,CAAC,IAAKD,eAAe,CAAC,CAAC,CAAC,GAAGN,UAAU,EAAG;QAC/E,OAAOb,WAAW,CAACC,MAAM,EAAEC,MAAM,EAAEtvB,GAAG,EAAEuvB,UAAU,EAAEC,QAAQ,EAAEC,iBAAiB,EAAEC,aAAa,EAAE,KAAK,EAAEE,OAAO,EAAEC,WAAW,CAAC,CAAA;AAC9H,OAAA;MACA,OAAOS,SAAS,GAAGE,gBAAgB,GAAG,CAACH,WAAW,EAAE,MAAM,CAAC,GAAG,CAACE,eAAe,CAAC,CAAC,CAAC,EAAEA,eAAe,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC,CAAA;AACvI,KAAC,MAAM;AACL,MAAA,MAAME,QAAQ,GAAGT,gBAAgB,GAAGC,UAAU,GAAG,CAAC,CAAA;MAClD,MAAMS,cAAc,GAAGzlB,IAAI,CAACjL,GAAG,CAACywB,QAAQ,EAAExlB,IAAI,CAACgJ,GAAG,CAACoc,WAAW,EAAErwB,GAAG,GAAGwvB,QAAQ,GAAGY,UAAU,CAAC,CAAC,CAAA;MAC7F,OAAO,CAACM,cAAc,EAAEA,cAAc,KAAKL,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC,CAAA;AAC1E,KAAA;AACF,GAAC,MAAM;AACL,IAAA,OAAO,CAACA,WAAW,EAAE,MAAM,CAAC,CAAA;AAC9B,GAAA;AACF,CAAA;AAEA,MAAMM,WAAW,GAAG;AAClBzuB,EAAAA,GAAG,EAAE,oCAAoC;AACzC4W,EAAAA,KAAK,EAAE,mCAAmC;AAC1C6F,EAAAA,MAAM,EAAE,kCAAkC;AAC1Cxc,EAAAA,IAAI,EAAE,mCAAA;AACR,CAAC,CAAA;AAED,MAAMyuB,SAAS,GAAGA,CAACpuB,QAAQ,EAAE8sB,MAAM,KAAK,CAAC9sB,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAGA,QAAQ,KAAK,OAAO,GAAG,KAAK,GAAG8sB,MAAM,IAAI,GAAG,IACjH9sB,QAAQ,KAAK,KAAK,GAAG,MAAM,GAAGA,QAAQ,KAAK,QAAQ,GAAG,KAAK,GAAG8sB,MAAM,CAAC,CAAA;AAExE,MAAMuB,kBAAkB,GAAG,EAAE,CAAA;MAEhBC,YAAY,gBAAGr5B,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,8BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,gDAAA,EAAA,YAAA,EAAA,8EAAA,EAAA,GAAA,CAAA,EAG3Bg5B,kBAAkB,EACjBA,kBAAkB,EAIdF,WAAW,CAAChS,MAAM,EACjC;AAEM,MAAMoS,cAAc,GAAGA,CAC5B32B,OAAO,EAAA5B,IAAA,EAsBPw4B,WAAW,KACR;EAAA,IAtBH;AACEC,IAAAA,EAAE,GAAG,WAAW;AAChB3B,IAAAA,MAAM,GAAG,KAAK;AAAE;AAChB4B,IAAAA,EAAE,GAAG,cAAc;AACnBvB,IAAAA,WAAW,GAAG,WAAW;IACzBwB,KAAK;AACLC,IAAAA,YAAY,GAAG,EAAE;IACjBC,IAAI;AACJC,IAAAA,SAAS,GAAG,IAAI;IAChBhb,KAAK;AACLqI,IAAAA,MAAM,EAAE4S,QAAQ;AAChBpvB,IAAAA,IAAI,EAAEqvB,MAAM;AACZ1Y,IAAAA,KAAK,EAAE2Y,OAAO;AACdvvB,IAAAA,GAAG,EAAEwvB,KAAK;AACVC,IAAAA,SAAS,GAAG,IAAI;AAChB9B,IAAAA,WAAW,GAAG,CAAC;IACf+B,aAAa;IACbC,mBAAmB;IACnB3kB,EAAE;AACF4kB,IAAAA,aAAAA;AACF,GAAC,GAAAt5B,IAAA,CAAA;AAGD,EAAA,MAAM4yB,WAAW,GAAG1P,YAAM,EAAE,CAAA;AAC5B,EAAA,MAAMqW,QAAQ,GAAGtf,iBAAY,CAACue,WAAW,CAAC,CAAA;EAC1C,MAAM,CAACgB,YAAY,EAAEC,eAAe,CAAC,GAAGpR,cAAQ,EAAE,CAAA;AAElD,EAAA,MAAMqR,WAAW,GAAG,YAAa;IAAA,IAAAC,gBAAA,EAAAC,oBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,CAAA;AAAA,IAAA,IAAZC,KAAK,GAAAz8B,SAAA,CAAA+L,MAAA,GAAA,CAAA,IAAA/L,SAAA,CAAA,CAAA,CAAA,KAAAgM,SAAA,GAAAhM,SAAA,CAAA,CAAA,CAAA,GAAC,CAAC,CAAA;IAC1B,IAAIy8B,KAAK,GAAC,EAAE,EAAE;AAAE,MAAA,OAAA;AAAO,KAAA;IACvB,IAAI,EAAA,CAAAL,gBAAA,GAAC/3B,OAAO,CAACsU,OAAO,MAAA,IAAA,IAAAyjB,gBAAA,KAAfA,KAAAA,CAAAA,IAAAA,gBAAA,CAAiB5vB,KAAK,CAAA,IAAI,EAAE,CAAA6vB,oBAAA,GAAAhH,WAAW,CAAC1c,OAAO,MAAA,IAAA,IAAA0jB,oBAAA,KAAA,KAAA,CAAA,IAAnBA,oBAAA,CAAqBpwB,YAAY,KAAAqwB,qBAAA,GAAIjH,WAAW,CAAC1c,OAAO,MAAA2jB,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,IAAAA,CAAAA,qBAAA,GAAnBA,qBAAA,CAAqB5wB,UAAU,MAAA4wB,IAAAA,IAAAA,qBAAA,eAA/BA,qBAAA,CAAiCrwB,YAAY,CAAC,EAAE;MACpH+G,UAAU,CAAC,MAAImpB,WAAW,CAACM,KAAK,GAAC,CAAC,CAAC,EAAC,GAAG,CAAC,CAAA;AACxC,MAAA,OAAA;AACF,KAAA;AACA,IAAA,IAAIb,SAAS,EAAE;AACbv3B,MAAAA,OAAO,CAACsU,OAAO,CAACnM,KAAK,CAACI,KAAK,GAAG,EAAE,CAAA;AAClC,KAAC,MAAM;AACLvI,MAAAA,OAAO,CAACsU,OAAO,CAACnM,KAAK,CAACkwB,QAAQ,GAAG,EAAE,CAAA;AACrC,KAAA;AACA,IAAA,MAAMC,uBAAuB,GAAI,CAAAJ,CAAAA,qBAAA,GAAAlH,WAAW,CAAC1c,OAAO,MAAA,IAAA,IAAA4jB,qBAAA,KAAnBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAqBtwB,YAAY,OAAAuwB,qBAAA,GAAInH,WAAW,CAAC1c,OAAO,MAAA,IAAA,IAAA6jB,qBAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,qBAAA,GAAnBA,qBAAA,CAAqB9wB,UAAU,cAAA8wB,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA/BA,qBAAA,CAAiCvwB,YAAY,CAAC,CAAA;IACpH,MAAM2wB,UAAU,GAAGd,mBAAmB,IAAIP,SAAS,IAAI1X,mBAAmB,EAAE,GAAG,CAAC,CAAA;IAChF,MAAMgZ,WAAW,GACfD,UAAU,GACPv2B,+BAAA,CAAay1B,mBAAmB,CAAC,GAAGA,mBAAmB,CAACz3B,OAAO,CAACsU,OAAO,CAAC1M,YAAY,CAAC,GAAG6wB,4BAAsB,CAACz4B,OAAO,CAACsU,OAAO,CAAC1M,YAAY,CAAC,GAC7I;MAACoI,SAAS,EAAExQ,MAAM,CAAC4f,WAAW;MAAEnP,UAAU,EAAEzQ,MAAM,CAACk5B,WAAAA;KAAY,CAAA;;AAEjE;;AAEF,IAAA,MAAMC,OAAO,GAAG,CAACC,KAAK,CAACJ,WAAW,CAACxoB,SAAS,CAAC,GAAGwoB,WAAW,CAACxoB,SAAS,GAAGxQ,MAAM,CAAC4f,WAAW,CAAA;AAC1F,IAAA,MAAMZ,OAAO,GAAG,CAACoa,KAAK,CAACJ,WAAW,CAACvoB,UAAU,CAAC,GAAGuoB,WAAW,CAACvoB,UAAU,GAAGzQ,MAAM,CAACk5B,WAAW,CAAA;IAC5F,MAAMG,6BAA6B,GAAGA,MAAM;MAC1C,MAAM;QAAC/wB,GAAG;AAACC,QAAAA,IAAAA;AAAI,OAAC,GAAGipB,WAAW,CAAC1c,OAAO,CAACzM,qBAAqB,EAAE,CAAA;MAC9D,MAAM;AAACC,QAAAA,GAAG,EAACgxB,cAAc;AAAE/wB,QAAAA,IAAI,EAAEgxB,eAAAA;AAAe,OAAC,GAAGP,WAAW,CAAC3wB,qBAAqB,EAAE,CAAA;MACvF,OAAO;QAACC,GAAG,EAAEA,GAAG,GAACgxB,cAAc;QAAC/wB,IAAI,EAAEA,IAAI,GAACgxB,eAAAA;OAAgB,CAAA;KAC5D,CAAA;IACD,MAAM;AAAChxB,MAAAA,IAAI,EAAEixB,cAAc;AAAElxB,MAAAA,GAAG,EAAEmxB,aAAAA;AAAa,KAAC,GAC9CxB,mBAAmB,GACjBoB,6BAA6B,EAAE,GAChC7H,WAAW,CAAC1c,OAAO,CAACzM,qBAAqB,EAAE,CAAA;IAE9C,MAAM;MAAC6D,eAAe;AAAEG,MAAAA,cAAAA;AAAc,KAAC,GAAGrM,MAAM,CAAC2H,gBAAgB,CAACmxB,uBAAuB,CAAC,CAAA;IAC1F,MAAMvwB,IAAI,GAAGixB,cAAc,GAAGxoB,QAAQ,CAAC9E,eAAe,EAAE,EAAE,CAAC,CAAA;IAC3D,MAAM5D,GAAG,GAAGmxB,aAAa,GAAGzoB,QAAQ,CAAC3E,cAAc,EAAE,EAAE,CAAC,CAAA;IACxD,MAAM;AAACsT,MAAAA,WAAW,EAAE+Z,iBAAiB;AAAEC,MAAAA,YAAY,EAAEC,kBAAAA;AAAkB,KAAC,GAAId,uBAAwB,CAAA;IACpG,MAAM;AAACnZ,MAAAA,WAAW,EAAEka,gBAAgB;AAAEF,MAAAA,YAAY,EAAEG,iBAAAA;KAAkB,GAAGt5B,OAAO,CAACsU,OAAO,CAAA;IACxF,MAAM;AAAC/L,MAAAA,KAAK,EAACgxB,iBAAAA;AAAiB,KAAC,GAAGv5B,OAAO,CAACsU,OAAO,CAACzM,qBAAqB,EAAE,CAAA;AACzE,IAAA,MAAM,CAAC2xB,OAAO,EAAEC,OAAO,CAAC,GAAG,EAAE,CAAChvB,MAAM,CAACyqB,MAAM,CAAC,CAACpqB,IAAI,CAAC,GAAG,CAAC,CAACJ,KAAK,CAAC,GAAG,CAAC,CAACxB,GAAG,CAACkG,CAAC,IAAI0mB,MAAM,CAAC1mB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1F,MAAMsqB,iBAAiB,GAAG,CAACpC,KAAK,EAAED,OAAO,EAAEF,QAAQ,EAAEC,MAAM,CAAC,CAACluB,GAAG,CAACkG,CAAC,IAAIA,CAAC,KAAK,IAAI,GAAG,QAAQ,GAAGA,CAAC,CAAC,CAAA;IAChG,MAAMuqB,sBAAsB,GAAGD,iBAAiB,CAAC/F,SAAS,CAACvkB,CAAC,IAAIA,CAAC,CAAC,CAAA;IAClE,MAAM8P,SAAS,GAAG/T,QAAQ,CAAC8T,IAAI,CAACE,WAAW,IAAIoZ,UAAU,GAAG/nB,QAAQ,CAACrJ,gBAAgB,CAACgE,QAAQ,CAAC8T,IAAI,CAAC,CAAC2a,YAAY,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;AAC3H;AACA;AACA;AACA,IAAA,MAAMC,YAAY,GAAGr6B,MAAM,CAACs6B,WAAW,IAAItC,aAAa,GAAG,CAAC,GAAG1C,kBAAkB,CAACvQ,MAAM,CAAC,CAAA;IAEzF,MAAM,CAACwV,iBAAiB,EAAEC,mBAAmB,CAAC,GAAGzE,WAAW,CAAC7qB,KAAK,CAAC,GAAG,CAAC,CAAA;AACvE,IAAA,MAAM,CAACuvB,UAAU,EAAEC,YAAY,CAAC,GAAG,CAACrD,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC8C,sBAAsB,GAAG,CAAC,CAAC,CAACj7B,OAAO,CAAC,GAAG,EAAEg7B,iBAAiB,CAACC,sBAAsB,CAAC,CAAC,CAACjvB,KAAK,CAAC,GAAG,CAAC,CAAA;AAChL,IAAA,MAAM,CAACyvB,UAAU,EAAEC,YAAY,CAAC,GAAG,CAACtD,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC6C,sBAAsB,GAAG,CAAC,CAAC,CAACj7B,OAAO,CAAC,GAAG,EAAEg7B,iBAAiB,CAACC,sBAAsB,CAAC,CAAC,CAACjvB,KAAK,CAAC,GAAG,CAAC,CAAA;AAEhL,IAAA,MAAM,CAAC2vB,aAAa,EAAEC,UAAU,CAAC,GAAGtF,WAAW,CAACjtB,IAAI,EAAEyxB,OAAO,EAAEta,SAAS,EAAEga,iBAAiB,EAAEjC,IAAI,GAAGiC,iBAAiB,GAAGG,gBAAgB,EAAEe,YAAY,EAAEF,YAAY,EAAEF,mBAAmB,EAAErF,kBAAkB,EAAC,CAAC,CAAC6C,aAAa,IAAI/B,WAAW,CAAC,CAAA;AAC7O,IAAA,MAAM,CAAC8E,YAAY,EAAEC,UAAU,CAAC,GAAGxF,WAAW,CAACltB,GAAG,EAAE2xB,OAAO,EAAEI,YAAY,EAAET,kBAAkB,EAAEE,iBAAiB,EAAEa,UAAU,EAAEF,UAAU,EAAEF,iBAAiB,EAAEnF,gBAAgB,EAAC,CAAC,CAAC4C,aAAa,IAAI/B,WAAW,CAAC,CAAA;IAG7M,MAAMgF,QAAQ,GAAGD,UAAU,CAAC3vB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM6vB,QAAQ,GAAGJ,UAAU,CAACzvB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;;AAGhD;IACA,MAAM8vB,SAAS,GAAG9pB,IAAI,CAAC+pB,GAAG,CAAChG,gBAAgB,CAAC/pB,OAAO,CAACovB,UAAU,CAAC,GAAGrF,gBAAgB,CAAC/pB,OAAO,CAACsvB,UAAU,CAAC,CAAC,KAAK,CAAC,GAAIM,QAAQ,GAAGN,UAAU,GAAGF,UAAU,GACjIppB,IAAI,CAAC+pB,GAAG,CAACjG,kBAAkB,CAAC9pB,OAAO,CAACqvB,YAAY,CAAC,GAAGvF,kBAAkB,CAAC9pB,OAAO,CAACuvB,YAAY,CAAC,CAAC,KAAK,CAAC,GAAIM,QAAQ,GAAGN,YAAY,GAAGF,YAAY,GAAI,EAAE,CAAA;AACrK,IAAA,MAAMW,YAAY,GAAGlD,QAAQ,CAACrjB,OAAO,CAAA;IACrC,MAAMwmB,mBAAmB,GAAGH,SAAS,KAAK,MAAM,IAAIA,SAAS,KAAK,OAAO,CAAA;IACzE,MAAMI,SAAS,GAAGF,YAAY,GAAGA,YAAY,CAAChzB,qBAAqB,EAAE,CAACizB,mBAAmB,GAAG,QAAQ,GAAG,OAAO,CAAC,GAAIrE,kBAAkB,GAAG5lB,IAAI,CAACmqB,IAAI,CAAC,CAAC,CAAE,CAAA;IACrJ,MAAM,CAACC,WAAW,EAAEC,gBAAgB,CAAC,GAAGJ,mBAAmB,GACnBK,YAAY,CAACtG,mBAAmB,CAACkC,KAAK,CAAC,IAAIA,KAAK,EAAEgE,SAAS,EAAED,mBAAmB,EAAE1B,kBAAkB,EAAEE,iBAAiB,EAAEiB,YAAY,GAAGzyB,GAAG,EAAE2yB,QAAQ,CAAC,GACtJU,YAAY,CAACtG,mBAAmB,CAACkC,KAAK,CAAC,IAAIA,KAAK,EAAEgE,SAAS,EAAED,mBAAmB,EAAE5B,iBAAiB,EAAEG,gBAAgB,EAAEgB,aAAa,GAAGtyB,IAAI,EAAE0yB,QAAQ,CAAC,CAAA;IAG9L,MAAMW,SAAS,GAAG57B,MAAM,CAACs6B,WAAW,IAAIhF,kBAAkB,CAAChtB,GAAG,GAAGgtB,kBAAkB,CAACvQ,MAAM,CAAC,IAAIiT,aAAa,GAAG/B,WAAW,GAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACjI,MAAM4C,QAAQ,GAAG74B,MAAM,CAAC67B,UAAU,IAAIvG,kBAAkB,CAAC/sB,IAAI,GAAG+sB,kBAAkB,CAACpW,KAAK,CAAC,IAAI8Y,aAAa,GAAG/B,WAAW,GAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AAE/Hz1B,IAAAA,OAAO,CAACsU,OAAO,CAACnM,KAAK,CAACizB,SAAS,GAAG,EAAE,CAAA;AACpC,IAAA,IAAI5qB,QAAQ,CAAChR,MAAM,CAAC2H,gBAAgB,CAACnH,OAAO,CAACsU,OAAO,CAAC,CAAC8mB,SAAS,CAAC,GAAGA,SAAS,EAAE;MAC5Ep7B,OAAO,CAACsU,OAAO,CAACnM,KAAK,CAACizB,SAAS,GAAGA,SAAS,GAAC,IAAI,CAAA;AAClD,KAAA;AACA,IAAA,IAAI7D,SAAS,EAAE;AACbv3B,MAAAA,OAAO,CAACsU,OAAO,CAACnM,KAAK,CAACI,KAAK,GAAGsI,IAAI,CAACyqB,IAAI,CAAC/B,iBAAiB,CAAC,GAAC,IAAI,CAAA;AACjE,KAAC,MAAM;MACLv5B,OAAO,CAACsU,OAAO,CAACnM,KAAK,CAACkwB,QAAQ,GAAGA,QAAQ,GAAC,IAAI,CAAA;AAChD,KAAA;AACA;;IAGAr4B,OAAO,CAACsU,OAAO,CAACnM,KAAK,CAACL,GAAG,GAAIyyB,YAAY,IAAIO,mBAAmB,GAAGI,gBAAgB,GAAG,CAAC,CAAC,IAAIhf,KAAK,GAAG,CAAC,GAAGyc,OAAO,CAAC,GAAI,IAAI,CAAA;IACxH34B,OAAO,CAACsU,OAAO,CAACnM,KAAK,CAACJ,IAAI,GAAIsyB,aAAa,IAAIS,mBAAmB,GAAG,CAAC,GAAGI,gBAAgB,CAAC,IAAIhf,KAAK,GAAG,CAAC,GAAGsC,OAAO,CAAC,GAAI,IAAI,CAAA;AAE1H,IAAA,MAAM+c,UAAU,GAAG;MACjBjrB,SAAS,EAAA,YAAA,CAAA7F,MAAA,CAAe+rB,SAAS,CAACmE,SAAS,EAAEM,WAAW,CAAC,CAAC,CAAC,KAAK,KAAK,IAAIA,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,EAAiB,iBAAA,CAAA;AACrI1W,MAAAA,MAAM,EAAC,MAAM;AACbxc,MAAAA,IAAI,EAAC,MAAM;MACX,CAAC4yB,SAAS,GAAG,GAAG;AAChBa,MAAAA,SAAS,EAAEjF,WAAW,CAACoE,SAAS,CAAC;MACjC,CAACM,WAAW,CAAC,CAAC,CAAC,GAAGA,WAAW,CAAC,CAAC,CAAC,GAAC,IAAA;KAClC,CAAA;IACD,IAAItD,QAAQ,CAACrjB,OAAO,EAAE;MACpB/S,MAAM,CAACuK,MAAM,CAAC6rB,QAAQ,CAACrjB,OAAO,CAACnM,KAAK,EAACozB,UAAU,CAAC,CAAA;AAClD,KAAA;AAEA1D,IAAAA,eAAe,CAAC;AACd4D,MAAAA,KAAK,EAAGtB,UAAU,KAAK,KAAK,IAAI,CAACM,QAAQ,IAAMN,UAAU,KAAK,QAAQ,IAAIM,QAAS;AACnFiB,MAAAA,QAAQ,EAAGvB,UAAU,KAAK,QAAQ,IAAI,CAACM,QAAQ,IAAMN,UAAU,KAAK,KAAK,IAAIM,QAAS;AACtFkB,MAAAA,MAAM,EAAGvB,YAAY,KAAK,MAAM,IAAI,CAACM,QAAQ,IAAMP,UAAU,KAAK,OAAO,IAAIO,QAAS;AACtFkB,MAAAA,OAAO,EAAGxB,YAAY,KAAK,OAAO,IAAI,CAACM,QAAQ,IAAMP,UAAU,KAAK,MAAM,IAAIO,QAAS;MACvFmB,UAAU,EAAEvC,iBAAiB,GAAG8B,SAAS;MACzCU,SAAS,EAAEzC,gBAAgB,GAAGhB,QAAQ;MACtCsC,SAAS;MACTM,WAAW;AACXM,MAAAA,UAAAA;AACF,KAAC,CAAC,CAAA;AAEF,IAAA,IAAItE,IAAI,EAAE;MACRj3B,OAAO,CAACsU,OAAO,CAACnM,KAAK,CAACI,KAAK,GAAG2wB,iBAAiB,GAAG,IAAI,CAAA;AACxD,KAAA;AACA,IAAA,IAAIhd,KAAK,EAAE;AACTlc,MAAAA,OAAO,CAACsU,OAAO,CAACnM,KAAK,CAACC,QAAQ,GAAG,OAAO,CAAA;AAC1C,KAAA;GACD,CAAA;AAEDwL,EAAAA,qBAAe,CAACkkB,WAAW,EAAE,CAAChlB,EAAE,CAAC,CAAC,CAAA;AAGlCuP,EAAAA,eAAS,CAAC,MAAM;AACZ7iB,IAAAA,MAAM,CAACwN,gBAAgB,CAAC,kBAAkB,EAAE8qB,WAAW,CAAC,CAAA;AACxDt4B,IAAAA,MAAM,CAACwN,gBAAgB,CAAC,YAAY,EAAE8qB,WAAW,CAAC,CAAA;AAClDt4B,IAAAA,MAAM,CAACwN,gBAAgB,CAAC,QAAQ,EAAE8qB,WAAW,EAAE;AAACiE,MAAAA,OAAO,EAAC,IAAA;AAAI,KAAC,CAAC,CAAA;AAC9D,IAAA,OAAO,MAAM;AACXv8B,MAAAA,MAAM,CAACsP,mBAAmB,CAAC,kBAAkB,EAAEgpB,WAAW,CAAC,CAAA;AAC3Dt4B,MAAAA,MAAM,CAACsP,mBAAmB,CAAC,YAAY,EAAEgpB,WAAW,CAAC,CAAA;AACrDt4B,MAAAA,MAAM,CAACsP,mBAAmB,CAAC,QAAQ,EAAEgpB,WAAW,CAAC,CAAA;KAClD,CAAA;GACF,EAAE,EACL,CAAC,CAAA;AAGD,EAAA,MAAMqD,YAAY,GAAGA,CAACpE,KAAK,EAAEgE,SAAS,EAAEiB,cAAc,EAAEC,mBAAmB,EAAEC,SAAS,EAAEC,kBAAkB,EAAEC,OAAO,KAAK;IACtH,IAAI,CAACrF,KAAK,EAAE;AACV,MAAA,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAChB,KAAA;AACA,IAAA,MAAMsF,MAAM,GAAGrF,YAAY,GAAI+D,SAAS,GAAG,CAAE,CAAA;IAC7C,MAAM,CAACuB,eAAe,EAAEC,OAAO,EAAEC,EAAE,CAAC,GAAG,CAACzF,KAAK,KAAK,IAAI,GAAG,KAAK,GAAGA,KAAK,EAAEr4B,OAAO,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAACgM,KAAK,CAAC,GAAG,CAAC,CAAA;AAChI,IAAA,MAAM+xB,sBAAsB,GAAGL,OAAO,GAAG,CAACE,eAAe,GAAGA,eAAe,CAAA;AAC3E,IAAA,MAAMI,aAAa,GAAGV,cAAc,GAAIS,sBAAsB,GAAG,QAAQ,GAAG,KAAK,GAAKA,sBAAsB,GAAG,OAAO,GAAG,MAAO,CAAA;IAChI,MAAME,gBAAgB,GAAGD,aAAa,KAAK,MAAM,IAAIA,aAAa,KAAK,KAAK,CAAA;IAE5E,MAAME,WAAW,GAAGD,gBAAgB,GAAGR,kBAAkB,GAAIF,mBAAmB,GAAGE,kBAAkB,GAAGD,SAAU,CAAA;;AAElH;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IAMI,MAAMW,eAAe,GAAIrsB,QAAQ,CAAC+rB,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,GAAGN,mBAAmB,GAAG,GAAG,GAAIzrB,QAAQ,CAACgsB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;AACxG,IAAA,MAAMM,wBAAwB,GAAIjsB,IAAI,CAACgJ,GAAG,CAAChJ,IAAI,CAACjL,GAAG,CAACi3B,eAAe,EAAE,CAAC,CAAC,EAAEZ,mBAAmB,CAAE,CAAA;AAC9F,IAAA,MAAMc,4BAA4B,GAAGJ,gBAAgB,GAAGG,wBAAwB,GAAGF,WAAW,GAAIX,mBAAmB,GAAGW,WAAW,GAAGE,wBAAyB,CAAA;IAC/J,MAAME,UAAU,GAAGD,4BAA4B,GAAGV,MAAM,GACpCU,4BAA4B,GAAGV,MAAM,GACtCU,4BAA4B,GAAIb,SAAS,GAAGG,MAAO,GAClDA,MAAM,GAAGU,4BAA4B,GAAGb,SAAS,GAClD,CAAC,CAAA;AACpB,IAAA,MAAMe,kBAAkB,GAAGN,gBAAgB,GAAGC,WAAW,GAAGI,UAAU,GAAIf,mBAAmB,GAAGW,WAAW,GAAGI,UAAU,GAAGd,SAAU,CAAA;IACrI,OAAO,CAAC,CAACQ,aAAa,EAAEI,wBAAwB,GAAGG,kBAAkB,CAAE,EAAED,UAAU,CAAC,CAAA;GACrF,CAAA;EAED,MAAMnC,YAAY,GAAG9D,KAAK,iBAAIv7B,yBAAA,CAAA0B,aAAA,CAACw5B,YAAY,EAAA;AAACrzB,IAAAA,GAAG,EAAEs0B,QAAAA;AAAS,GAAE,CAAC,CAAA;AAE7D,EAAA,MAAMuF,kBAAkB,gBAAG1hC,yBAAA,CAAA0B,aAAA,CAACu3B,WAAW,EAAA;AAACtuB,IAAAA,EAAE,EAAEuxB,aAAc;AAACr0B,IAAAA,GAAG,EAAE2tB,WAAAA;AAAY,GAAC,CAAC,CAAA;AAC9E,EAAA,OAAO,CAAC4G,YAAY,EAACsF,kBAAkB,EAACrC,YAAY,CAAC,CAAA;AACvD;;;AC1SA,MAAMsC,iBAAiB,gBAAG9/B,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,+BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAEnC,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA;AAEM,MAAM2/B,UAAU,gBAAG5hC,yBAAK,CAAC4H,UAAU,CAAC,CAAAhF,IAAA,EAAyDiF,GAAG,KAAK;EAAA,IAAhE;AAACg6B,MAAAA,IAAI,GAAG,OAAO;MAAE14B,SAAS;MAAE9F,OAAO;AAAEnC,MAAAA,QAAAA;AAAiB,KAAC,GAAA0B,IAAA;AAALrB,IAAAA,IAAI,GAAAC,4CAAA,CAAAoB,IAAA,EAAAnB,WAAA,CAAA,CAAA;AAChG,EAAA,MAAMqgC,QAAQ,GAAGjlB,iBAAY,CAAChV,GAAG,CAAC,CAAA;EAClC,MAAM,CAACu0B,YAAY,EAAE5G,WAAW,CAAC,GAAG2F,cAAc,CAAC2G,QAAQ,EAAEvgC,IAAI,CAAC,CAAA;EAElE,MAAMwgC,QAAQ,GAAGl8B,aAAO,CAAC,MAAMme,mBAAmB,EAAE,KAAK,CAAC,GAAG6d,IAAI,GAAIA,IAAI,GAAG,GAAG,IAAI7d,mBAAmB,EAAE,GAAG,CAAC,CAAE,EAAE,EAAE,CAAC,CAAA;AACnH,EAAA,oBAAOhkB,yBAAA,CAAA0B,aAAA,CAAA1B,yBAAA,CAAAqoB,QAAA,EACJmN,IAAAA,EAAAA,WAAW,eACZx1B,yBAAA,CAAA0B,aAAA,CAAC4mB,SAAI,EAAA;AAACjI,IAAAA,IAAI,EAAE0hB,QAAAA;GACV/hC,eAAAA,yBAAA,CAAA0B,aAAA,CAACigC,iBAAiB,EAAA1+B,4BAAA,KAAKm5B,YAAY,EAAA;AAAE/4B,IAAAA,OAAO,EAAEA,OAAQ;AAAC8F,IAAAA,SAAS,EAAEA,SAAU;AAACtB,IAAAA,GAAG,EAAEi6B,QAAAA;GAC/E5gC,CAAAA,EAAAA,QACgB,CACf,CACN,CAAC,CAAA;AACL,CAAC;;;;;;AChBD,MAAM;EAAC8gC,QAAQ;AAAEC,EAAAA,QAAAA;AAAQ,CAAC,gBAAGjiC,yBAAK,CAACkiC,aAAa,CAAC,EAAE,CAAC,CAAA;AAIpD,MAAMC,YAAY,gBAAGtgC,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,yBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,iMAAA,EAAA,EAAA,CAAA,EAY3B1B,KAAK,IAAIA,KAAK,CAACmH,OAAO,uCAEvB,CACF,CAAA;AACD,MAAM06B,gBAAgB,gBAAGvgC,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,6BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAElC,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA;AAED,MAAMogC,qBAAqB,GAAG;AAC5BhkB,EAAAA,GAAG,EAAE,MAAM;AACXjU,EAAAA,GAAG,EAAE,OAAO;AACZk4B,EAAAA,IAAI,EAAE,GAAG;AACT7/B,EAAAA,IAAI,EAAE,OAAA;AACR,CAAC,CAAA;AACD,MAAM8/B,mBAAmB,GAAG;AAC1BlkB,EAAAA,GAAG,EAAE,KAAK;AACVjU,EAAAA,GAAG,EAAE,QAAQ;AACbk4B,EAAAA,IAAI,EAAE,GAAG;AACT7/B,EAAAA,IAAI,EAAE,QAAA;AACR,CAAC,CAAA;AAGD,MAAM+/B,uBAAuB,GAAG,EAAE,CAAA;AAClC,MAAMC,wBAAwB,GAAG,EAAE,CAAA;AACnC,MAAMC,2BAA2B,GAAG,GAAG,CAAA;AAEvC,SAASC,WAAWA,CAACC,CAAC,EAAE;AAAE,EAAA,OAAOvtB,IAAI,CAACyqB,IAAI,CAAC8C,CAAC,GAAGA,CAAC,GAAGA,CAAC,IAAIH,wBAAwB,GAAGA,wBAAwB,CAAC,CAAC,CAAA;AAAC,CAAA;AAE9G,MAAMI,iBAAiB,GAAI5rB,EAAE,IAAK;EAChC,MAAM6rB,UAAU,GAAG7rB,EAAE,KAAFA,IAAAA,IAAAA,EAAE,KAAFA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAE,CAAEkQ,OAAO,CAAC,YAAY,CAAC,CAAA;AAC5C,EAAA,IAAI2b,UAAU,EAAE;AACdA,IAAAA,UAAU,CAAC3f,SAAS,CAACC,GAAG,CAAC,WAAW,CAAC,CAAA;AACrCyf,IAAAA,iBAAiB,CAACC,UAAU,CAACj3B,UAAU,CAAC,CAAA;AAC1C,GAAA;AACF,CAAC,CAAA;AACD,MAAMk3B,kBAAkB,GAAI9rB,EAAE,IAAK;EACjC,MAAM6rB,UAAU,GAAG7rB,EAAE,KAAFA,IAAAA,IAAAA,EAAE,KAAFA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAE,CAAEkQ,OAAO,CAAC,YAAY,CAAC,CAAA;AAC5C,EAAA,IAAI2b,UAAU,EAAE;AACdA,IAAAA,UAAU,CAAC3f,SAAS,CAAC1R,MAAM,CAAC,WAAW,CAAC,CAAA;AACxCsxB,IAAAA,kBAAkB,CAACD,UAAU,CAACj3B,UAAU,CAAC,CAAA;AAC3C,GAAA;AACF,CAAC,CAAA;AAGD,MAAMm3B,iBAAiB,GAAIz/B,CAAC,IAAK,CAAEA,CAAC,CAAC8P,MAAM,CAAE8T,OAAO,CAAC,gEAAgE,CAAC,CAACD,OAAO,CAAC,yCAAyC,CAAC,CAAA;AAElK,MAAM+b,aAAa,SAASjjC,yBAAK,CAACC,SAAS,CAAC;EAAAC,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAAC,SAAA,CAAA,CAAA;IAAA,IAEjDkZ,CAAAA,MAAM,GAAG,IAAI,CAAC9Y,KAAK,CAAC2iC,aAAa,CAAC,IAAI,CAAC,CAAA;AAAA,GAAA;AAEvCliC,EAAAA,MAAMA,GAAG;AACP,IAAA,MAAAC,WAAA,GAAgJ,IAAI,CAACV,KAAK;AAApJ,MAAA;QAAC4iC,OAAO;AAAEx4B,QAAAA,EAAE,GAAG,KAAK;QAAEu4B,aAAa;QAAE/5B,SAAS;QAAEi6B,UAAU;QAAEC,SAAS;QAAEC,SAAS;QAACC,kBAAkB;QAAEC,aAAa;AAAEtiC,QAAAA,QAAAA;AAAkB,OAAC,GAAAD,WAAA;AAANV,MAAAA,KAAK,GAAAiB,4CAAA,CAAAP,WAAA,EAAAQ,WAAA,CAAA,CAAA;AAC5I,IAAA,MAAMyH,OAAO,GAAGi6B,OAAO,IAAIx4B,EAAE,CAAA;IAC7B,MAAM84B,cAAc,GAAG,CAACL,UAAU,GAAG,wBAAwB,GAAG,EAAE,IAAI,iBAAiB,CAAA;IACvF,OAAO,OAAOliC,QAAQ,KAAK,UAAU,GAC9BA,QAAQ,CAAA+L,eAAA,CAAAA,eAAA,CAAA;AAAE9D,MAAAA,SAAS,EAAEs6B,cAAAA;KAAmB,EAAA,IAAI,CAACpqB,MAAM,CAAA,EAAA,EAAA,EAAA;AAAEnY,MAAAA,QAAQ,EAAEkiC,UAAU,iBAAIpjC,yBAAA,CAAA0B,aAAA,CAACygC,YAAY,EAAA;AAACz6B,QAAAA,OAAO,EAAE67B,kBAAmB;AAACC,QAAAA,aAAa,EAAEA,aAAAA;OAAe,CAAA;KAAE,CAAA,CAAC,gBACzJxjC,yBAAA,CAAA0B,aAAA,CAACwH,OAAO,EAAAjG,4BAAA,CAAA;MACNkG,SAAS,EAAEA,SAAS,GAAGs6B,cAAe;AACtCL,MAAAA,UAAU,EAAEA,UAAAA;AAAW,KAAA,EACnB7iC,KAAK,EACL,IAAI,CAAC8Y,MAAM,CAEdnY,EAAAA,QAAQ,EAEPkiC,UAAU,iBACVpjC,yBAAA,CAAA0B,aAAA,CAACygC,YAAY,EAAA;AAACz6B,MAAAA,OAAO,EAAE67B,kBAAmB;AAACC,MAAAA,aAAa,EAAEA,aAAAA;AAAc,KAAC,CAGpE,CAAC,CAAA;AACnB,GAAA;AACF,CAAA;AAEAP,aAAa,CAACz4B,CAAC,GAAIjK,KAAK,iBAAKP,yBAAA,CAAA0B,aAAA,CAACuhC,aAAa,EAAAhgC,4BAAA,KAAK1C,KAAK,EAAA;AAAE4iC,EAAAA,OAAO,EAAC,GAAA;AAAG,CAAA,CAAC,CAAC,CAAA;AAE7D,MAAMO,kBAAkB,GAAInjC,KAAK,iBACtCP,yBAAA,CAAA0B,aAAA,CAACugC,QAAQ,EAAA,IAAA,EACL0B,SAAS,iBACT3jC,yBAAA,CAAA0B,aAAA,CAACkiC,2BAA2B,EAAA3gC,4BAAA,CAAK1C,EAAAA,EAAAA,KAAK,EAAMojC,SAAS,CAAG,CAElD,EAAC;AAGb,MAAMC,2BAA2B,SAAS5jC,yBAAK,CAACC,SAAS,CAAC;EAAAC,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAAC,SAAA,CAAA,CAAA;IAAA,IAMxD0jC,CAAAA,UAAU,GAAG,EAAE,CAAA;AAAA,IAAA,IAAA,CACfC,gBAAgB,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CAEhBC,QAAQ,GAAG,CAAC7iC,QAAQ,EAAEgiC,aAAa,EAAEc,WAAW,EAAEjO,UAAU,KAC1D70B,QAAQ,CAACwM,GAAG,CAAC,CAACO,CAAC,EAAEg2B,KAAK,KACpBh2B,CAAC,CAACnG,IAAI,KAAKm7B,aAAa,gBAAGjjC,yBAAK,CAAC4e,YAAY,CAAC3Q,CAAC,EAAE;MAC/Cm1B,UAAU,EAAEY,WAAW,KAAKC,KAAK;AACjCX,MAAAA,SAAS,EAAEW,KAAK;AAChBZ,MAAAA,SAAS,EAAE,IAAI;MACfx7B,GAAG,EAAGoP,EAAE,IAAK,IAAI,CAAC4sB,UAAU,CAACI,KAAK,CAAC,GAAGhtB,EAAE;AACxCisB,MAAAA,aAAa,EAAEA,aAAAA;KAChB,CAAC,GAAGj1B,CACP,CAAC,CAAA;AAAA,IAAA,IAAA,CAEHjC,UAAU,GAAG,CAACC,UAAU,EAAArJ,IAAA,KAAA;MAAA,IAAE;QAAC4R,SAAS;AAAEC,QAAAA,UAAAA;AAAU,OAAC,GAAA7R,IAAA,CAAA;AAAA,MAAA,OAAK,CAACqU,EAAE,EAAErW,CAAC,KAAK;AAC/D,QAAA,IAAIqW,EAAE,EAAE;UACN,MAAM5L,OAAO,GAAGwnB,4BAAQ,CAACC,4DAA4D,CAACC,WAAW,CAAC9b,EAAE,CAAC,CAAA;UACrG,MAAM;YAAClK,KAAK;AAAED,YAAAA,MAAAA;AAAM,WAAC,GAAGzB,OAAO,CAACgB,qBAAqB,EAAE,CAAA;UACvD,OAAO;AACLg3B,YAAAA,SAAS,EAAE,IAAI;AACfY,YAAAA,KAAK,EAAErjC,CAAC;YACRmM,KAAK;YACLD,MAAM;AACNo3B,YAAAA,CAAC,EAAEj4B,UAAU,CAACK,GAAG,GAAGjB,OAAO,CAAC8B,SAAS,GAAIL,MAAM,GAAG,CAAE,IAAI0H,SAAS,IAAI,CAAC,CAAC;AACvE2vB,YAAAA,CAAC,EAAEl4B,UAAU,CAACM,IAAI,GAAGlB,OAAO,CAAC+B,UAAU,GAAIL,KAAK,GAAG,CAAE,IAAI0H,UAAU,IAAI,CAAC,CAAA;WACzE,CAAA;AACH,SAAA;OACD,CAAA;AAAA,KAAA,CAAA;AAAA,IAAA,IAAA,CAED+kB,WAAW,GAAG,CAAC54B,CAAC,EAAEwjC,QAAQ,KAAK;AAC7B,MAAA,MAAMntB,EAAE,GAAG,IAAI,CAAC4sB,UAAU,CAACjjC,CAAC,CAAC,CAAA;AAC7B,MAAA,IAAIqW,EAAE,EAAE;QACN,MAAMwE,MAAM,GAAGoX,4BAAQ,CAACC,4DAA4D,CAACC,WAAW,CAAC,IAAI,CAAC,CAAC3mB,YAAY,CAAA;AACnH,QAAA,MAAMH,UAAU,GAAGwP,MAAM,CAACpP,qBAAqB,EAAE,CAAA;AACjD,QAAA,OAAO,IAAI,CAACL,UAAU,CAACC,UAAU,EAAE,CAAC,CAAC,CAACgL,EAAE,EAAErW,CAAC,CAAC,CAAA;AAC9C,OAAA;KACD,CAAA;AAAA,IAAA,IAAA,CAEDyjC,YAAY,GAAG,CAACD,QAAQ,EAAEE,QAAQ,KAAK;AACrC,MAAA,IAAI,IAAI,CAAC/jC,KAAK,CAACgkC,SAAS,IAAI,CAAC,IAAI,CAAChkC,KAAK,CAACgkC,SAAS,CAAC1O,wBAAA,CAAMyO,QAAQ,EAAEv9B,CAAC,IAAIA,CAAC,IAAIA,CAAC,CAACxG,KAAK,GAAGwG,CAAC,CAACxG,KAAK,CAACsqB,EAAE,GAAG9jB,CAAC,CAAC,CAAC,EAAE;AACtG,QAAA,OAAO,EAAE,CAAA;AACX,OAAA;MACA,MAAM0U,MAAM,GAAGoX,4BAAQ,CAACC,4DAA4D,CAACC,WAAW,CAAC,IAAI,CAAC,CAAC3mB,YAAY,CAAA;MACnH,IAAI,CAACqP,MAAM,EAAE;AAAE,QAAA,OAAO,EAAE,CAAA;AAAA,OAAA;AACxB,MAAA,MAAMxP,UAAU,GAAGwP,MAAM,CAACpP,qBAAqB,EAAE,CAAA;MACjD,MAAML,UAAU,GAAG,IAAI,CAACA,UAAU,CAACC,UAAU,EAAEm4B,QAAQ,CAAC,CAAA;AACxD,MAAA,MAAMI,QAAQ,GAAG,IAAI,CAACX,UAAU,CAACn2B,GAAG,CAAC1B,UAAU,CAAC,CAAC+R,MAAM,CAACnK,CAAC,IAAIA,CAAC,CAAC,CAAA;AAC/D,MAAA,IAAI4wB,QAAQ,CAACt4B,MAAM,IAAI,CAAC,IAAI,CAAC3L,KAAK,CAACi1B,WAAW,EAAE,OAAOgP,QAAQ,CAAA;MAC/D,OAAO,CAAC3R,4BAAQ,CAACC,4DAA4D,CAACC,WAAW,CAAC,IAAI,CAAC,CAAC,CAACrlB,GAAG,CAAC1B,UAAU,CAAC,CAAC+R,MAAM,CAACnK,CAAC,IAAIA,CAAC,CAAC,CAAA;KAChI,CAAA;IAAA,IAWD6wB,CAAAA,iBAAiB,GAAG,CAACC,KAAK,EAAAthC,KAAA,EAAsEuhC,gBAAgB,KAAK;MAAA,IAAzF;QAACC,MAAM;QAAEC,UAAU;QAAEC,cAAc;QAAEd,WAAW;AAAEe,QAAAA,eAAAA;AAAe,OAAC,GAAA3hC,KAAA,CAAA;AAC5F;AACA;AACA;MACA,IAAI,CAAC0hC,cAAc,EAAE;AAAE,QAAA,OAAOJ,KAAK,CAAA;AAAC,OAAA;MACpC,IAAIK,eAAe,KAAKA,eAAe,KAAK,IAAI,IAAID,cAAc,KAAK,IAAI,CAAC,EAAE;AAC5E;AACA,QAAA,MAAME,iBAAiB,GAAGC,2BAAA,CAASH,cAAc,KAAK,IAAI,GAAGD,UAAU,GAAG,EAAE,EAAEH,KAAK,CAAC,CAAA;QACpF,IAAIK,eAAe,KAAK,IAAI,EAAE;AAC5B;UACAC,iBAAiB,CAACE,MAAM,CAAClB,WAAW,EAAE,CAAC,EAAEW,gBAAgB,EAAE,CAAC,CAAA;AAC9D,SAAA;AACA,QAAA,OAAOK,iBAAiB,CAAA;AAC1B,OAAA;AACA,MAAA,OAAON,KAAK,CAAA;KACb,CAAA;AAAA,IAAA,IAAA,CAGDS,cAAc,GAAG,CAACC,UAAU,EAAEd,QAAQ,KAAKc,UAAU,CAAC7S,IAAI,CAAC3e,CAAC,IAAIA,CAAC,CAACrT,KAAK,CAAC8iC,SAAS,CAAC,IAAIiB,QAAQ,CAACQ,cAAc,CAACvkC,KAAK,CAACW,QAAQ,CAACojC,QAAQ,CAACO,UAAU,CAAC,CAAA;AAAA,IAAA,IAAA,CAEjJQ,UAAU,GAAG,CAACD,UAAU,EAAEd,QAAQ,KAAKA,QAAQ,CAACQ,cAAc,KAAK,IAAI,GAChCM,UAAU,CAACd,QAAQ,CAACO,UAAU,CAAC,gBAC/B7kC,yBAAK,CAAC4e,YAAY,CAAC,IAAI,CAACumB,cAAc,CAACC,UAAU,EAAEd,QAAQ,CAAC,EAAE;MAAC/mB,GAAG,EAAE6nB,UAAU,CAAC,CAAC,CAAC,CAAC7nB,GAAG,GAAG,IAAI,GAAG+mB,QAAQ,CAACO,UAAAA;AAAU,KAAC,CAAC,CAAA;IAAA,IAG3JS,CAAAA,eAAe,GAAG/gC,KAAA,IAAgC;MAAA,IAA/B;QAACrD,QAAQ;QAAE+2B,IAAI;AAAEqM,QAAAA,QAAAA;AAAQ,OAAC,GAAA//B,KAAA,CAAA;MAC3C,MAAM;QAACugC,cAAc;AAAED,QAAAA,UAAAA;AAAU,OAAC,GAAGP,QAAQ,CAAA;AAC7C,MAAA,IAAIrM,IAAI,EAAE;QACR,OAAOj4B,yBAAK,CAAC6d,QAAQ,CAACC,OAAO,CAAC5c,QAAQ,CAAC,IAAI,CAACujC,iBAAiB,CAACxM,IAAI,EAAEqM,QAAQ,EAAE,MAAMQ,cAAc,CAACvkC,KAAK,CAAC03B,IAAI,CAAC4M,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9H,OAAC,MAAM;QACL,MAAMO,UAAU,GAAGplC,yBAAK,CAAC6d,QAAQ,CAACC,OAAO,CAAC5c,QAAQ,CAAC,CAAA;AACnD,QAAA,OAAO,IAAI,CAACujC,iBAAiB,CAACW,UAAU,EAAEd,QAAQ,EAAE,MAAM,IAAI,CAACe,UAAU,CAACD,UAAU,EAAEd,QAAQ,CAAC,CAAC,CAAA;AAClG,OAAA;KACD,CAAA;AAAA,GAAA;AAzCDjkC,EAAAA,iBAAiBA,GAAG;AAClB,IAAA,IAAI,CAACE,KAAK,CAACglC,YAAY,CAAC,IAAI,CAAC,CAAA;AAC/B,GAAA;AAEAC,EAAAA,oBAAoBA,GAAG;AACrB,IAAA,IAAI,CAACjlC,KAAK,CAACklC,eAAe,CAAC,IAAI,CAAC,CAAA;AAClC,GAAA;AAqCAzkC,EAAAA,MAAMA,GAAG;IACP,MAAM;MAAC0kC,KAAK;MAAElQ,WAAW;MAAE8O,QAAQ;MAAEjzB,SAAS;MAAEiF,MAAM;AAAE4sB,MAAAA,aAAAA;KAAc,GAAG,IAAI,CAAC3iC,KAAK,CAAA;IACnF,MAAM;MAACqkC,MAAM;MAAEZ,WAAW;AAAEe,MAAAA,eAAAA;AAAe,KAAC,GAAGT,QAAQ,CAAA;IACvD,MAAMc,UAAU,GAAG,IAAI,CAACE,eAAe,CAAC,IAAI,CAAC/kC,KAAK,CAAC,CAAA;AACnD,IAAA,IAAI,CAAC6kC,UAAU,CAACl5B,MAAM,IAAIspB,WAAW,EAAE;MACrC,OAAOA,WAAW,EAAE,CAAA;AACtB,KAAA;AACA,IAAA,oBAAOx1B,yBAAA,CAAA0B,aAAA,CAACsvB,QAAQ,EAAA;AAAC3f,MAAAA,SAAS,EAAEA,SAAU;AAACiF,MAAAA,MAAM,EAAEA,MAAO;AAAC2a,MAAAA,IAAI,EAAE2T,MAAAA;AAAO,KAAA,EAClE,IAAI,CAACb,QAAQ,CAACqB,UAAU,EAAElC,aAAa,EAAE0B,MAAM,IAAIG,eAAe,KAAK,IAAI,IAAIf,WAAW,CACjF,CAAC,CAAA;AACd,GAAA;AACF,CAAA;AAhHMJ,2BAA2B,CAExBlQ,YAAY,GAAG;EACpB8B,WAAW,EAAEA,mBAAMx1B,yBAAA,CAAA0B,aAAA,CAAC0gC,gBAAgB,EAAC,IAAA,CAAA;AACvC,CAAC,CAAA;AA+GI,MAAMuD,kBAAkB,SAAS3lC,yBAAK,CAACC,SAAS,CAAC;EAAAC,WAAA,GAAA;AAAA,IAAA,IAAA0lC,KAAA,CAAA;AAAA,IAAA,KAAA,CAAA,GAAAzlC,SAAA,CAAA,CAAA;AAAAylC,IAAAA,KAAA,GAAAC,IAAA,CAAA;AAAA,IAAA,IAAA,CAQtDtlC,KAAK,GAAA,KAAA,CAAA,CAAA;AAAA;AACP;AACA;AACA;AACA;AACA;AACA;AANO,IAAA,IAAA,CAQLulC,KAAK,GAAA,KAAA,CAAA,CAAA;AACL;AACA;AACA;AACA;AACA;IAAA,IACAC,CAAAA,SAAS,GAAG,CAAC,CAAA;IAAA,IACbC,CAAAA,aAAa,GAAG,IAAI,CAAA;IAAA,IACpBC,CAAAA,SAAS,GAAG,EAAE,CAAA;IAAA,IACdC,CAAAA,gBAAgB,GAAG,KAAK,CAAA;IAAA,IACxBC,CAAAA,aAAa,GAAG,KAAK,CAAA;AAAA,IAAA,IAAA,CACrBC,cAAc,GAAA,KAAA,CAAA,CAAA;AAAA;AAAA,IAAA,IAAA,CAEdC,aAAa,GAAA,KAAA,CAAA,CAAA;AAAA;AAAA,IAAA,IAAA,CACbjmC,KAAK,GAAG;AAACkkC,MAAAA,QAAQ,EAAE,EAAC;KAAE,CAAA;IAAA,IAEtBgC,CAAAA,UAAU,GAAG,EAAE,CAAA;AAAA,IAAA,IAAA,CACfl6B,YAAY,GAAA,KAAA,CAAA,CAAA;AAAA;AAAA,IAAA,IAAA,CACZqP,MAAM,GAAA,KAAA,CAAA,CAAA;AAAA;AAAA,IAAA,IAAA,CACN8qB,eAAe,GAAA,KAAA,CAAA,CAAA;AAAA;AAAA,IAAA,IAAA,CACfC,cAAc,GAAA,KAAA,CAAA,CAAA;AAAA;AAAA,IAAA,IAAA,CACdC,eAAe,GAAA,KAAA,CAAA,CAAA;AAAA;AAAA,IAAA,IAAA,CAEfC,aAAa,GAAA,KAAA,CAAA,CAAA;AAAA;AAAA,IAAA,IAAA,CACbC,cAAc,GAAA,KAAA,CAAA,CAAA;AAAA;IAAA,IAEdC,CAAAA,aAAa,GAAG,KAAK,CAAA;IAAA,IAErBljC,CAAAA,cAAc,GAAIH,CAAC,IAAK;AACtB,MAAA,IAAI,CAACy/B,iBAAiB,CAACz/B,CAAC,CAAC,IAAI,IAAI,CAAC8iC,aAAa,EAC7C9iC,CAAC,CAACG,cAAc,EAAE,CAAA;KACrB,CAAA;IAAA,IAEDmjC,CAAAA,kBAAkB,GAAG,MAAM;AACzB,MAAA,OAAO,IAAI,CAACJ,eAAe,GAAG,IAAI,CAACA,eAAe,KAAK,IAAI,CAAClmC,KAAK,CAACkmC,eAAe,GAAG,IAAI,CAAClmC,KAAK,CAACkmC,eAAe,GAAGK,qBAAe,CAAEjU,4BAAQ,CAACC,4DAA4D,CAACC,WAAW,CAAC,IAAI,CAAE,CAAC,CAAC,CAAA;KAC7N,CAAA;IAAA,IAwBDgU,CAAAA,UAAU,GAAI9vB,EAAE,IAAK;AACnB,MAAA,IAAI,CAAC+vB,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACjpB,MAAM,CAACxa,CAAC,IAAIA,CAAC,KAAK0T,EAAE,CAAC,CAAA;KACpD,CAAA;IAAA,IAEDgwB,CAAAA,eAAe,GAAI1jC,CAAC,IAAK;MACvB,IAAI,CAACkY,MAAM,GAAGlY,CAAC,CAAA;MACf,IAAI,CAAC6I,YAAY,GAAG7I,CAAC,KAAKS,MAAM,CAAC2H,gBAAgB,CAACpI,CAAC,CAAC,CAACqJ,QAAQ,KAAK,QAAQ,GAAGrJ,CAAC,GAAGA,CAAC,CAAC6I,YAAY,CAAC,CAAA;KACjG,CAAA;IAAA,IAED86B,CAAAA,uBAAuB,GAAG,MAAM;AAC9B,MAAA,IAAI,CAAC,IAAI,CAAC96B,YAAY,EACpB,OAAO;AAACG,QAAAA,IAAI,EAAE,CAAC;AAAED,QAAAA,GAAG,EAAE,CAAC;AAAEyc,QAAAA,MAAM,EAAE,CAAC;AAAE7F,QAAAA,KAAK,EAAE,CAAC;AAAEnW,QAAAA,KAAK,EAAE,CAAC;AAAED,QAAAA,MAAM,EAAE,CAAA;OAAE,CAAA;AACpE,MAAA,OAAO,IAAI,CAACV,YAAY,CAACC,qBAAqB,EAAE,CAAA;KACjD,CAAA;IAAA,IAGD86B,CAAAA,SAAS,GAAIC,SAAS,IAAK,CAAC7jC,CAAC,EAAAsD,KAAA,KAAuC;MAAA,IAArC;QAACwgC,KAAK;QAAEC,KAAK;QAAEC,OAAO;AAAEC,QAAAA,OAAAA;AAAO,OAAC,GAAA3gC,KAAA,CAAA;AAC7D,MAAA,MAAMmhB,aAAa,GAAGzkB,CAAC,CAACykB,aAAa,CAAA;MACrC,IAAIgb,iBAAiB,CAACz/B,CAAC,CAAC,IAAI,IAAI,CAAChD,KAAK,CAACknC,QAAQ,EAAE;AAC/C,QAAA,OAAA;AACF,OAAA;MACA,IAAIlkC,CAAC,CAACuE,IAAI,KAAK,WAAW,IAAIvE,CAAC,CAACmkC,MAAM,KAAK,CAAC,EAAE;AAC5C,QAAA,OAAA;AACF,OAAA;MACAnkC,CAAC,CAACskB,eAAe,EAAE,CAAA;MACnB,IAAI,CAACqe,gBAAgB,GAAG,KAAK,CAAA;AAC7B,MAAA,MAAME,cAAc,GAAG,IAAI,CAAC7lC,KAAK,CAAC6lC,cAAc,CAAA;AAChD,MAAA,IAAI,CAACD,aAAa,GAAG,CAACC,cAAc,CAAA;AACpC,MAAA,IAAIA,cAAc,EAAE;QAClB7iC,CAAC,CAACokC,OAAO,EAAE,CAAA;AACX,QAAA,IAAI,CAACvB,cAAc,GAAGjzB,UAAU,CAAC,MAAM;UACrC,IAAI,CAACgzB,aAAa,GAAG,IAAI,CAAA;AACzB,UAAA,IAAIniC,MAAM,CAACic,SAAS,CAAC2nB,OAAO,EAC1B5jC,MAAM,CAACic,SAAS,CAAC2nB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;UAChC,IAAI,CAAC,IAAI,CAACxnC,KAAK,CAACkkC,QAAQ,CAACM,MAAM,EAAE;AAC/B,YAAA,IAAI,CAACiD,QAAQ,CAACtkC,CAAC,EAAE;cAAC8jC,KAAK;cAAEC,KAAK;cAAEC,OAAO;AAAEC,cAAAA,OAAAA;AAAO,aAAG,CAAC,CAAA;AACtD,WAAA;SACD,EAAEpB,cAAc,CAAC,CAAA;AACpB,OAAA;MACA,MAAM;QAACr5B,KAAK;QAAED,MAAM;QAAER,GAAG;AAAEC,QAAAA,IAAAA;AAAI,OAAC,GAAGyb,aAAa,CAAC3b,qBAAqB,EAAE,CAAA;AACxE,MAAA,MAAMy7B,WAAW,GAAG9jC,MAAM,CAAC2H,gBAAgB,CAACqc,aAAa,CAAC,CAAA;MAC1D,MAAM;AAAC1b,QAAAA,GAAG,EAAEy7B,SAAS;AAAEx7B,QAAAA,IAAI,EAAEy7B,UAAAA;AAAU,OAAC,GAAG,IAAI,CAACd,uBAAuB,EAAE,CAAA;AACzE,MAAA,MAAM/5B,SAAS,GAAG46B,SAAS,GAAGT,KAAK,GAAGh7B,GAAG,GAAG0I,QAAQ,CAAC8yB,WAAW,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAA;AACnF,MAAA,MAAM16B,UAAU,GAAG46B,UAAU,GAAGX,KAAK,GAAG96B,IAAI,GAAGyI,QAAQ,CAAC8yB,WAAW,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAA;MACvF,MAAM;QAACtzB,SAAS;QAAEC,UAAU;QAAE0oB,OAAO;AAAEna,QAAAA,OAAAA;AAAO,OAAC,GAAG,IAAI,CAAC6jB,kBAAkB,EAAE,CAAA;MAC3E,IAAI,CAACZ,SAAS,GAAG;AACfgC,QAAAA,SAAS,EAAEZ,KAAK;AAAEa,QAAAA,SAAS,EAAEZ,KAAK;QAClCn6B,SAAS;QAAEC,UAAU;AAAE+6B,QAAAA,WAAW,EAAEr7B,MAAM;AAAEs7B,QAAAA,UAAU,EAAEr7B,KAAK;QAC7Ds7B,cAAc,EAAErzB,QAAQ,CAAC8yB,WAAW,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACvDQ,eAAe,EAAEtzB,QAAQ,CAAC8yB,WAAW,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;QACzDrzB,UAAU,EAAEA,UAAU,IAAI,CAAC;QAAED,SAAS,EAAEA,SAAS,IAAI,CAAC;QACtD2oB,OAAO,EAAEA,OAAO,IAAI,CAAC;QAAEna,OAAO,EAAEA,OAAO,IAAI,CAAA;OAC5C,CAAA;AAGD,MAAA,MAAM8iB,KAAK,GAAG9d,aAAa,CAACvY,SAAS,CAAC,IAAI,CAAC,CAAA;MAC3Cq2B,KAAK,CAAC38B,SAAS,IAAI,WAAW,CAAA;AAC9BpD,MAAAA,MAAM,CAACuK,MAAM,CAACw1B,KAAK,CAACn5B,KAAK,EAAE;AACzB47B,QAAAA,UAAU,EAAE,EAAE;AACd37B,QAAAA,QAAQ,EAAE,OAAO;AAAEC,QAAAA,OAAO,EAAE,MAAM;AAAE27B,QAAAA,MAAM,EAAE,IAAI;QAAEz7B,KAAK,EAAEA,KAAK,GAAG,IAAI;QAAED,MAAM,EAAEA,MAAM,GAAG,IAAI;AAAE+zB,QAAAA,MAAM,EAAE,GAAG;AACzGv0B,QAAAA,GAAG,EAAGA,GAAG,GAAGk7B,OAAO,GAAI,IAAI;AAAEj7B,QAAAA,IAAI,EAAGA,IAAI,GAAGg7B,OAAO,GAAI,IAAA;AACxD,OAAC,CAAC,CAAA;MAEF,IAAI,CAACkB,SAAS,CAAC3C,KAAK,EAAE9d,aAAa,CAAC5b,YAAY,EAAEg7B,SAAS,EAAE;QAC3Dr6B,KAAK;QACLD,MAAM;QACNkxB,OAAO,EAAEqJ,KAAK,GAAG96B,IAAI;QACrB0xB,OAAO,EAAEqJ,KAAK,GAAGh7B,GAAAA;AACnB,OAAC,CAAC,CAAA;MACFtI,MAAM,CAACwN,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACk3B,SAAS,CAAC,CAAA;MACpD1kC,MAAM,CAACwN,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACm3B,SAAS,EAAE;AAACpI,QAAAA,OAAO,EAAE,KAAA;AAAK,OAAC,CAAC,CAAA;MACtEv8B,MAAM,CAACwN,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAACo3B,OAAO,CAAC,CAAA;MAChD5kC,MAAM,CAACwN,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAACo3B,OAAO,CAAC,CAAA;MACjD5kC,MAAM,CAACwN,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAACo3B,OAAO,CAAC,CAAA;MACzD5kC,MAAM,CAACwN,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAACo3B,OAAO,EAAE,KAAK,CAAC,CAAA;MACpD5kC,MAAM,CAACwN,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAACq3B,aAAa,CAAC,CAAA;KAC3D,CAAA;IAAA,IAGDJ,CAAAA,SAAS,GAAG,CAACxxB,EAAE,EAAEwE,MAAM,EAAEqW,IAAI,EAAEyU,eAAe,KAAK;MACjD,IAAI,CAACA,eAAe,GAAGA,eAAe,CAAA;AACtC9qB,MAAAA,MAAM,CAACqtB,KAAK,EAAE,CAAC;MACf,IAAI,CAAChD,KAAK,GAAG7uB,EAAE,CAAA;AACf;AACA;AACA;MACA,IAAI,CAAC8uB,SAAS,EAAE,CAAA;MAChB,IAAI,CAACC,aAAa,GAAG;QACnB+C,KAAK,EAAE,IAAI,CAAChD,SAAS;AACrBD,QAAAA,KAAK,EAAE7uB,EAAE;AACTqtB,QAAAA,QAAQ,EAAE,IAAI;AACd0E,QAAAA,KAAK,EAAE,KAAK;AACZC,QAAAA,UAAU,EAAE,IAAI;AAChBC,QAAAA,eAAe,EAAE,IAAA;OAClB,CAAA;AACDztB,MAAAA,MAAM,CAACgX,WAAW,CAAC,IAAI,CAACqT,KAAK,CAAC,CAAA;AAC9BjD,MAAAA,iBAAiB,CAAC,IAAI,CAACiD,KAAK,CAAC,CAAA;MAC7B,IAAI,CAACjlC,QAAQ,CAAC;AACZyjC,QAAAA,QAAQ,EAAE;AACRM,UAAAA,MAAM,EAAE,KAAK;AACbC,UAAAA,UAAU,EAAE/S,IAAI,CAACvxB,KAAK,CAAC+iC,SAAS;UAChC6F,WAAW,EAAErX,IAAI,CAACvxB,KAAK,CAAC8iC,SAAS,CAAC9iC,KAAK,CAACmlC,KAAK;AAC7CZ,UAAAA,cAAc,EAAEhT,IAAI,CAACvxB,KAAK,CAAC8iC,SAAAA;AAC7B,SAAA;AACF,OAAC,CAAC,CAAA;MACF,IAAI,CAACuD,aAAa,GAAG,KAAK,CAAA;KAC3B,CAAA;IAAA,IAEDwC,CAAAA,iBAAiB,GAAG,MAAM;MACxB,MAAM;QAACjM,OAAO;QAAEna,OAAO;QAAEvO,UAAU;AAAED,QAAAA,SAAAA;AAAS,OAAC,GAAG,IAAI,CAACqyB,kBAAkB,EAAE,CAAA;MAC3E,MAAMt6B,IAAI,GAAG,CAACyW,OAAO,IAAI,CAAC,GAAGvO,UAAU,IAAI,CAAC,IAAI,IAAI,CAACwxB,SAAS,CAACjjB,OAAO,GAAG,IAAI,CAACijB,SAAS,CAACxxB,UAAU,CAAA;MAClG,MAAMnI,GAAG,GAAG,CAAC6wB,OAAO,IAAI,CAAC,GAAG3oB,SAAS,IAAI,CAAC,IAAI,IAAI,CAACyxB,SAAS,CAAC9I,OAAO,GAAG,IAAI,CAAC8I,SAAS,CAACzxB,SAAS,CAAA;MAC/F,OAAO;AAACC,QAAAA,UAAU,EAAElI,IAAI;AAAEiI,QAAAA,SAAS,EAAElI,GAAAA;OAAI,CAAA;KAC1C,CAAA;IAAA,IAED+8B,CAAAA,cAAc,GAAG,YAA6C;AAAA,MAAA,IAA5C3D,KAAK,GAAAvlC,SAAA,CAAA+L,MAAA,GAAA,CAAA,IAAA/L,SAAA,CAAAgM,CAAAA,CAAAA,KAAAA,SAAA,GAAAhM,SAAA,MAAGylC,KAAI,CAACxlC,KAAK,CAACkkC,QAAQ,CAAC6E,WAAW,CAAA;AACvDvD,MAAAA,KAAI,CAACY,cAAc,GACjBZ,KAAI,CAACU,UAAU,CAACZ,KAAK,CAAC,CACnB93B,MAAM,CAAC,CAAC8Z,GAAG,EAAE9T,CAAC,KAAK8T,GAAG,CAACzY,MAAM,CAAC2E,CAAC,CAACywB,YAAY,CAACuB,KAAI,CAACwD,iBAAiB,EAAE,EAAExD,KAAI,CAACxlC,KAAK,CAACkkC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CACjGgF,IAAI,CAAC,CAAC9+B,CAAC,EAAEqD,CAAC,KAAKrD,CAAC,CAAC05B,CAAC,GAAGr2B,CAAC,CAACq2B,CAAC,IAAI15B,CAAC,CAAC25B,CAAC,GAAGt2B,CAAC,CAACs2B,CAAC,CAAC,CAAA;KAC5C,CAAA;AAAA,IAAA,IAAA,CAEDoF,IAAI,GAAG,CAACpF,CAAC,EAAED,CAAC,KAAK;MACf,IAAI,CAAC,IAAI,CAAC0C,aAAa,IAAI,IAAI,CAACrmC,KAAK,CAACipC,UAAU,EAAE;QAChD,IAAI,CAACjpC,KAAK,CAACipC,UAAU,CAAC,IAAI,CAAC1D,KAAK,CAAC,CAAA;QACjC,IAAI,CAACc,aAAa,GAAG,IAAI,CAAA;AAC3B,OAAA;MACA,MAAM;QAACpyB,SAAS;AAAEC,QAAAA,UAAAA;AAAU,OAAC,GAAG,IAAI,CAAC20B,iBAAiB,EAAE,CAAA;MACxD,IAAI,CAAC/C,aAAa,GAAG,IAAI,CAAA;AACzB,MAAA,IAAIvU,IAAI,GAAG,IAAI,CAAC2X,cAAc,CAACtF,CAAC,GAAG,IAAI,CAACoC,eAAe,CAACvI,OAAO,IAAIvpB,UAAU,IAAI,CAAC,CAAC,EAAEyvB,CAAC,GAAG,IAAI,CAACqC,eAAe,CAACtI,OAAO,IAAIzpB,SAAS,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC+xB,eAAe,CAACx5B,KAAK,EAAE,IAAI,CAACw5B,eAAe,CAACz5B,MAAM,CAAC,CAAA;MAClM,IAAI,CAACglB,IAAI,EAAE;AACT,QAAA,OAAA;AACF,OAAA;AACA,MAAA,MAAMwS,QAAQ,GAAG,IAAI,CAAClkC,KAAK,CAACkkC,QAAQ,CAAA;AACpC,MAAA,IAAIxS,IAAI,CAACmS,KAAK,KAAKK,QAAQ,CAACN,WAAW,IAAIlS,IAAI,CAACuR,SAAS,KAAKiB,QAAQ,CAACS,eAAe,EAAE;QACtF,IAAI,CAAClkC,QAAQ,CAAC;AACZyjC,UAAAA,QAAQ,EAAEx+B,2BAAA,CAASw+B,QAAQ,EAAE;AAC3BM,YAAAA,MAAM,EAAE,IAAI;AACZ8E,YAAAA,cAAc,EAAE5X,IAAI;YACpBkS,WAAW,EAAElS,IAAI,CAACmS,KAAK;YACvBc,eAAe,EAAEjT,IAAI,CAACuR,SAAAA;WACvB,CAAA;AACH,SAAC,CAAC,CAAA;AACJ,OAAA;KACD,CAAA;IAAA,IAEDoG,CAAAA,cAAc,GAAG,CAACE,OAAO,EAAEC,OAAO,EAAExB,UAAU,EAAED,WAAW,KAAK;AAC9D,MAAA,MAAM0B,OAAO,GAAGD,OAAO,GAAGzB,WAAW,CAAA;AACrC,MAAA,MAAM2B,OAAO,GAAGH,OAAO,GAAGvB,UAAU,CAAA;AACpC,MAAA,MAAM2B,iBAAiB,GAAG,IAAI,CAACvD,cAAc,CAACzoB,MAAM,CAACnR,QAAQ,IAC3DA,QAAQ,CAACs3B,CAAC,IAAI0F,OAAO,IACrBh9B,QAAQ,CAACu3B,CAAC,IAAIwF,OAAO,IACrB/8B,QAAQ,CAACs3B,CAAC,IAAI2F,OAAO,IACrBj9B,QAAQ,CAACu3B,CAAC,IAAI2F,OAChB,CAAC,CAAA;AACD,MAAA,MAAME,MAAM,GAAGL,OAAO,GAAIvB,UAAU,GAAG,CAAE,CAAA;AACzC,MAAA,MAAM6B,MAAM,GAAGL,OAAO,GAAIzB,WAAW,GAAG,CAAE,CAAA;AAC1C,MAAA,MAAM+B,sBAAsB,GAAGA,CAAC1/B,CAAC,EAAEqD,CAAC,KAAKwH,IAAI,CAACjL,GAAG,CAAC,CAAC,EAAEiL,IAAI,CAACgJ,GAAG,CAAC7T,CAAC,CAAC2/B,EAAE,EAAEt8B,CAAC,CAACs8B,EAAE,CAAC,GAAG90B,IAAI,CAACjL,GAAG,CAACI,CAAC,CAAC4/B,EAAE,EAAEv8B,CAAC,CAACu8B,EAAE,CAAC,CAAC,GAAG/0B,IAAI,CAACjL,GAAG,CAAC,CAAC,EAAEiL,IAAI,CAACgJ,GAAG,CAAC7T,CAAC,CAAC6/B,EAAE,EAAEx8B,CAAC,CAACw8B,EAAE,CAAC,GAAGh1B,IAAI,CAACjL,GAAG,CAACI,CAAC,CAAC8/B,EAAE,EAAEz8B,CAAC,CAACy8B,EAAE,CAAC,CAAC,CAAA;AAC5J,MAAA,MAAMC,YAAY,GAAGR,iBAAiB,CACnCr8B,GAAG,CAAEokB,IAAI,IAAK;QACb,MAAM;UAACqS,CAAC;UAAED,CAAC;UAAEn3B,KAAK;AAAED,UAAAA,MAAAA;AAAM,SAAC,GAAGglB,IAAI,CAAA;AAClC,QAAA,MAAM0Y,IAAI,GAAGz9B,KAAK,GAAGD,MAAM,CAAA;QAC3B,MAAM29B,gBAAgB,GAAGP,sBAAsB;AAC7C;AACA,QAAA;AACEE,UAAAA,EAAE,EAAEjG,CAAC,GAAI9uB,IAAI,CAACjL,GAAG,CAAC,CAAC,EAAE2C,KAAK,CAAC,GAAG,CAAE;AAChCo9B,UAAAA,EAAE,EAAEhG,CAAC,GAAIp3B,KAAK,GAAG,CAAE;AACnBu9B,UAAAA,EAAE,EAAEpG,CAAC,GAAI7uB,IAAI,CAACjL,GAAG,CAAC,CAAC,EAAE0C,MAAM,CAAC,GAAG,CAAE;AACjCu9B,UAAAA,EAAE,EAAEnG,CAAC,GAAIp3B,MAAM,GAAG,CAAA;AACpB,SAAC,EACD;AAACs9B,UAAAA,EAAE,EAAET,OAAO;AAAEQ,UAAAA,EAAE,EAAEL,OAAO;AAAEQ,UAAAA,EAAE,EAAEV,OAAO;AAAES,UAAAA,EAAE,EAAER,OAAAA;AAAO,SACrD,CAAC,CAAA;QACD,MAAMa,QAAQ,GAAGr1B,IAAI,CAACmqB,IAAI,CAACnqB,IAAI,CAACs1B,GAAG,CAACxG,CAAC,GAAG6F,MAAM,EAAE,CAAC,CAAC,GAAG30B,IAAI,CAACs1B,GAAG,CAACzG,CAAC,GAAG+F,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;QAC7E,OAAO;UAACO,IAAI,EAAEC,gBAAgB,GAAGD,IAAI;AAAEE,UAAAA,QAAAA;SAAS,CAAA;OACjD,CAAC,CAAC98B,MAAM,CAAC,CAACg9B,IAAI,EAAAtc,KAAA,EAAoB1tB,CAAC,EAAEiqC,GAAG,KAAA;QAAA,IAAxB;UAACL,IAAI;AAAEE,UAAAA,QAAAA;AAAQ,SAAC,GAAApc,KAAA,CAAA;AAAA,QAAA,OAAakc,IAAI,GAAGK,GAAG,CAACD,IAAI,CAAC,CAACJ,IAAI,IAAKA,IAAI,KAAKK,GAAG,CAACD,IAAI,CAAC,CAACJ,IAAI,IAAIE,QAAQ,GAAGG,GAAG,CAACD,IAAI,CAAC,CAACF,QAAS,GAAG9pC,CAAC,GAAGgqC,IAAI,CAAA;AAAA,OAAA,EAAE,CAAC,CAAC,CAAA;MAClJ,OAAOb,iBAAiB,CAACQ,YAAY,CAAC,CAAA;KACvC,CAAA;IAAA,IAEDO,CAAAA,UAAU,GAAIC,OAAO,IAAK;AACxB;AACA;AACA,MAAA,IAAI,CAACA,OAAO,IAAIA,OAAO,CAAC/B,KAAK,EAAE;AAAE,QAAA,OAAA;AAAO,OAAA;MACxC+B,OAAO,CAAC/B,KAAK,GAAG,IAAI,CAAA;MAEpB,MAAM;QAACD,KAAK;QAAEjD,KAAK;AAAExB,QAAAA,QAAAA;AAAQ,OAAC,GAAGyG,OAAO,CAAA;MACxC,MAAM;QAAC/G,WAAW;QAAEa,UAAU;QAAEsE,WAAW;QAAEpE,eAAe;AAAED,QAAAA,cAAAA;AAAc,OAAC,GAAGR,QAAQ,IAAI,EAAE,CAAA;MAC9F,IAAIyG,OAAO,CAAC9B,UAAU,EAAE;AACtBjvB,QAAAA,YAAY,CAAC+wB,OAAO,CAAC9B,UAAU,CAAC,CAAA;QAChC8B,OAAO,CAAC9B,UAAU,GAAG,IAAI,CAAA;AAC3B,OAAA;AACA,MAAA,IAAInD,KAAK,IAAIiF,OAAO,CAAC7B,eAAe,EAAE;QACpCpD,KAAK,CAACxyB,mBAAmB,CAAC,eAAe,EAAEy3B,OAAO,CAAC7B,eAAe,CAAC,CAAA;QACnE6B,OAAO,CAAC7B,eAAe,GAAG,IAAI,CAAA;AAChC,OAAA;;AAEA;AACA;MACA,MAAM8B,MAAM,GAAGA,MAAM;AACnB,QAAA,IAAIlF,KAAK,KAALA,IAAAA,IAAAA,KAAK,eAALA,KAAK,CAAEj6B,UAAU,EAAE;UACrBk3B,kBAAkB,CAAC+C,KAAK,CAAC,CAAA;AACzBA,UAAAA,KAAK,CAACj6B,UAAU,CAACo/B,WAAW,CAACnF,KAAK,CAAC,CAAA;AACrC,SAAA;AACA,QAAA,IAAK9B,WAAW,KAAKa,UAAU,IAAIb,WAAW,KAAK73B,SAAS,IAAM44B,eAAe,KAAKD,cAAc,IAAIC,eAAe,KAAK54B,SAAU,EAAE;UAAA,IAAA++B,qBAAA,EAAAC,qBAAA,CAAA;UACtI,MAAMC,OAAO,GAAG,IAAI,CAAC7qC,KAAK,CAAC8qC,YAAY,CAACxG,UAAU,EAAEb,WAAW,EAAEc,cAAc,aAAdA,cAAc,KAAA,KAAA,CAAA,IAAA,CAAAoG,qBAAA,GAAdpG,cAAc,CAAEvkC,KAAK,MAAA,IAAA,IAAA2qC,qBAAA,KAArBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAuBrgB,EAAE,EAAEka,eAAe,KAAfA,IAAAA,IAAAA,eAAe,gBAAAoG,qBAAA,GAAfpG,eAAe,CAAExkC,KAAK,cAAA4qC,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAtBA,qBAAA,CAAwBtgB,EAAE,EAAEse,WAAW,CAAC,CAAA;AACpI,UAAA,IAAIiC,OAAO,IAAIA,OAAO,CAACzqC,IAAI,EAAE;AAC3ByqC,YAAAA,OAAO,CAACzqC,IAAI,CAAC,MAAM,IAAI,CAAC2qC,iBAAiB,CAACvC,KAAK,CAAC,EAAE,MAAM,IAAI,CAACuC,iBAAiB,CAACvC,KAAK,CAAC,CAAC,CAAA;AACxF,WAAC,MAAM;AACL,YAAA,IAAI,CAACuC,iBAAiB,CAACvC,KAAK,CAAC,CAAA;AAC/B,WAAA;AACF,SAAC,MAAM;AACL,UAAA,IAAI,CAACuC,iBAAiB,CAACvC,KAAK,CAAC,CAAA;AAC/B,SAAA;OACD,CAAA;AAED,MAAA,IAAIA,KAAK,KAAK,IAAI,CAAChD,SAAS,EAAE;AAC5B;AACA;AACAiF,QAAAA,MAAM,EAAE,CAAA;AACR,QAAA,OAAA;AACF,OAAA;MAEA,IAAI,CAACnqC,QAAQ,CAAC;AACZ0qC,QAAAA,MAAM,EAAE;AACNtT,UAAAA,IAAI,EAAE,IAAI,CAAC13B,KAAK,CAAC03B,IAAI;AACrB/2B,UAAAA,QAAQ,EAAE,IAAI,CAACX,KAAK,CAACW,QAAQ;UAC7BojC,QAAQ,EAAEkH,wBAAA,CAAM,QAAQ,EAAE,KAAK,EAAElH,QAAQ,IAAI,EAAE,CAAA;AACjD,SAAA;AACF,OAAC,EAAE,MAAM;QACP,IAAI,CAAC+B,aAAa,GAAG,KAAK,CAAA;AAC1B,QAAA,IAAI,CAAC9lC,KAAK,CAACipC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,CAAC5C,aAAa,GAAG,KAAK,CAAA;AAC1BoE,QAAAA,MAAM,EAAE,CAAA;AACV,OAAC,CAAC,CAAA;KACH,CAAA;IAAA,IAEDM,CAAAA,iBAAiB,GAAIvC,KAAK,IAAK;AAC7B;AACA;MACA,IAAIA,KAAK,KAAK58B,SAAS,IAAI48B,KAAK,KAAK,IAAI,CAAChD,SAAS,EAAE;AAAE,QAAA,OAAA;AAAO,OAAA;MAC9D,IAAI,CAACllC,QAAQ,CAAC;QAACyjC,QAAQ,EAAE,EAAE;AAAEiH,QAAAA,MAAM,EAAE,KAAA;AAAK,OAAC,CAAC,CAAA;KAC7C,CAAA;AAAA,IAAA,IAAA,CAED1D,QAAQ,GAAG,CAACtkC,CAAC,EAAAmrB,KAAA,KAAuC;MAAA,IAArC;QAAC2Y,KAAK;QAAEC,KAAK;QAAEC,OAAO;AAAEC,QAAAA,OAAAA;AAAO,OAAC,GAAA9Y,KAAA,CAAA;MAC7C,MAAMgc,QAAQ,GAAGr1B,IAAI,CAACmqB,IAAI,CAAC,CAAC,IAAI,CAACyG,SAAS,CAACgC,SAAS,GAAGZ,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAACpB,SAAS,CAACiC,SAAS,GAAGZ,KAAK,KAAK,CAAC,CAAC,CAAA;AAC7G,MAAA,IAAI/jC,CAAC,CAACuE,IAAI,KAAK,WAAW,EAAE;AAAE;AAC5B,QAAA,IAAI,CAAC,IAAI,CAACo+B,gBAAgB,IAAI,CAAC,IAAI,CAAC3lC,KAAK,CAACkrC,YAAY,IAAIf,QAAQ,GAAG,CAAC,EAAE;AACtE,UAAA,OAAA;AACF,SAAA;AACF,OAAC,MAAM;AACL,QAAA,IAAI,CAAC,IAAI,CAACvE,aAAa,EAAE;UACvB,IAAIuE,QAAQ,GAAG,CAAC,EAAE;YAChB,IAAI,CAAC9B,OAAO,EAAE,CAAA;AAChB,WAAA;AACA,UAAA,OAAA;AACF,SAAA;QACArlC,CAAC,CAACG,cAAc,EAAE,CAAA;AACpB,OAAA;MACA,IAAI,CAACwiC,gBAAgB,GAAG,IAAI,CAAA;MAE5B,IAAI,CAACwF,iBAAiB,CAACrE,KAAK,EAAEC,KAAK,EAAEC,OAAO,EAAEC,OAAO,CAAC,CAAA;KACvD,CAAA;AAAA,IAAA,IAAA,CAEDmE,YAAY,GAAG,CAACtE,KAAK,EAAEC,KAAK,KAAK;MAC/B,MAAM;QAAC9yB,SAAS;AAAEC,QAAAA,UAAAA;AAAU,OAAC,GAAG,IAAI,CAACoyB,kBAAkB,EAAE,CAAA;MACzD,MAAM+E,YAAY,GAAG,IAAI,CAAC3F,SAAS,CAACzxB,SAAS,IAAIA,SAAS,IAAI,CAAC,CAAC,CAAA;MAChE,MAAMq3B,YAAY,GAAG,IAAI,CAAC5F,SAAS,CAACxxB,UAAU,IAAIA,UAAU,IAAI,CAAC,CAAC,CAAA;MAClE,MAAMq3B,SAAS,GAAGzE,KAAK,GAAG,IAAI,CAACpB,SAAS,CAAC74B,UAAU,CAAA;MACnD,MAAM2+B,QAAQ,GAAGzE,KAAK,GAAG,IAAI,CAACrB,SAAS,CAAC94B,SAAS,CAAA;MACjD,MAAM;AAACL,QAAAA,MAAM,EAAEk/B,YAAY;AAAEj/B,QAAAA,KAAK,EAAEk/B,WAAAA;AAAW,OAAC,GAAG,IAAI,CAAC/E,uBAAuB,EAAE,CAAA;AACjF,MAAA,MAAMgF,cAAc,GAAG72B,IAAI,CAACjL,GAAG,CAACiL,IAAI,CAACgJ,GAAG,CAACytB,SAAS,EAAEG,WAAW,GAAG,IAAI,CAAChG,SAAS,CAACmC,UAAU,GAAG,IAAI,CAACnC,SAAS,CAACqC,eAAe,GAAGuD,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC5F,SAAS,CAACqC,eAAe,GAAGuD,YAAY,CAAC,CAAA;AAChM,MAAA,MAAMM,aAAa,GAAG92B,IAAI,CAACjL,GAAG,CAACiL,IAAI,CAACgJ,GAAG,CAAC0tB,QAAQ,EAAEC,YAAY,GAAG,IAAI,CAAC/F,SAAS,CAACkC,WAAW,GAAG,IAAI,CAAClC,SAAS,CAACoC,cAAc,GAAGuD,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC3F,SAAS,CAACoC,cAAc,GAAGuD,YAAY,CAAC,CAAA;MAC9L,MAAMzH,CAAC,GAAI+H,cAAc,GAAGJ,SAAS,GAAIzE,KAAK,GAAGrjC,MAAM,CAACgf,OAAO,CAAA;MAC/D,MAAMkhB,CAAC,GAAIiI,aAAa,GAAGJ,QAAQ,GAAIzE,KAAK,GAAGtjC,MAAM,CAACm5B,OAAO,CAAA;MAE7D,IAAI,IAAI,CAAC2I,KAAK,EAAE;AACd,QAAA,IAAI,CAACA,KAAK,CAACn5B,KAAK,CAACmI,SAAS,GAAG,YAAA7F,CAAAA,MAAA,CAAak1B,CAAC,EAAAl1B,KAAAA,CAAAA,CAAAA,MAAA,CAAMi1B,CAAC,EAAA,KAAA,CAAA,IAAS,IAAI,CAAC3jC,KAAK,CAAC6rC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC7rC,KAAK,CAAC6rC,UAAU,GAAG,GAAG,GAAG,EAAE,CAAC,CAAA;AAChI,QAAA,IAAI,CAACtG,KAAK,CAACn5B,KAAK,CAACE,OAAO,GAAG,EAAE,CAAA;AAC/B,OAAA;AACA,MAAA,IAAI,CAAC08B,IAAI,CAAClC,KAAK,IAAIyE,SAAS,GAAGI,cAAc,CAAC,EAAE5E,KAAK,IAAIyE,QAAQ,GAAGI,aAAa,CAAC,CAAC,CAAA;MACnF,IAAI,CAAC,IAAI,CAAC/rC,KAAK,CAACkkC,QAAQ,CAACM,MAAM,EAAE;QAC/B,IAAI,CAAC/jC,QAAQ,CAAC;UACVyjC,QAAQ,EAAEx+B,2BAAA,CAAS,IAAI,CAAC1F,KAAK,CAACkkC,QAAQ,EACpC;AACEN,YAAAA,WAAW,EAAE,IAAI,CAAC5jC,KAAK,CAACkkC,QAAQ,CAACO,UAAU;AAC3CE,YAAAA,eAAe,EAAE,IAAI,CAAC3kC,KAAK,CAACkkC,QAAQ,CAACQ,cAAc;AACnDF,YAAAA,MAAM,EAAE,IAAA;WACT,CAAA;AACL,SACF,CAAC,CAAA;AACH,OAAA;KACD,CAAA;AAAA,IAAA,IAAA,CAEDyH,mBAAmB,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CACnBC,WAAW,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CACXC,WAAW,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CAEXC,kBAAkB,GAAG,CAACj6B,IAAI,EAAEk6B,GAAG,KAAK;AAClC,MAAA,IAAIl6B,IAAI,EAAE;AACR,QAAA,IAAIvO,MAAM,CAAC2H,gBAAgB,CAAC4G,IAAI,CAAC,CAAC,UAAU,CAAC,CAACqV,WAAW,EAAE,KAAK,OAAO,IAAI6kB,GAAG,KAAKl6B,IAAI,EACrF,OAAOA,IAAI,CAAClG,qBAAqB,EAAE,CAEnC,KAAA,OAAO,IAAI,CAACmgC,kBAAkB,CAAEj6B,IAAI,CAAEnG,YAAY,EAAEqgC,GAAG,CAAC,CAAA;AAC5D,OAAC,MAAM;AACL,QAAA,OAAO,EAAE,CAAA;AACX,OAAA;KACD,CAAA;AAAA,IAAA,IAAA,CAEDC,2BAA2B,GAAG,CAAC5G,KAAK,EAAEl5B,QAAQ,EAAE+/B,sBAAsB,EAAElG,eAAe,EAAEx6B,UAAU,EAAE2gC,IAAI,KAAK;MAC5G,MAAMC,eAAe,GAAGpG,eAAe,KAAKziC,MAAM,GAAG,IAAI,CAACwoC,kBAAkB,CAACG,sBAAsB,CAAC,CAACnK,uBAAuB,CAAC,EAAEsD,KAAK,CAAC,GAAG,EAAE,CAAA;AAC1I,MAAA,MAAMznB,GAAG,GAAGooB,eAAe,KAAKziC,MAAM,GAAGyiC,eAAe,CAACp6B,qBAAqB,EAAE,CAACugC,IAAI,CAACvuB,GAAG,CAAC,GAC7EwuB,eAAe,CAAED,IAAI,CAACxiC,GAAG,CAAC,IAAK,IAAI,CAACoiC,kBAAkB,CAACG,sBAAsB,CAAC,CAACnK,uBAAuB,CAAC,EAAEsD,KAAK,CAAC,CAAE8G,IAAI,CAACxiC,GAAG,CAAC,IAAI,CAAC,CAAA;MAC5I,MAAMA,GAAG,GAAGq8B,eAAe,KAAKziC,MAAM,GAAGyiC,eAAe,CAACp6B,qBAAqB,EAAE,CAACugC,IAAI,CAACxiC,GAAG,CAAC,GAC7EyiC,eAAe,CAAED,IAAI,CAACvuB,GAAG,CAAC,IAAK,IAAI,CAACmuB,kBAAkB,CAACG,sBAAsB,CAAC,CAACnK,uBAAuB,CAAC,EAAEsD,KAAK,CAAC,CAAE8G,IAAI,CAACvuB,GAAG,CAAC,IAAIra,MAAM,CAAC,OAAO,GAAG4oC,IAAI,CAACnqC,IAAI,CAAC,CAAA;AACtK,MAAA,MAAMqqC,WAAW,GAAGlgC,QAAQ,GAAG41B,uBAAuB,GAAGnkB,GAAG,CAAA;AAC5D,MAAA,MAAM0uB,WAAW,GAAGngC,QAAQ,GAAG41B,uBAAuB,GAAGp4B,GAAG,CAAA;MAE5D,MAAM4iC,YAAY,GAAGvG,eAAe,KAAKziC,MAAM,GAAG,CAAC,GAAGqR,IAAI,CAACjL,GAAG,CAACq8B,eAAe,CAACp6B,qBAAqB,EAAE,CAACugC,IAAI,CAACvuB,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;AACpH,MAAA,MAAM4uB,YAAY,GAAGxG,eAAe,KAAKziC,MAAM,GAAGA,MAAM,CAAC,OAAO,GAAG4oC,IAAI,CAACnqC,IAAI,CAAC,GAAG4S,IAAI,CAACgJ,GAAG,CAACooB,eAAe,CAACp6B,qBAAqB,EAAE,CAACugC,IAAI,CAACxiC,GAAG,CAAC,EAAEpG,MAAM,CAAC,OAAO,GAAG4oC,IAAI,CAACnqC,IAAI,CAAC,CAAC,CAAA;AACxK,MAAA,MAAMyqC,WAAW,GAAI,CAACtgC,QAAQ,GAAGogC,YAAY,IAAI,CAAC,IAAIC,YAAY,GAAGD,YAAY,CAAC,GAAI,CAAC,CAAA;MACvF,IAAIF,WAAW,GAAG,CAAC,IAAI,CAACI,WAAW,EAAE,OAAOJ,WAAW,CAAA;AACvD,MAAA,IAAIC,WAAW,GAAG,CAAC,EAAE,OAAOA,WAAW,CAAA;AACvC,MAAA,OAAO,CAAC,CAAA;KACT,CAAA;IAAA,IAEDrB,CAAAA,iBAAiB,GAAG,CAACrE,KAAK,EAAEC,KAAK,EAAEC,OAAO,EAAEC,OAAO,KAAK;AACtD,MAAA,MAAMf,eAAe,GAAG,IAAI,CAACI,kBAAkB,EAAE,CAAA;AACjD,MAAA,MAAM56B,UAAU,GAAG,IAAI,CAACi7B,uBAAuB,EAAE,CAAA;AACjD,MAAA,IAAI,CAACqF,WAAW,GAAG,IAAI,CAACG,2BAA2B,CAAC,IAAI,CAAC5G,KAAK,EAAE0B,OAAO,EAAG2F,IAAI,IAAKx9B,QAAQ,CAACy9B,gBAAgB,CAAC7F,OAAO,EAAEC,OAAO,GAAG2F,IAAI,CAAC,EAAE1G,eAAe,EAAEx6B,UAAU,EAAEs2B,mBAAmB,CAAC,CAAA;AACxL;MACA,IAAI,CAAC+J,WAAW,GAAG,CAAC,CAAA;AACpB;AACA,MAAA,MAAMe,KAAK,GAAG,IAAI,CAACf,WAAW,KAAK,CAAC,IAAK,IAAI,CAACC,WAAW,KAAK,CAAC,IAAIl3B,IAAI,CAAC+pB,GAAG,CAAC,IAAI,CAACmN,WAAW,CAAC,GAAGl3B,IAAI,CAAC+pB,GAAG,CAAC,IAAI,CAACkN,WAAW,CAAE,CAAA;AAE3H,MAAA,IAAI,CAACC,WAAW,GAAG,IAAI,CAAChsC,KAAK,CAAC+sC,YAAY,IAAID,KAAK,GAAG,IAAI,CAACd,WAAW,GAAG,CAAC,CAAA;AAC1E,MAAA,IAAI,CAACD,WAAW,GAAG,IAAI,CAAC/rC,KAAK,CAAC+sC,YAAY,IAAI,CAACD,KAAK,GAAG,IAAI,CAACf,WAAW,GAAG,CAAC,CAAA;AAE3E,MAAA,IAAI,IAAI,CAACA,WAAW,IAAI,IAAI,CAACC,WAAW,EAAE;QAExC,IAAI,CAACgB,eAAe,CAAClG,KAAK,EAAEC,KAAK,EAAEb,eAAe,CAAC,CAAA;AACrD,OAAC,MAAM;QACL,IAAI,IAAI,CAAC4F,mBAAmB,EAAE;UAC5B,IAAI,CAACmB,cAAc,EAAE,CAAA;AACvB,SAAA;AACA,QAAA,IAAI,CAAC7B,YAAY,CAACtE,KAAK,EAAEC,KAAK,CAAC,CAAA;AACjC,OAAA;KACD,CAAA;AAAA,IAAA,IAAA,CAEDmG,WAAW,GAAG,CAACC,KAAK,EAAEC,SAAS,EAAEC,cAAc,EAAEC,UAAU,EAAEjB,IAAI,KAAK;MACpE,IAAIc,KAAK,GAAG,CAAC,EAAE;AACb,QAAA,IAAIE,cAAc,CAAChB,IAAI,CAACxiC,GAAG,CAAC,GAAGs4B,2BAA2B,GAAGmL,UAAU,CAACjB,IAAI,CAACxiC,GAAG,CAAC,EAAE;AACjF,UAAA,OAAO,CAAC,CAAA;AACV,SAAA;AACF,OAAA;MACA,IAAIsjC,KAAK,GAAG,CAAC,EAAE;AACb,QAAA,IAAIE,cAAc,CAAChB,IAAI,CAACvuB,GAAG,CAAC,GAAGqkB,2BAA2B,GAAGmL,UAAU,CAACjB,IAAI,CAACvuB,GAAG,CAAC,EAAE;AACjF,UAAA,OAAO,CAAC,CAAA;AACV,SAAA;AACF,OAAA;AACA,MAAA,OAAOqvB,KAAK,CAAA;KACb,CAAA;IAAA,IAEDH,CAAAA,eAAe,GAAG,CAAClG,KAAK,EAAEC,KAAK,EAAEb,eAAe,KAAK;AACnD,MAAA,IAAI,CAAC,IAAI,CAAC4F,mBAAmB,EAAE;QAC7B,IAAI,CAACA,mBAAmB,GAAGroC,MAAM,CAACqf,qBAAqB,CAAEyqB,SAAS,IAAK;UACnE,MAAMC,SAAS,GAAI,IAAI,CAACjI,KAAK,CAAEz5B,qBAAqB,EAAE,CAAA;AACtD,UAAA,MAAMJ,UAAU,GAAG,IAAI,CAACi7B,uBAAuB,EAAE,CAAA;AACjD,UAAA,MAAM2G,UAAU,GAAGpH,eAAe,KAAKziC,MAAM,GAC3C;AAACsI,YAAAA,GAAG,EAAE,CAAC;YAAEyc,MAAM,EAAE/kB,MAAM,CAACs6B,WAAW;AAAE/xB,YAAAA,IAAI,EAAE,CAAC;YAAE2W,KAAK,EAAElf,MAAM,CAAC67B,UAAAA;AAAU,WAAC,GACtD4G,eAAe,CAACp6B,qBAAqB,EAAE,CAAA;UAC1D,MAAM2hC,YAAY,GAAGrL,WAAW,CAAC,IAAI,CAAC8K,WAAW,CAC/C,IAAI,CAACnB,WAAW,GAAG,CAAC,GAAGj3B,IAAI,CAACjL,GAAG,CAAC,IAAI,CAACkiC,WAAW,EAAE,CAAC7J,wBAAwB,CAAC,GAAGptB,IAAI,CAACgJ,GAAG,CAAC,IAAI,CAACiuB,WAAW,EAAE7J,wBAAwB,CAAC,EACnIsL,SAAS,EACT9hC,UAAU,EACV4hC,UAAU,EACVxL,qBACF,CAAC,CAAC,CAAA;UACF,MAAM4L,YAAY,GAAGtL,WAAW,CAAC,IAAI,CAAC8K,WAAW,CAC/C,IAAI,CAAClB,WAAW,GAAG,CAAC,GAAGl3B,IAAI,CAACjL,GAAG,CAAC,IAAI,CAACmiC,WAAW,EAAE,CAAC9J,wBAAwB,CAAC,GAAGptB,IAAI,CAACgJ,GAAG,CAAC,IAAI,CAACkuB,WAAW,EAAE9J,wBAAwB,CAAC,EACnIsL,SAAS,EACT9hC,UAAU,EACV4hC,UAAU,EACVtL,mBACF,CAAC,CAAC,CAAA;UAEF,MAAM2L,UAAU,GAAGF,YAAY,KAAK,CAAC,IAAIC,YAAY,KAAK,CAAC,CAAA;AAC3D,UAAA,IAAIC,UAAU,EAAE;AAEdzH,YAAAA,eAAe,CAAC1jB,MAAM,CACpB,CAACqa,KAAK,CAACqJ,eAAe,CAAChyB,UAAU,CAAC,GAAGgyB,eAAe,CAACvJ,WAAW,GAAGuJ,eAAe,CAAChyB,UAAU,IAAIu5B,YAAY,EAC7G,CAAC5Q,KAAK,CAACqJ,eAAe,CAACjyB,SAAS,CAAC,GAAGiyB,eAAe,CAAC7iB,WAAW,GAAG6iB,eAAe,CAACjyB,SAAS,IAAIy5B,YACjG,CAAC,CAAA;AACH,WAAA;UAEA,IAAI,CAAC5B,mBAAmB,GAAG,CAAC,CAAA;AAC5B,UAAA,IAAI,CAACV,YAAY,CAACtE,KAAK,EAAEC,KAAK,CAAC,CAAA;AAC/B,UAAA,IAAI4G,UAAU,EAAE;YACd,IAAI,CAACX,eAAe,CAAClG,KAAK,IAAIZ,eAAe,KAAKziC,MAAM,GAAGgqC,YAAY,GAAG,CAAC,CAAC,EAAE1G,KAAK,IAAIb,eAAe,KAAKziC,MAAM,GAAGiqC,YAAY,GAAG,CAAC,CAAC,EAAExH,eAAe,CAAC,CAAA;AACzJ,WAAA;AACF,SACF,CAAC,CAAA;AACH,OAAC,MAAM;AACL,QAAA,IAAI,CAACkF,YAAY,CAACtE,KAAK,EAAEC,KAAK,CAAC,CAAA;AACjC,OAAA;KACD,CAAA;IAAA,IAEDkG,CAAAA,cAAc,GAAG,MAAM;AACrBxpC,MAAAA,MAAM,CAACmqC,oBAAoB,CAAC,IAAI,CAAC9B,mBAAmB,CAAC,CAAA;MACrD,IAAI,CAACA,mBAAmB,GAAG,CAAC,CAAA;KAC7B,CAAA;IAAA,IAEDzD,CAAAA,OAAO,GAAG,MAAM;MACd5kC,MAAM,CAACsP,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAACq1B,SAAS,CAAC,CAAA;MACvD3kC,MAAM,CAACsP,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAACo1B,SAAS,CAAC,CAAA;MACvD1kC,MAAM,CAACsP,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAACs1B,OAAO,CAAC,CAAA;MACnD5kC,MAAM,CAACsP,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAACs1B,OAAO,CAAC,CAAA;MACpD5kC,MAAM,CAACsP,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAACs1B,OAAO,CAAC,CAAA;MAC5D5kC,MAAM,CAACsP,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAACs1B,OAAO,CAAC,CAAA;MAChD5kC,MAAM,CAACsP,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAACu1B,aAAa,CAAC,CAAA;MAC7D,IAAI,CAAC2E,cAAc,EAAE,CAAA;AACrB,MAAA,IAAI,CAACjtC,KAAK,CAACipC,UAAU,IAAI,IAAI,CAACjpC,KAAK,CAACipC,UAAU,CAAC,IAAI,CAAC,CAAA;AACpDxvB,MAAAA,YAAY,CAAC,IAAI,CAACosB,cAAc,CAAC,CAAA;AACjC;AACA;AACA,MAAA,MAAM2E,OAAO,GAAG,IAAI,CAAC/E,aAAa,CAAA;MAClC,IAAI,CAAC+E,OAAO,EAAE;AAAE,QAAA,OAAA;AAAO,OAAA;MACvB,IAAI,CAAC/E,aAAa,GAAG,IAAI,CAAA;AACzB+E,MAAAA,OAAO,CAACzG,QAAQ,GAAG,IAAI,CAAClkC,KAAK,CAACkkC,QAAQ,CAAA;AAEtC,MAAA,MAAMwB,KAAK,GAAGiF,OAAO,CAACjF,KAAK,CAAA;MAC3B,MAAM;QAACf,eAAe;AAAEf,QAAAA,WAAAA;OAAY,GAAG+G,OAAO,CAACzG,QAAQ,CAAA;AACvD,MAAA,MAAM73B,aAAa,GAAGs4B,eAAe,IAAIA,eAAe,CAACvL,WAAW,CAACwK,WAAW,EAAE,IAAI,CAACoF,iBAAiB,EAAE,CAAC,CAAA;AAC3G,MAAA,IAAIrE,eAAe,IAAIe,KAAK,IAAIr5B,aAAa,EAAE;QAC7C,MAAM;UAACnB,SAAS;UAAEC,UAAU;UAAEgB,IAAI;AAAED,UAAAA,GAAAA;AAAG,SAAC,GAAGtI,MAAM,CAAC2H,gBAAgB,CAACm6B,KAAK,CAAC,CAAA;QACzE,MAAMsI,SAAS,GAAG3hC,aAAa,CAAC03B,CAAC,GAAI9uB,IAAI,CAACjL,GAAG,CAAC,CAAC,EAAEqC,aAAa,CAACM,KAAK,CAAC,GAAG,CAAE,GAAGiI,QAAQ,CAACzI,IAAI,CAAC,GAAGyI,QAAQ,CAACzJ,UAAU,CAAC,CAAA;QAClH,MAAM8iC,QAAQ,GAAG5hC,aAAa,CAACy3B,CAAC,GAAI7uB,IAAI,CAACjL,GAAG,CAAC,CAAC,EAAEqC,aAAa,CAACK,MAAM,CAAC,GAAG,CAAE,GAAGkI,QAAQ,CAAC1I,GAAG,CAAC,GAAG0I,QAAQ,CAAC1J,SAAS,CAAC,CAAA;AAChHw6B,QAAAA,KAAK,CAACn5B,KAAK,CAAC47B,UAAU,GAAmE,gEAAA,CAAA;QACzF,MAAM+F,YAAY,gBAAAr/B,MAAA,CAAgBm/B,SAAS,EAAAn/B,KAAAA,CAAAA,CAAAA,MAAA,CAAMo/B,QAAQ,EAAK,KAAA,CAAA,CAAA;AAC9D,QAAA,IAAI,CAACvI,KAAK,CAACn5B,KAAK,CAACmI,SAAS,IAAE,EAAE,EAAE5R,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC,KAAKorC,YAAY,EAAE;AAClE,UAAA,IAAI,CAACxD,UAAU,CAACC,OAAO,CAAC,CAAA;AAC1B,SAAC,MAAM;AACLjF,UAAAA,KAAK,CAACn5B,KAAK,CAACmI,SAAS,GAAGw5B,YAAY,CAAA;UACpCvD,OAAO,CAAC7B,eAAe,GAAG,MAAM,IAAI,CAAC4B,UAAU,CAACC,OAAO,CAAC,CAAA;UACxDjF,KAAK,CAACt0B,gBAAgB,CAAC,eAAe,EAAEu5B,OAAO,CAAC7B,eAAe,CAAC,CAAA;UAChE6B,OAAO,CAAC9B,UAAU,GAAG91B,UAAU,CAAC43B,OAAO,CAAC7B,eAAe,EAAE,GAAG,CAAC,CAAA;AAC/D,SAAA;AACF,OAAC,MAAM;AACL,QAAA,IAAI,CAAC4B,UAAU,CAACC,OAAO,CAAC,CAAA;AAC1B,OAAA;KACD,CAAA;IAAA,IAODxF,CAAAA,YAAY,GAAItuB,EAAE,IAAK;MACrB,IAAI,CAACqvB,UAAU,CAACrvB,EAAE,CAAC1W,KAAK,CAACmlC,KAAK,CAAC,GAAG,CAAC,IAAI,CAACY,UAAU,CAACrvB,EAAE,CAAC1W,KAAK,CAACmlC,KAAK,CAAC,IAAI,EAAE,EAAEz2B,MAAM,CAACgI,EAAE,CAAC,CAAA;KACrF,CAAA;IAAA,IAEDs3B,CAAAA,eAAe,GAAIt3B,EAAE,IAAK;AACxB,MAAA,IAAI,CAACqvB,UAAU,CAACrvB,EAAE,CAAC1W,KAAK,CAACmlC,KAAK,CAAC,GAAG,IAAI,CAACY,UAAU,CAACrvB,EAAE,CAAC1W,KAAK,CAACmlC,KAAK,CAAC,CAAC3nB,MAAM,CAACnK,CAAC,IAAIA,CAAC,KAAKqD,EAAE,CAAC,CAAA;KACxF,CAAA;AAAA,IAAA,IAAA,CAEDgR,SAAS,GAAImf,SAAS,IAAKoH,oBAAc,CAAC,IAAI,CAACrH,SAAS,CAACC,SAAS,CAAC,EAAC,IAAI,CAACwB,OAAO,CAAC,CAAA;IAAA,IACjFF,CAAAA,SAAS,GAAG8F,oBAAc,CAAC,IAAI,CAAC3G,QAAQ,EAAC,IAAI,CAACe,OAAO,CAAC,CAAA;AAAA,IAAA,IAAA,CACtD6F,UAAU,GAAIrH,SAAS,IAAKsH,oBAAc,CAAC,IAAI,CAACvH,SAAS,CAACC,SAAS,CAAC,EAAE,IAAI,CAACwB,OAAO,CAAC,CAAA;IAAA,IACnFD,CAAAA,SAAS,GAAG+F,oBAAc,CAAC,IAAI,CAAC7G,QAAQ,EAAE,IAAI,CAACe,OAAO,CAAC,CAAA;IAAA,IAEvD+F,CAAAA,aAAa,GAAG,EAAE,CAAA;IAAA,IAElBC,CAAAA,cAAc,GAAIxH,SAAS,KAAM;AAC/B3e,MAAAA,WAAW,EAAE,IAAI,CAACR,SAAS,CAACmf,SAAS,CAAC;AACtCyH,MAAAA,YAAY,EAAE,IAAI,CAACJ,UAAU,CAACrH,SAAS,CAAA;AACzC,KAAC,CAAC,CAAA;AAAA,GAAA;AA/eF/mC,EAAAA,iBAAiBA,GAAG;IAClB,IAAI,CAACob,MAAM,CAACjK,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC9N,cAAc,CAAC,CAAA;AAChE,GAAA;AAEA8hC,EAAAA,oBAAoBA,GAAG;IACrB,IAAI,CAAC/pB,MAAM,CAACnI,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC5P,cAAc,CAAC,CAAA;AACnE,GAAA;AAEAyb,EAAAA,kBAAkBA,CAACvL,CAAC,EAAE0f,SAAS,EAAE;AAC/B,IAAA,IAAI,CAAC8J,KAAK,CAAC,IAAI,CAACsJ,aAAa,CAAC,IAAI,CAACtJ,KAAK,CAAC,IAAI,CAACuJ,cAAc,CAAC,EAAE;AAC7D,MAAA,IAAI,CAACE,kBAAkB,EAAE,CAAC9jB,MAAM,CAAC,IAAI,CAAC4jB,cAAc,EAAE,IAAI,CAACD,aAAa,CAAC,CAAA;AACzE,MAAA,IAAI,CAACC,cAAc,GAAG,IAAI,CAACD,aAAa,GAAGv6B,SAAS,CAAA;AACtD,KAAA;IACA,IAAI,IAAI,CAAC25B,KAAK,IAAI,IAAI,CAACA,KAAK,CAACj6B,UAAU,EAAE;MACvC,IAAI,CAACi6B,KAAK,CAACj6B,UAAU,CAAC4mB,WAAW,CAAC,IAAI,CAACqT,KAAK,CAAC,CAAA;AAC/C,KAAA;IACA,IAAI,IAAI,CAAC1lC,KAAK,CAACkkC,QAAQ,KAAKhR,SAAS,CAACgR,QAAQ,EAAE;MAC9C,IAAI,CAAC+E,cAAc,EAAE,CAAA;AACvB,KAAA;AACF,GAAA;EAqcAR,aAAaA,CAACiG,KAAK,EAAE;IACnBA,KAAK,CAACprC,cAAc,EAAE,CAAA;AACxB,GAAA;AAuBA1C,EAAAA,MAAMA,GAAG;AACP,IAAA,MAAA+tC,YAAA,GAAiJ,IAAI,CAACxuC,KAAK;AAArJ,MAAA;QAAC8qC,YAAY;QAAEI,YAAY;QAAEp6B,SAAS;QAAEiF,MAAM;QAAEmxB,QAAQ;QAAExP,IAAI;QAAEmU,UAAU;QAAE5C,UAAU;QAAE8D,YAAY;QAAElH,cAAc;AAAEllC,QAAAA,QAAAA;AAAiB,OAAC,GAAA6tC,YAAA;AAALxtC,MAAAA,IAAI,GAAAC,4CAAA,CAAAutC,YAAA,EAAAzrC,YAAA,CAAA,CAAA;IAC7I,MAAM;MAACioC,MAAM;AAAEjH,MAAAA,QAAAA;KAAS,GAAG,IAAI,CAAClkC,KAAK,CAAA;IACrC,IAAI,CAACuuC,aAAa,GAAG7oC,2BAAA,CACnB,IAAI,CAAC6oC,aAAa,EAClB;MACEpJ,YAAY,EAAE,IAAI,CAACA,YAAY;MAC/BE,eAAe,EAAE,IAAI,CAAC8I,eAAe;AACrCjK,MAAAA,QAAQ,EAAEiH,MAAM,GAAGA,MAAM,CAACjH,QAAQ,GAAGA,QAAQ;MAC7CpB,aAAa,EAAE,IAAI,CAAC0L,cAAAA;AACtB,KACF,CAAC,CAAA;IACD,IAAI,IAAI,CAACnI,eAAe,EAAE;AACxB,MAAA,MAAMA,eAAe,GAAG,IAAI,CAACI,kBAAkB,EAAE,CAAA;MACjD,IAAI,CAACH,aAAa,GAAG,CAACtJ,KAAK,CAACqJ,eAAe,CAAC,WAAW,CAAC,CAAC,GAAGA,eAAe,CAAC,aAAa,CAAC,GAAGA,eAAe,CAAC,WAAW,CAAC,KAAKt6B,SAAS,CAAA;MACvI,IAAI,CAACw6B,cAAc,GAAG,CAACvJ,KAAK,CAACqJ,eAAe,CAAC,YAAY,CAAC,CAAC,GAAGA,eAAe,CAAC,aAAa,CAAC,GAAGA,eAAe,CAAC,YAAY,CAAC,KAAKt6B,SAAS,CAAA;AAC5I,KAAA;AACA,IAAA,oBACEnM,yBAAA,CAAA0B,aAAA,CAACsgC,QAAQ,EAAA;MAAC9W,KAAK,EAAE,IAAI,CAACyjB,aAAAA;AAAc,KAAA,eAClC3uC,yBAAA,CAAA0B,aAAA,CAAAuB,KAAAA,EAAAA,4BAAA,KAAS1B,IAAI,EAAA;MAAEsG,GAAG,EAAE,IAAI,CAACo/B,eAAAA;AAAgB,KAAA,CAAA,eACvCjnC,yBAAA,CAAA0B,aAAA,CAACgiC,kBAAkB,EAAA;AAACryB,MAAAA,SAAS,EAAEA,SAAU;AAACiF,MAAAA,MAAM,EAAEA,MAAO;AAAE2hB,MAAAA,IAAI,EAAEsT,MAAM,GAAGA,MAAM,CAACtT,IAAI,GAAGA,IAAK;AAACzC,MAAAA,WAAW,EAAE,KAAA;KACxG+V,EAAAA,MAAM,GAAGA,MAAM,CAACrqC,QAAQ,GAAGA,QACV,CACjB,CACG,CAAC,CAAA;AAEf,GAAA;AACF,CAAA;;AAGA;AApkBaykC,kBAAkB,CAEtBjS,YAAY,GAAG;AACpB0S,EAAAA,cAAc,EAAE,GAAG;AACnBkH,EAAAA,YAAY,EAAE,IAAI;EAClB9D,UAAU,EAAEA,MAAM,EAAC;AACrB,CAAC;;;AC1NH,MAAM,CAACh7B,QAAM,EAAEqlB,SAAO,CAAC,GAAGtX,qBAAe,2BAA2B,CAAC,CAAA;AAErE,MAAMyyB,QAAQ,gBAAGntC,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,iBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAUrB1B,CAAAA,CAAAA,CAAAA,+OAAAA,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,EAAAA,CAAAA,EAAAA,KAAK,IAAIA,KAAK,CAAC0/B,KAAK,IAAIx4B,UAAG,CAE5B,CAAA,sBAAA,CAAA,CAAA,EACClH,KAAK,IAAIA,KAAK,CAAC2/B,QAAQ,IAAIz4B,UAAG,CAAA,CAAA,qBAAA,CAAA,CAE/B,EACC8C,iBAAW,CAAC,OAAO,CAAC,CACzB,CAAA;AAEM,MAAM0kC,KAAK,gBAAGjvC,yBAAK,CAAC4H,UAAU,CAAC,CAAAhF,IAAA,EAA2IiF,GAAG,KAAK;EAAA,IAAlJ;AAACg6B,MAAAA,IAAI,GAAG,OAAO;MAACqN,UAAU;AAAE79B,MAAAA,SAAS,GAAG7C,QAAM;AAAEwlB,MAAAA,cAAc,GAAG,IAAI;MAAEmb,gBAAgB;MAAEhT,QAAQ;MAAEhzB,SAAS;MAAE9F,OAAO;AAAEnC,MAAAA,QAAAA;AAAiB,KAAC,GAAA0B,IAAA;AAALrB,IAAAA,IAAI,GAAAC,4CAAA,CAAAoB,IAAA,EAAAnB,WAAA,CAAA,CAAA;AAC7K,EAAA,MAAMqgC,QAAQ,GAAGjlB,iBAAY,CAAChV,GAAG,CAAC,CAAA;AAClC,EAAA,MAAM,CAACu0B,YAAY,EAAE5G,WAAW,EAAE+F,KAAK,CAAC,GAAGJ,cAAc,CAAC2G,QAAQ,EAAEvgC,IAAI,EAAE46B,QAAQ,CAAC,CAAA;;AAEnF;AACA;AACA;EACAngB,gBAAgB,CAAC8lB,QAAQ,EAAEzwB,SAAS,EAAE2iB,cAAc,EAAEmb,gBAAgB,CAAC,CAAA;EACvE,MAAMpN,QAAQ,GAAGl8B,aAAO,CAAC,MAAMme,mBAAmB,EAAE,KAAK,CAAC,GAAG6d,IAAI,GAAIA,IAAI,GAAG,GAAG,IAAI7d,mBAAmB,EAAE,GAAG,CAAC,CAAE,EAAE,EAAE,CAAC,CAAA;EACnH,MAAMorB,cAAc,gBAAGpvC,yBAAA,CAAA0B,aAAA,CAACstC,QAAQ,EAAA/rC,4BAAA,CAAA,EAAA,EAAKm5B,YAAY,EAAA;AAAE/4B,IAAAA,OAAO,EAAEA,OAAQ;AAAC8F,IAAAA,SAAS,EAAEA,SAAU;AAACtB,IAAAA,GAAG,EAAEi6B,QAAAA;GAC7FvG,CAAAA,EAAAA,KAAK,EACLr6B,QACO,CAAC,CAAA;AACX,EAAA,OAAOguC,UAAU,GAAGE,cAAc,gBAAGpvC,yBAAA,CAAA0B,aAAA,CAAA1B,yBAAA,CAAAqoB,QAAA,QAClCmN,WAAW,eACZx1B,yBAAA,CAAA0B,aAAA,CAAC4mB,SAAI,EAAA;AAACjI,IAAAA,IAAI,EAAE0hB,QAAAA;GACTqN,EAAAA,cACG,CACN,CAAC,CAAA;AACL,CAAC;;;ACzCD,MAAMC,gBAAgB,gBAAGxtC,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,2BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,uBAAA,EAAA,KAAA,CAAA,EAE/B1B,KAAK,IAAIA,KAAK,CAAC+uC,SAAS,0BAEf7nC,UAAG,CAAA,CAAA,kDAAA,EAAA,EAAA,CAAA,EAMVlH,KAAK,IAAIA,KAAK,CAACyK,MAAM,IAAI,uBAAuB,CACnD,CACF,CAAA;AACD,MAAMukC,YAAY,gBAAG1tC,0BAAM,CAACotC,KAAK,CAAC,CAAAltC,UAAA,CAAA;EAAAC,WAAA,EAAA,uBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,2IAAA,EAAA,EAAA,CAAA,EAQ9BsI,iBAAW,CAAC,SAAS,CAAC,CACzB,CAAA;AAED,MAAM,CAACiE,QAAM,EAAEqlB,SAAO,CAAC,GAAGtX,qBAAe,2BAA2B,CAAC,CAAA;AAErE,MAAMizB,UAAU,GAAIV,KAAK,IAAKA,KAAK,CAAC9mB,aAAa,CAACtR,UAAU,IAAIo4B,KAAK,CAAC9mB,aAAa,CAACtR,UAAU,CAACiN,WAAW,GAAGmrB,KAAK,CAAC9mB,aAAa,CAACtR,UAAU,CAACpC,WAAW,CAAA;AAEvJ,MAAMm7B,uBAAuB,GAAG,GAAG,CAAA;AACnC,IAAIC,cAAc,GAAG,KAAK,CAAA;AAC1B,MAAMC,OAAO,GAAG;AAAC72B,EAAAA,OAAO,EAAC,IAAA;AAAI,CAAC,CAAA;AAEjB82B,MAAAA,OAAO,GAAGhtC,IAAA,IAAqH;EAAA,IAApH;MAAC1B,QAAQ;AAAE2uC,MAAAA,KAAK,GAAG,GAAG;MAAEC,OAAO;MAAEC,YAAY;MAAE3nB,OAAO;MAAE4nB,WAAW;MAAEC,WAAW;AAAEC,MAAAA,YAAY,GAAG,IAAA;AAAa,KAAC,GAAAttC,IAAA;AAALrB,IAAAA,IAAI,GAAAC,4CAAA,CAAAoB,IAAA,EAAAnB,WAAA,CAAA,CAAA;AAEpI,EAAA,MAAM0uC,OAAO,GAAGrlC,cAAS,EAAE,CAAA;AAC3B,EAAA,MAAM+lB,OAAO,GAAGnL,gBAAW,CAAC,CAAC,CAAC,CAAC,CAAA;;AAE/B;AACA;AACA;AACAmB,EAAAA,eAAS,CAAC,MAAM;IACd,IAAI,CAACopB,WAAW,EAAE,OAAA;IAClBE,OAAO,CAACnhB,IAAI,EAAE,CAAA;AACdmhB,IAAAA,OAAO,CAACC,UAAU,CAACH,WAAW,CAAC,CAAA;AAC/B;AACA;AACA;IACA,MAAMI,OAAO,GAAGA,MAAMF,OAAO,CAAC3hB,KAAK,EAAE,CAAA;AACrC7e,IAAAA,QAAQ,CAAC6B,gBAAgB,CAAC,OAAO,EAAE6+B,OAAO,EAAE;AAACC,MAAAA,IAAI,EAAE,IAAA;AAAI,KAAC,CAAC,CAAA;AACzDtsC,IAAAA,MAAM,CAACwN,gBAAgB,CAAC,QAAQ,EAAE6+B,OAAO,EAAE;AAACC,MAAAA,IAAI,EAAE,IAAI;AAAE/P,MAAAA,OAAO,EAAE,IAAA;AAAI,KAAC,CAAC,CAAA;AACvE;AACA;AACA;AACA;AACA,IAAA,MAAMgQ,EAAE,GAAG,IAAIC,cAAc,CAAC,MAAMxsC,MAAM,CAACK,aAAa,CAAC,IAAIif,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA;AAC9FitB,IAAAA,EAAE,CAACnmB,OAAO,CAACza,QAAQ,CAAC8T,IAAI,CAAC,CAAA;AACzB,IAAA,MAAMgtB,MAAM,GAAGt9B,UAAU,CAAC,MAAMo9B,EAAE,CAACG,UAAU,EAAE,EAAET,WAAW,CAAC,CAAA;AAC7D,IAAA,OAAO,MAAM;AACXtgC,MAAAA,QAAQ,CAAC2D,mBAAmB,CAAC,OAAO,EAAE+8B,OAAO,CAAC,CAAA;AAC9CrsC,MAAAA,MAAM,CAACsP,mBAAmB,CAAC,QAAQ,EAAE+8B,OAAO,CAAC,CAAA;MAC7CE,EAAE,CAACG,UAAU,EAAE,CAAA;MACf12B,YAAY,CAACy2B,MAAM,CAAC,CAAA;KACrB,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;;AAEN;AACA;EACA,MAAME,WAAW,GAAGA,MAAM;IACxBR,OAAO,CAACnhB,IAAI,EAAE,CAAA;AACdmhB,IAAAA,OAAO,CAACC,UAAU,CAACF,YAAY,CAAC,CAAA;GACjC,CAAA;;AAED;AACA;AACA;AACA;AACA,EAAA,MAAMU,UAAU,GAAGlrB,gBAAW,CAAC,CAAC,CAAC,CAAC,CAAA;AAClC,EAAA,MAAMmrB,YAAY,GAAGnrB,gBAAW,CAAC,KAAK,CAAC,CAAA;EACvC,MAAMmpB,YAAY,GAAGA,MAAM;AACzBgC,IAAAA,YAAY,CAACv/B,GAAG,CAAC,KAAK,CAAC,CAAA;AACvBs/B,IAAAA,UAAU,CAACt/B,GAAG,CAAC6B,UAAU,CAAC,MAAM;AAC9B09B,MAAAA,YAAY,CAACv/B,GAAG,CAAC,IAAI,CAAC,CAAA;AACtBq/B,MAAAA,WAAW,EAAE,CAAA;AACb;AACA;AACA;MACA3sC,MAAM,CAACwN,gBAAgB,CAAC,QAAQ,EAAE2+B,OAAO,CAAC3hB,KAAK,EAAE;AAAC8hB,QAAAA,IAAI,EAAE,IAAI;AAAE/P,QAAAA,OAAO,EAAE,IAAA;AAAI,OAAC,CAAC,CAAA;KAC9E,EAAEsP,KAAK,CAAC,CAAC,CAAA;GACX,CAAA;EACD,MAAMiB,UAAU,GAAIvtC,CAAC,IAAK;AACxByW,IAAAA,YAAY,CAAC42B,UAAU,CAACr/B,GAAG,EAAE,CAAC,CAAA;IAC9B,IAAIs/B,YAAY,CAACt/B,GAAG,EAAE,EAAEhO,CAAC,CAACG,cAAc,EAAE,CAAA;GAC3C,CAAA;AACD;EACA,MAAMqtC,WAAW,GAAGA,MAAM/2B,YAAY,CAAC42B,UAAU,CAACr/B,GAAG,EAAE,CAAC,CAAA;;AAExD;AACAsV,EAAAA,eAAS,CAAC,MAAM,MAAM7iB,MAAM,CAACsP,mBAAmB,CAAC,QAAQ,EAAE68B,OAAO,CAAC3hB,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;EAE9E,MAAMwiB,UAAU,GAAIztC,CAAC,IAAK;AACxB,IAAA,IAAI,CAACwsC,YAAY,IAAI,CAACvpC,+BAAA,CAAaupC,YAAY,CAAC,GAAGA,YAAY,GAAGP,UAAU,EAAEjsC,CAAC,CAAC,EAAE;AAChFstB,MAAAA,OAAO,CAACvf,GAAG,CAAC6B,UAAU,CAAC,MAAM;QAE3Bg9B,OAAO,CAACnhB,IAAI,EAAE,CAAA;AACd,QAAA,IAAI0gB,cAAc,IAAIC,OAAO,CAAC72B,OAAO,EAAE;AACrC62B,UAAAA,OAAO,CAAC72B,OAAO,CAACrH,MAAM,EAAE,CAAA;AAC1B,SAAA;OACD,EAAEq+B,OAAO,IAAIJ,cAAc,GAAI,CAAC,GAAGG,KAAK,CAAC,CAAC,CAAA;AAC3C,MAAA,CAAC3uC,QAAQ,IAAIqC,CAAC,CAACykB,aAAa,CAACnc,UAAU,CAAC2F,gBAAgB,CAAC,YAAY,EAAEy/B,YAAY,CAAC,CAAA;AACtF,KAAA;GACD,CAAA;EAED,MAAMA,YAAY,GAAI1tC,CAAC,IAAK;AAC1ByW,IAAAA,YAAY,CAAC6W,OAAO,CAACtf,GAAG,EAAE,CAAC,CAAA;AAC3B,IAAA,IAAI4+B,OAAO,CAAC5+B,GAAG,EAAE,EAAE;AACjBsf,MAAAA,OAAO,CAACvf,GAAG,CAAC,KAAK,CAAC,CAAA;MAClB,CAACpQ,QAAQ,IAAIqC,CAAC,CAACykB,aAAa,CAAC1U,mBAAmB,CAAC,YAAY,EAAE29B,YAAY,CAAC,CAAA;AAC5E,MAAA,MAAMC,eAAe,GAAGxB,cAAc,GAAGv8B,UAAU,CAAC,MAAM;AACxDu8B,QAAAA,cAAc,GAAGA,cAAc,KAAKwB,eAAe,GAAG,KAAK,GAAGxB,cAAc,CAAA;OAC7E,EAACD,uBAAuB,CAAC,CAAA;MAC1BU,OAAO,CAAC3hB,KAAK,EAAE,CAAA;AACjB,KAAA;GACD,CAAA;EAED,MAAM2iB,YAAY,GAAGA,MAAM;IACzB,IAAIzB,cAAc,IAAI7e,OAAO,CAACtf,GAAG,EAAE,KAAG,KAAK,EAAE;AAC3C,MAAA,OAAO,EAAE,CAAA;AACX,KAAC,MAAM;AACL,MAAA,OAAO/C,QAAM,CAAA;AACf,KAAA;GACD,CAAA;AAED,EAAA,MAAM4iC,YAAY,GAAGhpB,OAAO,IAAI,CAAC4nB,WAAW,CAAA;AAE5C,EAAA,oBAAOhwC,yBAAA,CAAA0B,aAAA,CAAC2tC,gBAAgB,EAAA;IAACrkC,MAAM,EAAEmlC,OAAO,CAACnlC,MAAO;IAACskC,SAAS,EAAE,CAAC,CAACpuC,QAAS;AAC9CmwC,IAAAA,SAAS,EAAErB,WAAW,GAAG7jC,SAAS,GAAG8kC,YAAa;IAClDA,YAAY,EAAG/vC,QAAQ,IAAI,CAAC8uC,WAAW,GAAIiB,YAAY,GAAG9kC,SAAU;AACpEmlC,IAAAA,YAAY,EAAEtB,WAAW,GAAG7jC,SAAS,GAAG6kC,UAAW;AACnDnC,IAAAA,YAAY,EAAEuC,YAAY,GAAGvC,YAAY,GAAG1iC,SAAU;AACtD2kC,IAAAA,UAAU,EAAEM,YAAY,GAAGN,UAAU,GAAG3kC,SAAU;AAClD4kC,IAAAA,WAAW,EAAEK,YAAY,GAAGL,WAAW,GAAG5kC,SAAU;AACpD9I,IAAAA,OAAO,EAAE2sC,WAAW,GAAGW,WAAW,GAAGxkC,SAAAA;AAAU,GAAA,EAEpEgkC,OAAO,CAACnlC,MAAM,IAAIod,OAAO,iBACzBpoB,yBAAA,CAAA0B,aAAA,CAAC6tC,YAAY,EAAAtsC,4BAAA,CAAA;AAAEoO,IAAAA,SAAS,EAAE8/B,YAAa;AAAChC,IAAAA,gBAAgB,EAAE;AAACtnC,MAAAA,GAAG,EAAC8nC,OAAAA;KAAS;IAAErjC,GAAG,EAAE,EAAE/K,IAAI,CAACwnB,MAAM,IAAIxnB,IAAI,CAACgL,IAAI,IAAIhL,IAAI,CAAC2hB,KAAK,IAAI3hB,IAAI,CAAC+5B,EAAE,IAAI/5B,IAAI,CAAC85B,EAAE,CAAA;AAAE,GAAA,EAAK95B,IAAI,CACrJ6mB,EAAAA,OACW,CAAC,EAEhBlnB,QACe,CAAC,CAAA;AACrB;;;;;;;;;ACzHA,MAAMsN,QAAM,GAAGH,qBAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;AAC1D,MAAMkjC,SAAS,GAAGljC,qBAAe,CAAC,oDAAoD,EAAE,gDAAgD,CAAC,CAAA;AACzI,MAAMmjC,YAAY,GAAGnjC,qBAAe,CAAC,mDAAmD,EAAE,gDAAgD,CAAC,CAAA;AAC3I,MAAMojC,UAAU,GAAGpjC,qBAAe,CAAC,8BAA8B,EAAE,kBAAkB,CAAC,CAAA;AACtF,MAAMqjC,eAAe,GAAGrjC,qBAAe,CAAC,mDAAmD,EAAE,kDAAkD,CAAC,CAAA;AAEzHF,qBAAe,CAAC,eAAe,EAAC;AAEvD,MAAMwjC,kBAAkB,GAAGA,CAACnnC,CAAC,EAACqD,CAAC,KAAKrD,CAAC,KAAKqD,CAAC,CAAA;MAE9B+jC,QAAQ,gBAAG/vC,0BAAM,CAACgwC,EAAE,CAAA9vC,UAAA,CAAA;EAAAC,WAAA,EAAA,uBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,wFAAA,EAAA,GAAA,EAAA,mBAAA,EAAA,sHAAA,EAAA,oGAAA,EAAA,GAAA,EAAA,uCAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAO7B1B,KAAK,IAAIA,KAAK,CAACuxC,UAAU,IAAA,sDAI1B,EACClwC,IAAI,EACSrB,KAAK,IAAIA,KAAK,CAACwxC,QAAQ,IAAI,EAAE,EAS1C9nC,WAAK,CAACC,MAAM,CAAA7C,iBAAA,KAAAA,iBAAA,GAAAC,0CAAA,CAMV1F,CAAAA,yGAAAA,EAAAA,8BAAAA,EAAAA,gBAAAA,CAAAA,CAAAA,CAAAA,EAAAA,IAAI,EACSrB,KAAK,IAAI,CAACA,KAAK,CAACwxC,QAAQ,IAAI,EAAE,IAAI,CAAC,CAWlDC,EAAAA,YAAM,CAAC,OAAO,EAAEvqC,UAAG,CAGHlH,CAAAA,6BAAAA,EAAAA,SAAAA,EAAAA,IAAAA,CAAAA,EAAAA,KAAK,IAAIwJ,uBAAc,CAAC,IAAI,EAAExH,cAAQ,CAAC,MAAM,CAAC,CAAChC,KAAK,CAAC,CAAC,EAC3DA,KAAK,IAAIqJ,eAAM,CAAC,IAAI,EAAErH,cAAQ,CAAC,MAAM,CAAC,CAAChC,KAAK,CAAC,CAAC,CACvD,CAAC,EACHyxC,YAAM,CAAC,WAAW,EAAEvqC,UAAG,CAAA,CAAA,QAAA,EAAA,GAAA,CAAA,EACdlF,cAAQ,CAAC,MAAM,CAAC,CAC1B,CAAC,EAIAyvC,YAAM,CAAC,WAAW,0IAMnB,CAAC,EACAA,YAAM,CAAC,YAAY,EAAEvqC,UAAG,CAAA,CAAA,uBAAA,EAAA,+DAAA,EAAA,GAAA,CAAA,EAEtBE,MAAM,EAKJsC,WAAK,CAACC,MAAM,CAAAC,kBAAA,KAAAA,kBAAA,GAAA7C,0CAAA,CAIjB,CAAA,0CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,EACA0qC,YAAM,CAAC,mBAAmB,EAAEvqC,UAAG,CAIhC,CAAA,8BAAA,CAAA,CAAA,CAAC,EACA8C,iBAAW,CAAC,UAAU,CAAC,EAC1B;AAED,MAAM0nC,gBAAgB,gBAAGpwC,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,+BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAI/BgI,CAAAA,CAAAA,CAAAA,gDAAAA,EAAAA,EAAAA,CAAAA,EAAAA,WAAK,CAACC,MAAM,CAAAG,kBAAA,KAAAA,kBAAA,GAAA/C,0CAAA,CAGf,CAAA,4BAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,MAAM4qC,gBAAgB,gBAAGrwC,0BAAM,CAACq3B,IAAI,CAAAn3B,UAAA,CAAA;EAAAC,WAAA,EAAA,+BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAEnC,CAAA,CAAA,CAAA,cAAA,CAAA,CAAA,CAAA;MAEYkwC,QAAQ,gBAAGtwC,0BAAM,CAACuwC,EAAE,CAAArwC,UAAA,CAAA;EAAAC,WAAA,EAAA,uBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAOhC,CAAA,CAAA,CAAA,gGAAA,CAAA,EAAA;AAEM,MAAMowC,eAAe,gBAAGxwC,0BAAM,CAACswC,QAAQ,CAAC,CAAApwC,UAAA,CAAA;EAAAC,WAAA,EAAA,8BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAc3C1B,CAAAA,CAAAA,CAAAA,2VAAAA,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,EAAAA,CAAAA,EAAAA,KAAK,IAAIA,KAAK,CAAC+xC,YAAY,IAAArjC,QAAAA,CAAAA,MAAA,CACzB2iC,QAAQ,EAAA,gDAAA,CAGX,EACCI,YAAM,CAAC,KAAK,EAAEvqC,UAAG,gBACflH,KAAK,IAAIA,KAAK,CAAC8/B,UAAU,GAAG,EAAE,GAAI9/B,KAAK,CAAC0/B,KAAK,GAAG,sBAAsB,GAAG,qBAAsB,EAE/F+R,YAAM,CAAC,SAAS,EAAA,oCAAA,EAAA,iCAIjB,CAAC,CACH,CAAC,EACAznC,iBAAW,CAAC,aAAa,CAAC,EAC7B;MAEYgoC,eAAe,gBAAG1wC,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,8BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,mCAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAGrC1B,KAAK,IAAIA,KAAK,CAAC2/B,QAAQ,IAAA,sFAIxB,EACC3/B,KAAK,IAAIA,KAAK,CAAC0/B,KAAK,iFAIrB,EACF;MAEYuS,aAAa,gBAAG3wC,0BAAM,CAACgwC,EAAE,CAAA9vC,UAAA,CAAA;EAAAC,WAAA,EAAA,4BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,yGAAA,EAAA,EAAA,CAAA,EAMhC+vC,YAAM,CAAC,SAAS,EAAEvqC,UAAG,CAAA,CAAA,sCAAA,CAAA,CAEtB,CAAC,EACL;MAEYgrC,WAAW,gBAAG5wC,0BAAM,CAACgwC,EAAE,CAAA9vC,UAAA,CAAA;EAAAC,WAAA,EAAA,0BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAcnC,CAAA,CAAA,CAAA,6MAAA,CAAA,EAAA;AAED,MAAMywC,gBAAgB,GAAGtrC,kBAAY,CAACxF,IAAI,CAAC,CAAAoqB,gBAAA,KAAAA,gBAAA,GAAA1kB,0CAAA,CAQ1C,CAAA,gJAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAKM,MAAMqrC,QAAQ,SAAS3yC,yBAAK,CAACC,SAAS,CAAC;EAAAC,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAAC,SAAA,CAAA,CAAA;IAAA,IA2B5CyyC,CAAAA,kBAAkB,GAAG,MAAM;MACzB,MAAM37B,EAAE,GAAG4b,4BAAQ,CAACC,4DAA4D,CAACC,WAAW,CAAC,IAAI,CAAC,CAAA;AAClG,MAAA,MAAMkF,IAAI,GAAGhhB,EAAE,CAACpL,UAAU,CAAA;AAC1B,MAAA,IAAIoL,EAAE,CAAC9J,SAAS,GAAG8qB,IAAI,CAACzjB,SAAS,EAAE;AACjCyjB,QAAAA,IAAI,CAACzjB,SAAS,GAAGyC,EAAE,CAAC9J,SAAS,CAAA;AAC/B,OAAC,MAAM,IAAI8J,EAAE,CAAC9J,SAAS,GAAG8J,EAAE,CAAC0mB,YAAY,GAAG1F,IAAI,CAACzjB,SAAS,GAAGyjB,IAAI,CAAC0F,YAAY,EAAE;AAC9E1F,QAAAA,IAAI,CAACzjB,SAAS,GAAGyC,EAAE,CAAC9J,SAAS,GAAG8J,EAAE,CAAC0mB,YAAY,GAAG1F,IAAI,CAAC0F,YAAY,CAAA;AACrE,OAAA;KACD,CAAA;IAAA,IAED/W,CAAAA,OAAO,GAAG,MAAM;AACd,MAAA,IAAI,IAAI,CAACrmB,KAAK,CAAC+H,KAAK,EAAE;QACpB,MAAMiK,IAAI,GAAGsgB,4BAAQ,CAACC,4DAA4D,CAACC,WAAW,CAAC,IAAI,CAAC,CAAA;QACpGxgB,IAAI,CAACu2B,KAAK,EAAE,CAAA;AACd,OAAA;KACD,CAAA;IAAA,IACDwI,CAAAA,YAAY,GAAG,MAAM,IAAI,CAAC/wC,KAAK,CAACsyC,gBAAgB,IAAI,IAAI,CAACtyC,KAAK,CAACsyC,gBAAgB,CAAC,IAAI,CAACtyC,KAAK,CAAC0jC,KAAK,CAAC,CAAA;AAAA,IAAA,IAAA,CACjG6O,UAAU,GAAG,MAAM,IAAI,CAACvyC,KAAK,CAACsyC,gBAAgB,IAAI,IAAI,CAACtyC,KAAK,CAACsyC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;IAAA,IAEjFE,CAAAA,QAAQ,GAAIxvC,CAAC,IAAK;AAChB,MAAA,IAAI,IAAI,CAAChD,KAAK,CAACW,QAAQ,EAAE;QACvBqC,CAAC,CAACG,cAAc,EAAE,CAAA;QAClB,IAAI,CAAC,IAAI,CAACnD,KAAK,CAAC+H,KAAK,EACnB,IAAI,CAACgpC,YAAY,EAAE,CAAA;AACvB,OAAA;KACD,CAAA;IAAA,IAEDjuC,CAAAA,OAAO,GAAIE,CAAC,IAAK;MACf,IAAI,CAAChD,KAAK,CAAC8C,OAAO,IAAI,IAAI,CAAC9C,KAAK,CAAC8C,OAAO,EAAE,CAAA;KAC3C,CAAA;AAAA,GAAA;AAjDDmiC,EAAAA,oBAAoBA,GAAG;AACrB,IAAA,IAAI,CAACjlC,KAAK,CAACyyC,OAAO,CAACC,GAAG,CAAC,SAAS,EAAE,IAAI,CAACrsB,OAAO,CAAC,CAAA;AACjD,GAAA;AAEAzH,EAAAA,kBAAkBA,GAAG;AACnB,IAAA,IAAI,IAAI,CAAC5e,KAAK,CAAC+H,KAAK,EAAE;MACpB,IAAI,CAACsqC,kBAAkB,EAAE,CAAA;AAC3B,KAAA;AACF,GAAA;AAEAvyC,EAAAA,iBAAiBA,GAAG;AAClB,IAAA,IAAI,CAACE,KAAK,CAACyyC,OAAO,CAAC17B,EAAE,CAAC,SAAS,EAAE,IAAI,CAACsP,OAAO,CAAC,CAAA;IAC9C,IAAI,IAAI,CAACrmB,KAAK,CAAC2yC,QAAQ,IAAI,IAAI,CAAC3yC,KAAK,CAACsyC,gBAAgB,EAAE;MACtD,IAAI,CAACtyC,KAAK,CAACsyC,gBAAgB,CAAC,IAAI,CAACtyC,KAAK,CAAC0jC,KAAK,CAAC,CAAA;MAC7C,MAAMhtB,EAAE,GAAG4b,4BAAQ,CAACC,4DAA4D,CAACC,WAAW,CAAC,IAAI,CAAC,CAAA;AAClG,MAAA,MAAMkF,IAAI,GAAGhhB,EAAE,CAACpL,UAAU,CAAA;AAC1BosB,MAAAA,IAAI,CAACzjB,SAAS,GAAGyC,EAAE,CAAC9J,SAAS,GAAI8J,EAAE,CAAC0mB,YAAY,GAAG,CAAE,GAAI1F,IAAI,CAAC0F,YAAY,GAAG,CAAE,CAAA;AACjF,KAAA;AACF,GAAA;AAiCA38B,EAAAA,MAAMA,GAAG;AACP,IAAA,MAAAC,WAAA,GAAwF,IAAI,CAACV,KAAK;AAA5F,MAAA;QAAC4yC,KAAK;QAAEltB,UAAU;QAAEpjB,IAAI;QAAEuwC,MAAM;QAAEC,UAAU;QAAEC,OAAO;QAAEhzC,IAAI;AAAEY,QAAAA,QAAAA;AAAiB,OAAC,GAAAD,WAAA;AAALM,MAAAA,IAAI,GAAAC,4CAAA,CAAAP,WAAA,EAAAQ,WAAA,CAAA,CAAA;AACpF,IAAA,MAAM8xC,GAAG,GAAIH,MAAM,GAAIzwC,IAAI,GAAG,GAAG,CAAA;IACjC,oBAAO3C,yBAAA,CAAA0B,aAAA,CAACkwC,QAAQ,EAAA3uC,4BAAA,KACV1B,IAAI,EAAA;MACR8B,OAAO,EAAE,IAAI,CAACA,OAAQ;MACtB4tC,YAAY,EAAE,IAAI,CAAC6B,UAAW;MAC9BxB,YAAY,EAAE,IAAI,CAACA,YAAa;MAChCR,UAAU,EAAE,IAAI,CAACiC,QAAAA;AAAS,KAAA,CAAA,eAE1B/yC,yBAAA,CAAA0B,aAAA,CAAC6xC,GAAG,EAAA;AAAC1wC,MAAAA,IAAI,EAAEA,IAAK;AAACE,MAAAA,EAAE,EAAEqwC,MAAAA;KAClBC,EAAAA,UAAU,EACV/yC,IAAI,iBAAIN,yBAAA,CAAA0B,aAAA,CAACE,IAAI,EAAA;AAACtB,MAAAA,IAAI,EAAEA,IAAAA;AAAK,KAAC,CAAC,EAC3B6yC,KACE,CACG,CAAC,CAAA;AACb,GAAA;AACF,CAAA;AA3EaR,QAAQ,CAEZa,mBAAmB,GAAG,IAAI,CAAA;AAFtBb,QAAQ,CAGZjf,YAAY,GAAG;EACpBsf,OAAO,EAAES,wBAAI,EAAC;AAChB,CAAC,CAAA;AAwEI,MAAMC,EAAE,gBAAG1zC,yBAAK,CAAC4H,UAAU,CAAC,CAAAhF,IAAA,EAAgNiF,GAAG,KAAK;EAAA,IAAvN;MAACmrC,OAAO,GAAGS,wBAAI,EAAE;MAAExP,KAAK;MAAE0P,QAAQ;MAAEC,QAAQ;MAAEtrC,KAAK;MAAE2d,UAAU;MAAE4tB,WAAW;MAAEC,gBAAgB;MAAE5yC,QAAQ;MAAE2xC,gBAAgB;MAAExvC,OAAO;MAAEgwC,UAAU;MAAED,MAAM;MAAE9yC,IAAI;MAAE6yC,KAAK;MAACY,QAAQ;MAACC,QAAQ;MAAE3gC,MAAM;AAAExQ,MAAAA,IAAAA;AAAa,KAAC,GAAAD,IAAA;AAALrB,IAAAA,IAAI,GAAAC,4CAAA,CAAAoB,IAAA,EAAAU,UAAA,CAAA,CAAA;AAC/O,EAAA,MAAM2wC,OAAO,GAAGp3B,iBAAY,CAAChV,GAAG,CAAC,CAAA;AACjC,EAAA,MAAMqsC,MAAM,GAAGpuB,YAAM,EAAE,CAAA;AACvB,EAAA,MAAMwtB,OAAO,GAAGxoC,cAAS,EAAE,CAAA;AAC3B,EAAA,MAAMqpC,YAAY,GAAGzuB,gBAAW,CAAC,KAAK,CAAC,CAAA;EAEvC,MAAM0uB,SAAS,GAAGA,MAAM;AACtBD,IAAAA,YAAY,CAAC7iC,GAAG,CAAC,KAAK,CAAC,CAAA;IACvB,IAAIhJ,KAAK,IAAIpH,QAAQ,EAAE;MACrBoyC,OAAO,CAACtkB,IAAI,EAAE,CAAA;AAChB,KAAA;GACD,CAAA;EAED,MAAMqlB,YAAY,GAAIC,QAAQ,IAAK;IACjC,IAAIrQ,KAAK,KAAKqQ,QAAQ,EACpBhB,OAAO,CAAC9kB,KAAK,EAAE,CAAA;AACjB2lB,IAAAA,YAAY,CAAC7iC,GAAG,CAAC,IAAI,CAAC,CAAA;GACvB,CAAA;EAED,MAAMsV,OAAO,GAAGA,MAAM;AACpB,IAAA,IAAIte,KAAK,EAAE;AACT2rC,MAAAA,OAAO,CAACn7B,OAAO,CAACgwB,KAAK,EAAE,CAAA;AACzB,KAAA;GACD,CAAA;AAEDjiB,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAIve,KAAK,EAAE;MACT,IAAI;AACJ,QAAA,MAAM2O,EAAE,GAAGg9B,OAAO,CAACn7B,OAAO,CAAA;AAC1B,QAAA,MAAM2C,MAAM,GAAGxE,EAAE,CAACs9B,aAAa,CAAA;AAC/B,QAAA,MAAMC,eAAe,GAAG/4B,MAAM,CAACg5B,SAAS,CAAA;QACxC,MAAMC,qBAAqB,GACxBF,eAAe,IAAIA,eAAe,CAAC7sB,OAAO,KAAK,KAAK,IAAK6sB,eAAe,CAACrnC,SAAS,GAAGsO,MAAM,CAACjH,SAAS,GAAIiH,MAAM,CAACkiB,YAAY,GACzH6W,eAAe,CAAC7W,YAAY,GAC5B,CAAC,CAAA;AACP,QAAA,IAAI1mB,EAAE,CAAC9J,SAAS,GAAGsO,MAAM,CAACkiB,YAAY,GAAGliB,MAAM,CAACjH,SAAS,GAAGkgC,qBAAqB,GAAGz9B,EAAE,CAAC0mB,YAAY,EAAE;AACnGliB,UAAAA,MAAM,CAACsH,MAAM,CAAC,CAAC,EAAE9L,EAAE,CAAC9J,SAAS,GAAGsO,MAAM,CAACkiB,YAAY,GAAG1mB,EAAE,CAAC0mB,YAAY,GAAG+W,qBAAqB,CAAC,CAAA;SAC/F,MAAM,IAAIz9B,EAAE,CAAC9J,SAAS,GAAGsO,MAAM,CAACjH,SAAS,EAAE;UAC1CiH,MAAM,CAACsH,MAAM,CAAC,CAAC,EAAE9L,EAAE,CAAC9J,SAAS,CAAC,CAAA;AAChC,SAAA;AACA,OAAC,CAAC,OAAO5J,CAAC,EAAE,EAAC;AACf,KAAA;AACAyvC,IAAAA,OAAO,CAAC17B,EAAE,CAAC,SAAS,EAAEsP,OAAO,CAAC,CAAA;AAC9BosB,IAAAA,OAAO,CAAC17B,EAAE,CAAC,YAAY,EAAE+8B,YAAY,CAAC,CAAA;AACtCrB,IAAAA,OAAO,CAAC17B,EAAE,CAAC,SAAS,EAAE88B,SAAS,CAAC,CAAA;AAChC,IAAA,OAAO,MAAM;AACXpB,MAAAA,OAAO,CAACC,GAAG,CAAC,SAAS,EAAErsB,OAAO,CAAC,CAAA;AAC/BosB,MAAAA,OAAO,CAACC,GAAG,CAAC,YAAY,EAAEoB,YAAY,CAAC,CAAA;AACvCrB,MAAAA,OAAO,CAACC,GAAG,CAAC,SAAS,EAAEmB,SAAS,CAAC,CAAA;KAClC,CAAA;AACH,GAAC,EAAE,CAAC9rC,KAAK,CAAC,CAAC,CAAA;EAEXue,eAAS,CAAC,MAAM,MAAMysB,OAAO,CAAC9kB,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;AAE1C3H,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI3lB,QAAQ,IAAI,CAACyzC,cAAQ,EAAE,EAAE;AAC3B,MAAA,IAAIrsC,KAAK,EAAE;AACT,QAAA,IAAI,CAACgrC,OAAO,CAACtoC,MAAM,IAAIsoC,OAAO,CAACsB,OAAO,IAAI,CAACT,YAAY,CAAC5iC,GAAG,EAAE,EAAE;UAC7D+hC,OAAO,CAACtkB,IAAI,EAAE,CAAA;AAChB,SAAA;AACF,OAAC,MAAM;QACL,IAAIskB,OAAO,CAACtoC,MAAM,EAAE;AAClB,UAAA,IAAI6oC,WAAW,KAAK,CAAC,CAAC,EAAE;AACtB;AACA;AACA;AACAP,YAAAA,OAAO,CAAClD,UAAU,CAAC,GAAG,CAAC,CAAA;AACzB,WAAC,MAAM;AACL;AACAkD,YAAAA,OAAO,CAAClD,UAAU,CAAC,GAAG,CAAC,CAAA;AACzB,WAAA;AACA4C,UAAAA,OAAO,CAAC6B,IAAI,CAAC,YAAY,EAAE5Q,KAAK,CAAC,CAAA;AACnC,SAAA;AACF,OAAA;AACF,KAAA;AACF,GAAC,EAAE,CAAC4P,WAAW,CAAC,CAAC,CAAA;EAEjB,MAAMiB,WAAW,GAAIvxC,CAAC,IAAK;IACzB,IAAI,CAAC+E,KAAK,EAAE;AACV9E,MAAAA,oBAAc,CAACqvC,gBAAgB,EAAE5O,KAAK,CAAC,CAAA;AACzC,KAAA;AACA1gC,IAAAA,CAAC,aAADA,CAAC,KAAA,KAAA,CAAA,IAADA,CAAC,CAAEskB,eAAe,EAAE,CAAA;GACrB,CAAA;EAED,MAAMirB,UAAU,GAAIvvC,CAAC,IAAK;AACxBC,IAAAA,oBAAc,CAACqvC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAA;AACpCtvC,IAAAA,CAAC,aAADA,CAAC,KAAA,KAAA,CAAA,IAADA,CAAC,CAAEskB,eAAe,EAAE,CAAA;GACrB,CAAA;EAED,MAAMktB,cAAc,GAAIxxC,CAAC,IAAK;IAC5B,IAAIrC,QAAQ,IAAI0yC,QAAQ,EAAE;MACxBrwC,CAAC,CAACskB,eAAe,EAAE,CAAA;AACrB,KAAA;AACA,IAAA,IAAI3mB,QAAQ,EAAE;AACZ,MAAA,IAAIoH,KAAK,EAAE;QACTgrC,OAAO,CAACxkB,MAAM,EAAE,CAAA;AAClB,OAAC,MAAM;AACLgmB,QAAAA,WAAW,EAAE,CAAA;AACf,OAAA;AACF,KAAC,MAAM;AACLtxC,MAAAA,oBAAc,CAACH,OAAO,EAAEE,CAAC,CAAC,CAAA;AAC5B,KAAA;GACD,CAAA;EAED,MAAMyxC,UAAU,GAAGA,MAAMhC,OAAO,CAAC6B,IAAI,CAAC,SAAS,CAAC,CAAA;AAEhD,EAAA,MAAM9Q,QAAQ,GAAI7iC,QAAQ,IAAKlB,yBAAK,CAAC6d,QAAQ,CAACnQ,GAAG,CAACxM,QAAQ,EAAE+M,CAAC,iBAAIjO,yBAAK,CAAC4e,YAAY,CAAC3Q,CAAC,EAAE;IACrFyS,KAAK,EAAEnf,IAAI,CAAC0zC,aAAa;IACzBL,OAAO,EAAEtB,OAAO,CAACsB,OAAO;IACxBE,WAAW,EAAExB,OAAO,CAACtkB,IAAI;AACzB;AACA;AACA;IACAsiB,YAAY,EAAEgC,OAAO,CAACtkB,IAAI;AAC1B5B,IAAAA,OAAO,EAAE4nB,UAAU;AACnBE,IAAAA,GAAG,EAAE,IAAI;AACTrT,IAAAA,IAAI,EAAE5zB,CAAC,CAAC1N,KAAK,CAACshC,IAAI,IAAI8R,QAAAA;AACxB,GAAC,CAAC,CAAC,CAAA;AAEH,EAAA,MAAMvrB,OAAO,gBAAGpoB,yBAAA,CAAA0B,aAAA,CAAA1B,yBAAA,CAAAqoB,QAAA,EACbgrB,IAAAA,EAAAA,UAAU,EACV/yC,IAAI,iBAAIN,yBAAA,CAAA0B,aAAA,CAACE,IAAI,EAAA;AAACtB,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAC,CAAC,EAC3B6yC,KAAK,EAAC,GAAC,EAACa,QAAQ,iBAAIh0C,yBAAA,CAAA0B,aAAA,CAACwwC,gBAAgB,QAAC,GAAC,EAAC8B,QAAQ,EAAC,GAAmB,CAAC,EACrED,QAAQ,iBAAI/zC,yBAAA,CAAA0B,aAAA,CAACuwC,gBAAgB,EAAA,IAAA,EAAE8B,QAA2B,CAAC,EAC3D7yC,QAAQ,iBAAIlB,yBAAA,CAAA0B,aAAA,CAACgxC,gBAAgB,EAAA;AAACpyC,IAAAA,IAAI,EAAC,aAAA;AAAa,GAAC,CAClD,CAAC,CAAA;AAEH,EAAA,MAAMizC,GAAG,GAAGH,MAAM,GAAGzwC,IAAI,GAAG,GAAG,CAAA;AAC/B,EAAA,oBAAO3C,yBAAA,CAAA0B,aAAA,CAACkwC,QAAQ,EAAA3uC,4BAAA,CAAA;AACd4E,IAAAA,GAAG,EAAEosC,OAAAA;AAAQ,GAAA,EACT1yC,IAAI,EAAA;AACR+G,IAAAA,KAAK,EAAEA,KAAM;AACbjF,IAAAA,OAAO,EAAE0xC,cAAe;AACxB9D,IAAAA,YAAY,EAAE6B,UAAW;AACzBgC,IAAAA,WAAW,EAAEA,WAAY;AACzBhD,IAAAA,UAAU,EAAE5wC,QAAAA;AAAS,GAAA,CAAA,EAGlBK,IAAI,CAAC4zC,UAAU,IAAI5zC,IAAI,CAACiuB,SAAS,GAC9BpH,OAAO,gBACPpoB,yBAAA,CAAA0B,aAAA,CAAC6xC,GAAG,EAAA;AAAC1wC,IAAAA,IAAI,EAAEA,IAAK;AAACwQ,IAAAA,MAAM,EAAEA,MAAO;AAACtQ,IAAAA,EAAE,EAAEqwC,MAAO;AAACvrC,IAAAA,GAAG,EAAEqsC,MAAO;AAAC5C,IAAAA,YAAY,EAAEwD,WAAAA;GAAc1sB,EAAAA,OAAa,CAAC,EAGxGkrB,OAAO,CAACtoC,MAAM,IAAI+4B,QAAQ,CAAC7iC,QAAQ,CAE7B,CAAC,CAAA;AACb,CAAC,EAAC;AACFwyC,EAAE,CAACF,mBAAmB,CAAA;AACtBE,EAAE,CAAC0B,MAAM,GAAGzC,QAAQ,CAAA;AAEpB,MAAM,CAAC0C,oBAAoB,EAAEC,qBAAqB,CAAC,GAAGrxB,kBAAa,EAAE,CAAA;AAC9D,MAAMsxB,yBAAyB,GAAGD,sBAAqB;AAC9D,MAAM,CAACE,yBAAyB,CAAC,GAAGhsB,uBAAkB,EAAE,CAAA;AAEjD,MAAMisB,oBAAoB,gBAAG7tC,gBAAU,CAAC,CAAAxE,KAAA,EAI7CsyC,WAAW,KACR;EAAA,IAJH;MACEx0C,QAAQ;MAAEg0C,GAAG;MAAES,UAAU;MAAEC,SAAS;MAAEjC,QAAQ;MAAErB,YAAY;MAAEllB,OAAO;MAAEyoB,OAAO,GAAGA,MAAM,CAAC;MAAEpa,IAAI;AAAEp4B,MAAAA,OAAAA;AAClG,KAAC,GAAAD,KAAA;AAD6G7C,IAAAA,KAAK,GAAAiB,4CAAA,CAAA4B,KAAA,EAAAqB,UAAA,CAAA,CAAA;AAInH,EAAA,MAAMoD,GAAG,GAAGgV,iBAAY,CAAC64B,WAAW,CAAC,CAAA;AACrC,EAAA,MAAM,CAAC7B,WAAW,EAAEiC,cAAc,CAAC,GAAG7qB,cAAQ,CAAC2qB,SAAS,IAAIV,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;EACzE,MAAM,CAACa,WAAW,EAAEC,cAAc,CAAC,GAAGR,yBAAyB,CAAC,CAAC,CAAC,CAAA;EAElE,MAAM,CAACvvB,UAAU,EAAE;AAACxN,IAAAA,OAAAA;AAAO,GAAC,CAAC,GAAG48B,oBAAoB,EAAE,CAAA;EAEtD,MAAMY,YAAY,GAAGpwC,aAAO,CAAC,MAAM4tC,wBAAI,EAAE,EAAE,EAAE,CAAC,CAAA;AAC9C5sB,EAAAA,eAAS,CAAC,MAAM;AACd7iB,IAAAA,MAAM,CAACwN,gBAAgB,CAAC,SAAS,EAAE0kC,OAAO,CAAC,CAAA;AAC3C,IAAA,OAAO,MAAM;MACX1yC,oBAAc,CAAC4pB,OAAO,CAAC,CAAA;AACvBppB,MAAAA,MAAM,CAACsP,mBAAmB,CAAC,SAAS,EAAE4iC,OAAO,CAAC,CAAA;KAC/C,CAAA;GACF,EAAE,CAACjwB,UAAU,EAAE8vB,WAAW,EAAElC,WAAW,CAAC,CAAC,CAAA;AAE1ChtB,EAAAA,eAAS,CAAC,MAAM;IACd,IAAI8uB,UAAU,KAAKxpC,SAAS,EAAE;MAC5B2pC,cAAc,CAACzgC,IAAI,CAACgJ,GAAG,CAAChJ,IAAI,CAACjL,GAAG,CAACurC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAEQ,qBAAqB,CAACj1C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACzF,KAAA;AACF,GAAC,EAAE,CAACy0C,UAAU,KAAK9B,WAAW,CAAC,CAAC,CAAA;EAEhC,MAAMqC,OAAO,GAAI3yC,CAAC,IAAK;IACrB,IAAIA,CAAC,CAACikB,OAAO,KAAK,EAAE,IAAIjkB,CAAC,CAACikB,OAAO,KAAK,EAAE,EAAE;AACxC,MAAA,IAAI,CAACjkB,CAAC,CAAC6yC,gBAAgB,EAAE;AACvB,QAAA,MAAM7vB,MAAM,GAAG9N,OAAO,EAAE,CAAA;AACxB,QAAA,MAAM49B,SAAS,GAAG9yC,CAAC,CAACikB,OAAO,GAAG,EAAE,CAAA;QAChCwuB,cAAc,CAAC,CAACD,WAAW,GAAGM,SAAS,GAAG9vB,MAAM,IAAIA,MAAM,CAAC,CAAA;AAC7D,OAAA;MACAhjB,CAAC,CAACG,cAAc,EAAE,CAAA;AACpB,KAAA;IACA,IAAIuiB,UAAU,KAAK8vB,WAAW,EAAE,OAAA;IAChC,IAAIxyC,CAAC,CAACikB,OAAO,KAAK,EAAE,IAAI3f,GAAG,CAACiR,OAAO,EAAE;AACnCjR,MAAAA,GAAG,CAACiR,OAAO,CAACgwB,KAAK,EAAE,CAAA;AACrB,KAAA;AACA,IAAA,IAAIvlC,CAAC,CAACikB,OAAO,KAAK,EAAE,IAAIjkB,CAAC,CAACikB,OAAO,KAAK,EAAE,IAAIqsB,WAAW,IAAI,CAAC,EAAE;AAAC;MAC7DtwC,CAAC,CAACG,cAAc,EAAE,CAAA;AAClBuyC,MAAAA,YAAY,CAACpB,IAAI,CAAC,SAAS,CAAC,CAAA;AAC9B,KAAA;IACA,IAAItxC,CAAC,CAACikB,OAAO,KAAK,EAAE,IAAIjkB,CAAC,CAACikB,OAAO,KAAK,EAAE,EAAE;AAAE;MAC1CjkB,CAAC,CAACG,cAAc,EAAE,CAAA;AAClB,MAAA,MAAM2yC,SAAS,GAAG9yC,CAAC,CAACikB,OAAO,GAAG,EAAE,CAAA;AAChC,MAAA,MAAMpd,GAAG,GAAG+rC,qBAAqB,CAACj1C,QAAQ,CAAC,CAAA;MAC3C,MAAMo1C,QAAQ,GAAG,CAACzC,WAAW,GAAGwC,SAAS,GAAGjsC,GAAG,IAAIA,GAAG,CAAA;MACtD0rC,cAAc,CAACQ,QAAQ,CAAC,CAAA;MACxBT,OAAO,CAACS,QAAQ,CAAC,CAAA;AACnB,KAAA;GACD,CAAA;EAED,MAAMH,qBAAqB,GAAIj1C,QAAQ,IAAK;IAC1C,IAAIq1C,GAAG,GAAG,CAAC,CAAA;IACXv2C,yBAAK,CAAC6d,QAAQ,CAAC9N,OAAO,CAAC7O,QAAQ,EAAEyd,KAAK,IAAI;AACtC,MAAA,IAAIA,KAAK,IAAI,CAACA,KAAK,CAACpe,KAAK,CAACknC,QAAQ,IAAI,CAAC9oB,KAAK,CAACpe,KAAK,CAACi2C,QAAQ,EAAE;AAC3D,QAAA,IAAK,CAACC,wBAAiB,CAAC93B,KAAK,CAAC7W,IAAI,CAAC,IAAI6W,KAAK,CAAC7W,IAAI,KAAK4rC,EAAE,IAAK/0B,KAAK,CAAC7W,IAAI,CAAC0rC,mBAAmB,EAAE;AAC3F+C,UAAAA,GAAG,IAAI,CAAC,CAAA;AACV,SAAA;AACA,QAAA,IAAI5E,kBAAkB,CAAChzB,KAAK,CAAC7W,IAAI,EAAEyqC,eAAe,CAAC,IAAI5zB,KAAK,CAACpe,KAAK,CAACm2C,MAAM,EAAE;UACzEH,GAAG,IAAIJ,qBAAqB,CAACx3B,KAAK,CAACpe,KAAK,CAACW,QAAQ,CAAC,CAAA;AACpD,SAAA;AACF,OAAA;AACF,KACF,CAAC,CAAA;AACD,IAAA,OAAOq1C,GAAG,CAAA;GACX,CAAA;EAED,MAAM1D,gBAAgB,GAAI5O,KAAK,IAAK;IAClC+R,cAAc,CAAC/vB,UAAU,CAAC,CAAA;IAC1B6vB,cAAc,CAAC7R,KAAK,CAAC,CAAA;IACrB4R,OAAO,CAAC5R,KAAK,CAAC,CAAA;GACf,CAAA;AAED,EAAA,MAAM0S,cAAc,GAAG,UAACz1C,QAAQ,EAA8B;IAAA,IAA5B01C,QAAQ,GAAAz2C,SAAA,CAAA+L,MAAA,GAAA/L,CAAAA,IAAAA,SAAA,CAAAgM,CAAAA,CAAAA,KAAAA,SAAA,GAAAhM,SAAA,CAAG,CAAA,CAAA,GAAA;AAAC2Y,MAAAA,OAAO,EAAE,CAAA;KAAE,CAAA;IACvD,OAAO9Y,yBAAK,CAAC6d,QAAQ,CAACnQ,GAAG,CAACxM,QAAQ,EAAE,CAACyd,KAAK,EAAEk4B,CAAC,KAC3Cl4B,KAAK,IAAI,CAACA,KAAK,CAACpe,KAAK,CAACknC,QAAQ,IAAI,CAAC9oB,KAAK,CAACpe,KAAK,CAACi2C,QAAQ,GAErD73B,KAAK,CAACpe,KAAK,CAACm2C,MAAM,gBAChB12C,yBAAK,CAAC4e,YAAY,CAACD,KAAK,EAAEA,KAAK,CAACpe,KAAK,EAAEo2C,cAAc,CAACh4B,KAAK,CAACpe,KAAK,CAACW,QAAQ,EAAE01C,QAAQ,CAAC,CAAC,GACpF,CAACH,wBAAiB,CAAC93B,KAAK,CAAC7W,IAAI,CAAC,IAAI,CAACgvC,cAAM,CAACn4B,KAAK,CAAC7W,IAAI,CAAC,IAAI6pC,kBAAkB,CAAChzB,KAAK,CAAC7W,IAAI,EAAE4rC,EAAE,CAAC,IAAK/0B,KAAK,CAAC7W,IAAI,CAAC0rC,mBAAmB,gBAC9HxzC,yBAAK,CAAC4e,YAAY,CAACD,KAAK,EAAE;MAC1Bs2B,aAAa,EAAC10C,KAAK,CAACmgB,KAAK;MACzBpY,KAAK,EAAEurC,WAAW,KAAK+C,QAAQ,CAAC99B,OAAO,IAAImN,UAAU,KAAK8vB,WAAW;AACrElC,MAAAA,WAAW,EAAEA,WAAW;AACxB5P,MAAAA,KAAK,EAAE2S,QAAQ,CAAC99B,OAAO,EAAE;MACzB+5B,gBAAgB;AAChBG,MAAAA,OAAO,EAAEiD,YAAY;AACrBhwB,MAAAA,UAAU,EAAEA,UAAU;AACtB0tB,MAAAA,QAAAA;KACD,CAAC,GAEAhC,kBAAkB,CAAChzB,KAAK,CAAC7W,IAAI,EAAEyqC,eAAe,CAAC,gBAC7CvyC,yBAAK,CAAC4e,YAAY,CAACD,KAAK,EAAA1R,eAAA,CAAAA,eAAA,CAAA,EAAA,EACrB0R,KAAK,CAACpe,KAAK,CAAA,EAAA,EAAA,EAAA;MACdW,QAAQ,EAAEy1C,cAAc,CAACh4B,KAAK,CAACpe,KAAK,CAACW,QAAQ,EAAE01C,QAAQ,CAAA;AAAC,KAAA,CACzD,CAAC,GACAj4B,KACH,GAEHA,KACJ,CAAC,CAAA;GACF,CAAA;EAED,MAAM8vB,UAAU,GAAGsI,6BAAuB,CAAC,CAACxzC,CAAC,EAACyX,OAAO,KAAK;AACxD;IACAzX,CAAC,CAACskB,eAAe,EAAE,CAAA;IACnBtkB,CAAC,CAAC8P,MAAM,CAAChP,aAAa,CAAC,IAAI2yC,UAAU,CAAC,WAAW,EAAE;AAACC,MAAAA,OAAO,EAAE,IAAA;AAAI,KAAC,CAAC,CAAC,CAAA;AAEpE,IAAA,OAAO,CAAC1zC,CAAC,EAAC0X,OAAO,KAAK;MACpB,MAAMyyB,KAAK,GAAG1yB,OAAO,CAACwsB,OAAO,GAAGvsB,OAAO,CAACusB,OAAO,CAAA;MAC/C,IAAInyB,IAAI,CAAC+pB,GAAG,CAACsO,KAAK,CAAC,GAAG,EAAE,EAAE;QAExBmF,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;AACtB,OAAA;KACD,CAAA;AACH,GAAC,CAAC,CAAA;AAEF,EAAA,oBACE7yC,yBAAA,CAAA0B,aAAA,CAAC2wC,eAAe,EAAApvC,4BAAA,CAAA;AACd,IAAA,WAAA,EAAW,KAAM;AACjB4E,IAAAA,GAAG,EAAEA,GAAI;AACTqtC,IAAAA,GAAG,EAAEA,GAAI;AACTgC,IAAAA,OAAO,EAAE3zC,CAAC,IAAIA,CAAC,CAACskB,eAAe,EAAG;AAClCgnB,IAAAA,YAAY,EAAEJ,UAAW;AACzB6D,IAAAA,YAAY,EAAEA,YAAa;IAC3B7pB,WAAW,EAAEZ,qBAAe,EAAC;AAAE,GAAA,EAC3BtnB,KAAK,CAERo2C,EAAAA,cAAc,CAACz1C,QAAQ,CACT,CAAC,CAAA;AAEtB,CAAC,EAAC;AAGK,MAAMi2C,WAAW,gBAAGvvC,gBAAU,CAAC,CAAArD,KAAA,EAAyDsD,GAAG,KAAK;EAAA,IAAhE;AAACg6B,MAAAA,IAAI,GAAG,OAAO;MAAEqT,GAAG;MAAE5C,YAAY;AAAEpxC,MAAAA,QAAAA;AAAiB,KAAC,GAAAqD,KAAA;AAALhD,IAAAA,IAAI,GAAAC,4CAAA,CAAA+C,KAAA,EAAA6yC,UAAA,CAAA,CAAA;AAC1F,EAAA,MAAMC,cAAc,GAAGx6B,iBAAY,CAAChV,GAAG,CAAC,CAAA;AACxC,EAAA,MAAM,CAACu0B,YAAY,EAAE5G,WAAW,EAAE+F,KAAK,CAAC,GAAGJ,cAAc,CAACkc,cAAc,EAAE91C,IAAI,CAAC,CAAA;EAC/E,MAAM;IAAC6+B,OAAO;AAAEF,IAAAA,QAAAA;AAAQ,GAAC,GAAAjzB,eAAA,CAAOmvB,EAAAA,EAAAA,YAAY,CAAC,CAAA;EAC7C,MAAM2F,QAAQ,GAAGl8B,aAAO,CAAC,MAAMme,mBAAmB,EAAE,KAAK,CAAC,GAAG6d,IAAI,GAAIA,IAAI,GAAG,GAAG,IAAI7d,mBAAmB,EAAE,GAAG,CAAC,CAAE,EAAE,EAAE,CAAC,CAAA;AAEnH,EAAA,MAAM+P,cAAc,GAAGluB,aAAO,CAAC,MAAM,CAAC2I,QAAM,EAAE0mC,GAAG,GAAI9U,OAAO,GAAGqR,UAAU,GAAGC,eAAe,GAAKxR,QAAQ,GAAGqR,SAAS,GAAGC,YAAa,CAAC,EAAE,CAACpR,OAAO,EAAEF,QAAQ,CAAC,CAAC,CAAA;EAC3JpkB,YAAY,CAACu7B,cAAc,EAAE,CAAC,CAACjb,YAAY,IAAIrI,cAAc,CAAC,CAAA;EAC9DhY,YAAY,CAACs7B,cAAc,EAAE,CAAC,CAACjb,YAAY,IAAIrI,cAAc,EAAEmhB,GAAG,IAAI;AAAC77B,IAAAA,MAAM,EAAE;MAACi+B,SAAS,EAAE/1C,IAAI,CAACuzC,WAAAA;AAAW,KAAA;AAAC,GAAC,CAAC,CAAA;AAC9G,EAAA,oBAAO90C,yBAAA,CAAA0B,aAAA,CAAA1B,yBAAA,CAAAqoB,QAAA,EACJmN,IAAAA,EAAAA,WAAW,eACZx1B,yBAAA,CAAA0B,aAAA,CAAC4mB,SAAI,EAAA;AAACjI,IAAAA,IAAI,EAAE0hB,QAAAA;GACV/hC,eAAAA,yBAAA,CAAA0B,aAAA,CAAC+zC,oBAAoB,EAAAxyC,4BAAA,KAAK1B,IAAI,EAAA;AAAEoyC,IAAAA,QAAQ,EAAE9R,IAAK;AAACqT,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,EAAK9Y,YAAY,EAAA;AAAEv0B,IAAAA,GAAG,EAAEwvC,cAAe;AAAC/E,IAAAA,YAAY,EAAEA,YAAAA;AAAa,GAAA,CAAA,EACzH/W,KAAK,EACLr6B,QACmB,CAClB,CACN,CAAC,CAAA;AACL,CAAC,EAAC;AAEFi2C,WAAW,CAACvF,QAAQ,GAAGA,QAAQ;;MCrmBlB2F,UAAU,gBAAG11C,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,wBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAKpB1B,CAAAA,CAAAA,CAAAA,4EAAAA,EAAAA,+BAAAA,EAAAA,mCAAAA,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,EAAAA,CAAAA,EAAAA,KAAK,IAAIA,KAAK,CAACwoB,MAAM,GAAGthB,UAAG,WAAGlF,cAAQ,CAAC,MAAM,CAAC,CAAA,GAAA,SAAY,EAEtEhC,KAAK,IAAIA,KAAK,CAACwoB,MAAM,GAAG,cAAc,GAAG,SAAS,EAGtCxoB,KAAK,IAAIA,KAAK,CAACwoB,MAAM,GAAkE,kCAAA,GAAA,4BAAA,EACnGxoB,KAAK,IAAIA,KAAK,CAACsK,OAAO,IAAA,8EAGvB,EACCtK,KAAK,IAAIA,KAAK,CAACq0C,OAAO,kFAGvB,EACF;AAGY4C,MAAAA,UAAU,GAAG50C,IAAA,IAAiB;EAAA,IAAhB;AAACkG,IAAAA,SAAAA;AAAS,GAAC,GAAAlG,IAAA,CAAA;AACpC,EAAA,MAAM60C,MAAM,GAAG3sC,cAAS,EAAE,CAAA;AAC1B+b,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI/d,SAAS,EAAE;MACb2uC,MAAM,CAACzoB,IAAI,EAAE,CAAA;AACf,KAAC,MAAM;AACLyoB,MAAAA,MAAM,CAACrH,UAAU,CAAC,GAAG,CAAC,CAAA;AACxB,KAAA;AACF,GAAC,EAAC,CAACtnC,SAAS,CAAC,CAAC,CAAA;AAEd,EAAA,oBAAO9I,yBAAA,CAAA0B,aAAA,CAAC61C,UAAU,EAAA;IAAC1sC,OAAO,EAAE4sC,MAAM,CAACzsC,MAAO;IAAC4pC,OAAO,EAAE6C,MAAM,CAAC7C,OAAAA;AAAQ,GAAC,CAAC,CAAA;AACvE,EAAC;AAED,MAAMvjC,SAAS,GAAGhD,qBAAe,CAAC,6BAA6B,EAAC,0BAA0B,CAAC,CAAA;AAC9EqpC,MAAAA,kBAAkB,GAAGA,MAAM;AACtC,EAAA,MAAM7vC,GAAG,GAAG7H,yBAAK,CAAC8lB,MAAM,EAAE,CAAA;AAC1B/J,EAAAA,YAAY,CAAClU,GAAG,EAACwJ,SAAS,EAAC;AAACxC,IAAAA,OAAO,EAAE,KAAK;IAACyH,MAAM,EAACnI,qBAAe,CAAC,cAAc,CAAA;AAAC,GAAC,CAAC,CAAA;AACnF,EAAA,oBAAOnO,yBAAA,CAAA0B,aAAA,CAAC61C,UAAU,EAAA;AAAC1vC,IAAAA,GAAG,EAAEA,GAAI;IAACgD,OAAO,EAAA,IAAA;AAAA,GAAC,CAAC,CAAA;AACxC;;;AC5CA,MAAM8sC,cAAc,GAAIC,QAAQ,IAAKA,QAAQ,IAAI,CAACA,QAAQ,CAACC,cAAc,IAAID,QAAQ,CAACE,KAAK,CAAC,CAAC,CAAC,KAAG,EAAE,CAAA;AAEnG,MAAMC,wBAAwB,GAAGA,CAACC,KAAK,EAAEnb,QAAQ,EAAEob,GAAG,KAAK;EACzD,IAAIC,SAAS,GAAG,CAAC,CAAA;EACjB,IAAIC,eAAe,GAAG,EAAE,CAAA;EACxB,IAAIC,YAAY,GAAG,CAAC,CAAA;EAGpB,IAAIC,sBAAsB,GAAG,CAAC,CAAA;EAC9B,IAAIC,yBAAyB,GAAG,CAAC,CAAA;AAIjCN,EAAAA,KAAK,CAACjoC,OAAO,CAAC,CAAAnN,IAAA,EAA8B21C,SAAS,KAAK;IAAA,IAA3C;MAACC,IAAI;MAACX,cAAc;AAACC,MAAAA,KAAAA;AAAK,KAAC,GAAAl1C,IAAA,CAAA;IACxCq1C,GAAG,CAACO,IAAI,GAAGA,IAAI,CAAA;AACf,IAAA,MAAMZ,QAAQ,GAAGI,KAAK,CAACO,SAAS,GAAC,CAAC,CAAC,CAAA;AAGnCT,IAAAA,KAAK,CAAC/nC,OAAO,CAAC,CAAC0oC,IAAI,EAACC,SAAS,KAAK;MAChC,MAAM;AAAC3rC,QAAAA,KAAAA;OAAM,GAAGkrC,GAAG,CAACU,WAAW,CAACR,eAAe,CAAClpC,MAAM,CAACwpC,IAAI,KAAKN,eAAe,CAACjsC,MAAM,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAACoD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAC9G,MAAA,MAAMspC,aAAa,GAAG7rC,KAAK,GAAGsrC,sBAAsB,CAAA;AACpD,MAAA,MAAMQ,UAAU,GAAGD,aAAa,IAAI/b,QAAQ,CAAA;MAC5C,MAAMic,QAAQ,GAAGJ,SAAS,KAAKZ,KAAK,CAAC5rC,MAAM,GAAG,CAAC,CAAA;MAC/C,IAAI,CAAC2sC,UAAU,EAAE;QACf,IAAIC,QAAQ,IAAKlB,QAAQ,IAAI,CAACA,QAAQ,CAACC,cAAe,EAAE;AACtDQ,UAAAA,sBAAsB,GAAGO,aAAa,CAAA;AACtCT,UAAAA,eAAe,GAAG,EAAE,CAAA;UACpB,IAAIM,IAAI,KAAG,EAAE,IAAId,cAAc,CAACC,QAAQ,CAAC,EAAE;YACzCU,yBAAyB,IAAKL,GAAG,CAACU,WAAW,CAACF,IAAI,IAAI,GAAG,CAAC,CAAC1rC,KAAK,CAAA;AAClE,WAAA;AACF,SAAC,MAAM;AACLorC,UAAAA,eAAe,CAACp2B,IAAI,CAAC02B,IAAI,CAAC,CAAA;AAC1BH,UAAAA,yBAAyB,GAAG,CAAC,CAAA;AAC7BF,UAAAA,YAAY,GAAGA,YAAY,GAAGQ,aAAa,GAAGR,YAAY,GAAGQ,aAAa,CAAA;AAC5E,SAAA;AAGF,OAAC,MAAM;AACLV,QAAAA,SAAS,EAAE,CAAA;AAEX,QAAA,IAAIY,QAAQ,EAAE;UACZR,yBAAyB,IAAIL,GAAG,CAACU,WAAW,CAACF,IAAI,IAAI,GAAG,CAAC,CAAC1rC,KAAK,CAAA;AAC/DsrC,UAAAA,sBAAsB,GAAGC,yBAAyB,CAAA;AAClDH,UAAAA,eAAe,GAAG,EAAE,CAAA;AACtB,SAAC,MAAM;AACLE,UAAAA,sBAAsB,GAAGC,yBAAyB,CAAA;AAClDA,UAAAA,yBAAyB,GAAG,CAAC,CAAA;UAC7BH,eAAe,GAAG,CAACM,IAAI,CAAC,CAAA;AAC1B,SAAA;AAEF,OAAA;AACA,MAAA,IAAIK,QAAQ,KAAK,CAAClB,QAAQ,IAAIA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAARA,KAAAA,CAAAA,IAAAA,QAAQ,CAAEC,cAAc,CAAC,EAAE;AACvDK,QAAAA,SAAS,EAAE,CAAA;AACXI,QAAAA,yBAAyB,GAAE,CAAC,CAAA;AAC5BH,QAAAA,eAAe,GAAG,EAAE,CAAA;AAEpBE,QAAAA,sBAAsB,GAAC,CAAC,CAAA;AAC1B,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAC,CAAC,CAAA;EACF,OAAO;AAACjuC,IAAAA,GAAG,EAAEguC,YAAY;AAAEW,IAAAA,KAAK,EAACb,SAAAA;GAAU,CAAA;AAC7C,CAAC,CAAA;AAED,MAAMc,kBAAkB,GAAGA,CAAChB,KAAK,EAAEnb,QAAQ,EAAEob,GAAG,EAAEgB,QAAQ,KAAK;EAC7D,MAAM;IAAC7uC,GAAG;AAAE2uC,IAAAA,KAAAA;GAAM,GAAGhB,wBAAwB,CAACC,KAAK,EAAEnb,QAAQ,GAAC,CAAC,EAAEob,GAAG,CAAC,CAAA;EACrE,IAAIc,KAAK,GAAGE,QAAQ,EAAE;AACpB,IAAA,OAAO,IAAI,CAAA;AACb,GAAC,MAAM;AACL,IAAA,MAAMC,aAAa,GAAGF,kBAAkB,CAAChB,KAAK,EAAE5tC,GAAG,GAAC,CAAC,EAAE6tC,GAAG,EAAEc,KAAK,CAAC,CAAA;AAClE,IAAA,IAAIG,aAAa,KAAK,IAAI,IAAI9uC,GAAG,KAAK8uC,aAAa,EAAE;MACnD,OAAOD,QAAQ,KAAK9sC,SAAS,GAAG0wB,QAAQ,GAAGxnB,IAAI,CAACyqB,IAAI,CAAC11B,GAAG,CAAC,CAAA;AAC3D,KAAC,MAAM;AACL,MAAA,OAAO8uC,aAAa,CAAA;AACtB,KAAA;AACF,GAAA;AACF,CAAC,CAAA;AAEM,MAAMC,mBAAmB,SAASn5C,yBAAK,CAACC,SAAS,CAAC;EAAAC,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAAC,SAAA,CAAA,CAAA;IAAA,IAIvDi5C,CAAAA,YAAY,GAAG,KAAK,CAAA;IAAA,IAGpBC,CAAAA,MAAM,GAAIpiC,EAAE,IAAK;MACf,IAAI,CAACA,EAAE,GAAGA,EAAE,CAAA;MACZ,IAAIA,EAAE,IAAIjC,QAAQ,CAAC,IAAI,CAACiC,EAAE,CAACtK,KAAK,CAACkwB,QAAQ,EAAE,EAAE,CAAC,KAAK7nB,QAAQ,CAAC,IAAI,CAACskC,YAAY,EAAE,EAAE,CAAC,EAAE;QAClF,IAAI,CAACC,WAAW,EAAE,CAAA;AACpB,OAAA;KACD,CAAA;IAAA,IAEDA,CAAAA,WAAW,GAAIC,iBAAiB,IAAK;AACnC,MAAA,MAAMC,UAAU,GAAG,OAAOD,iBAAiB,KAAK,QAAQ,GAAGA,iBAAiB,CAACj2B,MAAM,IAAIi2B,iBAAiB,CAACj2B,MAAM,CAACC,MAAM,GAAG,KAAK,CAAA;AAC9H,MAAA,IAAIi2B,UAAU,EAAE,OAAA;AAChB,MAAA,MAAMC,iBAAiB,GAAG11C,MAAM,CAAC2H,gBAAgB,CAAC,IAAI,CAACsL,EAAE,CAAC,CAAC0iC,UAAU,KAAK,KAAK,IAAI31C,MAAM,CAAC2H,gBAAgB,CAAC,IAAI,CAACsL,EAAE,CAAC,CAAC2iC,UAAU,CAACvqC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AACpJ,MAAA,IAAIqqC,iBAAiB,EAAE;AACrB,QAAA,IAAI,CAACziC,EAAE,CAACtK,KAAK,CAACitC,UAAU,GAAG,oBAAoB,CAAA;QAC/C,IAAI,CAACR,YAAY,GAAG,IAAI,CAAA;AAC1B,OAAA;AACA,MAAA,IAAI,IAAI,CAACA,YAAY,IAAI,IAAI,CAAC74C,KAAK,CAACs5C,aAAa,IAAIL,iBAAiB,KAAK,IAAI,IAAI7pC,QAAQ,CAACmqC,UAAU,KAAK,UAAU,EAAE;QACrH,IAAI,CAACV,YAAY,GAAG,IAAI,CAAA;AAC1B,OAAC,MAAM;AACL,QAAA,OAAA;AACF,OAAA;MACA,IAAI,CAACniC,EAAE,CAACtK,KAAK,CAACotC,cAAc,CAAC,WAAW,CAAC,CAAA;MACzC,IAAI,IAAI,CAACx5C,KAAK,CAACy5C,kBAAkB,KAAK,IAAI,IAAK,OAAO,IAAI,CAACz5C,KAAK,CAACy5C,kBAAkB,KAAK,UAAU,IAAI,IAAI,CAACz5C,KAAK,CAACy5C,kBAAkB,EAAG,EAAE;AACtI,QAAA,OAAA;AACF,OAAA;MAEA,IAAIrF,cAAQ,EAAE,IAAI,IAAI,CAAC19B,EAAE,CAACgjC,iBAAiB,EAAE;AAC3C,QAAA,OAAA;AACF,OAAA;MAEA,MAAM;QAACt2B,WAAW;AAAEga,QAAAA,YAAAA;OAAa,GAAG,IAAI,CAAC1mB,EAAE,CAAA;MAC3C,IAAI0M,WAAW,IAAIga,YAAY,EAAE;AAC/B,QAAA,MAAMuc,KAAK,GAAGvqC,QAAQ,CAACwqC,WAAW,EAAE,CAAA;QACpCD,KAAK,CAACE,QAAQ,CAAC,IAAI,CAACnjC,EAAE,EAAE,CAAC,CAAC,CAAA;AAC1BijC,QAAAA,KAAK,CAACG,MAAM,CAAC,IAAI,CAACpjC,EAAE,EAAE,IAAI,CAACA,EAAE,CAACnH,UAAU,CAAC5D,MAAM,CAAC,CAAA;QAChD,IAAIguC,KAAK,CAACI,cAAc,EAAE,CAACpuC,MAAM,IAAI,CAAC,EAAE;AACtC,UAAA,OAAA;AACF,SAAA;QACA,IAAIquC,WAAW,GAAG,CAAC,CAAA;AACnB,QAAA,IAAI,IAAI,CAACh6C,KAAK,CAACi6C,aAAa,EAAE;AAC5BD,UAAAA,WAAW,GAAG,IAAI,CAACE,WAAW,CAAC,IAAI,CAACxjC,EAAE,EAAE0mB,YAAY,EAAEha,WAAW,EAAE,GAAG,EAAEA,WAAW,CAAC,CAAA;AACtF,SAAC,MAAM;UACL,IAAI;AACF,YAAA,MAAM+2B,SAAS,GAAG/qC,QAAQ,CAACjO,aAAa,CAAC,QAAQ,CAAC,CAACi5C,UAAU,CAAC,IAAI,CAAC,CAAA;AACnE,YAAA,MAAMC,YAAY,GAAGjrC,QAAQ,CAACkrC,kBAAkB,CAAC,IAAI,CAAC5jC,EAAE,EAAE6jC,UAAU,CAACC,SAAS,CAAC,CAAA;AAC/E,YAAA,MAAMC,IAAI,GAAG,IAAI,CAAC/jC,EAAE,CAACgkC,SAAS,CAAA;YAC9B,IAAIC,SAAS,GAAG,CAAC,CAAC,CAAA;AAClB,YAAA,IAAI3oC,IAAI,CAAA;YACR,MAAMylC,KAAK,GAAG,EAAE,CAAA;AAChB,YAAA,OAAOzlC,IAAI,GAAGqoC,YAAY,CAAChD,QAAQ,EAAE,EAAE;cACrC,MAAMuD,WAAW,GAAG5oC,IAAI,CAAC6oC,WAAW,CAACl4C,OAAO,CAAE,KAAK,EAAE,GAAI,CAAC,CAAA;cAC1D,MAAMm4C,YAAY,GAAGL,IAAI,CAAC3rC,OAAO,CAAC8rC,WAAW,EAACD,SAAS,GAAC,CAAC,CAAC,CAAA;cAC1DlD,KAAK,CAACj2B,IAAI,CAAC;gBACTy2B,IAAI,EAACx0C,MAAM,CAAC2H,gBAAgB,CAAC4G,IAAI,CAACgiC,aAAa,CAAC,CAACiE,IAAI;gBACrDX,cAAc,EAACmD,IAAI,CAACK,YAAY,GAAC,CAAC,CAAC,KAAG,IAAI;AAC1CvD,gBAAAA,KAAK,EAACqD,WAAW,CAACjsC,KAAK,CAAC,GAAG,CAAA;AAC7B,eAAC,CAAC,CAAA;AACFgsC,cAAAA,SAAS,GAAGG,YAAY,CAAA;AAC1B,aAAA;YACAd,WAAW,GAAGvB,kBAAkB,CAAChB,KAAK,EAAEr0B,WAAW,EAAE+2B,SAAS,CAAC,CAAA;WAChE,CAAC,OAAOn3C,CAAC,EAAE;AACVgU,YAAAA,OAAO,CAACC,GAAG,CAACjU,CAAC,CAAC,CAAA;AACdg3C,YAAAA,WAAW,GAAG52B,WAAW,CAAA;AAC3B,WAAA;AACF,SAAA;QAEA,IAAI,CAAC1M,EAAE,CAACtK,KAAK,CAACkwB,QAAQ,GAAG0d,WAAW,GAAG,IAAI,CAAA;QAC3C,MAAM;AAAC5c,UAAAA,YAAY,EAAE2d,eAAAA;SAAgB,GAAG,IAAI,CAACrkC,EAAE,CAAA;;AAE/C;QACA,IAAI,IAAI,CAACqiC,YAAY,EAAE;UACrB,IAAI,CAACriC,EAAE,CAACtK,KAAK,CAACkwB,QAAQ,GAAG,IAAI,CAACyc,YAAY,GAAG,IAAI,CAAA;UACjD,MAAM;AAAC3b,YAAAA,YAAY,EAAE4d,gBAAAA;WAAiB,GAAG,IAAI,CAACtkC,EAAE,CAAA;AAChD,UAAA,IAAIqkC,eAAe,KAAKC,gBAAgB,IAAI,IAAI,CAACjC,YAAY,IAAI,IAAI,CAACriC,EAAE,CAAC0M,WAAW,EAAE;AACpF;AACA;AACA;YACA,IAAI,CAAC21B,YAAY,GAAGiB,WAAW,CAAA;YAC/B,IAAI,CAACtjC,EAAE,CAACtK,KAAK,CAACkwB,QAAQ,GAAG,IAAI,CAACyc,YAAY,GAAG,IAAI,CAAA;AACnD,WAAA;AACF,SAAC,MAAM;UACL,IAAI,CAACA,YAAY,GAAGiB,WAAW,CAAA;AACjC,SAAA;AACF,OAAA;KACD,CAAA;AAAA,IAAA,IAAA,CAEDE,WAAW,GAAG,CAACj2C,OAAO,EAAEg3C,UAAU,EAAEC,SAAS,EAAEz3C,MAAM,EAAE03C,aAAa,KAAK;MACvE,MAAMC,QAAQ,GAAGtmC,IAAI,CAACjL,GAAG,CAAC,CAAC,EAAEqxC,SAAS,GAAGz3C,MAAM,CAAC,CAAA;AAChDQ,MAAAA,OAAO,CAACmI,KAAK,CAACkwB,QAAQ,GAAG8e,QAAQ,GAAG,IAAI,CAAA;MACxC,IAAIn3C,OAAO,CAACm5B,YAAY,KAAK6d,UAAU,IAAIC,SAAS,GAAG,EAAE,EAAE;AACzD,QAAA,OAAO,IAAI,CAAChB,WAAW,CAACj2C,OAAO,EAAEg3C,UAAU,EAAEG,QAAQ,EAAE33C,MAAM,EAAE03C,aAAa,CAAC,CAAA;AAC/E,OAAC,MAAM,IAAI13C,MAAM,GAAG,CAAC,EAAE;AACrB,QAAA,OAAO,IAAI,CAACy2C,WAAW,CAACj2C,OAAO,EAAEg3C,UAAU,EAAEC,SAAS,EAAEz3C,MAAM,GAAG,CAAC,EAAE03C,aAAa,CAAC,CAAA;AACpF,OAAC,MAAM,IAAID,SAAS,GAAG,EAAE,EAAE;AACzB,QAAA,OAAOC,aAAa,GAAGD,SAAS,GAAGC,aAAa,GAAG,EAAE,CAAA;AACvD,OAAC,MAAM;QACL,OAAOD,SAAS,GAAG,CAAC,CAAA;AACtB,OAAA;KACD,CAAA;AAAA,GAAA;AAEDp7C,EAAAA,iBAAiBA,GAAG;IAClB2D,MAAM,CAACwN,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC+nC,WAAW,CAAC,CAAA;AACvD,IAAA,IAAI5pC,QAAQ,CAACmqC,UAAU,KAAK,UAAU,EAAE;MACtC,IAAI,CAACP,WAAW,EAAE,CAAA;AACpB,KAAC,MAAM;MACLv1C,MAAM,CAACwN,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC+nC,WAAW,CAAC,CAAA;MACjD,IAAIv1C,MAAM,CAAC2L,QAAQ,CAACisC,KAAK,IAAI53C,MAAM,CAAC2L,QAAQ,CAACisC,KAAK,CAACzhC,KAAK,IAAInW,MAAM,CAAC2L,QAAQ,CAACisC,KAAK,CAACzhC,KAAK,CAAC5G,KAAK,EAAE;AAC7FvP,QAAAA,MAAM,CAAC2L,QAAQ,CAACisC,KAAK,CAACzhC,KAAK,CAAC5G,KAAK,CAACK,CAAC,IAAIA,CAAC,CAAC,CAACjT,IAAI,CAAC,MAAM;UACnDqD,MAAM,CAACsP,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAACimC,WAAW,CAAC,CAAA;AACpD,UAAA,IAAI,CAACA,WAAW,CAAC,IAAI,CAAC,CAAA;AACxB,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAA;AACF,GAAA;AAEA/T,EAAAA,oBAAoBA,GAAG;IACrBxhC,MAAM,CAACsP,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAACimC,WAAW,CAAC,CAAA;IAC1Dv1C,MAAM,CAACsP,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAACimC,WAAW,CAAC,CAAA;AACtD,GAAA;AAEAp6B,EAAAA,kBAAkBA,GAAG;IACnB,IAAI,CAACo6B,WAAW,EAAE,CAAA;AACpB,GAAA;EAEAsC,qBAAqBA,CAACC,SAAS,EAAE;IAC/B,MAAMC,UAAU,GAAGD,SAAS,CAACE,uBAAuB,IAAI,IAAI,CAACz7C,KAAK,CAACy7C,uBAAuB,IACxFF,SAAS,CAACE,uBAAuB,CAACC,MAAM,KAAK,IAAI,CAAC17C,KAAK,CAACy7C,uBAAuB,CAACC,MAAM,CAAA;AACxF,IAAA,MAAMC,cAAc,GAAGn2C,MAAM,CAAC6mC,IAAI,CAACkP,SAAS,CAAC,CAACnoC,KAAK,CAAC4J,GAAG,IAAI,IAAI,CAAChd,KAAK,CAACgd,GAAG,CAAC,KAAKu+B,SAAS,CAACv+B,GAAG,CAAC,IAAKw+B,UAAU,IAAIx+B,GAAG,KAAK,yBAA0B,CAAC,CAAA;AACnJ,IAAA,OAAO,CAAC2+B,cAAc,CAAA;AAExB,GAAA;AAEAl7C,EAAAA,MAAMA,GAAG;AACP,IAAA,MAAAC,WAAA,GAAqE,IAAI,CAACV,KAAK;AAAzE,MAAA;QAACgzC,GAAG;QAAE4I,SAAS;QAAEtC,aAAa;AAAEG,QAAAA,kBAAAA;AAA2B,OAAC,GAAA/4C,WAAA;AAALM,MAAAA,IAAI,GAAAC,4CAAA,CAAAP,WAAA,EAAAQ,WAAA,CAAA,CAAA;AACjE,IAAA,oBAAOzB,yBAAA,CAAA0B,aAAA,CAAC6xC,GAAG,EAAAtwC,4BAAA,CAAA;MAAC4E,GAAG,EAAE,IAAI,CAACwxC,MAAAA;KAAY93C,EAAAA,IAAI,CAAE,CAAC,CAAA;AAC3C,GAAA;AACF,CAAA;AA9Ia43C,mBAAmB,CACvBzlB,YAAY,GAAG;AACpB6f,EAAAA,GAAG,EAAE,KAAA;AACP,CAAC,CAAA;AA6IH4F,mBAAmB,CAAC/G,EAAE,GAAI7xC,KAAK,iBAAKP,yBAAA,CAAA0B,aAAA,CAACy3C,mBAAmB,EAAAl2C,4BAAA,CAAA;AAACswC,EAAAA,GAAG,EAAC,IAAA;AAAI,CAAKhzC,EAAAA,KAAK,CAAE,CAAC,CAAA;AAC9E44C,mBAAmB,CAACrtB,EAAE,GAAIvrB,KAAK,iBAAKP,yBAAA,CAAA0B,aAAA,CAACy3C,mBAAmB,EAAAl2C,4BAAA,CAAA;AAACswC,EAAAA,GAAG,EAAC,IAAA;AAAI,CAAKhzC,EAAAA,KAAK,CAAE,CAAC;;;AC3N9E,MAAM67C,iBAAiB,GAAG/tC,qBAAe,CAAA,aAAA,EAAA,aAA6B,CAAC,CAAA;MAE1DguC,uBAAuB,gBAAGx6C,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,wCAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAC7C1B,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,qBAAAA,CAAAA,EAAAA,KAAK,IAAIA,KAAK,CAAC+7C,MAAM,GAAG,yBAAyB,GAAG,EAAE,EAEzD;AAGYC,MAAAA,aAAa,GAAG35C,IAAA,IAA2E;EAAA,IAA1E;MAAC1B,QAAQ;MAACmQ,SAAS;MAAEkgB,aAAa;MAAEpoB,SAAS;MAAEqzC,KAAK;AAAEF,MAAAA,MAAAA;AAAc,KAAC,GAAA15C,IAAA;AAALrB,IAAAA,IAAI,GAAAC,4CAAA,CAAAoB,IAAA,EAAAnB,WAAA,CAAA,CAAA;AAEhG,EAAA,MAAMg7C,QAAQ,GAAG32B,YAAM,EAAE,CAAA;EAEzB,MAAM42B,cAAc,GAAGA,MAAM;IAC3B,IAAID,QAAQ,CAAC3jC,OAAO,EAAE;MACpB,MAAM6jC,YAAY,GAAGF,QAAQ,CAAC3jC,OAAO,CAACnM,KAAK,CAACmX,QAAQ,CAAA;AACpD24B,MAAAA,QAAQ,CAAC3jC,OAAO,CAACnM,KAAK,CAACmX,QAAQ,GAAG,QAAQ,CAAA;AAC1C,MAAA,OAAO,MAAM;AACX24B,QAAAA,QAAQ,CAAC3jC,OAAO,CAACnM,KAAK,CAACmX,QAAQ,GAAG64B,YAAY,CAAA;OAC/C,CAAA;AACH,KAAA;GACD,CAAA;EAED,MAAMv0B,OAAO,GAAGlnB,QAAQ,gBACpBlB,yBAAA,CAAA0B,aAAA,CAACsvB,QAAQ,EAAA/tB,4BAAA,CAAA;AAAC8Q,IAAAA,YAAY,EAAEuoC,MAAM,IAAI,CAAC,CAAE;AAAC3gC,IAAAA,MAAM,EAAE+gC,cAAe;AAACnrB,IAAAA,aAAa,EAAEA,aAAc;IAAClgB,SAAS,EAAEA,SAAS,IAAI+qC,iBAAAA;AAAkB,GAAA,EAAK76C,IAAI,CAAA,EAAG,cAACvB,yBAAA,CAAA0B,aAAA,CAAA,KAAA,EAAA;AAAKyH,IAAAA,SAAS,EAAGqzC,KAAK,IAAIF,MAAM,GAAI,EAAE,GAAGnzC,SAAU;AAACoU,IAAAA,GAAG,EAAC,OAAA;GAASrc,EAAAA,QAAc,CAAC,CAAY,CAAC,gBAChPlB,yBAAA,CAAA0B,aAAA,CAACsvB,QAAQ,EAAA/tB,4BAAA,CAAA;AAAC8Q,IAAAA,YAAY,EAAEuoC,MAAM,IAAI,CAAC,CAAE;AAAC3gC,IAAAA,MAAM,EAAE+gC,cAAe;AAACnrB,IAAAA,aAAa,EAAEA,aAAc;IAAClgB,SAAS,EAAEA,SAAS,IAAI+qC,iBAAAA;GAAuB76C,EAAAA,IAAI,CAAG,EAAA,EAAa,CAAC,CAAA;EAEpK,OAAQi7C,KAAK,IAAIF,MAAM,gBAAIt8C,yBAAA,CAAA0B,aAAA,CAAC26C,uBAAuB,EAAA;AAACC,IAAAA,MAAM,EAAEA,MAAO;AAACz0C,IAAAA,GAAG,EAAE40C,QAAS;AAACtzC,IAAAA,SAAS,EAAEA,SAAAA;GAAYif,EAAAA,OAAiC,CAAC,GAAGA,OAAO,CAAA;AACxJ;;AC7BO,MAAMw0B,UAAU,GAAGh6C,IAAA,IAAA;EAAA,IAAC;IAACi6C,IAAI;IAACC,MAAM;IAAEC,KAAK;AAAC77C,IAAAA,QAAAA;AAAQ,GAAC,GAAA0B,IAAA,CAAA;AAAA,EAAA,oBAAK5C,yBAAA,CAAA0B,aAAA,CAACmsB,sBAAiB,EAAA,IAAA,EAAEzqB,KAAA,IAAoB;IAAA,IAAnB;AAAC45C,MAAAA,YAAAA;AAAY,KAAC,GAAA55C,KAAA,CAAA;IAC9F,IAAI,CAACy5C,IAAI,EAAE;AAAE,MAAA,OAAO,IAAI,CAAA;AAAC,KAAA;AACzB,IAAA,MAAMI,SAAS,GAAGC,gBAAU,CAAC,IAAItqC,IAAI,CAACiqC,IAAI,CAAC,EAAEC,MAAM,EAAEE,YAAY,EAAED,KAAK,CAAC,CAAA;AACzE,IAAA,OAAO77C,QAAQ,GAAGA,QAAQ,CAAC+7C,SAAS,CAAC,GAAGA,SAAS,CAAA;AACnD,GAAqB,CAAC,CAAA;AAAA;;;;;ACNf,MAAME,KAAK,gBAAGv1C,gBAAU,CAAC,CAAAhF,IAAA,EAA2BiF,GAAG,KAAK;EAAA,IAAlC;MAACu1C,GAAG;MAACxxB,GAAG;AAACjf,MAAAA,KAAAA;AAAc,KAAC,GAAA/J,IAAA;AAALrB,IAAAA,IAAI,GAAAC,4CAAA,CAAAoB,IAAA,EAAAnB,WAAA,CAAA,CAAA;EAEtD,MAAM,CAAC47C,KAAK,EAAEC,QAAQ,CAAC,GAAGryB,cAAQ,CAAC,OAAOW,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAIA,GAAG,IAAI2xB,GAAG,CAACC,eAAe,CAAC5xB,GAAG,CAAE,CAAC,CAAA;AAErG/E,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI+E,GAAG,EAAE;AACP,MAAA,MAAM6xB,QAAQ,GAAG,OAAO7xB,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAG2xB,GAAG,CAACC,eAAe,CAAC5xB,GAAG,CAAC,CAAA;AACzE,MAAA,MAAMH,GAAG,GAAG9b,QAAQ,CAACjO,aAAa,CAAC,KAAK,CAAC,CAAA;MACzC+pB,GAAG,CAACiyB,MAAM,GAAG,MAAM;QACjBJ,QAAQ,CAACG,QAAQ,CAAC,CAAA;OACnB,CAAA;MACDhyB,GAAG,CAACG,GAAG,GAAG6xB,QAAQ,CAAA;AACpB,KAAC,MAAM;MACLH,QAAQ,CAAC,EAAE,CAAC,CAAA;AACd,KAAA;AACF,GAAC,EAAE,CAAC1xB,GAAG,CAAC,CAAC,CAAA;EAET,OAAOwxB,GAAG,gBACNp9C,yBAAA,CAAA0B,aAAA,CAAAuB,KAAAA,EAAAA,4BAAA,KAAS1B,IAAI,EAAA;AAAEqqB,IAAAA,GAAG,EAAEyxB,KAAM;AAACx1C,IAAAA,GAAG,EAAEA,GAAAA;GAAK,CAAA,CAAC,gBACtC7H,yBAAA,CAAA0B,aAAA,CAAAuB,KAAAA,EAAAA,4BAAA,KAAS1B,IAAI,EAAA;AAAEoL,IAAAA,KAAK,EAAAM,aAAA,CAAAA,aAAA,KAAMN,KAAK,CAAA,EAAA,EAAA,EAAA;AAACgxC,MAAAA,eAAe,EAACN,KAAK,IAAApuC,QAAAA,CAAAA,MAAA,CAAYouC,KAAK,EAAA,KAAA,CAAA;KAAM,CAAA;AAACx1C,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,CAAC,CAAC,CAAA;AAC9F,CAAC;;;ACjBM,MAAM+1C,qBAAqB,gBAAG/7C,0BAAM,CAAC8qB,MAAM,CAAC,CAAA5qB,UAAA,CAAA;EAAAC,WAAA,EAAA,uBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,kBAAA,EAAA,cAAA,EAAA,+aAAA,EAAA,GAAA,CAAA,EAG/CqpB,WAAS,EACK/oB,cAAQ,CAAC,SAAS,CAAC,EAwB/B0H,WAAK,CAACC,MAAM,CAAA7C,iBAAA,KAAAA,iBAAA,GAAAC,0CAAA,CAQjB,CAAA,sGAAA,CAAA,CAAA,CAAA,CAAA;;;;MChCYu2C,QAAQ,gBAAGh8C,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,6BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,mBAAA,EAAA,0GAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EACZM,cAAQ,CAAC,iBAAiB,CAAC,EAM7ChC,KAAK,IAAI,CAACA,KAAK,CAACu9C,gBAAgB,IAAI,eAAe,EACnD7zC,WAAK,CAACC,MAAM,CAAA7C,eAAA,KAAAA,eAAA,GAAAC,0CAAA,CAQQ/E,CAAAA,yKAAAA,EAAAA,kFAAAA,EAAAA,MAAAA,CAAAA,CAAAA,CAAAA,EAAAA,cAAQ,CAAC,SAAS,CAAC,EAGrChC,KAAK,IAAI,CAACA,KAAK,CAACyK,MAAM,0EAGvB,CAEJ,EAAA;MACY+yC,aAAa,gBAAGl8C,0BAAM,CAACuwC,EAAE,CAAArwC,UAAA,CAAA;EAAAC,WAAA,EAAA,kCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAUhCgI,CAAAA,CAAAA,CAAAA,gJAAAA,EAAAA,0BAAAA,EAAAA,oCAAAA,EAAAA,0LAAAA,EAAAA,EAAAA,CAAAA,EAAAA,WAAK,CAACC,MAAM,CAAAC,gBAAA,KAAAA,gBAAA,GAAA7C,0CAAA,CAIQ/E,CAAAA,gCAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,cAAQ,CAAC,YAAY,CAAC,EAIjCA,cAAQ,CAAC,MAAM,CAAC,EAe3BhC,KAAK,IAAIA,KAAK,CAACy9C,aAAa,IAAA,kIAQ7B,EACF;AAED,MAAM,CAACxvC,MAAM,EAAEmlB,eAAe,CAAC,GAAGpX,qBAAe,CAAC,aAAa,EAAC,aAAa,EAAE,aAAa,CAAC,CAAA;AAC7F,MAAMqX,eAAe,GAAGvlB,qBAAe,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAA;AACrF,MAAMwlB,OAAO,GAAG,CAACD,eAAe,EAACD,eAAe,CAAC,CAAA;AAE1C,MAAMsqB,QAAQ,GAAG,SAAQ;;AAEhC;AACaC,MAAAA,6BAA6B,GAAGt7C,IAAA,IAA8F;EAAA,IAA7F;MAACuG,SAAS;MAAEg1C,SAAS;MAAEC,UAAU;MAAEC,OAAO;MAAEpxB,OAAO;MAAEqxB,OAAO;MAAEp9C,QAAQ;AAAEkjB,MAAAA,KAAAA;AAAe,KAAC,GAAAxhB,IAAA;AAANrC,IAAAA,KAAK,GAAAiB,4CAAA,CAAAoB,IAAA,EAAAnB,WAAA,CAAA,CAAA;AACnI,EAAA,MAAM88C,GAAG,GAAGzzC,cAAS,CAACqzC,SAAS,CAAC,CAAA;AAChC,EAAA,MAAMK,QAAQ,GAAGC,mBAAc,CAACL,UAAU,CAAC,CAAA;AAC3C,EAAA,MAAMv2C,GAAG,GAAGie,YAAM,EAAE,CAAA;AACpB,EAAA,MAAMzP,eAAe,GAAG8G,oBAAe,CAAC5B,iBAAiB,CAAC,CAAA;AAE1D,EAAA,MAAMyiC,aAAa,GAAGO,GAAG,CAACvzC,MAAM,KAAKizC,QAAQ,CAAA;EAE7C,oBAAOj+C,yBAAA,CAAA0B,aAAA,CAACwiB,eAAe,EAAAjhB,4BAAA,KAAK1C,KAAK,EAAA;AAAEsH,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,CAAA,EAAEzE,KAAA,IAAA;IAAA,IAAC;AAACsjB,MAAAA,kBAAAA;AAAkB,KAAC,GAAAtjB,KAAA,CAAA;IAAA,oBAC/DpD,yBAAA,CAAA0B,aAAA,CAAA,KAAA,EAAA;MAAKyH,SAAS,EAAEA,SAAS,GAAG,YAAa;AAACtB,MAAAA,GAAG,EAAEA,GAAAA;KAE3CtH,EAAAA,KAAK,CAAC8jB,WAAW,iBACjBrkB,yBAAA,CAAA0B,aAAA,CAAC4pB,WAAS,EAAA;AAACjoB,MAAAA,OAAO,EAAEqjB,kBAAAA;AAAmB,KAAC,CAAC,eAE3C1mB,yBAAA,CAAA0B,aAAA,CAACm8C,QAAQ,EAAA;MAAC7yC,MAAM,EAAEwzC,QAAQ,CAACxzC,MAAO;MAAC8yC,gBAAgB,EAAA,IAAA;KAChDO,EAAAA,OAAO,CAACE,GAAG,CACJ,CAAC,eAEXv+C,yBAAA,CAAA0B,aAAA,CAAA,KAAA,EAAA;AAAKyH,MAAAA,SAAS,EAAE,CAAC60C,aAAa,GAAG,gBAAgB,GAAG,EAAE,IAAI,gBAAA;AAAiB,KAAA,eACzEh+C,yBAAA,CAAA0B,aAAA,aACEs8C,aAAa,GAAG,sBAAsB,gBAAGh+C,yBAAA,CAAA0B,aAAA,CAAA1B,yBAAA,CAAAqoB,QAAA,EAAEroB,IAAAA,eAAAA,yBAAA,CAAA0B,aAAA,CAAA,MAAA,EAAA;AAAMyH,MAAAA,SAAS,EAAC,4BAA4B;MAAC9F,OAAO,EAAEm7C,QAAQ,CAACxvB,IAAAA;AAAK,KAAC,CAAC,EAClH5K,KAAK,CAACm6B,GAAG,CAAI,CAAM,CAAC,eACrBv+C,yBAAA,CAAA0B,aAAA,CAAC1B,yBAAK,CAACsd,QAAQ,EAAA;AAACL,MAAAA,QAAQ,eAAEjd,yBAAA,CAAA0B,aAAA,CAACg9C,UAAU,EAAA;AAACnhC,QAAAA,GAAG,EAAC,SAAS;AAAClH,QAAAA,eAAe,EAAEA,eAAgB;AAACkoC,QAAAA,GAAG,EAAEA,GAAI;AAACr9C,QAAAA,QAAQ,eAAElB,yBAAA,CAAA0B,aAAA,CAACU,OAAO,EAAA;UAACM,QAAQ,EAAA,IAAA;SAAC,CAAA;OAAI,CAAA;AAAE,KAAA,eAChI1C,yBAAA,CAAA0B,aAAA,CAACg9C,UAAU,EAAA;MAACnhC,GAAG,EAAEghC,GAAG,CAACvzC,MAAO;AAACqL,MAAAA,eAAe,EAAEA,eAAgB;AAACkoC,MAAAA,GAAG,EAAEA,GAAI;AAACtxB,MAAAA,OAAO,EAAEA,OAAQ;AAAC/rB,MAAAA,QAAQ,EAAEA,QAAAA;KAAW,CAClG,CACb,CACF,CAAC,CAAA;AAAA,GACU,CAAC,CAAA;AACvB,EAAC;AAED,MAAMw9C,UAAU,GAAGn6C,KAAA,IAA4C;EAAA,IAA3C;IAAC0oB,OAAO;IAAC/rB,QAAQ;IAACq9C,GAAG;AAACloC,IAAAA,eAAAA;AAAe,GAAC,GAAA9R,KAAA,CAAA;AACxD,EAAA,MAAM2vB,UAAU,GAAGpO,YAAM,EAAE,CAAA;AAC3BzP,EAAAA,eAAe,CAAC6d,UAAU,EAAC1lB,MAAM,EAACqlB,OAAO,CAAC,CAAA;EAE1C,oBAAO7zB,yBAAA,CAAA0B,aAAA,CAAA,KAAA,EAAA;AAAKmG,IAAAA,GAAG,EAAEqsB,UAAW;AAAC/qB,IAAAA,SAAS,EAAC,gBAAA;AAAgB,GAAA,EACpD3F,oBAAc,CAACypB,OAAO,EAACsxB,GAAG,CAAC,EAC3B/6C,oBAAc,CAACtC,QAAQ,EAACq9C,GAAG,CACzB,CAAC,CAAA;AACR,CAAC,CAAA;AAEYI,MAAAA,iBAAiB,gBAAG98C,0BAAM,CAAEtB,KAAK,iBAAKP,yBAAA,CAAA0B,aAAA,CAACirB,MAAM,EAAA1pB,4BAAA,CAAA;EAACoe,kBAAkB,EAAA,IAAA;AAAC1W,EAAAA,EAAE,EAAEuzC,6BAAAA;AAA8B,CAAA,EAAK39C,KAAK,CAAG,CAAC,CAAC,CAAAwB,UAAA,CAAA;EAAAC,WAAA,EAAA,mBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAK3HgI,CAAAA,CAAAA,CAAAA,4DAAAA,EAAAA,EAAAA,CAAAA,EAAAA,WAAK,CAACC,MAAM,CAAAG,gBAAA,KAAAA,gBAAA,GAAA/C,0CAAA,CAIf,CAAA,oDAAA,CAAA,CAAA,CAAA,CAAA;;;AC9HD,MAAMs3C,wBAAwB,gBAAG/8C,0BAAM,CAACQ,GAAG,CAAAN,UAAA,CAAA;EAAAC,WAAA,EAAA,8CAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CACrBM,CAAAA,CAAAA,CAAAA,mBAAAA,EAAAA,yBAAAA,EAAAA,mQAAAA,CAAAA,EAAAA,cAAQ,CAAC,SAAS,CAAC,EAE9BA,cAAQ,CAAC,MAAM,CAAC,CAe1B,CAAA;MAEYs8C,kBAAkB,gBAAGh9C,0BAAM,CAACe,IAAA,IAAkG;EAAA,IAAjG;MAACuG,SAAS;MAAE6jB,MAAM;MAAEC,OAAO;MAAE/rB,QAAQ;MAAEkjB,KAAK;MAAEuH,YAAY;MAAErrB,IAAI;AAAE4sB,MAAAA,eAAAA;AAAyB,KAAC,GAAAtqB,IAAA;AAANrC,IAAAA,KAAK,GAAAiB,4CAAA,CAAAoB,IAAA,EAAAnB,SAAA,CAAA,CAAA;AACnI,EAAA,MAAMoG,GAAG,GAAGie,YAAM,EAAE,CAAA;EACpB,oBAAO9lB,yBAAA,CAAA0B,aAAA,CAACwiB,eAAe,EAAAjhB,4BAAA,KAAK1C,KAAK,EAAA;IAAE+jB,YAAY,EAAA,IAAA;AAACzc,IAAAA,GAAG,EAAEA,GAAI;AAACgd,IAAAA,kBAAkB,EAAEA,kBAAmB;AAACT,IAAAA,KAAK,EAAEA,KAAAA;AAAM,GAAA,CAAA,EAAEhhB,KAAA,IAAA;IAAA,IAAC;AAACsjB,MAAAA,kBAAAA;AAAkB,KAAC,GAAAtjB,KAAA,CAAA;IAAA,oBACpIpD,yBAAA,CAAA0B,aAAA,CAAA1B,yBAAA,CAAAqoB,QAAA,EAAA,IAAA,eACAroB,yBAAA,CAAA0B,aAAA,CAAA,KAAA,EAAA;AAAKyH,MAAAA,SAAS,EAAEA,SAAU;AAACtB,MAAAA,GAAG,EAAEA,GAAAA;KAE5B3G,EAAAA,QAAQ,IAAIsC,oBAAc,CAACtC,QAAQ,CAAC,eAEtClB,yBAAA,CAAA0B,aAAA,CAACk9C,wBAAwB,EAAA;AAACv7C,MAAAA,OAAO,EAAEqjB,kBAAAA;KAAoB,EAAA,QAE7B,CACvB,CACH,CAAC,CAAA;AAAA,GACa,CAAC,CAAA;AACrB,CAAC,CAAC,CAAA3kB,UAAA,CAAA;EAAAC,WAAA,EAAA,oBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAYD,CAAA,CAAA,CAAA,wLAAA,CAAA;;MCpDY68C,eAAe,gBAAGj9C,0BAAM,CAACuwC,EAAE,CAAArwC,UAAA,CAAA;EAAAC,WAAA,EAAA,iBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAkBvC,CAAA,CAAA,CAAA,gLAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|