{"version":3,"file":"bell-ui-rollup.js","sources":["../src/component/constant.ts","../src/component/util.ts","../src/component/grid/util.ts","../src/component/grid/Row.ts","../src/component/grid/Col.ts","../src/component/icon/Icon.ts","../src/component/add/Add.ts","../src/component/color-swatch/ColorSwatch.ts","../src/component/countdown/Countdown.ts","../src/component/closable/Closable.ts","../src/component/footer-bar/FooterBar.ts","../src/component/resize-observer/ResizeObserver.ts","../src/component/menu/Menu.ts","../src/component/menu/MenuItem.ts","../src/component/menu/MenuGroup.ts","../src/component/event.ts","../src/component/popover/Popover.ts","../src/component/menu/SubMenu.ts","../src/component/text/Text.ts","../src/component/drawer/Drawer.ts","../src/component/guide/Guide.ts","../src/component/breadcrumb/Breadcrumb.ts","../src/component/breadcrumb/BreadcrumbItem.ts","../src/component/button/Button.ts","../src/component/button/ButtonGroup.ts","../src/component/input/Input.ts","../src/component/input-number/util.ts","../src/component/input-number/InputNumber.ts","../src/component/textarea/Textarea.ts","../src/component/radio/Radio.ts","../src/component/radio/RadioGroup.ts","../src/component/checkbox/Checkbox.ts","../src/component/checkbox/CheckboxGroup.ts","../src/component/color-picker/ColorThumb.ts","../src/component/color-picker/util.ts","../src/component/color-picker/HexInput.ts","../src/component/color-picker/RgbInput.ts","../src/component/color-picker/ColorPanel.ts","../src/component/color-picker/ColorPicker.ts","../src/component/tooltip/Tooltip.ts","../src/component/slider/Slider.ts","../src/component/space/Space.ts","../src/component/skeleton/Skeleton.ts","../src/component/statistic/Statistic.ts","../src/component/switch/Switch.ts","../src/component/steps/util.ts","../src/component/steps/Steps.ts","../src/component/steps/Step.ts","../src/component/tag/Tag.ts","../src/component/empty/Empty.ts","../src/component/select/util.ts","../src/component/select/Option.ts","../src/component/select/Select.ts","../src/component/select/OptionGroup.ts","../src/component/pagination/PrevPage.ts","../src/component/pagination/NextPage.ts","../src/component/pagination/Pagination.ts","../src/component/upload/Upload.ts","../src/component/alert/Alert.ts","../src/component/article/Article.ts","../src/component/analysis/Analysis.ts","../src/component/analysis/AnalysisField.ts","../src/component/spin/Spin.ts","../src/component/split-button/SplitButton.ts","../src/component/backtop/BackTop.ts","../src/component/avatar/Avatar.ts","../src/component/badge/Badge.ts","../src/component/date-picker/util.ts","../src/component/date-picker/component/DateYear.ts","../src/component/date-picker/component/DateMonth.ts","../src/component/date-picker/component/Date.ts","../src/component/date-picker/component/DateRange.ts","../src/component/date-picker/component/DateWeek.ts","../src/component/date-picker/DatePicker.ts","../src/component/time-picker/util.ts","../src/component/time-picker/TimePanel.ts","../src/component/time-picker/TimePicker.ts","../src/component/loading-bar/LoadingBar.ts","../src/component/image-picker/util.ts","../src/component/image-picker/ImagePicker.ts","../src/component/image/Image.ts","../src/component/carousel/Carousel.ts","../src/component/collapse/Collapse.ts","../src/component/collapse/CollapseItem.ts","../src/component/card/Card.ts","../src/component/card/CardHeader.ts","../src/component/card/CardMedia.ts","../src/component/card/CardBody.ts","../src/component/card/CardFooter.ts","../src/component/cascader/util.ts","../src/component/cascader/CascaderOptions.ts","../src/component/cascader/Cascader.ts","../src/component/page-header/PageHeader.ts","../src/component/layout/Layout.ts","../src/component/layout/LayoutHeader.ts","../src/component/layout/LayoutContent.ts","../src/component/layout/LayoutFooter.ts","../src/component/layout/LayoutSider.ts","../src/component/link/Link.ts","../src/component/list/ListEmpty.ts","../src/component/list/List.ts","../src/component/list/ListItem.ts","../src/component/result/Result.ts","../src/component/exception/Exception.ts","../src/component/divider/Divider.ts","../src/component/circle/Circle.ts","../src/component/popconfirm/Popconfirm.ts","../src/component/progress/ProgressTrack.ts","../src/component/progress/Progress.ts","../src/component/tree/TreeNode.ts","../src/component/tree/util.ts","../src/component/tree/Tree.ts","../src/component/rate/Rate.ts","../src/component/tabs/Tabs.ts","../src/component/tabs/TabPanel.ts","../src/component/dropdown/Dropdown.ts","../src/component/dropdown/DropdownItem.ts","../src/component/dropdown/DropdownMenu.ts","../src/component/description/util.ts","../src/component/description/Description.ts","../src/component/description/DescriptionItem.ts","../src/component/timeline/Timeline.ts","../src/component/timeline/TimelineItem.ts","../src/component/form/util.ts","../src/component/form/Form.ts","../src/component/form/FormItem.ts","../src/component/dialog/Dialog.ts","../src/component/table/Table.ts","../src/component/loading-bar/index.ts","../src/component/message/Message.ts","../src/component/message/util.ts","../src/component/message/index.ts","../src/component/modal/Alert.ts","../src/component/modal/Confirm.ts","../src/component/modal/index.ts","../src/component/notification/Notification.ts","../src/component/notification/index.ts","../src/index.ts"],"sourcesContent":["export const TRUE = true\nexport const FALSE = false\nexport const NULL = null\nexport const UNDEFINED = void 0\n\nexport const RAW_DATE = 'date'\nexport const RAW_ARRAY = 'array'\nexport const RAW_STRING = 'string'\nexport const RAW_BOOLEAN = 'boolean'\nexport const RAW_NUMERIC = 'numeric'\nexport const RAW_NUMBER = 'number'\nexport const RAW_OBJECT = 'object'\nexport const RAW_FUNCTION = 'function'\n\nexport const RAW_HORIZONTAL = 'horizontal'\nexport const RAW_VERTICAL = 'vertical'\nexport const RAW_INLINE = 'inline'\n\nexport const RAW_SMALL = 'small'\nexport const RAW_DEFAULT = 'default'\nexport const RAW_LARGE = 'large'\n\nexport const RAW_ALWAYS = 'always'\nexport const RAW_NEVER = 'never'\n\nexport const RAW_HOVER = 'hover'\nexport const RAW_CLICK = 'click'\nexport const RAW_CUSTOM = 'custom'\nexport const RAW_RESIZE = 'resize'\n\nexport const RAW_CENTER = 'center'\nexport const RAW_MIDDLE = 'middle'\n\nexport const RAW_WAIT = 'wait'\nexport const RAW_PROCESS = 'process'\nexport const RAW_FINISH = 'finish'\n\nexport const RAW_STRETCH = 'stretch'\nexport const RAW_CONTAIN = 'contain'\n// 以后再支持 cover\n\nexport const RAW_TOP = 'top'\nexport const RAW_TOP_START = 'top-start'\nexport const RAW_TOP_END = 'top-end'\nexport const RAW_BOTTOM = 'bottom'\nexport const RAW_BOTTOM_START = 'bottom-start'\nexport const RAW_BOTTOM_END = 'bottom-end'\nexport const RAW_LEFT = 'left'\nexport const RAW_LEFT_START = 'left-start'\nexport const RAW_LEFT_END = 'left-end'\nexport const RAW_RIGHT = 'right'\nexport const RAW_RIGHT_START = 'right-start'\nexport const RAW_RIGHT_END = 'right-end'\n\nexport const RAW_TYPE_PRIMARY = 'primary'\nexport const RAW_TYPE_SUCCESS = 'success'\nexport const RAW_TYPE_WARNING = 'warning'\nexport const RAW_TYPE_ERROR = 'error'\nexport const RAW_TYPE_INFO = 'info'\nexport const RAW_TYPE_DASHED = 'dashed'\nexport const RAW_TYPE_LINK = 'link'\nexport const RAW_TYPE_TEXT = 'text'\nexport const RAW_TYPE_TITLE = 'title'\nexport const RAW_TYPE_CONTENT = 'content'\nexport const RAW_TYPE_MUTED = 'muted'\nexport const RAW_TYPE_PURE = 'pure'\n\nexport const RAW_SHAPE_CIRCLE = 'circle'\nexport const RAW_SHAPE_ROUND = 'round'\n\nexport const RAW_EVENT_KEYPRESS = 'keypress'\nexport const RAW_EVENT_KEYDOWN = 'keydown'\nexport const RAW_EVENT_KEYUP = 'keyup'\nexport const RAW_EVENT_MOUSEDOWN = 'mousedown'\nexport const RAW_EVENT_MOUSEMOVE = 'mousemove'\nexport const RAW_EVENT_MOUSEUP = 'mouseup'\nexport const RAW_EVENT_SCROLL = 'scroll'\nexport const RAW_EVENT_RESIZE = 'resize'\nexport const RAW_EVENT_BEFORE_DESTROY = 'beforeDestroy'\n\nexport const RAW_SLOT_PREFIX = '$slot_'\nexport const RAW_SLOT_CHILDREN = RAW_SLOT_PREFIX + 'children'\n\nexport const RAW_DARK = 'dark'\nexport const RAW_LIGHT = 'light'\n\nexport const RAW_IMAGE_ACCEPT = 'image/png,image/jpeg,image/jpg,image/gif'\n\nexport const RAW_THEME_ARRAY = [\n RAW_DARK,\n RAW_LIGHT,\n]\n\nexport const RAW_STATUS_ARRAY = [\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_WARNING,\n RAW_TYPE_ERROR,\n]\n\nexport const RAW_TYPE_ARRAY = [\n RAW_TYPE_PRIMARY,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_WARNING,\n RAW_TYPE_ERROR,\n]\n\nexport const RAW_SIZE_ARRAY = [\n RAW_SMALL,\n RAW_DEFAULT,\n RAW_LARGE,\n]\n\nexport const RAW_PLACEMENT_ARRAY = [\n RAW_TOP,\n RAW_TOP_START,\n RAW_TOP_END,\n RAW_BOTTOM,\n RAW_BOTTOM_START,\n RAW_BOTTOM_END,\n RAW_LEFT,\n RAW_LEFT_START,\n RAW_LEFT_END,\n RAW_RIGHT,\n RAW_RIGHT_START,\n RAW_RIGHT_END\n]\n\nexport const RAW_STYLE_TYPE = [\n RAW_STRING,\n RAW_OBJECT,\n RAW_ARRAY,\n]\n\nexport const WINDOW = window\nexport const DOCUMENT = document\nexport const BODY = DOCUMENT.body\n\nexport const HOVER_DELAY = 100","import { UNDEFINED, NULL, DOCUMENT, TRUE, FALSE, WINDOW, BODY, RAW_TYPE_SUCCESS, RAW_TYPE_WARNING, RAW_TYPE_ERROR } from './constant'\nimport Yox, { Listener } from 'yox'\n\nconst element = DOCUMENT.createElement('div')\n\nconst prefixs = ['Webkit', 'Moz', 'O', 'ms']\n\nfunction testCSS(property: string) {\n\n const upperCase = property.charAt(0).toUpperCase()\n + property.slice(1)\n\n const list = (property\n + ' '\n + prefixs.join(upperCase + ' ')\n + upperCase).split(' ')\n\n for (let i = 0, len = list.length; i < len; i++) {\n if (list[i] in element.style) {\n return list[i]\n }\n }\n\n}\n\nexport const screenWidth = WINDOW.screen.availWidth\n\nconst transitionEnd = testCSS('transition') ? 'transitionend' : ''\n\nexport const isMac = /Macintosh/i.test(navigator.userAgent)\nexport const supportTransform = testCSS('transform') ? TRUE : FALSE\nexport const supportFlexGap = testCSS('gap') ? TRUE : FALSE\n\nexport function onTransitionEnd(el: HTMLElement, callback: () => void) {\n // 如果 el 已经被隐藏,则直接调用 callback\n if (transitionEnd && (el.offsetWidth || el.offsetHeight)) {\n const listener = function () {\n Yox.dom.off(el, transitionEnd, listener as Listener)\n callback()\n }\n Yox.dom.on(\n el,\n transitionEnd,\n listener\n )\n }\n else {\n Yox.nextTick(callback)\n }\n}\n\n\nconst supportPageOffset = WINDOW.pageXOffset !== UNDEFINED\nconst isCSS1Compat = DOCUMENT.compatMode === 'CSS1Compat'\n\nexport function getPageX() {\n return supportPageOffset\n ? WINDOW.pageXOffset\n : isCSS1Compat\n ? DOCUMENT.documentElement.scrollLeft\n : BODY.scrollLeft\n}\n\nexport function getPageY() {\n return supportPageOffset\n ? WINDOW.pageYOffset\n : isCSS1Compat\n ? DOCUMENT.documentElement.scrollTop\n : BODY.scrollTop\n}\n\nexport const requestAnimationFrame = (\n WINDOW.requestAnimationFrame ||\n WINDOW['webkitRequestAnimationFrame'] ||\n WINDOW['mozRequestAnimationFrame'] ||\n WINDOW['msRequestAnimationFrame'] ||\n function (callback) {\n return WINDOW.setTimeout(callback, 1000 / 60)\n }\n)\n\nexport function readElementRectInfo(element: HTMLElement, callback: (rect: object) => void) {\n\n const rectInfo = element.getBoundingClientRect()\n if (rectInfo.width > 0 || rectInfo.height > 0) {\n callback(rectInfo)\n return\n }\n\n setTimeout(\n function () {\n readElementRectInfo(element, callback)\n },\n 20\n )\n\n}\n\nexport function contains(element: HTMLElement, target: HTMLElement) {\n if (element.contains && element.contains(target)) {\n return TRUE\n }\n else if (element.compareDocumentPosition && element.compareDocumentPosition(target) > 16) {\n return TRUE\n }\n return FALSE\n}\n\nexport function toNumber(value: any, defaultValue?: any): any {\n return Yox.is.numeric(value)\n ? +value\n : defaultValue !== UNDEFINED\n ? defaultValue\n : 0\n}\n\nexport function toString(value: any, defaultValue?: any) {\n if (value == NULL) {\n return defaultValue !== UNDEFINED\n ? defaultValue as string\n : ''\n }\n return '' + value\n}\n\nexport function toBoolean(value: any) {\n return Yox.is.boolean(value)\n ? value\n : FALSE\n}\n\nexport function toPixel(value: number) {\n return value + 'px'\n}\n\nexport function toPercent(value: number) {\n return value + '%'\n}\n\nexport function findComponentUpward(parent, componentName: string | string[]) {\n if (typeof componentName === 'string') {\n componentName = [ componentName ]\n }\n else {\n componentName = componentName\n }\n\n while (parent) {\n let { name } = parent.$options\n if (name && Yox.array.has(componentName, name)) {\n break\n }\n else {\n parent = parent.$parent\n }\n }\n\n return parent\n}\n\nexport function oneOf(values: any[]) {\n return function (key: string, value: any, componentName: string | undefined) {\n\n // 只需要检测有值的情况\n if (value === UNDEFINED) {\n return\n }\n\n // 传值在枚举值中\n if (Yox.array.has(values, value, FALSE)) {\n return\n }\n\n Yox.logger.warn(`${key} 期望是 ${values.join(',')} 中的值,实际传值 [${value}]。`, componentName)\n\n }\n}\n\nexport function getNowTime() {\n return Date.now()\n}\n\nconst SECOND = 1000\nconst MINUTE = 60 * SECOND\nconst HOUR = 60 * MINUTE\nconst DAY = 24 * HOUR\n\nexport function formatMillisecond(\n value: number,\n options: {\n format: string,\n trimDay?: boolean,\n trimHour?: boolean,\n }\n) {\n\n let { format, trimDay, trimHour } = options\n\n const showDay = format.indexOf('d') >= 0\n const showHour = format.indexOf('H') >= 0\n const showMinute = format.indexOf('m') >= 0\n const showSecond = format.indexOf('s') >= 0\n\n let day = 0\n if (showDay) {\n day = Math.floor(value / DAY)\n value %= DAY\n }\n\n let hour = 0\n if (showHour) {\n hour = Math.floor(value / HOUR)\n value %= HOUR\n }\n\n let minute = 0\n if (showMinute) {\n minute = Math.floor(value / MINUTE)\n value %= MINUTE\n }\n\n let second = 0\n if (showSecond) {\n second = Math.floor(value / SECOND)\n value %= SECOND\n }\n\n if (!day && trimDay) {\n format = format.replace(/dd:/, '').replace(/d:/, '')\n if (!hour && trimHour) {\n format = format.replace(/HH:/, '').replace(/H:/, '')\n }\n }\n\n return format\n .replace(/dd/, padStart(day))\n .replace(/d/, toString(day))\n .replace(/HH/, padStart(hour))\n .replace(/H/, toString(hour))\n .replace(/mm/, padStart(minute))\n .replace(/m/, toString(minute))\n .replace(/SSS/, padStart(value, 3))\n .replace(/ss/, padStart(second))\n .replace(/s/, toString(second))\n\n}\n\nexport function padStart(value: number, length = 2) {\n\n const text = toString(value)\n\n const arrayLength = length - text.length + 1\n if (arrayLength > 0) {\n return new Array(arrayLength).join('0') + value\n }\n\n return text\n\n}\n\nexport function scrollTo(\n element: HTMLElement | Window,\n from: number = 0,\n to: number,\n duration: number = 500,\n callback?: () => void\n) {\n\n const difference = Math.abs(from - to)\n const step = duration > 0 ? Math.ceil(difference / duration * 50) : difference\n\n function scroll(start, end, step) {\n if (start === end) {\n if (callback) {\n callback()\n }\n return\n }\n\n let duration = (start + step > end) ? end : start + step\n if (start > end) {\n duration = (start - step < end) ? end : start - step\n }\n\n if (element === WINDOW) {\n WINDOW.scrollTo(duration, duration)\n }\n else {\n (element as HTMLElement).scrollTop = duration\n }\n requestAnimationFrame(function () {\n scroll(duration, end, step)\n })\n }\n scroll(from, to, step)\n}\n\nexport function getStatusIconName(status: string) {\n return status === RAW_TYPE_SUCCESS\n ? 'checkbox-circle-fill'\n : status === RAW_TYPE_WARNING\n ? 'error-warning-fill'\n : status === RAW_TYPE_ERROR\n ? 'close-circle-fill'\n : 'information-fill'\n}\n\nexport function spaceListStyle(gaps: number[] | void, vertical: boolean, autoWrap: boolean, style?: any): object[] | void {\n const result: object[] = []\n\n if (gaps) {\n const gapStyle: Record = {}\n const horizontalGap = gaps[0]\n const verticalGap = gaps[1]\n if (supportFlexGap) {\n if (horizontalGap > 0) {\n gapStyle.columnGap = toPixel(horizontalGap)\n }\n if (verticalGap > 0) {\n gapStyle.rowGap = toPixel(verticalGap)\n }\n }\n else if (vertical\n || (verticalGap > 0 && autoWrap)\n ) {\n gapStyle.marginBottom = toPixel(-verticalGap)\n }\n if (Yox.object.keys(gapStyle).length > 0) {\n result.push(gapStyle)\n }\n }\n\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n}\n\nexport function spaceItemStyle(gaps: number[] | void, vertical: boolean, autoWrap: boolean, style?: Record): Record | void {\n const result: Record = style || {}\n if (!supportFlexGap && gaps) {\n const horizontalGap = gaps[0]\n const verticalGap = gaps[1]\n if (vertical) {\n if (verticalGap > 0) {\n result.marginBottom = toPixel(verticalGap)\n }\n }\n else {\n if (horizontalGap > 0) {\n result.marginRight = toPixel(horizontalGap)\n }\n if (verticalGap > 0 && autoWrap) {\n result.marginBottom = toPixel(verticalGap)\n }\n }\n }\n if (Yox.object.keys(result).length > 0) {\n return result\n }\n}\n\n","import Yox, { Watcher } from 'yox'\n\ntype breakpoint = 'xxl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs'\n\nconst responsiveMap: Record = {\n xs: '(max-width: 575px)',\n sm: '(min-width: 576px)',\n md: '(min-width: 768px)',\n lg: '(min-width: 992px)',\n xl: '(min-width: 1200px)',\n xxl: '(min-width: 1600px)',\n}\n\nexport const responsiveArray: breakpoint[] = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl']\n\nfunction eachBreakpoints(callback: (breakpoint: breakpoint, mql: MediaQueryList) => void) {\n Yox.array.each(\n responsiveArray,\n function (key) {\n callback(\n key,\n window.matchMedia(responsiveMap[key])\n )\n }\n )\n}\n\nfunction getCurrentBreakpoint() {\n let result: breakpoint\n eachBreakpoints(\n function (breakpoint, mql) {\n if (mql.matches) {\n result = breakpoint\n }\n }\n )\n return result\n}\n\nconst store = new Yox({\n data: {\n breakpoint: getCurrentBreakpoint(),\n }\n})\n\neachBreakpoints(\n function (breakpoint, mql) {\n const listener = function (event: { matches: boolean }) {\n if (event.matches) {\n store.set('breakpoint', breakpoint)\n }\n else if (store.get('breakpoint') === breakpoint) {\n store.set(\n 'breakpoint',\n getCurrentBreakpoint()\n )\n }\n }\n mql.addListener(listener)\n }\n)\n\nexport function getBreakpoint() {\n return store.get('breakpoint')\n}\n\nexport function watchBreakpoint(watcher: Watcher) {\n store.watch('breakpoint', watcher)\n}\n\nexport function unwatchBreakpoint(watcher: Watcher) {\n store.unwatch('breakpoint', watcher)\n}\n\nexport function parseGutter(breakpoint: breakpoint | void, gutter: string | number | object | void) {\n\n if (gutter > 0) {\n return gutter\n }\n else if (breakpoint && Yox.is.object(gutter)) {\n // 找最接近的\n const startIndex = responsiveArray.indexOf(breakpoint)\n if (startIndex >= 0) {\n for (let i = startIndex; i >= 0; i--) {\n const value = gutter[responsiveArray[i]]\n if (value > 0) {\n return value\n }\n }\n }\n }\n\n}","import Yox from 'yox'\n\nimport template from './template/Row.hbs'\n\nimport {\n TRUE,\n RAW_ARRAY,\n RAW_OBJECT,\n RAW_STRING,\n RAW_NUMERIC,\n RAW_TOP,\n RAW_MIDDLE,\n RAW_BOTTOM,\n RAW_STYLE_TYPE,\n RAW_EVENT_BEFORE_DESTROY,\n RAW_BOOLEAN,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n supportFlexGap,\n} from '../util'\n\nimport {\n parseGutter,\n getBreakpoint,\n watchBreakpoint,\n unwatchBreakpoint,\n} from './util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Row',\n\n propTypes: {\n gutter: {\n type: [RAW_NUMERIC, RAW_OBJECT, RAW_ARRAY],\n },\n justify: {\n type: oneOf(['start', 'end', 'center', 'space-around', 'space-between']),\n value: 'start',\n },\n align: {\n type: oneOf([RAW_TOP, RAW_MIDDLE, RAW_BOTTOM]),\n value: RAW_TOP,\n },\n autoWrap: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n breakpoint: getBreakpoint(),\n }\n },\n\n computed: {\n responsiveGutter() {\n let gutter = this.get('gutter')\n if (gutter) {\n if (!Yox.is.array(gutter)) {\n gutter = [gutter]\n }\n const breakpoint = this.get('breakpoint')\n return [\n parseGutter(breakpoint, gutter[0]),\n parseGutter(breakpoint, gutter[1]),\n ]\n }\n },\n inlineStyle(): object[] | void {\n\n const result: object[] = []\n\n const customStyle: Record = {}\n\n const responsiveGutter = this.get('responsiveGutter')\n if (responsiveGutter) {\n if (responsiveGutter[0] > 0) {\n const horizontalGutter = toPixel(responsiveGutter[0] / -2)\n customStyle.marginLeft = horizontalGutter\n customStyle.marginRight = horizontalGutter\n }\n if (responsiveGutter[1] > 0) {\n if (supportFlexGap) {\n customStyle.rowGap = toPixel(responsiveGutter[1])\n }\n else {\n const verticalGutter = toPixel(responsiveGutter[1] / -2)\n customStyle.marginTop = verticalGutter\n customStyle.marginBottom = verticalGutter\n }\n }\n }\n\n if (Yox.object.keys(customStyle).length > 0) {\n result.push(customStyle)\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n\n }\n },\n\n watchers: {\n autoWrap(autoWrap) {\n this.fire(\n {\n type: 'change',\n ns: 'row',\n },\n {\n autoWrap,\n },\n TRUE\n )\n },\n breakpoint(breakpoint) {\n this.fire(\n {\n type: 'change',\n ns: 'row',\n },\n {\n breakpoint,\n },\n TRUE\n )\n },\n responsiveGutter(responsiveGutter) {\n this.fire(\n {\n type: 'change',\n ns: 'row',\n },\n {\n responsiveGutter,\n },\n TRUE\n )\n }\n },\n\n afterMount() {\n\n const me = this\n const watcher = function (value) {\n me.set('breakpoint', value)\n }\n\n watchBreakpoint(watcher)\n\n const destroy = function (component) {\n if (component === me) {\n unwatchBreakpoint(watcher)\n Yox.lifeCycle.off(RAW_EVENT_BEFORE_DESTROY, destroy)\n }\n }\n Yox.lifeCycle.on(RAW_EVENT_BEFORE_DESTROY, destroy)\n\n }\n})\n","import Yox, { Data } from 'yox'\n\nimport template from './template/Col.hbs'\n\nimport {\n RAW_STRING,\n RAW_NUMBER,\n RAW_NUMERIC,\n RAW_OBJECT,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n toPixel,\n supportFlexGap,\n findComponentUpward,\n} from '../util'\n\nimport {\n responsiveArray\n} from './util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Col',\n\n propTypes: {\n flex: {\n type: [RAW_NUMBER, RAW_STRING],\n },\n span: {\n type: RAW_NUMERIC,\n },\n order: {\n type: RAW_NUMERIC,\n },\n offset: {\n type: RAW_NUMERIC,\n },\n pull: {\n type: RAW_NUMERIC,\n },\n push: {\n type: RAW_NUMERIC,\n },\n xs: {\n type: [RAW_NUMERIC, RAW_OBJECT],\n },\n sm: {\n type: [RAW_NUMERIC, RAW_OBJECT],\n },\n md: {\n type: [RAW_NUMERIC, RAW_OBJECT],\n },\n lg: {\n type: [RAW_NUMERIC, RAW_OBJECT],\n },\n xl: {\n type: [RAW_NUMERIC, RAW_OBJECT],\n },\n xxl: {\n type: [RAW_NUMERIC, RAW_OBJECT],\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n const row = findComponentUpward(options.parent, '${prefix}Row')\n return {\n autoWrap: row.get('autoWrap'),\n breakpoint: row.get('breakpoint'),\n responsiveGutter: row.get('responsiveGutter'),\n }\n },\n\n events: {\n change: {\n listener(_, data) {\n this.set(data)\n },\n ns: 'row',\n }\n },\n\n computed: {\n responsiveClass() {\n const me = this\n const breakpoint = me.get('breakpoint')\n\n const breakpointList = responsiveArray.map(\n function (breakpoint) {\n return me.get(breakpoint)\n }\n )\n\n let breakpointName: string | void\n let breakpointConfig: Data | void\n const startIndex = responsiveArray.indexOf(breakpoint)\n if (startIndex >= 0) {\n for (let i = startIndex; i >= 0; i--) {\n const value = breakpointList[i]\n if (value) {\n breakpointName = responsiveArray[i]\n breakpointConfig = value\n break\n }\n }\n }\n\n if (breakpointConfig) {\n const result: string[] = []\n if (Yox.is.object(breakpointConfig)) {\n const { span, order, offset, pull, push } = breakpointConfig\n if (span) {\n result.push('${prefix}col-' + breakpointName + '-' + span)\n }\n if (order) {\n result.push('${prefix}col-' + breakpointName + '-order-' + order)\n }\n if (offset) {\n result.push('${prefix}col-' + breakpointName + '-offset-' + offset)\n }\n if (pull) {\n result.push('${prefix}col-' + breakpointName + '-pull-' + pull)\n }\n if (push) {\n result.push('${prefix}col-' + breakpointName + '-push-' + push)\n }\n }\n else if (Yox.is.numeric(breakpointConfig)) {\n result.push('${prefix}col-' + breakpointName + '-' + breakpointConfig)\n }\n if (result.length) {\n return result.join(' ')\n }\n }\n\n },\n inlineStyle(): object[] | void {\n\n const result: object[] = []\n\n const customStyle: Record = {}\n\n const flex = this.get('flex')\n if (Yox.is.numeric(flex)) {\n customStyle.flex = `${flex} ${flex} auto`\n }\n else if (flex && Yox.is.string(flex)) {\n customStyle.flex = /^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)\n ? `0 0 ${flex}`\n : flex\n }\n\n const autoWrap = this.get('autoWrap')\n // Hack for Firefox to avoid size issue\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n if (!autoWrap && customStyle.flex) {\n customStyle.minWidth = 0\n }\n\n const responsiveGutter = this.get('responsiveGutter')\n if (responsiveGutter) {\n if (responsiveGutter[0] > 0) {\n const horizontalGutter = toPixel(responsiveGutter[0] / 2)\n customStyle.paddingLeft = horizontalGutter\n customStyle.paddingRight = horizontalGutter\n }\n if (responsiveGutter[1] > 0 && !supportFlexGap) {\n const verticalGutter = toPixel(responsiveGutter[1] / 2)\n customStyle.paddingTop = verticalGutter\n customStyle.paddingBottom = verticalGutter\n }\n }\n\n if (Yox.object.keys(customStyle).length > 0) {\n result.push(customStyle)\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n\n }\n },\n})\n","import Yox from 'yox'\n\nimport template from './template/Icon.hbs'\n// import './style/Icon.styl'\n\nimport {\n TRUE,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n toPixel,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Icon',\n\n propTypes: {\n name: {\n type: RAW_STRING,\n required: TRUE,\n },\n size: {\n type: RAW_NUMERIC,\n },\n color: {\n type: RAW_STRING,\n },\n spin: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const customStyle: Record = {}\n\n const color = this.get('color')\n const size = this.get('size')\n\n if (color) {\n customStyle.color = color\n }\n if (size > 0) {\n customStyle.fontSize = toPixel(size)\n }\n\n if (Yox.object.keys(customStyle).length > 0) {\n result.push(customStyle)\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n }\n})","import Yox from 'yox'\n\nimport template from './template/Add.hbs'\n// import './style/Add.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n RAW_STRING,\n RAW_NUMERIC,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport { toPixel } from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Add',\n\n propTypes: {\n title: {\n type: RAW_STRING,\n },\n width: {\n type: RAW_NUMERIC,\n value: 100,\n },\n height: {\n type: RAW_NUMERIC,\n value: 100,\n },\n block: {\n type: RAW_BOOLEAN,\n },\n vertical: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n inlineStyle(): object[] | void {\n\n const result: object[] = []\n\n const width = this.get('width')\n const height = this.get('height')\n\n if (this.get('block')) {\n result.push({\n height: toPixel(height),\n })\n }\n else {\n result.push({\n width: toPixel(width),\n height: toPixel(height),\n })\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n },\n\n components: {\n Icon,\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/ColorSwatch.hbs'\n// import './style/ColorSwatch.styl'\n\nimport {\n TRUE,\n FALSE,\n RAW_ARRAY,\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n spaceListStyle,\n spaceItemStyle,\n} from '../util'\n\nconst swatchGaps = [10, 8]\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}ColorSwatch',\n\n propTypes: {\n swatches: {\n type: RAW_ARRAY,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n swatchListStyle(): object[] | void {\n return spaceListStyle(\n swatchGaps,\n FALSE,\n TRUE,\n this.get('style')\n )\n },\n swatchItemStyle(): Record | void {\n return spaceItemStyle(\n swatchGaps,\n FALSE,\n TRUE\n )\n },\n },\n\n methods: {\n onColorClick(color: string) {\n this.fire(\n {\n type: 'change',\n ns: 'colorSwatch',\n },\n {\n color,\n }\n )\n },\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Countdown.hbs'\n// import './style/Countdown.styl'\n\nimport {\n TRUE,\n UNDEFINED,\n RAW_STRING,\n RAW_NUMERIC,\n RAW_STYLE_TYPE,\n RAW_EVENT_BEFORE_DESTROY,\n} from '../constant'\n\nimport {\n toNumber,\n formatMillisecond,\n} from '../util'\n\nconst SECOND = 1000\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Countdown',\n\n propTypes: {\n value: {\n type: RAW_NUMERIC,\n },\n step: {\n type: RAW_NUMERIC,\n },\n format: {\n type: RAW_STRING,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n formatedValue() {\n const value = toNumber(this.get('value'))\n const format = this.get('format') || 'HH:mm:ss'\n return formatMillisecond(value, { format })\n }\n },\n\n afterMount() {\n\n const me = this\n\n let timer: number | void\n let step: number\n\n const clearTimer = function () {\n if (timer) {\n clearInterval(timer)\n timer = UNDEFINED\n }\n }\n\n const next = function () {\n const value = toNumber(me.get('value'))\n let isFinish: boolean\n if (value > 0) {\n const newValue = Math.max(value - step, 0)\n me.set('value', newValue)\n isFinish = newValue == 0\n me.fire(\n {\n type: 'change',\n ns: 'countdown'\n },\n {\n value: newValue,\n }\n )\n }\n else {\n isFinish = TRUE\n }\n\n if (isFinish) {\n clearTimer()\n me.fire(\n {\n type: 'finish',\n ns: 'countdown'\n }\n )\n }\n }\n\n me.watch(\n 'step',\n function (newValue) {\n step = toNumber(newValue, SECOND)\n clearTimer()\n if (step > 0) {\n timer = window.setInterval(next, step)\n }\n },\n TRUE\n )\n\n const destroy = function (component) {\n if (component === me) {\n clearTimer()\n Yox.lifeCycle.off(RAW_EVENT_BEFORE_DESTROY, destroy)\n }\n }\n Yox.lifeCycle.on(RAW_EVENT_BEFORE_DESTROY, destroy)\n\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Closable.hbs'\n// import './style/Closable.styl'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_ALWAYS,\n RAW_HOVER,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport { oneOf } from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Closable',\n\n propTypes: {\n needClose: {\n type: RAW_BOOLEAN,\n },\n showClose: {\n type: oneOf([RAW_ALWAYS, RAW_HOVER]),\n },\n draggable: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n RAW_ALWAYS,\n RAW_HOVER,\n }\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/FooterBar.hbs'\n// import './style/FooterBar.styl'\n\nimport {\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport { oneOf } from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}FooterBar',\n\n propTypes: {\n align: {\n type: oneOf(['start', 'end', 'center']),\n value: 'center',\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n})","import Yox from 'yox'\n\nimport template from './template/ResizeObserver.hbs'\n// import './style/ResizeObserver.styl'\n\nimport {\n RAW_NUMERIC,\n RAW_EVENT_BEFORE_DESTROY,\n} from '../constant'\n\nimport {\n toNumber,\n getNowTime,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}ResizeObserver',\n\n propTypes: {\n delay: {\n type: RAW_NUMERIC,\n }\n },\n\n afterMount() {\n\n const me = this\n const element = me.$el\n const delay = toNumber(me.get('delay'), 0)\n\n let timerRef: any\n let timerTimestamp: number\n let actualWidth: number\n let actualHeight: number\n\n const handleResize = function (width: number, height: number) {\n if (width > 0 && height > 0) {\n actualWidth = width\n actualHeight = height\n\n // 需要延时的情况下,\n if (delay > 0) {\n const now = getNowTime()\n const rest = timerTimestamp > 0 ? now - timerTimestamp : delay\n if (!timerRef) {\n timerTimestamp = now\n timerRef = setTimeout(\n fireResize,\n rest\n )\n return\n }\n if (rest > 0) {\n clearTimeout(timerRef)\n timerRef = setTimeout(\n fireResize,\n delay\n )\n return\n }\n }\n fireResize()\n\n }\n }\n\n const fireResize = function () {\n if (timerRef) {\n timerTimestamp = 0\n clearTimeout(timerRef)\n }\n me.fire(\n {\n type: 'resize',\n ns: 'resizeObserver',\n },\n {\n width: actualWidth,\n height: actualHeight,\n }\n )\n }\n\n handleResize(element.clientWidth, element.clientHeight)\n\n // @ts-ignore\n if (typeof ResizeObserver !== 'undefined') {\n // @ts-ignore\n const resizeObserver = new ResizeObserver(\n function (entries) {\n const { width, height } = entries[0].contentRect\n handleResize(width, height)\n }\n )\n resizeObserver.observe(element)\n\n const destroy = function (component) {\n if (component === me) {\n resizeObserver.disconnect()\n Yox.lifeCycle.off(RAW_EVENT_BEFORE_DESTROY, destroy)\n }\n }\n Yox.lifeCycle.on(RAW_EVENT_BEFORE_DESTROY, destroy)\n }\n\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Menu.hbs'\n// import './style/Menu.styl'\n\nimport {\n TRUE,\n\n RAW_ARRAY,\n RAW_STRING,\n RAW_BOOLEAN,\n\n RAW_HORIZONTAL,\n RAW_VERTICAL,\n RAW_INLINE,\n RAW_LIGHT,\n RAW_THEME_ARRAY,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Menu',\n\n propTypes: {\n mode: {\n type: oneOf([RAW_HORIZONTAL, RAW_VERTICAL, RAW_INLINE]),\n value: RAW_HORIZONTAL,\n },\n theme: {\n type: oneOf(RAW_THEME_ARRAY),\n value: RAW_LIGHT,\n },\n collapsed: {\n type: RAW_BOOLEAN,\n },\n activeName: {\n type: RAW_STRING,\n },\n openNames: {\n type: RAW_ARRAY,\n value() {\n return []\n }\n },\n inner: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n watchers: {\n activeName(activeName: boolean) {\n this.fire(\n {\n type: 'activeName',\n ns: 'menu',\n },\n { activeName },\n TRUE\n )\n },\n openNames(openNames: boolean) {\n this.fire(\n {\n type: 'openNames',\n ns: 'menu',\n },\n { openNames },\n TRUE\n )\n },\n collapsed(collapsed: boolean) {\n this.fire(\n {\n type: 'change',\n ns: 'menu',\n },\n { collapsed },\n TRUE\n )\n },\n theme(theme) {\n this.fire(\n {\n type: 'change',\n ns: 'menu',\n },\n { theme },\n TRUE\n )\n },\n mode(mode) {\n this.fire(\n {\n type: 'change',\n ns: 'menu',\n },\n { mode },\n TRUE\n )\n },\n },\n\n events: {\n click: {\n listener(event, data) {\n if (event.phase === Yox.Event.PHASE_UPWARD\n && !this.get('inner')\n ) {\n this.fire(\n {\n type: 'change',\n ns: 'menu',\n },\n {\n activeName: data.name\n }\n )\n }\n },\n ns: 'menuItem',\n },\n isOpen: {\n listener(event, data) {\n if (event.phase === Yox.Event.PHASE_UPWARD\n && !this.get('inner')\n ) {\n\n const { isOpen, name } = data\n\n let openNames = this.get('openNames')\n if (openNames) {\n openNames = this.copy(openNames)\n }\n else {\n openNames = []\n }\n\n if (isOpen) {\n openNames.push(name)\n }\n else {\n Yox.array.remove(openNames, name)\n }\n\n this.fire(\n {\n type: 'change',\n ns: 'menu',\n },\n {\n openNames,\n }\n )\n\n }\n },\n ns: 'subMenu',\n }\n }\n})","import Yox from 'yox'\n\nimport template from './template/MenuItem.hbs'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n findComponentUpward,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}MenuItem',\n\n propTypes: {\n name: {\n type: RAW_STRING,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n const menu = findComponentUpward(options.parent, '${prefix}Menu')\n return {\n isActive: menu.get('activeName') === this.get('name'),\n }\n },\n\n events: {\n activeName: {\n listener(_, data) {\n this.set('isActive', data.activeName === this.get('name'))\n },\n ns: 'menu',\n },\n },\n\n methods: {\n click() {\n this.fire(\n {\n type: 'click',\n ns: 'menuItem',\n },\n {\n name: this.get('name')\n }\n )\n }\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/MenuGroup.hbs'\n\nimport {\n RAW_STRING,\n RAW_INLINE,\n RAW_VERTICAL,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n findComponentUpward,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}MenuGroup',\n\n propTypes: {\n title: {\n type: RAW_STRING,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n const menu = findComponentUpward(options.parent, '${prefix}Menu')\n return {\n RAW_INLINE,\n RAW_VERTICAL,\n mode: menu.get('mode'),\n }\n },\n\n})","import Yox, { CustomEventInterface, Listener } from 'yox'\nimport { DOCUMENT, RAW_EVENT_BEFORE_DESTROY, RAW_EVENT_KEYDOWN, TRUE, UNDEFINED } from './constant'\n\nconst emitter = new Yox()\n\n/**\n * 有些组件会调用 `event.stop()` 阻止事件冒泡\n *\n * 但是,有些地方需要监听全局点击事件,这些组件的点击事件不能被忽略\n *\n * 因此,我们加一个全局方法,让组件再调用 `event.stop()` 之后再调用 `fireClickEvent()`\n *\n * @param event\n */\nexport function fireClickEvent(event?: CustomEventInterface, isFromPopover?: boolean) {\n // event 一般会被调用 `event.stop()`\n // 如果直接 fire 原事件,相当于 fire 了一个 stoped 事件,这是不对的\n emitter.fire(\n new Yox.Event('click', event ? event.originalEvent : UNDEFINED),\n { isFromPopover }\n )\n}\n\nexport function onClickEvent(listener: Listener) {\n emitter.on('click', listener)\n}\n\nexport function offClickEvent(listener: Listener) {\n emitter.off('click', listener)\n}\n\nlet startDragTime = 0\nlet endDragTime = 0\n\nexport function startDrag() {\n startDragTime = Date.now()\n endDragTime = 0\n}\n\nexport function endDrag() {\n endDragTime = Date.now()\n}\n\nexport function isClickEvent() {\n // 拖拽结束时,mouseup 之后会紧接着触发 click,此时要判断间隔,如果大于 200ms 才算是 click\n if (endDragTime > 0) {\n return Date.now() - endDragTime > 200\n }\n return TRUE\n}\n\nexport function onClickEventByEnterPress(instance: any, handler?: () => void) {\n\n const onKeydown = function (event: CustomEventInterface) {\n const originalEvent = event.originalEvent as KeyboardEvent\n if (originalEvent.keyCode === 13) {\n if (handler) {\n handler()\n }\n else if (instance.get('isFocus')) {\n instance.onClick()\n }\n }\n }\n Yox.dom.on(DOCUMENT, RAW_EVENT_KEYDOWN, onKeydown)\n\n const onDestroy = function (component: Yox) {\n if (component === instance) {\n Yox.dom.off(DOCUMENT, RAW_EVENT_KEYDOWN, onKeydown)\n Yox.lifeCycle.off(RAW_EVENT_BEFORE_DESTROY, onDestroy)\n }\n }\n Yox.lifeCycle.on(RAW_EVENT_BEFORE_DESTROY, onDestroy)\n\n}","import Yox, { YoxInterface, CustomEventInterface, Data } from 'yox'\n\nimport template from './template/Popover.hbs'\n// import './style/Popover.styl'\n\nimport {\n NULL,\n TRUE,\n FALSE,\n UNDEFINED,\n WINDOW,\n DOCUMENT,\n RAW_NUMERIC,\n RAW_HOVER,\n RAW_CLICK,\n RAW_CUSTOM,\n RAW_RESIZE,\n RAW_BOOLEAN,\n RAW_EVENT_BEFORE_DESTROY,\n RAW_BOTTOM,\n RAW_TOP,\n RAW_LEFT,\n RAW_RIGHT,\n RAW_PLACEMENT_ARRAY,\n RAW_TOP_START,\n RAW_TOP_END,\n RAW_LEFT_START,\n RAW_LEFT_END,\n RAW_RIGHT_START,\n RAW_RIGHT_END,\n RAW_BOTTOM_START,\n RAW_BOTTOM_END,\n HOVER_DELAY,\n} from '../constant'\n\nimport {\n oneOf,\n contains,\n toPixel,\n toNumber,\n getPageX,\n getPageY,\n onTransitionEnd,\n readElementRectInfo,\n} from '../util'\n\nimport {\n fireClickEvent,\n offClickEvent,\n onClickEvent,\n isClickEvent,\n} from '../event'\n\nconst CLASS_POPOVER = '${prefix}popover'\nconst CLASS_POPOVER_TRANSITION = '${prefix}popover-transition'\nconst CLASS_POPOVER_FADE = '${prefix}popover-fade'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Popover',\n\n propTypes: {\n placement: {\n type: oneOf(RAW_PLACEMENT_ARRAY),\n value: RAW_BOTTOM,\n },\n trigger: {\n type: oneOf([RAW_HOVER, RAW_CLICK, RAW_CUSTOM]),\n value: RAW_HOVER,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n visible: {\n type: RAW_BOOLEAN,\n },\n widthAlign: {\n type: RAW_BOOLEAN,\n },\n showArrow: {\n type: RAW_BOOLEAN,\n },\n showDelay: {\n type: RAW_NUMERIC,\n value: HOVER_DELAY,\n },\n hideDelay: {\n type: RAW_NUMERIC,\n value: 300,\n },\n offsetX: {\n type: RAW_NUMERIC,\n },\n offsetY: {\n type: RAW_NUMERIC,\n },\n gap: {\n type: RAW_NUMERIC,\n },\n },\n\n data() {\n return {\n isHover: FALSE,\n RAW_HOVER,\n RAW_CLICK,\n RAW_CUSTOM,\n }\n },\n\n watchers: {\n disabled(value) {\n if (value && this.get('visible')) {\n this.fireClose()\n }\n }\n },\n\n methods: {\n click(event: CustomEventInterface) {\n event.stop()\n fireClickEvent(event, TRUE)\n },\n enter() {\n const me = this as any\n me.set('isHover', TRUE)\n\n if (me.leaveTimer) {\n clearTimeout(me.leaveTimer)\n me.leaveTimer = UNDEFINED\n return\n }\n\n const showDelay = toNumber(me.get('showDelay'))\n if (showDelay > 0) {\n me.enterTimer = setTimeout(\n function () {\n me.enterTimer = UNDEFINED\n if (me.get('isHover')) {\n me.fireOpen()\n }\n },\n showDelay\n )\n }\n else {\n me.fireOpen()\n }\n },\n leave() {\n const me = this as any\n me.set('isHover', FALSE)\n\n const hideDelay = toNumber(me.get('hideDelay'))\n if (hideDelay > 0) {\n me.leaveTimer = setTimeout(\n function () {\n me.leaveTimer = UNDEFINED\n me.fireClose()\n },\n hideDelay\n )\n }\n else {\n me.fireClose()\n }\n },\n fireOpen() {\n\n const me = this as any\n\n if (me.enterTimer) {\n clearTimeout(me.enterTimer)\n me.enterTimer = UNDEFINED\n }\n\n me.fire({\n type: 'open',\n ns: 'popover',\n })\n\n },\n fireClose() {\n\n const me = this as any\n\n if (me.leaveTimer) {\n clearTimeout(me.leaveTimer)\n me.leaveTimer = UNDEFINED\n }\n\n me.fire({\n type: 'close',\n ns: 'popover',\n })\n\n },\n toggleVisible() {\n if (this.get('visible')) {\n this.fireClose()\n }\n else {\n this.fireOpen()\n }\n },\n\n getOverlayRect() {\n\n const me = this as any\n\n const widthAlign = me.get('widthAlign')\n const placement = me.get('placement') || RAW_BOTTOM\n const offsetX = toNumber(me.get('offsetX'), 0)\n const offsetY = toNumber(me.get('offsetY'), 0)\n const gap = toNumber(me.get('gap'), 0)\n\n const triggerElement = me.$refs.trigger as HTMLElement\n const triggerRect = triggerElement.getBoundingClientRect()\n const triggerLeft = getPageX() + triggerRect.left\n const triggerTop = getPageY() + triggerRect.top\n\n let x = 0, y = 0, isVertical = FALSE\n\n if (placement === RAW_TOP\n || placement === RAW_TOP_START\n || placement === RAW_TOP_END\n ) {\n y = triggerTop - gap\n isVertical = TRUE\n }\n else if (placement === RAW_BOTTOM\n || placement === RAW_BOTTOM_START\n || placement === RAW_BOTTOM_END\n ) {\n y = triggerTop + triggerRect.height + gap\n isVertical = TRUE\n }\n else if (placement === RAW_LEFT\n || placement === RAW_LEFT_START\n || placement === RAW_LEFT_END\n ) {\n x = triggerLeft - gap\n }\n else if (placement === RAW_RIGHT\n || placement === RAW_RIGHT_START\n || placement === RAW_RIGHT_END\n ) {\n x = triggerLeft + triggerRect.width + gap\n }\n\n if (placement === RAW_TOP\n || placement === RAW_BOTTOM\n ) {\n x = triggerLeft + 0.5 * triggerRect.width\n }\n else if (placement === RAW_TOP_START\n || placement === RAW_BOTTOM_START\n ) {\n x = triggerLeft\n }\n else if (placement === RAW_TOP_END\n || placement === RAW_BOTTOM_END\n ) {\n x = triggerLeft + triggerRect.width\n }\n else if (placement === RAW_LEFT\n || placement === RAW_RIGHT\n ) {\n y = triggerTop + 0.5 * triggerRect.height\n }\n else if (placement === RAW_LEFT_START\n || placement === RAW_RIGHT_START\n ) {\n y = triggerTop\n }\n else if (placement === RAW_LEFT_END\n || placement === RAW_RIGHT_END\n ) {\n y = triggerTop + triggerRect.height\n }\n\n return {\n x: x + offsetX,\n y: y + offsetY,\n width: isVertical && widthAlign ? triggerRect.width : UNDEFINED,\n }\n\n },\n\n refreshOverlayRect() {\n\n const overlayElement = this.$refs.overlay as HTMLElement\n if (!overlayElement) {\n return\n }\n\n const overlayRect = this.getOverlayRect()\n this.setOverlayRect(\n overlayElement,\n overlayRect.x,\n overlayRect.y,\n overlayRect.width\n )\n\n },\n\n setOverlayRect(el: HTMLElement, x: number | void, y: number | void, width: number | void) {\n const target = el.style\n target.left = x != NULL ? toPixel(x as number) : ''\n target.top = y != NULL ? toPixel(y as number) : ''\n target.width = width != NULL ? toPixel(width as number) : ''\n },\n\n },\n\n transitions: {\n overlay: {\n enter(node) {\n\n const me = this as any\n\n const triggerElement = me.$refs.trigger as HTMLElement\n const placement = me.get('placement') || RAW_BOTTOM\n\n readElementRectInfo(\n triggerElement,\n function () {\n\n if (!me.$el || !me.get('visible')) {\n return\n }\n\n Yox.dom.addClass(node, CLASS_POPOVER)\n Yox.dom.addClass(node, '${prefix}popover-' + placement)\n if (me.get('showArrow')) {\n Yox.dom.addClass(node, '${prefix}popover-with-arrow')\n }\n\n const overlayRect = me.getOverlayRect()\n me.setOverlayRect(\n node,\n overlayRect.x,\n overlayRect.y,\n overlayRect.width\n )\n\n me.animateTimer = setTimeout(\n function () {\n Yox.dom.addClass(node, CLASS_POPOVER_TRANSITION)\n\n me.animateTimer = setTimeout(\n function () {\n Yox.dom.addClass(node, CLASS_POPOVER_FADE)\n },\n 20\n )\n },\n 30\n )\n\n }\n )\n\n },\n leave(node, done) {\n\n const me = this\n\n Yox.dom.removeClass(node, CLASS_POPOVER_FADE)\n\n onTransitionEnd(\n node,\n function () {\n me.setOverlayRect(node, UNDEFINED, UNDEFINED, UNDEFINED)\n Yox.dom.removeClass(node, CLASS_POPOVER_TRANSITION)\n Yox.dom.removeClass(node, CLASS_POPOVER)\n done()\n }\n )\n\n }\n }\n },\n\n afterMount() {\n\n const me = this as any\n\n const onWindowResize = function () {\n me.refreshOverlayRect()\n }\n\n const onNativeClick = function (event: CustomEventInterface) {\n if (!me.get('visible') || !isClickEvent()) {\n return\n }\n const trigger = me.$refs.trigger as HTMLElement\n const overlay = me.$refs.overlay as HTMLElement\n const target = event.originalEvent && event.originalEvent.target as HTMLElement\n if (target && (contains(trigger, target) || contains(overlay, target))) {\n return\n }\n if (me.get('trigger') === RAW_CUSTOM) {\n me.fire({\n type: 'outside',\n ns: 'popover',\n })\n }\n else {\n me.fireClose()\n }\n }\n\n const onGlobalClick = function (event: CustomEventInterface, data: Data) {\n if (!data.isFromPopover) {\n onNativeClick(event)\n }\n }\n\n Yox.dom.on(\n WINDOW,\n RAW_RESIZE,\n onWindowResize\n )\n\n Yox.dom.on(\n DOCUMENT,\n RAW_CLICK,\n onNativeClick\n )\n\n onClickEvent(onGlobalClick)\n\n const destroy = function (component: YoxInterface) {\n if (component === me) {\n if (me.enterTimer) {\n clearTimeout(me.enterTimer)\n }\n if (me.leaveTimer) {\n clearTimeout(me.leaveTimer)\n }\n if (me.animateTimer) {\n clearTimeout(me.animateTimer)\n }\n offClickEvent(onGlobalClick)\n Yox.dom.off(WINDOW, RAW_RESIZE, onWindowResize)\n Yox.dom.off(DOCUMENT, RAW_CLICK, onNativeClick)\n Yox.lifeCycle.off(RAW_EVENT_BEFORE_DESTROY, destroy)\n }\n }\n Yox.lifeCycle.on(RAW_EVENT_BEFORE_DESTROY, destroy)\n\n }\n\n})\n","import Yox from 'yox'\n\nimport Icon from '../icon/Icon'\nimport Popover from '../popover/Popover'\nimport template from './template/SubMenu.hbs'\n\nimport {\n FALSE,\n RAW_STRING,\n RAW_CUSTOM,\n RAW_INLINE,\n RAW_HORIZONTAL,\n RAW_BOTTOM,\n RAW_RIGHT_START,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n findComponentUpward,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}SubMenu',\n\n propTypes: {\n name: {\n type: RAW_STRING,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n\n const menu = findComponentUpward(options.parent, '${prefix}Menu')\n const name = this.get('name')\n const openNames = menu.get('openNames')\n return {\n RAW_CUSTOM,\n RAW_INLINE,\n RAW_HORIZONTAL,\n RAW_BOTTOM,\n RAW_RIGHT_START,\n isOpen: openNames && Yox.array.has(openNames, name),\n isActive: menu.get('activeName') === name,\n mode: menu.get('mode'),\n theme: menu.get('theme'),\n collapsed: menu.get('collapsed'),\n }\n },\n\n watchers: {\n isOpen(isOpen) {\n const name = this.get('name')\n if (name) {\n this.fire(\n {\n type: 'isOpen',\n ns: 'subMenu',\n },\n {\n isOpen,\n name,\n }\n )\n }\n }\n },\n\n events: {\n activeName: {\n listener(_, data) {\n this.set('isActive', data.activeName === this.get('name'))\n },\n ns: 'menu',\n },\n openNames: {\n listener(_, data) {\n this.set('isOpen', data.openNames && Yox.array.has(data.openNames, this.get('name')))\n },\n ns: 'menu',\n },\n change: {\n listener(_, data) {\n this.set(data)\n },\n ns: 'menu',\n },\n click: {\n listener() {\n if (this.get('mode') !== RAW_INLINE) {\n this.set('isOpen', FALSE)\n }\n },\n ns: 'menuItem',\n },\n outside: {\n listener(event) {\n\n event.stop()\n\n this.set('isOpen', FALSE)\n\n },\n ns: 'popover',\n }\n },\n\n components: {\n Icon,\n Popover,\n }\n\n})","import Yox from 'yox'\n\nimport template from './template/Text.hbs'\n// import './style/Text.styl'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_SMALL,\n RAW_TYPE_PRIMARY,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_WARNING,\n RAW_TYPE_ERROR,\n RAW_TYPE_CONTENT,\n RAW_TYPE_TITLE,\n RAW_TYPE_MUTED,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Text',\n\n propTypes: {\n type: {\n type: oneOf([\n RAW_TYPE_PRIMARY,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_WARNING,\n RAW_TYPE_ERROR,\n RAW_TYPE_TITLE,\n RAW_TYPE_CONTENT,\n RAW_TYPE_MUTED,\n ]),\n },\n size: {\n type: oneOf([RAW_SMALL]),\n },\n bold: {\n type: RAW_BOOLEAN,\n },\n block: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n }\n})\n","import Yox from 'yox'\n\nimport template from './template/Drawer.hbs'\n// import './style/Drawer.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n BODY,\n TRUE,\n FALSE,\n UNDEFINED,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_LEFT,\n RAW_RIGHT,\n RAW_BOTTOM,\n RAW_TOP,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n toNumber,\n onTransitionEnd,\n} from '../util'\n\nconst CLASS_VISIBLE = '${prefix}drawer-visible'\nconst CLASS_FADE = '${prefix}drawer-fade'\n\nexport default Yox.define({\n\n template,\n\n model: 'visible',\n\n name: '${prefix}Drawer',\n\n propTypes: {\n width: {\n type: RAW_STRING,\n value: 378,\n },\n height: {\n type: RAW_STRING,\n value: 378,\n },\n placement: {\n type: oneOf([RAW_LEFT, RAW_RIGHT, RAW_TOP, RAW_BOTTOM]),\n value: RAW_LEFT,\n },\n closable: {\n type: RAW_BOOLEAN,\n value: TRUE,\n },\n showMask: {\n type: RAW_BOOLEAN,\n value: TRUE,\n },\n maskClosable: {\n type: RAW_BOOLEAN,\n value: TRUE,\n },\n visible: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n wrapperStyle() {\n const placement = this.get('placement')\n if (placement === RAW_LEFT\n || placement === RAW_RIGHT\n ) {\n const width = toNumber(this.get('width'))\n return {\n width: toPixel(width)\n }\n }\n const height = toNumber(this.get('height'))\n return {\n height: toPixel(height)\n }\n }\n },\n\n watchers: {\n visible(visible) {\n const bodyStyle = BODY.style\n if (visible) {\n this.set('bodyOverflow', bodyStyle.overflow)\n bodyStyle.overflow = 'hidden'\n }\n else {\n bodyStyle.overflow = this.get('bodyOverflow')\n }\n }\n },\n\n methods: {\n open() {\n this.set('visible', TRUE)\n },\n close() {\n this.set('visible', FALSE)\n }\n },\n\n transitions: {\n drawer: {\n enter(node) {\n\n const me = this as any\n const drawer = node as HTMLElement\n const wrapper = me.$refs.wrapper as HTMLElement\n me.wrapperElement = wrapper\n\n // 设置为 display block\n Yox.dom.addClass(drawer, CLASS_VISIBLE)\n me.fire({\n type: 'open',\n ns: 'drawer',\n })\n\n setTimeout(\n function () {\n if (!me.get('visible')) {\n return\n }\n\n Yox.dom.addClass(drawer, CLASS_FADE)\n onTransitionEnd(\n wrapper,\n function () {\n if (!me.get('visible')) {\n return\n }\n me.fire({\n type: 'opened',\n ns: 'drawer',\n })\n }\n )\n },\n 50\n )\n\n },\n leave(node, done) {\n\n const me = this as any\n const drawer = node as HTMLElement\n const wrapper = me.wrapperElement as HTMLElement\n me.wrapperElement = UNDEFINED\n\n Yox.dom.removeClass(drawer, CLASS_FADE)\n me.fire({\n type: 'close',\n ns: 'drawer',\n })\n\n onTransitionEnd(\n wrapper,\n function () {\n if (me.get('visible')) {\n return\n }\n Yox.dom.removeClass(drawer, CLASS_VISIBLE)\n me.fire({\n type: 'closed',\n ns: 'drawer',\n })\n done()\n }\n )\n\n }\n },\n },\n\n components: {\n Icon,\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Guide.hbs'\n// import './style/Guide.styl'\n\nimport {\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport { oneOf } from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Guide',\n\n propTypes: {\n title: {\n type: RAW_STRING,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n})","import Yox from 'yox'\n\nimport template from './template/Breadcrumb.hbs'\n// import './style/Breadcrumb.styl'\n\nimport {\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Breadcrumb',\n\n propTypes: {\n separator: {\n type: RAW_STRING,\n value: '/',\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n})","import Yox from 'yox'\n\nimport template from './template/BreadcrumbItem.hbs'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n findComponentUpward,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}BreadcrumbItem',\n\n propTypes: {\n last: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n const breadcrumb = findComponentUpward(options.parent, '${prefix}Breadcrumb')\n return {\n separator: breadcrumb.get('separator')\n }\n }\n\n})","import Yox from 'yox'\n\nimport template from './template/Button.hbs'\n// import './style/Button.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n FALSE,\n UNDEFINED,\n RAW_SMALL,\n RAW_LARGE,\n RAW_DEFAULT,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_SHAPE_ROUND,\n RAW_SHAPE_CIRCLE,\n RAW_TYPE_PRIMARY,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_WARNING,\n RAW_TYPE_ERROR,\n RAW_TYPE_DASHED,\n RAW_TYPE_LINK,\n RAW_TYPE_TEXT,\n RAW_TYPE_PURE,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n findComponentUpward,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Button',\n\n propTypes: {\n type: {\n type: oneOf([\n RAW_TYPE_PRIMARY,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_WARNING,\n RAW_TYPE_ERROR,\n RAW_TYPE_DASHED,\n RAW_TYPE_LINK,\n RAW_TYPE_TEXT,\n RAW_TYPE_PURE,\n ]),\n value: RAW_TYPE_PURE,\n },\n size: {\n type: oneOf([RAW_DEFAULT, RAW_LARGE, RAW_SMALL]),\n value: RAW_DEFAULT,\n },\n shape: {\n type: oneOf([RAW_SHAPE_ROUND, RAW_SHAPE_CIRCLE]),\n },\n ghost: {\n type: RAW_BOOLEAN,\n },\n autoFocus: {\n type: RAW_BOOLEAN,\n },\n block: {\n type: RAW_BOOLEAN,\n },\n loading: {\n type: RAW_BOOLEAN,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n methods: {\n onClick() {\n this.fire(\n {\n type: 'click',\n ns: 'button',\n }\n )\n }\n },\n\n components: {\n Icon,\n },\n\n beforeCreate(options) {\n\n const props = options.props || (options.props = {})\n\n const buttonGroup = findComponentUpward(options.parent, '${prefix}ButtonGroup')\n if (buttonGroup) {\n\n // 有 group,则 size、shape 全听 group 的\n if (props.size !== UNDEFINED) {\n delete props.size\n }\n if (props.shape !== UNDEFINED) {\n delete props.shape\n }\n\n if (props.disabled === UNDEFINED) {\n props.disabled = buttonGroup.get('disabled')\n }\n }\n else {\n // 没有 group,则要给 type 和 size 默认值\n if (props.size === UNDEFINED) {\n props.size = RAW_DEFAULT\n }\n }\n\n },\n\n afterMount() {\n if (this.get('autoFocus')) {\n this.$el.focus()\n }\n }\n\n})","import Yox from 'yox'\n\nimport template from './template/ButtonGroup.hbs'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_SMALL,\n RAW_LARGE,\n RAW_DEFAULT,\n RAW_SHAPE_CIRCLE,\n RAW_SHAPE_ROUND,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}ButtonGroup',\n\n propTypes: {\n size: {\n type: oneOf([RAW_DEFAULT, RAW_LARGE, RAW_SMALL]),\n value: RAW_DEFAULT,\n },\n shape: {\n type: oneOf([RAW_SHAPE_ROUND, RAW_SHAPE_CIRCLE]),\n },\n vertical: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n})","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/Input.hbs'\n// import './style/Input.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n TRUE,\n FALSE,\n DOCUMENT,\n RAW_BOOLEAN,\n RAW_STRING,\n RAW_NUMBER,\n RAW_NUMERIC,\n RAW_LEFT,\n RAW_CENTER,\n RAW_RIGHT,\n RAW_EVENT_KEYDOWN,\n RAW_EVENT_KEYPRESS,\n RAW_EVENT_KEYUP,\n RAW_SIZE_ARRAY,\n RAW_DEFAULT,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_ERROR,\n RAW_TYPE_WARNING,\n RAW_EVENT_BEFORE_DESTROY,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n} from '../util'\n\nconst TEXT_TYPE_PASSWORD = 'password'\nconst TEXT_TYPE_TEXT = 'text'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Input',\n\n propTypes: {\n value: {\n type: [RAW_STRING, RAW_NUMBER],\n },\n size: {\n type: oneOf(RAW_SIZE_ARRAY),\n value: RAW_DEFAULT,\n },\n type: {\n type: oneOf([TEXT_TYPE_TEXT, TEXT_TYPE_PASSWORD]),\n value: TEXT_TYPE_TEXT,\n },\n status: {\n type: oneOf([RAW_TYPE_INFO, RAW_TYPE_SUCCESS, RAW_TYPE_ERROR, RAW_TYPE_WARNING]),\n },\n align: {\n type: oneOf([RAW_LEFT, RAW_CENTER, RAW_RIGHT]),\n },\n placeholder: {\n type: RAW_STRING,\n },\n block: {\n type: RAW_BOOLEAN,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n showClear: {\n type: RAW_BOOLEAN,\n },\n secure: {\n type: RAW_BOOLEAN,\n },\n prefix: {\n type: RAW_STRING,\n },\n suffix: {\n type: RAW_STRING,\n },\n autoFocus: {\n type: RAW_BOOLEAN,\n },\n spellCheck: {\n type: RAW_BOOLEAN,\n },\n readOnly: {\n type: RAW_BOOLEAN,\n },\n showCount: {\n type: RAW_BOOLEAN,\n },\n maxLength: {\n type: RAW_NUMERIC,\n },\n width: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n },\n },\n\n data() {\n return {\n isSecure: TRUE,\n isFocus: FALSE,\n currentType: this.get('type'),\n\n TEXT_TYPE_TEXT,\n TEXT_TYPE_PASSWORD,\n }\n },\n\n computed: {\n hasCount() {\n return this.get('showCount') && this.get('maxLength') > 0\n },\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const width = this.get('width')\n if (width) {\n result.push({\n width: toPixel(width)\n })\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n }\n },\n\n filters: {\n formatValueLength(value) {\n return value\n ? value.length\n : 0\n }\n },\n\n watchers: {\n value(value) {\n this.fire(\n {\n type: 'change',\n ns: 'input',\n },\n { value }\n )\n },\n isSecure(isSecure) {\n this.set({\n currentType: isSecure\n ? TEXT_TYPE_PASSWORD\n : TEXT_TYPE_TEXT\n })\n }\n },\n\n methods: {\n handleFocus() {\n this.set('isFocus', TRUE)\n this.fire({\n type: 'focus',\n ns: 'input',\n })\n },\n handleBlur() {\n this.set('isFocus', FALSE)\n this.fire({\n type: 'blur',\n ns: 'input',\n })\n },\n handleClearClick() {\n this.set('value', '')\n this.fire({\n type: 'clear',\n ns: 'input',\n })\n },\n },\n\n components: {\n Icon,\n },\n\n afterMount() {\n\n const me = this\n\n const onKeydown = function (event: CustomEventInterface) {\n\n if (!me.get('isFocus')) {\n return\n }\n\n const originalEvent = event.originalEvent as KeyboardEvent\n me.fire(\n new Yox.Event('keydown.input', originalEvent)\n )\n\n switch (originalEvent.keyCode) {\n case 13:\n me.fire({\n type: 'enter',\n ns: 'input',\n })\n break\n\n case 38:\n // 避免光标跑到最前面\n event.prevent()\n me.fire({\n type: 'up',\n ns: 'input',\n })\n break\n\n case 40:\n // 避免光标跑到最后面\n event.prevent()\n me.fire({\n type: 'down',\n ns: 'input',\n })\n break\n }\n\n }\n const onKeyup = function (event: CustomEventInterface) {\n\n if (!me.get('isFocus')) {\n return\n }\n\n const originalEvent = event.originalEvent as KeyboardEvent\n me.fire(\n new Yox.Event('keyup.input', originalEvent)\n )\n\n }\n const onKeypress = function (event: CustomEventInterface) {\n\n if (!me.get('isFocus')) {\n return\n }\n\n const originalEvent = event.originalEvent as KeyboardEvent\n me.fire(\n new Yox.Event('keypress.input', originalEvent)\n )\n\n }\n\n Yox.dom.on(\n DOCUMENT,\n RAW_EVENT_KEYDOWN,\n onKeydown\n )\n Yox.dom.on(\n DOCUMENT,\n RAW_EVENT_KEYUP,\n onKeyup\n )\n Yox.dom.on(\n DOCUMENT,\n RAW_EVENT_KEYPRESS,\n onKeypress\n )\n\n const destroy = function (component) {\n if (component === me) {\n Yox.dom.off(\n DOCUMENT,\n RAW_EVENT_KEYDOWN,\n onKeydown\n )\n Yox.dom.off(\n DOCUMENT,\n RAW_EVENT_KEYUP,\n onKeyup\n )\n Yox.dom.off(\n DOCUMENT,\n RAW_EVENT_KEYPRESS,\n onKeypress\n )\n Yox.lifeCycle.off(RAW_EVENT_BEFORE_DESTROY, destroy)\n }\n }\n Yox.lifeCycle.on(RAW_EVENT_BEFORE_DESTROY, destroy)\n\n }\n})\n","// 数字键 48-57\n// 大键盘 .(190) -(189)\n// 小键盘 .(110) -(109)\n// 删除键 8\n// shift 16\n// ctrl 17\n// alt 18\n// tab 9\n// capslock 20\n// cmd 91、93\n// 方向键 37-40\nexport function isHelper(keyCode: number) {\n return keyCode >= 37 && keyCode <= 40\n || keyCode >= 16 && keyCode <= 18\n || keyCode === 8\n || keyCode === 9\n || keyCode === 20\n || keyCode === 91\n || keyCode === 93\n}\n\nexport function isDot(keyCode: number) {\n return keyCode === 110 || keyCode === 190\n}\n\nexport function isMinus(keyCode: number) {\n return keyCode === 109 || keyCode === 189\n}\n\nexport function isNumber(keyCode: number) {\n return keyCode >= 48 && keyCode <= 57\n}","import Yox, { CustomEventInterface, YoxInterface } from 'yox'\n\nimport template from './template/InputNumber.hbs'\n// import './style/InputNumber.styl'\n\nimport Icon from '../icon/Icon'\nimport Input from '../input/Input'\n\nimport {\n TRUE,\n FALSE,\n RAW_STRING,\n RAW_NUMERIC,\n RAW_BOOLEAN,\n RAW_SIZE_ARRAY,\n RAW_DEFAULT,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_ERROR,\n RAW_TYPE_WARNING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n toNumber,\n toString,\n} from '../util'\n\nimport {\n isHelper,\n isDot,\n isMinus,\n isNumber,\n} from './util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}InputNumber',\n\n propTypes: {\n status: {\n type: oneOf([RAW_TYPE_INFO, RAW_TYPE_SUCCESS, RAW_TYPE_ERROR, RAW_TYPE_WARNING]),\n },\n size: {\n type: oneOf(RAW_SIZE_ARRAY),\n value: RAW_DEFAULT,\n },\n max: {\n type: RAW_NUMERIC,\n },\n min: {\n type: RAW_NUMERIC,\n },\n value: {\n type: RAW_NUMERIC,\n },\n step: {\n type: RAW_NUMERIC,\n value: 1,\n },\n precision: {\n type: RAW_NUMERIC,\n },\n showStep: {\n type: RAW_BOOLEAN,\n },\n autoFocus: {\n type: RAW_BOOLEAN,\n },\n readOnly: {\n type: RAW_BOOLEAN,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n block: {\n type: RAW_BOOLEAN,\n },\n placeholder: {\n type: RAW_STRING,\n },\n width: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n const props = options.props || {}\n return {\n isComposition: FALSE,\n inputStringValue: toString(props.value),\n }\n },\n\n computed: {\n customClassName(): string {\n const classNames = ['${prefix}input-number']\n const className = this.get('className')\n if (className) {\n classNames.push(className)\n }\n return classNames.join(' ')\n },\n customPrecision(): number {\n return toNumber(\n this.get('precision'),\n -1\n )\n },\n customMin(): number {\n return toNumber(\n this.get('min'),\n Number.NEGATIVE_INFINITY\n )\n },\n customMax(): number {\n return toNumber(\n this.get('max'),\n Number.POSITIVE_INFINITY\n )\n },\n upDisabled(): boolean {\n if (this.get('disabled') || this.get('readOnly')) {\n return TRUE\n }\n return this.get('customMax') - this.get('value') < this.get('step')\n },\n downDisabled(): boolean {\n if (this.get('disabled') || this.get('readOnly')) {\n return TRUE\n }\n return this.get('value') - this.get('customMin') < this.get('step')\n }\n },\n\n watchers: {\n value(value) {\n this.updateInputValue(value)\n },\n },\n\n methods: {\n\n handleFocus(event: CustomEventInterface) {\n event.stop()\n this.fire({\n type: 'focus',\n ns: 'inputNumber',\n })\n },\n handleBlur(event: CustomEventInterface) {\n event.stop()\n this.correctValue()\n this.fire({\n type: 'blur',\n ns: 'inputNumber',\n })\n },\n handleInput(event: CustomEventInterface) {\n event.stop()\n if (this.get('isComposition')) {\n return\n }\n this.changeValue()\n },\n handleKeydown(event: CustomEventInterface) {\n event.stop()\n\n if (this.get('isComposition')) {\n return\n }\n\n const { metaKey, ctrlKey, shiftKey, keyCode } = event.originalEvent as KeyboardEvent\n // 组合键可放行\n if (metaKey || ctrlKey || shiftKey || isHelper(keyCode)) {\n return\n }\n\n // 在这控制一些非法字符,可以避免光标因为重置 value 而跳到最后的问题\n\n const textInputElement = this.getTextInput()\n\n const isFirstChar = textInputElement.selectionStart === textInputElement.selectionEnd\n && textInputElement.selectionStart === 0\n\n const inputStringValue = this.get('inputStringValue')\n\n if (isFirstChar) {\n if (inputStringValue.indexOf('-') < 0) {\n // 第一个字符,只能输入 - 和 数字\n if (isNumber(keyCode) || isMinus(keyCode)) {\n return\n }\n }\n event.prevent()\n }\n else {\n const dotIndex = inputStringValue.indexOf('.')\n\n // 不在首位时,只能输入 . 和数字\n if (isNumber(keyCode)) {\n const customPrecision = this.get('customPrecision')\n const precisionLength = dotIndex > 0 ? inputStringValue.substr(dotIndex + 1).length : 0\n if (customPrecision >= 0 && precisionLength >= customPrecision) {\n event.prevent()\n }\n }\n else if (isDot(keyCode)) {\n if (dotIndex > 0) {\n event.prevent()\n }\n }\n else {\n event.prevent()\n }\n }\n\n },\n handleKeyup(event: CustomEventInterface) {\n event.stop()\n },\n handleEnter(event: CustomEventInterface) {\n event.stop()\n this.correctValue()\n this.fire({\n type: 'enter',\n ns: 'inputNumber',\n })\n },\n handleUp(event: CustomEventInterface) {\n event.stop()\n\n if (this.get('isComposition')) {\n return\n }\n\n const numberInputElement = this.getNumberInput()\n\n numberInputElement.stepUp()\n this.getTextInput().value = numberInputElement.value\n\n this.changeValue()\n\n },\n handleDown(event: CustomEventInterface) {\n event.stop()\n\n if (this.get('isComposition')) {\n return\n }\n\n const numberInputElement = this.getNumberInput()\n\n numberInputElement.stepDown()\n this.getTextInput().value = numberInputElement.value\n\n this.changeValue()\n\n },\n handleCompositionStart(event: CustomEventInterface) {\n event.stop()\n this.set('isComposition', TRUE)\n },\n handleCompositionEnd(event: CustomEventInterface) {\n event.stop()\n this.set('isComposition', FALSE)\n this.getTextInput().value = this.get('inputStringValue')\n },\n\n updateInputValue(value: any) {\n this.set({\n inputStringValue: toString(value),\n value: toNumber(value, value),\n })\n },\n\n changeValue() {\n\n const textInputElement = this.getTextInput()\n\n const oldStringValue = this.get('inputStringValue')\n const newStringValue = textInputElement.value\n\n if (newStringValue !== oldStringValue\n && newStringValue\n && newStringValue !== '-'\n && toNumber(newStringValue, FALSE) === FALSE\n ) {\n // 输入了错误字符\n textInputElement.value = oldStringValue\n return\n }\n\n const oldValue = this.get('value')\n\n this.updateInputValue(newStringValue)\n\n const newValue = this.get('value')\n\n if (newValue !== oldValue) {\n this.fireChange(newValue)\n }\n\n },\n\n correctValue() {\n\n const value = this.get('value')\n\n let newValue = ''\n\n if (Yox.is.number(value)) {\n const min = this.get('customMin')\n const max = this.get('customMax')\n if (value < min) {\n newValue = min\n }\n else if (value > max) {\n newValue = max\n }\n else {\n return\n }\n }\n\n this.updateInputValue(newValue)\n\n if (newValue !== value) {\n this.fireChange(newValue)\n }\n\n },\n\n fireChange(value) {\n this.fire(\n {\n type: 'change',\n ns: 'inputNumber',\n },\n {\n value,\n }\n )\n },\n\n getTextInput() {\n return (this.$refs.input as YoxInterface).$refs.input as HTMLInputElement\n },\n\n getNumberInput() {\n return this.$refs.numberInput as HTMLInputElement\n }\n\n },\n\n components: {\n Icon,\n Input,\n },\n\n afterMount() {\n\n this.watch(\n 'inputStringValue',\n function (value) {\n this.getTextInput().value = value\n this.getNumberInput().value = value\n },\n TRUE\n )\n\n }\n})\n","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/Textarea.hbs'\n// import './style/Textarea.styl'\n\nimport {\n TRUE,\n FALSE,\n DOCUMENT,\n RAW_BOOLEAN,\n RAW_STRING,\n RAW_NUMERIC,\n RAW_OBJECT,\n RAW_HORIZONTAL,\n RAW_VERTICAL,\n RAW_EVENT_KEYDOWN,\n RAW_EVENT_KEYPRESS,\n RAW_EVENT_KEYUP,\n RAW_SIZE_ARRAY,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_ERROR,\n RAW_TYPE_WARNING,\n RAW_DEFAULT,\n RAW_SMALL,\n RAW_LARGE,\n RAW_EVENT_BEFORE_DESTROY,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf, toPixel,\n} from '../util'\n\nconst sizes = {}\nconst fontSizes = {}\n\nsizes[RAW_DEFAULT] = 5\nsizes[RAW_SMALL] = 3\nsizes[RAW_LARGE] = 8\n\nfontSizes[RAW_DEFAULT] = 14\nfontSizes[RAW_SMALL] = 12\nfontSizes[RAW_LARGE] = 16\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Textarea',\n\n propTypes: {\n value: {\n type: RAW_STRING,\n },\n size: {\n type: oneOf(RAW_SIZE_ARRAY),\n value: RAW_DEFAULT,\n },\n autoSize: {\n type: [RAW_BOOLEAN, RAW_OBJECT],\n },\n status: {\n type: oneOf([RAW_TYPE_INFO, RAW_TYPE_SUCCESS, RAW_TYPE_ERROR, RAW_TYPE_WARNING]),\n },\n placeholder: {\n type: RAW_STRING,\n },\n rows: {\n type: RAW_NUMERIC,\n value: 3\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n resize: {\n type: oneOf([RAW_HORIZONTAL, RAW_VERTICAL]),\n },\n wrap: {\n type: oneOf(['hard', 'soft']),\n },\n autoFocus: {\n type: RAW_BOOLEAN,\n },\n spellCheck: {\n type: RAW_BOOLEAN,\n },\n readOnly: {\n type: RAW_BOOLEAN,\n },\n block: {\n type: RAW_BOOLEAN,\n },\n showCount: {\n type: RAW_BOOLEAN,\n },\n maxLength: {\n type: RAW_NUMERIC,\n },\n width: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n },\n },\n\n data() {\n return {\n RAW_HORIZONTAL,\n RAW_VERTICAL,\n isFocus: FALSE,\n }\n },\n\n computed: {\n hasCount() {\n return this.get('showCount') && this.get('maxLength') > 0\n },\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const width = this.get('width')\n if (width) {\n result.push({\n width: toPixel(width)\n })\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n textareaStyle() {\n\n let rows = this.get('rows')\n let size = this.get('size')\n let autoSize = this.get('autoSize')\n\n // 单行的高度\n const ROW_HEIGHT = fontSizes[size] * 1.5\n\n // 上下 padding + border\n const PADDING_VERTICAL = 2 * (1 + sizes[size])\n\n if (autoSize) {\n let value = this.get('value')\n if (Yox.is.object(autoSize)) {\n rows = value ? value.split('\\n').length : autoSize.minRows\n return {\n minHeight: toPixel(autoSize.minRows * ROW_HEIGHT + PADDING_VERTICAL),\n maxHeight: toPixel(autoSize.maxRows * ROW_HEIGHT + PADDING_VERTICAL),\n height: toPixel(rows * ROW_HEIGHT + PADDING_VERTICAL),\n }\n }\n\n rows = value ? value.split('\\n').length : 1\n return {\n minHeight: toPixel(ROW_HEIGHT + PADDING_VERTICAL),\n height: toPixel(rows * ROW_HEIGHT + PADDING_VERTICAL),\n }\n }\n\n return {\n height: toPixel(rows * ROW_HEIGHT + PADDING_VERTICAL),\n }\n\n }\n },\n\n watchers: {\n value(value) {\n this.fire(\n {\n type: 'change',\n ns: 'textarea',\n },\n { value }\n )\n },\n },\n\n filters: {\n formatValueLength(value) {\n return value\n ? value.length\n : 0\n }\n },\n\n methods: {\n handleFocus() {\n this.set('isFocus', TRUE)\n this.fire({\n type: 'focus',\n ns: 'textarea',\n })\n },\n handleBlur() {\n this.set('isFocus', FALSE)\n this.fire({\n type: 'blur',\n ns: 'textarea',\n })\n },\n },\n\n afterMount() {\n\n const me = this\n\n const onKeydown = function (event: CustomEventInterface) {\n\n if (!me.get('isFocus')) {\n return\n }\n\n const originalEvent = event.originalEvent as KeyboardEvent\n me.fire(\n new Yox.Event('keydown.input', originalEvent)\n )\n\n if (originalEvent.keyCode === 13) {\n me.fire({\n type: 'enter',\n ns: 'textarea',\n })\n }\n\n }\n const onKeyup = function (event: CustomEventInterface) {\n\n if (!me.get('isFocus')) {\n return\n }\n\n const originalEvent = event.originalEvent as KeyboardEvent\n me.fire(\n new Yox.Event('keyup.input', originalEvent)\n )\n\n }\n const onKeypress = function (event: CustomEventInterface) {\n\n if (!me.get('isFocus')) {\n return\n }\n\n const originalEvent = event.originalEvent as KeyboardEvent\n me.fire(\n new Yox.Event('keypress.input', originalEvent)\n )\n\n }\n\n Yox.dom.on(\n DOCUMENT,\n RAW_EVENT_KEYDOWN,\n onKeydown\n )\n Yox.dom.on(\n DOCUMENT,\n RAW_EVENT_KEYUP,\n onKeyup\n )\n Yox.dom.on(\n DOCUMENT,\n RAW_EVENT_KEYPRESS,\n onKeypress\n )\n\n const destroy = function (component) {\n if (component === me) {\n Yox.dom.off(\n DOCUMENT,\n RAW_EVENT_KEYDOWN,\n onKeydown\n )\n Yox.dom.off(\n DOCUMENT,\n RAW_EVENT_KEYUP,\n onKeyup\n )\n Yox.dom.off(\n DOCUMENT,\n RAW_EVENT_KEYPRESS,\n onKeypress\n )\n Yox.lifeCycle.off(RAW_EVENT_BEFORE_DESTROY, destroy)\n }\n }\n Yox.lifeCycle.on(RAW_EVENT_BEFORE_DESTROY, destroy)\n\n }\n})\n","import Yox from 'yox'\n\nimport template from './template/Radio.hbs'\n// import './style/Radio.styl'\n\nimport {\n TRUE,\n FALSE,\n UNDEFINED,\n RAW_STRING,\n RAW_NUMBER,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n findComponentUpward,\n} from '../util'\n\nimport {\n onClickEventByEnterPress,\n} from '../event'\n\nexport default Yox.define({\n\n template,\n\n model: 'checked',\n\n name: '${prefix}Radio',\n\n propTypes: {\n value: {\n type: [RAW_NUMBER, RAW_BOOLEAN, RAW_STRING],\n required: TRUE,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n checked: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n isFocus: FALSE,\n }\n },\n\n events: {\n change: {\n listener(_, data) {\n if (data.value !== UNDEFINED) {\n const value = this.get('value')\n const checked = data.value == value\n this.setChecked(checked)\n }\n if (data.disabled !== UNDEFINED) {\n this.set('disabled', data.disabled)\n }\n },\n ns: 'radioGroup',\n }\n },\n\n methods: {\n onClick() {\n this.setChecked(TRUE)\n },\n setChecked(checked: boolean) {\n if (this.get('checked') === checked) {\n return\n }\n this.set({\n checked,\n })\n this.fire(\n {\n type: 'change',\n ns: 'radio',\n },\n {\n checked,\n value: this.get('value'),\n }\n )\n },\n },\n\n beforeCreate(options) {\n\n const props = options.props || (options.props = {})\n\n const radioGroup = findComponentUpward(options.parent, '${prefix}RadioGroup')\n if (radioGroup) {\n if (props.disabled === UNDEFINED) {\n props.disabled = radioGroup.get('disabled')\n }\n\n if (props.checked === UNDEFINED) {\n props.checked = radioGroup.get('value') == props.value\n }\n }\n\n },\n\n afterMount() {\n onClickEventByEnterPress(this)\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/RadioGroup.hbs'\n\nimport {\n TRUE,\n RAW_NUMBER,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_DEFAULT,\n RAW_SIZE_ARRAY,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}RadioGroup',\n\n propTypes: {\n size: {\n type: oneOf(RAW_SIZE_ARRAY),\n value: RAW_DEFAULT,\n },\n value: {\n type: [RAW_NUMBER, RAW_BOOLEAN, RAW_STRING],\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n vertical: {\n type: RAW_BOOLEAN,\n },\n button: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n },\n },\n\n watchers: {\n disabled(disabled) {\n this.fire(\n {\n type: 'change',\n ns: 'radioGroup',\n },\n {\n disabled,\n },\n TRUE\n )\n },\n value(value) {\n this.fire(\n {\n type: 'change',\n ns: 'radioGroup',\n },\n {\n value,\n },\n TRUE\n )\n }\n },\n events: {\n change: {\n listener(event, data) {\n event.stop()\n // 只关心选中的\n if (!data.checked) {\n return\n }\n const oldValue = this.get('value')\n const newValue = data.value\n if (oldValue !== newValue) {\n this.set('value', newValue)\n this.fire(\n {\n type: 'change',\n ns: 'radioGroup',\n },\n {\n value: newValue,\n }\n )\n }\n },\n ns: 'radio',\n }\n }\n})\n","import Yox from 'yox'\n\nimport template from './template/Checkbox.hbs'\n// import './style/Checkbox.styl'\n\nimport {\n TRUE,\n FALSE,\n UNDEFINED,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMBER,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n findComponentUpward,\n} from '../util'\n\nimport {\n onClickEventByEnterPress,\n} from '../event'\n\nexport default Yox.define({\n\n template,\n\n model: 'checked',\n\n name: '${prefix}Checkbox',\n\n propTypes: {\n value: {\n type: [RAW_STRING, RAW_NUMBER, RAW_BOOLEAN],\n required: TRUE,\n },\n indeterminate: {\n type: RAW_BOOLEAN,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n checked: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n isFocus: FALSE,\n }\n },\n\n events: {\n change: {\n listener(_, data) {\n if (data.value !== UNDEFINED) {\n const value = this.get('value')\n const checked = Yox.array.has(data.value, value)\n this.setChecked(checked)\n }\n if (data.disabled !== UNDEFINED) {\n this.set('disabled', data.disabled)\n }\n },\n ns: 'checkboxGroup',\n }\n },\n\n methods: {\n onClick() {\n this.setChecked(!this.get('checked'))\n },\n setChecked(checked: boolean) {\n if (this.get('checked') === checked) {\n return\n }\n this.set({\n checked,\n })\n this.fire(\n {\n type: 'change',\n ns: 'checkbox',\n },\n {\n checked,\n value: this.get('value'),\n }\n )\n },\n },\n\n beforeCreate(options) {\n\n const props = options.props || (options.props = {})\n\n const checkboxGroup = findComponentUpward(options.parent, '${prefix}CheckboxGroup')\n if (checkboxGroup) {\n if (props.disabled === UNDEFINED) {\n props.disabled = checkboxGroup.get('disabled')\n }\n\n if (props.checked === UNDEFINED) {\n props.checked = Yox.array.has(checkboxGroup.get('value'), props.value)\n }\n }\n\n },\n\n afterMount() {\n onClickEventByEnterPress(this)\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/CheckboxGroup.hbs'\n\nimport {\n TRUE,\n RAW_ARRAY,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}CheckboxGroup',\n\n propTypes: {\n value: {\n type: RAW_ARRAY,\n value() {\n return []\n }\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n vertical: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n watchers: {\n disabled(disabled) {\n this.fire(\n {\n type: 'change',\n ns: 'checkboxGroup',\n },\n {\n disabled,\n },\n TRUE\n )\n },\n value(value) {\n this.fire(\n {\n type: 'change',\n ns: 'checkboxGroup',\n },\n {\n value\n },\n TRUE\n )\n }\n },\n events: {\n change: {\n listener(event, data) {\n event.stop()\n\n const value = this.copy(this.get('value'))\n const { length } = value\n\n if (data.checked) {\n if (!Yox.array.has(value, data.value)) {\n value.push(data.value)\n }\n }\n else {\n Yox.array.remove(value, data.value)\n }\n\n if (value.length !== length) {\n this.set({ value })\n this.fire(\n {\n type: 'change',\n ns: 'checkboxGroup',\n },\n {\n value\n },\n )\n }\n },\n ns: 'checkbox',\n }\n },\n})","import Yox from 'yox'\n\nimport template from './template/ColorThumb.hbs'\n\nimport {\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}ColorThumb',\n\n propTypes: {\n color: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n colorStyle() {\n const color = this.get('color')\n return {\n backgroundColor: color,\n }\n },\n },\n\n})\n","import { DOCUMENT, NULL } from '../constant'\nimport { toNumber } from '../util'\n\nexport const MODE_HEX = 'hex'\nexport const MODE_RGB = 'rgb'\nexport const COLOR_DEFAULT = '#000'\n\n// 0 ≤ hue < 360\nexport function normalizeHue(hue: number) {\n return 359.9999 * (hue > 1 ? 1 : hue < 0 ? 0 : hue)\n}\n\n// 0 ≤ saturation ≤ 1\nexport function normalizeSaturation(saturation: number) {\n return saturation > 1 ? 1 : saturation < 0 ? 0 : saturation\n}\n\n// 0 ≤ value ≤ 1\nexport function normalizeValue(value: number) {\n return normalizeSaturation(value)\n}\n\nexport function normalizeAlpha(alpha: number) {\n return alpha > 1 ? 1 : alpha < 0 ? 0 : alpha\n}\n\nexport function getColorByName(color: string) {\n const ctx = DOCUMENT\n .createElement('canvas')\n .getContext('2d') as CanvasRenderingContext2D\n ctx.fillStyle = color\n return ctx.fillStyle\n}\n\nexport function getModeByColor(color: string) {\n if (typeof color === 'string') {\n if (/^\\s*#/.test(color)) {\n return MODE_HEX\n }\n if (/rgb/i.test(color)) {\n return MODE_RGB\n }\n }\n}\n\nexport function hsv2rgb(h: number, s: number, v: number) {\n\n\tlet r = 0\n\tlet g = 0\n\tlet b = 0\n\n\tif (s === 0) {\n\t\tr = g = b = v\n\t}\n else {\n\t\tlet _h = h / 60\n\t\tlet i = Math.floor(_h)\n\t\tlet f = _h - i\n\t\tlet p = v * (1 - s)\n\t\tlet q = v * (1 - f * s)\n\t\tlet t = v * (1 - (1 - f) * s)\n\t\tswitch (i) {\n\t\t\tcase 0:\n\t\t\t\tr = v\n\t\t\t\tg = t\n\t\t\t\tb = p\n\t\t\t\tbreak\n\t\t\tcase 1:\n\t\t\t\tr = q\n\t\t\t\tg = v\n\t\t\t\tb = p\n\t\t\t\tbreak\n\t\t\tcase 2:\n\t\t\t\tr = p\n\t\t\t\tg = v\n\t\t\t\tb = t\n\t\t\t\tbreak\n\t\t\tcase 3:\n\t\t\t\tr = p\n\t\t\t\tg = q\n\t\t\t\tb = v\n\t\t\t\tbreak\n\t\t\tcase 4:\n\t\t\t\tr = t\n\t\t\t\tg = p\n\t\t\t\tb = v\n\t\t\t\tbreak\n\t\t\tcase 5:\n\t\t\t\tr = v\n\t\t\t\tg = p\n\t\t\t\tb = q\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\treturn [\n r * 255,\n g * 255,\n b * 255\n ]\n\n}\n\nexport function rgb2hsv(r: number, g: number, b: number) {\n r /= 255\n g /= 255\n b /= 255\n\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n const diff = max - min\n\n let h = 0\n let v = max\n let s = max === 0 ? 0 : diff / max\n\n if (max === min) {\n h = 0\n }\n else if (max === r && g >= b) {\n h = 60 * ((g - b) / diff)\n }\n else if (max === r && g < b) {\n h = 60 * ((g - b) / diff) + 360\n }\n else if (max === g) {\n h = 60 * ((b - r) / diff) + 120\n }\n else if (max === b) {\n h = 60 * ((r - g) / diff) + 240\n }\n\n return [\n h,\n s,\n v,\n ]\n}\n\n/**\n * rgb2hex\n *\n * @param {number} r 红色颜色值 0~255\n * @param {number} g 绿色颜色值 0~255\n * @param {number} b 蓝色颜色值 0~255\n * @param {number|void} a 透明度 0~1,默认 1\n */\nexport function rgb2hex(r: number, g: number, b: number, a: number | void) {\n let alphaStr = ''\n if (typeof a === 'number') {\n a = Math.round(255 * a)\n alphaStr = (a | 1 << 8).toString(16).slice(1)\n }\n const colorStr = ((b | g << 8 | r << 16) | 1 << 24).toString(16).slice(1)\n return '#' + colorStr.toUpperCase() + alphaStr.toUpperCase()\n}\n\n/**\n * hex2rgb\n *\n * @param {string} hex hex颜色值 eg: #000、#325312、#b2c343\n */\nexport function hex2rgb(hex: string) {\n\n hex = hex.replace(/^#/, '')\n\n let alpha = -1\n\n if (hex.length === 8) {\n alpha = parseInt(hex.slice(6, 8), 16) / 255\n hex = hex.slice(0, 6)\n }\n\n if (hex.length === 4) {\n alpha = parseInt(new Array(3).join(hex.slice(3, 4)), 16) / 255\n hex = hex.slice(0, 3)\n }\n\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]\n }\n\n const num = parseInt(hex, 16)\n const r = num >> 16\n const g = (num >> 8) & 255\n const b = num & 255\n const rgb = [r, g, b]\n\n if (alpha >= 0) {\n rgb.push(alpha)\n }\n\n return rgb\n}\n\nexport function stringifyRgb(rgb: number[], alpha: number | void) {\n\n const separator = ', '\n\n let name = 'rgb'\n let value = [\n Math.floor(rgb[0]),\n Math.floor(rgb[1]),\n Math.floor(rgb[2]),\n ].join(separator)\n\n if (typeof alpha === 'number') {\n name = 'rgba'\n value += separator + (Math.floor(alpha * 100) / 100)\n }\n\n return `${name}(${value})`\n\n}\n\nfunction parseRgb(rgb: string) {\n return rgb.replace(/ *rgba?\\(([^)]+)\\) */i, '$1').split(',').map(\n function (value: string) {\n return toNumber(value)\n }\n )\n}\n\nconst converts = {\n rgb: {\n hex(color: string) {\n const value = parseRgb(color)\n return rgb2hex(value[0], value[1], value[2], value[3])\n }\n },\n hex: {\n rgb(color: string) {\n const rgba = hex2rgb(color)\n return stringifyRgb(rgba, rgba[4])\n }\n },\n}\n\nexport function parseColor(value: string, alphaEnabled: boolean) {\n\n let mode = getModeByColor(value)\n if (!mode) {\n mode = MODE_HEX\n if (/^[a-zA-Z]+$/.test(value)) {\n value = getColorByName(value)\n }\n else {\n value = COLOR_DEFAULT\n }\n }\n\n let color = value\n if (mode !== MODE_RGB) {\n color = converts[mode][MODE_RGB](value)\n }\n\n const rgba = parseRgb(color)\n const hsv = rgb2hsv(rgba[0], rgba[1], rgba[2])\n\n return {\n hsv,\n rgb: [rgba[0], rgba[1], rgba[2]],\n alpha: alphaEnabled && rgba[3] != NULL ? rgba[3] : 1,\n }\n}","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/HexInput.hbs'\n\nimport Input from '../input/Input'\n\nimport {\n TRUE,\n RAW_ARRAY,\n RAW_NUMBER,\n} from '../constant'\n\nimport {\n rgb2hex,\n getColorByName,\n} from './util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}HexInput',\n\n propTypes: {\n rgb: {\n type: RAW_ARRAY,\n },\n alpha: {\n type: RAW_NUMBER,\n },\n },\n\n data() {\n return {\n hexText: '',\n }\n },\n\n computed: {\n value() {\n const rgb = this.get('rgb')\n const alpha = this.get('alpha')\n return rgb2hex(rgb[0], rgb[1], rgb[2], alpha)\n },\n },\n\n methods: {\n onChange(event: CustomEventInterface, data: Record) {\n event.stop()\n this.set({\n hexText: data.value\n })\n },\n onSubmit(event: CustomEventInterface) {\n event.stop()\n const hexText = this.get('hexText')\n if (!hexText) {\n return\n }\n this.fire(\n {\n type: 'colorChange',\n ns: 'hexInput'\n },\n {\n color: getColorByName(hexText)\n }\n )\n },\n },\n\n afterMount() {\n\n this.watch(\n 'rgb',\n function () {\n this.set({\n hexText: this.get('value'),\n })\n },\n TRUE\n )\n\n this.watch(\n 'alpha',\n function () {\n this.set({\n hexText: this.get('value'),\n })\n },\n TRUE\n )\n\n },\n\n components: {\n Input,\n }\n\n})\n","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/RgbInput.hbs'\n\nimport Input from '../input/Input'\n\nimport {\n TRUE,\n UNDEFINED,\n RAW_ARRAY,\n RAW_NUMBER,\n} from '../constant'\n\nimport {\n stringifyRgb,\n getColorByName,\n} from './util'\n\nimport {\n toNumber,\n toString,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}RgbInput',\n\n propTypes: {\n rgb: {\n type: RAW_ARRAY,\n },\n alpha: {\n type: RAW_NUMBER,\n },\n },\n\n data() {\n return {\n redText: '',\n greenText: '',\n blueText: '',\n alphaText: '',\n }\n },\n\n computed: {\n red() {\n const rgb = this.get('rgb')\n return rgb\n ? toString(Math.floor(rgb[0]))\n : ''\n },\n green() {\n const rgb = this.get('rgb')\n return rgb\n ? toString(Math.floor(rgb[1]))\n : ''\n },\n blue() {\n const rgb = this.get('rgb')\n return rgb\n ? toString(Math.floor(rgb[2]))\n : ''\n },\n alphaPercent() {\n const alpha = this.get('alpha')\n if (typeof alpha === 'number') {\n return Math.floor(alpha * 100) + '%'\n }\n return ''\n }\n },\n\n methods: {\n onChange(event: CustomEventInterface, name: string, value: string) {\n event.stop()\n this.set(name, value)\n },\n onSubmit(event: CustomEventInterface) {\n event.stop()\n\n const redText = this.get('redText')\n const greenText = this.get('greenText')\n const blueText = this.get('blueText')\n const alphaText = this.get('alphaText')\n if (!redText\n || !greenText\n || !blueText\n || (this.get('alphaPercent') && !alphaText)\n ) {\n return\n }\n\n const alphaMatch = alphaText.match(/\\s*(\\d+)%\\s*/)\n\n const rgb = stringifyRgb(\n [\n toNumber(redText),\n toNumber(greenText),\n toNumber(blueText),\n ],\n alphaMatch ? (toNumber(alphaMatch[1]) / 100) : UNDEFINED\n )\n\n this.fire(\n {\n type: 'colorChange',\n ns: 'rgbInput'\n },\n {\n color: getColorByName(rgb)\n }\n )\n },\n },\n\n afterMount() {\n\n this.watch(\n 'rgb',\n function () {\n this.set({\n redText: this.get('red'),\n greenText: this.get('green'),\n blueText: this.get('blue'),\n })\n },\n TRUE\n )\n\n this.watch(\n 'alpha',\n function () {\n this.set({\n alphaText: this.get('alphaPercent')\n })\n },\n TRUE\n )\n\n },\n\n components: {\n Input,\n }\n\n})\n","import Yox, { CustomEventInterface, Data } from 'yox'\n\nimport template from './template/ColorPanel.hbs'\n\nimport Button from '../button/Button'\nimport ColorSwatch from '../color-swatch/ColorSwatch'\nimport ColorThumb from './ColorThumb'\nimport HexInput from './HexInput'\nimport RgbInput from './RgbInput'\n\nimport {\n DOCUMENT,\n UNDEFINED,\n RAW_ARRAY,\n RAW_STRING,\n RAW_NUMERIC,\n RAW_BOOLEAN,\n RAW_EVENT_MOUSEMOVE,\n RAW_EVENT_MOUSEUP,\n} from '../constant'\n\nimport {\n MODE_HEX,\n MODE_RGB,\n stringifyRgb,\n normalizeAlpha,\n normalizeHue,\n normalizeSaturation,\n normalizeValue,\n} from './util'\n\nimport {\n oneOf,\n} from '../util'\n\nimport {\n endDrag,\n startDrag,\n} from '../event'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}ColorPanel',\n\n propTypes: {\n mode: {\n type: oneOf([MODE_HEX, MODE_RGB]),\n },\n swatches: {\n type: RAW_ARRAY,\n },\n showAlpha: {\n type: RAW_BOOLEAN,\n },\n rgb: {\n type: RAW_ARRAY,\n },\n // 色调\n hue: {\n type: RAW_NUMERIC,\n },\n // 饱和度\n saturation: {\n type: RAW_NUMERIC,\n },\n // 明度\n value: {\n type: RAW_NUMERIC,\n },\n // 透明度\n alpha: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n },\n\n data() {\n return {\n MODE_HEX,\n MODE_RGB,\n }\n },\n\n computed: {\n palleteLayerStyle() {\n const hueThumbColor = this.get('hueThumbColor')\n return {\n backgroundImage: `linear-gradient(90deg, white, ${hueThumbColor})`\n }\n },\n palleteThumbStyle() {\n const saturation = this.get('saturation')\n const value = this.get('value')\n return {\n left: `${saturation * 100}%`,\n bottom: `${value * 100}%`,\n }\n },\n palleteThumbColor() {\n const rgb = this.get('rgb')\n if (rgb) {\n return stringifyRgb(rgb)\n }\n },\n hueThumbStyle() {\n const hue = this.get('hue')\n return {\n left: `${(hue / 359.9999) * 100}%`,\n }\n },\n hueThumbColor() {\n const hue = this.get('hue')\n return `hsl(${hue}, 100%, 50%)`\n },\n alphaMaskStyle() {\n const rgb = this.get('rgb')\n if (rgb) {\n return {\n backgroundImage: `linear-gradient(to right, ${stringifyRgb(rgb, 0)} 0%, ${stringifyRgb(rgb, 1)} 100%)`\n }\n }\n },\n alphaThumbStyle() {\n const alpha = this.get('alpha')\n return {\n left: `${alpha * 100}%`,\n }\n },\n alphaThumbColor() {\n const rgb = this.get('rgb')\n if (rgb) {\n const alpha = this.get('alpha')\n return stringifyRgb(rgb, alpha)\n }\n },\n },\n\n filters: {\n formatMode(mode: string, showAlpha: boolean) {\n return mode.toUpperCase() + (showAlpha ? 'A' : '')\n }\n },\n\n methods: {\n onSwatchChange(event: CustomEventInterface, data: Data) {\n event.stop()\n this.fire(\n {\n type: 'colorChange',\n ns: 'colorPanel',\n },\n {\n color: data.color,\n }\n )\n },\n },\n\n afterMount() {\n\n const me = this\n\n let palleteEl: HTMLElement | void\n let hueEl: HTMLElement | void\n let alphaEl: HTMLElement | void\n\n const onPalleteMouseDown = function (event: CustomEventInterface) {\n\n event.stop()\n\n palleteEl = me.$refs.pallete as HTMLElement | void\n if (!palleteEl) {\n return\n }\n\n startDrag()\n\n Yox.dom.on(DOCUMENT, RAW_EVENT_MOUSEMOVE, onPalleteMouseMove)\n Yox.dom.on(DOCUMENT, RAW_EVENT_MOUSEUP, onPalleteMouseUp)\n\n }\n\n const onPalleteMouseMove = function (event: CustomEventInterface) {\n\n const mouseEvent = event.originalEvent as MouseEvent\n const rect = (palleteEl as HTMLElement).getBoundingClientRect()\n\n const saturation = (mouseEvent.clientX - rect.left) / rect.width\n const value = (rect.bottom - mouseEvent.clientY) / rect.height\n\n me.fire(\n {\n type: 'hsvChange',\n ns: 'colorPanel',\n },\n {\n hsv: [\n me.get('hue'),\n normalizeSaturation(saturation),\n normalizeValue(value),\n ]\n }\n )\n\n }\n\n const onPalleteMouseUp = function () {\n\n Yox.dom.off(DOCUMENT, RAW_EVENT_MOUSEMOVE, onPalleteMouseMove)\n Yox.dom.off(DOCUMENT, RAW_EVENT_MOUSEUP, onPalleteMouseUp)\n\n palleteEl = UNDEFINED\n endDrag()\n\n }\n\n\n const onHueMouseDown = function (event: CustomEventInterface) {\n\n event.stop()\n\n hueEl = me.$refs.hue as HTMLElement | void\n if (!hueEl) {\n return\n }\n\n startDrag()\n\n Yox.dom.on(DOCUMENT, RAW_EVENT_MOUSEMOVE, onHueMouseMove)\n Yox.dom.on(DOCUMENT, RAW_EVENT_MOUSEUP, onHueMouseUp)\n\n }\n\n const onHueMouseMove = function (event: CustomEventInterface) {\n\n const mouseEvent = event.originalEvent as MouseEvent\n const rect = (hueEl as HTMLElement).getBoundingClientRect()\n\n const hue = (mouseEvent.clientX - rect.left) / rect.width\n\n me.fire(\n {\n type: 'hsvChange',\n ns: 'colorPanel',\n },\n {\n hsv: [\n normalizeHue(hue),\n me.get('saturation'),\n me.get('value'),\n ]\n }\n )\n\n }\n\n const onHueMouseUp = function () {\n\n Yox.dom.off(DOCUMENT, RAW_EVENT_MOUSEMOVE, onHueMouseMove)\n Yox.dom.off(DOCUMENT, RAW_EVENT_MOUSEUP, onHueMouseUp)\n\n hueEl = UNDEFINED\n endDrag()\n\n }\n\n\n\n const onAlphaMouseDown = function (event: CustomEventInterface) {\n\n event.stop()\n\n alphaEl = me.$refs.alpha as HTMLElement | void\n if (!alphaEl) {\n return\n }\n\n startDrag()\n\n Yox.dom.on(DOCUMENT, RAW_EVENT_MOUSEMOVE, onAlphaMouseMove)\n Yox.dom.on(DOCUMENT, RAW_EVENT_MOUSEUP, onAlphaMouseUp)\n\n }\n\n const onAlphaMouseMove = function (event: CustomEventInterface) {\n\n const mouseEvent = event.originalEvent as MouseEvent\n const rect = (alphaEl as HTMLElement).getBoundingClientRect()\n\n const alpha = (mouseEvent.clientX - rect.left) / rect.width\n\n me.fire(\n {\n type: 'alphaChange',\n ns: 'colorPanel',\n },\n {\n alpha: normalizeAlpha(alpha),\n }\n )\n\n }\n\n const onAlphaMouseUp = function () {\n\n Yox.dom.off(DOCUMENT, RAW_EVENT_MOUSEMOVE, onAlphaMouseMove)\n Yox.dom.off(DOCUMENT, RAW_EVENT_MOUSEUP, onAlphaMouseUp)\n\n alphaEl = UNDEFINED\n endDrag()\n\n }\n\n // @ts-ignore\n me.onPalleteMouseDown = onPalleteMouseDown\n // @ts-ignore\n me.onHueMouseDown = onHueMouseDown\n // @ts-ignore\n me.onAlphaMouseDown = onAlphaMouseDown\n\n },\n\n components: {\n Button,\n ColorSwatch,\n ColorThumb,\n HexInput,\n RgbInput,\n }\n\n})\n","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/ColorPicker.hbs'\n// import './style/ColorPicker.styl'\n\nimport Popover from '../popover/Popover'\nimport ColorPanel from './ColorPanel'\n\nimport {\n TRUE,\n FALSE,\n UNDEFINED,\n RAW_ARRAY,\n RAW_STRING,\n RAW_NUMERIC,\n RAW_BOOLEAN,\n RAW_DEFAULT,\n RAW_CUSTOM,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_ERROR,\n RAW_TYPE_WARNING,\n RAW_SIZE_ARRAY,\n RAW_PLACEMENT_ARRAY,\n RAW_BOTTOM_START,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n rgb2hex,\n hsv2rgb,\n stringifyRgb,\n parseColor,\n MODE_HEX,\n MODE_RGB,\n COLOR_DEFAULT,\n} from './util'\n\nimport {\n oneOf,\n toPixel,\n} from '../util'\n\nimport {\n fireClickEvent,\n onClickEventByEnterPress,\n} from '../event'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}ColorPicker',\n\n propTypes: {\n status: {\n type: oneOf([RAW_TYPE_INFO, RAW_TYPE_SUCCESS, RAW_TYPE_ERROR, RAW_TYPE_WARNING]),\n },\n size: {\n type: oneOf(RAW_SIZE_ARRAY),\n value: RAW_DEFAULT,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n block: {\n type: RAW_BOOLEAN,\n },\n placement: {\n type: oneOf(RAW_PLACEMENT_ARRAY),\n value: RAW_BOTTOM_START,\n },\n defaultValue: {\n type: RAW_STRING,\n },\n value: {\n type: RAW_STRING,\n },\n modes: {\n type: RAW_ARRAY,\n },\n swatches: {\n type: RAW_ARRAY,\n },\n showAlpha: {\n type: RAW_BOOLEAN,\n },\n width: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n const modes = this.get('modes')\n const mode = modes && modes[0] || MODE_HEX\n\n let value = this.get('value')\n if (!value) {\n value = this.get('defaultValue') || COLOR_DEFAULT\n }\n\n const { rgb, hsv, alpha } = parseColor(value, this.get('showAlpha'))\n\n return {\n RAW_CUSTOM: RAW_CUSTOM,\n isFocus: FALSE,\n isVisible: FALSE,\n mode,\n rgb,\n hsv,\n alpha,\n }\n },\n\n computed: {\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const width = this.get('width')\n if (width) {\n result.push({\n width: toPixel(width)\n })\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n colorStyle() {\n const rgb = this.get('rgb')\n if (rgb) {\n const alpha = this.get('alpha')\n return {\n backgroundColor: stringifyRgb(rgb, alpha),\n }\n }\n },\n colorValue() {\n\n const showAlpha = this.get('showAlpha')\n let alpha = UNDEFINED\n if (showAlpha) {\n alpha = this.get('alpha')\n }\n\n const mode = this.get('mode')\n const rgb = this.get('rgb')\n if (mode === MODE_HEX) {\n return rgb2hex(rgb[0], rgb[1], rgb[2], alpha)\n }\n else if (mode === MODE_RGB) {\n return stringifyRgb(rgb, alpha)\n }\n\n return ''\n\n }\n },\n\n watchers: {\n value(value: string) {\n // @ts-ignore\n this.setColor(value)\n },\n showAlpha() {\n this.set({\n alpha: 1,\n })\n // @ts-ignore\n this.fireChange()\n }\n },\n\n events: {\n outside: {\n listener(event) {\n event.stop()\n this.set({\n isVisible: FALSE,\n })\n },\n ns: 'popover',\n },\n hsvChange: {\n listener(event, data) {\n event.stop()\n const { hsv } = data\n this.set({\n hsv,\n rgb: hsv2rgb(hsv[0], hsv[1], hsv[2])\n })\n // @ts-ignore\n this.fireChange()\n },\n ns: 'colorPanel'\n },\n colorChange(event, data) {\n\n if (event.phase !== Yox.Event.PHASE_UPWARD) {\n return\n }\n\n event.stop()\n // @ts-ignore\n if (this.setColor(data.color)) {\n // @ts-ignore\n this.fireChange()\n }\n\n },\n alphaChange: {\n listener(event, data) {\n event.stop()\n this.set(data)\n // @ts-ignore\n this.fireChange()\n },\n ns: 'colorPanel'\n },\n modeChange: {\n listener(event) {\n event.stop()\n\n const modes = this.get('modes')\n if (!modes) {\n return\n }\n\n const mode = this.get('mode')\n const index = modes.indexOf(mode)\n let newIndex = index + 1\n if (newIndex >= modes.length) {\n newIndex = 0\n }\n\n this.set({\n mode: modes[newIndex]\n })\n // @ts-ignore\n this.fireChange()\n\n },\n ns: 'colorPanel'\n }\n },\n\n methods: {\n\n onClick(event?: CustomEventInterface) {\n this.toggle('isVisible')\n fireClickEvent(event)\n },\n\n setColor(value: string) {\n\n const { rgb, hsv, alpha } = parseColor(value, this.get('showAlpha'))\n const oldRgb = this.get('rgb')\n\n // hex 转 hsv,有时因为精度会导致值不一样\n // 这里用 rgb 判断一下,如果新旧值相同,则不再转 hsv\n if (rgb2hex(rgb[0], rgb[1], rgb[2]) === rgb2hex(oldRgb[0], oldRgb[1], oldRgb[2])) {\n return\n }\n\n this.set({\n rgb,\n hsv,\n alpha,\n })\n\n return TRUE\n\n },\n fireChange() {\n const value = this.get('colorValue')\n this.set('value', value)\n this.fire(\n {\n type: 'change',\n ns: 'colorPicker',\n },\n {\n value,\n }\n )\n }\n },\n\n afterMount() {\n onClickEventByEnterPress(this)\n },\n\n components: {\n Popover,\n ColorPanel,\n }\n\n})\n","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/Tooltip.hbs'\n// import './style/Tooltip.styl'\n\nimport Popover from '../popover/Popover'\n\nimport {\n TRUE,\n FALSE,\n RAW_STRING,\n RAW_NUMBER,\n RAW_NUMERIC,\n RAW_BOOLEAN,\n RAW_HOVER,\n RAW_CLICK,\n RAW_CUSTOM,\n RAW_PLACEMENT_ARRAY,\n RAW_BOTTOM,\n RAW_THEME_ARRAY,\n RAW_DARK,\n HOVER_DELAY,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Tooltip',\n\n propTypes: {\n content: {\n type: [RAW_STRING, RAW_NUMBER],\n },\n theme: {\n type: oneOf(RAW_THEME_ARRAY),\n value: RAW_DARK,\n },\n placement: {\n type: oneOf(RAW_PLACEMENT_ARRAY),\n value: RAW_BOTTOM,\n },\n defaultVisible: {\n type: RAW_BOOLEAN,\n },\n visible: {\n type: RAW_BOOLEAN,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n delay: {\n type: RAW_NUMERIC,\n value: HOVER_DELAY,\n },\n trigger: {\n type: oneOf([RAW_HOVER, RAW_CLICK]),\n value: RAW_HOVER,\n },\n maxWidth: {\n type: RAW_NUMERIC,\n },\n maxHeight: {\n type: RAW_NUMERIC,\n },\n offsetX: {\n type: RAW_NUMERIC,\n },\n offsetY: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n const visible = this.get('visible')\n const defaultVisible = this.get('defaultVisible')\n return {\n isVisible: typeof visible === 'boolean'\n ? visible\n : typeof defaultVisible === 'boolean'\n ? defaultVisible\n : FALSE,\n }\n },\n\n computed: {\n mode() {\n const visible = this.get('visible')\n return typeof visible === 'boolean'\n ? RAW_CUSTOM\n : this.get('trigger')\n },\n contentStyle(): Record | void {\n\n const maxWidth = this.get('maxWidth')\n const maxHeight = this.get('maxHeight')\n\n if (maxWidth || maxHeight) {\n const result: Record = {}\n if (maxWidth) {\n result.maxWidth = toPixel(maxWidth)\n }\n if (maxHeight) {\n result.maxHeight = toPixel(maxHeight)\n }\n return result\n }\n\n },\n },\n\n watchers: {\n visible(value) {\n this.set({\n isVisible: value,\n })\n }\n },\n\n methods: {\n onPopoverOpen(event: CustomEventInterface) {\n event.stop()\n this.set('isVisible', TRUE)\n // @ts-ignore\n this.fireChange(TRUE)\n },\n onPopoverClose(event: CustomEventInterface) {\n event.stop()\n this.set('isVisible', FALSE)\n // @ts-ignore\n this.fireChange(FALSE)\n },\n onPopoverOutside(event: CustomEventInterface) {\n event.stop()\n this.fire({\n type: 'outside',\n ns: 'tooltip',\n })\n },\n fireChange(visible: boolean) {\n if (this.get('visible') !== visible) {\n this.fire(\n {\n type: 'change',\n ns: 'tooltip',\n },\n {\n visible,\n }\n )\n }\n },\n refresh() {\n const popover = this.$refs.popover as any\n popover.refreshOverlayRect()\n },\n },\n\n components: {\n Popover,\n },\n})\n","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/Slider.hbs'\n// import './style/Slider.styl'\n\nimport Tooltip from '../tooltip/Tooltip'\n\nimport {\n UNDEFINED,\n DOCUMENT,\n RAW_ARRAY,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_FUNCTION,\n RAW_EVENT_MOUSEMOVE,\n RAW_EVENT_MOUSEUP,\n RAW_TOP,\n RAW_RIGHT,\n RAW_CUSTOM,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n toPixel,\n toNumber,\n} from '../util'\n\nimport {\n endDrag,\n startDrag,\n} from '../event'\n\nfunction getPercentByValue(min: number, max: number, rawValue: any) {\n\n const range = max - min\n\n let value = toNumber(rawValue)\n\n if (value > max) {\n value = max\n }\n else if (value < min) {\n value = min\n }\n\n return range > 0\n ? (value - min) / range * 100\n : 0\n\n}\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Slider',\n\n propTypes: {\n value: {\n type: [RAW_NUMERIC, RAW_ARRAY],\n value: 0,\n },\n max: {\n type: RAW_NUMERIC,\n value: 100,\n },\n min: {\n type: RAW_NUMERIC,\n value: 0,\n },\n step: {\n type: RAW_NUMERIC,\n value: 1,\n },\n block: {\n type: RAW_BOOLEAN,\n },\n vertical: {\n type: RAW_BOOLEAN,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n reverse: {\n type: RAW_BOOLEAN,\n },\n showStops: {\n type: RAW_BOOLEAN,\n },\n showTooltip: {\n type: RAW_BOOLEAN,\n },\n formatTooltip: {\n type: RAW_FUNCTION,\n },\n width: {\n type: RAW_NUMERIC,\n },\n height: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n RAW_TOP,\n RAW_RIGHT,\n RAW_CUSTOM,\n innerValue: this.get('value'),\n hoverThumbIndex: -1,\n dragThumbIndex: -1,\n showTooltipIndex: -1,\n }\n },\n\n computed: {\n isRange(): boolean {\n const value = this.get('value')\n return Yox.is.array(value)\n },\n minNumber(): number {\n return toNumber(this.get('min'))\n },\n maxNumber(): number {\n return toNumber(this.get('max'))\n },\n stepNumber(): number {\n return toNumber(this.get('step'))\n },\n valuePercentArray: {\n deps: ['innerValue', 'innerValue.*'],\n get() {\n const min = this.get('minNumber')\n const max = this.get('maxNumber')\n const innerValue = this.get('innerValue')\n if (Yox.is.array(innerValue)) {\n return [\n {\n value: innerValue[0],\n percent: getPercentByValue(min, max, innerValue[0])\n },\n {\n value: innerValue[1],\n percent: getPercentByValue(min, max, innerValue[1])\n },\n ]\n }\n return [\n {\n value: innerValue,\n percent: getPercentByValue(min, max, innerValue),\n }\n ]\n }\n },\n stops(): object[] {\n\n const vertical = this.get('vertical')\n const reverse = this.get('reverse')\n const min = this.get('minNumber')\n const max = this.get('maxNumber')\n const step = this.get('stepNumber')\n const range = max - min\n\n const result: object[] = []\n\n if (max - min > step) {\n let count = Math.floor(range / step)\n let interval = 100 / count\n for (let i = 1; i < count; i++) {\n\n let value = i * interval\n let percent = value + '%'\n\n result.push({\n value,\n style: vertical\n ? (reverse ? { top: percent } : { bottom: percent })\n : (reverse ? { right: percent } : { left: percent })\n })\n\n }\n }\n\n return result\n\n },\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const width = this.get('width')\n const height = this.get('height')\n\n if (width || height) {\n const customStyle: Record = {}\n if (width) {\n customStyle.width = toPixel(width)\n }\n if (height) {\n customStyle.height = toPixel(height)\n }\n result.push(customStyle)\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n },\n\n filters: {\n formatBarStyle(valuePercentArray: any[], reverse: boolean, fromName: string, toName: string): any {\n\n let fromPercnet = valuePercentArray[0].percent\n let toPercent: number\n\n if (valuePercentArray[1]) {\n toPercent = valuePercentArray[1].percent\n if (fromPercnet > toPercent) {\n fromPercnet = valuePercentArray[1].percent\n toPercent = valuePercentArray[0].percent\n }\n }\n else {\n toPercent = fromPercnet\n fromPercnet = 0\n }\n\n if (reverse) {\n const temp = fromName\n fromName = toName\n toName = temp\n }\n\n return {\n [fromName]: fromPercnet + '%',\n [toName]: (100 - toPercent) + '%'\n }\n\n },\n formatThumbStyle(percent: number, name: string): any {\n\n return {\n [name]: percent + '%'\n }\n\n }\n },\n\n events: {\n outside: {\n listener(event) {\n if (event.phase !== Yox.Event.PHASE_UPWARD) {\n return\n }\n event.stop()\n this.set('showTooltipIndex', -1)\n },\n ns: 'tooltip'\n }\n },\n\n watchers: {\n 'valuePercentArray.*.value': function () {\n // @ts-ignore\n this.refreshTooltip()\n },\n value(value) {\n if (this.get('hoverThumbIndex') < 0\n && this.get('dragThumbIndex') < 0\n ) {\n this.set('innerValue', value)\n }\n },\n hoverThumbIndex(index) {\n if (index >= 0) {\n this.set('showTooltipIndex', this.get('showTooltip') ? index : -1)\n }\n else if (this.get('dragThumbIndex') < 0) {\n this.set('showTooltipIndex', -1)\n }\n },\n dragThumbIndex(index) {\n if (index < 0 && this.get('hoverThumbIndex') < 0) {\n this.set('showTooltipIndex', -1)\n }\n },\n },\n\n methods: {\n refreshTooltip() {\n const index = this.get('showTooltipIndex')\n if (index < 0) {\n return\n }\n this.nextTick(function () {\n const tooltip = this.$refs['tooltip' + index] as any\n tooltip.refresh()\n })\n },\n onThumbMouseEnter(event: CustomEventInterface, index: number) {\n event.stop()\n const dragThumbIndex = this.get('dragThumbIndex')\n if (dragThumbIndex >= 0) {\n if (dragThumbIndex === index) {\n this.set('hoverThumbIndex', index)\n }\n }\n else {\n this.set('hoverThumbIndex', index)\n }\n },\n onThumbMouseLeave(event: CustomEventInterface) {\n event.stop()\n this.set('hoverThumbIndex', -1)\n },\n },\n\n afterMount() {\n\n const me = this\n\n let element: HTMLElement | void\n let dragThumbIndex = -1\n let min = 0\n let max = 0\n let step = 0\n\n const onTrackMouseDown = function (event: CustomEventInterface) {\n\n event.stop()\n\n element = (event.originalEvent as MouseEvent).currentTarget as HTMLElement\n if (!element) {\n return\n }\n\n max = me.get('maxNumber')\n min = me.get('minNumber')\n step = me.get('stepNumber')\n\n const ratio = getRatio(event)\n\n dragThumbIndex = 0\n if (me.get('isRange')) {\n // 当前坐标距离哪个 thumb 近就移动哪个\n const percent = ratio * 100\n const valuePercentArray = me.get('valuePercentArray')\n\n if (Math.abs(valuePercentArray[0].percent - percent) > Math.abs(valuePercentArray[1].percent - percent)) {\n dragThumbIndex = 1\n }\n\n updatePosition(\n ratio,\n dragThumbIndex\n )\n }\n else {\n updatePosition(ratio)\n }\n\n me.set('dragThumbIndex', dragThumbIndex)\n\n startDrag()\n\n Yox.dom.on(DOCUMENT, RAW_EVENT_MOUSEMOVE, onTrackMouseMove)\n Yox.dom.on(DOCUMENT, RAW_EVENT_MOUSEUP, onTrackMouseUp)\n\n }\n\n const onTrackMouseMove = function (event: CustomEventInterface) {\n\n updatePosition(\n getRatio(event),\n dragThumbIndex\n )\n\n }\n\n const onTrackMouseUp = function () {\n\n Yox.dom.off(DOCUMENT, RAW_EVENT_MOUSEMOVE, onTrackMouseMove)\n Yox.dom.off(DOCUMENT, RAW_EVENT_MOUSEUP, onTrackMouseUp)\n\n me.set('dragThumbIndex', -1)\n\n element = UNDEFINED\n endDrag()\n\n }\n\n const getRatio = function (event: CustomEventInterface) {\n\n const mouseEvent = event.originalEvent as MouseEvent\n const rect = (element as HTMLElement).getBoundingClientRect()\n\n let ratio = me.get('vertical')\n ? (rect.bottom - mouseEvent.clientY) / rect.height\n : (mouseEvent.clientX - rect.left) / rect.width\n\n if (ratio < 0) {\n ratio = 0\n }\n else if (ratio > 1) {\n ratio = 1\n }\n\n console.log(element, rect)\n console.log(mouseEvent.clientX)\n console.log(ratio)\n\n return me.get('reverse') ? (1 - ratio) : ratio\n\n }\n\n const updatePosition = function (ratio: number, index?: number) {\n\n let newValue = (max - min) * ratio + min\n if (step > 0) {\n let count = Math.round(newValue / step)\n newValue = step * count\n }\n\n if (me.get('isRange')) {\n\n me.set('innerValue.' + index, newValue)\n\n const value = me.copy(\n me.get('innerValue')\n )\n\n // 交换值\n if (value[0] > value[1]) {\n const temp = value[0]\n value[0] = value[1]\n value[1] = temp\n }\n\n me.set('value', value)\n\n }\n else {\n me.set({\n innerValue: newValue,\n value: newValue,\n })\n }\n\n }\n\n // @ts-ignore\n this.onTrackMouseDown = onTrackMouseDown\n\n },\n\n components: {\n Tooltip,\n },\n\n})","import Yox from 'yox'\n\nimport template from './template/Space.hbs'\n// import './style/Space.styl'\n\nimport {\n NULL,\n RAW_STRING,\n RAW_NUMERIC,\n RAW_BOOLEAN,\n RAW_ARRAY,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n toNumber,\n spaceListStyle,\n spaceItemStyle,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Space',\n\n propTypes: {\n size: {\n type: [RAW_NUMERIC, RAW_ARRAY],\n value: [8, 10],\n },\n align: {\n type: oneOf(['start', 'end', 'center', 'baseline']),\n value: 'center',\n },\n block: {\n type: RAW_BOOLEAN,\n },\n vertical: {\n type: RAW_BOOLEAN,\n },\n autoWrap: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n sizeArray() {\n\n const size = this.get('size')\n if (size == NULL) {\n return\n }\n\n // 配置两个方向的间距\n if (Yox.is.array(size) && (size[0] > 0 || size[1] > 0)) {\n return size\n }\n\n // 配置一个方向的间距\n const value = toNumber(size)\n if (value > 0) {\n return [value]\n }\n\n },\n inlineStyle(): object[] | void {\n return spaceListStyle(\n this.get('sizeArray'),\n this.get('vertical'),\n this.get('autoWrap'),\n this.get('style')\n )\n },\n itemStyle(): Record | void {\n return spaceItemStyle(\n this.get('sizeArray'),\n this.get('vertical'),\n this.get('autoWrap')\n )\n },\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Skeleton.hbs'\n// import './style/Skeleton.styl'\n\nimport {\n TRUE,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n RAW_OBJECT,\n RAW_SMALL,\n RAW_LARGE,\n RAW_SHAPE_CIRCLE,\n RAW_SHAPE_ROUND,\n} from '../constant'\n\nimport { toPixel } from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Skeleton',\n\n propTypes: {\n text: {\n type: [RAW_BOOLEAN, RAW_OBJECT],\n value: TRUE,\n },\n image: {\n type: [RAW_BOOLEAN, RAW_OBJECT],\n },\n loading: {\n type: RAW_BOOLEAN,\n },\n active: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n computedText() {\n const text = this.get('text')\n if (text) {\n let rows = 3\n if (Yox.is.object(text) && text.rows) {\n rows = text.rows\n }\n\n const allWidth = Yox.is.array(text.width) ? text.width : []\n const lastWidth = Yox.is.number(text.width) ? text.width : (rows > 1 ? '60%' : '100%')\n\n const result = []\n for (let i = 0; i < rows; i++) {\n let width = allWidth[i] || (i === rows - 1 ? lastWidth : '100%')\n result.push({\n width: Yox.is.number(width) ? toPixel(width) : width\n })\n }\n\n return result\n }\n },\n imageSize() {\n const image = this.get('image')\n if (image) {\n let size = 48\n if (Yox.is.object(image)) {\n if (Yox.is.number(image.size)) {\n size = image.size\n }\n if (image.size === RAW_SMALL) {\n size = 36\n }\n if (image.size === RAW_LARGE) {\n size = 60\n }\n }\n return toPixel(size)\n }\n },\n imageShape() {\n const image = this.get('image')\n if (image) {\n const defaultShape = RAW_SHAPE_CIRCLE\n if (Yox.is.boolean(image)) {\n return defaultShape\n }\n if (image.shape === RAW_SHAPE_ROUND) {\n return RAW_SHAPE_ROUND\n }\n return defaultShape\n }\n }\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Statistic.hbs'\n// import './style/Statistic.styl'\n\nimport Skeleton from '../skeleton/Skeleton'\n\nimport {\n TRUE,\n RAW_NUMBER,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Statistic',\n\n propTypes: {\n title: {\n type: RAW_STRING,\n required: TRUE,\n },\n value: {\n type: [RAW_STRING, RAW_NUMBER],\n },\n loading: {\n type: RAW_BOOLEAN,\n },\n prefix: {\n type: RAW_STRING,\n },\n suffix: {\n type: RAW_STRING,\n },\n color: {\n type: RAW_STRING,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n components: {\n Skeleton,\n }\n})","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/Switch.hbs'\n// import './style/Switch.styl'\n\nimport {\n FALSE,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_DEFAULT,\n RAW_SMALL,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nimport {\n onClickEventByEnterPress,\n} from '../event'\n\nexport default Yox.define({\n\n template,\n\n model: 'checked',\n\n name: '${prefix}Switch',\n\n propTypes: {\n size: {\n type: oneOf([RAW_DEFAULT, RAW_SMALL]),\n value: RAW_DEFAULT,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n checked: {\n type: RAW_BOOLEAN,\n },\n loading: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n isFocus: FALSE,\n }\n },\n\n methods: {\n onClick(event?: CustomEventInterface) {\n if (event) {\n event.stop()\n }\n this.fire(\n {\n type: 'change',\n ns: 'switch',\n },\n {\n checked: this.toggle('checked')\n }\n )\n }\n },\n\n afterMount() {\n onClickEventByEnterPress(this)\n }\n})","import { VNode } from 'yox'\n\nexport const PHASE_OPERATING = 1\nexport const PHASE_WAITING = 2\nexport const PHASE_FINISHED = 3\n\nexport function setStepIndex(children: VNode[]) {\n\n children.forEach(\n function (vnode: VNode, index: number) {\n if (vnode.tag === 'Step') {\n vnode.props.index = index\n }\n }\n )\n\n}","import Yox from 'yox'\n\nimport template from './template/Steps.hbs'\n// import './style/Steps.styl'\n\nimport {\n TRUE,\n RAW_STRING,\n RAW_NUMERIC,\n RAW_BOOLEAN,\n RAW_SMALL,\n RAW_WAIT,\n RAW_PROCESS,\n RAW_FINISH,\n RAW_TYPE_ERROR,\n RAW_STYLE_TYPE,\n RAW_SLOT_CHILDREN,\n} from '../constant'\n\nimport { oneOf } from '../util'\nimport { setStepIndex } from './util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Steps',\n\n propTypes: {\n current: {\n type: RAW_NUMERIC,\n value: 0,\n },\n status: {\n type: oneOf([RAW_WAIT, RAW_PROCESS, RAW_FINISH, RAW_TYPE_ERROR]),\n value: RAW_PROCESS,\n },\n size: {\n type: oneOf([RAW_SMALL]),\n },\n vertical: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n beforeRender() {\n const children = this.get(RAW_SLOT_CHILDREN)\n if (children) {\n setStepIndex(\n children\n )\n }\n },\n\n watchers: {\n current(current) {\n this.fire(\n {\n type: 'currentChange',\n ns: 'steps'\n },\n {\n current,\n },\n TRUE\n )\n },\n status(status) {\n this.fire(\n {\n type: 'statusChange',\n ns: 'steps'\n },\n {\n status,\n },\n TRUE\n )\n }\n },\n\n})","import Yox from 'yox'\n\nimport template from './template/Step.hbs'\n// import './style/Step.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n TRUE,\n RAW_STRING,\n RAW_NUMBER,\n RAW_WAIT,\n RAW_FINISH,\n RAW_TYPE_ERROR,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport { findComponentUpward } from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Step',\n\n propTypes: {\n index: {\n type: RAW_NUMBER,\n required: TRUE,\n },\n title: {\n type: RAW_STRING,\n required: TRUE,\n },\n description: {\n type: RAW_STRING,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n const steps = findComponentUpward(options.parent, '${prefix}Steps')\n return {\n RAW_FINISH,\n RAW_TYPE_ERROR,\n current: steps.get('current'),\n status: steps.get('status'),\n }\n },\n\n computed: {\n stepStatus() {\n const index = this.get('index')\n const current = this.get('current')\n if (index < current) {\n return RAW_FINISH\n }\n if (index > current) {\n return RAW_WAIT\n }\n return this.get('status')\n },\n stepNumber() {\n return this.get('index') + 1\n }\n },\n\n events: {\n currentChange: {\n listener(_, data) {\n this.set({\n current: data.current,\n })\n },\n ns: 'steps',\n },\n statusChange: {\n listener(_, data) {\n this.set({\n status: data.status,\n })\n },\n ns: 'steps',\n },\n },\n\n components: {\n Icon,\n }\n\n})","import Yox from 'yox'\n\nimport template from './template/Tag.hbs'\n// import './style/Tag.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_TYPE_ARRAY,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Tag',\n\n propTypes: {\n type: {\n type: oneOf(RAW_TYPE_ARRAY),\n },\n checkable: {\n type: RAW_BOOLEAN,\n },\n closable: {\n type: RAW_BOOLEAN,\n },\n checked: {\n type: RAW_BOOLEAN,\n },\n color: {\n type: RAW_STRING,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n presetName() {\n const color = this.get('color')\n if (color && /^[a-z]+$/.test(color)) {\n return color\n }\n },\n customColor() {\n const color = this.get('color')\n if (color && (/^#[\\w\\d]+$/.test(color) || /rgb/i.test(color))) {\n return color\n }\n },\n },\n\n methods: {\n toggleChecked() {\n this.fire(\n {\n type: 'change',\n ns: 'tag',\n },\n {\n checked: !this.get('checked'),\n }\n )\n }\n },\n\n components: {\n Icon,\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Empty.hbs'\n// import './style/Empty.styl'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n toPixel,\n toNumber,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Empty',\n\n propTypes: {\n simple: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n space: {\n type: RAW_NUMERIC,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n inlineStyle() {\n\n const result: object[] = []\n\n const space = toNumber(this.get('space'))\n if (space > 0) {\n result.push({\n marginTop: toPixel(space),\n marginBottom: toPixel(space),\n })\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n\n }\n },\n\n})","import Yox from 'yox'\n\nimport { FALSE, RAW_SLOT_CHILDREN } from '../constant'\n\nexport function isOptionSelected(values: any, value: any) {\n return Yox.is.array(values)\n ? Yox.array.has(values, value, FALSE)\n : values == value\n}\n\nexport function getOptionsByChildren(instance: any, children: any[]) {\n\n const result: any[] = []\n\n const next = function (children) {\n children.forEach(\n function (vnode) {\n const { tag, props, slots } = vnode\n if (tag === 'Option' && props) {\n const { text, value } = props\n result.push({\n text,\n value,\n })\n }\n else if (tag === 'OptionGroup' && slots && slots[RAW_SLOT_CHILDREN]) {\n const children = slots[RAW_SLOT_CHILDREN](instance)\n if (children) {\n next(children)\n }\n }\n }\n )\n }\n\n next(children)\n\n return result\n\n}","import Yox from 'yox'\n\nimport template from './template/Option.hbs'\n\nimport {\n TRUE,\n FALSE,\n RAW_STRING,\n RAW_NUMBER,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n findComponentUpward,\n} from '../util'\n\nimport {\n isOptionSelected,\n} from './util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Option',\n\n propTypes: {\n value: {\n type: [RAW_STRING, RAW_NUMBER],\n required: TRUE,\n },\n text: {\n type: RAW_STRING,\n required: TRUE,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n\n const select = findComponentUpward(options.parent, '${prefix}Select')\n\n const props = options.props || {}\n\n return {\n isSelected: select\n ? isOptionSelected(select.get('value'), props.value)\n : FALSE\n }\n },\n\n events: {\n change: {\n listener(_, data) {\n this.set({\n isSelected: isOptionSelected(data.value, this.get('value'))\n })\n },\n ns: 'select'\n }\n },\n\n methods: {\n onClick() {\n this.fire(\n {\n type: 'click',\n ns: 'option',\n },\n {\n value: this.get('value'),\n }\n )\n }\n }\n\n})\n","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/Select.hbs'\n// import './style/Select.styl'\n\nimport Tag from '../tag/Tag'\nimport Icon from '../icon/Icon'\nimport Empty from '../empty/Empty'\nimport Popover from '../popover/Popover'\nimport Option from './Option'\n\nimport {\n TRUE,\n FALSE,\n UNDEFINED,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_ARRAY,\n RAW_NUMBER,\n RAW_SIZE_ARRAY,\n RAW_DEFAULT,\n RAW_TOP,\n RAW_BOTTOM,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_ERROR,\n RAW_TYPE_WARNING,\n RAW_CUSTOM,\n RAW_SLOT_CHILDREN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n} from '../util'\n\nimport {\n isOptionSelected,\n getOptionsByChildren,\n} from './util'\n\nimport {\n fireClickEvent,\n onClickEventByEnterPress,\n} from '../event'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Select',\n\n propTypes: {\n options: {\n type: RAW_ARRAY,\n },\n placeholder: {\n type: RAW_STRING,\n value: '请选择...'\n },\n value: {\n type: [RAW_ARRAY, RAW_STRING, RAW_NUMBER],\n },\n status: {\n type: oneOf([RAW_TYPE_INFO, RAW_TYPE_SUCCESS, RAW_TYPE_ERROR, RAW_TYPE_WARNING]),\n },\n size: {\n type: oneOf(RAW_SIZE_ARRAY),\n value: RAW_DEFAULT,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n placement: {\n type: oneOf([RAW_TOP, RAW_BOTTOM]),\n value: RAW_BOTTOM,\n },\n multiple: {\n type: RAW_BOOLEAN,\n },\n showClear: {\n type: RAW_BOOLEAN,\n },\n block: {\n type: RAW_BOOLEAN,\n },\n prefix: {\n type: RAW_STRING,\n },\n width: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n RAW_TOP,\n RAW_CUSTOM,\n isFocus: FALSE,\n isVisible: FALSE,\n selectedOptions: [],\n }\n },\n\n computed: {\n allOptions(): any[] {\n const options = this.get('options')\n if (options) {\n return options\n }\n const children = this.get(RAW_SLOT_CHILDREN)\n if (children) {\n return getOptionsByChildren(this, children)\n }\n return []\n },\n selectedOptions(): any[] {\n const value = this.get('value')\n const allOptions = this.get('allOptions')\n const result: any[] = []\n\n Yox.array.each(\n allOptions,\n function (item: any) {\n if (isOptionSelected(value, item.value)) {\n result.push(item)\n }\n }\n )\n\n return result\n },\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const width = this.get('width')\n if (width) {\n result.push({\n width: toPixel(width)\n })\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n },\n\n events: {\n click: {\n listener(event, data) {\n\n event.stop()\n\n this.selectOption(data.value)\n\n if (!this.get('multiple')) {\n this.set('isVisible', FALSE)\n }\n\n },\n ns: 'option',\n },\n outside: {\n listener(event) {\n\n event.stop()\n\n this.set('isVisible', FALSE)\n\n },\n ns: 'popover',\n }\n },\n\n methods: {\n\n onClick(event?: CustomEventInterface) {\n this.toggle('isVisible')\n fireClickEvent(event)\n },\n\n onClearClick(event: CustomEventInterface) {\n\n // 停止冒泡,否则会展开下拉框\n event.stop()\n fireClickEvent(event)\n\n this.set('value', UNDEFINED)\n this.fireChange(UNDEFINED)\n\n },\n\n onOptionRemove(event: CustomEventInterface, index: number) {\n\n event.stop()\n\n this.removeAt('value', index)\n\n this.fireChange(\n this.get('value')\n )\n\n },\n\n selectOption(value: any) {\n\n const me = this\n const values = me.get('value')\n\n if (me.get('multiple')) {\n\n if (Yox.is.array(values)\n && Yox.array.has(values, value)\n ) {\n return\n }\n\n me.append('value', value)\n me.fireChange(\n me.get('value')\n )\n\n }\n else {\n\n if (values !== value) {\n me.set('value', value)\n me.fireChange(value)\n }\n\n }\n\n },\n\n deselectOption(value: any) {\n\n const me = this\n const values = me.get('value')\n\n if (me.get('multiple')) {\n\n const selectedIndex = Yox.is.array(values)\n ? Yox.array.indexOf(values, value)\n : -1\n\n if (selectedIndex < 0) {\n return\n }\n\n me.removeAt('value', selectedIndex)\n me.fireChange(\n me.get('value')\n )\n\n }\n else {\n\n if (values !== value) {\n return\n }\n\n me.set('value', UNDEFINED)\n me.fireChange(UNDEFINED)\n\n }\n\n },\n\n fireChange(value) {\n\n this.fire(\n {\n type: 'change',\n ns: 'select',\n },\n {\n value,\n }\n )\n\n this.fire(\n {\n type: 'change',\n ns: 'select',\n },\n {\n value,\n },\n TRUE\n )\n\n }\n\n },\n\n afterMount() {\n onClickEventByEnterPress(this)\n },\n\n afterUpdate() {\n if (this.get('isVisible') && this.get('multiple')) {\n const popover = this.$refs.popover as any\n popover.refreshOverlayRect()\n }\n },\n\n components: {\n Tag,\n Icon,\n Empty,\n Popover,\n Option,\n },\n\n})\n","import Yox from 'yox'\n\nimport template from './template/OptionGroup.hbs'\n\nimport {\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}OptionGroup',\n\n propTypes: {\n label: {\n type: RAW_STRING,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n})","import Yox from 'yox'\n\nimport template from './template/PrevPage.hbs'\n\nimport {\n RAW_BOOLEAN,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n propTypes: {\n disabled: {\n type: RAW_BOOLEAN,\n },\n }\n\n})","import Yox from 'yox'\n\nimport template from './template/NextPage.hbs'\n\nimport {\n RAW_BOOLEAN,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n propTypes: {\n disabled: {\n type: RAW_BOOLEAN,\n },\n }\n\n})","import Yox from 'yox'\n\nimport template from './template/Pagination.hbs'\n// import './style/Pagination.styl'\n\nimport Icon from '../icon/Icon'\nimport Input from '../input/Input'\nimport Button from '../button/Button'\nimport Select from '../select/Select'\nimport PrevPage from './PrevPage'\nimport NextPage from './NextPage'\n\nimport {\n TRUE,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_ARRAY,\n RAW_BOTTOM,\n RAW_TOP,\n RAW_DEFAULT,\n RAW_SMALL,\n RAW_NUMERIC,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n toNumber,\n} from '../util'\n\nimport {\n onClickEventByEnterPress,\n} from '../event'\n\nexport default Yox.define({\n\n template,\n\n model: 'current',\n\n name: '${prefix}Pagination',\n\n propTypes: {\n size: {\n type: oneOf([RAW_DEFAULT, RAW_SMALL]),\n value: RAW_DEFAULT,\n },\n simple: {\n type: RAW_BOOLEAN,\n },\n total: {\n type: RAW_NUMERIC,\n required: TRUE,\n },\n current: {\n type: RAW_NUMERIC,\n value: 1,\n },\n pageSize: {\n type: RAW_NUMERIC,\n value: 10,\n },\n pageSizeOptions: {\n type: RAW_ARRAY,\n },\n showJumper: {\n type: RAW_BOOLEAN,\n },\n showTotal: {\n type: RAW_BOOLEAN,\n },\n hideOnSinglePage: {\n type: RAW_BOOLEAN,\n value: TRUE,\n },\n placement: {\n type: oneOf([RAW_TOP, RAW_BOTTOM]),\n value: RAW_BOTTOM,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n page: '',\n focused: '',\n }\n },\n\n computed: {\n pageList(): object[] {\n\n const result = []\n\n const current = toNumber(this.get('current'))\n const count = toNumber(this.get('count'))\n\n if (count === 0) {\n return result\n }\n\n // 先用 current 拆出中间的 5 个页码\n let start = current - 2\n let end = current + 2\n\n if (start < 1) {\n start = 1\n end = Math.min(count, start + 4)\n }\n if (end > count) {\n end = count\n start = Math.max(1, end - 4)\n }\n\n for (let i = start; i <= end; i++) {\n result.push({\n value: i,\n active: i === current,\n })\n }\n\n if (start > 1) {\n // 和第一页至少隔了一个页码\n if (start - 1 > 1) {\n result.unshift({\n prev: TRUE,\n })\n }\n result.unshift({\n value: 1,\n active: 1 === current,\n })\n }\n\n if (end < count) {\n // 和最后一页至少隔了一个页码\n if (count - end > 1) {\n result.push({\n next: TRUE,\n })\n }\n result.push({\n value: count,\n active: count === current,\n })\n }\n\n return result\n\n },\n pageSizeList(): object[] {\n\n const result = []\n const pageSizeOptions = this.get('pageSizeOptions')\n\n if (pageSizeOptions) {\n Yox.array.each(\n pageSizeOptions,\n function (value) {\n result.push({\n text: value + ' 条/页',\n value,\n })\n }\n )\n }\n\n return result\n\n },\n count(): number {\n const total = this.get('total')\n const pageSize = this.get('pageSize')\n return Math.ceil(total / pageSize)\n }\n },\n\n events: [\n {\n type: 'change',\n ns: 'select',\n listener(event, data) {\n\n if (event.phase !== Yox.Event.PHASE_UPWARD) {\n return\n }\n\n event.stop()\n\n // @ts-ignore\n this.fire(\n {\n type: 'change',\n ns: 'pagination',\n },\n {\n pageSize: data.value\n }\n )\n\n }\n },\n {\n type: 'change',\n ns: 'input',\n listener(event) {\n\n if (event.phase !== Yox.Event.PHASE_UPWARD) {\n return\n }\n\n // @ts-ignore\n event.stop()\n\n }\n },\n {\n type: 'enter',\n ns: 'input',\n listener(event) {\n\n if (event.phase !== Yox.Event.PHASE_UPWARD) {\n return\n }\n\n event.stop()\n\n // @ts-ignore\n this.jump()\n\n }\n }\n ],\n\n watchers: {\n current(current: number) {\n this.set('page', current)\n }\n },\n\n methods: {\n\n onPageClick(page: number) {\n this.setCurrent(page)\n },\n onPageFocus(page: number) {\n this.set({\n focused: `${page}_page`,\n })\n },\n onPageBlur(page: number) {\n if (this.get('focused') === `${page}_page`) {\n this.set({\n focused: '',\n })\n }\n },\n\n onPrevPageClick() {\n this.decreaseCurrent(1)\n },\n onPrevPageFocus() {\n this.set({\n focused: 'prev_page',\n })\n },\n onPrevPageBlur() {\n if (this.get('focused') === 'prev_page') {\n this.set({\n focused: '',\n })\n }\n },\n\n onNextPageClick() {\n this.increaseCurrent(1)\n },\n onNextPageFocus() {\n this.set({\n focused: 'next_page',\n })\n },\n onNextPageBlur() {\n if (this.get('focused') === 'next_page') {\n this.set({\n focused: '',\n })\n }\n },\n\n onJumpClick() {\n let page = this.get('page')\n if (page) {\n if (Yox.is.numeric(page)) {\n page = +page\n if (page > this.get('count')) {\n this.showError('max')\n }\n else if (page <= 0) {\n this.showError('min')\n }\n else {\n this.setCurrent(page)\n }\n }\n else {\n this.showError('pattern')\n }\n }\n else {\n this.showError('empty')\n }\n },\n\n showError(error: string) {\n this.fire(\n {\n type: 'error',\n ns: 'pagination',\n },\n {\n error,\n }\n )\n },\n\n setCurrent(current: number) {\n if (this.get('current') === current) {\n return\n }\n this.set('current', current)\n this.fire(\n {\n type: 'change',\n ns: 'pagination',\n },\n {\n current,\n }\n )\n },\n\n decreaseCurrent(step: number) {\n const value = toNumber(this.get('current'), 1) - step\n this.setCurrent(\n value < 1 ? 1 : value\n )\n },\n\n increaseCurrent(step: number) {\n const value = toNumber(this.get('current'), 1) + step\n const count = this.get('count')\n this.setCurrent(\n value > count ? count : value\n )\n }\n\n },\n\n afterMount() {\n const me = this\n onClickEventByEnterPress(me, function () {\n const focused = me.get('focused')\n if (focused) {\n const parts = focused.split('_')\n if (parts[1] === 'page') {\n if (parts[0] === 'prev') {\n me.onPrevPageClick()\n }\n else if (parts[0] === 'next') {\n me.onNextPageClick()\n }\n else {\n me.onPageClick(\n toNumber(parts[0])\n )\n }\n }\n }\n })\n },\n\n components: {\n Icon,\n Input,\n Button,\n Select,\n PrevPage,\n NextPage,\n }\n\n})","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/Upload.hbs'\n// import './style/Upload.styl'\n\nimport { toString } from '../util'\n\nimport {\n TRUE,\n FALSE,\n UNDEFINED,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_FUNCTION,\n RAW_NUMERIC,\n RAW_STYLE_TYPE,\n} from '../constant'\n\n// 为每次选择的文件提供一个全局唯一的 id,便于外部知道触发的事件对应哪次上传\n\ntype LocalFile = {\n id: number | string,\n file: File,\n name: string,\n size: number,\n}\n\n// 本地文件用负数,避免和数据库自增 id 冲突\nlet guid = -1\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Upload',\n\n propTypes: {\n index: {\n type: RAW_NUMERIC,\n },\n draggable: {\n type: RAW_BOOLEAN,\n },\n multiple: {\n type: RAW_BOOLEAN,\n },\n accept: {\n type: RAW_STRING,\n },\n beforeUpload: {\n type: RAW_FUNCTION,\n },\n upload: {\n type: RAW_FUNCTION,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n isFileHover: FALSE,\n }\n },\n\n computed: {\n acceptPattern(): RegExp | void {\n const accept = this.get('accept')\n return accept\n ? new RegExp('(' + accept.replace(/\\*/g, '.').replace(/\\s*,\\s*/g, '|') + ')')\n : UNDEFINED\n }\n },\n\n methods: {\n beforeUpload(fileList: FileList) {\n\n const me = this\n const acceptPattern = me.get('acceptPattern')\n\n const formatedFileList = Yox.array.toArray(fileList)\n .filter(\n function (file) {\n return acceptPattern\n ? acceptPattern.test(file.type)\n : TRUE\n }\n )\n .map(\n function (file) {\n return {\n // 用字符串类型表示本地文件\n id: toString(guid--),\n file,\n name: file.name,\n size: file.size,\n }\n }\n )\n\n if (formatedFileList.length > 1\n && !me.get('multiple')\n ) {\n formatedFileList.length = 1\n }\n\n const beforeUpload = me.get('beforeUpload')\n if (beforeUpload) {\n const index = me.get('index')\n beforeUpload({\n index,\n fileList: formatedFileList,\n callback(result) {\n if (Yox.is.array(result)) {\n Yox.array.each(\n result,\n function (item: LocalFile) {\n me.upload(item)\n }\n )\n }\n else if (result) {\n me.upload(result)\n }\n }\n })\n return\n }\n\n Yox.array.each(\n formatedFileList,\n function (item) {\n me.upload(item)\n }\n )\n\n },\n\n upload(file: LocalFile) {\n\n const me = this\n const index = me.get('index')\n const upload = me.get('upload')\n\n upload({\n index,\n id: file.id,\n file: file.file,\n onStart() {\n me.fire(\n {\n type: 'start',\n ns: 'upload',\n },\n file\n )\n },\n onEnd() {\n\n me.fire(\n {\n type: 'end',\n ns: 'upload',\n },\n file\n )\n\n me.reset()\n\n },\n onAbort() {\n me.fire(\n {\n type: 'abort',\n ns: 'upload',\n },\n file\n )\n },\n onError() {\n me.fire(\n {\n type: 'error',\n ns: 'upload',\n },\n file\n )\n },\n onProgress(progress) {\n me.fire(\n {\n type: 'progress',\n ns: 'upload',\n },\n {\n id: file.id,\n file: file.file,\n progress,\n }\n )\n },\n onSuccess(response) {\n me.fire(\n {\n type: 'success',\n ns: 'upload',\n },\n {\n id: file.id,\n file: file.file,\n response,\n }\n )\n }\n })\n },\n\n reset() {\n // 重置一下,这样再次选择相同文件才能生效\n (this.$refs.form as HTMLFormElement).reset()\n },\n\n handleClick() {\n (this.$refs.input as HTMLInputElement).click()\n },\n\n handleDragenter() {\n this.set('isFileHover', TRUE)\n },\n\n handleDragleave() {\n this.set('isFileHover', FALSE)\n },\n\n handleDragover(event: CustomEventInterface) {\n // 默认情况下,元素是不允许放置的\n event.prevent()\n },\n\n handleDrop(event: CustomEventInterface) {\n event.prevent()\n this.set('isFileHover', FALSE)\n this.beforeUpload(\n (event.originalEvent as DragEvent).dataTransfer.files\n )\n },\n\n handleChange(event: CustomEventInterface) {\n this.beforeUpload(\n (event.originalEvent.target as HTMLInputElement).files\n )\n }\n\n }\n\n})","import Yox from 'yox'\n\nimport template from './template/Alert.hbs'\n// import './style/Alert.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_STATUS_ARRAY,\n RAW_TYPE_WARNING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n getStatusIconName,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Alert',\n\n propTypes: {\n status: {\n type: oneOf(RAW_STATUS_ARRAY),\n value: RAW_TYPE_WARNING,\n },\n title: {\n type: RAW_STRING,\n },\n showIcon: {\n type: RAW_BOOLEAN,\n },\n banner: {\n type: RAW_BOOLEAN,\n },\n closable: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n iconName() {\n return getStatusIconName(\n this.get('status')\n )\n },\n },\n\n components: {\n Icon,\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Article.hbs'\n// import './style/Article.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Article',\n\n propTypes: {\n title: {\n type: RAW_STRING,\n },\n showLink: {\n type: RAW_BOOLEAN,\n },\n subTitle: {\n type: RAW_STRING,\n },\n signature: {\n type: RAW_STRING,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n components: {\n Icon,\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Analysis.hbs'\n// import './style/Analysis.styl'\n\nimport Icon from '../icon/Icon'\nimport Tooltip from '../tooltip/Tooltip'\nimport Skeleton from '../skeleton/Skeleton'\n\nimport {\n TRUE,\n RAW_TOP,\n RAW_BOOLEAN,\n RAW_NUMBER,\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Analysis',\n\n propTypes: {\n title: {\n type: RAW_STRING,\n required: TRUE,\n },\n value: {\n type: [RAW_STRING, RAW_NUMBER],\n },\n tooltip: {\n type: RAW_STRING,\n },\n loading: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n RAW_TOP,\n }\n },\n\n components: {\n Icon,\n Tooltip,\n Skeleton,\n },\n\n})","import Yox from 'yox'\n\nimport template from './template/AnalysisField.hbs'\n// import './style/AnalysisField.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n TRUE,\n RAW_NUMBER,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}AnalysisField',\n\n propTypes: {\n label: {\n type: RAW_STRING,\n required: TRUE,\n },\n value: {\n type: [RAW_STRING, RAW_NUMBER],\n },\n up: {\n type: RAW_BOOLEAN,\n },\n down: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n components: {\n Icon,\n }\n\n})","import Yox from 'yox'\n\nimport template from './template/Spin.hbs'\n// import './style/Spin.styl'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_DEFAULT,\n RAW_SIZE_ARRAY,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Spin',\n\n propTypes: {\n size: {\n type: oneOf(RAW_SIZE_ARRAY),\n value: RAW_DEFAULT,\n },\n fixed: {\n type: RAW_BOOLEAN,\n },\n text: {\n type: RAW_STRING,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n },\n },\n\n})","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/SplitButton.hbs'\n// import './style/SplitButton.styl'\n\nimport Icon from '../icon/Icon'\nimport Button from '../button/Button'\nimport ButtonGroup from '../button/ButtonGroup'\nimport Popover from '../popover/Popover'\n\nimport {\n TRUE,\n FALSE,\n RAW_SMALL,\n RAW_LARGE,\n RAW_DEFAULT,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_TYPE_PRIMARY,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_WARNING,\n RAW_TYPE_ERROR,\n RAW_CLICK,\n RAW_PLACEMENT_ARRAY,\n RAW_BOTTOM_END,\n RAW_ARRAY,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nimport {\n fireClickEvent\n} from '../event'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}SplitButton',\n\n propTypes: {\n type: {\n type: oneOf([\n RAW_TYPE_PRIMARY,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_WARNING,\n RAW_TYPE_ERROR,\n ]),\n },\n size: {\n type: oneOf([RAW_DEFAULT, RAW_LARGE, RAW_SMALL]),\n value: RAW_DEFAULT,\n },\n placement: {\n type: oneOf(RAW_PLACEMENT_ARRAY),\n value: RAW_BOTTOM_END,\n },\n menu: {\n type: RAW_ARRAY,\n required: TRUE,\n },\n loading: {\n type: RAW_BOOLEAN,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n RAW_CLICK,\n isMenuVisible: FALSE,\n }\n },\n\n events: {\n click(event) {\n if (event.phase === Yox.Event.PHASE_UPWARD) {\n event.stop()\n fireClickEvent(event)\n }\n },\n open(event) {\n event.stop()\n this.set('isMenuVisible', TRUE)\n },\n close(event) {\n event.stop()\n this.set('isMenuVisible', FALSE)\n }\n },\n\n methods: {\n onButtonClick(event: CustomEventInterface) {\n event.stop()\n fireClickEvent(event)\n this.fire(\n {\n type: 'click',\n ns: 'splitButton',\n }\n )\n },\n onItemClick(item, index) {\n this.set('isMenuVisible', FALSE)\n this.fire(\n {\n type: 'select',\n ns: 'splitButton',\n },\n {\n item,\n index,\n }\n )\n }\n },\n\n components: {\n Icon,\n Button,\n ButtonGroup,\n Popover,\n },\n\n})","import Yox from 'yox'\n\nimport template from './template/BackTop.hbs'\n// import './style/BackTop.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n FALSE,\n WINDOW,\n DOCUMENT,\n RAW_STRING,\n RAW_NUMERIC,\n RAW_EVENT_SCROLL,\n RAW_EVENT_RESIZE,\n RAW_EVENT_BEFORE_DESTROY,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n toPixel,\n toNumber,\n scrollTo,\n onTransitionEnd,\n} from '../util'\n\nconst CLASS_VISIBLE = '${prefix}backtop-visible'\nconst CLASS_FADE = '${prefix}backtop-fade'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}BackTop',\n\n propTypes: {\n target: {\n type: RAW_STRING,\n },\n bottom: {\n type: RAW_NUMERIC,\n },\n right: {\n type: RAW_NUMERIC,\n },\n height: {\n type: RAW_NUMERIC,\n value: 0,\n },\n duration: {\n type: RAW_NUMERIC,\n value: 500,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n isVisible: FALSE,\n }\n },\n\n computed: {\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const customStyle: Record = {}\n\n const bottom = this.get('bottom')\n const right = this.get('right')\n\n if (bottom) {\n customStyle.bottom = toPixel(bottom)\n }\n if (right) {\n customStyle.right = toPixel(right)\n }\n\n if (Yox.object.keys(customStyle).length > 0) {\n result.push(customStyle)\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n },\n\n transitions: {\n backTop: {\n enter(node) {\n\n const me = this\n\n // 设置为 display block\n Yox.dom.addClass(node, CLASS_VISIBLE)\n\n setTimeout(\n function () {\n if (!me.get('isVisible')) {\n return\n }\n Yox.dom.addClass(node, CLASS_FADE)\n },\n 50\n )\n\n },\n leave(node, done) {\n\n const me = this\n\n Yox.dom.removeClass(node, CLASS_FADE)\n\n onTransitionEnd(\n node,\n function () {\n if (me.get('isVisible')) {\n return\n }\n Yox.dom.removeClass(node, CLASS_VISIBLE)\n done()\n }\n )\n\n }\n },\n },\n\n components: {\n Icon,\n },\n\n afterMount() {\n\n const me = this\n\n let container: Document | HTMLElement = DOCUMENT\n let containerElement = DOCUMENT.documentElement\n\n const target = me.get('target')\n if (target) {\n containerElement = Yox.dom.find(target) as HTMLElement\n if (!containerElement) {\n Yox.logger.fatal(`target is not existed: ${target}`)\n return\n }\n container = containerElement\n }\n\n const height = toNumber(me.get('height'))\n const onRefresh = function () {\n me.set({\n isVisible: containerElement.scrollTop >= height\n })\n }\n\n const duration = toNumber(this.get('duration'))\n me.on('click', function () {\n scrollTo(\n containerElement,\n containerElement.scrollTop,\n 0,\n duration\n )\n })\n\n Yox.dom.on(container, RAW_EVENT_SCROLL, onRefresh)\n Yox.dom.on(WINDOW, RAW_EVENT_RESIZE, onRefresh)\n\n const destroy = function (component) {\n if (component === me) {\n Yox.dom.off(container, RAW_EVENT_SCROLL, onRefresh)\n Yox.dom.off(WINDOW, RAW_EVENT_RESIZE, onRefresh)\n Yox.lifeCycle.off(RAW_EVENT_BEFORE_DESTROY, destroy)\n }\n }\n Yox.lifeCycle.on(RAW_EVENT_BEFORE_DESTROY, destroy)\n\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Avatar.hbs'\n// import './style/Avatar.styl'\n\nimport {\n TRUE,\n RAW_STRING,\n RAW_NUMERIC,\n RAW_BOOLEAN,\n RAW_FUNCTION,\n RAW_DEFAULT,\n RAW_SHAPE_CIRCLE,\n RAW_SMALL,\n RAW_LARGE,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n toNumber,\n} from '../util'\n\nconst SPACE_HORIZONTAL = 8\n\nconst SIZE_DEFAULT = 32\nconst SIZE_SMALL = 24\nconst SIZE_LARGE = 40\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Avatar',\n\n propTypes: {\n size: {\n type: [RAW_STRING, RAW_NUMERIC],\n value: RAW_DEFAULT,\n },\n shape: {\n type: oneOf([RAW_SHAPE_CIRCLE]),\n },\n text: {\n type: RAW_STRING,\n },\n url: {\n type: RAW_STRING,\n },\n formatUrl: {\n type: RAW_FUNCTION,\n },\n src: {\n type: RAW_STRING,\n },\n srcSet: {\n type: RAW_STRING,\n },\n alt: {\n type: RAW_STRING,\n },\n color: {\n type: RAW_STRING,\n },\n fontSize: {\n type: RAW_NUMERIC,\n },\n backgroundColor: {\n type: RAW_STRING,\n },\n clickable: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n sizeValue() {\n const size = this.get('size')\n const value = toNumber(size)\n if (value > 0) {\n return value\n }\n if (size === RAW_SMALL) {\n return SIZE_SMALL\n }\n if (size === RAW_LARGE) {\n return SIZE_LARGE\n }\n return SIZE_DEFAULT\n },\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const customStyle: Record = {}\n\n const sizeValue = this.get('sizeValue')\n customStyle.width = toPixel(sizeValue)\n customStyle.height = toPixel(sizeValue)\n\n const backgroundColor = this.get('backgroundColor')\n if (backgroundColor) {\n customStyle.backgroundColor = backgroundColor\n }\n\n if (Yox.object.keys(customStyle).length > 0) {\n result.push(customStyle)\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n textStyle() {\n\n const customStyle: Record = {}\n\n const color = this.get('color')\n const fontSize = this.get('fontSize')\n\n if (color) {\n customStyle.color = color\n }\n if (fontSize) {\n customStyle.fontSize = toPixel(fontSize)\n }\n\n if (Yox.object.keys(customStyle).length > 0) {\n return customStyle\n }\n\n }\n },\n\n afterMount() {\n\n const me = this\n\n me.watch(\n 'text',\n function () {\n me.nextTick(function () {\n\n const element = me.$refs && me.$refs.text as HTMLElement\n if (!element) {\n return\n }\n\n const scale = element.offsetWidth\n ? (me.$el.offsetWidth - SPACE_HORIZONTAL) / element.offsetWidth\n : 1\n\n element.style.transform = `scale(${Math.min(scale, 1)}) translateX(-50%)`\n\n })\n },\n TRUE\n )\n\n }\n})\n","import Yox from 'yox'\n\nimport template from './template/Badge.hbs'\n// import './style/Badge.styl'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMBER,\n RAW_NUMERIC,\n RAW_DEFAULT,\n RAW_TYPE_ARRAY,\n RAW_TYPE_ERROR,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_WARNING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Badge',\n\n propTypes: {\n type: {\n type: oneOf(RAW_TYPE_ARRAY),\n value: RAW_TYPE_ERROR,\n },\n status: {\n type: oneOf([\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_ERROR,\n RAW_TYPE_WARNING,\n RAW_DEFAULT,\n 'processing',\n ]),\n },\n text: {\n type: [RAW_STRING, RAW_NUMBER],\n },\n count: {\n type: RAW_NUMERIC,\n },\n max: {\n type: RAW_NUMERIC,\n value: 99,\n },\n dot: {\n type: RAW_BOOLEAN,\n },\n hidden: {\n type: RAW_BOOLEAN,\n },\n ripple: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n filters: {\n isNumeric: Yox.is.numeric,\n formatText(count: any, max: any) {\n count = Yox.is.numeric(count) ? +count : 0\n max = Yox.is.numeric(max) ? +max : 1\n return max < count\n ? max + '+'\n : count\n }\n }\n\n})\n","import {\n padStart,\n toString,\n} from '../util'\n\nexport const WEEKS = ['日', '一', '二', '三', '四', '五', '六']\n\nexport const SECOND = 1000\nexport const MINUTE = 60 * SECOND\nexport const HOUR = 60 * MINUTE\nexport const DAY = 24 * HOUR\n\nexport const STABLE_DURATION = 41 * DAY\nexport const MONTHS = [\n '一月', '二月', '三月', '四月', '五月',\n '六月', '七月', '八月', '九月', '十月',\n '十一月', '十二月'\n]\n\nexport const RAW_TYPE_DATE = 'date'\nexport const RAW_TYPE_DATE_RANGE = 'dateRange'\nexport const RAW_TYPE_WEEK = 'week'\nexport const RAW_TYPE_YEAR = 'year'\nexport const RAW_TYPE_MONTH = 'month'\n\nexport interface SimpleMonth {\n timestamp: number,\n year: number,\n month: number,\n text: string,\n}\n\nexport interface SimpleDate {\n timestamp: number,\n year: number,\n month: number,\n date: number,\n}\n\nexport interface SimpleRange {\n start: SimpleDate,\n end: SimpleDate,\n}\n\nexport interface DateRow {\n start: SimpleDate,\n end: SimpleDate,\n list: SimpleDate[],\n}\n\nexport interface Shortcut {\n text: string,\n onClick: () => Date | Date[],\n}\n\nexport function toSimpleDate(date: Date | number): SimpleDate {\n const result = toDate(date)\n return {\n year: result.getFullYear(),\n month: result.getMonth() + 1,\n date: result.getDate(),\n timestamp: result.getTime(),\n }\n}\n\nexport function toDate(date: Date | number) {\n\n let result: Date\n\n if (date instanceof Date) {\n result = date\n }\n else {\n result = new Date(date)\n }\n\n // 碰到过夏令时问题,问题描述如下:\n // time 每次递增 DAY,期望下次的时分秒是相同的,即 00:00:00\n // 但是碰到夏令时问题后,小时会有不同,非常坑爹\n // 因此这里要检查小时是否为 0\n result.setHours(0, 0, 0, 0)\n\n return result\n\n}\n\nexport function toTimestamp(date: Date | number | void) {\n return toDate(date || new Date()).getTime()\n}\n\nexport function offsetMonth(timestamp: number, offset: number) {\n\n const date = new Date(timestamp)\n\n date.setDate(1)\n date.setMonth(date.getMonth() + offset)\n\n return date.getTime()\n\n}\n\nfunction firstDateInWeek(date: Date) {\n const day = date.getDay()\n return new Date(date.getTime() - day * DAY)\n}\n\nfunction lastDateInWeek(date: Date) {\n const day = date.getDay()\n return new Date(date.getTime() - (6 - day) * DAY)\n}\n\nfunction firstDateInMonth(date: Date) {\n date.setDate(1)\n return date\n}\n\nfunction lastDateInMonth(date: Date) {\n date.setDate(1)\n date.setMonth(date.getMonth() + 1)\n return new Date(date.getTime() - DAY)\n}\n\nexport function createYearViewDatasource(startYear: number, count: number) {\n let result: number[][] = [], list: number[] = []\n for (let i = 0; i < count; i++) {\n list.push(i + startYear)\n if (i % 4 === 3) {\n result.push(list)\n list = []\n }\n }\n return result\n}\n\nexport function createMonthViewDatasource(year: number) {\n\n let result: SimpleMonth[][] = [], list: SimpleMonth[] = [], date = new Date()\n\n date.setFullYear(year)\n date.setDate(1)\n date.setHours(0, 0, 0, 0)\n\n for (let i = 0, len = MONTHS.length; i < len; i++) {\n\n date.setMonth(i)\n\n list.push({\n timestamp: date.getTime(),\n year,\n month: i + 1,\n text: MONTHS[i],\n })\n if (i % 4 === 3) {\n result.push(list)\n list = []\n }\n }\n return result\n}\n\nexport function createDateViewDatasource(timestamp: number) {\n\n let startDate = firstDateInWeek(firstDateInMonth(new Date(timestamp))).getTime()\n let endDate = lastDateInWeek(lastDateInMonth(new Date(timestamp))).getTime()\n\n let duration = endDate - startDate\n let offset = STABLE_DURATION - duration\n\n if (offset > 0) {\n endDate += offset\n }\n\n let result: DateRow[] = [], list: SimpleDate[] = []\n for (let i = 0, time = startDate; time <= endDate; i++, time += DAY) {\n\n list.push(toSimpleDate(time))\n\n if (i % 7 === 6) {\n result.push({\n start: list[0],\n end: list[list.length - 1],\n list: list,\n })\n list = []\n }\n\n }\n\n return result\n}\n\n/**\n * yyyy -> 2019\n * M -> 1\n * MM -> 01\n * d -> 1\n * dd -> 01\n */\nexport function formatDate(date: Date, format: string) {\n return format\n .replace(/yyyy/i, toString(date.getFullYear()))\n .replace(/MM/i, padStart(date.getMonth() + 1))\n .replace(/M/i, toString(date.getMonth() + 1))\n .replace(/dd/i, padStart(date.getDate()))\n .replace(/d/i, toString(date.getDate()))\n}\n","import Yox from 'yox'\n\nimport Icon from '../../icon/Icon'\nimport template from '../template/DateYear.hbs'\n\nimport {\n RAW_DATE,\n RAW_STRING,\n RAW_ARRAY,\n RAW_NUMBER,\n RAW_STYLE_TYPE,\n} from '../../constant'\n\nimport {\n toDate,\n createYearViewDatasource,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n propTypes: {\n defaultDate: {\n type: [RAW_DATE, RAW_NUMBER],\n },\n checkedDate: {\n type: [RAW_DATE, RAW_NUMBER, RAW_ARRAY],\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n const props = options.props || {}\n let date = props.defaultDate\n if (!date) {\n if (Yox.is.array(props.checkedDate)) {\n date = props.checkedDate[0]\n }\n else {\n date = props.checkedDate\n }\n }\n return {\n year: (date ? toDate(date) : new Date()).getFullYear(),\n count: 12,\n }\n },\n\n computed: {\n datasource(): number[][] {\n return createYearViewDatasource(this.get('year'), this.get('count'))\n },\n checkedYears(): number[] {\n let checkedDate = this.get('checkedDate')\n if (Yox.is.array(checkedDate)) {\n return checkedDate.map(function (date: number | Date) {\n return date ? toDate(date).getFullYear() : 0\n })\n }\n return [checkedDate ? toDate(checkedDate).getFullYear() : 0]\n }\n },\n\n filters: {\n isChecked(year: number, checkedYears: number[]) {\n return Yox.array.has(checkedYears, year)\n }\n },\n\n methods: {\n click(item: number) {\n this.fire(\n {\n type: 'change',\n ns: 'year',\n },\n {\n year: item,\n }\n )\n }\n },\n\n components: {\n Icon,\n }\n\n})\n","import Yox from 'yox'\n\nimport Icon from '../../icon/Icon'\nimport template from '../template/DateMonth.hbs'\n\nimport DateYear from './DateYear'\n\nimport {\n RAW_TYPE_YEAR,\n RAW_TYPE_MONTH,\n toDate,\n SimpleMonth,\n createMonthViewDatasource,\n} from '../util'\n\nimport {\n RAW_DATE,\n RAW_STRING,\n RAW_NUMBER,\n RAW_ARRAY,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../../constant'\n\nfunction toMonthTimestamp(date: Date | number | void) {\n if (date) {\n date = toDate(date)\n date.setDate(1)\n return date.getTime()\n }\n return 0\n}\n\nexport default Yox.define({\n\n template,\n\n propTypes: {\n defaultDate: {\n type: RAW_NUMBER,\n },\n checkedDate: {\n type: [RAW_DATE, RAW_NUMBER, RAW_ARRAY],\n },\n canPickYear: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n const props = options.props || {}\n let date = props.defaultDate\n if (!date) {\n if (Yox.is.array(props.checkedDate)) {\n date = props.checkedDate[0]\n }\n else {\n date = props.checkedDate\n }\n }\n return {\n type: RAW_TYPE_MONTH,\n RAW_TYPE_YEAR,\n RAW_TYPE_MONTH,\n\n year: (date ? toDate(date) : new Date()).getFullYear(),\n }\n },\n\n components: {\n Icon,\n DateYear,\n },\n\n computed: {\n datasource(): SimpleMonth[][] {\n return createMonthViewDatasource(this.get('year'))\n },\n checkedTimestamps(): number[] {\n const checkedDate = this.get('checkedDate')\n if (Yox.is.array(checkedDate)) {\n return checkedDate.map(toMonthTimestamp)\n }\n return [toMonthTimestamp(checkedDate)]\n }\n },\n\n filters: {\n isChecked(item: SimpleMonth, checkedTimestamps: number[]) {\n return Yox.array.has(checkedTimestamps, item.timestamp)\n }\n },\n\n events: {\n change: {\n listener(event, data) {\n event.stop()\n this.set({\n type: RAW_TYPE_MONTH,\n year: data.year,\n })\n },\n ns: 'year',\n },\n },\n\n methods: {\n click(item: SimpleMonth) {\n this.fire(\n {\n type: 'change',\n ns: 'month',\n },\n item\n )\n }\n }\n\n})","import Yox from 'yox'\n\nimport Icon from '../../icon/Icon'\nimport template from '../template/Date.hbs'\n\nimport DateMonth from './DateMonth'\nimport DateYear from './DateYear'\n\nimport {\n TRUE,\n RAW_STRING,\n RAW_ARRAY,\n RAW_NUMBER,\n RAW_FUNCTION,\n RAW_DATE,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../../constant'\n\nimport {\n WEEKS,\n RAW_TYPE_DATE,\n RAW_TYPE_YEAR,\n RAW_TYPE_MONTH,\n\n DateRow,\n SimpleDate,\n toSimpleDate,\n toTimestamp,\n offsetMonth,\n createDateViewDatasource,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n propTypes: {\n defaultDate: {\n type: [RAW_DATE, RAW_NUMBER],\n },\n checkedDate: {\n type: [RAW_DATE, RAW_NUMBER, RAW_ARRAY],\n },\n disabledDate: {\n type: RAW_FUNCTION,\n },\n canPickYear: {\n type: RAW_BOOLEAN,\n },\n canPickMonth: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n const props = options.props || {}\n let date = props.defaultDate\n if (!date) {\n if (Yox.is.array(props.checkedDate)) {\n date = props.checkedDate[0]\n }\n else {\n date = props.checkedDate\n }\n }\n return {\n type: RAW_TYPE_DATE,\n RAW_TYPE_DATE,\n RAW_TYPE_YEAR,\n RAW_TYPE_MONTH,\n\n weeks: WEEKS,\n timestamp: toTimestamp(date),\n }\n },\n\n computed: {\n date(): SimpleDate {\n return toSimpleDate(this.get('timestamp'))\n },\n datasource(): DateRow[] {\n return createDateViewDatasource(this.get('timestamp'))\n },\n checkedTimestamps(): number[] {\n let checkedDate = this.get('checkedDate')\n if (Yox.is.array(checkedDate)) {\n return checkedDate.map(function (date: number | Date) {\n return date ? toTimestamp(date) : 0\n })\n }\n return [checkedDate ? toTimestamp(checkedDate) : 0]\n }\n },\n\n components: {\n Icon,\n DateYear,\n DateMonth,\n },\n\n filters: {\n isCurrentMonth(item: SimpleDate, date: SimpleDate) {\n return date.year === item.year && date.month === item.month\n },\n\n isEnabled(item: SimpleDate, disabledDate: ((item: SimpleDate) => boolean) | void) {\n return disabledDate\n ? disabledDate(item)\n : TRUE\n },\n\n isChecked(item: SimpleDate, checkedTimestamps: number[]) {\n return Yox.array.has(checkedTimestamps, item.timestamp)\n }\n },\n\n events: [\n {\n type: 'change',\n ns: 'year',\n listener(event, data) {\n event.stop()\n // @ts-ignore\n const date = new Date(this.get('timestamp'))\n date.setFullYear(data.year)\n // @ts-ignore\n this.set({\n type: RAW_TYPE_DATE,\n timestamp: date.getTime()\n })\n }\n },\n {\n type: 'change',\n ns: 'month',\n listener(event, data) {\n event.stop()\n // @ts-ignore\n const date = new Date(this.get('timestamp'))\n date.setMonth(data.month - 1)\n // @ts-ignore\n this.set({\n type: RAW_TYPE_DATE,\n timestamp: date.getTime()\n })\n }\n }\n ],\n\n methods: {\n offset(offset: number) {\n this.set(\n 'timestamp',\n offsetMonth(this.get('timestamp'), offset)\n )\n },\n click(item: SimpleDate) {\n this.fire(\n {\n type: 'change',\n ns: 'date',\n },\n item\n )\n }\n }\n\n})\n","import Yox from 'yox'\n\nimport Icon from '../../icon/Icon'\nimport template from '../template/DateRange.hbs'\n\nimport {\n WEEKS,\n DateRow,\n SimpleDate,\n offsetMonth,\n toSimpleDate,\n toTimestamp,\n createDateViewDatasource,\n} from '../util'\n\nimport {\n TRUE,\n UNDEFINED,\n RAW_DATE,\n RAW_STRING,\n RAW_NUMBER,\n RAW_FUNCTION,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../../constant'\n\nfunction getEndTimestamp(startTimestamp: number, endTimestamp: number) {\n\n const startDate = new Date(startTimestamp)\n const endDate = new Date(endTimestamp)\n\n startDate.setDate(1)\n endDate.setDate(1)\n\n if (endDate.getTime() > startDate.getTime()) {\n return endDate.getTime()\n }\n\n return offsetMonth(endTimestamp, 1)\n\n}\n\nexport default Yox.define({\n\n template,\n\n propTypes: {\n splitPanel: {\n type: RAW_BOOLEAN,\n },\n defaultStartDate: {\n type: [RAW_DATE, RAW_NUMBER],\n },\n checkedStartDate: {\n type: [RAW_DATE, RAW_NUMBER],\n },\n defaultEndDate: {\n type: [RAW_DATE, RAW_NUMBER],\n },\n checkedEndDate: {\n type: [RAW_DATE, RAW_NUMBER],\n },\n disabledDate: {\n type: RAW_FUNCTION,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n\n const props = options.props || {}\n\n const startTimestamp = toTimestamp(props.defaultStartDate || props.checkedStartDate)\n const endTimestamp = toTimestamp(props.defaultEndDate || props.checkedEndDate || startTimestamp)\n\n return {\n weeks: WEEKS,\n\n startTimestamp,\n endTimestamp: getEndTimestamp(startTimestamp, endTimestamp),\n\n // 点击后钉住的日期\n pinDate: UNDEFINED,\n // 当 pinDate 存在时,tempDate 是 hover 时临时选中的开始或结束日期\n tempDate: UNDEFINED,\n }\n\n },\n\n computed: {\n startDate(): SimpleDate {\n return toSimpleDate(this.get('startTimestamp'))\n },\n endDate(): SimpleDate {\n return toSimpleDate(this.get('endTimestamp'))\n },\n startDatasource(): DateRow[] {\n return createDateViewDatasource(this.get('startTimestamp'))\n },\n endDatasource(): DateRow[] {\n return createDateViewDatasource(this.get('endTimestamp'))\n },\n checkedStartTimestamp(): number {\n const checkedStartDate = this.get('checkedStartDate')\n return checkedStartDate\n ? toTimestamp(checkedStartDate)\n : 0\n },\n checkedEndTimestamp(): number {\n const checkedEndDate = this.get('checkedEndDate')\n return checkedEndDate\n ? toTimestamp(checkedEndDate)\n : 0\n },\n computedCheckedStartTimestamp(): number {\n const pinDate = this.get('pinDate')\n if (!pinDate) {\n return this.get('checkedStartTimestamp')\n }\n const tempDate = this.get('tempDate')\n return tempDate\n ? Math.min(pinDate.timestamp, tempDate.timestamp)\n : pinDate.timestamp\n },\n computedCheckedEndTimestamp(): number {\n const pinDate = this.get('pinDate')\n if (!pinDate) {\n return this.get('checkedEndTimestamp')\n }\n const tempDate = this.get('tempDate')\n return tempDate\n ? Math.max(pinDate.timestamp, tempDate.timestamp)\n : 0\n },\n },\n\n watchers: {\n checkedStartDate(value) {\n if (value) {\n this.set('startTimestamp', toTimestamp(value))\n }\n },\n checkedEndDate(value) {\n const startTimestamp = this.get('startTimestamp')\n if (startTimestamp && value) {\n this.set(\n 'endTimestamp',\n getEndTimestamp(startTimestamp, toTimestamp(value))\n )\n }\n }\n },\n\n filters: {\n isCurrentMonth(item: SimpleDate, base: SimpleDate) {\n return base.year === item.year && base.month === item.month\n },\n\n isEnabled(item: SimpleDate, disabledDate: ((item: SimpleDate) => boolean) | void) {\n return disabledDate\n ? disabledDate(item)\n : TRUE\n },\n },\n\n methods: {\n offsetStart(offset: number) {\n this.set(\n 'startTimestamp',\n offsetMonth(\n this.get('startTimestamp'),\n offset\n )\n )\n if (!this.get('splitPanel')) {\n this.set(\n 'endTimestamp',\n offsetMonth(\n this.get('endTimestamp'),\n offset\n )\n )\n }\n },\n offsetEnd(offset: number) {\n this.set(\n 'endTimestamp',\n offsetMonth(\n this.get('endTimestamp'),\n offset\n )\n )\n if (!this.get('splitPanel')) {\n this.set(\n 'startTimestamp',\n offsetMonth(\n this.get('startTimestamp'),\n offset\n )\n )\n }\n },\n hover(item: SimpleDate) {\n const pinDate = this.get('pinDate')\n if (pinDate) {\n this.set('tempDate', pinDate.timestamp !== item.timestamp ? item : UNDEFINED)\n }\n },\n leave() {\n this.set('tempDate', UNDEFINED)\n },\n click(item: SimpleDate) {\n\n const me = this\n const pinDate = me.get('pinDate')\n if (!pinDate) {\n me.set('pinDate', item)\n return\n }\n\n if (pinDate.timestamp === item.timestamp) {\n return\n }\n\n if (item.timestamp > pinDate.timestamp) {\n me.fire(\n {\n type: 'change',\n ns: 'range',\n },\n {\n start: pinDate,\n end: item,\n }\n )\n }\n else {\n me.fire(\n {\n type: 'change',\n ns: 'range',\n },\n {\n start: item,\n end: pinDate,\n }\n )\n }\n\n // 等外部更新完 start 和 end 再重置,避免闪烁\n me.nextTick(\n function () {\n me.set({\n pinDate: UNDEFINED,\n tempDate: UNDEFINED,\n })\n }\n )\n\n },\n\n },\n\n components: {\n Icon,\n }\n\n})\n","import Yox from 'yox'\n\nimport Icon from '../../icon/Icon'\nimport template from '../template/DateWeek.hbs'\n\nimport DateMonth from './DateMonth'\nimport DateYear from './DateYear'\n\nimport {\n WEEKS,\n RAW_TYPE_WEEK,\n RAW_TYPE_YEAR,\n RAW_TYPE_MONTH,\n\n DateRow,\n SimpleDate,\n toSimpleDate,\n toTimestamp,\n offsetMonth,\n createDateViewDatasource,\n} from '../util'\n\nimport {\n TRUE,\n FALSE,\n RAW_DATE,\n RAW_STRING,\n RAW_NUMBER,\n RAW_BOOLEAN,\n RAW_FUNCTION,\n RAW_STYLE_TYPE,\n} from '../../constant'\n\nexport default Yox.define({\n\n template,\n\n propTypes: {\n defaultDate: {\n type: [RAW_DATE, RAW_NUMBER],\n },\n checkedDate: {\n type: [RAW_DATE, RAW_NUMBER],\n },\n disabledDate: {\n type: RAW_FUNCTION,\n },\n canPickYear: {\n type: RAW_BOOLEAN,\n },\n canPickMonth: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n const props = options.props || {}\n return {\n type: RAW_TYPE_WEEK,\n RAW_TYPE_WEEK,\n RAW_TYPE_YEAR,\n RAW_TYPE_MONTH,\n\n weeks: WEEKS,\n timestamp: toTimestamp(props.defaultDate || props.checkedDate),\n }\n },\n\n computed: {\n date(): SimpleDate {\n const checkedDate = this.get('checkedDate')\n return toSimpleDate(\n checkedDate\n ? toTimestamp(checkedDate)\n : this.get('timestamp')\n )\n },\n datasource(): DateRow[] {\n const date = this.get('date')\n return createDateViewDatasource(date.timestamp)\n },\n checkedTimestamp(): number {\n const checkedDate = this.get('checkedDate')\n return checkedDate ? toTimestamp(checkedDate) : 0\n },\n },\n\n components: {\n Icon,\n DateYear,\n DateMonth,\n },\n\n filters: {\n isCurrentMonth(item: SimpleDate, date: SimpleDate) {\n return date.year === item.year && date.month === item.month\n },\n\n isEnabled(item: SimpleDate, disabledDate: ((item: SimpleDate) => boolean) | void) {\n return disabledDate\n ? disabledDate(item)\n : TRUE\n },\n },\n\n events: [\n {\n type: 'change',\n ns: 'year',\n listener(event, data) {\n event.stop()\n // @ts-ignore\n const date = new Date(this.get('timestamp'))\n date.setFullYear(data.year)\n // @ts-ignore\n this.set({\n type: RAW_TYPE_WEEK,\n timestamp: date.getTime()\n })\n }\n },\n {\n type: 'change',\n ns: 'month',\n listener(event, data) {\n event.stop()\n // @ts-ignore\n const date = new Date(this.get('timestamp'))\n date.setMonth(data.month - 1)\n // @ts-ignore\n this.set({\n type: RAW_TYPE_WEEK,\n timestamp: date.getTime()\n })\n }\n },\n ],\n\n methods: {\n offset(offset: number) {\n this.set(\n 'timestamp',\n offsetMonth(this.get('timestamp'), offset)\n )\n },\n click(colIndex: number) {\n\n const { start, end } = this.get(`datasource.${colIndex}`)\n\n this.fire(\n {\n type: 'change',\n ns: 'week',\n },\n {\n start,\n end,\n }\n )\n\n },\n }\n\n})\n","import Yox, { CustomEventInterface } from 'yox'\n\nimport Tag from '../tag/Tag'\nimport Popover from '../popover/Popover'\nimport DateView from './component/Date'\nimport DateRange from './component/DateRange'\nimport DateWeek from './component/DateWeek'\nimport DateMonth from './component/DateMonth'\nimport DateYear from './component/DateYear'\n\nimport template from './template/DatePicker.hbs'\n// import './style/DatePicker.styl'\n\nimport {\n TRUE,\n FALSE,\n UNDEFINED,\n RAW_STRING,\n RAW_DATE,\n RAW_ARRAY,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_FUNCTION,\n RAW_BOTTOM_START,\n RAW_SIZE_ARRAY,\n RAW_DEFAULT,\n RAW_PLACEMENT_ARRAY,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_ERROR,\n RAW_TYPE_WARNING,\n RAW_CUSTOM,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n RAW_TYPE_DATE,\n RAW_TYPE_DATE_RANGE,\n RAW_TYPE_WEEK,\n RAW_TYPE_YEAR,\n RAW_TYPE_MONTH,\n\n Shortcut,\n formatDate,\n SimpleDate,\n toTimestamp,\n toSimpleDate,\n} from './util'\n\nimport {\n oneOf,\n toPixel,\n} from '../util'\n\nimport {\n fireClickEvent,\n onClickEventByEnterPress,\n} from '../event'\n\nconst YEAR_FORMAT = 'yyyy'\nconst MONTH_FORMAT = 'yyyy-MM'\nconst DATE_FORMAT = 'yyyy-MM-dd'\n\nconst defaultFormat = {}\ndefaultFormat[RAW_TYPE_DATE] = DATE_FORMAT\ndefaultFormat[RAW_TYPE_DATE_RANGE] = DATE_FORMAT\ndefaultFormat[RAW_TYPE_WEEK] = DATE_FORMAT\ndefaultFormat[RAW_TYPE_MONTH] = MONTH_FORMAT\ndefaultFormat[RAW_TYPE_YEAR] = YEAR_FORMAT\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}DatePicker',\n\n propTypes: {\n type: {\n type: oneOf([RAW_TYPE_DATE, RAW_TYPE_DATE_RANGE, RAW_TYPE_WEEK, RAW_TYPE_YEAR, RAW_TYPE_MONTH]),\n value: RAW_TYPE_DATE,\n },\n status: {\n type: oneOf([RAW_TYPE_INFO, RAW_TYPE_SUCCESS, RAW_TYPE_ERROR, RAW_TYPE_WARNING]),\n },\n size: {\n type: oneOf(RAW_SIZE_ARRAY),\n value: RAW_DEFAULT,\n },\n splitPanel: {\n type: RAW_BOOLEAN,\n },\n defaultDate: {\n type: RAW_DATE,\n },\n value: {\n type: function (key: string, value: any) {\n\n }\n },\n shortcuts: {\n type: RAW_ARRAY,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n multiple: {\n type: RAW_BOOLEAN,\n },\n block: {\n type: RAW_BOOLEAN,\n },\n placement: {\n type: oneOf(RAW_PLACEMENT_ARRAY),\n value: RAW_BOTTOM_START,\n },\n placeholder: {\n type: RAW_STRING,\n value: '请选择日期...'\n },\n format: {\n type: RAW_STRING,\n },\n disabledDate: {\n type: RAW_FUNCTION,\n },\n showClear: {\n type: RAW_BOOLEAN,\n },\n width: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n const props = options.props || {}\n return {\n RAW_TYPE_DATE,\n RAW_TYPE_DATE_RANGE,\n RAW_TYPE_WEEK,\n RAW_TYPE_YEAR,\n RAW_TYPE_MONTH,\n RAW_CUSTOM,\n\n isFocus: FALSE,\n isVisible: FALSE,\n formatText: props.format || defaultFormat[props.type || RAW_TYPE_DATE]\n }\n },\n\n components: {\n Tag,\n Popover,\n DateView,\n DateRange,\n DateWeek,\n DateMonth,\n DateYear,\n },\n\n computed: {\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const width = this.get('width')\n if (width) {\n result.push({\n width: toPixel(width)\n })\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n defaultSimpleDate(): SimpleDate {\n const defaultDate = this.get('defaultDate')\n return toSimpleDate(toTimestamp(defaultDate))\n },\n formatedValues(): string[] {\n\n const value = this.get('value')\n const formatText = this.get('formatText')\n\n if (Yox.is.array(value)) {\n return value.map(function (date: Date) {\n return formatDate(date, formatText)\n })\n }\n else if (value) {\n return [formatDate(value, formatText)]\n }\n return []\n\n },\n },\n\n events: [\n {\n type: 'change',\n ns: 'date',\n listener(event, data) {\n event.stop()\n // @ts-ignore\n this.dateChange(data.timestamp)\n }\n },\n {\n type: 'change',\n ns: 'year',\n listener(event, data) {\n event.stop()\n const date = new Date()\n date.setFullYear(data.year)\n // @ts-ignore\n this.dateChange(toTimestamp(date), YEAR_FORMAT)\n }\n },\n {\n type: 'change',\n ns: 'month',\n listener(event, data: SimpleDate) {\n event.stop()\n const date = new Date()\n date.setFullYear(data.year)\n date.setMonth(data.month - 1)\n // @ts-ignore\n this.dateChange(toTimestamp(date), MONTH_FORMAT)\n }\n },\n {\n type: 'change',\n ns: 'week',\n listener(event, data: SimpleDate) {\n event.stop()\n // @ts-ignore\n this.dateRangeChange(data.start.timestamp, data.end.timestamp)\n }\n },\n {\n type: 'change',\n ns: 'range',\n listener(event, data: SimpleDate) {\n event.stop()\n // @ts-ignore\n this.dateRangeChange(data.start.timestamp, data.end.timestamp)\n }\n },\n {\n listener(event) {\n\n event.stop()\n\n // @ts-ignore\n this.set('isVisible', FALSE)\n\n },\n type: 'outside',\n ns: 'popover',\n }\n ],\n\n methods: {\n\n onClick(event?: CustomEventInterface) {\n this.toggle('isVisible')\n fireClickEvent(event)\n },\n\n onClearClick(event: CustomEventInterface) {\n\n // 停止冒泡,否则会展开下拉框\n event.stop()\n fireClickEvent(event)\n\n const value = this.get('multiple') ? [] : UNDEFINED\n\n this.set('value', value)\n\n this.fire(\n {\n type: 'clear',\n ns: 'datePicker',\n },\n TRUE\n )\n\n this.fireChange(value)\n\n },\n\n onItemRemove(event: CustomEventInterface, index: number) {\n\n event.stop()\n\n this.removeAt('value', index)\n this.fireChange(this.get('value'))\n\n },\n\n onShortcutClick(data: Shortcut) {\n\n const value = data.onClick.call(this)\n if (Yox.is.array(value)) {\n if (!value[0] || !value[1]) {\n Yox.logger.warn(`shortcuts value 传值错误`)\n return\n }\n this.dateRangeChange(\n toTimestamp(value[0]),\n toTimestamp(value[1])\n )\n }\n else {\n if (!value) {\n Yox.logger.warn(`shortcuts value 传值错误`)\n return\n }\n const type = this.get('type')\n if (type === RAW_TYPE_DATE_RANGE || type === RAW_TYPE_WEEK) {\n Yox.logger.warn(`shortcuts value 需返回数组类型`)\n return\n }\n this.dateChange(\n toTimestamp(value as any)\n )\n }\n },\n\n dateChange(timestamp: number, dateFormat = DATE_FORMAT) {\n\n const me = this\n const value = me.get('value')\n\n const date = new Date(timestamp)\n\n if (me.get('multiple')) {\n if (Yox.is.array(value)) {\n // 判断年月日是否存在\n const format = formatDate(date, dateFormat)\n let existed = FALSE\n Yox.array.each(\n value,\n function (item: Date) {\n if (format === formatDate(item, dateFormat)) {\n existed = TRUE\n return FALSE\n }\n }\n )\n if (!existed) {\n me.append('value', date)\n me.fireChange(me.get('value'))\n }\n }\n else {\n me.append('value', date)\n me.fireChange(me.get('value'))\n }\n }\n else {\n me.set('value', date)\n me.fireChange(date)\n }\n\n if (!me.get('multiple')) {\n me.nextTick(\n function () {\n me.set('isVisible', FALSE)\n }\n )\n }\n\n },\n\n dateRangeChange(start: number, end: number) {\n\n const value = [new Date(start), new Date(end)]\n\n this.set('value', value)\n this.fireChange(value)\n\n if (!this.get('multiple')) {\n this.nextTick(\n function () {\n this.set('isVisible', FALSE)\n }\n )\n }\n\n },\n\n fireChange(value) {\n this.fire(\n {\n type: 'change',\n ns: 'datePicker',\n },\n {\n value,\n }\n )\n }\n },\n\n afterUpdate() {\n if (this.get('isVisible') && this.get('multiple')) {\n const overlay = this.$refs.overlay as any\n overlay.refreshOverlayRect()\n }\n },\n\n afterMount() {\n onClickEventByEnterPress(this)\n }\n\n})\n","import {\n padStart,\n scrollTo,\n} from '../util'\n\nexport function toTimeProps(value: Date | number | void, hourList: number[], minuteList: number[], secondList: number[]) {\n\n const result = {\n hour: -1,\n minute: -1,\n second: -1,\n hourIndex: -1,\n minuteIndex: -1,\n secondIndex: -1,\n text: '',\n }\n\n let date: Date\n\n if (value instanceof Date) {\n date = value\n }\n else if (typeof value === 'number' && value > 0) {\n date = new Date(value)\n }\n\n if (date) {\n const hour = date.getHours()\n const minute = date.getMinutes()\n const second = date.getSeconds()\n\n const hourIndex = hourList.indexOf(hour)\n const minuteIndex = minuteList.indexOf(minute)\n const secondIndex = secondList.indexOf(second)\n\n if (hourIndex >= 0) {\n result.hour = hour\n result.hourIndex = hourIndex\n }\n if (minuteIndex >= 0) {\n result.minute = minute\n result.minuteIndex = minuteIndex\n }\n if (secondIndex >= 0) {\n result.second = second\n result.secondIndex = secondIndex\n }\n\n result.text = formatTime(\n result.hour,\n result.minute,\n secondList.length > 0 ? result.second : -1\n )\n }\n\n return result\n\n}\n\nexport function formatTime(hour: number, minute: number, second: number) {\n\n const list: string[] = []\n\n if (hour >= 0) {\n list.push(\n padStart(hour)\n )\n }\n if (minute >= 0) {\n list.push(\n padStart(minute)\n )\n }\n if (second >= 0) {\n list.push(\n padStart(second)\n )\n }\n\n return list.join(':')\n\n}\n\nexport function createRangeList(start: number, end: number, step: number) {\n const list: number[] = []\n for (let i = start; i <= end; i += step) {\n list.push(i)\n }\n return list\n}\n\nexport function getValidTimeItemIndex(listLength: number, index: number) {\n return index >= 0 && index < listLength\n ? index\n : -1\n}\n\nexport function scrollTimeItemInToView(listElement: HTMLElement, index: number, animated?: boolean) {\n\n const itemElement = listElement.children[index]\n if (!itemElement) {\n return\n }\n\n scrollTo(\n listElement,\n listElement.scrollTop,\n (itemElement as HTMLElement).offsetHeight * index,\n animated ? 600 : 0\n )\n\n}","import Yox from 'yox'\n\nimport Button from '../button/Button'\nimport ResizeObserver from '../resize-observer/ResizeObserver'\nimport template from './template/TimePanel.hbs'\n\nimport {\n TRUE,\n RAW_ARRAY,\n RAW_NUMBER,\n} from '../constant'\n\nimport {\n getNowTime,\n padStart,\n} from '../util'\n\nimport {\n getValidTimeItemIndex,\n scrollTimeItemInToView,\n} from './util'\n\nexport default Yox.define({\n\n template,\n\n propTypes: {\n hourList: {\n type: RAW_ARRAY,\n required: TRUE,\n },\n hourIndex: {\n type: RAW_NUMBER,\n },\n minuteList: {\n type: RAW_ARRAY,\n required: TRUE,\n },\n minuteIndex: {\n type: RAW_NUMBER,\n },\n secondList: {\n type: RAW_ARRAY,\n },\n secondIndex: {\n type: RAW_NUMBER,\n },\n },\n\n computed: {\n showSecond(): boolean {\n return this.get('secondList.length') > 0\n },\n validHourIndex(): number {\n return getValidTimeItemIndex(\n this.get('hourList.length'),\n this.get('hourIndex')\n )\n },\n validMinuteIndex(): number {\n return getValidTimeItemIndex(\n this.get('minuteList.length'),\n this.get('minuteIndex')\n )\n },\n validSecondIndex(): number {\n return getValidTimeItemIndex(\n this.get('secondList.length'),\n this.get('secondIndex')\n )\n },\n hasValue(): boolean {\n return this.get('validHourIndex') >= 0\n && this.get('validMinuteIndex') >= 0\n && (!this.get('showSecond') || this.get('validSecondIndex') >= 0)\n },\n },\n\n watchers: {\n hourIndex() {\n this.scrollHourIntoView(TRUE)\n },\n minuteIndex() {\n this.scrollMinuteIntoView(TRUE)\n },\n secondIndex() {\n this.scrollSecondIntoView(TRUE)\n },\n },\n\n events: {\n resize: {\n listener(event, data) {\n if (event.phase !== Yox.Event.PHASE_UPWARD) {\n return\n }\n event.stop()\n if (data.height > 0) {\n this.scrollHourIntoView()\n this.scrollMinuteIntoView()\n this.scrollSecondIntoView()\n }\n },\n ns: 'resizeObserver'\n }\n },\n\n filters: {\n padStart,\n },\n\n methods: {\n scrollHourIntoView(animated?: boolean) {\n const hourIndex = this.get('hourIndex')\n if (hourIndex >= 0) {\n scrollTimeItemInToView(\n this.$refs.hourList as HTMLElement,\n hourIndex,\n animated\n )\n }\n },\n scrollMinuteIntoView(animated?: boolean) {\n const minuteIndex = this.get('minuteIndex')\n if (minuteIndex >= 0) {\n scrollTimeItemInToView(\n this.$refs.minuteList as HTMLElement,\n minuteIndex,\n animated\n )\n }\n },\n scrollSecondIntoView(animated?: boolean) {\n const secondIndex = this.get('secondIndex')\n if (secondIndex >= 0) {\n scrollTimeItemInToView(\n this.$refs.secondList as HTMLElement,\n secondIndex,\n animated\n )\n }\n },\n onHourClick(hourIndex: number) {\n\n let minuteIndex = this.get('validMinuteIndex')\n if (minuteIndex < 0) {\n minuteIndex = 0\n }\n\n let secondIndex = this.get('validSecondIndex')\n if (this.get('showSecond') && secondIndex < 0) {\n secondIndex = 0\n }\n\n this.fireChange(hourIndex, minuteIndex, secondIndex)\n\n },\n onMinuteClick(minuteIndex: number) {\n\n let hourIndex = this.get('validHourIndex')\n if (hourIndex < 0) {\n hourIndex = 0\n }\n\n let secondIndex = this.get('validSecondIndex')\n if (this.get('showSecond') && secondIndex < 0) {\n secondIndex = 0\n }\n\n this.fireChange(hourIndex, minuteIndex, secondIndex)\n\n },\n onSecondClick(secondIndex: number) {\n\n let hourIndex = this.get('validHourIndex')\n if (hourIndex < 0) {\n hourIndex = 0\n }\n\n let minuteIndex = this.get('validMinuteIndex')\n if (minuteIndex < 0) {\n minuteIndex = 0\n }\n\n this.fireChange(hourIndex, minuteIndex, secondIndex)\n\n },\n onNowClick() {\n\n const date = new Date(getNowTime())\n\n const hour = date.getHours()\n let hourIndex = -1\n\n const hourList = this.get('hourList')\n if (hourList) {\n hourIndex = hourList.indexOf(hour)\n }\n\n const minute = date.getMinutes()\n let minuteIndex = -1\n\n const minuteList = this.get('minuteList')\n if (minuteList) {\n minuteIndex = minuteList.indexOf(minute)\n }\n\n const second = date.getMinutes()\n let secondIndex = -1\n\n const secondList = this.get('secondList')\n if (this.get('showSecond') && secondList) {\n secondIndex = secondList.indexOf(second)\n }\n\n this.fireChange(hourIndex, minuteIndex, secondIndex)\n\n this.fire(\n {\n type: 'submit',\n ns: 'timePanel',\n },\n {\n hour,\n minute,\n second,\n }\n )\n\n },\n onSubmitClick() {\n\n let hour = -1\n let minute = -1\n let second = -1\n\n const hourIndex = this.get('validHourIndex')\n if (hourIndex >= 0) {\n hour = this.get('hourList')[hourIndex]\n }\n\n const minuteIndex = this.get('validMinuteIndex')\n if (minuteIndex >= 0) {\n minute = this.get('minuteList')[minuteIndex]\n }\n\n const secondIndex = this.get('validSecondIndex')\n if (this.get('showSecond') && secondIndex >= 0) {\n second = this.get('secondList')[secondIndex]\n }\n\n this.fire(\n {\n type: 'submit',\n ns: 'timePanel',\n },\n {\n hour,\n minute,\n second,\n }\n )\n\n\n },\n fireChange(hourIndex: number, minuteIndex: number, secondIndex: number) {\n this.fire(\n {\n type: 'change',\n ns: 'timePanel',\n },\n {\n hourIndex,\n minuteIndex,\n secondIndex,\n }\n )\n },\n },\n\n components: {\n Button,\n ResizeObserver,\n },\n\n})\n","import Yox, { CustomEventInterface } from 'yox'\n\nimport Popover from '../popover/Popover'\nimport TimePanel from './TimePanel'\n\nimport template from './template/TimePicker.hbs'\n// import './style/TimePicker.styl'\n\nimport {\n FALSE,\n UNDEFINED,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_BOTTOM_START,\n RAW_SIZE_ARRAY,\n RAW_DEFAULT,\n RAW_PLACEMENT_ARRAY,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_ERROR,\n RAW_TYPE_WARNING,\n RAW_CUSTOM,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n toTimeProps,\n formatTime,\n createRangeList,\n} from './util'\n\nimport {\n oneOf,\n toPixel,\n toNumber,\n} from '../util'\n\nimport {\n fireClickEvent,\n onClickEventByEnterPress,\n} from '../event'\n\nconst DEFAULT_HOUR_STEP = 1\nconst DEFAULT_MINUTE_STEP = 1\nconst DEFAULT_SECOND_STEP = 1\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}TimePicker',\n\n propTypes: {\n status: {\n type: oneOf([RAW_TYPE_INFO, RAW_TYPE_SUCCESS, RAW_TYPE_ERROR, RAW_TYPE_WARNING]),\n },\n size: {\n type: oneOf(RAW_SIZE_ARRAY),\n value: RAW_DEFAULT,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n block: {\n type: RAW_BOOLEAN,\n },\n placement: {\n type: oneOf(RAW_PLACEMENT_ARRAY),\n value: RAW_BOTTOM_START,\n },\n defaultValue: {\n type: function (key: string, value: any) {\n\n }\n },\n placeholder: {\n type: RAW_STRING,\n value: '请选择时间...'\n },\n showClear: {\n type: RAW_BOOLEAN,\n },\n format: {\n type: RAW_STRING,\n },\n hourStep: {\n type: RAW_NUMERIC,\n },\n minuteStep: {\n type: RAW_NUMERIC,\n },\n secondStep: {\n type: RAW_NUMERIC,\n },\n width: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n\n const props: Record = toTimeProps(\n options.props && options.props.defaultValue,\n this.get('hourList'),\n this.get('minuteList'),\n this.get('secondList')\n )\n\n props.isFocus = FALSE\n props.isVisible = FALSE\n props.RAW_CUSTOM = RAW_CUSTOM\n\n return props\n },\n\n components: {\n Popover,\n TimePanel,\n },\n\n computed: {\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const width = this.get('width')\n if (width) {\n result.push({\n width: toPixel(width)\n })\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n needSecond(): boolean {\n return this.get('format') !== 'HH:mm'\n },\n hourList(): number[] {\n const hourStep = toNumber(this.get('hourStep'), DEFAULT_HOUR_STEP)\n return createRangeList(0, 23, hourStep)\n },\n minuteList(): number[] {\n const minuteStep = toNumber(this.get('minuteStep'), DEFAULT_MINUTE_STEP)\n return createRangeList(0, 59, minuteStep)\n },\n secondList(): number[] {\n if (this.get('needSecond')) {\n const secondStep = toNumber(this.get('secondStep'), DEFAULT_SECOND_STEP)\n return createRangeList(0, 59, secondStep)\n }\n return []\n },\n hasValue(): boolean {\n return this.get('hour') >= 0\n && this.get('minute') >= 0\n && (!this.get('needSecond') || this.get('second') >= 0)\n }\n },\n\n events: {\n change: {\n listener(event, data) {\n\n event.stop()\n\n const { hourIndex, minuteIndex, secondIndex } = data\n\n this.set({\n hourIndex,\n minuteIndex,\n secondIndex,\n text: formatTime(\n this.get('hourList')[hourIndex],\n this.get('minuteList')[minuteIndex],\n this.get('secondList')[secondIndex]\n )\n })\n\n },\n ns: 'timePanel',\n },\n submit: {\n listener(event, data) {\n\n event.stop()\n\n const { hour, minute, second } = data\n\n this.set({\n hour,\n minute,\n second,\n isVisible: FALSE,\n text: formatTime(hour, minute, second),\n })\n\n this.fireChange(hour, minute, second)\n\n },\n ns: 'timePanel',\n },\n outside: {\n listener(event) {\n\n event.stop()\n\n this.set({\n isVisible: FALSE,\n text: formatTime(\n this.get('hour'),\n this.get('minute'),\n this.get('second')\n )\n })\n\n },\n ns: 'popover',\n }\n },\n\n methods: {\n\n onClick(event?: CustomEventInterface) {\n this.toggle('isVisible')\n fireClickEvent(event)\n },\n\n onClearClick(event: CustomEventInterface) {\n\n // 停止冒泡,否则会展开下拉框\n event.stop()\n fireClickEvent(event)\n\n const props = toTimeProps(\n UNDEFINED,\n this.get('hourList'),\n this.get('minuteList'),\n this.get('secondList')\n )\n\n this.set(props)\n\n this.fireChange(props.hour, props.minute, props.second)\n\n },\n\n fireChange(hour: number, minute: number, second: number) {\n\n const data: Record = {\n hour,\n minute,\n }\n\n if (this.get('needSecond')) {\n data.second = second\n }\n\n this.fire(\n {\n type: 'change',\n ns: 'timePicker',\n },\n data\n )\n\n }\n\n },\n\n afterMount() {\n onClickEventByEnterPress(this)\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/LoadingBar.hbs'\n// import './style/LoadingBar.styl'\n\nimport {\n TRUE,\n UNDEFINED,\n RAW_STRING,\n RAW_NUMBER,\n RAW_NUMERIC,\n RAW_BOOLEAN,\n RAW_TYPE_ARRAY,\n RAW_TYPE_PRIMARY,\n RAW_STYLE_TYPE,\n RAW_EVENT_BEFORE_DESTROY,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n toNumber,\n toPercent,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}LoadingBar',\n\n propTypes: {\n type: {\n type: oneOf(RAW_TYPE_ARRAY),\n value: RAW_TYPE_PRIMARY,\n },\n height: {\n type: RAW_NUMERIC,\n value: 2,\n },\n percent: {\n type: RAW_NUMBER,\n value: 0,\n },\n color: {\n type: RAW_STRING,\n },\n fixed: {\n type: RAW_BOOLEAN,\n },\n manual: {\n type: RAW_BOOLEAN,\n },\n outside: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n inlineStyle() {\n\n const result: object[] = []\n\n const outside = this.get('outside')\n if (outside) {\n const height = toNumber(this.get('height'))\n result.push({\n top: toPixel(-height)\n })\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n\n },\n indicatorStyle() {\n\n const percent = this.get('percent')\n const height = this.get('height')\n const color = this.get('color')\n\n const result: Record = {\n width: toPercent(percent),\n height: toPixel(height),\n }\n\n if (color) {\n result.color = color\n }\n\n return result\n\n }\n },\n\n afterMount() {\n\n const me = this as any\n\n let timer: number | undefined\n\n const next = function () {\n timer = window.setTimeout(\n function () {\n timer = UNDEFINED\n const value = me.increase('percent', Math.floor(Math.random() * 10), 98)\n if (value < 98) {\n next()\n }\n },\n 300\n )\n }\n\n me.watch(\n 'manual',\n function (manual: boolean) {\n if (manual) {\n if (timer) {\n clearTimeout(timer)\n timer = UNDEFINED\n }\n }\n else {\n next()\n }\n },\n TRUE\n )\n\n const destroy = function (component: any) {\n if (component === me) {\n if (timer) {\n clearTimeout(timer)\n timer = UNDEFINED\n }\n Yox.lifeCycle.off(RAW_EVENT_BEFORE_DESTROY, destroy)\n }\n }\n Yox.lifeCycle.on(RAW_EVENT_BEFORE_DESTROY, destroy)\n\n }\n\n})","import { DOCUMENT, NULL, TRUE } from '../constant'\nimport { formatMillisecond } from '../util'\n\nexport const STATUS_UPLOADING = 'uploading'\nexport const STATUS_ERROR = 'error'\nexport const STATUS_FAILURE = 'failure'\n\nconst KB = 1024\nconst MB = 1024 * KB\nconst GB = 1024 * MB\n\nconst formatDurationOptinos = {\n format: 'd:HH:mm:ss',\n trimDay: TRUE,\n trimHour: TRUE,\n}\n\nexport function readLocalFile(item) {\n return new Promise(\n function (resolve) {\n const { file } = item\n if (file.type.indexOf('image') >= 0) {\n const reader = new FileReader()\n reader.onload = function (event: any) {\n\n const base64 = event.target.result as string\n item.base64 = base64\n\n const image = new Image()\n image.src = base64\n image.onload = function () {\n item.width = image.naturalWidth\n item.height = image.naturalHeight\n image.onload = image.onerror = NULL\n resolve(item)\n }\n image.onerror = function () {\n item.status = STATUS_ERROR\n item.message = 'error'\n image.onload = image.onerror = NULL\n resolve(item)\n }\n }\n reader.onerror = function () {\n item.status = STATUS_ERROR\n item.message = 'error'\n resolve(item)\n }\n reader.readAsDataURL(file)\n }\n else {\n const video = DOCUMENT.createElement('video')\n video.preload = 'metadata'\n video.src = URL.createObjectURL(file)\n video.onloadedmetadata = function () {\n URL.revokeObjectURL(video.src)\n item.width = video.videoWidth\n item.height = video.videoHeight\n item.duration = video.duration\n video.onloadedmetadata = video.onerror = NULL\n resolve(item)\n }\n video.onerror = function () {\n item.status = STATUS_ERROR\n item.message = 'error'\n video.onloadedmetadata = video.onerror = NULL\n resolve(item)\n }\n }\n }\n )\n}\n\nexport function validateFile(item: any, minSize: number, maxSize: number,\n minRatio: number, maxRatio: number,minWidth: number, maxWidth: number,\n minHeight: number, maxHeight: number, minDuration: number, maxDuration: number) {\n\n let errors = []\n if (minSize > 0) {\n if (item.size < minSize) {\n errors.push(\n `大小不能小于 ${formatFileSize(minSize)}`\n )\n }\n }\n if (maxSize > 0) {\n if (item.size > maxSize) {\n errors.push(\n `大小不能超过 ${formatFileSize(maxSize)}`\n )\n }\n }\n if (item.height > 0) {\n const ratio = item.width / item.height\n if (minRatio > 0) {\n if (ratio < minRatio) {\n errors.push(\n `宽高比不能小于 ${minRatio}`\n )\n }\n }\n if (maxRatio > 0) {\n if (ratio > maxRatio) {\n errors.push(\n `宽高比不能大于 ${maxRatio}`\n )\n }\n }\n }\n if (minWidth > 0) {\n if (item.width < minWidth) {\n errors.push(\n `宽度不能小于 ${minWidth}px`\n )\n }\n }\n if (minHeight > 0) {\n if (item.height < minHeight) {\n errors.push(\n `高度不能小于 ${minHeight}px`\n )\n }\n }\n if (maxWidth > 0) {\n if (item.width > maxWidth) {\n errors.push(\n `宽度不能大于 ${maxWidth}px`\n )\n }\n }\n if (maxHeight > 0) {\n if (item.height > maxHeight) {\n errors.push(\n `高度不能大于 ${maxHeight}px`\n )\n }\n }\n if (minDuration > 0) {\n if (item.duration < minDuration) {\n errors.push(\n `时长不能小于 ${formatMillisecond(minDuration * 1000, formatDurationOptinos)}`\n )\n }\n }\n if (maxDuration > 0) {\n if (item.duration > maxDuration) {\n errors.push(\n `时长不能超过 ${formatMillisecond(maxDuration * 1000, formatDurationOptinos)}`\n )\n }\n }\n\n return errors\n\n}\n\nexport function formatFileSize(size: number) {\n if (size >= GB) {\n return (size / GB).toFixed(1) + ' G'\n }\n if (size >= MB) {\n return (size / MB).toFixed(1) + ' MB'\n }\n return (size / KB).toFixed(1) + ' KB'\n}\n","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/ImagePicker.hbs'\n// import './style/ImagePicker.styl'\n\nimport Add from '../add/Add'\nimport Icon from '../icon/Icon'\nimport Space from '../space/Space'\nimport Button from '../button/Button'\nimport Upload from '../upload/Upload'\nimport Closable from '../closable/Closable'\nimport LoadingBar from '../loading-bar/LoadingBar'\n\nimport {\n TRUE,\n FALSE,\n RAW_ARRAY,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_FUNCTION,\n RAW_IMAGE_ACCEPT,\n RAW_STYLE_TYPE,\n RAW_STRETCH,\n RAW_CONTAIN,\n RAW_ALWAYS,\n RAW_HOVER,\n RAW_NEVER,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n toNumber,\n spaceListStyle,\n spaceItemStyle,\n} from '../util'\n\nimport {\n STATUS_UPLOADING,\n STATUS_ERROR,\n STATUS_FAILURE,\n readLocalFile,\n formatFileSize,\n validateFile,\n} from './util'\n\nconst CLASS_CARD_MOUSE_ENTER = '${prefix}image-picker-card-mouse-enter'\nconst CLASS_CARD_DRAG_ENTER = '${prefix}image-picker-card-drag-enter'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}ImagePicker',\n\n propTypes: {\n imageList: {\n type: RAW_ARRAY,\n required: TRUE,\n },\n imageWidth: {\n type: RAW_NUMERIC,\n value: 80,\n },\n imageHeight: {\n type: RAW_NUMERIC,\n value: 80,\n },\n imageMode: {\n type: oneOf([RAW_STRETCH, RAW_CONTAIN]),\n value: RAW_STRETCH,\n },\n gap: {\n type: RAW_ARRAY,\n value: [8, 10],\n },\n minSize: {\n type: RAW_NUMERIC,\n },\n maxSize: {\n type: RAW_NUMERIC,\n },\n maxCount: {\n type: RAW_NUMERIC,\n },\n minRatio: {\n type: RAW_NUMERIC,\n },\n maxRatio: {\n type: RAW_NUMERIC,\n },\n minWidth: {\n type: RAW_NUMERIC,\n },\n maxWidth: {\n type: RAW_NUMERIC,\n },\n minHeight: {\n type: RAW_NUMERIC,\n },\n maxHeight: {\n type: RAW_NUMERIC,\n },\n minDuration: {\n type: RAW_NUMERIC,\n },\n maxDuration: {\n type: RAW_NUMERIC,\n },\n accept: {\n type: RAW_STRING,\n value: RAW_IMAGE_ACCEPT,\n },\n formatImageUrl: {\n type: RAW_FUNCTION,\n },\n cropImage: {\n type: RAW_FUNCTION,\n },\n uploadTitle: {\n type: RAW_STRING,\n },\n uploadingTitle: {\n type: RAW_STRING,\n },\n uploadImage: {\n type: RAW_FUNCTION,\n },\n showSize: {\n type: oneOf([RAW_ALWAYS, RAW_HOVER, RAW_NEVER]),\n value: RAW_ALWAYS,\n },\n readOnly: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n const me = this\n return {\n RAW_NEVER,\n STATUS_UPLOADING,\n STATUS_ERROR,\n STATUS_FAILURE,\n draggingIndex: -1,\n uploadingCount: 0,\n beforeReuploadImage(data) {\n\n const { index, fileList } = data\n\n readLocalFile(fileList[0]).then(function (item) {\n\n me.validateImageList([item])\n\n const reupload = me.$refs.reupload as any\n reupload.reset()\n\n me.replaceItem(item, index)\n\n })\n\n },\n beforeUploadImage(data) {\n const restCount = me.get('restCount')\n const fileList = data.fileList\n\n // 校验可选数量\n if (fileList.length > restCount) {\n if (me.get('isVideoUploader')) {\n me.fireError(`仅可以选择 ${restCount} 个视频`)\n }\n else {\n me.fireError(`仅可以选择 ${restCount} 张图片`)\n }\n return\n }\n\n Promise.all(\n fileList.map(readLocalFile)\n )\n .then(function (newList: any[]) {\n\n me.validateImageList(newList)\n\n const upload = me.$refs.upload as any\n upload.reset()\n\n me.appendItems(newList)\n\n })\n }\n }\n },\n\n computed: {\n needSize(): boolean {\n const showSize = this.get('showSize')\n return showSize && showSize !== RAW_NEVER\n },\n isVideoUploader(): boolean {\n const accept = this.get('accept')\n return accept ? accept.indexOf('video') >= 0 : FALSE\n },\n uploadText(): string {\n const uploadTitle = this.get('uploadTitle')\n const isVideoUploader = this.get('isVideoUploader')\n return uploadTitle || (isVideoUploader ? '上传视频' : '上传图片')\n },\n restCount(): number {\n const imageCount = this.get('imageList.length')\n const maxCount = this.get('maxCount')\n return maxCount - imageCount\n },\n canDraggable(): boolean {\n const uploadingCount = this.get('uploadingCount')\n const readOnly = this.get('readOnly')\n const imageList = this.get('imageList')\n return !uploadingCount && !readOnly && imageList.length > 1\n },\n inlineStyle(): object[] | void {\n return spaceListStyle(\n this.get('gap'),\n FALSE,\n TRUE,\n this.get('style')\n )\n },\n imageItemStyle(): Record | void {\n const imageWidth = this.get('imageWidth')\n const imageHeight = this.get('imageHeight')\n return spaceItemStyle(\n this.get('gap'),\n FALSE,\n TRUE,\n {\n width: toPixel(imageWidth),\n height: toPixel(imageHeight),\n }\n )\n },\n },\n\n filters: {\n formatFileSize,\n },\n\n methods: {\n handleImageClick(image: object, index: number) {\n this.fire(\n {\n type: 'preview',\n ns: 'imagePicker'\n },\n {\n image,\n index,\n }\n )\n },\n getImageIndexById(id: number) {\n const imageList = this.get('imageList')\n for (let i = 0, len = imageList.length; i < len; i++) {\n if (id === imageList[i].id) {\n return i\n }\n }\n return -1\n },\n validateImageList(imageList: any[]) {\n\n const me = this\n\n const minSize = toNumber(me.get('minSize'))\n const maxSize = toNumber(me.get('maxSize'))\n\n const minRatio = toNumber(me.get('minRatio'))\n const maxRatio = toNumber(me.get('maxRatio'))\n\n const minWidth = toNumber(me.get('minWidth'))\n const minHeight = toNumber(me.get('minHeight'))\n\n const maxWidth = toNumber(me.get('maxWidth'))\n const maxHeight = toNumber(me.get('maxHeight'))\n\n const minDuration = toNumber(me.get('minDuration'))\n const maxDuration = toNumber(me.get('maxDuration'))\n\n for (let i = 0, len = imageList.length; i < len; i++) {\n\n const item = imageList[i]\n\n const errors = validateFile(\n item, minSize, maxSize, minRatio, maxRatio,\n minWidth, maxWidth, minHeight, maxHeight, minDuration, maxDuration\n )\n if (errors.length) {\n item.status = STATUS_ERROR\n item.message = errors.join('
')\n }\n\n }\n\n },\n checkReady() {\n\n const result = {\n hasLocal: FALSE,\n hasUploading: FALSE,\n hasError: FALSE,\n }\n\n const imageList = this.get('imageList')\n for (let i = 0, len = imageList.length; i < len; i++) {\n if (imageList[i].status === STATUS_UPLOADING) {\n result.hasUploading = TRUE\n }\n else if (imageList[i].status === STATUS_ERROR || imageList[i].status === STATUS_FAILURE) {\n result.hasError = TRUE\n }\n if (!imageList[i].url) {\n result.hasLocal = TRUE\n }\n }\n\n return result\n\n },\n appendItems(items: any[]) {\n\n const me = this\n const imageList = me.copy(me.get('imageList'))\n const length = imageList.length\n\n items.forEach(\n function (item) {\n imageList.push(item)\n }\n )\n\n me.set('imageList', imageList)\n me.fireChange()\n\n items.forEach(\n function (item: any, index) {\n me.uploadItem(item.id, length + index)\n }\n )\n\n },\n replaceItem(item: any, index: number) {\n\n const me = this\n const imageList = me.copy(me.get('imageList'))\n\n imageList.splice(index, 1, item)\n\n me.set('imageList', imageList)\n me.fireChange()\n\n me.uploadItem(item.id, index)\n\n },\n removeItem(event: CustomEventInterface, index: number) {\n event.stop()\n this.removeAt('imageList', index)\n this.fireChange()\n },\n upload() {\n\n const me = this\n const imageList = me.get('imageList')\n\n Yox.array.each(\n imageList,\n function (item: any, index: number) {\n me.uploadItem(item.id, index)\n }\n )\n\n },\n uploadItem(id: number, index: number) {\n\n const me = this\n\n const item = me.get(`imageList.${index}`)\n // 如果校验未通过,或者已上传成功,则直接返回\n if (item.status === STATUS_ERROR || item.url) {\n return\n }\n\n const uploadHandler = function (item) {\n\n const uploadImage = me.get('uploadImage')\n\n me.increase('uploadingCount')\n\n uploadImage({\n id: item.id,\n file: item.file,\n onStart() {\n const index = me.getImageIndexById(id)\n if (index >= 0) {\n me.set(`imageList.${index}.status`, STATUS_UPLOADING)\n me.set(`imageList.${index}.progress`, 0)\n me.fireChange()\n }\n },\n onError(error: string) {\n const index = me.getImageIndexById(id)\n if (index >= 0) {\n me.set(`imageList.${index}.status`, STATUS_FAILURE)\n me.set(`imageList.${index}.message`, error || '上传失败')\n me.decrease('uploadingCount')\n me.fireChange()\n }\n },\n onProgress(progress: number) {\n const index = me.getImageIndexById(id)\n if (index >= 0) {\n me.set(`imageList.${index}.progress`, progress)\n me.fireChange()\n }\n },\n onSuccess(data) {\n const index = me.getImageIndexById(id)\n if (index >= 0) {\n me.set(`imageList.${index}`, data)\n me.decrease('uploadingCount')\n me.fireChange()\n }\n }\n })\n\n }\n\n const cropImage = me.get('cropImage')\n\n if (item.base64 && cropImage) {\n cropImage({\n index,\n base64: item.base64,\n callback(result) {\n Yox.object.extend(item, result)\n uploadHandler(item)\n }\n })\n }\n else {\n uploadHandler(item)\n }\n\n },\n fireError(error: string) {\n this.fire(\n {\n type: 'error',\n ns: 'imagePicker'\n },\n {\n error\n }\n )\n },\n fireChange() {\n this.fire(\n {\n type: 'change',\n ns: 'imagePicker'\n },\n {\n imageList: this.get('imageList')\n }\n )\n },\n addImgWrapperItemClass(index: number, className: string) {\n const element = this.$el as HTMLElement\n const targetChild = element.children[index]\n\n if (targetChild) {\n Yox.dom.addClass(targetChild as HTMLElement, className)\n }\n },\n removeImgWrapperItemClass(index: number, className: string) {\n const element = this.$el as HTMLElement\n const targetChild = element.children[index]\n\n if (targetChild) {\n Yox.dom.removeClass(targetChild as HTMLElement, className)\n }\n },\n handleMouseEnter(index: number) {\n // https://stackoverflow.com/questions/11989289/css-html5-hover-state-remains-after-drag-and-drop\n // drag 拖拽的时候,hover 状态仍然会保留,改用监听 mouseenter 和 mouseleave 来添加删除 class\n // 并在 dragstart 的时候删除添加的 class,使 active 状态失效\n this.addImgWrapperItemClass(index, CLASS_CARD_MOUSE_ENTER)\n },\n handleMouseLeave(index: number) {\n this.removeImgWrapperItemClass(index, CLASS_CARD_MOUSE_ENTER)\n },\n handleDragStart(index: number) {\n this.set('draggingIndex', index)\n this.removeImgWrapperItemClass(index, CLASS_CARD_MOUSE_ENTER)\n },\n handleDragEnd() {\n // https://stackoverflow.com/questions/38111946/is-there-a-defined-ordering-between-dragend-and-drop-events\n // dragend 事件会在 drop 事件之后触发,做一些清理工作\n this.set('draggingIndex', -1)\n },\n handleDragOver(index: number) {\n const draggingIndex = this.get('draggingIndex')\n if (draggingIndex < 0) {\n return FALSE\n }\n\n if (draggingIndex !== index) {\n this.addImgWrapperItemClass(index, CLASS_CARD_DRAG_ENTER)\n }\n\n // https://hijiangtao.github.io/2020/05/04/Drag-and-Drop-note/\n // 返回 false, 阻止浏览器这种默认行为\n return FALSE\n },\n handleDragEnter(index: number) {\n const draggingIndex = this.get('draggingIndex')\n if (draggingIndex < 0) {\n return FALSE\n }\n\n if (draggingIndex !== index) {\n this.addImgWrapperItemClass(index, CLASS_CARD_DRAG_ENTER)\n }\n\n return FALSE\n },\n handleDragLeave(index: number) {\n const draggingIndex = this.get('draggingIndex')\n if (draggingIndex < 0) {\n return\n }\n\n this.removeImgWrapperItemClass(index, CLASS_CARD_DRAG_ENTER)\n },\n handleDragDrop(index: number) {\n const draggingIndex = this.get('draggingIndex')\n if (draggingIndex < 0) {\n return FALSE\n }\n\n const imageList = this.get('imageList')\n\n if (draggingIndex >= 0\n && draggingIndex < imageList.length\n && draggingIndex !== index\n ) {\n this.removeImgWrapperItemClass(index, CLASS_CARD_DRAG_ENTER)\n\n const startImageItem = imageList[draggingIndex]\n const newImageList = this.copy(imageList)\n\n if (draggingIndex < index) {\n newImageList.splice(index + 1, 0, startImageItem)\n newImageList.splice(draggingIndex, 1)\n }\n else {\n newImageList.splice(index, 0, startImageItem)\n newImageList.splice(draggingIndex + 1, 1)\n }\n\n this.set('imageList', newImageList)\n this.fireChange()\n }\n\n this.set('draggingIndex', -1)\n\n return FALSE\n },\n },\n\n components: {\n Add,\n Icon,\n Space,\n Button,\n Upload,\n Closable,\n LoadingBar,\n },\n\n})\n","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/Image.hbs'\n// import './style/Image.styl'\n\nimport Icon from '../icon/Icon'\nimport Upload from '../upload/Upload'\nimport LoadingBar from '../loading-bar/LoadingBar'\n\nimport {\n FALSE,\n UNDEFINED,\n RAW_STRING,\n RAW_NUMERIC,\n RAW_BOOLEAN,\n RAW_FUNCTION,\n RAW_STRETCH,\n RAW_CONTAIN,\n RAW_IMAGE_ACCEPT,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n toNumber,\n} from '../util'\n\nimport {\n STATUS_UPLOADING,\n STATUS_FAILURE,\n readLocalFile,\n validateFile,\n STATUS_ERROR,\n} from '../image-picker/util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Image',\n\n propTypes: {\n width: {\n type: RAW_NUMERIC,\n value: 60,\n },\n height: {\n type: RAW_NUMERIC,\n value: 60,\n },\n mode: {\n type: oneOf([RAW_STRETCH, RAW_CONTAIN]),\n value: RAW_STRETCH,\n },\n minSize: {\n type: RAW_NUMERIC,\n },\n maxSize: {\n type: RAW_NUMERIC,\n },\n minRatio: {\n type: RAW_NUMERIC,\n },\n maxRatio: {\n type: RAW_NUMERIC,\n },\n minWidth: {\n type: RAW_NUMERIC,\n },\n maxWidth: {\n type: RAW_NUMERIC,\n },\n minHeight: {\n type: RAW_NUMERIC,\n },\n maxHeight: {\n type: RAW_NUMERIC,\n },\n minDuration: {\n type: RAW_NUMERIC,\n },\n maxDuration: {\n type: RAW_NUMERIC,\n },\n simple: {\n type: RAW_BOOLEAN,\n },\n showPreview: {\n type: RAW_BOOLEAN,\n },\n url: {\n type: RAW_STRING,\n },\n alt: {\n type: RAW_STRING,\n },\n fallback: {\n type: RAW_STRING,\n },\n formatImageUrl: {\n type: RAW_FUNCTION,\n },\n uploadTitle: {\n type: RAW_STRING,\n },\n uploadingTitle: {\n type: RAW_STRING,\n value: '正在上传...',\n },\n uploadImage: {\n type: RAW_FUNCTION,\n },\n cropImage: {\n type: RAW_FUNCTION,\n },\n accept: {\n type: RAW_STRING,\n value: RAW_IMAGE_ACCEPT,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n const me = this\n return {\n useFallback: FALSE,\n image: {\n url: me.get('url'),\n base64: '',\n status: UNDEFINED,\n progress: 0,\n message: '',\n },\n beforeUploadImage(data) {\n\n const fileList = data.fileList as any[]\n\n readLocalFile(fileList[0]).then(function (image) {\n\n // @ts-ignore\n me.validateImage(image)\n\n me.set({\n image,\n })\n\n const upload = me.$refs.upload as any\n upload.reset()\n\n // @ts-ignore\n me.uploadImage(image)\n\n })\n\n },\n }\n },\n\n computed: {\n isUploading(): boolean {\n return this.get('image.status') === STATUS_UPLOADING\n },\n isVideoUploader(): boolean {\n const accept = this.get('accept')\n return accept ? accept.indexOf('video') >= 0 : FALSE\n },\n widthNumber(): number {\n return toNumber(this.get('width'))\n },\n heightNumber(): number {\n return toNumber(this.get('height'))\n },\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const widthNumber = this.get('widthNumber')\n const heightNumber = this.get('heightNumber')\n\n result.push({\n width: toPixel(widthNumber),\n height: toPixel(heightNumber),\n })\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n },\n\n watchers: {\n url(url) {\n this.set('image.url', url)\n },\n 'image.url': function () {\n this.set('useFallback', FALSE)\n },\n 'image.base64': function () {\n this.set('useFallback', FALSE)\n }\n },\n\n methods: {\n validateImage(image: any) {\n\n const me = this\n\n const minSize = toNumber(me.get('minSize'))\n const maxSize = toNumber(me.get('maxSize'))\n\n const minRatio = toNumber(me.get('minRatio'))\n const maxRatio = toNumber(me.get('maxRatio'))\n\n const minWidth = toNumber(me.get('minWidth'))\n const minHeight = toNumber(me.get('minHeight'))\n\n const maxWidth = toNumber(me.get('maxWidth'))\n const maxHeight = toNumber(me.get('maxHeight'))\n\n const minDuration = toNumber(me.get('minDuration'))\n const maxDuration = toNumber(me.get('maxDuration'))\n\n const errors = validateFile(\n image, minSize, maxSize, minRatio, maxRatio,\n minWidth, maxWidth, minHeight, maxHeight, minDuration, maxDuration\n )\n\n if (errors.length) {\n image.status = STATUS_ERROR\n image.message = errors.join('
')\n }\n\n },\n previewImage(event: CustomEventInterface) {\n event.stop()\n this.fire(\n {\n type: 'preview',\n ns: 'image',\n },\n {\n url: this.get('image.url'),\n }\n )\n },\n uploadImage(image: any) {\n\n const me = this\n\n // 如果校验未通过,或者已上传成功,则直接返回\n if (image.status === STATUS_ERROR || image.url) {\n return\n }\n\n const uploadHandler = function (image) {\n\n const uploadImage = me.get('uploadImage')\n\n uploadImage({\n id: image.id,\n file: image.file,\n onStart() {\n me.set('image.status', STATUS_UPLOADING)\n me.set('image.progress', 0)\n },\n onError(error: string) {\n me.set('image.status', STATUS_FAILURE)\n me.set('image.message', error || '上传失败')\n },\n onProgress(progress: number) {\n me.set('image.progress', progress)\n },\n onSuccess(data) {\n me.set('image.status', UNDEFINED)\n me.fire(\n {\n type: 'uploadSuccess',\n ns: 'image',\n },\n {\n image: data,\n }\n )\n }\n })\n\n }\n\n const cropImage = me.get('cropImage')\n\n if (image.base64 && cropImage) {\n cropImage({\n base64: image.base64,\n callback(result) {\n Yox.object.extend(image, result)\n uploadHandler(image)\n }\n })\n }\n else {\n uploadHandler(image)\n }\n\n }\n },\n\n components: {\n Icon,\n Upload,\n LoadingBar,\n }\n\n})\n","import Yox, { YoxInterface } from 'yox'\n\nimport template from './template/Carousel.hbs'\n// import './style/Carousel.styl'\n\nimport ResizeObserver from '../resize-observer/ResizeObserver'\n\nimport {\n TRUE,\n UNDEFINED,\n RAW_STRING,\n RAW_NUMERIC,\n RAW_BOOLEAN,\n RAW_CLICK,\n RAW_HOVER,\n RAW_TOP,\n RAW_RIGHT,\n RAW_BOTTOM,\n RAW_LEFT,\n RAW_VERTICAL,\n RAW_HORIZONTAL,\n RAW_STYLE_TYPE,\n RAW_SLOT_CHILDREN,\n RAW_EVENT_BEFORE_DESTROY,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Carousel',\n\n propTypes: {\n autoPlay: {\n type: RAW_BOOLEAN,\n },\n interval: {\n type: RAW_NUMERIC,\n value: 3000,\n },\n trigger: {\n type: oneOf([RAW_CLICK, RAW_HOVER]),\n value: RAW_CLICK\n },\n indicatorType: {\n type: oneOf(['dot', 'line']),\n value: 'dot'\n },\n indicatorPosition: {\n type: oneOf([\n RAW_TOP,\n RAW_RIGHT,\n RAW_BOTTOM,\n RAW_LEFT,\n ]),\n value: RAW_BOTTOM,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n RAW_CLICK,\n RAW_HOVER,\n RAW_TOP,\n RAW_RIGHT,\n RAW_BOTTOM,\n RAW_LEFT,\n\n index: 0,\n size: UNDEFINED,\n }\n },\n\n computed: {\n count() {\n return this.get(`${RAW_SLOT_CHILDREN}.length`) || 0\n },\n direction() {\n const indicatorPosition = this.get('indicatorPosition')\n return indicatorPosition === 'left' || indicatorPosition === 'right'\n ? RAW_VERTICAL\n : RAW_HORIZONTAL\n },\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const size = this.get('size')\n if (size) {\n result.push({\n width: toPixel(size.width),\n height: toPixel(size.height),\n })\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n },\n\n events: {\n resize: {\n listener(event, data) {\n if (event.phase !== Yox.Event.PHASE_UPWARD) {\n return\n }\n event.stop()\n this.set('size', data)\n },\n ns: 'resizeObserver'\n }\n },\n\n watchers: {\n index(value) {\n // @ts-ignore\n this.move(value, TRUE)\n },\n direction() {\n // @ts-ignore\n this.move(this.get('index'))\n }\n },\n\n methods: {\n go(index: number) {\n this.set('index', index)\n },\n prev() {\n const index = this.get('index') - 1\n const count = this.get('count')\n // @ts-ignore\n this.go(index < 0 ? (count - 1) : index)\n },\n next() {\n const index = this.get('index') + 1\n const count = this.get('count')\n // @ts-ignore\n this.go(index === count ? 0 : index)\n },\n move(index: number, animated?: boolean) {\n\n const size = this.get('size')\n if (!size) {\n return\n }\n\n const element = this.$refs.list as HTMLElement\n\n element.style.transitionDuration = animated ? '0.2s' : ''\n element.style.transform = this.get('direction') === RAW_HORIZONTAL\n ? ('translateX(-' + toPixel(index * size.width) + ')')\n : ('translateY(-' + toPixel(index * size.height) + ')')\n\n }\n },\n\n components: {\n ResizeObserver\n },\n\n afterMount() {\n\n const me = this\n\n // 自动播放\n let autoPlayTimer: number\n\n const autoPlayHandler = function () {\n\n // @ts-ignore\n me.next()\n\n autoPlayTimer = window.setTimeout(\n autoPlayHandler,\n me.get('interval')\n )\n\n }\n\n me.watch(\n 'autoPlay',\n function (newValue) {\n if (newValue) {\n autoPlayTimer = window.setTimeout(\n autoPlayHandler,\n me.get('interval')\n )\n }\n else if (autoPlayTimer) {\n clearTimeout(autoPlayTimer)\n autoPlayTimer = 0\n }\n },\n TRUE\n )\n\n const destroy = function (component: YoxInterface) {\n if (component === me) {\n if (autoPlayTimer) {\n clearTimeout(autoPlayTimer)\n }\n Yox.lifeCycle.off(RAW_EVENT_BEFORE_DESTROY, destroy)\n }\n }\n Yox.lifeCycle.on(RAW_EVENT_BEFORE_DESTROY, destroy)\n\n },\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Collapse.hbs'\n// import './style/Collapse.styl'\n\nimport {\n TRUE,\n FALSE,\n UNDEFINED,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_ARRAY,\n RAW_NUMBER,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Collapse',\n\n propTypes: {\n value: {\n type: [RAW_STRING, RAW_NUMBER, RAW_ARRAY],\n },\n accordion: {\n type: RAW_BOOLEAN,\n },\n simple: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n watchers: {\n value(value) {\n this.fire(\n {\n type: 'change',\n ns: 'collapse',\n },\n {\n value,\n },\n TRUE\n )\n }\n },\n\n events: {\n open: {\n listener(event, data) {\n if (event.phase === Yox.Event.PHASE_UPWARD) {\n event.stop()\n\n let { name, opened } = data\n\n let value = this.get('value')\n\n if (this.get('accordion')) {\n value = opened ? name : UNDEFINED\n }\n else {\n value = Yox.is.array(value) ? this.copy(value) : []\n if (opened) {\n if (!Yox.array.has(value, name, FALSE)) {\n value.push(name)\n }\n }\n else {\n Yox.array.remove(value, name, FALSE)\n }\n }\n\n this.set('value', value)\n\n }\n },\n ns: 'collapseItem'\n }\n }\n\n})\n","import Yox from 'yox'\n\nimport Icon from '../icon/Icon'\nimport template from './template/CollapseItem.hbs'\n\nimport {\n TRUE,\n FALSE,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMBER,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n findComponentUpward,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}CollapseItem',\n\n propTypes: {\n title: {\n type: RAW_STRING,\n required: TRUE,\n },\n name: {\n type: [RAW_STRING, RAW_NUMBER],\n required: TRUE,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n\n const collapse = findComponentUpward(options.parent, '${prefix}Collapse')\n\n let opened = FALSE\n\n if (collapse) {\n let name = this.get('name')\n let value = collapse.get('value')\n\n opened = Yox.is.array(value)\n ? Yox.array.has(value, name, FALSE)\n : value == name\n }\n\n return {\n opened,\n }\n },\n\n events: {\n change: {\n listener(event, data) {\n\n // 只接收父级事件,再上一级的就不管了\n // 避免嵌套面板的问题\n if (event.target !== this.$parent) {\n return\n }\n\n const name = this.get('name')\n\n this.set(\n 'opened',\n Yox.is.array(data.value)\n ? Yox.array.has(data.value, name, FALSE)\n : data.value == name\n )\n\n },\n ns: 'collapse',\n }\n },\n\n methods: {\n click() {\n this.fire(\n {\n type: 'open',\n ns: 'collapseItem',\n },\n {\n name: this.get('name'),\n opened: !this.get('opened'),\n }\n )\n },\n },\n\n components: {\n Icon,\n }\n\n})","import Yox from 'yox'\n\nimport template from './template/Card.hbs'\n// import './style/Card.styl'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_ALWAYS,\n RAW_HOVER,\n RAW_NEVER,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Card',\n\n propTypes: {\n simple: {\n type: RAW_BOOLEAN,\n },\n shadow: {\n type: oneOf([RAW_ALWAYS, RAW_HOVER, RAW_NEVER]),\n value: RAW_ALWAYS,\n },\n width: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const width = this.get('width')\n if (width) {\n result.push({\n width: toPixel(width)\n })\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n }\n})","import Yox from 'yox'\n\nimport template from './template/CardHeader.hbs'\n\nimport {\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}CardHeader',\n\n propTypes: {\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n },\n },\n})","import Yox from 'yox'\n\nimport template from './template/CardMedia.hbs'\n\nimport {\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}CardMedia',\n\n propTypes: {\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n})\n","import Yox from 'yox'\n\nimport template from './template/CardBody.hbs'\n\nimport {\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}CardBody',\n\n propTypes: {\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n})","import Yox from 'yox'\n\nimport template from './template/CardFooter.hbs'\n\nimport {\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}CardFooter',\n\n propTypes: {\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n})","import Yox from 'yox'\nimport { FALSE } from '../constant'\n\nexport function isLeafOption(option: any) {\n return !option.children && option.isLeaf !== FALSE\n}\n\nexport function getSelectedOptions(options: any[], value: any[]) {\n\n const result: any[] = []\n\n let index = 0\n\n const next = function (options: any[]) {\n Yox.array.each(\n options,\n function (item) {\n if (value[index] == item.value) {\n result.push(item)\n if (item.children) {\n index++\n next(item.children)\n }\n }\n }\n )\n }\n\n next(options)\n\n return result\n\n}","import Yox from 'yox'\n\nimport template from './template/CascaderOptions.hbs'\n\nimport Icon from '../icon/Icon'\n\nimport {\n TRUE,\n FALSE,\n UNDEFINED,\n RAW_ARRAY,\n RAW_NUMBER,\n RAW_FUNCTION,\n} from '../constant'\n\nimport {\n isLeafOption,\n} from './util'\n\nconst CascaderOptions = Yox.define({\n\n template,\n\n name: '${prefix}CascaderOptions',\n\n propTypes: {\n level: {\n type: RAW_NUMBER,\n required: TRUE,\n },\n options: {\n type: RAW_ARRAY,\n required: TRUE,\n },\n value: {\n type: RAW_ARRAY,\n required: TRUE,\n },\n loadData: {\n type: RAW_FUNCTION,\n },\n },\n\n computed: {\n currentValue() {\n return this.get('value')[this.get('level')]\n },\n nextOptions() {\n const options = this.get('options')\n const currentValue = this.get('currentValue')\n if (currentValue !== UNDEFINED) {\n for (let i = 0, len = options.length; i < len; i++) {\n if (options[i].value == currentValue) {\n return options[i].children\n }\n }\n }\n }\n },\n\n methods: {\n onClick(option: any, index: number) {\n\n const me = this\n const isLeaf = isLeafOption(option)\n\n me.fire(\n {\n type: 'click',\n ns: 'cascaderOptions',\n },\n {\n level: me.get('level'),\n index,\n option,\n isLeaf,\n }\n )\n\n const loadData = me.get('loadData')\n\n if (loadData && !isLeaf && Yox.array.falsy(option.children)) {\n\n const keypath = `options.${index}`\n\n me.set(`${keypath}.isLoading`, TRUE)\n\n loadData(option)\n .then(function (children: any[]) {\n if (children && children.length > 0) {\n me.set(`${keypath}.children`, children)\n }\n else {\n me.set(`${keypath}.isLeaf`, TRUE)\n }\n })\n .finally(function () {\n me.set(`${keypath}.isLoading`, FALSE)\n })\n }\n\n }\n },\n\n components: {\n Icon,\n }\n\n})\n\nCascaderOptions.components.CascaderOptions = CascaderOptions\n\nexport default CascaderOptions","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/Cascader.hbs'\n// import './style/Cascader.styl'\n\nimport Tag from '../tag/Tag'\nimport Icon from '../icon/Icon'\nimport Empty from '../empty/Empty'\nimport Popover from '../popover/Popover'\nimport CascaderOptions from './CascaderOptions'\n\nimport {\n TRUE,\n FALSE,\n RAW_ARRAY,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_FUNCTION,\n RAW_DEFAULT,\n RAW_SIZE_ARRAY,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_ERROR,\n RAW_TYPE_WARNING,\n RAW_TOP,\n RAW_TOP_START,\n RAW_TOP_END,\n RAW_BOTTOM,\n RAW_BOTTOM_START,\n RAW_BOTTOM_END,\n RAW_CUSTOM,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n} from '../util'\n\nimport {\n fireClickEvent,\n onClickEventByEnterPress,\n} from '../event'\n\nimport {\n getSelectedOptions,\n} from './util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Cascader',\n\n propTypes: {\n options: {\n type: RAW_ARRAY,\n required: TRUE,\n },\n placeholder: {\n type: RAW_STRING,\n value: '请选择...'\n },\n value: {\n type: RAW_ARRAY,\n },\n status: {\n type: oneOf([RAW_TYPE_INFO, RAW_TYPE_SUCCESS, RAW_TYPE_ERROR, RAW_TYPE_WARNING]),\n },\n size: {\n type: oneOf(RAW_SIZE_ARRAY),\n value: RAW_DEFAULT,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n placement: {\n type: oneOf([RAW_TOP, RAW_TOP_START, RAW_TOP_END, RAW_BOTTOM, RAW_BOTTOM_START, RAW_BOTTOM_END]),\n value: RAW_BOTTOM_START,\n },\n showClear: {\n type: RAW_BOOLEAN,\n },\n block: {\n type: RAW_BOOLEAN,\n },\n changeOnSelect: {\n type: RAW_BOOLEAN,\n },\n loadData: {\n type: RAW_FUNCTION,\n },\n width: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n RAW_CUSTOM,\n isFocus: FALSE,\n isVisible: FALSE,\n tempSelectedOptions: [],\n tempSelectedValue: this.get('value'),\n }\n },\n\n watchers: {\n value(value) {\n this.set({\n tempSelectedOptions: this.get('selectedOptions'),\n tempSelectedValue: value,\n })\n }\n },\n\n computed: {\n selectedOptions(): any[] {\n return getSelectedOptions(\n this.get('options'),\n this.get('value')\n )\n },\n selectedText(): string {\n const result: string[] = []\n Yox.array.each(\n this.get('selectedOptions'),\n function (option: any) {\n result.push(\n option.text\n )\n }\n )\n return result.join(' / ')\n },\n isReversed(): boolean {\n const placement = this.get('placement')\n return placement.indexOf(RAW_TOP) >= 0\n },\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const width = this.get('width')\n if (width) {\n result.push({\n width: toPixel(width)\n })\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n },\n\n events: {\n click: {\n listener(event, data) {\n\n event.stop()\n\n const me = this\n\n const tempSelectedValue = me.copy(me.get('tempSelectedValue'))\n const tempSelectedOptions = me.copy(me.get('tempSelectedOptions'))\n\n const selectedLevel = data.level\n const selectedOption = data.option\n const needChange = me.get('changeOnSelect') || data.isLeaf\n\n tempSelectedValue.length =\n tempSelectedOptions.length = selectedLevel\n\n tempSelectedValue[selectedLevel] = selectedOption.value\n tempSelectedOptions[selectedLevel] = selectedOption\n\n const changes: Record = {\n tempSelectedValue,\n tempSelectedOptions,\n }\n\n if (needChange) {\n changes.value = tempSelectedValue\n }\n\n me.set(changes)\n\n if (needChange) {\n // @ts-ignore\n me.fireChange(tempSelectedValue)\n }\n\n if (data.isLeaf) {\n this.set({\n isVisible: FALSE,\n })\n }\n\n },\n ns: 'cascaderOptions',\n },\n outside: {\n listener(event) {\n\n event.stop()\n\n this.set('isVisible', FALSE)\n\n },\n ns: 'popover',\n }\n },\n\n methods: {\n onClick(event?: CustomEventInterface) {\n this.toggle('isVisible')\n fireClickEvent(event)\n },\n onClearClick(event: CustomEventInterface) {\n\n // 停止冒泡,否则会展开下拉框\n event.stop()\n fireClickEvent(event)\n\n const value = []\n\n this.set({\n value,\n })\n\n // @ts-ignore\n this.fireChange(value)\n\n },\n fireChange(value) {\n this.fire(\n {\n type: 'change',\n ns: 'cascader',\n },\n {\n value,\n }\n )\n }\n },\n\n afterMount() {\n onClickEventByEnterPress(this)\n },\n\n components: {\n Tag,\n Icon,\n Empty,\n Popover,\n CascaderOptions,\n },\n\n})\n","import Yox from 'yox'\n\nimport template from './template/PageHeader.hbs'\n// import './style/PageHeader.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n TRUE,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}PageHeader',\n\n propTypes: {\n title: {\n type: RAW_STRING,\n required: TRUE,\n },\n showBack: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n components: {\n Icon,\n }\n\n})","import Yox from 'yox'\n\nimport template from './template/Layout.hbs'\n// import './style/Layout.styl'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Layout',\n\n propTypes: {\n vertical: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/LayoutHeader.hbs'\n\nimport {\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}LayoutHeader',\n\n propTypes: {\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n})","import Yox from 'yox'\n\nimport template from './template/LayoutContent.hbs'\n\nimport {\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}LayoutContent',\n\n propTypes: {\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n})","import Yox from 'yox'\n\nimport template from './template/LayoutFooter.hbs'\n\nimport {\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}LayoutFooter',\n\n propTypes: {\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n})","import Yox from 'yox'\n\nimport Icon from '../icon/Icon'\nimport template from './template/LayoutSider.hbs'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n toNumber, toPixel,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n model: 'collapsed',\n\n name: '${prefix}LayoutSider',\n\n propTypes: {\n showTrigger: {\n type: RAW_BOOLEAN,\n },\n collapsed: {\n type: RAW_BOOLEAN,\n },\n width: {\n type: RAW_NUMERIC,\n value: 200\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n customWidth(): number {\n if (this.get('collapsed')) {\n return 80\n }\n return toNumber(this.get('width'))\n },\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const customWidth = this.get('customWidth')\n if (customWidth) {\n result.push({\n flex: '0 0 ' + toPixel(customWidth),\n width: toPixel(customWidth),\n minWidth: toPixel(customWidth),\n maxWidth: toPixel(customWidth),\n })\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n triggerStyle(): Record | void {\n const customWidth = this.get('customWidth')\n if (customWidth) {\n return {\n width: toPixel(customWidth)\n }\n }\n },\n },\n\n components: {\n Icon,\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Link.hbs'\n// import './style/Link.styl'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_SMALL,\n RAW_TYPE_PRIMARY,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_WARNING,\n RAW_TYPE_ERROR,\n RAW_TYPE_CONTENT,\n RAW_TYPE_TITLE,\n RAW_TYPE_MUTED,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Link',\n\n propTypes: {\n type: {\n type: oneOf([\n RAW_TYPE_PRIMARY,\n RAW_TYPE_INFO,\n RAW_TYPE_SUCCESS,\n RAW_TYPE_WARNING,\n RAW_TYPE_ERROR,\n RAW_TYPE_TITLE,\n RAW_TYPE_CONTENT,\n RAW_TYPE_MUTED,\n ]),\n value: RAW_TYPE_PRIMARY,\n },\n size: {\n type: oneOf([RAW_SMALL]),\n },\n underline: {\n type: RAW_BOOLEAN,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n href: {\n type: RAW_STRING,\n },\n target: {\n type: RAW_STRING,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n }\n})\n","import Yox from 'yox'\n\nimport template from './template/ListEmpty.hbs'\n\nimport Empty from '../empty/Empty'\n\nexport default Yox.define({\n\n template,\n\n components: {\n Empty,\n }\n\n})","import Yox from 'yox'\n\nimport template from './template/List.hbs'\n// import './style/List.styl'\n\nimport Spin from '../spin/Spin'\nimport ListEmpty from './ListEmpty'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_SIZE_ARRAY,\n RAW_DEFAULT,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}List',\n\n propTypes: {\n simple: {\n type: RAW_BOOLEAN,\n },\n loading: {\n type: RAW_BOOLEAN,\n },\n clickable: {\n type: RAW_BOOLEAN,\n },\n size: {\n type: oneOf(RAW_SIZE_ARRAY),\n value: RAW_DEFAULT,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n components: {\n Spin,\n ListEmpty,\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/ListItem.hbs'\n\nimport {\n FALSE,\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n findComponentUpward,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}ListItem',\n\n propTypes: {\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n const list = findComponentUpward(options.parent, '${prefix}List')\n return {\n clickable: list\n ? list.get('clickable')\n : FALSE\n }\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Result.hbs'\n// import './style/Result.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n RAW_STRING,\n RAW_STATUS_ARRAY,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n getStatusIconName,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Result',\n\n propTypes: {\n title: {\n type: RAW_STRING,\n },\n subTitle: {\n type: RAW_STRING,\n },\n status: {\n type: oneOf(RAW_STATUS_ARRAY),\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n iconName() {\n return getStatusIconName(\n this.get('status')\n )\n }\n },\n\n components: {\n Icon,\n }\n\n})","import Yox from 'yox'\n\nimport template from './template/Exception.hbs'\n// import './style/Exception.styl'\n\nimport {\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Exception',\n\n propTypes: {\n title: {\n type: RAW_STRING,\n },\n subTitle: {\n type: RAW_STRING,\n },\n status: {\n type: oneOf([403, 404, 500]),\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n})","import Yox from 'yox'\n\nimport template from './template/Divider.hbs'\n// import './style/Divider.styl'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_LEFT,\n RAW_RIGHT,\n RAW_CENTER,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Divider',\n\n propTypes: {\n vertical: {\n type: RAW_BOOLEAN,\n },\n dashed: {\n type: RAW_BOOLEAN,\n },\n align: {\n type: oneOf([RAW_CENTER, RAW_LEFT, RAW_RIGHT]),\n value: RAW_CENTER,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n})\n","import Yox from 'yox'\n\nimport template from './template/Circle.hbs'\n// import './style/Circle.styl'\n\nimport {\n RAW_STRING,\n RAW_NUMERIC,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Circle',\n\n propTypes: {\n dashboard: {\n type: RAW_BOOLEAN,\n },\n percent: {\n type: RAW_NUMERIC,\n value: 0,\n },\n size: {\n type: RAW_NUMERIC,\n value: 120,\n },\n strokeWidth: {\n type: RAW_NUMERIC,\n value: 6,\n },\n strokeColor: {\n type: RAW_STRING,\n value: '#2db7f5',\n },\n strokeLinecap: {\n type: oneOf(['square', 'round']),\n value: 'round',\n },\n trailWidth: {\n type: RAW_NUMERIC,\n value: 5,\n },\n trailColor: {\n type: RAW_STRING,\n value: '#eaeef2',\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n computedStrokeWidth() {\n return this.get('percent') === 0 && this.get('dashboard')\n ? 0\n : this.get('strokeWidth')\n },\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const size = this.get('size')\n if (size) {\n result.push({\n width: toPixel(size),\n height: toPixel(size),\n })\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n trailStyle() {\n if (this.get('dashboard')) {\n const len = this.get('len')\n return {\n strokeDasharray: `${len - 75}px ${len}px`,\n strokeDashoffset: `-${75 / 2}px`,\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s'\n }\n }\n },\n pathStyle() {\n const percent = this.get('percent')\n const len = this.get('len')\n if (this.get('dashboard')) {\n return {\n strokeDasharray: `${(percent / 100) * (len - 75)}px ${len}px`,\n strokeDashoffset: `-${75 / 2}px`,\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .6s ease 0s, stroke .6s, stroke-width .06s ease .6s'\n }\n }\n return {\n strokeDasharray: `${len}px ${len}px`,\n strokeDashoffset: `${((100 - percent) / 100 * len)}px`,\n transition: 'stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease'\n }\n },\n radius() {\n return 50 - this.get('strokeWidth') / 2\n },\n len() {\n return Math.PI * 2 * this.get('radius')\n },\n path() {\n let radius = this.get('radius')\n if (this.get('dashboard')) {\n return `M 50,50 m 0,${radius}\n a ${radius},${radius} 0 1 1 0,-${2 * radius}\n a ${radius},${radius} 0 1 1 0,${2 * radius}`\n }\n else {\n return `M 50,50 m 0,-${radius}\n a ${radius},${radius} 0 1 1 0,${2 * radius}\n a ${radius},${radius} 0 1 1 0,-${2 * radius}`\n }\n }\n }\n})\n","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/Popconfirm.hbs'\n// import './style/Popconfirm.styl'\n\nimport Button from '../button/Button'\nimport Popover from '../popover/Popover'\n\nimport {\n TRUE,\n FALSE,\n RAW_STRING,\n RAW_NUMERIC,\n RAW_BOOLEAN,\n RAW_CLICK,\n RAW_TYPE_WARNING,\n RAW_STATUS_ARRAY,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n getStatusIconName,\n} from '../util'\n\nimport {\n fireClickEvent,\n} from '../event'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Popconfirm',\n\n propTypes: {\n status: {\n type: oneOf(RAW_STATUS_ARRAY),\n value: RAW_TYPE_WARNING,\n },\n showIcon: {\n type: RAW_BOOLEAN,\n },\n title: {\n type: RAW_STRING,\n },\n okText: {\n type: RAW_STRING,\n value: '确定',\n },\n okType: {\n type: RAW_STRING,\n },\n cancelText: {\n type: RAW_STRING,\n value: '取消',\n },\n maxWidth: {\n type: RAW_NUMERIC,\n },\n maxHeight: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n RAW_CLICK,\n isVisible: FALSE,\n }\n },\n\n computed: {\n iconName() {\n return getStatusIconName(\n this.get('status')\n )\n },\n contentStyle() {\n\n const customStyle: Record = {}\n\n const maxWidth = this.get('maxWidth')\n const maxHeight = this.get('maxHeight')\n if (maxWidth) {\n customStyle.maxWidth = toPixel(maxWidth)\n }\n if (maxHeight) {\n customStyle.maxHeight = toPixel(maxHeight)\n }\n\n if (Yox.object.keys(customStyle).length > 0) {\n return customStyle\n }\n\n }\n },\n\n events: {\n open: {\n listener(event) {\n event.stop()\n this.set('isVisible', TRUE)\n },\n ns: 'popover',\n },\n close: {\n listener(event) {\n event.stop()\n this.set('isVisible', FALSE)\n },\n ns: 'popover',\n }\n },\n\n methods: {\n onCancelClick(event: CustomEventInterface) {\n event.stop()\n fireClickEvent(event, TRUE)\n this.set('isVisible', FALSE)\n this.fire({\n type: 'cancel',\n ns: 'popconfirm',\n })\n },\n onOkClick(event: CustomEventInterface) {\n event.stop()\n fireClickEvent(event, TRUE)\n this.set('isVisible', FALSE)\n this.fire({\n type: 'ok',\n ns: 'popconfirm',\n })\n }\n },\n\n components: {\n Button,\n Popover,\n },\n})\n","import Yox from 'yox'\n\nimport template from './template/ProgressTrack.hbs'\n\nimport {\n RAW_BOOLEAN,\n RAW_NUMERIC,\n} from '../constant'\n\nimport {\n toPixel,\n toPercent,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n propTypes: {\n vertical: {\n type: RAW_BOOLEAN,\n },\n inside: {\n type: RAW_BOOLEAN,\n },\n thickness: {\n type: RAW_NUMERIC,\n },\n percent: {\n type: RAW_NUMERIC,\n },\n },\n\n computed: {\n inlineStyle(): Record {\n\n const vertical = this.get('vertical')\n const thickness = this.get('thickness')\n\n if (vertical) {\n return {\n width: toPixel(thickness)\n }\n }\n\n return {\n height: toPixel(thickness)\n }\n },\n barStyle(): Record {\n\n const vertical = this.get('vertical')\n const thickness = this.get('thickness')\n const percent = this.get('percent')\n\n if (vertical) {\n return {\n width: toPixel(thickness),\n height: toPercent(percent),\n }\n }\n\n return {\n width: toPercent(percent),\n height: toPixel(thickness),\n lineHeight: toPixel(thickness),\n }\n },\n }\n\n})","import Yox from 'yox'\n\nimport template from './template/Progress.hbs'\n// import './style/Progress.styl'\n\nimport ProgressTrack from './ProgressTrack'\n\nimport {\n RAW_STRING,\n RAW_NUMERIC,\n RAW_BOOLEAN,\n RAW_STATUS_ARRAY,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Progress',\n\n propTypes: {\n percent: {\n type: RAW_NUMERIC,\n value: 0,\n },\n status: {\n type: oneOf(RAW_STATUS_ARRAY),\n },\n thickness: {\n type: RAW_STRING,\n value: 8,\n },\n inside: {\n type: RAW_BOOLEAN,\n },\n vertical: {\n type: RAW_BOOLEAN,\n },\n active: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n components: {\n ProgressTrack,\n }\n})\n","import Yox from 'yox'\n\nimport template from './template/TreeNode.hbs'\n// import './style/TreeNode.styl'\n\nimport Icon from '../icon/Icon'\nimport Checkbox from '../checkbox/Checkbox'\n\nimport {\n TRUE,\n FALSE,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_ARRAY,\n RAW_OBJECT,\n RAW_FUNCTION,\n} from '../constant'\n\nimport { isMac } from '../util'\n\nconst TreeNode = Yox.define({\n\n template,\n\n name: '${prefix}TreeNode',\n\n propTypes: {\n expandedKeys: {\n type: RAW_ARRAY,\n },\n selectedKeys: {\n type: RAW_ARRAY,\n },\n checkedKeys: {\n type: RAW_ARRAY,\n },\n disabledKeys: {\n type: RAW_ARRAY,\n },\n selectable: {\n type: RAW_BOOLEAN,\n },\n checkable: {\n type: RAW_BOOLEAN,\n },\n block: {\n type: RAW_BOOLEAN,\n },\n showLine: {\n type: RAW_BOOLEAN,\n },\n showIndeterminate: {\n type: RAW_BOOLEAN,\n },\n loadData: {\n type: RAW_FUNCTION,\n },\n last: {\n type: RAW_BOOLEAN,\n },\n indent: {\n type: RAW_NUMERIC,\n },\n node: {\n type: RAW_OBJECT,\n },\n },\n\n data() {\n return {\n isLoading: FALSE,\n }\n },\n\n computed: {\n expanded() {\n const expandedKeys = this.get('expandedKeys')\n const key = this.get('node.key')\n return Yox.array.has(expandedKeys, key)\n },\n checked() {\n if (!this.get('checkable')) {\n return FALSE\n }\n const checkedKeys = this.get('checkedKeys')\n const key = this.get('node.key')\n return Yox.array.has(checkedKeys, key)\n },\n indeterminate() {\n let result = FALSE\n if (this.get('showIndeterminate') && !this.get('checked')) {\n const checkedKeys = this.get('checkedKeys')\n const disabledKeys = this.get('disabledKeys')\n const children = this.get('node.children')\n if (children) {\n Yox.array.each(\n children,\n function (child: any) {\n if (!Yox.array.has(disabledKeys, child.key)\n && Yox.array.has(checkedKeys, child.key)\n ) {\n result = TRUE\n return FALSE\n }\n }\n )\n }\n }\n return result\n },\n selected() {\n if (!this.get('selectable') || this.get('disabled')) {\n return FALSE\n }\n const selectedKeys = this.get('selectedKeys')\n const key = this.get('node.key')\n return Yox.array.has(selectedKeys, key)\n },\n disabled() {\n const disabledKeys = this.get('disabledKeys')\n const key = this.get('node.key')\n return Yox.array.has(disabledKeys, key)\n },\n hasChildren() {\n const children = this.get('node.children')\n return children && children.length > 0\n },\n isLeaf() {\n const isLeaf = this.get('node.isLeaf')\n if (isLeaf) {\n return TRUE\n }\n if (this.get('loadData')) {\n return FALSE\n }\n return !this.get('hasChildren')\n }\n },\n\n methods: {\n handleExpandClick() {\n\n const me = this\n\n const node = me.get('node')\n const expanded = !me.get('expanded')\n\n const fireExpandEvent = function () {\n me.fire(\n {\n type: 'expand',\n ns: 'treeNode'\n },\n {\n node,\n expanded,\n }\n )\n }\n\n if (expanded) {\n // 如果是展开,需判断是否要加载数据\n const loadData = me.get('loadData')\n const hasChildren = me.get('hasChildren')\n if (loadData && !hasChildren) {\n\n me.set({\n isLoading: TRUE\n })\n\n loadData(node)\n .then(function (children: any[]) {\n if (children && children.length > 0) {\n me.set('node.children', children)\n fireExpandEvent()\n }\n else {\n me.set('node.isLeaf', TRUE)\n }\n })\n .finally(function () {\n me.set({\n isLoading: FALSE\n })\n })\n\n return\n }\n }\n\n fireExpandEvent()\n\n },\n handleSelectClick(event) {\n\n const node = this.get('node')\n const selected = this.get('selected')\n\n const originalEvent = event.originalEvent\n\n this.fire(\n {\n type: 'select',\n ns: 'treeNode'\n },\n {\n node,\n selected: !selected,\n multiple: isMac\n ? originalEvent.metaKey\n : originalEvent.ctrlKey\n }\n )\n\n },\n handleCheckClick() {\n\n const node = this.get('node')\n\n this.fire(\n {\n type: 'check',\n ns: 'treeNode'\n },\n {\n node,\n checked: !this.get('checked'),\n }\n )\n\n },\n handleCheckedChange(data) {\n\n const node = this.get('node')\n\n this.fire(\n {\n type: 'check',\n ns: 'treeNode'\n },\n {\n node,\n checked: data.checked,\n }\n )\n\n }\n },\n\n components: {\n Icon,\n Checkbox,\n }\n\n})\n\nTreeNode.components.TreeNode = TreeNode\n\nexport default TreeNode\n","import Yox from 'yox'\nimport { FALSE, TRUE, UNDEFINED } from '../constant'\n\nexport function expandAll(data: any[], expandedKeys: string[]) {\n const handleNode = function (child: any) {\n if (child.children && child.children.length) {\n if (!Yox.array.has(expandedKeys, child.key)) {\n expandedKeys.push(child.key)\n }\n Yox.array.each(\n child.children,\n handleNode\n )\n }\n }\n Yox.array.each(\n data,\n handleNode\n )\n}\n\nexport function formatExpandedKeys(data: any[], expandedKeys: string[]) {\n\n const parents: any[] = []\n\n const handleNode = function (child: any) {\n\n if (Yox.array.has(expandedKeys, child.key)) {\n Yox.array.each(\n parents,\n function (parent: any) {\n if (!Yox.array.has(expandedKeys, parent.key)) {\n expandedKeys.push(parent.key)\n }\n }\n )\n }\n\n parents.push(child)\n if (child.children) {\n Yox.array.each(\n child.children,\n handleNode\n )\n }\n parents.pop()\n\n }\n Yox.array.each(\n data,\n handleNode\n )\n\n}\n\nexport function formatCheckedKeys(data: any[], checkedKeys: string[], disabledKeys: string[], checkStrictly: boolean) {\n Yox.array.each(\n checkedKeys,\n function (key) {\n setCheckedKey(checkedKeys, disabledKeys, key, TRUE, checkStrictly, data)\n }\n )\n}\n\nexport function setCheckedKey(checkedKeys: string[], disabledKeys: string[], key: string, checked: boolean, checkStrictly: boolean, data: any[]) {\n\n const parents: any[] = []\n let node: any\n\n const handleNode = function (child: any) {\n\n if (child.key === key) {\n node = child\n return FALSE\n }\n\n parents.push(child)\n if (child.children) {\n let result = UNDEFINED\n Yox.array.each(\n child.children,\n function (child) {\n return result = handleNode(child)\n }\n )\n if (result === FALSE) {\n return result\n }\n }\n parents.pop()\n\n }\n Yox.array.each(\n data,\n handleNode\n )\n\n if (!node) {\n return\n }\n\n parents.reverse()\n\n const addNode = function (node: any, addChildren?: boolean) {\n if (Yox.array.has(disabledKeys, node.key)) {\n return\n }\n if (!Yox.array.has(checkedKeys, node.key)) {\n checkedKeys.push(node.key)\n }\n if (addChildren === TRUE && node.children) {\n Yox.array.each(\n node.children,\n function (node) {\n addNode(node, TRUE)\n }\n )\n }\n }\n\n const removeNode = function (node: any, removeChildren?: boolean) {\n if (Yox.array.has(disabledKeys, node.key)) {\n return\n }\n Yox.array.remove(checkedKeys, node.key)\n if (removeChildren === TRUE && node.children) {\n Yox.array.each(\n node.children,\n function (node) {\n removeNode(node, TRUE)\n }\n )\n }\n }\n\n if (checked) {\n addNode(node, !checkStrictly)\n if (!checkStrictly) {\n Yox.array.each(\n parents,\n function (parent: any) {\n\n if (Yox.array.has(disabledKeys, parent.key)) {\n return FALSE\n }\n\n // 看下兄弟节点是否全部勾选\n let allChecked = TRUE\n Yox.array.each(\n parent.children,\n function (node: any) {\n if (!Yox.array.has(checkedKeys, node.key)) {\n return allChecked = FALSE\n }\n }\n )\n if (allChecked) {\n addNode(parent)\n }\n else {\n removeNode(parent)\n }\n\n }\n )\n }\n }\n else {\n removeNode(node, !checkStrictly)\n if (!checkStrictly) {\n Yox.array.each(\n parents,\n function (parent) {\n removeNode(parent)\n }\n )\n }\n }\n\n}","import Yox from 'yox'\n\nimport template from './template/Tree.hbs'\n// import './style/Tree.styl'\n\nimport Icon from '../icon/Icon'\nimport TreeNode from './TreeNode'\n\nimport {\n RAW_STRING,\n RAW_ARRAY,\n RAW_BOOLEAN,\n RAW_FUNCTION,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n expandAll,\n formatExpandedKeys,\n formatCheckedKeys,\n setCheckedKey,\n} from './util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Tree',\n\n propTypes: {\n data: {\n type: RAW_ARRAY,\n },\n defaultExpandedKeys: {\n type: RAW_ARRAY,\n },\n defaultSelectedKeys: {\n type: RAW_ARRAY,\n },\n defaultCheckedKeys: {\n type: RAW_ARRAY,\n },\n defaultExpandAll: {\n type: RAW_BOOLEAN,\n },\n expandedKeys: {\n type: RAW_ARRAY,\n },\n selectedKeys: {\n type: RAW_ARRAY,\n },\n checkedKeys: {\n type: RAW_ARRAY,\n },\n disabledKeys: {\n type: RAW_ARRAY,\n },\n checkStrictly: {\n type: RAW_BOOLEAN,\n },\n selectable: {\n type: RAW_BOOLEAN,\n },\n checkable: {\n type: RAW_BOOLEAN,\n },\n multiple: {\n type: RAW_BOOLEAN,\n },\n showLine: {\n type: RAW_BOOLEAN,\n },\n blockNode: {\n type: RAW_BOOLEAN,\n },\n loadData: {\n type: RAW_FUNCTION,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n innerExpandedKeys() {\n const data = this.get('data')\n const expandedKeys = this.get('expandedKeys')\n const defaultExpandedKeys = this.get('defaultExpandedKeys')\n\n const innerExpandedKeys = (expandedKeys || defaultExpandedKeys || []).slice()\n formatExpandedKeys(data, innerExpandedKeys)\n if (this.get('defaultExpandAll')) {\n expandAll(data, innerExpandedKeys)\n }\n\n return innerExpandedKeys\n },\n innerSelectedKeys() {\n const selectedKeys = this.get('selectedKeys')\n const defaultSelectedKeys = this.get('defaultSelectedKeys')\n return (selectedKeys || defaultSelectedKeys || []).slice()\n },\n innerCheckedKeys() {\n const data = this.get('data')\n const checkStrictly = this.get('checkStrictly')\n const checkedKeys = this.get('checkedKeys')\n const defaultCheckedKeys = this.get('defaultCheckedKeys')\n const innerDisabledKeys = this.get('innerDisabledKeys')\n\n const innerCheckedKeys = (checkedKeys || defaultCheckedKeys || []).slice()\n formatCheckedKeys(data, innerCheckedKeys, innerDisabledKeys, checkStrictly)\n\n return innerCheckedKeys\n },\n innerDisabledKeys() {\n const disabledKeys = this.get('disabledKeys')\n return (disabledKeys || []).slice()\n }\n },\n\n events: {\n expand: {\n listener(event, data) {\n event.stop()\n\n const expandedKeys = this.copy(\n this.get('innerExpandedKeys')\n )\n\n const { node } = data\n const { key } = node\n\n if (data.expanded) {\n expandedKeys.push(key)\n }\n else {\n Yox.array.remove(expandedKeys, key)\n }\n\n this.set('expandedKeys', expandedKeys)\n\n this.fire(\n {\n type: 'expand',\n ns: 'tree'\n },\n {\n expandedKeys,\n node,\n }\n )\n },\n ns: 'treeNode'\n },\n select: {\n listener(event, data) {\n event.stop()\n\n const selectedKeys = this.copy(\n this.get('innerSelectedKeys')\n )\n\n const { node } = data\n const { key } = node\n\n if (data.selected) {\n if (this.get('multiple') && data.multiple) {\n selectedKeys.push(key)\n }\n else {\n selectedKeys.length = 1\n selectedKeys[0] = key\n }\n }\n else {\n if (this.get('multiple') && !data.multiple && selectedKeys.length > 1) {\n selectedKeys.length = 1\n selectedKeys[0] = key\n }\n else {\n Yox.array.remove(selectedKeys, key)\n }\n }\n\n this.set('selectedKeys', selectedKeys)\n\n this.fire(\n {\n type: 'select',\n ns: 'tree'\n },\n {\n selectedKeys,\n node,\n }\n )\n },\n ns: 'treeNode'\n },\n check: {\n listener(event, data) {\n event.stop()\n\n const checkedKeys = this.copy(\n this.get('innerCheckedKeys')\n )\n\n const { checked, node } = data\n\n setCheckedKey(\n checkedKeys,\n this.get('innerDisabledKeys'),\n node.key,\n checked,\n this.get('checkStrictly'),\n this.get('data')\n )\n\n this.set('checkedKeys', checkedKeys)\n\n this.fire(\n {\n type: 'check',\n ns: 'tree'\n },\n {\n checkedKeys,\n node,\n }\n )\n },\n ns: 'treeNode'\n }\n },\n\n components: {\n Icon,\n TreeNode,\n }\n\n})\n","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/Rate.hbs'\n// import './style/Rate.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_ARRAY,\n RAW_TYPE_WARNING,\n RAW_TYPE_ARRAY,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Rate',\n\n propTypes: {\n count: {\n type: RAW_NUMERIC,\n value: 5,\n },\n value: {\n type: RAW_NUMERIC,\n value: 0,\n },\n half: {\n type: RAW_BOOLEAN,\n },\n readOnly: {\n type: RAW_BOOLEAN,\n },\n texts: {\n type: RAW_ARRAY,\n },\n type: {\n type: oneOf(RAW_TYPE_ARRAY),\n value: RAW_TYPE_WARNING,\n },\n iconName: {\n type: RAW_STRING,\n value: 'star-fill',\n },\n iconSize: {\n type: RAW_NUMERIC,\n value: 18,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n hoverValue: -1,\n }\n },\n\n computed: {\n activeValue(): number {\n const hoverValue = this.get('hoverValue')\n return hoverValue < 0\n ? this.get('value')\n : hoverValue\n }\n },\n\n methods: {\n handleMove(event: CustomEventInterface, value: number) {\n\n const mouseEvent = event.originalEvent as MouseEvent\n if (this.hoverOnHalfIcon(mouseEvent.target as HTMLElement)) {\n value -= 0.5\n }\n\n this.set({\n hoverValue: value\n })\n },\n\n handleLeave() {\n const value = this.get('value')\n this.set({\n hoverValue: value >= 0 ? value : -1\n })\n },\n\n handleClick(event: CustomEventInterface, value: number) {\n\n const clickEvent = event.originalEvent as MouseEvent\n if (this.hoverOnHalfIcon(clickEvent.target as HTMLElement)) {\n value -= 0.5\n }\n\n this.set('value', value)\n\n this.fire(\n {\n type: 'change',\n ns: 'rate',\n },\n {\n value\n }\n )\n },\n\n hoverOnHalfIcon(element: HTMLElement) {\n return Yox.string.has(element.className, 'half')\n }\n },\n\n components: {\n Icon,\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Tabs.hbs'\n// import './style/Tabs.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n TRUE,\n FALSE,\n UNDEFINED,\n\n RAW_SMALL,\n RAW_LARGE,\n\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_DEFAULT,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\ninterface Tab {\n name: string,\n icon: string,\n label: string,\n disabled: boolean,\n}\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Tabs',\n\n propTypes: {\n type: {\n type: oneOf(['card']),\n },\n size: {\n type: oneOf([RAW_DEFAULT, RAW_SMALL, RAW_LARGE]),\n value: RAW_DEFAULT,\n },\n closable: {\n type: RAW_BOOLEAN,\n },\n value: {\n type: RAW_STRING,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n tabs: [],\n }\n },\n\n events: {\n add: {\n listener(event, data) {\n\n if (event.phase !== Yox.Event.PHASE_UPWARD) {\n return\n }\n\n const { target } = event\n const tabName = target.get('name')\n\n this.append(\n 'tabs',\n {\n name: tabName,\n icon: target.get('icon'),\n label: target.get('label'),\n disabled: target.get('disabled'),\n }\n )\n\n if (data.isActive) {\n this.set({\n value: tabName,\n })\n }\n\n },\n ns: 'tabPanel',\n },\n remove: {\n listener(event) {\n\n if (event.phase !== Yox.Event.PHASE_UPWARD) {\n return\n }\n\n const { target } = event\n const tabName = target.get('name')\n\n const tabs: Tab[] = this.get('tabs')\n const newTabs = tabs.filter(function (item) {\n return item.name !== tabName\n })\n this.set({\n tabs: newTabs\n })\n\n if (this.get('value') === tabName) {\n this.set('value', newTabs[0] ? newTabs[0].name : UNDEFINED)\n }\n\n },\n ns: 'tabPanel',\n },\n update: {\n listener(event) {\n\n if (event.phase !== Yox.Event.PHASE_UPWARD) {\n return\n }\n\n const me = this\n const { target } = event\n const tabName = target.get('name')\n const tabs: Tab[] = me.get('tabs')\n\n Yox.array.each(\n tabs,\n function (item, index) {\n if (item.name === tabName) {\n me.set(\n `tabs.${index}`,\n {\n name: tabName,\n icon: target.get('icon'),\n label: target.get('label'),\n disabled: target.get('disabled'),\n }\n )\n return FALSE\n }\n }\n )\n\n },\n ns: 'tabPanel',\n }\n },\n\n watchers: {\n value(value) {\n this.fire(\n {\n type: 'change',\n ns: 'tabs',\n },\n { value },\n TRUE\n )\n },\n },\n\n methods: {\n handleCloseTab(tab: Tab) {\n this.fire(\n {\n type: 'tabRemove',\n ns: 'tabs',\n },\n {\n name: tab.name\n }\n )\n },\n handleClickTab(tab: Tab) {\n this.set({\n value: tab.name,\n })\n }\n },\n\n components: {\n Icon,\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/TabPanel.hbs'\n\nimport {\n NULL,\n TRUE,\n FALSE,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n findComponentUpward,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}TabPanel',\n\n propTypes: {\n name: {\n type: RAW_STRING,\n },\n icon: {\n type: RAW_STRING,\n },\n label: {\n type: RAW_STRING,\n required: TRUE,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n return {\n isActive: FALSE,\n }\n },\n\n watchers: {\n name() {\n this.updatePanel()\n },\n icon() {\n this.updatePanel()\n },\n label() {\n this.updatePanel()\n },\n disabled() {\n this.updatePanel()\n },\n },\n\n events: {\n change: {\n listener(_, data) {\n this.set({\n isActive: this.get('name') == data.value\n })\n },\n ns: 'tabs',\n }\n },\n\n methods: {\n updatePanel() {\n this.fire({\n type: 'update',\n ns: 'tabPanel',\n })\n }\n },\n\n afterMount() {\n\n const tabs = findComponentUpward(this.$parent, '${prefix}Tabs')\n\n const index = Yox.array.indexOf(tabs.$children, this)\n\n let name = this.get('name')\n if (name == NULL) {\n name = '' + index\n this.set('name', name)\n }\n\n let value = tabs.get('value')\n if (value == NULL && index === 0) {\n value = name\n }\n\n const isActive = value === name\n\n this.set('isActive', isActive)\n\n this.fire(\n {\n type: 'add',\n ns: 'tabPanel',\n },\n {\n isActive,\n }\n )\n\n },\n\n beforeDestroy() {\n this.fire({\n type: 'remove',\n ns: 'tabPanel',\n })\n }\n\n})\n","import Yox, { CustomEventInterface } from 'yox'\n\nimport template from './template/Dropdown.hbs'\n// import './style/Dropdown.styl'\n\nimport Popover from '../popover/Popover'\n\nimport {\n TRUE,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_HOVER,\n RAW_CLICK,\n RAW_CUSTOM,\n RAW_BOTTOM,\n RAW_PLACEMENT_ARRAY,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n} from '../util'\n\nimport {\n fireClickEvent,\n} from '../event'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Dropdown',\n\n propTypes: {\n placement: {\n type: oneOf(RAW_PLACEMENT_ARRAY),\n value: RAW_BOTTOM,\n },\n trigger: {\n type: oneOf([RAW_HOVER, RAW_CLICK, RAW_CUSTOM]),\n value: RAW_HOVER,\n },\n visible: {\n type: RAW_BOOLEAN,\n },\n maxHeight: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const maxHeight = this.get('maxHeight')\n if (maxHeight) {\n result.push({\n maxHeight: toPixel(maxHeight)\n })\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n },\n\n events: {\n click: {\n listener(event) {\n event.stop()\n fireClickEvent(event, TRUE)\n this.fire({\n type: 'close',\n ns: 'dropdown',\n })\n },\n ns: 'dropdownItem',\n },\n open: {\n listener(event) {\n event.stop()\n this.fire({\n type: 'open',\n ns: 'dropdown',\n })\n },\n ns: 'popover',\n },\n close: {\n listener(event) {\n event.stop()\n this.fire({\n type: 'close',\n ns: 'dropdown',\n })\n },\n ns: 'popover',\n },\n outside: {\n listener(event) {\n event.stop()\n this.fire({\n type: 'outside',\n ns: 'dropdown',\n })\n },\n ns: 'popover',\n }\n },\n\n methods: {\n refresh() {\n const popover = this.$refs.popover as any\n popover.refreshOverlayRect()\n },\n },\n\n components: {\n Popover,\n }\n})","import Yox from 'yox'\n\nimport template from './template/DropdownItem.hbs'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}DropdownItem',\n\n propTypes: {\n name: {\n type: RAW_STRING,\n },\n divided: {\n type: RAW_BOOLEAN,\n },\n disabled: {\n type: RAW_BOOLEAN,\n },\n active: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n})","import Yox from 'yox'\n\nimport template from './template/DropdownMenu.hbs'\n\nimport {\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}DropdownMenu',\n\n propTypes: {\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n})","import { VNode, YoxInterface } from 'yox'\nimport { UNDEFINED, RAW_SLOT_PREFIX, RAW_SLOT_CHILDREN } from '../constant'\nimport { toNumber } from '../util'\n\ntype DescriptionItem = {\n label: string\n name: string\n span: number\n}\n\nexport function addSlots2Props(instance: YoxInterface, children: VNode[], props: Record, column: number) {\n\n let cells: DescriptionItem[][] = []\n let columnArray: DescriptionItem[] | void\n let columnItem: DescriptionItem | void\n let columnSpanSum = 0\n let index = 0\n\n children.forEach(\n function (vnode: any) {\n if (vnode.tag === 'DescriptionItem') {\n\n const { label, span } = vnode.props\n const name = 'cell' + index++\n\n if (!columnArray) {\n columnArray = []\n cells.push(columnArray)\n }\n\n let spanCount = toNumber(span, 1)\n if (spanCount > column - columnSpanSum) {\n spanCount = column - columnSpanSum\n }\n\n columnItem = {\n label,\n name,\n span: spanCount,\n }\n\n columnArray.push(columnItem)\n props[RAW_SLOT_PREFIX + name] = vnode.slots[RAW_SLOT_CHILDREN](instance)\n\n columnSpanSum += columnItem.span\n\n if (columnSpanSum >= column) {\n columnArray = columnItem = UNDEFINED\n columnSpanSum = 0\n }\n\n }\n }\n )\n\n if (columnItem && columnArray) {\n columnItem.span = column - columnArray.length + 1\n }\n\n props.cells = cells\n\n}\n","import Yox from 'yox'\n\nimport template from './template/Description.hbs'\n// import './style/Description.styl'\n\nimport {\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_DEFAULT,\n RAW_SIZE_ARRAY,\n RAW_SLOT_CHILDREN,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n} from '../util'\n\nimport {\n addSlots2Props,\n} from './util'\n\nconst COLUMN_DEFAULT = 3\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Description',\n\n propTypes: {\n title: {\n type: RAW_STRING,\n },\n simple: {\n type: RAW_BOOLEAN,\n },\n size: {\n type: oneOf(RAW_SIZE_ARRAY),\n value: RAW_DEFAULT,\n },\n column: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n const data = { }\n const children = this.get(RAW_SLOT_CHILDREN)\n if (children) {\n addSlots2Props(\n this,\n children,\n data,\n this.get('column') || COLUMN_DEFAULT\n )\n }\n return data\n },\n\n beforePropsUpdate(props) {\n\n const children = props[RAW_SLOT_CHILDREN]\n if (!children) {\n return\n }\n\n addSlots2Props(\n this,\n children,\n props,\n props.column || COLUMN_DEFAULT,\n )\n\n }\n\n})\n","import Yox from 'yox'\n\nimport {\n RAW_STRING,\n RAW_NUMERIC,\n} from '../constant'\n\nexport default Yox.define({\n\n name: '${prefix}DescriptionItem',\n\n propTypes: {\n label: {\n type: RAW_STRING,\n },\n span: {\n type: RAW_NUMERIC,\n }\n },\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Timeline.hbs'\n// import './style/Timeline.styl'\n\nimport {\n FALSE,\n RAW_BOOLEAN,\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Timeline',\n\n propTypes: {\n pending: {\n type: RAW_BOOLEAN,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n})\n","import Yox from 'yox'\n\nimport template from './template/TimelineItem.hbs'\n\nimport {\n RAW_STRING,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}TimelineItem',\n\n propTypes: {\n color: {\n type: RAW_STRING,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n})\n","export const formInlineItemGaps = [16, 26]","import Yox, { Data } from 'yox'\n\nimport template from './template/Form.hbs'\n// import './style/Form.styl'\n\nimport {\n TRUE,\n FALSE,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_LEFT,\n RAW_RIGHT,\n RAW_NUMERIC,\n RAW_INLINE,\n RAW_VERTICAL,\n RAW_HORIZONTAL,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n oneOf,\n spaceListStyle,\n} from '../util'\n\nimport {\n formInlineItemGaps,\n} from './util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Form',\n\n propTypes: {\n layout: {\n type: oneOf([RAW_INLINE, RAW_HORIZONTAL, RAW_VERTICAL]),\n value: RAW_HORIZONTAL,\n },\n showColon: {\n type: RAW_BOOLEAN,\n },\n scrollToFirstError: {\n type: RAW_BOOLEAN,\n },\n labelAlign: {\n type: oneOf([RAW_LEFT, RAW_RIGHT]),\n value: RAW_RIGHT,\n },\n labelWidth: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n inlineStyle() {\n const layout = this.get('layout')\n const style = this.get('style')\n if (layout === RAW_INLINE) {\n return spaceListStyle(\n formInlineItemGaps,\n FALSE,\n TRUE,\n style\n )\n }\n return style\n }\n },\n\n watchers: {\n layout(value) {\n this.fire(\n {\n type: 'layoutChange',\n ns: 'form',\n },\n {\n layout: value,\n },\n TRUE\n )\n }\n },\n\n methods: {\n validate(errors: Data | void) {\n this.fire(\n {\n type: 'validate',\n ns: 'form',\n },\n {\n errors,\n hasScrolled: FALSE,\n scrollToFirstError: this.get('scrollToFirstError'),\n },\n TRUE\n )\n },\n }\n})","import Yox from 'yox'\n\nimport template from './template/FormItem.hbs'\n\nimport {\n TRUE,\n FALSE,\n UNDEFINED,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_INLINE,\n RAW_HORIZONTAL,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n toPixel,\n spaceItemStyle,\n findComponentUpward,\n} from '../util'\n\nimport {\n formInlineItemGaps,\n} from './util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}FormItem',\n\n propTypes: {\n prop: {\n type: RAW_STRING,\n },\n label: {\n type: RAW_STRING,\n },\n showRequiredMark: {\n type: RAW_BOOLEAN,\n },\n showMessage: {\n type: RAW_BOOLEAN,\n value: TRUE,\n },\n adaptive: {\n type: RAW_BOOLEAN,\n },\n message: {\n type: RAW_STRING,\n },\n extra: {\n type: RAW_STRING,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data(options) {\n\n const form = findComponentUpward(options.parent, '${prefix}Form')\n\n return {\n RAW_HORIZONTAL,\n error: UNDEFINED,\n formLayout: form.get('layout'),\n formLabelWidth: form.get('labelWidth'),\n }\n\n },\n\n computed: {\n inlineStyle() {\n const formLayout = this.get('formLayout')\n const style = this.get('style')\n if (formLayout === RAW_INLINE) {\n return spaceItemStyle(\n formInlineItemGaps,\n FALSE,\n TRUE,\n style\n )\n }\n return style\n },\n itemLabelWidth(): string {\n const formLayout = this.get('formLayout')\n const formLabelWidth = this.get('formLabelWidth')\n return formLayout === RAW_HORIZONTAL && formLabelWidth\n ? toPixel(formLabelWidth)\n : ''\n },\n itemMessage(): string {\n return this.get('error') || this.get('message')\n },\n showItemMessage(): string {\n return this.get('showMessage') && this.get('itemMessage')\n },\n },\n\n events: {\n layoutChange: {\n listener(_, data) {\n this.set({\n formLayout: data.layout,\n })\n },\n ns: 'form',\n },\n validate: {\n listener(_, data) {\n\n const { errors } = data\n const error = errors\n ? errors[this.get('prop')]\n : UNDEFINED\n\n this.set({\n error\n })\n\n if (!data.hasScrolled && data.scrollToFirstError) {\n const el = this.$el\n if (el.scrollIntoView) {\n el.scrollIntoView()\n }\n data.hasScrolled = TRUE\n }\n\n },\n ns: 'form',\n }\n }\n\n})\n","import Yox from 'yox'\n\nimport template from './template/Dialog.hbs'\n// import './style/Dialog.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n BODY,\n TRUE,\n FALSE,\n UNDEFINED,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n toPixel,\n screenWidth,\n onTransitionEnd,\n} from '../util'\n\nconst CLASS_VISIBLE = '${prefix}dialog-visible'\nconst CLASS_FADE = '${prefix}dialog-fade'\n\nexport default Yox.define({\n\n template,\n\n model: 'visible',\n\n name: '${prefix}Dialog',\n\n propTypes: {\n title: {\n type: RAW_STRING,\n },\n visible: {\n type: RAW_BOOLEAN,\n },\n showMask: {\n type: RAW_BOOLEAN,\n value: TRUE,\n },\n closable: {\n type: RAW_BOOLEAN,\n value: TRUE,\n },\n maskClosable: {\n type: RAW_BOOLEAN,\n value: TRUE,\n },\n width: {\n type: RAW_NUMERIC,\n value: screenWidth > 1024 ? 500 : 300,\n },\n height: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n computed: {\n wrapperStyle(): Record | void {\n\n const width = this.get('width')\n const height = this.get('height')\n\n if (width || height) {\n const result: Record = {}\n if (width) {\n result.width = toPixel(width)\n }\n if (height) {\n result.height = toPixel(height)\n }\n return result\n }\n\n },\n },\n\n watchers: {\n visible(visible) {\n const bodyStyle = BODY.style\n if (visible) {\n this.set('bodyOverflow', bodyStyle.overflow)\n bodyStyle.overflow = 'hidden'\n }\n else {\n bodyStyle.overflow = this.get('bodyOverflow')\n }\n }\n },\n\n methods: {\n open() {\n this.set('visible', TRUE)\n },\n close() {\n this.set('visible', FALSE)\n }\n },\n\n transitions: {\n dialog: {\n enter(node) {\n\n const me = this as any\n const dialog = node as HTMLElement\n const wrapper = me.$refs.wrapper as HTMLElement\n me.wrapperElement = wrapper\n\n // 设置为 display block\n Yox.dom.addClass(dialog, CLASS_VISIBLE)\n me.fire({\n type: 'open',\n ns: 'dialog',\n })\n\n setTimeout(\n function () {\n if (!me.get('visible')) {\n return\n }\n\n Yox.dom.addClass(dialog, CLASS_FADE)\n\n onTransitionEnd(\n wrapper,\n function () {\n if (!me.get('visible')) {\n return\n }\n me.fire({\n type: 'opened',\n ns: 'dialog',\n })\n }\n )\n },\n 50\n )\n\n },\n leave(node, done) {\n\n const me = this as any\n const dialog = node as HTMLElement\n const wrapper = me.wrapperElement as HTMLElement\n me.wrapperElement = UNDEFINED\n\n Yox.dom.removeClass(dialog, CLASS_FADE)\n me.fire({\n type: 'close',\n ns: 'dialog',\n })\n\n onTransitionEnd(\n wrapper,\n function () {\n if (me.get('visible')) {\n return\n }\n Yox.dom.removeClass(dialog, CLASS_VISIBLE)\n me.fire({\n type: 'closed',\n ns: 'dialog',\n })\n done()\n }\n )\n\n }\n },\n },\n\n components: {\n Icon,\n }\n\n})\n","import Yox, { Data, CustomEventInterface } from 'yox'\n\nimport template from './template/Table.hbs'\n// import './style/Table.styl'\n\nimport Icon from '../icon/Icon'\nimport Empty from '../empty/Empty'\nimport Button from '../button/Button'\nimport Checkbox from '../checkbox/Checkbox'\n\nimport {\n TRUE,\n UNDEFINED,\n RAW_ARRAY,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_STYLE_TYPE,\n} from '../constant'\n\nimport {\n toPixel,\n readElementRectInfo,\n} from '../util'\n\ninterface ButtonConfig {\n type: string | void,\n text: string | void,\n size: string | void,\n shape: string | void,\n onClick: (item: Data, index: number) => void\n}\n\nconst SORT_ORDER_ASC = 'asc'\nconst SORT_ORDER_DESC = 'desc'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Table',\n\n propTypes: {\n list: {\n type: RAW_ARRAY,\n required: TRUE,\n },\n columns: {\n type: RAW_ARRAY,\n required: TRUE,\n },\n selection: {\n type: RAW_ARRAY,\n },\n stripe: {\n type: RAW_BOOLEAN,\n },\n simple: {\n type: RAW_BOOLEAN,\n },\n height: {\n type: RAW_NUMERIC,\n },\n width: {\n type: RAW_NUMERIC,\n },\n className: {\n type: RAW_STRING,\n },\n style: {\n type: RAW_STYLE_TYPE,\n }\n },\n\n data() {\n\n let sortKey = UNDEFINED\n let sortOrder = UNDEFINED\n\n Yox.array.each(\n this.get('columns'),\n function (item: any) {\n if (item.defaultSortOrder) {\n sortKey = item.key\n sortOrder = item.defaultSortOrder\n }\n }\n )\n\n return {\n SORT_ORDER_ASC,\n SORT_ORDER_DESC,\n\n colWidths: UNDEFINED,\n sortKey,\n sortOrder,\n }\n },\n\n computed: {\n allChecked: {\n deps: ['selection', 'selection.length'],\n get(): boolean {\n const selection = this.get('selection')\n const list = this.get('list')\n return selection && list\n && selection.length > 0\n && selection.length === list.length\n },\n set(checked): void {\n let selection = this.get('selection')\n if (checked) {\n selection = this.get('list').map(\n function (item: any) {\n return item.key\n }\n )\n }\n else {\n selection = []\n }\n this.set('selection', selection)\n }\n },\n inlineStyle(): object[] | void {\n const result: object[] = []\n\n const customStyle: Record = {}\n\n const width = this.get('width')\n const height = this.get('height')\n\n if (width) {\n customStyle.width = toPixel(width)\n customStyle.overflowX = 'auto'\n }\n if (height) {\n customStyle.height = toPixel(height)\n customStyle.overflowY = 'auto'\n }\n\n if (Yox.object.keys(customStyle).length > 0) {\n result.push(customStyle)\n }\n\n const style = this.get('style')\n if (style) {\n result.push(style)\n }\n\n if (result.length > 0) {\n return result\n }\n },\n },\n\n watchers: {\n selection(selection) {\n this.fire(\n 'change.table',\n {\n selection,\n }\n )\n }\n },\n\n filters: {\n inArray: Yox.array.has,\n },\n\n methods: {\n\n allCheckedChange(event: CustomEventInterface, data: Data) {\n event.stop()\n this.set('allChecked', data.checked)\n },\n rowCheckedChange(event: CustomEventInterface, data: Data, index: number) {\n\n event.stop()\n\n let selection = this.get('selection')\n let key = this.get(`list.${index}.key`)\n\n if (data.checked) {\n if (!Yox.is.array(selection) || !Yox.array.has(selection, key)) {\n this.append('selection', key)\n }\n }\n else {\n this.remove('selection', key)\n }\n\n },\n clickButton(button: ButtonConfig, item: Data, index: number) {\n button.onClick(item, index)\n },\n sortColumn(key: string, order: string) {\n this.set({\n sortKey: key,\n sortOrder: order,\n })\n this.fire(\n 'sort',\n {\n key,\n order,\n }\n )\n },\n\n updateColumnWidths(totalWidth: number) {\n\n let columns = this.get('columns')\n if (!columns || !columns.length) {\n return\n }\n\n let colWidths: number[] = [], noWidths: number[] = [], widthSum = 0\n\n Yox.array.each(\n columns,\n function (col: any, index) {\n if (col.width > 0) {\n colWidths[index] = col.width\n widthSum += col.width\n }\n else if (col.key === 'selection') {\n colWidths[index] = 50\n widthSum += 50\n }\n else {\n noWidths.push(index)\n }\n }\n )\n\n totalWidth -= widthSum\n\n let noCount = noWidths.length\n if (totalWidth > 0 && noCount) {\n Yox.array.each(\n noWidths,\n function (index) {\n let colWidth = Math.floor(totalWidth / noCount)\n colWidths[index] = colWidth\n totalWidth -= colWidth\n noCount--\n }\n )\n }\n\n this.set('colWidths', colWidths)\n\n }\n\n },\n\n components: {\n Icon,\n Empty,\n Button,\n Checkbox,\n },\n\n afterMount() {\n const me = this\n readElementRectInfo(\n me.$el,\n function (rect: any) {\n me.updateColumnWidths(rect.width)\n }\n )\n }\n\n})\n","import Yox from 'yox'\n\nimport { BODY, TRUE, UNDEFINED } from '../constant'\n\nimport LoadingBar from './LoadingBar'\n\ninterface Config {\n type?: string,\n color?: string,\n height?: number,\n percent?: number\n}\n\nlet instance = UNDEFINED\n\nfunction add(props: Config | void) {\n\n const newProps = props ? Yox.object.copy(props) : {}\n newProps.fixed = TRUE\n\n instance = new Yox(\n Yox.object.extend(\n {\n el: BODY,\n props: newProps,\n },\n LoadingBar\n )\n )\n\n return instance\n\n}\n\nfunction remove() {\n if (instance) {\n instance.destroy()\n instance = UNDEFINED\n }\n}\n\n(Yox.prototype as any).$loadingBar = {\n // 开始从 0 显示进度条,并自动加载进度\n start(options?: Config) {\n if (instance) {\n remove()\n }\n return add(options)\n },\n // 结束进度条,自动补全剩余进度\n finish() {\n if (instance) {\n instance.set('percent', 100)\n setTimeout(remove, 300)\n }\n },\n // 精确加载到指定的进度\n update(data: Config) {\n if (instance) {\n instance.set(data)\n }\n }\n}\n\n\n","import Yox from 'yox'\n\nimport template from './template/Message.hbs'\n// import './style/Message.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n TRUE,\n FALSE,\n RAW_STRING,\n RAW_NUMERIC,\n RAW_BOOLEAN,\n RAW_STATUS_ARRAY,\n RAW_TYPE_INFO,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n toNumber,\n onTransitionEnd,\n getStatusIconName,\n} from '../util'\n\nconst CLASS_VISIBLE = '${prefix}message-visible'\nconst CLASS_FADE = '${prefix}message-fade'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Message',\n\n propTypes: {\n status: {\n type: oneOf(RAW_STATUS_ARRAY),\n value: RAW_TYPE_INFO,\n },\n content: {\n type: RAW_STRING,\n required: TRUE,\n },\n closable: {\n type: RAW_BOOLEAN,\n },\n duration: {\n type: RAW_NUMERIC,\n value: 2000,\n },\n gap: {\n type: RAW_NUMERIC,\n value: 12,\n },\n top: {\n type: RAW_NUMERIC,\n value: 15,\n },\n },\n\n data() {\n return {\n isVisible: FALSE,\n actualTop: 0,\n }\n },\n\n computed: {\n iconName(): string {\n return getStatusIconName(\n this.get('status')\n )\n },\n },\n\n methods: {\n move(distance: number) {\n\n const me = this\n if (!me.get('isVisible')) {\n return\n }\n\n const element = me.$el\n if (element) {\n const gap = toNumber(this.get('gap'))\n const actualTop = this.get('actualTop') - distance - gap\n me.set({\n actualTop,\n })\n element.style.top = toPixel(actualTop)\n }\n\n },\n show(height: number, count: number) {\n\n const me = this\n if (me.get('isVisible')) {\n return\n }\n\n const gap = toNumber(this.get('gap'))\n const top = toNumber(this.get('top')) + height + count * gap\n\n me.set({\n isVisible: TRUE,\n actualTop: top,\n })\n\n const element = me.$el\n Yox.dom.addClass(element, CLASS_VISIBLE)\n element.style.top = toPixel(top)\n\n setTimeout(\n function () {\n if (!me.$el) {\n return\n }\n\n Yox.dom.addClass(element, CLASS_FADE)\n\n const duration = toNumber(me.get('duration'))\n if (duration > 0) {\n setTimeout(\n function () {\n if (me.$el) {\n me.hide()\n }\n },\n duration\n )\n }\n },\n 50\n )\n\n },\n hide() {\n\n const me = this\n if (!me.get('isVisible')) {\n return\n }\n\n me.set({\n isVisible: FALSE,\n })\n\n const element = me.$el\n Yox.dom.removeClass(element, CLASS_FADE)\n\n onTransitionEnd(\n element,\n function () {\n if (!me.$el) {\n return\n }\n Yox.dom.removeClass(element, CLASS_VISIBLE)\n me.fire({\n type: 'hide',\n ns: 'message',\n })\n }\n )\n\n }\n },\n\n components: {\n Icon,\n },\n\n})","import Yox, { Data } from 'yox'\nimport { BODY, UNDEFINED } from '../constant'\n\ntype Item = {\n instance: Yox\n height: number\n}\n\nconst map: Record = {}\n\nexport function addComponent(component: Data, props: Data, hideEvent: string, onClose: Function | void) {\n\n const instance: Yox = new Yox(\n Yox.object.extend(\n {\n el: BODY,\n props,\n },\n component\n )\n )\n\n instance.on(hideEvent, function () {\n\n if (onClose) {\n onClose()\n }\n instance.destroy()\n\n // 通知后面的移位\n const originalList = map[hideEvent]\n const copyList = originalList.slice()\n let removed: Item | void = UNDEFINED\n for (let i = 0, len = copyList.length; i < len; i++) {\n const item = copyList[i]\n if (item.instance === instance) {\n removed = item\n originalList.splice(i, 1)\n }\n else if (removed) {\n // @ts-ignore\n item.instance.move(removed.height)\n }\n }\n\n })\n\n setTimeout(\n function () {\n if (instance.$el) {\n\n const list = map[hideEvent] || (map[hideEvent] = [])\n\n let height = 0\n let count = list.length\n\n for (let i = 0; i < count; i++) {\n height += list[i].height\n }\n\n // @ts-ignore\n instance.show(height, count)\n\n list.push({\n instance,\n height: instance.$el.clientHeight,\n })\n\n }\n },\n 300\n )\n\n}","import Yox, { Data } from 'yox'\n\nimport Message from './Message'\nimport { addComponent } from './util'\n\ntype Arg = {\n content: string\n closable?: boolean\n top?: number\n duration?: number\n onClose?: Function\n}\n\nconst config: Data = {}\n\nfunction addMessage(status: string, arg: string | Arg) {\n\n const props: Data = { status }\n let onClose: Function | void\n\n Yox.object.extend(props, config)\n\n if (Yox.is.string(arg)) {\n props.content = arg as string\n }\n else {\n onClose = (arg as Arg).onClose\n Yox.object.extend(props, arg as Arg)\n }\n\n addComponent(\n Message,\n props,\n 'hide.message',\n onClose\n )\n\n}\n\n(Yox.prototype as any).$message = {\n success(arg: string | Arg) {\n addMessage('success', arg)\n },\n info(arg: string | Arg) {\n addMessage('info', arg)\n },\n warning(arg: string | Arg) {\n addMessage('warning', arg)\n },\n error(arg: string | Arg) {\n addMessage('error', arg)\n },\n config(arg: {\n top: number,\n duration: number,\n }) {\n Yox.object.extend(config, arg)\n }\n}","import Yox from 'yox'\n\nimport template from './template/Alert.hbs'\n\nimport Button from '../button/Button'\nimport Dialog from '../dialog/Dialog'\n\nimport {\n TRUE,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_FUNCTION,\n RAW_TYPE_ARRAY,\n RAW_TYPE_PRIMARY,\n RAW_TYPE_INFO,\n} from '../constant'\n\nimport {\n getStatusIconName,\n oneOf,\n screenWidth,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Alert',\n\n propTypes: {\n title: {\n type: RAW_STRING,\n },\n content: {\n type: RAW_STRING,\n required: TRUE,\n },\n closable: {\n type: RAW_BOOLEAN,\n },\n width: {\n type: RAW_NUMERIC,\n value: screenWidth > 1024 ? 400 : 300,\n },\n okText: {\n type: RAW_STRING,\n value: '我知道了'\n },\n okType: {\n type: oneOf(RAW_TYPE_ARRAY),\n value: RAW_TYPE_PRIMARY,\n },\n onOk: {\n type: RAW_FUNCTION,\n }\n },\n\n data() {\n return {\n iconName: getStatusIconName(RAW_TYPE_INFO),\n }\n },\n\n events: {\n closed: {\n listener(event) {\n event.stop()\n this.destroy()\n },\n ns: 'dialog',\n }\n },\n\n methods: {\n ok() {\n (this.$refs.dialog as any).close()\n const onOk = this.get('onOk')\n if (onOk) {\n onOk()\n }\n }\n },\n\n components: {\n Button,\n Dialog,\n },\n\n afterMount() {\n const me = this\n setTimeout(\n function () {\n if (me.$refs) {\n (me.$refs.dialog as any).open()\n }\n },\n 30\n )\n }\n\n})","import Yox from 'yox'\n\nimport Button from '../button/Button'\nimport Dialog from '../dialog/Dialog'\nimport template from './template/Confirm.hbs'\n\nimport {\n TRUE,\n RAW_STRING,\n RAW_BOOLEAN,\n RAW_NUMERIC,\n RAW_FUNCTION,\n RAW_TYPE_ARRAY,\n RAW_TYPE_PRIMARY,\n RAW_TYPE_WARNING,\n} from '../constant'\n\nimport {\n getStatusIconName,\n oneOf,\n screenWidth,\n} from '../util'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Confirm',\n\n propTypes: {\n title: {\n type: RAW_STRING,\n },\n content: {\n type: RAW_STRING,\n required: TRUE,\n },\n closable: {\n type: RAW_BOOLEAN,\n },\n width: {\n type: RAW_NUMERIC,\n value: screenWidth > 1024 ? 400 : 300,\n },\n okText: {\n type: RAW_STRING,\n value: '确定',\n },\n okType: {\n type: oneOf(RAW_TYPE_ARRAY),\n value: RAW_TYPE_PRIMARY,\n },\n onOk: {\n type: RAW_FUNCTION,\n },\n cancelText: {\n type: RAW_STRING,\n value: '取消',\n },\n cancelType: {\n type: oneOf(RAW_TYPE_ARRAY),\n },\n onCancel: {\n type: RAW_FUNCTION,\n }\n },\n\n data() {\n return {\n iconName: getStatusIconName(RAW_TYPE_WARNING),\n }\n },\n\n events: {\n closed: {\n listener(event) {\n event.stop()\n this.destroy()\n },\n ns: 'dialog',\n }\n },\n\n methods: {\n ok() {\n (this.$refs.dialog as any).close()\n const onOk = this.get('onOk')\n if (onOk) {\n onOk()\n }\n },\n cancel() {\n (this.$refs.dialog as any).close()\n const onCancel = this.get('onCancel')\n if (onCancel) {\n onCancel()\n }\n },\n },\n\n components: {\n Button,\n Dialog,\n },\n\n afterMount() {\n const me = this\n setTimeout(\n function () {\n if (me.$refs) {\n (me.$refs.dialog as any).open()\n }\n },\n 30\n )\n }\n\n})","import Yox, { Data } from 'yox'\n\nimport { BODY } from '../constant'\n\nimport Alert from './Alert'\nimport Confirm from './Confirm'\n\ntype Arg = string | Data\n\nconst prototype = Yox.prototype as any\n\nprototype.$alert = function (data: Arg) {\n\n const props: Data = {}\n\n if (Yox.is.object(data)) {\n const obj = data as Data\n props.closable = obj.closable\n props.title = obj.title\n props.content = obj.content\n props.width = obj.width\n props.okText = obj.okText\n props.okType = obj.okType\n props.onOk = obj.onOk\n }\n else {\n props.content = data as string\n }\n\n new Yox(\n Yox.object.extend(\n {\n el: BODY,\n props,\n },\n Alert\n )\n )\n\n}\n\nprototype.$confirm = function (data: Arg) {\n\n const props: Data = {}\n\n if (Yox.is.object(data)) {\n const obj = data as Data\n props.closable = obj.closable\n props.title = obj.title\n props.content = obj.content\n props.width = obj.width\n props.okText = obj.okText\n props.okType = obj.okType\n props.onOk = obj.onOk\n props.cancelText = obj.cancelText\n props.cancelType = obj.cancelType\n props.onCancel = obj.onCancel\n }\n else {\n props.content = data as string\n }\n\n new Yox(\n Yox.object.extend(\n {\n el: BODY,\n props,\n },\n Confirm\n )\n )\n\n}\n","import Yox from 'yox'\n\nimport template from './template/Notification.hbs'\n// import './style/Notification.styl'\n\nimport Icon from '../icon/Icon'\n\nimport {\n TRUE,\n FALSE,\n RAW_STRING,\n RAW_NUMERIC,\n RAW_STATUS_ARRAY,\n} from '../constant'\n\nimport {\n oneOf,\n toPixel,\n toNumber,\n onTransitionEnd,\n getStatusIconName,\n} from '../util'\n\nconst CLASS_VISIBLE = '${prefix}notification-visible'\nconst CLASS_FADE = '${prefix}notification-fade'\n\nexport default Yox.define({\n\n template,\n\n name: '${prefix}Notification',\n\n propTypes: {\n title: {\n type: RAW_STRING,\n },\n content: {\n type: RAW_STRING,\n },\n status: {\n type: oneOf(RAW_STATUS_ARRAY),\n },\n duration: {\n type: RAW_NUMERIC,\n value: 4500,\n },\n gap: {\n type: RAW_NUMERIC,\n value: 16,\n },\n right: {\n type: RAW_NUMERIC,\n value: 15,\n },\n width: {\n type: RAW_NUMERIC,\n value: 320,\n },\n },\n\n data() {\n return {\n isVisible: FALSE,\n actualTop: 0,\n }\n },\n\n computed: {\n iconName(): string {\n return getStatusIconName(\n this.get('status')\n )\n },\n },\n\n methods: {\n move(distance: number) {\n\n const me = this\n if (!me.get('isVisible')) {\n return\n }\n\n const element = me.$el\n if (element) {\n const gap = toNumber(this.get('gap'))\n const actualTop = this.get('actualTop') - distance - gap\n me.set({\n actualTop,\n })\n element.style.top = toPixel(actualTop)\n }\n\n },\n show(height: number, count: number) {\n\n const me = this\n if (me.get('isVisible')) {\n return\n }\n\n const gap = toNumber(this.get('gap'))\n const width = toNumber(this.get('width'))\n const right = toNumber(this.get('right'))\n const top = 24 + height + count * gap\n\n me.set({\n isVisible: TRUE,\n actualTop: top,\n })\n\n const element = me.$el\n Yox.dom.addClass(element, CLASS_VISIBLE)\n element.style.top = toPixel(top)\n element.style.right = toPixel(right)\n element.style.width = toPixel(width)\n\n setTimeout(\n function () {\n if (!me.$el) {\n return\n }\n\n Yox.dom.addClass(element, CLASS_FADE)\n\n const duration = toNumber(me.get('duration'))\n if (duration > 0) {\n setTimeout(\n function () {\n if (me.$el) {\n me.hide()\n }\n },\n duration\n )\n }\n },\n 50\n )\n\n },\n\n hide() {\n\n const me = this\n if (!me.get('isVisible')) {\n return\n }\n\n me.set({\n isVisible: FALSE,\n })\n\n const element = me.$el\n Yox.dom.removeClass(element, CLASS_FADE)\n\n onTransitionEnd(\n element,\n function () {\n if (!me.$el) {\n return\n }\n Yox.dom.removeClass(element, CLASS_VISIBLE)\n me.fire({\n type: 'hide',\n ns: 'notification',\n })\n }\n )\n\n }\n },\n\n components: {\n Icon,\n }\n\n})","import Yox, { Data } from 'yox'\nimport { addComponent } from '../message/util'\n\nimport Notification from './Notification'\n\ntype Arg = {\n content: string\n title?: string\n right?: number\n width?: number\n duration?: number\n onClose?: Function\n}\n\ntype Config = {\n right?: number\n width?: number\n duration?: number\n}\n\nlet config: Config = {}\n\nfunction addNotification(status: string, arg: string | Arg) {\n\n let props: Data = { status }\n let onClose: Function | void\n\n // 先写 config,可支持 arg 覆盖全局配置\n Yox.object.extend(props, config)\n\n if (Yox.is.string(arg)) {\n props.content = arg\n }\n else {\n onClose = (arg as Arg).onClose\n Yox.object.extend(props, arg as Arg)\n }\n\n addComponent(\n Notification,\n props,\n 'hide.notification',\n onClose\n )\n\n}\n\n(Yox.prototype as any).$notification = {\n open(props: string | Arg) {\n addNotification('', props)\n },\n success(props: string | Arg) {\n addNotification('success', props)\n },\n info(props: string | Arg) {\n addNotification('info', props)\n },\n warning(props: string | Arg) {\n addNotification('warning', props)\n },\n error(props: string | Arg) {\n addNotification('error', props)\n },\n config(options: Config) {\n Yox.object.extend(config, options)\n }\n}","import Row from './component/grid/Row'\nimport Col from './component/grid/Col'\nimport Add from './component/add/Add'\nimport ColorSwatch from './component/color-swatch/ColorSwatch'\nimport Countdown from './component/countdown/Countdown'\nimport Closable from './component/closable/Closable'\nimport FooterBar from './component/footer-bar/FooterBar'\nimport ResizeObserver from './component/resize-observer/ResizeObserver'\n\nimport Menu from './component/menu/Menu'\nimport MenuItem from './component/menu/MenuItem'\nimport MenuGroup from './component/menu/MenuGroup'\nimport SubMenu from './component/menu/SubMenu'\n\nimport Icon from './component/icon/Icon'\nimport Text from './component/text/Text'\nimport Drawer from './component/drawer/Drawer'\nimport Guide from './component/guide/Guide'\n\nimport Breadcrumb from './component/breadcrumb/Breadcrumb'\nimport BreadcrumbItem from './component/breadcrumb/BreadcrumbItem'\n\nimport Button from './component/button/Button'\nimport ButtonGroup from './component/button/ButtonGroup'\nimport Input from './component/input/Input'\nimport InputNumber from './component/input-number/InputNumber'\nimport Textarea from './component/textarea/Textarea'\nimport Radio from './component/radio/Radio'\nimport RadioGroup from './component/radio/RadioGroup'\nimport Checkbox from './component/checkbox/Checkbox'\nimport CheckboxGroup from './component/checkbox/CheckboxGroup'\nimport ColorPicker from './component/color-picker/ColorPicker'\nimport Slider from './component/slider/Slider'\nimport Space from './component/space/Space'\nimport Statistic from './component/statistic/Statistic'\nimport Switch from './component/switch/Switch'\nimport Skeleton from './component/skeleton/Skeleton'\nimport Steps from './component/steps/Steps'\nimport Step from './component/steps/Step'\nimport Select from './component/select/Select'\nimport Option from './component/select/Option'\nimport OptionGroup from './component/select/OptionGroup'\n\nimport Pagination from './component/pagination/Pagination'\nimport Upload from './component/upload/Upload'\n\nimport Alert from './component/alert/Alert'\nimport Article from './component/article/Article'\nimport Analysis from './component/analysis/Analysis'\nimport AnalysisField from './component/analysis/AnalysisField'\nimport Spin from './component/spin/Spin'\nimport SplitButton from './component/split-button/SplitButton'\nimport BackTop from './component/backtop/BackTop'\nimport Avatar from './component/avatar/Avatar'\nimport Badge from './component/badge/Badge'\nimport DatePicker from './component/date-picker/DatePicker'\nimport TimePicker from './component/time-picker/TimePicker'\nimport ImagePicker from './component/image-picker/ImagePicker'\nimport Image from './component/image/Image'\n\nimport Tooltip from './component/tooltip/Tooltip'\n\nimport Carousel from './component/carousel/Carousel'\n\nimport Collapse from './component/collapse/Collapse'\nimport CollapseItem from './component/collapse/CollapseItem'\n\nimport Card from './component/card/Card'\nimport CardHeader from './component/card/CardHeader'\nimport CardMedia from './component/card/CardMedia'\nimport CardBody from './component/card/CardBody'\nimport CardFooter from './component/card/CardFooter'\n\nimport Cascader from './component/cascader/Cascader'\n\nimport PageHeader from './component/page-header/PageHeader'\n\nimport Layout from './component/layout/Layout'\nimport LayoutHeader from './component/layout/LayoutHeader'\nimport LayoutContent from './component/layout/LayoutContent'\nimport LayoutFooter from './component/layout/LayoutFooter'\nimport LayoutSider from './component/layout/LayoutSider'\n\nimport Link from './component/link/Link'\nimport List from './component/list/List'\nimport ListItem from './component/list/ListItem'\n\nimport Empty from './component/empty/Empty'\nimport Result from './component/result/Result'\nimport Exception from './component/exception/Exception'\nimport Divider from './component/divider/Divider'\n\nimport Circle from './component/circle/Circle'\nimport Popover from './component/popover/Popover'\nimport Popconfirm from './component/popconfirm/Popconfirm'\nimport Progress from './component/progress/Progress'\nimport Tree from './component/tree/Tree'\nimport Tag from './component/tag/Tag'\nimport Rate from './component/rate/Rate'\nimport Tabs from './component/tabs/Tabs'\nimport TabPanel from './component/tabs/TabPanel'\nimport Dropdown from './component/dropdown/Dropdown'\nimport DropdownItem from './component/dropdown/DropdownItem'\nimport DropdownMenu from './component/dropdown/DropdownMenu'\nimport Description from './component/description/Description'\nimport DescriptionItem from './component/description/DescriptionItem'\n\nimport Timeline from './component/timeline/Timeline'\nimport TimelineItem from './component/timeline/TimelineItem'\n\nimport Form from './component/form/Form'\nimport FormItem from './component/form/FormItem'\nimport Dialog from './component/dialog/Dialog'\nimport Table from './component/table/Table'\n\nimport './component/loading-bar'\nimport './component/message'\nimport './component/modal'\nimport './component/notification'\n\n/**\n * 版本\n */\nexport const version = process.env.NODE_VERSION\n\n/**\n * 安装插件\n */\nexport function install(Yox: any) {\n Yox.component({\n Row,\n Col,\n Add,\n ColorSwatch,\n Countdown,\n Closable,\n FooterBar,\n ResizeObserver,\n\n Menu,\n MenuItem,\n MenuGroup,\n SubMenu,\n Icon,\n Text,\n Drawer,\n Guide,\n\n Breadcrumb,\n BreadcrumbItem,\n\n Button,\n ButtonGroup,\n Input,\n InputNumber,\n Textarea,\n Radio,\n RadioGroup,\n Checkbox,\n CheckboxGroup,\n ColorPicker,\n Slider,\n Space,\n Statistic,\n Switch,\n Skeleton,\n Steps,\n Step,\n Select,\n Option,\n OptionGroup,\n Pagination,\n DatePicker,\n TimePicker,\n ImagePicker,\n Image,\n Upload,\n\n Tooltip,\n\n Alert,\n Article,\n Analysis,\n AnalysisField,\n Spin,\n SplitButton,\n BackTop,\n Avatar,\n Badge,\n\n Card,\n CardHeader,\n CardMedia,\n CardBody,\n CardFooter,\n\n Cascader,\n\n PageHeader,\n Layout,\n LayoutHeader,\n LayoutContent,\n LayoutFooter,\n LayoutSider,\n\n Carousel,\n Collapse,\n CollapseItem,\n Link,\n List,\n ListItem,\n Empty,\n Result,\n Exception,\n Divider,\n Circle,\n Progress,\n Popover,\n Popconfirm,\n Tree,\n Tag,\n Rate,\n Tabs,\n TabPanel,\n\n Dropdown,\n DropdownItem,\n DropdownMenu,\n\n Description,\n DescriptionItem,\n\n Timeline,\n TimelineItem,\n Form,\n FormItem,\n Dialog,\n Table,\n })\n}\n"],"names":["SECOND","CLASS_VISIBLE","CLASS_FADE","MINUTE","HOUR","DAY","Alert","config"],"mappings":";;;;;;;;;;;;;;;;EAAO,IAAM,IAAI,GAAG,IAAI,CAAA;AACxB,EAAO,IAAM,KAAK,GAAG,KAAK,CAAA;AAC1B,EAAO,IAAM,IAAI,GAAG,IAAI,CAAA;AACxB,EAAO,IAAM,SAAS,GAAG,KAAK,CAAC,CAAA;AAE/B,EAAO,IAAM,QAAQ,GAAG,MAAM,CAAA;AAC9B,EAAO,IAAM,SAAS,GAAG,OAAO,CAAA;AAChC,EAAO,IAAM,UAAU,GAAG,QAAQ,CAAA;AAClC,EAAO,IAAM,WAAW,GAAG,SAAS,CAAA;AACpC,EAAO,IAAM,WAAW,GAAG,SAAS,CAAA;AACpC,EAAO,IAAM,UAAU,GAAG,QAAQ,CAAA;AAClC,EAAO,IAAM,UAAU,GAAG,QAAQ,CAAA;AAClC,EAAO,IAAM,YAAY,GAAG,UAAU,CAAA;AAEtC,EAAO,IAAM,cAAc,GAAG,YAAY,CAAA;AAC1C,EAAO,IAAM,YAAY,GAAG,UAAU,CAAA;AACtC,EAAO,IAAM,UAAU,GAAG,QAAQ,CAAA;AAElC,EAAO,IAAM,SAAS,GAAG,OAAO,CAAA;AAChC,EAAO,IAAM,WAAW,GAAG,SAAS,CAAA;AACpC,EAAO,IAAM,SAAS,GAAG,OAAO,CAAA;AAEhC,EAAO,IAAM,UAAU,GAAG,QAAQ,CAAA;AAClC,EAAO,IAAM,SAAS,GAAG,OAAO,CAAA;AAEhC,EAAO,IAAM,SAAS,GAAG,OAAO,CAAA;AAChC,EAAO,IAAM,SAAS,GAAG,OAAO,CAAA;AAChC,EAAO,IAAM,UAAU,GAAG,QAAQ,CAAA;AAClC,EAAO,IAAM,UAAU,GAAG,QAAQ,CAAA;AAElC,EAAO,IAAM,UAAU,GAAG,QAAQ,CAAA;AAClC,EAAO,IAAM,UAAU,GAAG,QAAQ,CAAA;AAElC,EAAO,IAAM,QAAQ,GAAG,MAAM,CAAA;AAC9B,EAAO,IAAM,WAAW,GAAG,SAAS,CAAA;AACpC,EAAO,IAAM,UAAU,GAAG,QAAQ,CAAA;AAElC,EAAO,IAAM,WAAW,GAAG,SAAS,CAAA;AACpC,EAAO,IAAM,WAAW,GAAG,SAAS,CAAA;EACpC;AAEA,EAAO,IAAM,OAAO,GAAG,KAAK,CAAA;AAC5B,EAAO,IAAM,aAAa,GAAG,WAAW,CAAA;AACxC,EAAO,IAAM,WAAW,GAAG,SAAS,CAAA;AACpC,EAAO,IAAM,UAAU,GAAG,QAAQ,CAAA;AAClC,EAAO,IAAM,gBAAgB,GAAG,cAAc,CAAA;AAC9C,EAAO,IAAM,cAAc,GAAG,YAAY,CAAA;AAC1C,EAAO,IAAM,QAAQ,GAAG,MAAM,CAAA;AAC9B,EAAO,IAAM,cAAc,GAAG,YAAY,CAAA;AAC1C,EAAO,IAAM,YAAY,GAAG,UAAU,CAAA;AACtC,EAAO,IAAM,SAAS,GAAG,OAAO,CAAA;AAChC,EAAO,IAAM,eAAe,GAAG,aAAa,CAAA;AAC5C,EAAO,IAAM,aAAa,GAAG,WAAW,CAAA;AAExC,EAAO,IAAM,gBAAgB,GAAG,SAAS,CAAA;AACzC,EAAO,IAAM,gBAAgB,GAAG,SAAS,CAAA;AACzC,EAAO,IAAM,gBAAgB,GAAG,SAAS,CAAA;AACzC,EAAO,IAAM,cAAc,GAAG,OAAO,CAAA;AACrC,EAAO,IAAM,aAAa,GAAG,MAAM,CAAA;AACnC,EAAO,IAAM,eAAe,GAAG,QAAQ,CAAA;AACvC,EAAO,IAAM,aAAa,GAAG,MAAM,CAAA;AACnC,EAAO,IAAM,aAAa,GAAG,MAAM,CAAA;AACnC,EAAO,IAAM,cAAc,GAAG,OAAO,CAAA;AACrC,EAAO,IAAM,gBAAgB,GAAG,SAAS,CAAA;AACzC,EAAO,IAAM,cAAc,GAAG,OAAO,CAAA;AACrC,EAAO,IAAM,aAAa,GAAG,MAAM,CAAA;AAEnC,EAAO,IAAM,gBAAgB,GAAG,QAAQ,CAAA;AACxC,EAAO,IAAM,eAAe,GAAG,OAAO,CAAA;AAEtC,EAAO,IAAM,kBAAkB,GAAG,UAAU,CAAA;AAC5C,EAAO,IAAM,iBAAiB,GAAG,SAAS,CAAA;AAC1C,EAAO,IAAM,eAAe,GAAG,OAAO,CAAA;AACtC,EACO,IAAM,mBAAmB,GAAG,WAAW,CAAA;AAC9C,EAAO,IAAM,iBAAiB,GAAG,SAAS,CAAA;AAC1C,EAAO,IAAM,gBAAgB,GAAG,QAAQ,CAAA;AACxC,EAAO,IAAM,gBAAgB,GAAG,QAAQ,CAAA;AACxC,EAAO,IAAM,wBAAwB,GAAG,eAAe,CAAA;AAEvD,EAAO,IAAM,eAAe,GAAG,QAAQ,CAAA;AACvC,EAAO,IAAM,iBAAiB,GAAG,eAAe,GAAG,UAAU,CAAA;AAE7D,EAAO,IAAM,QAAQ,GAAG,MAAM,CAAA;AAC9B,EAAO,IAAM,SAAS,GAAG,OAAO,CAAA;AAEhC,EAAO,IAAM,gBAAgB,GAAG,0CAA0C,CAAA;AAE1E,EAAO,IAAM,eAAe,GAAG;MAC7B,QAAQ;MACR,SAAS,EACV,CAAA;AAED,EAAO,IAAM,gBAAgB,GAAG;MAC9B,aAAa;MACb,gBAAgB;MAChB,gBAAgB;MAChB,cAAc,EACf,CAAA;AAED,EAAO,IAAM,cAAc,GAAG;MAC5B,gBAAgB;MAChB,aAAa;MACb,gBAAgB;MAChB,gBAAgB;MAChB,cAAc,EACf,CAAA;AAED,EAAO,IAAM,cAAc,GAAG;MAC5B,SAAS;MACT,WAAW;MACX,SAAS,EACV,CAAA;AAED,EAAO,IAAM,mBAAmB,GAAG;MACjC,OAAO;MACP,aAAa;MACb,WAAW;MACX,UAAU;MACV,gBAAgB;MAChB,cAAc;MACd,QAAQ;MACR,cAAc;MACd,YAAY;MACZ,SAAS;MACT,eAAe;MACf,aAAa;GACd,CAAA;AAED,EAAO,IAAM,cAAc,GAAG;MAC5B,UAAU;MACV,UAAU;MACV,SAAS,EACV,CAAA;AAED,EAAO,IAAM,MAAM,GAAG,MAAM,CAAA;AAC5B,EAAO,IAAM,QAAQ,GAAG,QAAQ,CAAA;AAChC,EAAO,IAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;AAEjC,EAAO,IAAM,WAAW,GAAG,GAAG,CAAA;;ECxI9B,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;EAE7C,IAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;EAE5C,SAAS,OAAO,CAAC,QAAgB;MAE/B,IAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;YAClC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;MAEjC,IAAM,IAAI,GAAG,CAAC,QAAQ;YACV,GAAG;YACH,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YAC7B,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;MAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;UAC/C,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE;cAC5B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;WACf;OACF;EAEH,CAAC;AAED,EAAO,IAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAA;EAEnD,IAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,eAAe,GAAG,EAAE,CAAA;AAElE,EAAO,IAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;AAC3D,EAAO,IAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;AACnE,EAAO,IAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;AAE3D,WAAgB,eAAe,CAAC,EAAe,EAAE,QAAoB;;MAEnE,IAAI,aAAa,KAAK,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE;UACxD,IAAM,UAAQ,GAAG;cACf,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,UAAoB,CAAC,CAAA;cACpD,QAAQ,EAAE,CAAA;WACX,CAAA;UACD,GAAG,CAAC,GAAG,CAAC,EAAE,CACR,EAAE,EACF,aAAa,EACb,UAAQ,CACT,CAAA;OACF;WACI;UACH,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;OACvB;EACH,CAAC;EAGD,IAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,KAAK,SAAS,CAAA;EAC1D,IAAM,YAAY,GAAG,QAAQ,CAAC,UAAU,KAAK,YAAY,CAAA;AAEzD,WAAgB,QAAQ;MACtB,OAAO,iBAAiB;YACpB,MAAM,CAAC,WAAW;YAClB,YAAY;gBACV,QAAQ,CAAC,eAAe,CAAC,UAAU;gBACnC,IAAI,CAAC,UAAU,CAAA;EACvB,CAAC;AAED,WAAgB,QAAQ;MACtB,OAAO,iBAAiB;YACpB,MAAM,CAAC,WAAW;YAClB,YAAY;gBACV,QAAQ,CAAC,eAAe,CAAC,SAAS;gBAClC,IAAI,CAAC,SAAS,CAAA;EACtB,CAAC;AAED,EAAO,IAAM,qBAAqB,IAChC,MAAM,CAAC,qBAAqB;MAC5B,MAAM,CAAC,6BAA6B,CAAC;MACrC,MAAM,CAAC,0BAA0B,CAAC;MAClC,MAAM,CAAC,yBAAyB,CAAC;MACjC,UAAU,QAAQ;UAChB,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;OAC9C,CACF,CAAA;AAED,WAAgB,mBAAmB,CAAC,OAAoB,EAAE,QAAgC;MAExF,IAAM,QAAQ,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAA;MAChD,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;UAC7C,QAAQ,CAAC,QAAQ,CAAC,CAAA;UAClB,OAAM;OACP;MAED,UAAU,CACR;UACE,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;OACvC,EACD,EAAE,CACH,CAAA;EAEH,CAAC;AAED,WAAgB,QAAQ,CAAC,OAAoB,EAAE,MAAmB;MAChE,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;UAChD,OAAO,IAAI,CAAA;OACZ;WACI,IAAI,OAAO,CAAC,uBAAuB,IAAI,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE;UACxF,OAAO,IAAI,CAAA;OACZ;MACD,OAAO,KAAK,CAAA;EACd,CAAC;AAED,WAAgB,QAAQ,CAAC,KAAU,EAAE,YAAkB;MACrD,OAAO,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YACxB,CAAC,KAAK;YACN,YAAY,KAAK,SAAS;gBACxB,YAAY;gBACZ,CAAC,CAAA;EACT,CAAC;AAED,WAAgB,QAAQ,CAAC,KAAU,EAAE,YAAkB;MACrD,IAAI,KAAK,IAAI,IAAI,EAAE;UACjB,OAAO,YAAY,KAAK,SAAS;gBAC7B,YAAsB;gBACtB,EAAE,CAAA;OACP;MACD,OAAO,EAAE,GAAG,KAAK,CAAA;EACnB,CAAC;AAED,WAMgB,OAAO,CAAC,KAAa;MACnC,OAAO,KAAK,GAAG,IAAI,CAAA;EACrB,CAAC;AAED,WAAgB,SAAS,CAAC,KAAa;MACrC,OAAO,KAAK,GAAG,GAAG,CAAA;EACpB,CAAC;AAED,WAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAgC;MAC1E,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;UACrC,aAAa,GAAG,CAAE,aAAa,CAAE,CAAA;OAClC;WACI;UACH,aAAa,GAAG,aAAa,CAAA;OAC9B;MAED,OAAO,MAAM,EAAE;UACP,IAAA,2BAAI,CAAoB;UAC9B,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE;cAC9C,MAAK;WACN;eACI;cACH,MAAM,GAAG,MAAM,CAAC,OAAO,CAAA;WACxB;OACF;MAED,OAAO,MAAM,CAAA;EACf,CAAC;AAED,WAAgB,KAAK,CAAC,MAAa;MACjC,OAAO,UAAU,GAAW,EAAE,KAAU,EAAE,aAAiC;;UAGzE,IAAI,KAAK,KAAK,SAAS,EAAE;cACvB,OAAM;WACP;;UAGD,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;cACvC,OAAM;WACP;UAED,GAAG,CAAC,MAAM,CAAC,IAAI,CAAI,GAAG,4BAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,2DAAc,KAAK,YAAI,EAAE,aAAa,CAAC,CAAA;OAEtF,CAAA;EACH,CAAC;AAED,WAAgB,UAAU;MACxB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAA;EACnB,CAAC;EAED,IAAM,MAAM,GAAG,IAAI,CAAA;EACnB,IAAM,MAAM,GAAG,EAAE,GAAG,MAAM,CAAA;EAC1B,IAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAA;EACxB,IAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAA;AAErB,WAAgB,iBAAiB,CAC/B,KAAa,EACb,OAIC;MAGK,IAAA,uBAAM,EAAE,yBAAO,EAAE,2BAAQ,CAAY;MAE3C,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;MACxC,IAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;MACzC,IAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;MAC3C,IAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;MAE3C,IAAI,GAAG,GAAG,CAAC,CAAA;MACX,IAAI,OAAO,EAAE;UACX,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;UAC7B,KAAK,IAAI,GAAG,CAAA;OACb;MAED,IAAI,IAAI,GAAG,CAAC,CAAA;MACZ,IAAI,QAAQ,EAAE;UACZ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;UAC/B,KAAK,IAAI,IAAI,CAAA;OACd;MAED,IAAI,MAAM,GAAG,CAAC,CAAA;MACd,IAAI,UAAU,EAAE;UACd,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAA;UACnC,KAAK,IAAI,MAAM,CAAA;OAChB;MAED,IAAI,MAAM,GAAG,CAAC,CAAA;MACd,IAAI,UAAU,EAAE;UACd,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAA;UACnC,KAAK,IAAI,MAAM,CAAA;OAChB;MAED,IAAI,CAAC,GAAG,IAAI,OAAO,EAAE;UACnB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;UACpD,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;cACrB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;WACrD;OACF;MAED,OAAO,MAAM;WACV,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;WAC5B,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;WAC3B,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;WAC7B,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;WAC5B,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;WAC/B,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;WAC9B,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;WAClC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;WAC/B,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;EAEnC,CAAC;AAED,WAAgB,QAAQ,CAAC,KAAa,EAAE,MAAU;MAAV,uBAAA,EAAA,UAAU;MAEhD,IAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;MAE5B,IAAM,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;MAC5C,IAAI,WAAW,GAAG,CAAC,EAAE;UACnB,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;OAChD;MAED,OAAO,IAAI,CAAA;EAEb,CAAC;AAED,WAAgB,QAAQ,CACtB,OAA6B,EAC7B,IAAgB,EAChB,EAAU,EACV,QAAsB,EACtB,QAAqB;MAHrB,qBAAA,EAAA,QAAgB;MAEhB,yBAAA,EAAA,cAAsB;MAItB,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;MACtC,IAAM,IAAI,GAAG,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,QAAQ,GAAG,EAAE,CAAC,GAAG,UAAU,CAAA;MAE9E,SAAS,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI;UAC9B,IAAI,KAAK,KAAK,GAAG,EAAE;cACjB,IAAI,QAAQ,EAAE;kBACZ,QAAQ,EAAE,CAAA;eACX;cACD,OAAM;WACP;UAED,IAAI,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,KAAK,GAAG,IAAI,CAAA;UACxD,IAAI,KAAK,GAAG,GAAG,EAAE;cACf,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,KAAK,GAAG,IAAI,CAAA;WACrD;UAED,IAAI,OAAO,KAAK,MAAM,EAAE;cACtB,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;WACpC;eACI;cACF,OAAuB,CAAC,SAAS,GAAG,QAAQ,CAAA;WAC9C;UACD,qBAAqB,CAAC;cACpB,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;WAC5B,CAAC,CAAA;OACH;MACD,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;EACxB,CAAC;AAED,WAAgB,iBAAiB,CAAC,MAAc;MAC9C,OAAO,MAAM,KAAK,gBAAgB;YAC9B,sBAAsB;YACtB,MAAM,KAAK,gBAAgB;gBACzB,oBAAoB;gBACpB,MAAM,KAAK,cAAc;oBACvB,mBAAmB;oBACnB,kBAAkB,CAAA;EAC5B,CAAC;AAED,WAAgB,cAAc,CAAC,IAAqB,EAAE,QAAiB,EAAE,QAAiB,EAAE,KAAW;MACrG,IAAM,MAAM,GAAa,EAAE,CAAA;MAE3B,IAAI,IAAI,EAAE;UACR,IAAM,QAAQ,GAA2B,EAAE,CAAA;UAC3C,IAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;UAC7B,IAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;UAC3B,IAAI,cAAc,EAAE;cAClB,IAAI,aAAa,GAAG,CAAC,EAAE;kBACrB,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;eAC5C;cACD,IAAI,WAAW,GAAG,CAAC,EAAE;kBACnB,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;eACvC;WACF;eACI,IAAI,QAAQ;kBACX,WAAW,GAAG,CAAC,IAAI,QAAQ,CAAC,EAChC;cACA,QAAQ,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC,WAAW,CAAC,CAAA;WAC9C;UACD,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;cACxC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;WACtB;OACF;MAED,IAAI,KAAK,EAAE;UACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;OACnB;MAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;UACrB,OAAO,MAAM,CAAA;OACd;EACH,CAAC;AAED,WAAgB,cAAc,CAAC,IAAqB,EAAE,QAAiB,EAAE,QAAiB,EAAE,KAA8B;MACxH,IAAM,MAAM,GAA2B,KAAK,IAAI,EAAE,CAAA;MAClD,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;UAC3B,IAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;UAC7B,IAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;UAC3B,IAAI,QAAQ,EAAE;cACZ,IAAI,WAAW,GAAG,CAAC,EAAE;kBACnB,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;eAC3C;WACF;eACI;cACH,IAAI,aAAa,GAAG,CAAC,EAAE;kBACrB,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;eAC5C;cACD,IAAI,WAAW,GAAG,CAAC,IAAI,QAAQ,EAAE;kBAC/B,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;eAC3C;WACF;OACF;MACD,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;UACtC,OAAO,MAAM,CAAA;OACd;EACH,CAAC;;ECvWD,IAAM,aAAa,GAA+B;MAChD,EAAE,EAAE,oBAAoB;MACxB,EAAE,EAAE,oBAAoB;MACxB,EAAE,EAAE,oBAAoB;MACxB,EAAE,EAAE,oBAAoB;MACxB,EAAE,EAAE,qBAAqB;MACzB,GAAG,EAAE,qBAAqB;GAC3B,CAAA;AAED,EAAO,IAAM,eAAe,GAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;EAElF,SAAS,eAAe,CAAC,QAA+D;MACtF,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,eAAe,EACf,UAAU,GAAG;UACX,QAAQ,CACN,GAAG,EACH,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CACtC,CAAA;OACF,CACF,CAAA;EACH,CAAC;EAED,SAAS,oBAAoB;MAC3B,IAAI,MAAkB,CAAA;MACtB,eAAe,CACb,UAAU,UAAU,EAAE,GAAG;UACvB,IAAI,GAAG,CAAC,OAAO,EAAE;cACf,MAAM,GAAG,UAAU,CAAA;WACpB;OACF,CACF,CAAA;MACD,OAAO,MAAM,CAAA;EACf,CAAC;EAED,IAAM,KAAK,GAAG,IAAI,GAAG,CAAC;MACpB,IAAI,EAAE;UACJ,UAAU,EAAE,oBAAoB,EAAE;OACnC;GACF,CAAC,CAAA;EAEF,eAAe,CACb,UAAU,UAAU,EAAE,GAAG;MACvB,IAAM,QAAQ,GAAG,UAAU,KAA2B;UACpD,IAAI,KAAK,CAAC,OAAO,EAAE;cACjB,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;WACpC;eACI,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,UAAU,EAAE;cAC/C,KAAK,CAAC,GAAG,CACP,YAAY,EACZ,oBAAoB,EAAE,CACvB,CAAA;WACF;OACF,CAAA;MACD,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;EAC3B,CAAC,CACF,CAAA;AAED,WAAgB,aAAa;MAC3B,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;EAChC,CAAC;AAED,WAAgB,eAAe,CAAC,OAAgB;MAC9C,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;EACpC,CAAC;AAED,WAAgB,iBAAiB,CAAC,OAAgB;MAChD,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;EACtC,CAAC;AAED,WAAgB,WAAW,CAAC,UAA6B,EAAE,MAAuC;MAEhG,IAAI,MAAM,GAAG,CAAC,EAAE;UACd,OAAO,MAAM,CAAA;OACd;WACI,IAAI,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;;UAE5C,IAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;UACtD,IAAI,UAAU,IAAI,CAAC,EAAE;cACnB,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;kBACpC,IAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;kBACxC,IAAI,KAAK,GAAG,CAAC,EAAE;sBACb,OAAO,KAAK,CAAA;mBACb;eACF;WACF;OACF;EAEH,CAAC;;AC7DD,YAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,UAAA;MAER,IAAI,EAAE,UAAc;MAEpB,SAAS,EAAE;UACT,MAAM,EAAE;cACN,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC;WAC3C;UACD,OAAO,EAAE;cACP,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;cACxE,KAAK,EAAE,OAAO;WACf;UACD,KAAK,EAAE;cACL,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;cAC9C,KAAK,EAAE,OAAO;WACf;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,UAAU,EAAE,aAAa,EAAE;WAC5B,CAAA;OACF;MAED,QAAQ,EAAE;UACR,gBAAgB;cACd,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;cAC/B,IAAI,MAAM,EAAE;kBACV,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;sBACzB,MAAM,GAAG,CAAC,MAAM,CAAC,CAAA;mBAClB;kBACD,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;kBACzC,OAAO;sBACL,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;sBAClC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EACnC,CAAA;eACF;WACF;UACD,WAAW,EAAX;cAEE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,WAAW,GAAoC,EAAE,CAAA;cAEvD,IAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;cACrD,IAAI,gBAAgB,EAAE;kBACpB,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;sBAC3B,IAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;sBAC1D,WAAW,CAAC,UAAU,GAAG,gBAAgB,CAAA;sBACzC,WAAW,CAAC,WAAW,GAAG,gBAAgB,CAAA;mBAC3C;kBACD,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;sBAC3B,IAAI,cAAc,EAAE;0BAClB,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;uBAClD;2BACI;0BACH,IAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;0BACxD,WAAW,CAAC,SAAS,GAAG,cAAc,CAAA;0BACtC,WAAW,CAAC,YAAY,GAAG,cAAc,CAAA;uBAC1C;mBACF;eACF;cAED,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;kBAC3C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;eACzB;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WAEF;OACF;MAED,QAAQ,EAAE;UACR,QAAQ,YAAC,QAAQ;cACf,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,KAAK;eACV,EACD;kBACE,QAAQ,UAAA;eACT,EACD,IAAI,CACL,CAAA;WACF;UACD,UAAU,YAAC,UAAU;cACnB,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,KAAK;eACV,EACD;kBACE,UAAU,YAAA;eACX,EACD,IAAI,CACL,CAAA;WACF;UACD,gBAAgB,YAAC,gBAAgB;cAC/B,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,KAAK;eACV,EACD;kBACE,gBAAgB,kBAAA;eACjB,EACD,IAAI,CACL,CAAA;WACF;OACF;MAED,UAAU;UAER,IAAM,EAAE,GAAG,IAAI,CAAA;UACf,IAAM,OAAO,GAAG,UAAU,KAAK;cAC7B,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;WAC5B,CAAA;UAED,eAAe,CAAC,OAAO,CAAC,CAAA;UAExB,IAAM,OAAO,GAAG,UAAU,SAAS;cACjC,IAAI,SAAS,KAAK,EAAE,EAAE;kBACpB,iBAAiB,CAAC,OAAO,CAAC,CAAA;kBAC1B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;eACrD;WACF,CAAA;UACD,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;OAEpD;GACF,CAAC,CAAA;;;;AC5JF,YAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,UAAc;MAEpB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;WAC/B;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;WAClB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;WAClB;UACD,EAAE,EAAE;cACF,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;WAChC;UACD,EAAE,EAAE;cACF,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;WAChC;UACD,EAAE,EAAE;cACF,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;WAChC;UACD,EAAE,EAAE;cACF,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;WAChC;UACD,EAAE,EAAE;cACF,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;WAChC;UACD,GAAG,EAAE;cACH,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;WAChC;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UACV,IAAM,GAAG,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,UAAc,CAAC,CAAA;UAC/D,OAAO;cACL,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;cAC7B,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC;cACjC,gBAAgB,EAAE,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC;WAC9C,CAAA;OACF;MAED,MAAM,EAAE;UACN,MAAM,EAAE;cACN,QAAQ,YAAC,CAAC,EAAE,IAAI;kBACd,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;eACf;cACD,EAAE,EAAE,KAAK;WACV;OACF;MAED,QAAQ,EAAE;UACR,eAAe,EAAf;cACE,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAM,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;cAEvC,IAAM,cAAc,GAAG,eAAe,CAAC,GAAG,CACxC,UAAU,UAAU;kBAClB,OAAO,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;eAC1B,CACF,CAAA;cAED,IAAI,cAA6B,CAAA;cACjC,IAAI,gBAA6B,CAAA;cACjC,IAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;cACtD,IAAI,UAAU,IAAI,CAAC,EAAE;kBACnB,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;sBACpC,IAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;sBAC/B,IAAI,KAAK,EAAE;0BACT,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;0BACnC,gBAAgB,GAAG,KAAK,CAAA;0BACxB,MAAK;uBACN;mBACF;eACF;cAED,IAAI,gBAAgB,EAAE;kBACpB,IAAM,MAAM,GAAa,EAAE,CAAA;kBAC3B,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;sBAC3B,IAAA,4BAAI,EAAE,8BAAK,EAAE,gCAAM,EAAE,4BAAI,EAAE,4BAAI,CAAqB;sBAC5D,IAAI,IAAI,EAAE;0BACR,MAAM,CAAC,IAAI,CAAC,WAAe,GAAG,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC,CAAA;uBAC3D;sBACD,IAAI,KAAK,EAAE;0BACT,MAAM,CAAC,IAAI,CAAC,WAAe,GAAG,cAAc,GAAG,SAAS,GAAG,KAAK,CAAC,CAAA;uBAClE;sBACD,IAAI,MAAM,EAAE;0BACV,MAAM,CAAC,IAAI,CAAC,WAAe,GAAG,cAAc,GAAG,UAAU,GAAG,MAAM,CAAC,CAAA;uBACpE;sBACD,IAAI,IAAI,EAAE;0BACR,MAAM,CAAC,IAAI,CAAC,WAAe,GAAG,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAA;uBAChE;sBACD,IAAI,IAAI,EAAE;0BACR,MAAM,CAAC,IAAI,CAAC,WAAe,GAAG,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAA;uBAChE;mBACF;uBACI,IAAI,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;sBACzC,MAAM,CAAC,IAAI,CAAC,WAAe,GAAG,cAAc,GAAG,GAAG,GAAG,gBAAgB,CAAC,CAAA;mBACvE;kBACD,IAAI,MAAM,CAAC,MAAM,EAAE;sBACjB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;mBACxB;eACF;WAEF;UACD,WAAW,EAAX;cAEE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,WAAW,GAAoC,EAAE,CAAA;cAEvD,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC7B,IAAI,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;kBACxB,WAAW,CAAC,IAAI,GAAM,IAAI,SAAI,IAAI,UAAO,CAAA;eAC1C;mBACI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;kBACpC,WAAW,CAAC,IAAI,GAAG,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;wBACtD,SAAO,IAAM;wBACb,IAAI,CAAA;eACT;cAED,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;;;cAGrC,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE;kBACjC,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAA;eACzB;cAED,IAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;cACrD,IAAI,gBAAgB,EAAE;kBACpB,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;sBAC3B,IAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;sBACzD,WAAW,CAAC,WAAW,GAAG,gBAAgB,CAAA;sBAC1C,WAAW,CAAC,YAAY,GAAG,gBAAgB,CAAA;mBAC5C;kBACD,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE;sBAC9C,IAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;sBACvD,WAAW,CAAC,UAAU,GAAG,cAAc,CAAA;sBACvC,WAAW,CAAC,aAAa,GAAG,cAAc,CAAA;mBAC3C;eACF;cAED,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;kBAC3C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;eACzB;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WAEF;OACF;GACF,CAAC,CAAA;;;;;;ACpLF,aAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,WAAe;MAErB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,UAAU;cAChB,QAAQ,EAAE,IAAI;WACf;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,WAAW,GAA2B,EAAE,CAAA;cAE9C,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAE7B,IAAI,KAAK,EAAE;kBACT,WAAW,CAAC,KAAK,GAAG,KAAK,CAAA;eAC1B;cACD,IAAI,IAAI,GAAG,CAAC,EAAE;kBACZ,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;eACrC;cAED,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;kBAC3C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;eACzB;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;OACF;GACF;;AC3DD,YAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,UAAc;MAEpB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,GAAG;WACX;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,GAAG;WACX;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,WAAW,EAAX;cAEE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;cAEjC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;kBACrB,MAAM,CAAC,IAAI,CAAC;sBACV,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;mBACxB,CAAC,CAAA;eACH;mBACI;kBACH,MAAM,CAAC,IAAI,CAAC;sBACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;sBACrB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;mBACxB,CAAC,CAAA;eACH;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF,CAAC,CAAA;;;;ECjEF,IAAM,UAAU,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAE1B,oBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,kBAAsB;MAE5B,SAAS,EAAE;UACT,QAAQ,EAAE;cACR,IAAI,EAAE,SAAS;WAChB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,eAAe,EAAf;cACE,OAAO,cAAc,CACnB,UAAU,EACV,KAAK,EACL,IAAI,EACJ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAClB,CAAA;WACF;UACD,eAAe,EAAf;cACE,OAAO,cAAc,CACnB,UAAU,EACV,KAAK,EACL,IAAI,CACL,CAAA;WACF;OACF;MAED,OAAO,EAAE;UACP,YAAY,EAAZ,UAAa,KAAa;cACxB,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,aAAa;eAClB,EACD;kBACE,KAAK,OAAA;eACN,CACF,CAAA;WACF;OACF;GAEF,CAAC,CAAA;;;;ECnDF,IAAMA,QAAM,GAAG,IAAI,CAAA;AAEnB,kBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,gBAAoB;MAE1B,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,aAAa;cACX,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;cACzC,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAA;cAC/C,OAAO,iBAAiB,CAAC,KAAK,EAAE,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;WAC5C;OACF;MAED,UAAU,EAAV;UAEE,IAAM,EAAE,GAAG,IAAI,CAAA;UAEf,IAAI,KAAoB,CAAA;UACxB,IAAI,IAAY,CAAA;UAEhB,IAAM,UAAU,GAAG;cACjB,IAAI,KAAK,EAAE;kBACT,aAAa,CAAC,KAAK,CAAC,CAAA;kBACpB,KAAK,GAAG,SAAS,CAAA;eAClB;WACF,CAAA;UAED,IAAM,IAAI,GAAG;cACX,IAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;cACvC,IAAI,QAAiB,CAAA;cACrB,IAAI,KAAK,GAAG,CAAC,EAAE;kBACb,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,CAAA;kBAC1C,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;kBACzB,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAA;kBACxB,EAAE,CAAC,IAAI,CACL;sBACE,IAAI,EAAE,QAAQ;sBACd,EAAE,EAAE,WAAW;mBAChB,EACD;sBACE,KAAK,EAAE,QAAQ;mBAChB,CACF,CAAA;eACF;mBACI;kBACH,QAAQ,GAAG,IAAI,CAAA;eAChB;cAED,IAAI,QAAQ,EAAE;kBACZ,UAAU,EAAE,CAAA;kBACZ,EAAE,CAAC,IAAI,CACL;sBACE,IAAI,EAAE,QAAQ;sBACd,EAAE,EAAE,WAAW;mBAChB,CACF,CAAA;eACF;WACF,CAAA;UAED,EAAE,CAAC,KAAK,CACN,MAAM,EACN,UAAU,QAAQ;cAChB,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAEA,QAAM,CAAC,CAAA;cACjC,UAAU,EAAE,CAAA;cACZ,IAAI,IAAI,GAAG,CAAC,EAAE;kBACZ,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;eACvC;WACF,EACD,IAAI,CACL,CAAA;UAED,IAAM,OAAO,GAAG,UAAU,SAAS;cACjC,IAAI,SAAS,KAAK,EAAE,EAAE;kBACpB,UAAU,EAAE,CAAA;kBACZ,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;eACrD;WACF,CAAA;UACD,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;OAEpD;GAEF,CAAC,CAAA;;;;AC1GF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;WACrC;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,UAAU,YAAA;cACV,SAAS,WAAA;WACV,CAAA;OACF;GAEF,CAAC,CAAA;;;;AClCF,kBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,gBAAoB;MAE1B,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;cACvC,KAAK,EAAE,QAAQ;WAChB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GAEF;;;;AChBD,yBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,qBAAyB;MAE/B,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;OACF;MAED,UAAU,EAAV;UAEE,IAAM,EAAE,GAAG,IAAI,CAAA;UACf,IAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAA;UACtB,IAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;UAE1C,IAAI,QAAa,CAAA;UACjB,IAAI,cAAsB,CAAA;UAC1B,IAAI,WAAmB,CAAA;UACvB,IAAI,YAAoB,CAAA;UAExB,IAAM,YAAY,GAAG,UAAU,KAAa,EAAE,MAAc;cAC1D,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE;kBAC3B,WAAW,GAAG,KAAK,CAAA;kBACnB,YAAY,GAAG,MAAM,CAAA;;kBAGrB,IAAI,KAAK,GAAG,CAAC,EAAE;sBACb,IAAM,GAAG,GAAG,UAAU,EAAE,CAAA;sBACxB,IAAM,IAAI,GAAG,cAAc,GAAG,CAAC,GAAG,GAAG,GAAG,cAAc,GAAG,KAAK,CAAA;sBAC9D,IAAI,CAAC,QAAQ,EAAE;0BACb,cAAc,GAAG,GAAG,CAAA;0BACpB,QAAQ,GAAG,UAAU,CACnB,UAAU,EACV,IAAI,CACL,CAAA;0BACD,OAAM;uBACP;sBACD,IAAI,IAAI,GAAG,CAAC,EAAE;0BACZ,YAAY,CAAC,QAAQ,CAAC,CAAA;0BACtB,QAAQ,GAAG,UAAU,CACnB,UAAU,EACV,KAAK,CACN,CAAA;0BACD,OAAM;uBACP;mBACF;kBACD,UAAU,EAAE,CAAA;eAEb;WACF,CAAA;UAED,IAAM,UAAU,GAAG;cACjB,IAAI,QAAQ,EAAE;kBACZ,cAAc,GAAG,CAAC,CAAA;kBAClB,YAAY,CAAC,QAAQ,CAAC,CAAA;eACvB;cACD,EAAE,CAAC,IAAI,CACL;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,gBAAgB;eACrB,EACD;kBACE,KAAK,EAAE,WAAW;kBAClB,MAAM,EAAE,YAAY;eACrB,CACF,CAAA;WACF,CAAA;UAED,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;;UAGvD,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;;cAEzC,IAAM,gBAAc,GAAG,IAAI,cAAc,CACvC,UAAU,OAAO;kBACT,IAAA,2BAA0C,EAAxC,gBAAK,EAAE,kBAAiC,CAAA;kBAChD,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;eAC5B,CACF,CAAA;cACD,gBAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;cAE/B,IAAM,SAAO,GAAG,UAAU,SAAS;kBACjC,IAAI,SAAS,KAAK,EAAE,EAAE;sBACpB,gBAAc,CAAC,UAAU,EAAE,CAAA;sBAC3B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,EAAE,SAAO,CAAC,CAAA;mBACrD;eACF,CAAA;cACD,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,wBAAwB,EAAE,SAAO,CAAC,CAAA;WACpD;OAEF;GAEF,CAAC,CAAA;;;;ACtFF,aAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,WAAe;MAErB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,cAAc,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;cACvD,KAAK,EAAE,cAAc;WACtB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC;cAC5B,KAAK,EAAE,SAAS;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,SAAS;cACf,KAAK;kBACH,OAAO,EAAE,CAAA;eACV;WACF;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,UAAU,EAAV,UAAW,UAAmB;cAC5B,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,YAAY;kBAClB,EAAE,EAAE,MAAM;eACX,EACD,EAAE,UAAU,YAAA,EAAE,EACd,IAAI,CACL,CAAA;WACF;UACD,SAAS,EAAT,UAAU,SAAkB;cAC1B,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,WAAW;kBACjB,EAAE,EAAE,MAAM;eACX,EACD,EAAE,SAAS,WAAA,EAAE,EACb,IAAI,CACL,CAAA;WACF;UACD,SAAS,EAAT,UAAU,SAAkB;cAC1B,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,MAAM;eACX,EACD,EAAE,SAAS,WAAA,EAAE,EACb,IAAI,CACL,CAAA;WACF;UACD,KAAK,YAAC,KAAK;cACT,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,MAAM;eACX,EACD,EAAE,KAAK,OAAA,EAAE,EACT,IAAI,CACL,CAAA;WACF;UACD,IAAI,YAAC,IAAI;cACP,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,MAAM;eACX,EACD,EAAE,IAAI,MAAA,EAAE,EACR,IAAI,CACL,CAAA;WACF;OACF;MAED,MAAM,EAAE;UACN,KAAK,EAAE;cACL,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,YAAY;yBACrC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EACrB;sBACA,IAAI,CAAC,IAAI,CACP;0BACE,IAAI,EAAE,QAAQ;0BACd,EAAE,EAAE,MAAM;uBACX,EACD;0BACE,UAAU,EAAE,IAAI,CAAC,IAAI;uBACtB,CACF,CAAA;mBACF;eACF;cACD,EAAE,EAAE,UAAU;WACf;UACD,MAAM,EAAE;cACN,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,YAAY;yBACrC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EACrB;sBAEQ,IAAA,oBAAM,EAAE,gBAAI,CAAS;sBAE7B,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;sBACrC,IAAI,SAAS,EAAE;0BACb,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;uBACjC;2BACI;0BACH,SAAS,GAAG,EAAE,CAAA;uBACf;sBAED,IAAI,MAAM,EAAE;0BACV,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;uBACrB;2BACI;0BACH,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;uBAClC;sBAED,IAAI,CAAC,IAAI,CACP;0BACE,IAAI,EAAE,QAAQ;0BACd,EAAE,EAAE,MAAM;uBACX,EACD;0BACE,SAAS,WAAA;uBACV,CACF,CAAA;mBAEF;eACF;cACD,EAAE,EAAE,SAAS;WACd;OACF;GACF;;;;AC9JD,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,UAAU;WACjB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UACV,IAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,WAAe,CAAC,CAAA;UACjE,OAAO;cACL,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;WACtD,CAAA;OACF;MAED,MAAM,EAAE;UACN,UAAU,EAAE;cACV,QAAQ,YAAC,CAAC,EAAE,IAAI;kBACd,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;eAC3D;cACD,EAAE,EAAE,MAAM;WACX;OACF;MAED,OAAO,EAAE;UACP,KAAK;cACH,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,UAAU;eACf,EACD;kBACE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;eACvB,CACF,CAAA;WACF;OACF;GAEF,CAAC,CAAA;;;;AClDF,kBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,gBAAoB;MAE1B,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UACV,IAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,WAAe,CAAC,CAAA;UACjE,OAAO;cACL,UAAU,YAAA;cACV,YAAY,cAAA;cACZ,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;WACvB,CAAA;OACF;GAEF;;;;ECvCD,IAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAA;EAEzB;;;;;;;;;AASA,WAAgB,cAAc,CAAC,KAA4B,EAAE,aAAuB;;;MAGlF,OAAO,CAAC,IAAI,CACV,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,GAAG,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC,EAC/D,EAAE,aAAa,eAAA,EAAE,CAClB,CAAA;EACH,CAAC;AAED,WAAgB,YAAY,CAAC,QAAkB;MAC7C,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;EAC/B,CAAC;AAED,WAAgB,aAAa,CAAC,QAAkB;MAC9C,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;EAChC,CAAC;AAED,EACA,IAAI,WAAW,GAAG,CAAC,CAAA;AAEnB,WAAgB,SAAS;MAEvB,WAAW,GAAG,CAAC,CAAA;EACjB,CAAC;AAED,WAAgB,OAAO;MACrB,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;EAC1B,CAAC;AAED,WAAgB,YAAY;;MAE1B,IAAI,WAAW,GAAG,CAAC,EAAE;UACnB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,GAAG,CAAA;OACtC;MACD,OAAO,IAAI,CAAA;EACb,CAAC;AAED,WAAgB,wBAAwB,CAAC,QAAa,EAAE,OAAoB;MAE1E,IAAM,SAAS,GAAG,UAAU,KAA2B;UACrD,IAAM,aAAa,GAAG,KAAK,CAAC,aAA8B,CAAA;UAC1D,IAAI,aAAa,CAAC,OAAO,KAAK,EAAE,EAAE;cAChC,IAAI,OAAO,EAAE;kBACX,OAAO,EAAE,CAAA;eACV;mBACI,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;kBAChC,QAAQ,CAAC,OAAO,EAAE,CAAA;eACnB;WACF;OACF,CAAA;MACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAA;MAElD,IAAM,SAAS,GAAG,UAAU,SAAc;UACxC,IAAI,SAAS,KAAK,QAAQ,EAAE;cAC1B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAA;cACnD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAA;WACvD;OACF,CAAA;MACD,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAA;EAEvD,CAAC;;ECrBD,IAAM,aAAa,GAAG,cAAkB,CAAA;EACxC,IAAM,wBAAwB,GAAG,yBAA6B,CAAA;EAC9D,IAAM,kBAAkB,GAAG,mBAAuB,CAAA;AAElD,gBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,cAAkB;MAExB,SAAS,EAAE;UACT,SAAS,EAAE;cACT,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAC;cAChC,KAAK,EAAE,UAAU;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;cAC/C,KAAK,EAAE,SAAS;WACjB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,WAAW;WACnB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,GAAG;WACX;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,GAAG,EAAE;cACH,IAAI,EAAE,WAAW;WAClB;OACF;MAED,IAAI;UACF,OAAO;cACL,OAAO,EAAE,KAAK;cACd,SAAS,WAAA;cACT,SAAS,WAAA;cACT,UAAU,YAAA;WACX,CAAA;OACF;MAED,QAAQ,EAAE;UACR,QAAQ,YAAC,KAAK;cACZ,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;kBAChC,IAAI,CAAC,SAAS,EAAE,CAAA;eACjB;WACF;OACF;MAED,OAAO,EAAE;UACP,KAAK,EAAL,UAAM,KAA2B;cAC/B,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;WAC5B;UACD,KAAK,EAAL;cACE,IAAM,EAAE,GAAG,IAAW,CAAA;cACtB,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;cAEvB,IAAI,EAAE,CAAC,UAAU,EAAE;kBACjB,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;kBAC3B,EAAE,CAAC,UAAU,GAAG,SAAS,CAAA;kBACzB,OAAM;eACP;cAED,IAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;cAC/C,IAAI,SAAS,GAAG,CAAC,EAAE;kBACjB,EAAE,CAAC,UAAU,GAAG,UAAU,CACxB;sBACE,EAAE,CAAC,UAAU,GAAG,SAAS,CAAA;sBACzB,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;0BACrB,EAAE,CAAC,QAAQ,EAAE,CAAA;uBACd;mBACF,EACD,SAAS,CACV,CAAA;eACF;mBACI;kBACH,EAAE,CAAC,QAAQ,EAAE,CAAA;eACd;WACF;UACD,KAAK,EAAL;cACE,IAAM,EAAE,GAAG,IAAW,CAAA;cACtB,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;cAExB,IAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;cAC/C,IAAI,SAAS,GAAG,CAAC,EAAE;kBACjB,EAAE,CAAC,UAAU,GAAG,UAAU,CACxB;sBACE,EAAE,CAAC,UAAU,GAAG,SAAS,CAAA;sBACzB,EAAE,CAAC,SAAS,EAAE,CAAA;mBACf,EACD,SAAS,CACV,CAAA;eACF;mBACI;kBACH,EAAE,CAAC,SAAS,EAAE,CAAA;eACf;WACF;UACD,QAAQ,EAAR;cAEE,IAAM,EAAE,GAAG,IAAW,CAAA;cAEtB,IAAI,EAAE,CAAC,UAAU,EAAE;kBACjB,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;kBAC3B,EAAE,CAAC,UAAU,GAAG,SAAS,CAAA;eAC1B;cAED,EAAE,CAAC,IAAI,CAAC;kBACN,IAAI,EAAE,MAAM;kBACZ,EAAE,EAAE,SAAS;eACd,CAAC,CAAA;WAEH;UACD,SAAS,EAAT;cAEE,IAAM,EAAE,GAAG,IAAW,CAAA;cAEtB,IAAI,EAAE,CAAC,UAAU,EAAE;kBACjB,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;kBAC3B,EAAE,CAAC,UAAU,GAAG,SAAS,CAAA;eAC1B;cAED,EAAE,CAAC,IAAI,CAAC;kBACN,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,SAAS;eACd,CAAC,CAAA;WAEH;UACD,aAAa;cACX,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;kBACvB,IAAI,CAAC,SAAS,EAAE,CAAA;eACjB;mBACI;kBACH,IAAI,CAAC,QAAQ,EAAE,CAAA;eAChB;WACF;UAED,cAAc,EAAd;cAEE,IAAM,EAAE,GAAG,IAAW,CAAA;cAEtB,IAAM,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;cACvC,IAAM,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,UAAU,CAAA;cACnD,IAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;cAC9C,IAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;cAC9C,IAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;cAEtC,IAAM,cAAc,GAAG,EAAE,CAAC,KAAK,CAAC,OAAsB,CAAA;cACtD,IAAM,WAAW,GAAG,cAAc,CAAC,qBAAqB,EAAE,CAAA;cAC1D,IAAM,WAAW,GAAG,QAAQ,EAAE,GAAG,WAAW,CAAC,IAAI,CAAA;cACjD,IAAM,UAAU,GAAG,QAAQ,EAAE,GAAG,WAAW,CAAC,GAAG,CAAA;cAE/C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAA;cAEpC,IAAI,SAAS,KAAK,OAAO;qBACpB,SAAS,KAAK,aAAa;qBAC3B,SAAS,KAAK,WAAW,EAC5B;kBACA,CAAC,GAAG,UAAU,GAAG,GAAG,CAAA;kBACpB,UAAU,GAAG,IAAI,CAAA;eAClB;mBACI,IAAI,SAAS,KAAK,UAAU;qBAC5B,SAAS,KAAK,gBAAgB;qBAC9B,SAAS,KAAK,cAAc,EAC/B;kBACA,CAAC,GAAG,UAAU,GAAG,WAAW,CAAC,MAAM,GAAG,GAAG,CAAA;kBACzC,UAAU,GAAG,IAAI,CAAA;eAClB;mBACI,IAAI,SAAS,KAAK,QAAQ;qBAC1B,SAAS,KAAK,cAAc;qBAC5B,SAAS,KAAK,YAAY,EAC7B;kBACA,CAAC,GAAG,WAAW,GAAG,GAAG,CAAA;eACtB;mBACI,IAAI,SAAS,KAAK,SAAS;qBAC3B,SAAS,KAAK,eAAe;qBAC7B,SAAS,KAAK,aAAa,EAC9B;kBACA,CAAC,GAAG,WAAW,GAAG,WAAW,CAAC,KAAK,GAAG,GAAG,CAAA;eAC1C;cAED,IAAI,SAAS,KAAK,OAAO;qBACpB,SAAS,KAAK,UAAU,EAC3B;kBACA,CAAC,GAAG,WAAW,GAAG,GAAG,GAAG,WAAW,CAAC,KAAK,CAAA;eAC1C;mBACI,IAAI,SAAS,KAAK,aAAa;qBAC/B,SAAS,KAAK,gBAAgB,EACjC;kBACA,CAAC,GAAG,WAAW,CAAA;eAChB;mBACI,IAAI,SAAS,KAAK,WAAW;qBAC7B,SAAS,KAAK,cAAc,EAC/B;kBACA,CAAC,GAAG,WAAW,GAAG,WAAW,CAAC,KAAK,CAAA;eACpC;mBACI,IAAI,SAAS,KAAK,QAAQ;qBAC1B,SAAS,KAAK,SAAS,EAC1B;kBACA,CAAC,GAAG,UAAU,GAAG,GAAG,GAAG,WAAW,CAAC,MAAM,CAAA;eAC1C;mBACI,IAAI,SAAS,KAAK,cAAc;qBAChC,SAAS,KAAK,eAAe,EAChC;kBACA,CAAC,GAAG,UAAU,CAAA;eACf;mBACI,IAAI,SAAS,KAAK,YAAY;qBAC9B,SAAS,KAAK,aAAa,EAC9B;kBACA,CAAC,GAAG,UAAU,GAAG,WAAW,CAAC,MAAM,CAAA;eACpC;cAED,OAAO;kBACL,CAAC,EAAE,CAAC,GAAG,OAAO;kBACd,CAAC,EAAE,CAAC,GAAG,OAAO;kBACd,KAAK,EAAE,UAAU,IAAI,UAAU,GAAG,WAAW,CAAC,KAAK,GAAG,SAAS;eAChE,CAAA;WAEF;UAED,kBAAkB,EAAlB;cAEE,IAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAsB,CAAA;cACxD,IAAI,CAAC,cAAc,EAAE;kBACnB,OAAM;eACP;cAED,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;cACzC,IAAI,CAAC,cAAc,CACjB,cAAc,EACd,WAAW,CAAC,CAAC,EACb,WAAW,CAAC,CAAC,EACb,WAAW,CAAC,KAAK,CAClB,CAAA;WAEF;UAED,cAAc,EAAd,UAAe,EAAe,EAAE,CAAgB,EAAE,CAAgB,EAAE,KAAoB;cACtF,IAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAA;cACvB,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,CAAW,CAAC,GAAG,EAAE,CAAA;cACnD,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,CAAW,CAAC,GAAG,EAAE,CAAA;cAClD,MAAM,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,KAAe,CAAC,GAAG,EAAE,CAAA;WAC7D;OAEF;MAED,WAAW,EAAE;UACX,OAAO,EAAE;cACP,KAAK,EAAL,UAAM,IAAI;kBAER,IAAM,EAAE,GAAG,IAAW,CAAA;kBAEtB,IAAM,cAAc,GAAG,EAAE,CAAC,KAAK,CAAC,OAAsB,CAAA;kBACtD,IAAM,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,UAAU,CAAA;kBAEnD,mBAAmB,CACjB,cAAc,EACd;sBAEE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;0BACjC,OAAM;uBACP;sBAED,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;sBACrC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAmB,GAAG,SAAS,CAAC,CAAA;sBACvD,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;0BACvB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,yBAA6B,CAAC,CAAA;uBACtD;sBAED,IAAM,WAAW,GAAG,EAAE,CAAC,cAAc,EAAE,CAAA;sBACvC,EAAE,CAAC,cAAc,CACf,IAAI,EACJ,WAAW,CAAC,CAAC,EACb,WAAW,CAAC,CAAC,EACb,WAAW,CAAC,KAAK,CAClB,CAAA;sBAED,EAAE,CAAC,YAAY,GAAG,UAAU,CAC1B;0BACE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAA;0BAEhD,EAAE,CAAC,YAAY,GAAG,UAAU,CAC1B;8BACE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;2BAC3C,EACD,EAAE,CACH,CAAA;uBACF,EACD,EAAE,CACH,CAAA;mBAEF,CACF,CAAA;eAEF;cACD,KAAK,YAAC,IAAI,EAAE,IAAI;kBAEd,IAAM,EAAE,GAAG,IAAI,CAAA;kBAEf,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;kBAE7C,eAAe,CACb,IAAI,EACJ;sBACE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;sBACxD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAA;sBACnD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;sBACxC,IAAI,EAAE,CAAA;mBACP,CACF,CAAA;eAEF;WACF;OACF;MAED,UAAU,EAAV;UAEE,IAAM,EAAE,GAAG,IAAW,CAAA;UAEtB,IAAM,cAAc,GAAG;cACrB,EAAE,CAAC,kBAAkB,EAAE,CAAA;WACxB,CAAA;UAED,IAAM,aAAa,GAAG,UAAU,KAA2B;cACzD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;kBACzC,OAAM;eACP;cACD,IAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAsB,CAAA;cAC/C,IAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAsB,CAAA;cAC/C,IAAM,MAAM,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAqB,CAAA;cAC/E,IAAI,MAAM,KAAK,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE;kBACtE,OAAM;eACP;cACD,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,UAAU,EAAE;kBACpC,EAAE,CAAC,IAAI,CAAC;sBACN,IAAI,EAAE,SAAS;sBACf,EAAE,EAAE,SAAS;mBACd,CAAC,CAAA;eACH;mBACI;kBACH,EAAE,CAAC,SAAS,EAAE,CAAA;eACf;WACF,CAAA;UAED,IAAM,aAAa,GAAG,UAAU,KAA2B,EAAE,IAAU;cACrE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;kBACvB,aAAa,CAAC,KAAK,CAAC,CAAA;eACrB;WACF,CAAA;UAED,GAAG,CAAC,GAAG,CAAC,EAAE,CACR,MAAM,EACN,UAAU,EACV,cAAc,CACf,CAAA;UAED,GAAG,CAAC,GAAG,CAAC,EAAE,CACR,QAAQ,EACR,SAAS,EACT,aAAa,CACd,CAAA;UAED,YAAY,CAAC,aAAa,CAAC,CAAA;UAE3B,IAAM,OAAO,GAAG,UAAU,SAAuB;cAC/C,IAAI,SAAS,KAAK,EAAE,EAAE;kBACpB,IAAI,EAAE,CAAC,UAAU,EAAE;sBACjB,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;mBAC5B;kBACD,IAAI,EAAE,CAAC,UAAU,EAAE;sBACjB,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;mBAC5B;kBACD,IAAI,EAAE,CAAC,YAAY,EAAE;sBACnB,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAA;mBAC9B;kBACD,aAAa,CAAC,aAAa,CAAC,CAAA;kBAC5B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAA;kBAC/C,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;kBAC/C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;eACrD;WACF,CAAA;UACD,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;OAEpD;GAEF,CAAC,CAAA;;;;ACnbF,gBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,cAAkB;MAExB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UAEV,IAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,WAAe,CAAC,CAAA;UACjE,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;UAC7B,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;UACvC,OAAO;cACL,UAAU,YAAA;cACV,UAAU,YAAA;cACV,cAAc,gBAAA;cACd,UAAU,YAAA;cACV,eAAe,iBAAA;cACf,MAAM,EAAE,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;cACnD,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI;cACzC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;cACtB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;cACxB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;WACjC,CAAA;OACF;MAED,QAAQ,EAAE;UACR,MAAM,YAAC,MAAM;cACX,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC7B,IAAI,IAAI,EAAE;kBACR,IAAI,CAAC,IAAI,CACP;sBACE,IAAI,EAAE,QAAQ;sBACd,EAAE,EAAE,SAAS;mBACd,EACD;sBACE,MAAM,QAAA;sBACN,IAAI,MAAA;mBACL,CACF,CAAA;eACF;WACF;OACF;MAED,MAAM,EAAE;UACN,UAAU,EAAE;cACV,QAAQ,YAAC,CAAC,EAAE,IAAI;kBACd,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;eAC3D;cACD,EAAE,EAAE,MAAM;WACX;UACD,SAAS,EAAE;cACT,QAAQ,YAAC,CAAC,EAAE,IAAI;kBACd,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;eACtF;cACD,EAAE,EAAE,MAAM;WACX;UACD,MAAM,EAAE;cACN,QAAQ,YAAC,CAAC,EAAE,IAAI;kBACd,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;eACf;cACD,EAAE,EAAE,MAAM;WACX;UACD,KAAK,EAAE;cACL,QAAQ;kBACN,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE;sBACnC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;mBAC1B;eACF;cACD,EAAE,EAAE,UAAU;WACf;UACD,OAAO,EAAE;cACP,QAAQ,YAAC,KAAK;kBAEZ,KAAK,CAAC,IAAI,EAAE,CAAA;kBAEZ,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;eAE1B;cACD,EAAE,EAAE,SAAS;WACd;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;UACJ,OAAO,SAAA;OACR;GAEF;;;;AChGD,aAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,WAAe;MAErB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC;kBACV,gBAAgB;kBAChB,aAAa;kBACb,gBAAgB;kBAChB,gBAAgB;kBAChB,cAAc;kBACd,cAAc;kBACd,gBAAgB;kBAChB,cAAc,EACf,CAAC;WACH;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;WACzB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GACF,CAAC,CAAA;;;;EC/BF,IAAM,aAAa,GAAG,qBAAyB,CAAA;EAC/C,IAAM,UAAU,GAAG,kBAAsB,CAAA;AAEzC,eAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,KAAK,EAAE,SAAS;MAEhB,IAAI,EAAE,aAAiB;MAEvB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,GAAG;WACX;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,GAAG;WACX;UACD,SAAS,EAAE;cACT,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;cACvD,KAAK,EAAE,QAAQ;WAChB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,IAAI;WACZ;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,IAAI;WACZ;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,IAAI;WACZ;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,YAAY;cACV,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACvC,IAAI,SAAS,KAAK,QAAQ;qBACrB,SAAS,KAAK,SAAS,EAC1B;kBACA,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;kBACzC,OAAO;sBACL,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;mBACtB,CAAA;eACF;cACD,IAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;cAC3C,OAAO;kBACL,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;eACxB,CAAA;WACF;OACF;MAED,QAAQ,EAAE;UACR,OAAO,YAAC,OAAO;cACb,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;cAC5B,IAAI,OAAO,EAAE;kBACX,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;kBAC5C,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAA;eAC9B;mBACI;kBACH,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;eAC9C;WACF;OACF;MAED,OAAO,EAAE;UACP,IAAI;cACF,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;WAC1B;UACD,KAAK;cACH,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;WAC3B;OACF;MAED,WAAW,EAAE;UACX,MAAM,EAAE;cACN,KAAK,EAAL,UAAM,IAAI;kBAER,IAAM,EAAE,GAAG,IAAW,CAAA;kBACtB,IAAM,MAAM,GAAG,IAAmB,CAAA;kBAClC,IAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAsB,CAAA;kBAC/C,EAAE,CAAC,cAAc,GAAG,OAAO,CAAA;;kBAG3B,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;kBACvC,EAAE,CAAC,IAAI,CAAC;sBACN,IAAI,EAAE,MAAM;sBACZ,EAAE,EAAE,QAAQ;mBACb,CAAC,CAAA;kBAEF,UAAU,CACR;sBACE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;0BACtB,OAAM;uBACP;sBAED,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;sBACpC,eAAe,CACb,OAAO,EACP;0BACE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;8BACtB,OAAM;2BACP;0BACD,EAAE,CAAC,IAAI,CAAC;8BACN,IAAI,EAAE,QAAQ;8BACd,EAAE,EAAE,QAAQ;2BACb,CAAC,CAAA;uBACH,CACF,CAAA;mBACF,EACD,EAAE,CACH,CAAA;eAEF;cACD,KAAK,EAAL,UAAM,IAAI,EAAE,IAAI;kBAEd,IAAM,EAAE,GAAG,IAAW,CAAA;kBACtB,IAAM,MAAM,GAAG,IAAmB,CAAA;kBAClC,IAAM,OAAO,GAAG,EAAE,CAAC,cAA6B,CAAA;kBAChD,EAAE,CAAC,cAAc,GAAG,SAAS,CAAA;kBAE7B,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;kBACvC,EAAE,CAAC,IAAI,CAAC;sBACN,IAAI,EAAE,OAAO;sBACb,EAAE,EAAE,QAAQ;mBACb,CAAC,CAAA;kBAEF,eAAe,CACb,OAAO,EACP;sBACE,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;0BACrB,OAAM;uBACP;sBACD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;sBAC1C,EAAE,CAAC,IAAI,CAAC;0BACN,IAAI,EAAE,QAAQ;0BACd,EAAE,EAAE,QAAQ;uBACb,CAAC,CAAA;sBACF,IAAI,EAAE,CAAA;mBACP,CACF,CAAA;eAEF;WACF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF,CAAC,CAAA;;;;ACnLF,cAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,YAAgB;MAEtB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GAEF;;;;ACpBD,mBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,iBAAqB;MAE3B,SAAS,EAAE;UACT,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,GAAG;WACX;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GAEF;;;;ACfD,uBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,qBAAyB;MAE/B,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UACV,IAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAqB,CAAC,CAAA;UAC7E,OAAO;cACL,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;WACvC,CAAA;OACF;GAEF;;;;ACLD,eAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,aAAiB;MAEvB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC;kBACV,gBAAgB;kBAChB,aAAa;kBACb,gBAAgB;kBAChB,gBAAgB;kBAChB,cAAc;kBACd,eAAe;kBACf,aAAa;kBACb,aAAa;kBACb,aAAa,EACd,CAAC;cACF,KAAK,EAAE,aAAa;WACrB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;cAChD,KAAK,EAAE,WAAW;WACnB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,KAAK,CAAC,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;WACjD;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,OAAO,EAAE;UACP,OAAO;cACL,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,QAAQ;eACb,CACF,CAAA;WACF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;MAED,YAAY,YAAC,OAAO;UAElB,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;UAEnD,IAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAsB,CAAC,CAAA;UAC/E,IAAI,WAAW,EAAE;;cAGf,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;kBAC5B,OAAO,KAAK,CAAC,IAAI,CAAA;eAClB;cACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;kBAC7B,OAAO,KAAK,CAAC,KAAK,CAAA;eACnB;cAED,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;kBAChC,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;eAC7C;WACF;eACI;;cAEH,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;kBAC5B,KAAK,CAAC,IAAI,GAAG,WAAW,CAAA;eACzB;WACF;OAEF;MAED,UAAU;UACR,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;cACzB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;WACjB;OACF;GAEF;;;;ACnHD,oBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,kBAAsB;MAE5B,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;cAChD,KAAK,EAAE,WAAW;WACnB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,KAAK,CAAC,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;WACjD;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GAEF;;;;ECRD,IAAM,kBAAkB,GAAG,UAAU,CAAA;EACrC,IAAM,cAAc,GAAG,MAAM,CAAA;AAE7B,cAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,YAAgB;MAEtB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;WAC/B;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,WAAW;WACnB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;cACjD,KAAK,EAAE,cAAc;WACtB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;WACjF;UACD,KAAK,EAAE;cACL,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;WAC/C;UACD,WAAW,EAAE;cACX,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;WACjB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,QAAQ,EAAE,IAAI;cACd,OAAO,EAAE,KAAK;cACd,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;cAE7B,cAAc,gBAAA;cACd,kBAAkB,oBAAA;WACnB,CAAA;OACF;MAED,QAAQ,EAAE;UACR,QAAQ;cACN,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;WAC1D;UACD,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC;sBACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;mBACtB,CAAC,CAAA;eACH;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;OACF;MAED,OAAO,EAAE;UACP,iBAAiB,YAAC,KAAK;cACrB,OAAO,KAAK;oBACR,KAAK,CAAC,MAAM;oBACZ,CAAC,CAAA;WACN;OACF;MAED,QAAQ,EAAE;UACR,KAAK,YAAC,KAAK;cACT,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,OAAO;eACZ,EACD,EAAE,KAAK,OAAA,EAAE,CACV,CAAA;WACF;UACD,QAAQ,YAAC,QAAQ;cACf,IAAI,CAAC,GAAG,CAAC;kBACP,WAAW,EAAE,QAAQ;wBACjB,kBAAkB;wBAClB,cAAc;eACnB,CAAC,CAAA;WACH;OACF;MAED,OAAO,EAAE;UACP,WAAW;cACT,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;cACzB,IAAI,CAAC,IAAI,CAAC;kBACR,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,OAAO;eACZ,CAAC,CAAA;WACH;UACD,UAAU;cACR,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;cAC1B,IAAI,CAAC,IAAI,CAAC;kBACR,IAAI,EAAE,MAAM;kBACZ,EAAE,EAAE,OAAO;eACZ,CAAC,CAAA;WACH;UACD,gBAAgB;cACd,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;cACrB,IAAI,CAAC,IAAI,CAAC;kBACR,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,OAAO;eACZ,CAAC,CAAA;WACH;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;MAED,UAAU,EAAV;UAEE,IAAM,EAAE,GAAG,IAAI,CAAA;UAEf,IAAM,SAAS,GAAG,UAAU,KAA2B;cAErD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;kBACtB,OAAM;eACP;cAED,IAAM,aAAa,GAAG,KAAK,CAAC,aAA8B,CAAA;cAC1D,EAAE,CAAC,IAAI,CACL,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,aAAa,CAAC,CAC9C,CAAA;cAED,QAAQ,aAAa,CAAC,OAAO;kBAC3B,KAAK,EAAE;sBACL,EAAE,CAAC,IAAI,CAAC;0BACN,IAAI,EAAE,OAAO;0BACb,EAAE,EAAE,OAAO;uBACZ,CAAC,CAAA;sBACF,MAAK;kBAEP,KAAK,EAAE;;sBAEL,KAAK,CAAC,OAAO,EAAE,CAAA;sBACf,EAAE,CAAC,IAAI,CAAC;0BACN,IAAI,EAAE,IAAI;0BACV,EAAE,EAAE,OAAO;uBACZ,CAAC,CAAA;sBACF,MAAK;kBAEP,KAAK,EAAE;;sBAEL,KAAK,CAAC,OAAO,EAAE,CAAA;sBACf,EAAE,CAAC,IAAI,CAAC;0BACN,IAAI,EAAE,MAAM;0BACZ,EAAE,EAAE,OAAO;uBACZ,CAAC,CAAA;sBACF,MAAK;eACR;WAEF,CAAA;UACD,IAAM,OAAO,GAAG,UAAU,KAA2B;cAEnD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;kBACtB,OAAM;eACP;cAED,IAAM,aAAa,GAAG,KAAK,CAAC,aAA8B,CAAA;cAC1D,EAAE,CAAC,IAAI,CACL,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,CAC5C,CAAA;WAEF,CAAA;UACD,IAAM,UAAU,GAAG,UAAU,KAA2B;cAEtD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;kBACtB,OAAM;eACP;cAED,IAAM,aAAa,GAAG,KAAK,CAAC,aAA8B,CAAA;cAC1D,EAAE,CAAC,IAAI,CACL,IAAI,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAC/C,CAAA;WAEF,CAAA;UAED,GAAG,CAAC,GAAG,CAAC,EAAE,CACR,QAAQ,EACR,iBAAiB,EACjB,SAAS,CACV,CAAA;UACD,GAAG,CAAC,GAAG,CAAC,EAAE,CACR,QAAQ,EACR,eAAe,EACf,OAAO,CACR,CAAA;UACD,GAAG,CAAC,GAAG,CAAC,EAAE,CACR,QAAQ,EACR,kBAAkB,EAClB,UAAU,CACX,CAAA;UAED,IAAM,OAAO,GAAG,UAAU,SAAS;cACjC,IAAI,SAAS,KAAK,EAAE,EAAE;kBACpB,GAAG,CAAC,GAAG,CAAC,GAAG,CACT,QAAQ,EACR,iBAAiB,EACjB,SAAS,CACV,CAAA;kBACD,GAAG,CAAC,GAAG,CAAC,GAAG,CACT,QAAQ,EACR,eAAe,EACf,OAAO,CACR,CAAA;kBACD,GAAG,CAAC,GAAG,CAAC,GAAG,CACT,QAAQ,EACR,kBAAkB,EAClB,UAAU,CACX,CAAA;kBACD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;eACrD;WACF,CAAA;UACD,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;OAEpD;GACF,CAAC,CAAA;;;;ECpTF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA,WAAgB,QAAQ,CAAC,OAAe;MACtC,OAAO,OAAO,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE;aAClC,OAAO,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE;aAC9B,OAAO,KAAK,CAAC;aACb,OAAO,KAAK,CAAC;aACb,OAAO,KAAK,EAAE;aACd,OAAO,KAAK,EAAE;aACd,OAAO,KAAK,EAAE,CAAA;EACnB,CAAC;AAED,WAAgB,KAAK,CAAC,OAAe;MACnC,OAAO,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,GAAG,CAAA;EAC3C,CAAC;AAED,WAAgB,OAAO,CAAC,OAAe;MACrC,OAAO,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,GAAG,CAAA;EAC3C,CAAC;AAED,WAAgB,QAAQ,CAAC,OAAe;MACtC,OAAO,OAAO,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,CAAA;EACvC,CAAC;;ACKD,oBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,kBAAsB;MAE5B,SAAS,EAAE;UACT,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;WACjF;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,WAAW;WACnB;UACD,GAAG,EAAE;cACH,IAAI,EAAE,WAAW;WAClB;UACD,GAAG,EAAE;cACH,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,CAAC;WACT;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UACV,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;UACjC,OAAO;cACL,aAAa,EAAE,KAAK;cACpB,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;WACxC,CAAA;OACF;MAED,QAAQ,EAAE;UACR,eAAe,EAAf;cACE,IAAM,UAAU,GAAG,CAAC,mBAAuB,CAAC,CAAA;cAC5C,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACvC,IAAI,SAAS,EAAE;kBACb,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;eAC3B;cACD,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;WAC5B;UACD,eAAe,EAAf;cACE,OAAO,QAAQ,CACb,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EACrB,CAAC,CAAC,CACH,CAAA;WACF;UACD,SAAS,EAAT;cACE,OAAO,QAAQ,CACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EACf,MAAM,CAAC,iBAAiB,CACzB,CAAA;WACF;UACD,SAAS,EAAT;cACE,OAAO,QAAQ,CACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EACf,MAAM,CAAC,iBAAiB,CACzB,CAAA;WACF;UACD,UAAU,EAAV;cACE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;kBAChD,OAAO,IAAI,CAAA;eACZ;cACD,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;WACpE;UACD,YAAY,EAAZ;cACE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;kBAChD,OAAO,IAAI,CAAA;eACZ;cACD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;WACpE;OACF;MAED,QAAQ,EAAE;UACR,KAAK,YAAC,KAAK;cACT,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;WAC7B;OACF;MAED,OAAO,EAAE;UAEP,WAAW,EAAX,UAAY,KAA2B;cACrC,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,IAAI,CAAC;kBACR,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,aAAa;eAClB,CAAC,CAAA;WACH;UACD,UAAU,EAAV,UAAW,KAA2B;cACpC,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,YAAY,EAAE,CAAA;cACnB,IAAI,CAAC,IAAI,CAAC;kBACR,IAAI,EAAE,MAAM;kBACZ,EAAE,EAAE,aAAa;eAClB,CAAC,CAAA;WACH;UACD,WAAW,EAAX,UAAY,KAA2B;cACrC,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;kBAC7B,OAAM;eACP;cACD,IAAI,CAAC,WAAW,EAAE,CAAA;WACnB;UACD,aAAa,EAAb,UAAc,KAA2B;cACvC,KAAK,CAAC,IAAI,EAAE,CAAA;cAEZ,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;kBAC7B,OAAM;eACP;cAEK,IAAA,wBAA8E,EAA5E,oBAAO,EAAE,oBAAO,EAAE,sBAAQ,EAAE,oBAAgD,CAAA;;cAEpF,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;kBACvD,OAAM;eACP;;cAID,IAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;cAE5C,IAAM,WAAW,GAAG,gBAAgB,CAAC,cAAc,KAAK,gBAAgB,CAAC,YAAY;qBAChF,gBAAgB,CAAC,cAAc,KAAK,CAAC,CAAA;cAE1C,IAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;cAErD,IAAI,WAAW,EAAE;kBACf,IAAI,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;;sBAErC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;0BACzC,OAAM;uBACP;mBACF;kBACD,KAAK,CAAC,OAAO,EAAE,CAAA;eAChB;mBACI;kBACH,IAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;;kBAG9C,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;sBACrB,IAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;sBACnD,IAAM,eAAe,GAAG,QAAQ,GAAG,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;sBACvF,IAAI,eAAe,IAAI,CAAC,IAAI,eAAe,IAAI,eAAe,EAAE;0BAC9D,KAAK,CAAC,OAAO,EAAE,CAAA;uBAChB;mBACF;uBACI,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;sBACvB,IAAI,QAAQ,GAAG,CAAC,EAAE;0BAChB,KAAK,CAAC,OAAO,EAAE,CAAA;uBAChB;mBACF;uBACI;sBACH,KAAK,CAAC,OAAO,EAAE,CAAA;mBAChB;eACF;WAEF;UACD,WAAW,EAAX,UAAY,KAA2B;cACrC,KAAK,CAAC,IAAI,EAAE,CAAA;WACb;UACD,WAAW,EAAX,UAAY,KAA2B;cACrC,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,YAAY,EAAE,CAAA;cACnB,IAAI,CAAC,IAAI,CAAC;kBACR,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,aAAa;eAClB,CAAC,CAAA;WACH;UACD,QAAQ,EAAR,UAAS,KAA2B;cAClC,KAAK,CAAC,IAAI,EAAE,CAAA;cAEZ,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;kBAC7B,OAAM;eACP;cAED,IAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;cAEhD,kBAAkB,CAAC,MAAM,EAAE,CAAA;cAC3B,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAA;cAEpD,IAAI,CAAC,WAAW,EAAE,CAAA;WAEnB;UACD,UAAU,EAAV,UAAW,KAA2B;cACpC,KAAK,CAAC,IAAI,EAAE,CAAA;cAEZ,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;kBAC7B,OAAM;eACP;cAED,IAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;cAEhD,kBAAkB,CAAC,QAAQ,EAAE,CAAA;cAC7B,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAA;cAEpD,IAAI,CAAC,WAAW,EAAE,CAAA;WAEnB;UACD,sBAAsB,EAAtB,UAAuB,KAA2B;cAChD,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;WAChC;UACD,oBAAoB,EAApB,UAAqB,KAA2B;cAC9C,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;cAChC,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;WACzD;UAED,gBAAgB,EAAhB,UAAiB,KAAU;cACzB,IAAI,CAAC,GAAG,CAAC;kBACP,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC;kBACjC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;eAC9B,CAAC,CAAA;WACH;UAED,WAAW;cAET,IAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;cAE5C,IAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;cACnD,IAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAA;cAE7C,IAAI,cAAc,KAAK,cAAc;qBAChC,cAAc;qBACd,cAAc,KAAK,GAAG;qBACtB,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,KAAK,KAAK,EAC5C;;kBAEA,gBAAgB,CAAC,KAAK,GAAG,cAAc,CAAA;kBACvC,OAAM;eACP;cAED,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAElC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAA;cAErC,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAElC,IAAI,QAAQ,KAAK,QAAQ,EAAE;kBACzB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;eAC1B;WAEF;UAED,YAAY;cAEV,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAE/B,IAAI,QAAQ,GAAG,EAAE,CAAA;cAEjB,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;kBACxB,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;kBACjC,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;kBACjC,IAAI,KAAK,GAAG,GAAG,EAAE;sBACf,QAAQ,GAAG,GAAG,CAAA;mBACf;uBACI,IAAI,KAAK,GAAG,GAAG,EAAE;sBACpB,QAAQ,GAAG,GAAG,CAAA;mBACf;uBACI;sBACH,OAAM;mBACP;eACF;cAED,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;cAE/B,IAAI,QAAQ,KAAK,KAAK,EAAE;kBACtB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;eAC1B;WAEF;UAED,UAAU,YAAC,KAAK;cACd,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,aAAa;eAClB,EACD;kBACE,KAAK,OAAA;eACN,CACF,CAAA;WACF;UAED,YAAY,EAAZ;cACE,OAAQ,IAAI,CAAC,KAAK,CAAC,KAAsB,CAAC,KAAK,CAAC,KAAyB,CAAA;WAC1E;UAED,cAAc,EAAd;cACE,OAAO,IAAI,CAAC,KAAK,CAAC,WAA+B,CAAA;WAClD;OAEF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;UACJ,KAAK,OAAA;OACN;MAED,UAAU;UAER,IAAI,CAAC,KAAK,CACR,kBAAkB,EAClB,UAAU,KAAK;cACb,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,GAAG,KAAK,CAAA;cACjC,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,GAAG,KAAK,CAAA;WACpC,EACD,IAAI,CACL,CAAA;OAEF;GACF,CAAC,CAAA;;;;EC3VF,IAAM,KAAK,GAAG,EAAE,CAAA;EAChB,IAAM,SAAS,GAAG,EAAE,CAAA;EAEpB,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;EACtB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;EACpB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;EAEpB,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,CAAA;EAC3B,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAA;EACzB,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAA;AAEzB,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,WAAW;WACnB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;WAChC;UACD,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;WACjF;UACD,WAAW,EAAE;cACX,IAAI,EAAE,UAAU;WACjB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,CAAC;WACT;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;WAC5C;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;WAC9B;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,cAAc,gBAAA;cACd,YAAY,cAAA;cACZ,OAAO,EAAE,KAAK;WACf,CAAA;OACF;MAED,QAAQ,EAAE;UACR,QAAQ;cACN,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;WAC1D;UACD,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC;sBACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;mBACtB,CAAC,CAAA;eACH;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;UACD,aAAa;cAEX,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC3B,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC3B,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;;cAGnC,IAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;;cAGxC,IAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;cAE9C,IAAI,QAAQ,EAAE;kBACZ,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;kBAC7B,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;sBAC3B,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAA;sBAC1D,OAAO;0BACL,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,GAAG,UAAU,GAAG,gBAAgB,CAAC;0BACpE,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,GAAG,UAAU,GAAG,gBAAgB,CAAC;0BACpE,MAAM,EAAE,OAAO,CAAC,IAAI,GAAG,UAAU,GAAG,gBAAgB,CAAC;uBACtD,CAAA;mBACF;kBAED,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;kBAC3C,OAAO;sBACL,SAAS,EAAE,OAAO,CAAC,UAAU,GAAG,gBAAgB,CAAC;sBACjD,MAAM,EAAE,OAAO,CAAC,IAAI,GAAG,UAAU,GAAG,gBAAgB,CAAC;mBACtD,CAAA;eACF;cAED,OAAO;kBACL,MAAM,EAAE,OAAO,CAAC,IAAI,GAAG,UAAU,GAAG,gBAAgB,CAAC;eACtD,CAAA;WAEF;OACF;MAED,QAAQ,EAAE;UACR,KAAK,YAAC,KAAK;cACT,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,UAAU;eACf,EACD,EAAE,KAAK,OAAA,EAAE,CACV,CAAA;WACF;OACF;MAED,OAAO,EAAE;UACP,iBAAiB,YAAC,KAAK;cACrB,OAAO,KAAK;oBACR,KAAK,CAAC,MAAM;oBACZ,CAAC,CAAA;WACN;OACF;MAED,OAAO,EAAE;UACP,WAAW;cACT,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;cACzB,IAAI,CAAC,IAAI,CAAC;kBACR,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,UAAU;eACf,CAAC,CAAA;WACH;UACD,UAAU;cACR,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;cAC1B,IAAI,CAAC,IAAI,CAAC;kBACR,IAAI,EAAE,MAAM;kBACZ,EAAE,EAAE,UAAU;eACf,CAAC,CAAA;WACH;OACF;MAED,UAAU,EAAV;UAEE,IAAM,EAAE,GAAG,IAAI,CAAA;UAEf,IAAM,SAAS,GAAG,UAAU,KAA2B;cAErD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;kBACtB,OAAM;eACP;cAED,IAAM,aAAa,GAAG,KAAK,CAAC,aAA8B,CAAA;cAC1D,EAAE,CAAC,IAAI,CACL,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,aAAa,CAAC,CAC9C,CAAA;cAED,IAAI,aAAa,CAAC,OAAO,KAAK,EAAE,EAAE;kBAChC,EAAE,CAAC,IAAI,CAAC;sBACN,IAAI,EAAE,OAAO;sBACb,EAAE,EAAE,UAAU;mBACf,CAAC,CAAA;eACH;WAEF,CAAA;UACD,IAAM,OAAO,GAAG,UAAU,KAA2B;cAEnD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;kBACtB,OAAM;eACP;cAED,IAAM,aAAa,GAAG,KAAK,CAAC,aAA8B,CAAA;cAC1D,EAAE,CAAC,IAAI,CACL,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,CAC5C,CAAA;WAEF,CAAA;UACD,IAAM,UAAU,GAAG,UAAU,KAA2B;cAEtD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;kBACtB,OAAM;eACP;cAED,IAAM,aAAa,GAAG,KAAK,CAAC,aAA8B,CAAA;cAC1D,EAAE,CAAC,IAAI,CACL,IAAI,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAC/C,CAAA;WAEF,CAAA;UAED,GAAG,CAAC,GAAG,CAAC,EAAE,CACR,QAAQ,EACR,iBAAiB,EACjB,SAAS,CACV,CAAA;UACD,GAAG,CAAC,GAAG,CAAC,EAAE,CACR,QAAQ,EACR,eAAe,EACf,OAAO,CACR,CAAA;UACD,GAAG,CAAC,GAAG,CAAC,EAAE,CACR,QAAQ,EACR,kBAAkB,EAClB,UAAU,CACX,CAAA;UAED,IAAM,OAAO,GAAG,UAAU,SAAS;cACjC,IAAI,SAAS,KAAK,EAAE,EAAE;kBACpB,GAAG,CAAC,GAAG,CAAC,GAAG,CACT,QAAQ,EACR,iBAAiB,EACjB,SAAS,CACV,CAAA;kBACD,GAAG,CAAC,GAAG,CAAC,GAAG,CACT,QAAQ,EACR,eAAe,EACf,OAAO,CACR,CAAA;kBACD,GAAG,CAAC,GAAG,CAAC,GAAG,CACT,QAAQ,EACR,kBAAkB,EAClB,UAAU,CACX,CAAA;kBACD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;eACrD;WACF,CAAA;UACD,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;OAEpD;GACF,CAAC,CAAA;;;;ACvRF,cAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,KAAK,EAAE,SAAS;MAEhB,IAAI,EAAE,YAAgB;MAEtB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC;cAC3C,QAAQ,EAAE,IAAI;WACf;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,OAAO,EAAE,KAAK;WACf,CAAA;OACF;MAED,MAAM,EAAE;UACN,MAAM,EAAE;cACN,QAAQ,YAAC,CAAC,EAAE,IAAI;kBACd,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;sBAC5B,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;sBAC/B,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAA;sBACnC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;mBACzB;kBACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;sBAC/B,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;mBACpC;eACF;cACD,EAAE,EAAE,YAAY;WACjB;OACF;MAED,OAAO,EAAE;UACP,OAAO;cACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;WACtB;UACD,UAAU,EAAV,UAAW,OAAgB;cACzB,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,OAAO,EAAE;kBACnC,OAAM;eACP;cACD,IAAI,CAAC,GAAG,CAAC;kBACP,OAAO,SAAA;eACR,CAAC,CAAA;cACF,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,OAAO;eACZ,EACD;kBACE,OAAO,SAAA;kBACP,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;eACzB,CACF,CAAA;WACF;OACF;MAED,YAAY,YAAC,OAAO;UAElB,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;UAEnD,IAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAqB,CAAC,CAAA;UAC7E,IAAI,UAAU,EAAE;cACd,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;kBAChC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;eAC5C;cAED,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;kBAC/B,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,CAAA;eACvD;WACF;OAEF;MAED,UAAU;UACR,wBAAwB,CAAC,IAAI,CAAC,CAAA;OAC/B;GAEF,CAAC,CAAA;;;;ACnGF,mBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,iBAAqB;MAE3B,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,WAAW;WACnB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC;WAC5C;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,QAAQ,YAAC,QAAQ;cACf,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,YAAY;eACjB,EACD;kBACE,QAAQ,UAAA;eACT,EACD,IAAI,CACL,CAAA;WACF;UACD,KAAK,YAAC,KAAK;cACT,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,YAAY;eACjB,EACD;kBACE,KAAK,OAAA;eACN,EACD,IAAI,CACL,CAAA;WACF;OACF;MACD,MAAM,EAAE;UACN,MAAM,EAAE;cACN,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,KAAK,CAAC,IAAI,EAAE,CAAA;;kBAEZ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;sBACjB,OAAM;mBACP;kBACD,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;kBAClC,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAA;kBAC3B,IAAI,QAAQ,KAAK,QAAQ,EAAE;sBACzB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;sBAC3B,IAAI,CAAC,IAAI,CACP;0BACE,IAAI,EAAE,QAAQ;0BACd,EAAE,EAAE,YAAY;uBACjB,EACD;0BACE,KAAK,EAAE,QAAQ;uBAChB,CACF,CAAA;mBACF;eACF;cACD,EAAE,EAAE,OAAO;WACZ;OACF;GACF,CAAC,CAAA;;;;AC9EF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,KAAK,EAAE,SAAS;MAEhB,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC;cAC3C,QAAQ,EAAE,IAAI;WACf;UACD,aAAa,EAAE;cACb,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,OAAO,EAAE,KAAK;WACf,CAAA;OACF;MAED,MAAM,EAAE;UACN,MAAM,EAAE;cACN,QAAQ,YAAC,CAAC,EAAE,IAAI;kBACd,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;sBAC5B,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;sBAC/B,IAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;sBAChD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;mBACzB;kBACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;sBAC/B,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;mBACpC;eACF;cACD,EAAE,EAAE,eAAe;WACpB;OACF;MAED,OAAO,EAAE;UACP,OAAO;cACL,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;WACtC;UACD,UAAU,EAAV,UAAW,OAAgB;cACzB,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,OAAO,EAAE;kBACnC,OAAM;eACP;cACD,IAAI,CAAC,GAAG,CAAC;kBACP,OAAO,SAAA;eACR,CAAC,CAAA;cACF,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,UAAU;eACf,EACD;kBACE,OAAO,SAAA;kBACP,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;eACzB,CACF,CAAA;WACF;OACF;MAED,YAAY,YAAC,OAAO;UAElB,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;UAEnD,IAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAwB,CAAC,CAAA;UACnF,IAAI,aAAa,EAAE;cACjB,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;kBAChC,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;eAC/C;cAED,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;kBAC/B,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;eACvE;WACF;OAEF;MAED,UAAU;UACR,wBAAwB,CAAC,IAAI,CAAC,CAAA;OAC/B;GAEF,CAAC,CAAA;;;;AC5GF,sBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,oBAAwB;MAE9B,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,SAAS;cACf,KAAK;kBACH,OAAO,EAAE,CAAA;eACV;WACF;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,QAAQ,YAAC,QAAQ;cACf,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,eAAe;eACpB,EACD;kBACE,QAAQ,UAAA;eACT,EACD,IAAI,CACL,CAAA;WACF;UACD,KAAK,YAAC,KAAK;cACT,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,eAAe;eACpB,EACD;kBACE,KAAK,OAAA;eACN,EACD,IAAI,CACL,CAAA;WACF;OACF;MACD,MAAM,EAAE;UACN,MAAM,EAAE;cACN,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,KAAK,CAAC,IAAI,EAAE,CAAA;kBAEZ,IAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;kBAClC,IAAA,qBAAM,CAAU;kBAExB,IAAI,IAAI,CAAC,OAAO,EAAE;sBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;0BACrC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;uBACvB;mBACF;uBACI;sBACH,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;mBACpC;kBAED,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;sBAC3B,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,OAAA,EAAE,CAAC,CAAA;sBACnB,IAAI,CAAC,IAAI,CACP;0BACE,IAAI,EAAE,QAAQ;0BACd,EAAE,EAAE,eAAe;uBACpB,EACD;0BACE,KAAK,OAAA;uBACN,CACF,CAAA;mBACF;eACF;cACD,EAAE,EAAE,UAAU;WACf;OACF;GACF;;;;;;;;ACzFD,mBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,iBAAqB;MAE3B,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,UAAU;cACR,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,OAAO;kBACL,eAAe,EAAE,KAAK;eACvB,CAAA;WACF;OACF;GAEF,CAAC,CAAA;;;;EC9BK,IAAM,QAAQ,GAAG,KAAK,CAAA;AAC7B,EAAO,IAAM,QAAQ,GAAG,KAAK,CAAA;AAC7B,EAAO,IAAM,aAAa,GAAG,MAAM,CAAA;EAEnC;AACA,WAAgB,YAAY,CAAC,GAAW;MACtC,OAAO,QAAQ,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAA;EACrD,CAAC;EAED;AACA,WAAgB,mBAAmB,CAAC,UAAkB;MACpD,OAAO,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAA;EAC7D,CAAC;EAED;AACA,WAAgB,cAAc,CAAC,KAAa;MAC1C,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAA;EACnC,CAAC;AAED,WAAgB,cAAc,CAAC,KAAa;MAC1C,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;EAC9C,CAAC;AAED,WAAgB,cAAc,CAAC,KAAa;MAC1C,IAAM,GAAG,GAAG,QAAQ;WACjB,aAAa,CAAC,QAAQ,CAAC;WACvB,UAAU,CAAC,IAAI,CAA6B,CAAA;MAC/C,GAAG,CAAC,SAAS,GAAG,KAAK,CAAA;MACrB,OAAO,GAAG,CAAC,SAAS,CAAA;EACtB,CAAC;AAED,WAAgB,cAAc,CAAC,KAAa;MAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;UAC7B,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;cACvB,OAAO,QAAQ,CAAA;WAChB;UACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;cACtB,OAAO,QAAQ,CAAA;WAChB;OACF;EACH,CAAC;AAED,WAAgB,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;MAEtD,IAAI,CAAC,GAAG,CAAC,CAAA;MACT,IAAI,CAAC,GAAG,CAAC,CAAA;MACT,IAAI,CAAC,GAAG,CAAC,CAAA;MAET,IAAI,CAAC,KAAK,CAAC,EAAE;UACZ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;OACb;WACK;UACL,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,CAAA;UACf,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;UACtB,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;UACd,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;UACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;UACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;UAC7B,QAAQ,CAAC;cACR,KAAK,CAAC;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,MAAK;cACN,KAAK,CAAC;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,MAAK;cACN,KAAK,CAAC;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,MAAK;cACN,KAAK,CAAC;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,MAAK;cACN,KAAK,CAAC;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,MAAK;cACN,KAAK,CAAC;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,CAAC,GAAG,CAAC,CAAA;kBACL,MAAK;WACN;OACD;MAED,OAAO;UACJ,CAAC,GAAG,GAAG;UACP,CAAC,GAAG,GAAG;UACP,CAAC,GAAG,GAAG;OACR,CAAA;EAEH,CAAC;AAED,WAAgB,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;MACrD,CAAC,IAAI,GAAG,CAAA;MACR,CAAC,IAAI,GAAG,CAAA;MACR,CAAC,IAAI,GAAG,CAAA;MAER,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;MAC7B,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;MAC7B,IAAM,IAAI,GAAG,GAAG,GAAG,GAAG,CAAA;MAEtB,IAAI,CAAC,GAAG,CAAC,CAAA;MACT,IAAI,CAAC,GAAG,GAAG,CAAA;MACX,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAA;MAElC,IAAI,GAAG,KAAK,GAAG,EAAE;UACf,CAAC,GAAG,CAAC,CAAA;OACN;WACI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;UAC5B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAA;OAC1B;WACI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;UAC3B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAA;OAChC;WACI,IAAI,GAAG,KAAK,CAAC,EAAE;UAClB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAA;OAChC;WACI,IAAI,GAAG,KAAK,CAAC,EAAE;UAClB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAA;OAChC;MAED,OAAO;UACL,CAAC;UACD,CAAC;UACD,CAAC,EACF,CAAA;EACH,CAAC;EAED;;;;;;;;AAQA,WAAgB,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAgB;MACvE,IAAI,QAAQ,GAAG,EAAE,CAAA;MACjB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;UACzB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;UACvB,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;OAC9C;MACD,IAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;MACzE,OAAO,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;EAC9D,CAAC;EAED;;;;;AAKA,WAAgB,OAAO,CAAC,GAAW;MAEjC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;MAE3B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAA;MAEd,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;UACpB,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAA;UAC3C,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;OACtB;MAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;UACpB,KAAK,GAAG,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAA;UAC9D,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;OACtB;MAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;UACpB,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;OAC1D;MAED,IAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;MAC7B,IAAM,CAAC,GAAG,GAAG,IAAI,EAAE,CAAA;MACnB,IAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAA;MAC1B,IAAM,CAAC,GAAG,GAAG,GAAG,GAAG,CAAA;MACnB,IAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;MAErB,IAAI,KAAK,IAAI,CAAC,EAAE;UACd,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;OAChB;MAED,OAAO,GAAG,CAAA;EACZ,CAAC;AAED,WAAgB,YAAY,CAAC,GAAa,EAAE,KAAoB;MAE9D,IAAM,SAAS,GAAG,IAAI,CAAA;MAEtB,IAAI,IAAI,GAAG,KAAK,CAAA;MAChB,IAAI,KAAK,GAAG;UACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;UAClB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;UAClB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACnB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;MAEjB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;UAC7B,IAAI,GAAG,MAAM,CAAA;UACb,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAA;OACrD;MAED,OAAU,IAAI,SAAI,KAAK,MAAG,CAAA;EAE5B,CAAC;EAED,SAAS,QAAQ,CAAC,GAAW;MAC3B,OAAO,GAAG,CAAC,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAC9D,UAAU,KAAa;UACrB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;OACvB,CACF,CAAA;EACH,CAAC;EAED,IAAM,QAAQ,GAAG;MACf,GAAG,EAAE;UACH,GAAG,EAAH,UAAI,KAAa;cACf,IAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;cAC7B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;WACvD;OACF;MACD,GAAG,EAAE;UACH,GAAG,EAAH,UAAI,KAAa;cACf,IAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;cAC3B,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;WACnC;OACF;GACF,CAAA;AAED,WAAgB,UAAU,CAAC,KAAa,EAAE,YAAqB;MAE7D,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;MAChC,IAAI,CAAC,IAAI,EAAE;UACT,IAAI,GAAG,QAAQ,CAAA;UACf,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;cAC7B,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;WAC9B;eACI;cACH,KAAK,GAAG,aAAa,CAAA;WACtB;OACF;MAED,IAAI,KAAK,GAAG,KAAK,CAAA;MACjB,IAAI,IAAI,KAAK,QAAQ,EAAE;UACrB,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA;OACxC;MAED,IAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;MAC5B,IAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;MAE9C,OAAO;UACL,GAAG,KAAA;UACH,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;UAChC,KAAK,EAAE,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;OACrD,CAAA;EACH,CAAC;;ACvPD,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,GAAG,EAAE;cACH,IAAI,EAAE,SAAS;WAChB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;OACF;MAED,IAAI;UACF,OAAO;cACL,OAAO,EAAE,EAAE;WACZ,CAAA;OACF;MAED,QAAQ,EAAE;UACR,KAAK;cACH,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;cAC3B,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;WAC9C;OACF;MAED,OAAO,EAAE;UACP,QAAQ,EAAR,UAAS,KAA2B,EAAE,IAAyB;cAC7D,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,GAAG,CAAC;kBACP,OAAO,EAAE,IAAI,CAAC,KAAK;eACpB,CAAC,CAAA;WACH;UACD,QAAQ,EAAR,UAAS,KAA2B;cAClC,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACnC,IAAI,CAAC,OAAO,EAAE;kBACZ,OAAM;eACP;cACD,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,aAAa;kBACnB,EAAE,EAAE,UAAU;eACf,EACD;kBACE,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;eAC/B,CACF,CAAA;WACF;OACF;MAED,UAAU;UAER,IAAI,CAAC,KAAK,CACR,KAAK,EACL;cACE,IAAI,CAAC,GAAG,CAAC;kBACP,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;eAC3B,CAAC,CAAA;WACH,EACD,IAAI,CACL,CAAA;UAED,IAAI,CAAC,KAAK,CACR,OAAO,EACP;cACE,IAAI,CAAC,GAAG,CAAC;kBACP,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;eAC3B,CAAC,CAAA;WACH,EACD,IAAI,CACL,CAAA;OAEF;MAED,UAAU,EAAE;UACV,KAAK,OAAA;OACN;GAEF,CAAC,CAAA;;;;AC5EF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,GAAG,EAAE;cACH,IAAI,EAAE,SAAS;WAChB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;OACF;MAED,IAAI;UACF,OAAO;cACL,OAAO,EAAE,EAAE;cACX,SAAS,EAAE,EAAE;cACb,QAAQ,EAAE,EAAE;cACZ,SAAS,EAAE,EAAE;WACd,CAAA;OACF;MAED,QAAQ,EAAE;UACR,GAAG;cACD,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;cAC3B,OAAO,GAAG;oBACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5B,EAAE,CAAA;WACP;UACD,KAAK;cACH,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;cAC3B,OAAO,GAAG;oBACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5B,EAAE,CAAA;WACP;UACD,IAAI;cACF,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;cAC3B,OAAO,GAAG;oBACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5B,EAAE,CAAA;WACP;UACD,YAAY;cACV,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;kBAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;eACrC;cACD,OAAO,EAAE,CAAA;WACV;OACF;MAED,OAAO,EAAE;UACP,QAAQ,EAAR,UAAS,KAA2B,EAAE,IAAY,EAAE,KAAa;cAC/D,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;WACtB;UACD,QAAQ,EAAR,UAAS,KAA2B;cAClC,KAAK,CAAC,IAAI,EAAE,CAAA;cAEZ,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACnC,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACvC,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cACrC,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACvC,IAAI,CAAC,OAAO;qBACP,CAAC,SAAS;qBACV,CAAC,QAAQ;sBACR,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAC3C;kBACA,OAAM;eACP;cAED,IAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;cAElD,IAAM,GAAG,GAAG,YAAY,CACtB;kBACE,QAAQ,CAAC,OAAO,CAAC;kBACjB,QAAQ,CAAC,SAAS,CAAC;kBACnB,QAAQ,CAAC,QAAQ,CAAC,EACnB,EACD,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,SAAS,CACzD,CAAA;cAED,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,aAAa;kBACnB,EAAE,EAAE,UAAU;eACf,EACD;kBACE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;eAC3B,CACF,CAAA;WACF;OACF;MAED,UAAU;UAER,IAAI,CAAC,KAAK,CACR,KAAK,EACL;cACE,IAAI,CAAC,GAAG,CAAC;kBACP,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;kBACxB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;kBAC5B,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;eAC3B,CAAC,CAAA;WACH,EACD,IAAI,CACL,CAAA;UAED,IAAI,CAAC,KAAK,CACR,OAAO,EACP;cACE,IAAI,CAAC,GAAG,CAAC;kBACP,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;eACpC,CAAC,CAAA;WACH,EACD,IAAI,CACL,CAAA;OAEF;MAED,UAAU,EAAE;UACV,KAAK,OAAA;OACN;GAEF,CAAC,CAAA;;AC5GF,mBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,iBAAqB;MAE3B,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;WAClC;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,SAAS;WAChB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,GAAG,EAAE;cACH,IAAI,EAAE,SAAS;WAChB;;UAED,GAAG,EAAE;cACH,IAAI,EAAE,WAAW;WAClB;;UAED,UAAU,EAAE;cACV,IAAI,EAAE,WAAW;WAClB;;UAED,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;;UAED,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;OACF;MAED,IAAI;UACF,OAAO;cACL,QAAQ,UAAA;cACR,QAAQ,UAAA;WACT,CAAA;OACF;MAED,QAAQ,EAAE;UACR,iBAAiB;cACf,IAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;cAC/C,OAAO;kBACL,eAAe,EAAE,mCAAiC,aAAa,MAAG;eACnE,CAAA;WACF;UACD,iBAAiB;cACf,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;cACzC,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,OAAO;kBACL,IAAI,EAAK,UAAU,GAAG,GAAG,MAAG;kBAC5B,MAAM,EAAK,KAAK,GAAG,GAAG,MAAG;eAC1B,CAAA;WACF;UACD,iBAAiB;cACf,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;cAC3B,IAAI,GAAG,EAAE;kBACP,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;eACzB;WACF;UACD,aAAa;cACX,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;cAC3B,OAAO;kBACL,IAAI,EAAK,CAAC,GAAG,GAAG,QAAQ,IAAI,GAAG,MAAG;eACnC,CAAA;WACF;UACD,aAAa;cACX,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;cAC3B,OAAO,SAAO,GAAG,iBAAc,CAAA;WAChC;UACD,cAAc;cACZ,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;cAC3B,IAAI,GAAG,EAAE;kBACP,OAAO;sBACL,eAAe,EAAE,+BAA6B,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,aAAQ,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,WAAQ;mBACvG,CAAA;eACF;WACF;UACD,eAAe;cACb,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,OAAO;kBACL,IAAI,EAAK,KAAK,GAAG,GAAG,MAAG;eACxB,CAAA;WACF;UACD,eAAe;cACb,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;cAC3B,IAAI,GAAG,EAAE;kBACP,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;kBAC/B,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;eAChC;WACF;OACF;MAED,OAAO,EAAE;UACP,UAAU,EAAV,UAAW,IAAY,EAAE,SAAkB;cACzC,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,SAAS,GAAG,GAAG,GAAG,EAAE,CAAC,CAAA;WACnD;OACF;MAED,OAAO,EAAE;UACP,cAAc,EAAd,UAAe,KAA2B,EAAE,IAAU;cACpD,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,aAAa;kBACnB,EAAE,EAAE,YAAY;eACjB,EACD;kBACE,KAAK,EAAE,IAAI,CAAC,KAAK;eAClB,CACF,CAAA;WACF;OACF;MAED,UAAU,EAAV;UAEE,IAAM,EAAE,GAAG,IAAI,CAAA;UAEf,IAAI,SAA6B,CAAA;UACjC,IAAI,KAAyB,CAAA;UAC7B,IAAI,OAA2B,CAAA;UAE/B,IAAM,kBAAkB,GAAG,UAAU,KAA2B;cAE9D,KAAK,CAAC,IAAI,EAAE,CAAA;cAEZ,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,OAA6B,CAAA;cAClD,IAAI,CAAC,SAAS,EAAE;kBACd,OAAM;eACP;cAED,SAAS,EAAE,CAAA;cAEX,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,CAAA;cAC7D,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;WAE1D,CAAA;UAED,IAAM,kBAAkB,GAAG,UAAU,KAA2B;cAE9D,IAAM,UAAU,GAAG,KAAK,CAAC,aAA2B,CAAA;cACpD,IAAM,IAAI,GAAI,SAAyB,CAAC,qBAAqB,EAAE,CAAA;cAE/D,IAAM,UAAU,GAAG,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAA;cAChE,IAAM,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAA;cAE9D,EAAE,CAAC,IAAI,CACL;kBACE,IAAI,EAAE,WAAW;kBACjB,EAAE,EAAE,YAAY;eACjB,EACD;kBACE,GAAG,EAAE;sBACH,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;sBACb,mBAAmB,CAAC,UAAU,CAAC;sBAC/B,cAAc,CAAC,KAAK,CAAC,EACtB;eACF,CACF,CAAA;WAEF,CAAA;UAED,IAAM,gBAAgB,GAAG;cAEvB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,CAAA;cAC9D,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;cAE1D,SAAS,GAAG,SAAS,CAAA;cACrB,OAAO,EAAE,CAAA;WAEV,CAAA;UAGD,IAAM,cAAc,GAAG,UAAU,KAA2B;cAE1D,KAAK,CAAC,IAAI,EAAE,CAAA;cAEZ,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAyB,CAAA;cAC1C,IAAI,CAAC,KAAK,EAAE;kBACV,OAAM;eACP;cAED,SAAS,EAAE,CAAA;cAEX,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAA;cACzD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAA;WAEtD,CAAA;UAED,IAAM,cAAc,GAAG,UAAU,KAA2B;cAE1D,IAAM,UAAU,GAAG,KAAK,CAAC,aAA2B,CAAA;cACpD,IAAM,IAAI,GAAI,KAAqB,CAAC,qBAAqB,EAAE,CAAA;cAE3D,IAAM,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAA;cAEzD,EAAE,CAAC,IAAI,CACL;kBACE,IAAI,EAAE,WAAW;kBACjB,EAAE,EAAE,YAAY;eACjB,EACD;kBACE,GAAG,EAAE;sBACH,YAAY,CAAC,GAAG,CAAC;sBACjB,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC;sBACpB,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAChB;eACF,CACF,CAAA;WAEF,CAAA;UAED,IAAM,YAAY,GAAG;cAEnB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAA;cAC1D,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAA;cAEtD,KAAK,GAAG,SAAS,CAAA;cACjB,OAAO,EAAE,CAAA;WAEV,CAAA;UAID,IAAM,gBAAgB,GAAG,UAAU,KAA2B;cAE5D,KAAK,CAAC,IAAI,EAAE,CAAA;cAEZ,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,KAA2B,CAAA;cAC9C,IAAI,CAAC,OAAO,EAAE;kBACZ,OAAM;eACP;cAED,SAAS,EAAE,CAAA;cAEX,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,CAAA;cAC3D,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAA;WAExD,CAAA;UAED,IAAM,gBAAgB,GAAG,UAAU,KAA2B;cAE5D,IAAM,UAAU,GAAG,KAAK,CAAC,aAA2B,CAAA;cACpD,IAAM,IAAI,GAAI,OAAuB,CAAC,qBAAqB,EAAE,CAAA;cAE7D,IAAM,KAAK,GAAG,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAA;cAE3D,EAAE,CAAC,IAAI,CACL;kBACE,IAAI,EAAE,aAAa;kBACnB,EAAE,EAAE,YAAY;eACjB,EACD;kBACE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC;eAC7B,CACF,CAAA;WAEF,CAAA;UAED,IAAM,cAAc,GAAG;cAErB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,CAAA;cAC5D,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAA;cAExD,OAAO,GAAG,SAAS,CAAA;cACnB,OAAO,EAAE,CAAA;WAEV,CAAA;;UAGD,EAAE,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;;UAE1C,EAAE,CAAC,cAAc,GAAG,cAAc,CAAA;;UAElC,EAAE,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;OAEvC;MAED,UAAU,EAAE;UACV,MAAM,QAAA;UACN,WAAW,aAAA;UACX,UAAU,YAAA;UACV,QAAQ,UAAA;UACR,QAAQ,UAAA;OACT;GAEF,CAAC,CAAA;;AC9RF,oBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,kBAAsB;MAE5B,SAAS,EAAE;UACT,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;WACjF;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,WAAW;WACnB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAC;cAChC,KAAK,EAAE,gBAAgB;WACxB;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,SAAS;WAChB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,SAAS;WAChB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;UAC/B,IAAM,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAA;UAE1C,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;UAC7B,IAAI,CAAC,KAAK,EAAE;cACV,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,aAAa,CAAA;WAClD;UAEK,IAAA,6CAA8D,EAA5D,YAAG,EAAE,YAAG,EAAE,gBAAkD,CAAA;UAEpE,OAAO;cACL,UAAU,EAAE,UAAU;cACtB,OAAO,EAAE,KAAK;cACd,SAAS,EAAE,KAAK;cAChB,IAAI,MAAA;cACJ,GAAG,KAAA;cACH,GAAG,KAAA;cACH,KAAK,OAAA;WACN,CAAA;OACF;MAED,QAAQ,EAAE;UACR,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC;sBACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;mBACtB,CAAC,CAAA;eACH;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;UACD,UAAU;cACR,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;cAC3B,IAAI,GAAG,EAAE;kBACP,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;kBAC/B,OAAO;sBACL,eAAe,EAAE,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC;mBAC1C,CAAA;eACF;WACF;UACD,UAAU;cAER,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACvC,IAAI,KAAK,GAAG,SAAS,CAAA;cACrB,IAAI,SAAS,EAAE;kBACb,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;eAC1B;cAED,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC7B,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;cAC3B,IAAI,IAAI,KAAK,QAAQ,EAAE;kBACrB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;eAC9C;mBACI,IAAI,IAAI,KAAK,QAAQ,EAAE;kBAC1B,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;eAChC;cAED,OAAO,EAAE,CAAA;WAEV;OACF;MAED,QAAQ,EAAE;UACR,KAAK,EAAL,UAAM,KAAa;;cAEjB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;WACrB;UACD,SAAS;cACP,IAAI,CAAC,GAAG,CAAC;kBACP,KAAK,EAAE,CAAC;eACT,CAAC,CAAA;;cAEF,IAAI,CAAC,UAAU,EAAE,CAAA;WAClB;OACF;MAED,MAAM,EAAE;UACN,OAAO,EAAE;cACP,QAAQ,YAAC,KAAK;kBACZ,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,IAAI,CAAC,GAAG,CAAC;sBACP,SAAS,EAAE,KAAK;mBACjB,CAAC,CAAA;eACH;cACD,EAAE,EAAE,SAAS;WACd;UACD,SAAS,EAAE;cACT,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,KAAK,CAAC,IAAI,EAAE,CAAA;kBACJ,IAAA,cAAG,CAAS;kBACpB,IAAI,CAAC,GAAG,CAAC;sBACP,GAAG,KAAA;sBACH,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;mBACrC,CAAC,CAAA;;kBAEF,IAAI,CAAC,UAAU,EAAE,CAAA;eAClB;cACD,EAAE,EAAE,YAAY;WACjB;UACD,WAAW,YAAC,KAAK,EAAE,IAAI;cAErB,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;kBAC1C,OAAM;eACP;cAED,KAAK,CAAC,IAAI,EAAE,CAAA;;cAEZ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;;kBAE7B,IAAI,CAAC,UAAU,EAAE,CAAA;eAClB;WAEF;UACD,WAAW,EAAE;cACX,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;;kBAEd,IAAI,CAAC,UAAU,EAAE,CAAA;eAClB;cACD,EAAE,EAAE,YAAY;WACjB;UACD,UAAU,EAAE;cACV,QAAQ,YAAC,KAAK;kBACZ,KAAK,CAAC,IAAI,EAAE,CAAA;kBAEZ,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;kBAC/B,IAAI,CAAC,KAAK,EAAE;sBACV,OAAM;mBACP;kBAED,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;kBAC7B,IAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;kBACjC,IAAI,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAA;kBACxB,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;sBAC5B,QAAQ,GAAG,CAAC,CAAA;mBACb;kBAED,IAAI,CAAC,GAAG,CAAC;sBACP,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;mBACtB,CAAC,CAAA;;kBAEF,IAAI,CAAC,UAAU,EAAE,CAAA;eAElB;cACD,EAAE,EAAE,YAAY;WACjB;OACF;MAED,OAAO,EAAE;UAEP,OAAO,EAAP,UAAQ,KAA4B;cAClC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;cACxB,cAAc,CAAC,KAAK,CAAC,CAAA;WACtB;UAED,QAAQ,EAAR,UAAS,KAAa;cAEd,IAAA,6CAA8D,EAA5D,YAAG,EAAE,YAAG,EAAE,gBAAkD,CAAA;cACpE,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;;;cAI9B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;kBAChF,OAAM;eACP;cAED,IAAI,CAAC,GAAG,CAAC;kBACP,GAAG,KAAA;kBACH,GAAG,KAAA;kBACH,KAAK,OAAA;eACN,CAAC,CAAA;cAEF,OAAO,IAAI,CAAA;WAEZ;UACD,UAAU;cACR,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;cACpC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;cACxB,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,aAAa;eAClB,EACD;kBACE,KAAK,OAAA;eACN,CACF,CAAA;WACF;OACF;MAED,UAAU;UACR,wBAAwB,CAAC,IAAI,CAAC,CAAA;OAC/B;MAED,UAAU,EAAE;UACV,OAAO,SAAA;UACP,UAAU,YAAA;OACX;GAEF,CAAC,CAAA;;;;;;ACvRF,gBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,cAAkB;MAExB,SAAS,EAAE;UACT,OAAO,EAAE;cACP,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;WAC/B;UACD,KAAK,EAAE;cACL,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC;cAC5B,KAAK,EAAE,QAAQ;WAChB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAC;cAChC,KAAK,EAAE,UAAU;WAClB;UACD,cAAc,EAAE;cACd,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,WAAW;WACnB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;cACnC,KAAK,EAAE,SAAS;WACjB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;UACnC,IAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;UACjD,OAAO;cACL,SAAS,EAAE,OAAO,OAAO,KAAK,SAAS;oBACnC,OAAO;oBACP,OAAO,cAAc,KAAK,SAAS;wBACjC,cAAc;wBACd,KAAK;WACZ,CAAA;OACF;MAED,QAAQ,EAAE;UACR,IAAI;cACF,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACnC,OAAO,OAAO,OAAO,KAAK,SAAS;oBAC/B,UAAU;oBACV,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;WACxB;UACD,YAAY,EAAZ;cAEE,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cACrC,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cAEvC,IAAI,QAAQ,IAAI,SAAS,EAAE;kBACzB,IAAM,MAAM,GAA2B,EAAE,CAAA;kBACzC,IAAI,QAAQ,EAAE;sBACZ,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;mBACpC;kBACD,IAAI,SAAS,EAAE;sBACb,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;mBACtC;kBACD,OAAO,MAAM,CAAA;eACd;WAEF;OACF;MAED,QAAQ,EAAE;UACR,OAAO,YAAC,KAAK;cACX,IAAI,CAAC,GAAG,CAAC;kBACP,SAAS,EAAE,KAAK;eACjB,CAAC,CAAA;WACH;OACF;MAED,OAAO,EAAE;UACP,aAAa,EAAb,UAAc,KAA2B;cACvC,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;;cAE3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;WACtB;UACD,cAAc,EAAd,UAAe,KAA2B;cACxC,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;;cAE5B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;WACvB;UACD,gBAAgB,EAAhB,UAAiB,KAA2B;cAC1C,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,IAAI,CAAC;kBACR,IAAI,EAAE,SAAS;kBACf,EAAE,EAAE,SAAS;eACd,CAAC,CAAA;WACH;UACD,UAAU,EAAV,UAAW,OAAgB;cACzB,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,OAAO,EAAE;kBACnC,IAAI,CAAC,IAAI,CACP;sBACE,IAAI,EAAE,QAAQ;sBACd,EAAE,EAAE,SAAS;mBACd,EACD;sBACE,OAAO,SAAA;mBACR,CACF,CAAA;eACF;WACF;UACD,OAAO,EAAP;cACE,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAc,CAAA;cACzC,OAAO,CAAC,kBAAkB,EAAE,CAAA;WAC7B;OACF;MAED,UAAU,EAAE;UACV,OAAO,SAAA;OACR;GACF,CAAC,CAAA;;EC5IF,SAAS,iBAAiB,CAAC,GAAW,EAAE,GAAW,EAAE,QAAa;MAEhE,IAAM,KAAK,GAAG,GAAG,GAAG,GAAG,CAAA;MAEvB,IAAI,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;MAE9B,IAAI,KAAK,GAAG,GAAG,EAAE;UACf,KAAK,GAAG,GAAG,CAAA;OACZ;WACI,IAAI,KAAK,GAAG,GAAG,EAAE;UACpB,KAAK,GAAG,GAAG,CAAA;OACZ;MAED,OAAO,KAAK,GAAG,CAAC;YACZ,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG;YAC3B,CAAC,CAAA;EAEP,CAAC;AAED,eAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,aAAiB;MAEvB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;cAC9B,KAAK,EAAE,CAAC;WACT;UACD,GAAG,EAAE;cACH,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,GAAG;WACX;UACD,GAAG,EAAE;cACH,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,CAAC;WACT;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,CAAC;WACT;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,WAAW;WAClB;UACD,aAAa,EAAE;cACb,IAAI,EAAE,YAAY;WACnB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,OAAO,SAAA;cACP,SAAS,WAAA;cACT,UAAU,YAAA;cACV,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;cAC7B,eAAe,EAAE,CAAC,CAAC;cACnB,cAAc,EAAE,CAAC,CAAC;cAClB,gBAAgB,EAAE,CAAC,CAAC;WACrB,CAAA;OACF;MAED,QAAQ,EAAE;UACR,OAAO,EAAP;cACE,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,OAAO,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;WAC3B;UACD,SAAS,EAAT;cACE,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;WACjC;UACD,SAAS,EAAT;cACE,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;WACjC;UACD,UAAU,EAAV;cACE,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;WAClC;UACD,iBAAiB,EAAE;cACjB,IAAI,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;cACpC,GAAG;kBACD,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;kBACjC,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;kBACjC,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;kBACzC,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;sBAC5B,OAAO;0BACL;8BACE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;8BACpB,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;2BACpD;0BACD;8BACE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;8BACpB,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;2BACpD,EACF,CAAA;mBACF;kBACD,OAAO;sBACL;0BACE,KAAK,EAAE,UAAU;0BACjB,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC;uBACjD;mBACF,CAAA;eACF;WACF;UACD,KAAK,EAAL;cAEE,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cACrC,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACnC,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACjC,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACjC,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;cACnC,IAAM,KAAK,GAAG,GAAG,GAAG,GAAG,CAAA;cAEvB,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE;kBACpB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;kBACpC,IAAI,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAA;kBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;sBAE9B,IAAI,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAA;sBACxB,IAAI,OAAO,GAAG,KAAK,GAAG,GAAG,CAAA;sBAEzB,MAAM,CAAC,IAAI,CAAC;0BACV,KAAK,OAAA;0BACL,KAAK,EAAE,QAAQ;iCACV,OAAO,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;iCAChD,OAAO,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uBACvD,CAAC,CAAA;mBAEH;eACF;cAED,OAAO,MAAM,CAAA;WAEd;UACD,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;cAEjC,IAAI,KAAK,IAAI,MAAM,EAAE;kBACnB,IAAM,WAAW,GAA2B,EAAE,CAAA;kBAC9C,IAAI,KAAK,EAAE;sBACT,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;mBACnC;kBACD,IAAI,MAAM,EAAE;sBACV,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;mBACrC;kBACD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;eACzB;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;OACF;MAED,OAAO,EAAE;UACP,cAAc,EAAd,UAAe,iBAAwB,EAAE,OAAgB,EAAE,QAAgB,EAAE,MAAc;;cAEzF,IAAI,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;cAC9C,IAAI,SAAiB,CAAA;cAErB,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE;kBACxB,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;kBACxC,IAAI,WAAW,GAAG,SAAS,EAAE;sBAC3B,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;sBAC1C,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;mBACzC;eACF;mBACI;kBACH,SAAS,GAAG,WAAW,CAAA;kBACvB,WAAW,GAAG,CAAC,CAAA;eAChB;cAED,IAAI,OAAO,EAAE;kBACX,IAAM,IAAI,GAAG,QAAQ,CAAA;kBACrB,QAAQ,GAAG,MAAM,CAAA;kBACjB,MAAM,GAAG,IAAI,CAAA;eACd;cAED;kBACE,GAAC,QAAQ,IAAG,WAAW,GAAG,GAAG;kBAC7B,GAAC,MAAM,IAAG,CAAC,GAAG,GAAG,SAAS,IAAI,GAAG;qBAClC;WAEF;UACD,gBAAgB,EAAhB,UAAiB,OAAe,EAAE,IAAY;;cAE5C;kBACE,GAAC,IAAI,IAAG,OAAO,GAAG,GAAG;qBACtB;WAEF;OACF;MAED,MAAM,EAAE;UACN,OAAO,EAAE;cACP,QAAQ,YAAC,KAAK;kBACZ,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;sBAC1C,OAAM;mBACP;kBACD,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAA;eACjC;cACD,EAAE,EAAE,SAAS;WACd;OACF;MAED,QAAQ,EAAE;UACR,2BAA2B,EAAE;;cAE3B,IAAI,CAAC,cAAc,EAAE,CAAA;WACtB;UACD,KAAK,YAAC,KAAK;cACT,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC;qBAC9B,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,EACjC;kBACA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;eAC9B;WACF;UACD,eAAe,YAAC,KAAK;cACnB,IAAI,KAAK,IAAI,CAAC,EAAE;kBACd,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;eACnE;mBACI,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;kBACvC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAA;eACjC;WACF;UACD,cAAc,YAAC,KAAK;cAClB,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE;kBAChD,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAA;eACjC;WACF;OACF;MAED,OAAO,EAAE;UACP,cAAc,EAAd;cACE,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;cAC1C,IAAI,KAAK,GAAG,CAAC,EAAE;kBACb,OAAM;eACP;cACD,IAAI,CAAC,QAAQ,CAAC;kBACZ,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAQ,CAAA;kBACpD,OAAO,CAAC,OAAO,EAAE,CAAA;eAClB,CAAC,CAAA;WACH;UACD,iBAAiB,EAAjB,UAAkB,KAA2B,EAAE,KAAa;cAC1D,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;cACjD,IAAI,cAAc,IAAI,CAAC,EAAE;kBACvB,IAAI,cAAc,KAAK,KAAK,EAAE;sBAC5B,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;mBACnC;eACF;mBACI;kBACH,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;eACnC;WACF;UACD,iBAAiB,EAAjB,UAAkB,KAA2B;cAC3C,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAA;WAChC;OACF;MAED,UAAU,EAAV;UAEE,IAAM,EAAE,GAAG,IAAI,CAAA;UAEf,IAAI,OAA2B,CAAA;UAC/B,IAAI,cAAc,GAAG,CAAC,CAAC,CAAA;UACvB,IAAI,GAAG,GAAG,CAAC,CAAA;UACX,IAAI,GAAG,GAAG,CAAC,CAAA;UACX,IAAI,IAAI,GAAG,CAAC,CAAA;UAEZ,IAAM,gBAAgB,GAAG,UAAU,KAA2B;cAE5D,KAAK,CAAC,IAAI,EAAE,CAAA;cAEZ,OAAO,GAAI,KAAK,CAAC,aAA4B,CAAC,aAA4B,CAAA;cAC1E,IAAI,CAAC,OAAO,EAAE;kBACZ,OAAM;eACP;cAED,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACzB,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACzB,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;cAE3B,IAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;cAE7B,cAAc,GAAG,CAAC,CAAA;cAClB,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;;kBAErB,IAAM,OAAO,GAAG,KAAK,GAAG,GAAG,CAAA;kBAC3B,IAAM,iBAAiB,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;kBAErD,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE;sBACvG,cAAc,GAAG,CAAC,CAAA;mBACnB;kBAED,cAAc,CACZ,KAAK,EACL,cAAc,CACf,CAAA;eACF;mBACI;kBACH,cAAc,CAAC,KAAK,CAAC,CAAA;eACtB;cAED,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;cAExC,SAAS,EAAE,CAAA;cAEX,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,CAAA;cAC3D,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAA;WAExD,CAAA;UAED,IAAM,gBAAgB,GAAG,UAAU,KAA2B;cAE5D,cAAc,CACZ,QAAQ,CAAC,KAAK,CAAC,EACf,cAAc,CACf,CAAA;WAEF,CAAA;UAED,IAAM,cAAc,GAAG;cAErB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,CAAA;cAC5D,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAA;cAExD,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAA;cAE5B,OAAO,GAAG,SAAS,CAAA;cACnB,OAAO,EAAE,CAAA;WAEV,CAAA;UAED,IAAM,QAAQ,GAAG,UAAU,KAA2B;cAEpD,IAAM,UAAU,GAAG,KAAK,CAAC,aAA2B,CAAA;cACpD,IAAM,IAAI,GAAI,OAAuB,CAAC,qBAAqB,EAAE,CAAA;cAE7D,IAAI,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;oBAC1B,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM;oBAChD,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAA;cAEjD,IAAI,KAAK,GAAG,CAAC,EAAE;kBACb,KAAK,GAAG,CAAC,CAAA;eACV;mBACI,IAAI,KAAK,GAAG,CAAC,EAAE;kBAClB,KAAK,GAAG,CAAC,CAAA;eACV;cAED,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;cAC1B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;cAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;cAElB,OAAO,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAA;WAE/C,CAAA;UAED,IAAM,cAAc,GAAG,UAAU,KAAa,EAAE,KAAc;cAE5D,IAAI,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,CAAA;cACxC,IAAI,IAAI,GAAG,CAAC,EAAE;kBACZ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;kBACvC,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAA;eACxB;cAED,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;kBAErB,EAAE,CAAC,GAAG,CAAC,aAAa,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAA;kBAEvC,IAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CACnB,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CACrB,CAAA;;kBAGD,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;sBACvB,IAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;sBACrB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;sBACnB,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;mBAChB;kBAED,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;eAEvB;mBACI;kBACH,EAAE,CAAC,GAAG,CAAC;sBACL,UAAU,EAAE,QAAQ;sBACpB,KAAK,EAAE,QAAQ;mBAChB,CAAC,CAAA;eACH;WAEF,CAAA;;UAGD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;OAEzC;MAED,UAAU,EAAE;UACV,OAAO,SAAA;OACR;GAEF;;;;ACncD,cAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,YAAgB;MAEtB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;cAC9B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;WACf;UACD,KAAK,EAAE;cACL,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;cACnD,KAAK,EAAE,QAAQ;WAChB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,SAAS;cAEP,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC7B,IAAI,IAAI,IAAI,IAAI,EAAE;kBAChB,OAAM;eACP;;cAGD,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;kBACtD,OAAO,IAAI,CAAA;eACZ;;cAGD,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;cAC5B,IAAI,KAAK,GAAG,CAAC,EAAE;kBACb,OAAO,CAAC,KAAK,CAAC,CAAA;eACf;WAEF;UACD,WAAW,EAAX;cACE,OAAO,cAAc,CACnB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EACrB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EACpB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EACpB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAClB,CAAA;WACF;UACD,SAAS,EAAT;cACE,OAAO,cAAc,CACnB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EACrB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EACpB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CACrB,CAAA;WACF;OACF;GAEF,CAAC,CAAA;;;;;;ACvEF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;cAC/B,KAAK,EAAE,IAAI;WACZ;UACD,KAAK,EAAE;cACL,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;WAChC;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,YAAY;cACV,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC7B,IAAI,IAAI,EAAE;kBACR,IAAI,IAAI,GAAG,CAAC,CAAA;kBACZ,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;sBACpC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;mBACjB;kBAED,IAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;kBAC3D,IAAM,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,CAAA;kBAEtF,IAAM,MAAM,GAAG,EAAE,CAAA;kBACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;sBAC7B,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,CAAA;sBAChE,MAAM,CAAC,IAAI,CAAC;0BACV,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK;uBACrD,CAAC,CAAA;mBACH;kBAED,OAAO,MAAM,CAAA;eACd;WACF;UACD,SAAS;cACP,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,IAAI,IAAI,GAAG,EAAE,CAAA;kBACb,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;sBACxB,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;0BAC7B,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;uBAClB;sBACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;0BAC5B,IAAI,GAAG,EAAE,CAAA;uBACV;sBACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;0BAC5B,IAAI,GAAG,EAAE,CAAA;uBACV;mBACF;kBACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;eACrB;WACF;UACD,UAAU;cACR,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,IAAM,YAAY,GAAG,gBAAgB,CAAA;kBACrC,IAAI,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;sBACzB,OAAO,YAAY,CAAA;mBACpB;kBACD,IAAI,KAAK,CAAC,KAAK,KAAK,eAAe,EAAE;sBACnC,OAAO,eAAe,CAAA;mBACvB;kBACD,OAAO,YAAY,CAAA;eACpB;WACF;OACF;GAEF,CAAC,CAAA;;ACxFF,kBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,gBAAoB;MAE1B,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;cAChB,QAAQ,EAAE,IAAI;WACf;UACD,KAAK,EAAE;cACL,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;WAC/B;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;WACjB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,UAAU,EAAE;UACV,QAAQ,UAAA;OACT;GACF;;;;AC9BD,eAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,KAAK,EAAE,SAAS;MAEhB,IAAI,EAAE,aAAiB;MAEvB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;cACrC,KAAK,EAAE,WAAW;WACnB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,OAAO,EAAE,KAAK;WACf,CAAA;OACF;MAED,OAAO,EAAE;UACP,OAAO,EAAP,UAAQ,KAA4B;cAClC,IAAI,KAAK,EAAE;kBACT,KAAK,CAAC,IAAI,EAAE,CAAA;eACb;cACD,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,QAAQ;eACb,EACD;kBACE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;eAChC,CACF,CAAA;WACF;OACF;MAED,UAAU;UACR,wBAAwB,CAAC,IAAI,CAAC,CAAA;OAC/B;GACF;;;;WCxEe,YAAY,CAAC,QAAiB;MAE5C,QAAQ,CAAC,OAAO,CACd,UAAU,KAAY,EAAE,KAAa;UACnC,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE;cACxB,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;WAC1B;OACF,CACF,CAAA;EAEH,CAAC;;ACMD,cAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,YAAgB;MAEtB,SAAS,EAAE;UACT,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,CAAC;WACT;UACD,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;cAChE,KAAK,EAAE,WAAW;WACnB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;WACzB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,YAAY;UACV,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;UAC5C,IAAI,QAAQ,EAAE;cACZ,YAAY,CACV,QAAQ,CACT,CAAA;WACF;OACF;MAED,QAAQ,EAAE;UACR,OAAO,YAAC,OAAO;cACb,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,eAAe;kBACrB,EAAE,EAAE,OAAO;eACZ,EACD;kBACE,OAAO,SAAA;eACR,EACD,IAAI,CACL,CAAA;WACF;UACD,MAAM,YAAC,MAAM;cACX,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,cAAc;kBACpB,EAAE,EAAE,OAAO;eACZ,EACD;kBACE,MAAM,QAAA;eACP,EACD,IAAI,CACL,CAAA;WACF;OACF;GAEF;;;;ACpED,aAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,WAAe;MAErB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;cAChB,QAAQ,EAAE,IAAI;WACf;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;cAChB,QAAQ,EAAE,IAAI;WACf;UACD,WAAW,EAAE;cACX,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UACV,IAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,YAAgB,CAAC,CAAA;UACnE,OAAO;cACL,UAAU,YAAA;cACV,cAAc,gBAAA;cACd,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;cAC7B,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;WAC5B,CAAA;OACF;MAED,QAAQ,EAAE;UACR,UAAU;cACR,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACnC,IAAI,KAAK,GAAG,OAAO,EAAE;kBACnB,OAAO,UAAU,CAAA;eAClB;cACD,IAAI,KAAK,GAAG,OAAO,EAAE;kBACnB,OAAO,QAAQ,CAAA;eAChB;cACD,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;WAC1B;UACD,UAAU;cACR,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;WAC7B;OACF;MAED,MAAM,EAAE;UACN,aAAa,EAAE;cACb,QAAQ,YAAC,CAAC,EAAE,IAAI;kBACd,IAAI,CAAC,GAAG,CAAC;sBACP,OAAO,EAAE,IAAI,CAAC,OAAO;mBACtB,CAAC,CAAA;eACH;cACD,EAAE,EAAE,OAAO;WACZ;UACD,YAAY,EAAE;cACZ,QAAQ,YAAC,CAAC,EAAE,IAAI;kBACd,IAAI,CAAC,GAAG,CAAC;sBACP,MAAM,EAAE,IAAI,CAAC,MAAM;mBACpB,CAAC,CAAA;eACH;cACD,EAAE,EAAE,OAAO;WACZ;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF;;;;;;AC7ED,YAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,UAAc;MAEpB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;WAC5B;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,UAAU;cACR,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;kBACnC,OAAO,KAAK,CAAA;eACb;WACF;UACD,WAAW;cACT,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,KAAK,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;kBAC7D,OAAO,KAAK,CAAA;eACb;WACF;OACF;MAED,OAAO,EAAE;UACP,aAAa;cACX,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,KAAK;eACV,EACD;kBACE,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;eAC9B,CACF,CAAA;WACF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF,CAAC,CAAA;;;;AChEF,cAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,YAAgB;MAEtB,SAAS,EAAE;UACT,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,WAAW,EAAX;cAEE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;cACzC,IAAI,KAAK,GAAG,CAAC,EAAE;kBACb,MAAM,CAAC,IAAI,CAAC;sBACV,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC;sBACzB,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC;mBAC7B,CAAC,CAAA;eACH;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WAEF;OACF;GAEF;;;;WC3De,gBAAgB,CAAC,MAAW,EAAE,KAAU;MACtD,OAAO,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;YACvB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;YACnC,MAAM,IAAI,KAAK,CAAA;EACrB,CAAC;AAED,WAAgB,oBAAoB,CAAC,QAAa,EAAE,QAAe;MAEjE,IAAM,MAAM,GAAU,EAAE,CAAA;MAExB,IAAM,IAAI,GAAG,UAAU,QAAQ;UAC7B,QAAQ,CAAC,OAAO,CACd,UAAU,KAAK;cACL,IAAA,eAAG,EAAE,mBAAK,EAAE,mBAAK,CAAU;cACnC,IAAI,GAAG,KAAK,QAAQ,IAAI,KAAK,EAAE;kBACrB,IAAA,iBAAI,EAAE,mBAAK,CAAU;kBAC7B,MAAM,CAAC,IAAI,CAAC;sBACV,IAAI,MAAA;sBACJ,KAAK,OAAA;mBACN,CAAC,CAAA;eACH;mBACI,IAAI,GAAG,KAAK,aAAa,IAAI,KAAK,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAAE;kBACnE,IAAM,UAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAA;kBACnD,IAAI,UAAQ,EAAE;sBACZ,IAAI,CAAC,UAAQ,CAAC,CAAA;mBACf;eACF;WACF,CACF,CAAA;OACF,CAAA;MAED,IAAI,CAAC,QAAQ,CAAC,CAAA;MAEd,OAAO,MAAM,CAAA;EAEf,CAAC;;AClBD,eAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,aAAiB;MAEvB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;cAC9B,QAAQ,EAAE,IAAI;WACf;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,UAAU;cAChB,QAAQ,EAAE,IAAI;WACf;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UAEV,IAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,aAAiB,CAAC,CAAA;UAErE,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;UAEjC,OAAO;cACL,UAAU,EAAE,MAAM;oBACd,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC;oBAClD,KAAK;WACV,CAAA;OACF;MAED,MAAM,EAAE;UACN,MAAM,EAAE;cACN,QAAQ,YAAC,CAAC,EAAE,IAAI;kBACd,IAAI,CAAC,GAAG,CAAC;sBACP,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;mBAC5D,CAAC,CAAA;eACH;cACD,EAAE,EAAE,QAAQ;WACb;OACF;MAED,OAAO,EAAE;UACP,OAAO;cACL,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,QAAQ;eACb,EACD;kBACE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;eACzB,CACF,CAAA;WACF;OACF;GAEF,CAAC,CAAA;;ACrCF,eAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,aAAiB;MAEvB,SAAS,EAAE;UACT,OAAO,EAAE;cACP,IAAI,EAAE,SAAS;WAChB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,QAAQ;WAChB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;WAC1C;UACD,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;WACjF;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,WAAW;WACnB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;cAClC,KAAK,EAAE,UAAU;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,OAAO,SAAA;cACP,UAAU,YAAA;cACV,OAAO,EAAE,KAAK;cACd,SAAS,EAAE,KAAK;cAChB,eAAe,EAAE,EAAE;WACpB,CAAA;OACF;MAED,QAAQ,EAAE;UACR,UAAU,EAAV;cACE,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACnC,IAAI,OAAO,EAAE;kBACX,OAAO,OAAO,CAAA;eACf;cACD,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;cAC5C,IAAI,QAAQ,EAAE;kBACZ,OAAO,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;eAC5C;cACD,OAAO,EAAE,CAAA;WACV;UACD,eAAe,EAAf;cACE,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;cACzC,IAAM,MAAM,GAAU,EAAE,CAAA;cAExB,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,UAAU,EACV,UAAU,IAAS;kBACjB,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;sBACvC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;mBAClB;eACF,CACF,CAAA;cAED,OAAO,MAAM,CAAA;WACd;UACD,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC;sBACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;mBACtB,CAAC,CAAA;eACH;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;OACF;MAED,MAAM,EAAE;UACN,KAAK,EAAE;cACL,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAElB,KAAK,CAAC,IAAI,EAAE,CAAA;kBAEZ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;kBAE7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;sBACzB,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;mBAC7B;eAEF;cACD,EAAE,EAAE,QAAQ;WACb;UACD,OAAO,EAAE;cACP,QAAQ,YAAC,KAAK;kBAEZ,KAAK,CAAC,IAAI,EAAE,CAAA;kBAEZ,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;eAE7B;cACD,EAAE,EAAE,SAAS;WACd;OACF;MAED,OAAO,EAAE;UAEP,OAAO,EAAP,UAAQ,KAA4B;cAClC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;cACxB,cAAc,CAAC,KAAK,CAAC,CAAA;WACtB;UAED,YAAY,EAAZ,UAAa,KAA2B;;cAGtC,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,cAAc,CAAC,KAAK,CAAC,CAAA;cAErB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;cAC5B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;WAE3B;UAED,cAAc,EAAd,UAAe,KAA2B,EAAE,KAAa;cAEvD,KAAK,CAAC,IAAI,EAAE,CAAA;cAEZ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;cAE7B,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAClB,CAAA;WAEF;UAED,YAAY,EAAZ,UAAa,KAAU;cAErB,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAE9B,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;kBAEtB,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;yBACnB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAC/B;sBACA,OAAM;mBACP;kBAED,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;kBACzB,EAAE,CAAC,UAAU,CACX,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAChB,CAAA;eAEF;mBACI;kBAEH,IAAI,MAAM,KAAK,KAAK,EAAE;sBACpB,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;sBACtB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;mBACrB;eAEF;WAEF;UAED,cAAc,EAAd,UAAe,KAAU;cAEvB,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAE9B,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;kBAEtB,IAAM,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;wBACtC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;wBAChC,CAAC,CAAC,CAAA;kBAEN,IAAI,aAAa,GAAG,CAAC,EAAE;sBACrB,OAAM;mBACP;kBAED,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;kBACnC,EAAE,CAAC,UAAU,CACX,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAChB,CAAA;eAEF;mBACI;kBAEH,IAAI,MAAM,KAAK,KAAK,EAAE;sBACpB,OAAM;mBACP;kBAED,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;kBAC1B,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;eAEzB;WAEF;UAED,UAAU,YAAC,KAAK;cAEd,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,QAAQ;eACb,EACD;kBACE,KAAK,OAAA;eACN,CACF,CAAA;cAED,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,QAAQ;eACb,EACD;kBACE,KAAK,OAAA;eACN,EACD,IAAI,CACL,CAAA;WAEF;OAEF;MAED,UAAU;UACR,wBAAwB,CAAC,IAAI,CAAC,CAAA;OAC/B;MAED,WAAW,EAAX;UACE,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;cACjD,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAc,CAAA;cACzC,OAAO,CAAC,kBAAkB,EAAE,CAAA;WAC7B;OACF;MAED,UAAU,EAAE;UACV,GAAG,KAAA;UACH,IAAI,MAAA;UACJ,KAAK,OAAA;UACL,OAAO,SAAA;UACP,MAAM,QAAA;OACP;GAEF,CAAC,CAAA;;;;AC/TF,oBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,kBAAsB;MAE5B,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GACF;;;;;;AClBD,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,SAAS,EAAE;UACT,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;OACF;GAEF,CAAC,CAAA;;;;ACVF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,SAAS,EAAE;UACT,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;OACF;GAEF,CAAC,CAAA;;ACgBF,mBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,KAAK,EAAE,SAAS;MAEhB,IAAI,EAAE,iBAAqB;MAE3B,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;cACrC,KAAK,EAAE,WAAW;WACnB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;cACjB,QAAQ,EAAE,IAAI;WACf;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,CAAC;WACT;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,EAAE;WACV;UACD,eAAe,EAAE;cACf,IAAI,EAAE,SAAS;WAChB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,gBAAgB,EAAE;cAChB,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,IAAI;WACZ;UACD,SAAS,EAAE;cACT,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;cAClC,KAAK,EAAE,UAAU;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,IAAI,EAAE,EAAE;cACR,OAAO,EAAE,EAAE;WACZ,CAAA;OACF;MAED,QAAQ,EAAE;UACR,QAAQ,EAAR;cAEE,IAAM,MAAM,GAAG,EAAE,CAAA;cAEjB,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;cAC7C,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;cAEzC,IAAI,KAAK,KAAK,CAAC,EAAE;kBACf,OAAO,MAAM,CAAA;eACd;;cAGD,IAAI,KAAK,GAAG,OAAO,GAAG,CAAC,CAAA;cACvB,IAAI,GAAG,GAAG,OAAO,GAAG,CAAC,CAAA;cAErB,IAAI,KAAK,GAAG,CAAC,EAAE;kBACb,KAAK,GAAG,CAAC,CAAA;kBACT,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;eACjC;cACD,IAAI,GAAG,GAAG,KAAK,EAAE;kBACf,GAAG,GAAG,KAAK,CAAA;kBACX,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;eAC7B;cAED,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE;kBACjC,MAAM,CAAC,IAAI,CAAC;sBACV,KAAK,EAAE,CAAC;sBACR,MAAM,EAAE,CAAC,KAAK,OAAO;mBACtB,CAAC,CAAA;eACH;cAED,IAAI,KAAK,GAAG,CAAC,EAAE;;kBAEb,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE;sBACjB,MAAM,CAAC,OAAO,CAAC;0BACb,IAAI,EAAE,IAAI;uBACX,CAAC,CAAA;mBACH;kBACD,MAAM,CAAC,OAAO,CAAC;sBACb,KAAK,EAAE,CAAC;sBACR,MAAM,EAAE,CAAC,KAAK,OAAO;mBACtB,CAAC,CAAA;eACH;cAED,IAAI,GAAG,GAAG,KAAK,EAAE;;kBAEf,IAAI,KAAK,GAAG,GAAG,GAAG,CAAC,EAAE;sBACnB,MAAM,CAAC,IAAI,CAAC;0BACV,IAAI,EAAE,IAAI;uBACX,CAAC,CAAA;mBACH;kBACD,MAAM,CAAC,IAAI,CAAC;sBACV,KAAK,EAAE,KAAK;sBACZ,MAAM,EAAE,KAAK,KAAK,OAAO;mBAC1B,CAAC,CAAA;eACH;cAED,OAAO,MAAM,CAAA;WAEd;UACD,YAAY,EAAZ;cAEE,IAAM,MAAM,GAAG,EAAE,CAAA;cACjB,IAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;cAEnD,IAAI,eAAe,EAAE;kBACnB,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,eAAe,EACf,UAAU,KAAK;sBACb,MAAM,CAAC,IAAI,CAAC;0BACV,IAAI,EAAE,KAAK,GAAG,MAAM;0BACpB,KAAK,OAAA;uBACN,CAAC,CAAA;mBACH,CACF,CAAA;eACF;cAED,OAAO,MAAM,CAAA;WAEd;UACD,KAAK,EAAL;cACE,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cACrC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAA;WACnC;OACF;MAED,MAAM,EAAE;UACN;cACE,IAAI,EAAE,QAAQ;cACd,EAAE,EAAE,QAAQ;cACZ,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAElB,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;sBAC1C,OAAM;mBACP;kBAED,KAAK,CAAC,IAAI,EAAE,CAAA;;kBAGZ,IAAI,CAAC,IAAI,CACP;sBACE,IAAI,EAAE,QAAQ;sBACd,EAAE,EAAE,YAAY;mBACjB,EACD;sBACE,QAAQ,EAAE,IAAI,CAAC,KAAK;mBACrB,CACF,CAAA;eAEF;WACF;UACD;cACE,IAAI,EAAE,QAAQ;cACd,EAAE,EAAE,OAAO;cACX,QAAQ,YAAC,KAAK;kBAEZ,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;sBAC1C,OAAM;mBACP;;kBAGD,KAAK,CAAC,IAAI,EAAE,CAAA;eAEb;WACF;UACD;cACE,IAAI,EAAE,OAAO;cACb,EAAE,EAAE,OAAO;cACX,QAAQ,YAAC,KAAK;kBAEZ,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;sBAC1C,OAAM;mBACP;kBAED,KAAK,CAAC,IAAI,EAAE,CAAA;;kBAGZ,IAAI,CAAC,IAAI,EAAE,CAAA;eAEZ;WACF;OACF;MAED,QAAQ,EAAE;UACR,OAAO,EAAP,UAAQ,OAAe;cACrB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;WAC1B;OACF;MAED,OAAO,EAAE;UAEP,WAAW,EAAX,UAAY,IAAY;cACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;WACtB;UACD,WAAW,EAAX,UAAY,IAAY;cACtB,IAAI,CAAC,GAAG,CAAC;kBACP,OAAO,EAAK,IAAI,UAAO;eACxB,CAAC,CAAA;WACH;UACD,UAAU,EAAV,UAAW,IAAY;cACrB,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAQ,IAAI,UAAO,EAAE;kBAC1C,IAAI,CAAC,GAAG,CAAC;sBACP,OAAO,EAAE,EAAE;mBACZ,CAAC,CAAA;eACH;WACF;UAED,eAAe;cACb,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;WACxB;UACD,eAAe;cACb,IAAI,CAAC,GAAG,CAAC;kBACP,OAAO,EAAE,WAAW;eACrB,CAAC,CAAA;WACH;UACD,cAAc;cACZ,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,WAAW,EAAE;kBACvC,IAAI,CAAC,GAAG,CAAC;sBACP,OAAO,EAAE,EAAE;mBACZ,CAAC,CAAA;eACH;WACF;UAED,eAAe;cACb,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;WACxB;UACD,eAAe;cACb,IAAI,CAAC,GAAG,CAAC;kBACP,OAAO,EAAE,WAAW;eACrB,CAAC,CAAA;WACH;UACD,cAAc;cACZ,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,WAAW,EAAE;kBACvC,IAAI,CAAC,GAAG,CAAC;sBACP,OAAO,EAAE,EAAE;mBACZ,CAAC,CAAA;eACH;WACF;UAED,WAAW;cACT,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC3B,IAAI,IAAI,EAAE;kBACR,IAAI,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;sBACxB,IAAI,GAAG,CAAC,IAAI,CAAA;sBACZ,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;0BAC5B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;uBACtB;2BACI,IAAI,IAAI,IAAI,CAAC,EAAE;0BAClB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;uBACtB;2BACI;0BACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;uBACtB;mBACF;uBACI;sBACH,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;mBAC1B;eACF;mBACI;kBACH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;eACxB;WACF;UAED,SAAS,EAAT,UAAU,KAAa;cACrB,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,YAAY;eACjB,EACD;kBACE,KAAK,OAAA;eACN,CACF,CAAA;WACF;UAED,UAAU,EAAV,UAAW,OAAe;cACxB,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,OAAO,EAAE;kBACnC,OAAM;eACP;cACD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;cAC5B,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,YAAY;eACjB,EACD;kBACE,OAAO,SAAA;eACR,CACF,CAAA;WACF;UAED,eAAe,EAAf,UAAgB,IAAY;cAC1B,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;cACrD,IAAI,CAAC,UAAU,CACb,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CACtB,CAAA;WACF;UAED,eAAe,EAAf,UAAgB,IAAY;cAC1B,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;cACrD,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,CAAC,UAAU,CACb,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAC9B,CAAA;WACF;OAEF;MAED,UAAU;UACR,IAAM,EAAE,GAAG,IAAI,CAAA;UACf,wBAAwB,CAAC,EAAE,EAAE;cAC3B,IAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACjC,IAAI,OAAO,EAAE;kBACX,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;kBAChC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;sBACvB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;0BACvB,EAAE,CAAC,eAAe,EAAE,CAAA;uBACrB;2BACI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;0BAC5B,EAAE,CAAC,eAAe,EAAE,CAAA;uBACrB;2BACI;0BACH,EAAE,CAAC,WAAW,CACZ,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACnB,CAAA;uBACF;mBACF;eACF;WACF,CAAC,CAAA;OACH;MAED,UAAU,EAAE;UACV,IAAI,MAAA;UACJ,KAAK,OAAA;UACL,MAAM,QAAA;UACN,MAAM,QAAA;UACN,QAAQ,UAAA;UACR,QAAQ,UAAA;OACT;GAEF;;;;ECjXD;EACA,IAAI,IAAI,GAAG,CAAC,CAAC,CAAA;AAEb,eAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,aAAiB;MAEvB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;WACjB;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,YAAY;WACnB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,YAAY;WACnB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,WAAW,EAAE,KAAK;WACnB,CAAA;OACF;MAED,QAAQ,EAAE;UACR,aAAa,EAAb;cACE,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;cACjC,OAAO,MAAM;oBACT,IAAI,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;oBAC3E,SAAS,CAAA;WACd;OACF;MAED,OAAO,EAAE;UACP,YAAY,EAAZ,UAAa,QAAkB;cAE7B,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAM,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;cAE7C,IAAM,gBAAgB,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;mBACnD,MAAM,CACL,UAAU,IAAI;kBACZ,OAAO,aAAa;wBAChB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC7B,IAAI,CAAA;eACT,CACF;mBACA,GAAG,CACF,UAAU,IAAI;kBACZ,OAAO;;sBAEL,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;sBACpB,IAAI,MAAA;sBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;sBACf,IAAI,EAAE,IAAI,CAAC,IAAI;mBAChB,CAAA;eACF,CACF,CAAA;cAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC;qBAC1B,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EACtB;kBACA,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAA;eAC5B;cAED,IAAM,YAAY,GAAG,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;cAC3C,IAAI,YAAY,EAAE;kBAChB,IAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;kBAC7B,YAAY,CAAC;sBACX,KAAK,OAAA;sBACL,QAAQ,EAAE,gBAAgB;sBAC1B,QAAQ,EAAR,UAAS,MAAM;0BACb,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;8BACxB,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,MAAM,EACN,UAAU,IAAe;kCACvB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;+BAChB,CACF,CAAA;2BACF;+BACI,IAAI,MAAM,EAAE;8BACf,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;2BAClB;uBACF;mBACF,CAAC,CAAA;kBACF,OAAM;eACP;cAED,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,gBAAgB,EAChB,UAAU,IAAI;kBACZ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;eAChB,CACF,CAAA;WAEF;UAED,MAAM,EAAN,UAAO,IAAe;cAEpB,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC7B,IAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;cAE/B,MAAM,CAAC;kBACL,KAAK,OAAA;kBACL,EAAE,EAAE,IAAI,CAAC,EAAE;kBACX,IAAI,EAAE,IAAI,CAAC,IAAI;kBACf,OAAO;sBACL,EAAE,CAAC,IAAI,CACL;0BACE,IAAI,EAAE,OAAO;0BACb,EAAE,EAAE,QAAQ;uBACb,EACD,IAAI,CACL,CAAA;mBACF;kBACD,KAAK;sBAEH,EAAE,CAAC,IAAI,CACL;0BACE,IAAI,EAAE,KAAK;0BACX,EAAE,EAAE,QAAQ;uBACb,EACD,IAAI,CACL,CAAA;sBAED,EAAE,CAAC,KAAK,EAAE,CAAA;mBAEX;kBACD,OAAO;sBACL,EAAE,CAAC,IAAI,CACL;0BACE,IAAI,EAAE,OAAO;0BACb,EAAE,EAAE,QAAQ;uBACb,EACD,IAAI,CACL,CAAA;mBACF;kBACD,OAAO;sBACL,EAAE,CAAC,IAAI,CACL;0BACE,IAAI,EAAE,OAAO;0BACb,EAAE,EAAE,QAAQ;uBACb,EACD,IAAI,CACL,CAAA;mBACF;kBACD,UAAU,YAAC,QAAQ;sBACjB,EAAE,CAAC,IAAI,CACL;0BACE,IAAI,EAAE,UAAU;0BAChB,EAAE,EAAE,QAAQ;uBACb,EACD;0BACE,EAAE,EAAE,IAAI,CAAC,EAAE;0BACX,IAAI,EAAE,IAAI,CAAC,IAAI;0BACf,QAAQ,UAAA;uBACT,CACF,CAAA;mBACF;kBACD,SAAS,YAAC,QAAQ;sBAChB,EAAE,CAAC,IAAI,CACL;0BACE,IAAI,EAAE,SAAS;0BACf,EAAE,EAAE,QAAQ;uBACb,EACD;0BACE,EAAE,EAAE,IAAI,CAAC,EAAE;0BACX,IAAI,EAAE,IAAI,CAAC,IAAI;0BACf,QAAQ,UAAA;uBACT,CACF,CAAA;mBACF;eACF,CAAC,CAAA;WACH;UAED,KAAK,EAAL;;cAEG,IAAI,CAAC,KAAK,CAAC,IAAwB,CAAC,KAAK,EAAE,CAAA;WAC7C;UAED,WAAW,EAAX;cACG,IAAI,CAAC,KAAK,CAAC,KAA0B,CAAC,KAAK,EAAE,CAAA;WAC/C;UAED,eAAe;cACb,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;WAC9B;UAED,eAAe;cACb,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;WAC/B;UAED,cAAc,EAAd,UAAe,KAA2B;;cAExC,KAAK,CAAC,OAAO,EAAE,CAAA;WAChB;UAED,UAAU,EAAV,UAAW,KAA2B;cACpC,KAAK,CAAC,OAAO,EAAE,CAAA;cACf,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;cAC9B,IAAI,CAAC,YAAY,CACd,KAAK,CAAC,aAA2B,CAAC,YAAY,CAAC,KAAK,CACtD,CAAA;WACF;UAED,YAAY,EAAZ,UAAa,KAA2B;cACtC,IAAI,CAAC,YAAY,CACd,KAAK,CAAC,aAAa,CAAC,MAA2B,CAAC,KAAK,CACvD,CAAA;WACF;OAEF;GAEF;;;;AC/OD,cAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,YAAgB;MAEtB,SAAS,EAAE;UACT,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC;cAC7B,KAAK,EAAE,gBAAgB;WACxB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,QAAQ;cACN,OAAO,iBAAiB,CACtB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CACnB,CAAA;WACF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF,CAAC,CAAA;;;;AClDF,gBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,cAAkB;MAExB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF,CAAC,CAAA;;;;AC1BF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;cAChB,QAAQ,EAAE,IAAI;WACf;UACD,KAAK,EAAE;cACL,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;WAC/B;UACD,OAAO,EAAE;cACP,IAAI,EAAE,UAAU;WACjB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,OAAO,SAAA;WACR,CAAA;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;UACJ,OAAO,SAAA;UACP,QAAQ,UAAA;OACT;GAEF;;;;AC3CD,sBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,oBAAwB;MAE9B,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;cAChB,QAAQ,EAAE,IAAI;WACf;UACD,KAAK,EAAE;cACL,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;WAC/B;UACD,EAAE,EAAE;cACF,IAAI,EAAE,WAAW;WAClB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF;;;;AC9BD,aAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,WAAe;MAErB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,WAAW;WACnB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GAEF;;;;ACJD,oBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,kBAAsB;MAE5B,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC;kBACV,gBAAgB;kBAChB,aAAa;kBACb,gBAAgB;kBAChB,gBAAgB;kBAChB,cAAc,EACf,CAAC;WACH;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;cAChD,KAAK,EAAE,WAAW;WACnB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAC;cAChC,KAAK,EAAE,cAAc;WACtB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,SAAS;cACf,QAAQ,EAAE,IAAI;WACf;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,SAAS,WAAA;cACT,aAAa,EAAE,KAAK;WACrB,CAAA;OACF;MAED,MAAM,EAAE;UACN,KAAK,YAAC,KAAK;cACT,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;kBAC1C,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,cAAc,CAAC,KAAK,CAAC,CAAA;eACtB;WACF;UACD,IAAI,YAAC,KAAK;cACR,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;WAChC;UACD,KAAK,YAAC,KAAK;cACT,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;WACjC;OACF;MAED,OAAO,EAAE;UACP,aAAa,EAAb,UAAc,KAA2B;cACvC,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,cAAc,CAAC,KAAK,CAAC,CAAA;cACrB,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,aAAa;eAClB,CACF,CAAA;WACF;UACD,WAAW,YAAC,IAAI,EAAE,KAAK;cACrB,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;cAChC,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,aAAa;eAClB,EACD;kBACE,IAAI,MAAA;kBACJ,KAAK,OAAA;eACN,CACF,CAAA;WACF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;UACJ,MAAM,QAAA;UACN,WAAW,aAAA;UACX,OAAO,SAAA;OACR;GAEF;;;;EC/GD,IAAMC,eAAa,GAAG,sBAA0B,CAAA;EAChD,IAAMC,YAAU,GAAG,mBAAuB,CAAA;AAE1C,gBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,cAAkB;MAExB,SAAS,EAAE;UACT,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;WACjB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,CAAC;WACT;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,GAAG;WACX;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,SAAS,EAAE,KAAK;WACjB,CAAA;OACF;MAED,QAAQ,EAAE;UACR,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,WAAW,GAA2B,EAAE,CAAA;cAE9C,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;cACjC,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAE/B,IAAI,MAAM,EAAE;kBACV,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;eACrC;cACD,IAAI,KAAK,EAAE;kBACT,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;eACnC;cAED,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;kBAC3C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;eACzB;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;OACF;MAED,WAAW,EAAE;UACX,OAAO,EAAE;cACP,KAAK,YAAC,IAAI;kBAER,IAAM,EAAE,GAAG,IAAI,CAAA;;kBAGf,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAED,eAAa,CAAC,CAAA;kBAErC,UAAU,CACR;sBACE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;0BACxB,OAAM;uBACP;sBACD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAEC,YAAU,CAAC,CAAA;mBACnC,EACD,EAAE,CACH,CAAA;eAEF;cACD,KAAK,YAAC,IAAI,EAAE,IAAI;kBAEd,IAAM,EAAE,GAAG,IAAI,CAAA;kBAEf,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAEA,YAAU,CAAC,CAAA;kBAErC,eAAe,CACb,IAAI,EACJ;sBACE,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;0BACvB,OAAM;uBACP;sBACD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAED,eAAa,CAAC,CAAA;sBACxC,IAAI,EAAE,CAAA;mBACP,CACF,CAAA;eAEF;WACF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;MAED,UAAU,EAAV;UAEE,IAAM,EAAE,GAAG,IAAI,CAAA;UAEf,IAAI,SAAS,GAA2B,QAAQ,CAAA;UAChD,IAAI,gBAAgB,GAAG,QAAQ,CAAC,eAAe,CAAA;UAE/C,IAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;UAC/B,IAAI,MAAM,EAAE;cACV,gBAAgB,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAgB,CAAA;cACtD,IAAI,CAAC,gBAAgB,EAAE;kBACrB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA0B,MAAQ,CAAC,CAAA;kBACpD,OAAM;eACP;cACD,SAAS,GAAG,gBAAgB,CAAA;WAC7B;UAED,IAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;UACzC,IAAM,SAAS,GAAG;cAChB,EAAE,CAAC,GAAG,CAAC;kBACL,SAAS,EAAE,gBAAgB,CAAC,SAAS,IAAI,MAAM;eAChD,CAAC,CAAA;WACH,CAAA;UAED,IAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;UAC/C,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE;cACb,QAAQ,CACN,gBAAgB,EAChB,gBAAgB,CAAC,SAAS,EAC1B,CAAC,EACD,QAAQ,CACT,CAAA;WACF,CAAC,CAAA;UAEF,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAA;UAClD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAA;UAE/C,IAAM,OAAO,GAAG,UAAU,SAAS;cACjC,IAAI,SAAS,KAAK,EAAE,EAAE;kBACpB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAA;kBACnD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAA;kBAChD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;eACrD;WACF,CAAA;UACD,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;OAEpD;GAEF,CAAC,CAAA;;;;ECvKF,IAAM,gBAAgB,GAAG,CAAC,CAAA;EAE1B,IAAM,YAAY,GAAG,EAAE,CAAA;EACvB,IAAM,UAAU,GAAG,EAAE,CAAA;EACrB,IAAM,UAAU,GAAG,EAAE,CAAA;AAErB,eAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,aAAiB;MAEvB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;cAC/B,KAAK,EAAE,WAAW;WACnB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,KAAK,CAAC,CAAC,gBAAgB,CAAC,CAAC;WAChC;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,UAAU;WACjB;UACD,GAAG,EAAE;cACH,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,YAAY;WACnB;UACD,GAAG,EAAE;cACH,IAAI,EAAE,UAAU;WACjB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;WACjB;UACD,GAAG,EAAE;cACH,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,eAAe,EAAE;cACf,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,SAAS;cACP,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC7B,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;cAC5B,IAAI,KAAK,GAAG,CAAC,EAAE;kBACb,OAAO,KAAK,CAAA;eACb;cACD,IAAI,IAAI,KAAK,SAAS,EAAE;kBACtB,OAAO,UAAU,CAAA;eAClB;cACD,IAAI,IAAI,KAAK,SAAS,EAAE;kBACtB,OAAO,UAAU,CAAA;eAClB;cACD,OAAO,YAAY,CAAA;WACpB;UACD,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,WAAW,GAA2B,EAAE,CAAA;cAE9C,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACvC,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;cACtC,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;cAEvC,IAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;cACnD,IAAI,eAAe,EAAE;kBACnB,WAAW,CAAC,eAAe,GAAG,eAAe,CAAA;eAC9C;cAED,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;kBAC3C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;eACzB;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;UACD,SAAS,EAAT;cAEE,IAAM,WAAW,GAA2B,EAAE,CAAA;cAE9C,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cAErC,IAAI,KAAK,EAAE;kBACT,WAAW,CAAC,KAAK,GAAG,KAAK,CAAA;eAC1B;cACD,IAAI,QAAQ,EAAE;kBACZ,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;eACzC;cAED,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;kBAC3C,OAAO,WAAW,CAAA;eACnB;WAEF;OACF;MAED,UAAU,EAAV;UAEE,IAAM,EAAE,GAAG,IAAI,CAAA;UAEf,EAAE,CAAC,KAAK,CACN,MAAM,EACN;cACE,EAAE,CAAC,QAAQ,CAAC;kBAEV,IAAM,OAAO,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,IAAmB,CAAA;kBACxD,IAAI,CAAC,OAAO,EAAE;sBACZ,OAAM;mBACP;kBAED,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW;wBAC7B,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,GAAG,gBAAgB,IAAI,OAAO,CAAC,WAAW;wBAC7D,CAAC,CAAA;kBAEL,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,WAAS,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,uBAAoB,CAAA;eAE1E,CAAC,CAAA;WACH,EACD,IAAI,CACL,CAAA;OAEF;GACF,CAAC,CAAA;;;;ACpJF,cAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,IAAI,EAAE,YAAgB;MAEtB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,cAAc;WACtB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC;kBACV,aAAa;kBACb,gBAAgB;kBAChB,cAAc;kBACd,gBAAgB;kBAChB,WAAW;kBACX,YAAY,EACb,CAAC;WACH;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;WAC/B;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,GAAG,EAAE;cACH,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,EAAE;WACV;UACD,GAAG,EAAE;cACH,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,OAAO,EAAE;UACP,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO;UACzB,UAAU,EAAV,UAAW,KAAU,EAAE,GAAQ;cAC7B,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAA;cAC1C,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAA;cACpC,OAAO,GAAG,GAAG,KAAK;oBACd,GAAG,GAAG,GAAG;oBACT,KAAK,CAAA;WACV;OACF;GAEF,CAAC,CAAA;;;;;;;;EC7EK,IAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAExD,EAAO,IAAMD,QAAM,GAAG,IAAI,CAAA;AAC1B,EAAO,IAAMG,QAAM,GAAG,EAAE,GAAGH,QAAM,CAAA;AACjC,EAAO,IAAMI,MAAI,GAAG,EAAE,GAAGD,QAAM,CAAA;AAC/B,EAAO,IAAME,KAAG,GAAG,EAAE,GAAGD,MAAI,CAAA;AAE5B,EAAO,IAAM,eAAe,GAAG,EAAE,GAAGC,KAAG,CAAA;AACvC,EAAO,IAAM,MAAM,GAAG;MACpB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;MAC5B,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;MAC5B,KAAK,EAAE,KAAK;GACb,CAAA;AAED,EAAO,IAAM,aAAa,GAAG,MAAM,CAAA;AACnC,EAAO,IAAM,mBAAmB,GAAG,WAAW,CAAA;AAC9C,EAAO,IAAM,aAAa,GAAG,MAAM,CAAA;AACnC,EAAO,IAAM,aAAa,GAAG,MAAM,CAAA;AACnC,EAAO,IAAM,cAAc,GAAG,OAAO,CAAA;AAgCrC,WAAgB,YAAY,CAAC,IAAmB;MAC9C,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;MAC3B,OAAO;UACL,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE;UAC1B,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC;UAC5B,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE;UACtB,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE;OAC5B,CAAA;EACH,CAAC;AAED,WAAgB,MAAM,CAAC,IAAmB;MAExC,IAAI,MAAY,CAAA;MAEhB,IAAI,IAAI,YAAY,IAAI,EAAE;UACxB,MAAM,GAAG,IAAI,CAAA;OACd;WACI;UACH,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;OACxB;;;;;MAMD,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;MAE3B,OAAO,MAAM,CAAA;EAEf,CAAC;AAED,WAAgB,WAAW,CAAC,IAA0B;MACpD,OAAO,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAA;EAC7C,CAAC;AAED,WAAgB,WAAW,CAAC,SAAiB,EAAE,MAAc;MAE3D,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;MAEhC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;MACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAA;MAEvC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;EAEvB,CAAC;EAED,SAAS,eAAe,CAAC,IAAU;MACjC,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;MACzB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,GAAGA,KAAG,CAAC,CAAA;EAC7C,CAAC;EAED,SAAS,cAAc,CAAC,IAAU;MAChC,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;MACzB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,IAAIA,KAAG,CAAC,CAAA;EACnD,CAAC;EAED,SAAS,gBAAgB,CAAC,IAAU;MAClC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;MACf,OAAO,IAAI,CAAA;EACb,CAAC;EAED,SAAS,eAAe,CAAC,IAAU;MACjC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;MACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;MAClC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAGA,KAAG,CAAC,CAAA;EACvC,CAAC;AAED,WAAgB,wBAAwB,CAAC,SAAiB,EAAE,KAAa;MACvE,IAAI,MAAM,GAAe,EAAE,EAAE,IAAI,GAAa,EAAE,CAAA;MAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;UAC9B,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;UACxB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;cACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;cACjB,IAAI,GAAG,EAAE,CAAA;WACV;OACF;MACD,OAAO,MAAM,CAAA;EACf,CAAC;AAED,WAAgB,yBAAyB,CAAC,IAAY;MAEpD,IAAI,MAAM,GAAoB,EAAE,EAAE,IAAI,GAAkB,EAAE,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;MAE7E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;MACtB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;MACf,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;MAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;UAEjD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;UAEhB,IAAI,CAAC,IAAI,CAAC;cACR,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE;cACzB,IAAI,MAAA;cACJ,KAAK,EAAE,CAAC,GAAG,CAAC;cACZ,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;WAChB,CAAC,CAAA;UACF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;cACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;cACjB,IAAI,GAAG,EAAE,CAAA;WACV;OACF;MACD,OAAO,MAAM,CAAA;EACf,CAAC;AAED,WAAgB,wBAAwB,CAAC,SAAiB;MAExD,IAAI,SAAS,GAAG,eAAe,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;MAChF,IAAI,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;MAE5E,IAAI,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;MAClC,IAAI,MAAM,GAAG,eAAe,GAAG,QAAQ,CAAA;MAEvC,IAAI,MAAM,GAAG,CAAC,EAAE;UACd,OAAO,IAAI,MAAM,CAAA;OAClB;MAED,IAAI,MAAM,GAAc,EAAE,EAAE,IAAI,GAAiB,EAAE,CAAA;MACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,IAAIA,KAAG,EAAE;UAEnE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;UAE7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;cACf,MAAM,CAAC,IAAI,CAAC;kBACV,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;kBACd,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;kBAC1B,IAAI,EAAE,IAAI;eACX,CAAC,CAAA;cACF,IAAI,GAAG,EAAE,CAAA;WACV;OAEF;MAED,OAAO,MAAM,CAAA;EACf,CAAC;EAED;;;;;;;AAOA,WAAgB,UAAU,CAAC,IAAU,EAAE,MAAc;MACnD,OAAO,MAAM;WACV,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;WAC9C,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;WAC7C,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;WAC5C,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;WACxC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;EAC5C,CAAC;;AC3LD,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,SAAS,EAAE;UACT,WAAW,EAAE;cACX,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;WAC7B;UACD,WAAW,EAAE;cACX,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC;WACxC;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UACV,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;UACjC,IAAI,IAAI,GAAG,KAAK,CAAC,WAAW,CAAA;UAC5B,IAAI,CAAC,IAAI,EAAE;cACT,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;kBACnC,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;eAC5B;mBACI;kBACH,IAAI,GAAG,KAAK,CAAC,WAAW,CAAA;eACzB;WACF;UACD,OAAO;cACL,IAAI,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;cACtD,KAAK,EAAE,EAAE;WACV,CAAA;OACF;MAED,QAAQ,EAAE;UACR,UAAU,EAAV;cACE,OAAO,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;WACrE;UACD,YAAY,EAAZ;cACE,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cACzC,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;kBAC7B,OAAO,WAAW,CAAC,GAAG,CAAC,UAAU,IAAmB;sBAClD,OAAO,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;mBAC7C,CAAC,CAAA;eACH;cACD,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAA;WAC7D;OACF;MAED,OAAO,EAAE;UACP,SAAS,EAAT,UAAU,IAAY,EAAE,YAAsB;cAC5C,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;WACzC;OACF;MAED,OAAO,EAAE;UACP,KAAK,EAAL,UAAM,IAAY;cAChB,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,MAAM;eACX,EACD;kBACE,IAAI,EAAE,IAAI;eACX,CACF,CAAA;WACF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF,CAAC,CAAA;;ECrEF,SAAS,gBAAgB,CAAC,IAA0B;MAClD,IAAI,IAAI,EAAE;UACR,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;UACnB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;UACf,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;OACtB;MACD,OAAO,CAAC,CAAA;EACV,CAAC;AAED,kBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,SAAS,EAAE;UACT,WAAW,EAAE;cACX,IAAI,EAAE,UAAU;WACjB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC;WACxC;UACD,WAAW,EAAE;cACX,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UACV,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;UACjC,IAAI,IAAI,GAAG,KAAK,CAAC,WAAW,CAAA;UAC5B,IAAI,CAAC,IAAI,EAAE;cACT,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;kBACnC,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;eAC5B;mBACI;kBACH,IAAI,GAAG,KAAK,CAAC,WAAW,CAAA;eACzB;WACF;UACD,OAAO;cACL,IAAI,EAAE,cAAc;cACpB,aAAa,eAAA;cACb,cAAc,gBAAA;cAEd,IAAI,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;WACvD,CAAA;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;UACJ,QAAQ,UAAA;OACT;MAED,QAAQ,EAAE;UACR,UAAU,EAAV;cACE,OAAO,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;WACnD;UACD,iBAAiB,EAAjB;cACE,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cAC3C,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;kBAC7B,OAAO,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;eACzC;cACD,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAA;WACvC;OACF;MAED,OAAO,EAAE;UACP,SAAS,EAAT,UAAU,IAAiB,EAAE,iBAA2B;cACtD,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;WACxD;OACF;MAED,MAAM,EAAE;UACN,MAAM,EAAE;cACN,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,IAAI,CAAC,GAAG,CAAC;sBACP,IAAI,EAAE,cAAc;sBACpB,IAAI,EAAE,IAAI,CAAC,IAAI;mBAChB,CAAC,CAAA;eACH;cACD,EAAE,EAAE,MAAM;WACX;OACF;MAED,OAAO,EAAE;UACP,KAAK,EAAL,UAAM,IAAiB;cACrB,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,OAAO;eACZ,EACD,IAAI,CACL,CAAA;WACF;OACF;GAEF,CAAC,CAAA;;AC3FF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,SAAS,EAAE;UACT,WAAW,EAAE;cACX,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;WAC7B;UACD,WAAW,EAAE;cACX,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC;WACxC;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,YAAY;WACnB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,WAAW;WAClB;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UACV,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;UACjC,IAAI,IAAI,GAAG,KAAK,CAAC,WAAW,CAAA;UAC5B,IAAI,CAAC,IAAI,EAAE;cACT,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;kBACnC,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;eAC5B;mBACI;kBACH,IAAI,GAAG,KAAK,CAAC,WAAW,CAAA;eACzB;WACF;UACD,OAAO;cACL,IAAI,EAAE,aAAa;cACnB,aAAa,eAAA;cACb,aAAa,eAAA;cACb,cAAc,gBAAA;cAEd,KAAK,EAAE,KAAK;cACZ,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC;WAC7B,CAAA;OACF;MAED,QAAQ,EAAE;UACR,IAAI,EAAJ;cACE,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;WAC3C;UACD,UAAU,EAAV;cACE,OAAO,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;WACvD;UACD,iBAAiB,EAAjB;cACE,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cACzC,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;kBAC7B,OAAO,WAAW,CAAC,GAAG,CAAC,UAAU,IAAmB;sBAClD,OAAO,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;mBACpC,CAAC,CAAA;eACH;cACD,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;WACpD;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;UACJ,QAAQ,UAAA;UACR,SAAS,WAAA;OACV;MAED,OAAO,EAAE;UACP,cAAc,EAAd,UAAe,IAAgB,EAAE,IAAgB;cAC/C,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAA;WAC5D;UAED,SAAS,EAAT,UAAU,IAAgB,EAAE,YAAoD;cAC9E,OAAO,YAAY;oBACf,YAAY,CAAC,IAAI,CAAC;oBAClB,IAAI,CAAA;WACT;UAED,SAAS,EAAT,UAAU,IAAgB,EAAE,iBAA2B;cACrD,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;WACxD;OACF;MAED,MAAM,EAAE;UACN;cACE,IAAI,EAAE,QAAQ;cACd,EAAE,EAAE,MAAM;cACV,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,KAAK,CAAC,IAAI,EAAE,CAAA;;kBAEZ,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;kBAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;kBAE3B,IAAI,CAAC,GAAG,CAAC;sBACP,IAAI,EAAE,aAAa;sBACnB,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE;mBAC1B,CAAC,CAAA;eACH;WACF;UACD;cACE,IAAI,EAAE,QAAQ;cACd,EAAE,EAAE,OAAO;cACX,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,KAAK,CAAC,IAAI,EAAE,CAAA;;kBAEZ,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;kBAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;;kBAE7B,IAAI,CAAC,GAAG,CAAC;sBACP,IAAI,EAAE,aAAa;sBACnB,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE;mBAC1B,CAAC,CAAA;eACH;WACF;OACF;MAED,OAAO,EAAE;UACP,MAAM,EAAN,UAAO,MAAc;cACnB,IAAI,CAAC,GAAG,CACN,WAAW,EACX,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAC3C,CAAA;WACF;UACD,KAAK,EAAL,UAAM,IAAgB;cACpB,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,MAAM;eACX,EACD,IAAI,CACL,CAAA;WACF;OACF;GAEF,CAAC,CAAA;;;;ECpJF,SAAS,eAAe,CAAC,cAAsB,EAAE,YAAoB;MAEnE,IAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,CAAA;MAC1C,IAAM,OAAO,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAA;MAEtC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;MACpB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;MAElB,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,EAAE;UAC3C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;OACzB;MAED,OAAO,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;EAErC,CAAC;AAED,kBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,SAAS,EAAE;UACT,UAAU,EAAE;cACV,IAAI,EAAE,WAAW;WAClB;UACD,gBAAgB,EAAE;cAChB,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;WAC7B;UACD,gBAAgB,EAAE;cAChB,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;WAC7B;UACD,cAAc,EAAE;cACd,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;WAC7B;UACD,cAAc,EAAE;cACd,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;WAC7B;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,YAAY;WACnB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UAEV,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;UAEjC,IAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;UACpF,IAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,IAAI,cAAc,CAAC,CAAA;UAEhG,OAAO;cACL,KAAK,EAAE,KAAK;cAEZ,cAAc,gBAAA;cACd,YAAY,EAAE,eAAe,CAAC,cAAc,EAAE,YAAY,CAAC;;cAG3D,OAAO,EAAE,SAAS;;cAElB,QAAQ,EAAE,SAAS;WACpB,CAAA;OAEF;MAED,QAAQ,EAAE;UACR,SAAS,EAAT;cACE,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;WAChD;UACD,OAAO,EAAP;cACE,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAA;WAC9C;UACD,eAAe,EAAf;cACE,OAAO,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;WAC5D;UACD,aAAa,EAAb;cACE,OAAO,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAA;WAC1D;UACD,qBAAqB,EAArB;cACE,IAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;cACrD,OAAO,gBAAgB;oBACnB,WAAW,CAAC,gBAAgB,CAAC;oBAC7B,CAAC,CAAA;WACN;UACD,mBAAmB,EAAnB;cACE,IAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;cACjD,OAAO,cAAc;oBACjB,WAAW,CAAC,cAAc,CAAC;oBAC3B,CAAC,CAAA;WACN;UACD,6BAA6B,EAA7B;cACE,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACnC,IAAI,CAAC,OAAO,EAAE;kBACZ,OAAO,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;eACzC;cACD,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cACrC,OAAO,QAAQ;oBACX,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;oBAC/C,OAAO,CAAC,SAAS,CAAA;WACtB;UACD,2BAA2B,EAA3B;cACE,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACnC,IAAI,CAAC,OAAO,EAAE;kBACZ,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;eACvC;cACD,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cACrC,OAAO,QAAQ;oBACX,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;oBAC/C,CAAC,CAAA;WACN;OACF;MAED,QAAQ,EAAE;UACR,gBAAgB,YAAC,KAAK;cACpB,IAAI,KAAK,EAAE;kBACT,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;eAC/C;WACF;UACD,cAAc,YAAC,KAAK;cAClB,IAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;cACjD,IAAI,cAAc,IAAI,KAAK,EAAE;kBAC3B,IAAI,CAAC,GAAG,CACN,cAAc,EACd,eAAe,CAAC,cAAc,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CACpD,CAAA;eACF;WACF;OACF;MAED,OAAO,EAAE;UACP,cAAc,EAAd,UAAe,IAAgB,EAAE,IAAgB;cAC/C,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAA;WAC5D;UAED,SAAS,EAAT,UAAU,IAAgB,EAAE,YAAoD;cAC9E,OAAO,YAAY;oBACf,YAAY,CAAC,IAAI,CAAC;oBAClB,IAAI,CAAA;WACT;OACF;MAED,OAAO,EAAE;UACP,WAAW,EAAX,UAAY,MAAc;cACxB,IAAI,CAAC,GAAG,CACN,gBAAgB,EAChB,WAAW,CACT,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAC1B,MAAM,CACP,CACF,CAAA;cACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;kBAC3B,IAAI,CAAC,GAAG,CACN,cAAc,EACd,WAAW,CACT,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EACxB,MAAM,CACP,CACF,CAAA;eACF;WACF;UACD,SAAS,EAAT,UAAU,MAAc;cACtB,IAAI,CAAC,GAAG,CACN,cAAc,EACd,WAAW,CACT,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EACxB,MAAM,CACP,CACF,CAAA;cACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;kBAC3B,IAAI,CAAC,GAAG,CACN,gBAAgB,EAChB,WAAW,CACT,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAC1B,MAAM,CACP,CACF,CAAA;eACF;WACF;UACD,KAAK,EAAL,UAAM,IAAgB;cACpB,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACnC,IAAI,OAAO,EAAE;kBACX,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;eAC9E;WACF;UACD,KAAK;cACH,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;WAChC;UACD,KAAK,EAAL,UAAM,IAAgB;cAEpB,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACjC,IAAI,CAAC,OAAO,EAAE;kBACZ,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;kBACvB,OAAM;eACP;cAED,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;kBACxC,OAAM;eACP;cAED,IAAI,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE;kBACtC,EAAE,CAAC,IAAI,CACL;sBACE,IAAI,EAAE,QAAQ;sBACd,EAAE,EAAE,OAAO;mBACZ,EACD;sBACE,KAAK,EAAE,OAAO;sBACd,GAAG,EAAE,IAAI;mBACV,CACF,CAAA;eACF;mBACI;kBACH,EAAE,CAAC,IAAI,CACL;sBACE,IAAI,EAAE,QAAQ;sBACd,EAAE,EAAE,OAAO;mBACZ,EACD;sBACE,KAAK,EAAE,IAAI;sBACX,GAAG,EAAE,OAAO;mBACb,CACF,CAAA;eACF;;cAGD,EAAE,CAAC,QAAQ,CACT;kBACE,EAAE,CAAC,GAAG,CAAC;sBACL,OAAO,EAAE,SAAS;sBAClB,QAAQ,EAAE,SAAS;mBACpB,CAAC,CAAA;eACH,CACF,CAAA;WAEF;OAEF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF,CAAC,CAAA;;;;AC/OF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,YAAA;MAER,SAAS,EAAE;UACT,WAAW,EAAE;cACX,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;WAC7B;UACD,WAAW,EAAE;cACX,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;WAC7B;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,YAAY;WACnB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,WAAW;WAClB;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UACV,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;UACjC,OAAO;cACL,IAAI,EAAE,aAAa;cACnB,aAAa,eAAA;cACb,aAAa,eAAA;cACb,cAAc,gBAAA;cAEd,KAAK,EAAE,KAAK;cACZ,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC;WAC/D,CAAA;OACF;MAED,QAAQ,EAAE;UACR,IAAI,EAAJ;cACE,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cAC3C,OAAO,YAAY,CACjB,WAAW;oBACP,WAAW,CAAC,WAAW,CAAC;oBACxB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAC1B,CAAA;WACF;UACD,UAAU,EAAV;cACE,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC7B,OAAO,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;WAChD;UACD,gBAAgB,EAAhB;cACE,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cAC3C,OAAO,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;WAClD;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;UACJ,QAAQ,UAAA;UACR,SAAS,WAAA;OACV;MAED,OAAO,EAAE;UACP,cAAc,EAAd,UAAe,IAAgB,EAAE,IAAgB;cAC/C,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAA;WAC5D;UAED,SAAS,EAAT,UAAU,IAAgB,EAAE,YAAoD;cAC9E,OAAO,YAAY;oBACf,YAAY,CAAC,IAAI,CAAC;oBAClB,IAAI,CAAA;WACT;OACF;MAED,MAAM,EAAE;UACN;cACE,IAAI,EAAE,QAAQ;cACd,EAAE,EAAE,MAAM;cACV,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,KAAK,CAAC,IAAI,EAAE,CAAA;;kBAEZ,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;kBAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;kBAE3B,IAAI,CAAC,GAAG,CAAC;sBACP,IAAI,EAAE,aAAa;sBACnB,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE;mBAC1B,CAAC,CAAA;eACH;WACF;UACD;cACE,IAAI,EAAE,QAAQ;cACd,EAAE,EAAE,OAAO;cACX,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,KAAK,CAAC,IAAI,EAAE,CAAA;;kBAEZ,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;kBAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;;kBAE7B,IAAI,CAAC,GAAG,CAAC;sBACP,IAAI,EAAE,aAAa;sBACnB,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE;mBAC1B,CAAC,CAAA;eACH;WACF,EACF;MAED,OAAO,EAAE;UACP,MAAM,EAAN,UAAO,MAAc;cACnB,IAAI,CAAC,GAAG,CACN,WAAW,EACX,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAC3C,CAAA;WACF;UACD,KAAK,EAAL,UAAM,QAAgB;cAEd,IAAA,uCAAmD,EAAjD,gBAAK,EAAE,YAA0C,CAAA;cAEzD,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,MAAM;eACX,EACD;kBACE,KAAK,OAAA;kBACL,GAAG,KAAA;eACJ,CACF,CAAA;WAEF;OACF;GAEF,CAAC,CAAA;;;;EC9GF,IAAM,WAAW,GAAG,MAAM,CAAA;EAC1B,IAAM,YAAY,GAAG,SAAS,CAAA;EAC9B,IAAM,WAAW,GAAG,YAAY,CAAA;EAEhC,IAAM,aAAa,GAAG,EAAE,CAAA;EACxB,aAAa,CAAC,aAAa,CAAC,GAAG,WAAW,CAAA;EAC1C,aAAa,CAAC,mBAAmB,CAAC,GAAG,WAAW,CAAA;EAChD,aAAa,CAAC,aAAa,CAAC,GAAG,WAAW,CAAA;EAC1C,aAAa,CAAC,cAAc,CAAC,GAAG,YAAY,CAAA;EAC5C,aAAa,CAAC,aAAa,CAAC,GAAG,WAAW,CAAA;AAE1C,mBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,iBAAqB;MAE3B,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;cAC/F,KAAK,EAAE,aAAa;WACrB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;WACjF;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,WAAW;WACnB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,WAAW;WAClB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,QAAQ;WACf;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU,GAAW,EAAE,KAAU;eAEtC;WACF;UACD,SAAS,EAAE;cACT,IAAI,EAAE,SAAS;WAChB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAC;cAChC,KAAK,EAAE,gBAAgB;WACxB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,UAAU;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;WACjB;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,YAAY;WACnB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UACV,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;UACjC,OAAO;cACL,aAAa,eAAA;cACb,mBAAmB,qBAAA;cACnB,aAAa,eAAA;cACb,aAAa,eAAA;cACb,cAAc,gBAAA;cACd,UAAU,YAAA;cAEV,OAAO,EAAE,KAAK;cACd,SAAS,EAAE,KAAK;cAChB,UAAU,EAAE,KAAK,CAAC,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI,aAAa,CAAC;WACvE,CAAA;OACF;MAED,UAAU,EAAE;UACV,GAAG,KAAA;UACH,OAAO,SAAA;UACP,QAAQ,UAAA;UACR,SAAS,WAAA;UACT,QAAQ,UAAA;UACR,SAAS,WAAA;UACT,QAAQ,UAAA;OACT;MAED,QAAQ,EAAE;UACR,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC;sBACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;mBACtB,CAAC,CAAA;eACH;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;UACD,iBAAiB,EAAjB;cACE,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cAC3C,OAAO,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAA;WAC9C;UACD,cAAc,EAAd;cAEE,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;cAEzC,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;kBACvB,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,IAAU;sBACnC,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;mBACpC,CAAC,CAAA;eACH;mBACI,IAAI,KAAK,EAAE;kBACd,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAA;eACvC;cACD,OAAO,EAAE,CAAA;WAEV;OACF;MAED,MAAM,EAAE;UACN;cACE,IAAI,EAAE,QAAQ;cACd,EAAE,EAAE,MAAM;cACV,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,KAAK,CAAC,IAAI,EAAE,CAAA;;kBAEZ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;eAChC;WACF;UACD;cACE,IAAI,EAAE,QAAQ;cACd,EAAE,EAAE,MAAM;cACV,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;kBACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;kBAE3B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAA;eAChD;WACF;UACD;cACE,IAAI,EAAE,QAAQ;cACd,EAAE,EAAE,OAAO;cACX,QAAQ,EAAR,UAAS,KAAK,EAAE,IAAgB;kBAC9B,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;kBACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;kBAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;;kBAE7B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAA;eACjD;WACF;UACD;cACE,IAAI,EAAE,QAAQ;cACd,EAAE,EAAE,MAAM;cACV,QAAQ,EAAR,UAAS,KAAK,EAAE,IAAgB;kBAC9B,KAAK,CAAC,IAAI,EAAE,CAAA;;kBAEZ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;eAC/D;WACF;UACD;cACE,IAAI,EAAE,QAAQ;cACd,EAAE,EAAE,OAAO;cACX,QAAQ,EAAR,UAAS,KAAK,EAAE,IAAgB;kBAC9B,KAAK,CAAC,IAAI,EAAE,CAAA;;kBAEZ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;eAC/D;WACF;UACD;cACE,QAAQ,YAAC,KAAK;kBAEZ,KAAK,CAAC,IAAI,EAAE,CAAA;;kBAGZ,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;eAE7B;cACD,IAAI,EAAE,SAAS;cACf,EAAE,EAAE,SAAS;WACd;OACF;MAED,OAAO,EAAE;UAEP,OAAO,EAAP,UAAQ,KAA4B;cAClC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;cACxB,cAAc,CAAC,KAAK,CAAC,CAAA;WACtB;UAED,YAAY,EAAZ,UAAa,KAA2B;;cAGtC,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,cAAc,CAAC,KAAK,CAAC,CAAA;cAErB,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;cAEnD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;cAExB,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,YAAY;eACjB,EACD,IAAI,CACL,CAAA;cAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;WAEvB;UAED,YAAY,EAAZ,UAAa,KAA2B,EAAE,KAAa;cAErD,KAAK,CAAC,IAAI,EAAE,CAAA;cAEZ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;cAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;WAEnC;UAED,eAAe,EAAf,UAAgB,IAAc;cAE5B,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;cACrC,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;kBACvB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;sBAC1B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,0CAAsB,CAAC,CAAA;sBACvC,OAAM;mBACP;kBACD,IAAI,CAAC,eAAe,CAClB,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACrB,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACtB,CAAA;eACF;mBACI;kBACH,IAAI,CAAC,KAAK,EAAE;sBACV,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,0CAAsB,CAAC,CAAA;sBACvC,OAAM;mBACP;kBACD,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;kBAC7B,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,aAAa,EAAE;sBAC1D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,4DAAyB,CAAC,CAAA;sBAC1C,OAAM;mBACP;kBACD,IAAI,CAAC,UAAU,CACb,WAAW,CAAC,KAAY,CAAC,CAC1B,CAAA;eACF;WACF;UAED,UAAU,EAAV,UAAW,SAAiB,EAAE,UAAwB;cAAxB,2BAAA,EAAA,wBAAwB;cAEpD,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAE7B,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;cAEhC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;kBACtB,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;;sBAEvB,IAAM,QAAM,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;sBAC3C,IAAI,SAAO,GAAG,KAAK,CAAA;sBACnB,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,KAAK,EACL,UAAU,IAAU;0BAClB,IAAI,QAAM,KAAK,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;8BAC3C,SAAO,GAAG,IAAI,CAAA;8BACd,OAAO,KAAK,CAAA;2BACb;uBACF,CACF,CAAA;sBACD,IAAI,CAAC,SAAO,EAAE;0BACZ,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;0BACxB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;uBAC/B;mBACF;uBACI;sBACH,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;sBACxB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;mBAC/B;eACF;mBACI;kBACH,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;kBACrB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;eACpB;cAED,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;kBACvB,EAAE,CAAC,QAAQ,CACT;sBACE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;mBAC3B,CACF,CAAA;eACF;WAEF;UAED,eAAe,EAAf,UAAgB,KAAa,EAAE,GAAW;cAExC,IAAM,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;cAE9C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;cACxB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;cAEtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;kBACzB,IAAI,CAAC,QAAQ,CACX;sBACE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;mBAC7B,CACF,CAAA;eACF;WAEF;UAED,UAAU,YAAC,KAAK;cACd,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,YAAY;eACjB,EACD;kBACE,KAAK,OAAA;eACN,CACF,CAAA;WACF;OACF;MAED,WAAW,EAAX;UACE,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;cACjD,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAc,CAAA;cACzC,OAAO,CAAC,kBAAkB,EAAE,CAAA;WAC7B;OACF;MAED,UAAU;UACR,wBAAwB,CAAC,IAAI,CAAC,CAAA;OAC/B;GAEF,CAAC,CAAA;;;;WCrac,WAAW,CAAC,KAA2B,EAAE,QAAkB,EAAE,UAAoB,EAAE,UAAoB;MAErH,IAAM,MAAM,GAAG;UACb,IAAI,EAAE,CAAC,CAAC;UACR,MAAM,EAAE,CAAC,CAAC;UACV,MAAM,EAAE,CAAC,CAAC;UACV,SAAS,EAAE,CAAC,CAAC;UACb,WAAW,EAAE,CAAC,CAAC;UACf,WAAW,EAAE,CAAC,CAAC;UACf,IAAI,EAAE,EAAE;OACT,CAAA;MAED,IAAI,IAAU,CAAA;MAEd,IAAI,KAAK,YAAY,IAAI,EAAE;UACzB,IAAI,GAAG,KAAK,CAAA;OACb;WACI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,EAAE;UAC/C,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;OACvB;MAED,IAAI,IAAI,EAAE;UACR,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;UAC5B,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;UAChC,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;UAEhC,IAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;UACxC,IAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;UAC9C,IAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;UAE9C,IAAI,SAAS,IAAI,CAAC,EAAE;cAClB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;cAClB,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;WAC7B;UACD,IAAI,WAAW,IAAI,CAAC,EAAE;cACpB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;cACtB,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;WACjC;UACD,IAAI,WAAW,IAAI,CAAC,EAAE;cACpB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;cACtB,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;WACjC;UAED,MAAM,CAAC,IAAI,GAAG,UAAU,CACtB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,MAAM,EACb,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAC3C,CAAA;OACF;MAED,OAAO,MAAM,CAAA;EAEf,CAAC;AAED,WAAgB,UAAU,CAAC,IAAY,EAAE,MAAc,EAAE,MAAc;MAErE,IAAM,IAAI,GAAa,EAAE,CAAA;MAEzB,IAAI,IAAI,IAAI,CAAC,EAAE;UACb,IAAI,CAAC,IAAI,CACP,QAAQ,CAAC,IAAI,CAAC,CACf,CAAA;OACF;MACD,IAAI,MAAM,IAAI,CAAC,EAAE;UACf,IAAI,CAAC,IAAI,CACP,QAAQ,CAAC,MAAM,CAAC,CACjB,CAAA;OACF;MACD,IAAI,MAAM,IAAI,CAAC,EAAE;UACf,IAAI,CAAC,IAAI,CACP,QAAQ,CAAC,MAAM,CAAC,CACjB,CAAA;OACF;MAED,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;EAEvB,CAAC;AAED,WAAgB,eAAe,CAAC,KAAa,EAAE,GAAW,EAAE,IAAY;MACtE,IAAM,IAAI,GAAa,EAAE,CAAA;MACzB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;UACvC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;OACb;MACD,OAAO,IAAI,CAAA;EACb,CAAC;AAED,WAAgB,qBAAqB,CAAC,UAAkB,EAAE,KAAa;MACrE,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,UAAU;YACnC,KAAK;YACL,CAAC,CAAC,CAAA;EACR,CAAC;AAED,WAAgB,sBAAsB,CAAC,WAAwB,EAAE,KAAa,EAAE,QAAkB;MAEhG,IAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;MAC/C,IAAI,CAAC,WAAW,EAAE;UAChB,OAAM;OACP;MAED,QAAQ,CACN,WAAW,EACX,WAAW,CAAC,SAAS,EACpB,WAA2B,CAAC,YAAY,GAAG,KAAK,EACjD,QAAQ,GAAG,GAAG,GAAG,CAAC,CACnB,CAAA;EAEH,CAAC;;ACzFD,kBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,SAAS,EAAE;UACT,QAAQ,EAAE;cACR,IAAI,EAAE,SAAS;cACf,QAAQ,EAAE,IAAI;WACf;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,SAAS;cACf,QAAQ,EAAE,IAAI;WACf;UACD,WAAW,EAAE;cACX,IAAI,EAAE,UAAU;WACjB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,SAAS;WAChB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,UAAU;WACjB;OACF;MAED,QAAQ,EAAE;UACR,UAAU,EAAV;cACE,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;WACzC;UACD,cAAc,EAAd;cACE,OAAO,qBAAqB,CAC1B,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAC3B,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CACtB,CAAA;WACF;UACD,gBAAgB,EAAhB;cACE,OAAO,qBAAqB,CAC1B,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAC7B,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CACxB,CAAA;WACF;UACD,gBAAgB,EAAhB;cACE,OAAO,qBAAqB,CAC1B,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAC7B,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CACxB,CAAA;WACF;UACD,QAAQ,EAAR;cACE,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC;qBACjC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC;sBAChC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;WACpE;OACF;MAED,QAAQ,EAAE;UACR,SAAS;cACP,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;WAC9B;UACD,WAAW;cACT,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;WAChC;UACD,WAAW;cACT,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;WAChC;OACF;MAED,MAAM,EAAE;UACN,MAAM,EAAE;cACN,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;sBAC1C,OAAM;mBACP;kBACD,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;sBACnB,IAAI,CAAC,kBAAkB,EAAE,CAAA;sBACzB,IAAI,CAAC,oBAAoB,EAAE,CAAA;sBAC3B,IAAI,CAAC,oBAAoB,EAAE,CAAA;mBAC5B;eACF;cACD,EAAE,EAAE,gBAAgB;WACrB;OACF;MAED,OAAO,EAAE;UACP,QAAQ,UAAA;OACT;MAED,OAAO,EAAE;UACP,kBAAkB,EAAlB,UAAmB,QAAkB;cACnC,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACvC,IAAI,SAAS,IAAI,CAAC,EAAE;kBAClB,sBAAsB,CACpB,IAAI,CAAC,KAAK,CAAC,QAAuB,EAClC,SAAS,EACT,QAAQ,CACT,CAAA;eACF;WACF;UACD,oBAAoB,EAApB,UAAqB,QAAkB;cACrC,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cAC3C,IAAI,WAAW,IAAI,CAAC,EAAE;kBACpB,sBAAsB,CACpB,IAAI,CAAC,KAAK,CAAC,UAAyB,EACpC,WAAW,EACX,QAAQ,CACT,CAAA;eACF;WACF;UACD,oBAAoB,EAApB,UAAqB,QAAkB;cACrC,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cAC3C,IAAI,WAAW,IAAI,CAAC,EAAE;kBACpB,sBAAsB,CACpB,IAAI,CAAC,KAAK,CAAC,UAAyB,EACpC,WAAW,EACX,QAAQ,CACT,CAAA;eACF;WACF;UACD,WAAW,EAAX,UAAY,SAAiB;cAE3B,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;cAC9C,IAAI,WAAW,GAAG,CAAC,EAAE;kBACnB,WAAW,GAAG,CAAC,CAAA;eAChB;cAED,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;cAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE;kBAC7C,WAAW,GAAG,CAAC,CAAA;eAChB;cAED,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;WAErD;UACD,aAAa,EAAb,UAAc,WAAmB;cAE/B,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;cAC1C,IAAI,SAAS,GAAG,CAAC,EAAE;kBACjB,SAAS,GAAG,CAAC,CAAA;eACd;cAED,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;cAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE;kBAC7C,WAAW,GAAG,CAAC,CAAA;eAChB;cAED,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;WAErD;UACD,aAAa,EAAb,UAAc,WAAmB;cAE/B,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;cAC1C,IAAI,SAAS,GAAG,CAAC,EAAE;kBACjB,SAAS,GAAG,CAAC,CAAA;eACd;cAED,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;cAC9C,IAAI,WAAW,GAAG,CAAC,EAAE;kBACnB,WAAW,GAAG,CAAC,CAAA;eAChB;cAED,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;WAErD;UACD,UAAU;cAER,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;cAEnC,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;cAC5B,IAAI,SAAS,GAAG,CAAC,CAAC,CAAA;cAElB,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cACrC,IAAI,QAAQ,EAAE;kBACZ,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;eACnC;cAED,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;cAChC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAA;cAEpB,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;cACzC,IAAI,UAAU,EAAE;kBACd,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;eACzC;cAED,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;cAChC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAA;cAEpB,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;cACzC,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,UAAU,EAAE;kBACxC,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;eACzC;cAED,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;cAEpD,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,WAAW;eAChB,EACD;kBACE,IAAI,MAAA;kBACJ,MAAM,QAAA;kBACN,MAAM,QAAA;eACP,CACF,CAAA;WAEF;UACD,aAAa;cAEX,IAAI,IAAI,GAAG,CAAC,CAAC,CAAA;cACb,IAAI,MAAM,GAAG,CAAC,CAAC,CAAA;cACf,IAAI,MAAM,GAAG,CAAC,CAAC,CAAA;cAEf,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;cAC5C,IAAI,SAAS,IAAI,CAAC,EAAE;kBAClB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAA;eACvC;cAED,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;cAChD,IAAI,WAAW,IAAI,CAAC,EAAE;kBACpB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAA;eAC7C;cAED,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;cAChD,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE;kBAC9C,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAA;eAC7C;cAED,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,WAAW;eAChB,EACD;kBACE,IAAI,MAAA;kBACJ,MAAM,QAAA;kBACN,MAAM,QAAA;eACP,CACF,CAAA;WAGF;UACD,UAAU,EAAV,UAAW,SAAiB,EAAE,WAAmB,EAAE,WAAmB;cACpE,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,WAAW;eAChB,EACD;kBACE,SAAS,WAAA;kBACT,WAAW,aAAA;kBACX,WAAW,aAAA;eACZ,CACF,CAAA;WACF;OACF;MAED,UAAU,EAAE;UACV,MAAM,QAAA;UACN,cAAc,kBAAA;OACf;GAEF,CAAC,CAAA;;;;EClPF,IAAM,iBAAiB,GAAG,CAAC,CAAA;EAC3B,IAAM,mBAAmB,GAAG,CAAC,CAAA;EAC7B,IAAM,mBAAmB,GAAG,CAAC,CAAA;AAE7B,mBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,iBAAqB;MAE3B,SAAS,EAAE;UACT,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;WACjF;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,WAAW;WACnB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAC;cAChC,KAAK,EAAE,gBAAgB;WACxB;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,UAAU,GAAW,EAAE,KAAU;eAEtC;WACF;UACD,WAAW,EAAE;cACX,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,UAAU;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;WACjB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,WAAW;WAClB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,EAAJ,UAAK,OAAO;UAEV,IAAM,KAAK,GAAwB,WAAW,CAC5C,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,EAC3C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EACpB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EACtB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CACvB,CAAA;UAED,KAAK,CAAC,OAAO,GAAG,KAAK,CAAA;UACrB,KAAK,CAAC,SAAS,GAAG,KAAK,CAAA;UACvB,KAAK,CAAC,UAAU,GAAG,UAAU,CAAA;UAE7B,OAAO,KAAK,CAAA;OACb;MAED,UAAU,EAAE;UACV,OAAO,SAAA;UACP,SAAS,WAAA;OACV;MAED,QAAQ,EAAE;UACR,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC;sBACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;mBACtB,CAAC,CAAA;eACH;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;UACD,UAAU,EAAV;cACE,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAA;WACtC;UACD,QAAQ,EAAR;cACE,IAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC,CAAA;cAClE,OAAO,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;WACxC;UACD,UAAU,EAAV;cACE,IAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC,CAAA;cACxE,OAAO,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAA;WAC1C;UACD,UAAU,EAAV;cACE,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;kBAC1B,IAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC,CAAA;kBACxE,OAAO,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAA;eAC1C;cACD,OAAO,EAAE,CAAA;WACV;UACD,QAAQ,EAAR;cACE,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;qBACvB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;sBACtB,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;WAC1D;OACF;MAED,MAAM,EAAE;UACN,MAAM,EAAE;cACN,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAElB,KAAK,CAAC,IAAI,EAAE,CAAA;kBAEJ,IAAA,0BAAS,EAAE,8BAAW,EAAE,8BAAW,CAAS;kBAEpD,IAAI,CAAC,GAAG,CAAC;sBACP,SAAS,WAAA;sBACT,WAAW,aAAA;sBACX,WAAW,aAAA;sBACX,IAAI,EAAE,UAAU,CACd,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,EACnC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CACpC;mBACF,CAAC,CAAA;eAEH;cACD,EAAE,EAAE,WAAW;WAChB;UACD,MAAM,EAAE;cACN,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAElB,KAAK,CAAC,IAAI,EAAE,CAAA;kBAEJ,IAAA,gBAAI,EAAE,oBAAM,EAAE,oBAAM,CAAS;kBAErC,IAAI,CAAC,GAAG,CAAC;sBACP,IAAI,MAAA;sBACJ,MAAM,QAAA;sBACN,MAAM,QAAA;sBACN,SAAS,EAAE,KAAK;sBAChB,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;mBACvC,CAAC,CAAA;kBAEF,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;eAEtC;cACD,EAAE,EAAE,WAAW;WAChB;UACD,OAAO,EAAE;cACP,QAAQ,YAAC,KAAK;kBAEZ,KAAK,CAAC,IAAI,EAAE,CAAA;kBAEZ,IAAI,CAAC,GAAG,CAAC;sBACP,SAAS,EAAE,KAAK;sBAChB,IAAI,EAAE,UAAU,CACd,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAChB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAClB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CACnB;mBACF,CAAC,CAAA;eAEH;cACD,EAAE,EAAE,SAAS;WACd;OACF;MAED,OAAO,EAAE;UAEP,OAAO,EAAP,UAAQ,KAA4B;cAClC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;cACxB,cAAc,CAAC,KAAK,CAAC,CAAA;WACtB;UAED,YAAY,EAAZ,UAAa,KAA2B;;cAGtC,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,cAAc,CAAC,KAAK,CAAC,CAAA;cAErB,IAAM,KAAK,GAAG,WAAW,CACvB,SAAS,EACT,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EACpB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EACtB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CACvB,CAAA;cAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;cAEf,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;WAExD;UAED,UAAU,EAAV,UAAW,IAAY,EAAE,MAAc,EAAE,MAAc;cAErD,IAAM,IAAI,GAA2B;kBACnC,IAAI,MAAA;kBACJ,MAAM,QAAA;eACP,CAAA;cAED,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;kBAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;eACrB;cAED,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,YAAY;eACjB,EACD,IAAI,CACL,CAAA;WAEF;OAEF;MAED,UAAU;UACR,wBAAwB,CAAC,IAAI,CAAC,CAAA;OAC/B;GAEF,CAAC,CAAA;;;;;;ACrQF,mBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,iBAAqB;MAE3B,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,gBAAgB;WACxB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,CAAC;WACT;UACD,OAAO,EAAE;cACP,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,CAAC;WACT;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,WAAW,EAAX;cAEE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACnC,IAAI,OAAO,EAAE;kBACX,IAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;kBAC3C,MAAM,CAAC,IAAI,CAAC;sBACV,GAAG,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;mBACtB,CAAC,CAAA;eACH;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WAEF;UACD,cAAc,EAAd;cAEE,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACnC,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;cACjC,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAE/B,IAAM,MAAM,GAA2B;kBACrC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;kBACzB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;eACxB,CAAA;cAED,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;eACrB;cAED,OAAO,MAAM,CAAA;WAEd;OACF;MAED,UAAU,EAAV;UAEE,IAAM,EAAE,GAAG,IAAW,CAAA;UAEtB,IAAI,KAAyB,CAAA;UAE7B,IAAM,IAAI,GAAG;cACX,KAAK,GAAG,MAAM,CAAC,UAAU,CACvB;kBACE,KAAK,GAAG,SAAS,CAAA;kBACjB,IAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;kBACxE,IAAI,KAAK,GAAG,EAAE,EAAE;sBACd,IAAI,EAAE,CAAA;mBACP;eACF,EACD,GAAG,CACJ,CAAA;WACF,CAAA;UAED,EAAE,CAAC,KAAK,CACN,QAAQ,EACR,UAAU,MAAe;cACvB,IAAI,MAAM,EAAE;kBACV,IAAI,KAAK,EAAE;sBACT,YAAY,CAAC,KAAK,CAAC,CAAA;sBACnB,KAAK,GAAG,SAAS,CAAA;mBAClB;eACF;mBACI;kBACH,IAAI,EAAE,CAAA;eACP;WACF,EACD,IAAI,CACL,CAAA;UAED,IAAM,OAAO,GAAG,UAAU,SAAc;cACtC,IAAI,SAAS,KAAK,EAAE,EAAE;kBACpB,IAAI,KAAK,EAAE;sBACT,YAAY,CAAC,KAAK,CAAC,CAAA;sBACnB,KAAK,GAAG,SAAS,CAAA;mBAClB;kBACD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;eACrD;WACF,CAAA;UACD,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;OAEpD;GAEF;;ECxJM,IAAM,gBAAgB,GAAG,WAAW,CAAA;AAC3C,EAAO,IAAM,YAAY,GAAG,OAAO,CAAA;AACnC,EAAO,IAAM,cAAc,GAAG,SAAS,CAAA;EAEvC,IAAM,EAAE,GAAG,IAAI,CAAA;EACf,IAAM,EAAE,GAAG,IAAI,GAAG,EAAE,CAAA;EACpB,IAAM,EAAE,GAAG,IAAI,GAAG,EAAE,CAAA;EAEpB,IAAM,qBAAqB,GAAG;MAC5B,MAAM,EAAE,YAAY;MACpB,OAAO,EAAE,IAAI;MACb,QAAQ,EAAE,IAAI;GACf,CAAA;AAED,WAAgB,aAAa,CAAC,IAAI;MAChC,OAAO,IAAI,OAAO,CAChB,UAAU,OAAO;UACP,IAAA,gBAAI,CAAS;UACrB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;cACnC,IAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;cAC/B,MAAM,CAAC,MAAM,GAAG,UAAU,KAAU;kBAElC,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAgB,CAAA;kBAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;kBAEpB,IAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;kBACzB,KAAK,CAAC,GAAG,GAAG,MAAM,CAAA;kBAClB,KAAK,CAAC,MAAM,GAAG;sBACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,YAAY,CAAA;sBAC/B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAA;sBACjC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;sBACnC,OAAO,CAAC,IAAI,CAAC,CAAA;mBACd,CAAA;kBACD,KAAK,CAAC,OAAO,GAAG;sBACd,IAAI,CAAC,MAAM,GAAG,YAAY,CAAA;sBAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;sBACtB,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;sBACnC,OAAO,CAAC,IAAI,CAAC,CAAA;mBACd,CAAA;eACF,CAAA;cACD,MAAM,CAAC,OAAO,GAAG;kBACf,IAAI,CAAC,MAAM,GAAG,YAAY,CAAA;kBAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;kBACtB,OAAO,CAAC,IAAI,CAAC,CAAA;eACd,CAAA;cACD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;WAC3B;eACI;cACH,IAAM,OAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;cAC7C,OAAK,CAAC,OAAO,GAAG,UAAU,CAAA;cAC1B,OAAK,CAAC,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;cACrC,OAAK,CAAC,gBAAgB,GAAG;kBACvB,GAAG,CAAC,eAAe,CAAC,OAAK,CAAC,GAAG,CAAC,CAAA;kBAC9B,IAAI,CAAC,KAAK,GAAG,OAAK,CAAC,UAAU,CAAA;kBAC7B,IAAI,CAAC,MAAM,GAAG,OAAK,CAAC,WAAW,CAAA;kBAC/B,IAAI,CAAC,QAAQ,GAAG,OAAK,CAAC,QAAQ,CAAA;kBAC9B,OAAK,CAAC,gBAAgB,GAAG,OAAK,CAAC,OAAO,GAAG,IAAI,CAAA;kBAC7C,OAAO,CAAC,IAAI,CAAC,CAAA;eACd,CAAA;cACD,OAAK,CAAC,OAAO,GAAG;kBACd,IAAI,CAAC,MAAM,GAAG,YAAY,CAAA;kBAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;kBACtB,OAAK,CAAC,gBAAgB,GAAG,OAAK,CAAC,OAAO,GAAG,IAAI,CAAA;kBAC7C,OAAO,CAAC,IAAI,CAAC,CAAA;eACd,CAAA;WACF;OACF,CACF,CAAA;EACH,CAAC;AAED,WAAgB,YAAY,CAAC,IAAS,EAAE,OAAe,EAAE,OAAe,EACtE,QAAgB,EAAE,QAAgB,EAAC,QAAgB,EAAE,QAAgB,EACrE,SAAiB,EAAE,SAAiB,EAAE,WAAmB,EAAE,WAAmB;MAE9E,IAAI,MAAM,GAAG,EAAE,CAAA;MACf,IAAI,OAAO,GAAG,CAAC,EAAE;UACf,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE;cACvB,MAAM,CAAC,IAAI,CACT,0CAAU,cAAc,CAAC,OAAO,CAAG,CACpC,CAAA;WACF;OACF;MACD,IAAI,OAAO,GAAG,CAAC,EAAE;UACf,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE;cACvB,MAAM,CAAC,IAAI,CACT,0CAAU,cAAc,CAAC,OAAO,CAAG,CACpC,CAAA;WACF;OACF;MACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;UACnB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;UACtC,IAAI,QAAQ,GAAG,CAAC,EAAE;cAChB,IAAI,KAAK,GAAG,QAAQ,EAAE;kBACpB,MAAM,CAAC,IAAI,CACT,gDAAW,QAAU,CACtB,CAAA;eACF;WACF;UACD,IAAI,QAAQ,GAAG,CAAC,EAAE;cAChB,IAAI,KAAK,GAAG,QAAQ,EAAE;kBACpB,MAAM,CAAC,IAAI,CACT,gDAAW,QAAU,CACtB,CAAA;eACF;WACF;OACF;MACD,IAAI,QAAQ,GAAG,CAAC,EAAE;UAChB,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ,EAAE;cACzB,MAAM,CAAC,IAAI,CACT,0CAAU,QAAQ,OAAI,CACvB,CAAA;WACF;OACF;MACD,IAAI,SAAS,GAAG,CAAC,EAAE;UACjB,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE;cAC3B,MAAM,CAAC,IAAI,CACT,0CAAU,SAAS,OAAI,CACxB,CAAA;WACF;OACF;MACD,IAAI,QAAQ,GAAG,CAAC,EAAE;UAChB,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ,EAAE;cACzB,MAAM,CAAC,IAAI,CACT,0CAAU,QAAQ,OAAI,CACvB,CAAA;WACF;OACF;MACD,IAAI,SAAS,GAAG,CAAC,EAAE;UACjB,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE;cAC3B,MAAM,CAAC,IAAI,CACT,0CAAU,SAAS,OAAI,CACxB,CAAA;WACF;OACF;MACD,IAAI,WAAW,GAAG,CAAC,EAAE;UACnB,IAAI,IAAI,CAAC,QAAQ,GAAG,WAAW,EAAE;cAC/B,MAAM,CAAC,IAAI,CACT,0CAAU,iBAAiB,CAAC,WAAW,GAAG,IAAI,EAAE,qBAAqB,CAAG,CACzE,CAAA;WACF;OACF;MACD,IAAI,WAAW,GAAG,CAAC,EAAE;UACnB,IAAI,IAAI,CAAC,QAAQ,GAAG,WAAW,EAAE;cAC/B,MAAM,CAAC,IAAI,CACT,0CAAU,iBAAiB,CAAC,WAAW,GAAG,IAAI,EAAE,qBAAqB,CAAG,CACzE,CAAA;WACF;OACF;MAED,OAAO,MAAM,CAAA;EAEf,CAAC;AAED,WAAgB,cAAc,CAAC,IAAY;MACzC,IAAI,IAAI,IAAI,EAAE,EAAE;UACd,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;OACrC;MACD,IAAI,IAAI,IAAI,EAAE,EAAE;UACd,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;OACtC;MACD,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;EACvC,CAAC;;ECrHD,IAAM,sBAAsB,GAAG,oCAAwC,CAAA;EACvE,IAAM,qBAAqB,GAAG,mCAAuC,CAAA;AAErE,oBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,kBAAsB;MAE5B,SAAS,EAAE;UACT,SAAS,EAAE;cACT,IAAI,EAAE,SAAS;cACf,QAAQ,EAAE,IAAI;WACf;UACD,UAAU,EAAE;cACV,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,EAAE;WACV;UACD,WAAW,EAAE;cACX,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,EAAE;WACV;UACD,SAAS,EAAE;cACT,IAAI,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;cACvC,KAAK,EAAE,WAAW;WACnB;UACD,GAAG,EAAE;cACH,IAAI,EAAE,SAAS;cACf,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;WACf;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,WAAW;WAClB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,gBAAgB;WACxB;UACD,cAAc,EAAE;cACd,IAAI,EAAE,YAAY;WACnB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,YAAY;WACnB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,UAAU;WACjB;UACD,cAAc,EAAE;cACd,IAAI,EAAE,UAAU;WACjB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,YAAY;WACnB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;cAC/C,KAAK,EAAE,UAAU;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,EAAJ;UACE,IAAM,EAAE,GAAG,IAAI,CAAA;UACf,OAAO;cACL,SAAS,WAAA;cACT,gBAAgB,kBAAA;cAChB,YAAY,cAAA;cACZ,cAAc,gBAAA;cACd,aAAa,EAAE,CAAC,CAAC;cACjB,cAAc,EAAE,CAAC;cACjB,mBAAmB,EAAnB,UAAoB,IAAI;kBAEd,IAAA,kBAAK,EAAE,wBAAQ,CAAS;kBAEhC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI;sBAE5C,EAAE,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;sBAE5B,IAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,QAAe,CAAA;sBACzC,QAAQ,CAAC,KAAK,EAAE,CAAA;sBAEhB,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;mBAE5B,CAAC,CAAA;eAEH;cACD,iBAAiB,EAAjB,UAAkB,IAAI;kBACpB,IAAM,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;kBACrC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;;kBAG9B,IAAI,QAAQ,CAAC,MAAM,GAAG,SAAS,EAAE;sBAC/B,IAAI,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;0BAC7B,EAAE,CAAC,SAAS,CAAC,oCAAS,SAAS,wBAAM,CAAC,CAAA;uBACvC;2BACI;0BACH,EAAE,CAAC,SAAS,CAAC,oCAAS,SAAS,wBAAM,CAAC,CAAA;uBACvC;sBACD,OAAM;mBACP;kBAED,OAAO,CAAC,GAAG,CACT,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAC5B;uBACA,IAAI,CAAC,UAAU,OAAc;sBAE5B,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;sBAE7B,IAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,MAAa,CAAA;sBACrC,MAAM,CAAC,KAAK,EAAE,CAAA;sBAEd,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;mBAExB,CAAC,CAAA;eACH;WACF,CAAA;OACF;MAED,QAAQ,EAAE;UACR,QAAQ,EAAR;cACE,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cACrC,OAAO,QAAQ,IAAI,QAAQ,KAAK,SAAS,CAAA;WAC1C;UACD,eAAe,EAAf;cACE,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;cACjC,OAAO,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;WACrD;UACD,UAAU,EAAV;cACE,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cAC3C,IAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;cACnD,OAAO,WAAW,KAAK,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC,CAAA;WAC1D;UACD,SAAS,EAAT;cACE,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;cAC/C,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cACrC,OAAO,QAAQ,GAAG,UAAU,CAAA;WAC7B;UACD,YAAY,EAAZ;cACE,IAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;cACjD,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cACrC,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACvC,OAAO,CAAC,cAAc,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;WAC5D;UACD,WAAW,EAAX;cACE,OAAO,cAAc,CACnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EACf,KAAK,EACL,IAAI,EACJ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAClB,CAAA;WACF;UACD,cAAc,EAAd;cACE,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;cACzC,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cAC3C,OAAO,cAAc,CACnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EACf,KAAK,EACL,IAAI,EACJ;kBACE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC;kBAC1B,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC;eAC7B,CACF,CAAA;WACF;OACF;MAED,OAAO,EAAE;UACP,cAAc,gBAAA;OACf;MAED,OAAO,EAAE;UACP,gBAAgB,EAAhB,UAAiB,KAAa,EAAE,KAAa;cAC3C,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,SAAS;kBACf,EAAE,EAAE,aAAa;eAClB,EACD;kBACE,KAAK,OAAA;kBACL,KAAK,OAAA;eACN,CACF,CAAA;WACF;UACD,iBAAiB,EAAjB,UAAkB,EAAU;cAC1B,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;kBACpD,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;sBAC1B,OAAO,CAAC,CAAA;mBACT;eACF;cACD,OAAO,CAAC,CAAC,CAAA;WACV;UACD,iBAAiB,EAAjB,UAAkB,SAAgB;cAEhC,IAAM,EAAE,GAAG,IAAI,CAAA;cAEf,IAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;cAC3C,IAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;cAE3C,IAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;cAC7C,IAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;cAE7C,IAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;cAC7C,IAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;cAE/C,IAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;cAC7C,IAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;cAE/C,IAAM,WAAW,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAA;cACnD,IAAM,WAAW,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAA;cAEnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;kBAEpD,IAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;kBAEzB,IAAM,MAAM,GAAG,YAAY,CACzB,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAC1C,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CACnE,CAAA;kBACD,IAAI,MAAM,CAAC,MAAM,EAAE;sBACjB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAA;sBAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;mBACnC;eAEF;WAEF;UACD,UAAU;cAER,IAAM,MAAM,GAAG;kBACb,QAAQ,EAAE,KAAK;kBACf,YAAY,EAAE,KAAK;kBACnB,QAAQ,EAAE,KAAK;eAChB,CAAA;cAED,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;kBACpD,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,gBAAgB,EAAE;sBAC5C,MAAM,CAAC,YAAY,GAAG,IAAI,CAAA;mBAC3B;uBACI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,cAAc,EAAE;sBACvF,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAA;mBACvB;kBACD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;sBACrB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAA;mBACvB;eACF;cAED,OAAO,MAAM,CAAA;WAEd;UACD,WAAW,EAAX,UAAY,KAAY;cAEtB,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;cAC9C,IAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAA;cAE/B,KAAK,CAAC,OAAO,CACX,UAAU,IAAI;kBACZ,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;eACrB,CACF,CAAA;cAED,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;cAC9B,EAAE,CAAC,UAAU,EAAE,CAAA;cAEf,KAAK,CAAC,OAAO,CACX,UAAU,IAAS,EAAE,KAAK;kBACxB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,CAAC,CAAA;eACvC,CACF,CAAA;WAEF;UACD,WAAW,EAAX,UAAY,IAAS,EAAE,KAAa;cAElC,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;cAE9C,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;cAEhC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;cAC9B,EAAE,CAAC,UAAU,EAAE,CAAA;cAEf,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;WAE9B;UACD,UAAU,EAAV,UAAW,KAA2B,EAAE,KAAa;cACnD,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;cACjC,IAAI,CAAC,UAAU,EAAE,CAAA;WAClB;UACD,MAAM,EAAN;cAEE,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAM,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cAErC,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,SAAS,EACT,UAAU,IAAS,EAAE,KAAa;kBAChC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;eAC9B,CACF,CAAA;WAEF;UACD,UAAU,EAAV,UAAW,EAAU,EAAE,KAAa;cAElC,IAAM,EAAE,GAAG,IAAI,CAAA;cAEf,IAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,eAAa,KAAO,CAAC,CAAA;;cAEzC,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE;kBAC5C,OAAM;eACP;cAED,IAAM,aAAa,GAAG,UAAU,IAAI;kBAElC,IAAM,WAAW,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;kBAEzC,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;kBAE7B,WAAW,CAAC;sBACV,EAAE,EAAE,IAAI,CAAC,EAAE;sBACX,IAAI,EAAE,IAAI,CAAC,IAAI;sBACf,OAAO;0BACL,IAAM,KAAK,GAAG,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;0BACtC,IAAI,KAAK,IAAI,CAAC,EAAE;8BACd,EAAE,CAAC,GAAG,CAAC,eAAa,KAAK,YAAS,EAAE,gBAAgB,CAAC,CAAA;8BACrD,EAAE,CAAC,GAAG,CAAC,eAAa,KAAK,cAAW,EAAE,CAAC,CAAC,CAAA;8BACxC,EAAE,CAAC,UAAU,EAAE,CAAA;2BAChB;uBACF;sBACD,OAAO,EAAP,UAAQ,KAAa;0BACnB,IAAM,KAAK,GAAG,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;0BACtC,IAAI,KAAK,IAAI,CAAC,EAAE;8BACd,EAAE,CAAC,GAAG,CAAC,eAAa,KAAK,YAAS,EAAE,cAAc,CAAC,CAAA;8BACnD,EAAE,CAAC,GAAG,CAAC,eAAa,KAAK,aAAU,EAAE,KAAK,IAAI,MAAM,CAAC,CAAA;8BACrD,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;8BAC7B,EAAE,CAAC,UAAU,EAAE,CAAA;2BAChB;uBACF;sBACD,UAAU,EAAV,UAAW,QAAgB;0BACzB,IAAM,KAAK,GAAG,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;0BACtC,IAAI,KAAK,IAAI,CAAC,EAAE;8BACd,EAAE,CAAC,GAAG,CAAC,eAAa,KAAK,cAAW,EAAE,QAAQ,CAAC,CAAA;8BAC/C,EAAE,CAAC,UAAU,EAAE,CAAA;2BAChB;uBACF;sBACD,SAAS,YAAC,IAAI;0BACZ,IAAM,KAAK,GAAG,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;0BACtC,IAAI,KAAK,IAAI,CAAC,EAAE;8BACd,EAAE,CAAC,GAAG,CAAC,eAAa,KAAO,EAAE,IAAI,CAAC,CAAA;8BAClC,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;8BAC7B,EAAE,CAAC,UAAU,EAAE,CAAA;2BAChB;uBACF;mBACF,CAAC,CAAA;eAEH,CAAA;cAED,IAAM,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cAErC,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE;kBAC5B,SAAS,CAAC;sBACR,KAAK,OAAA;sBACL,MAAM,EAAE,IAAI,CAAC,MAAM;sBACnB,QAAQ,YAAC,MAAM;0BACb,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;0BAC/B,aAAa,CAAC,IAAI,CAAC,CAAA;uBACpB;mBACF,CAAC,CAAA;eACH;mBACI;kBACH,aAAa,CAAC,IAAI,CAAC,CAAA;eACpB;WAEF;UACD,SAAS,EAAT,UAAU,KAAa;cACrB,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,aAAa;eAClB,EACD;kBACE,KAAK,OAAA;eACN,CACF,CAAA;WACF;UACD,UAAU;cACR,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,aAAa;eAClB,EACD;kBACE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;eACjC,CACF,CAAA;WACF;UACD,sBAAsB,EAAtB,UAAuB,KAAa,EAAE,SAAiB;cACrD,IAAM,OAAO,GAAG,IAAI,CAAC,GAAkB,CAAA;cACvC,IAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;cAE3C,IAAI,WAAW,EAAE;kBACf,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,WAA0B,EAAE,SAAS,CAAC,CAAA;eACxD;WACF;UACD,yBAAyB,EAAzB,UAA0B,KAAa,EAAE,SAAiB;cACxD,IAAM,OAAO,GAAG,IAAI,CAAC,GAAkB,CAAA;cACvC,IAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;cAE3C,IAAI,WAAW,EAAE;kBACf,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,WAA0B,EAAE,SAAS,CAAC,CAAA;eAC3D;WACF;UACD,gBAAgB,EAAhB,UAAiB,KAAa;;;;cAI5B,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAA;WAC3D;UACD,gBAAgB,EAAhB,UAAiB,KAAa;cAC5B,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAA;WAC9D;UACD,eAAe,EAAf,UAAgB,KAAa;cAC3B,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;cAChC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAA;WAC9D;UACD,aAAa;;;cAGX,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAA;WAC9B;UACD,cAAc,EAAd,UAAe,KAAa;cAC1B,IAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;cAC/C,IAAI,aAAa,GAAG,CAAC,EAAE;kBACrB,OAAO,KAAK,CAAA;eACb;cAED,IAAI,aAAa,KAAK,KAAK,EAAE;kBAC3B,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAA;eAC1D;;;cAID,OAAO,KAAK,CAAA;WACb;UACD,eAAe,EAAf,UAAgB,KAAa;cAC3B,IAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;cAC/C,IAAI,aAAa,GAAG,CAAC,EAAE;kBACrB,OAAO,KAAK,CAAA;eACb;cAED,IAAI,aAAa,KAAK,KAAK,EAAE;kBAC3B,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAA;eAC1D;cAED,OAAO,KAAK,CAAA;WACb;UACD,eAAe,EAAf,UAAgB,KAAa;cAC3B,IAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;cAC/C,IAAI,aAAa,GAAG,CAAC,EAAE;kBACrB,OAAM;eACP;cAED,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAA;WAC7D;UACD,cAAc,EAAd,UAAe,KAAa;cAC1B,IAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;cAC/C,IAAI,aAAa,GAAG,CAAC,EAAE;kBACrB,OAAO,KAAK,CAAA;eACb;cAED,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cAEvC,IAAI,aAAa,IAAI,CAAC;qBACjB,aAAa,GAAG,SAAS,CAAC,MAAM;qBAChC,aAAa,KAAK,KAAK,EAC1B;kBACA,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAA;kBAE5D,IAAM,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC,CAAA;kBAC/C,IAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;kBAEzC,IAAI,aAAa,GAAG,KAAK,EAAE;sBACzB,YAAY,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAA;sBACjD,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAA;mBACtC;uBACI;sBACH,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,cAAc,CAAC,CAAA;sBAC7C,YAAY,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;mBAC1C;kBAED,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;kBACnC,IAAI,CAAC,UAAU,EAAE,CAAA;eAClB;cAED,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAA;cAE7B,OAAO,KAAK,CAAA;WACb;OACF;MAED,UAAU,EAAE;UACV,GAAG,KAAA;UACH,IAAI,MAAA;UACJ,KAAK,OAAA;UACL,MAAM,QAAA;UACN,MAAM,QAAA;UACN,QAAQ,UAAA;UACR,UAAU,YAAA;OACX;GAEF,CAAC,CAAA;;;;AC/iBF,gBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,YAAgB;MAEtB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,EAAE;WACV;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,EAAE;WACV;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;cACvC,KAAK,EAAE,WAAW;WACnB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,WAAW;WAClB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,WAAW;WAClB;UACD,GAAG,EAAE;cACH,IAAI,EAAE,UAAU;WACjB;UACD,GAAG,EAAE;cACH,IAAI,EAAE,UAAU;WACjB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,UAAU;WACjB;UACD,cAAc,EAAE;cACd,IAAI,EAAE,YAAY;WACnB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,UAAU;WACjB;UACD,cAAc,EAAE;cACd,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,SAAS;WACjB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,YAAY;WACnB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,YAAY;WACnB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,gBAAgB;WACxB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,EAAJ;UACE,IAAM,EAAE,GAAG,IAAI,CAAA;UACf,OAAO;cACL,WAAW,EAAE,KAAK;cAClB,KAAK,EAAE;kBACL,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;kBAClB,MAAM,EAAE,EAAE;kBACV,MAAM,EAAE,SAAS;kBACjB,QAAQ,EAAE,CAAC;kBACX,OAAO,EAAE,EAAE;eACZ;cACD,iBAAiB,EAAjB,UAAkB,IAAI;kBAEpB,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAiB,CAAA;kBAEvC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK;;sBAG7C,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;sBAEvB,EAAE,CAAC,GAAG,CAAC;0BACL,KAAK,OAAA;uBACN,CAAC,CAAA;sBAEF,IAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,MAAa,CAAA;sBACrC,MAAM,CAAC,KAAK,EAAE,CAAA;;sBAGd,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;mBAEtB,CAAC,CAAA;eAEH;WACF,CAAA;OACF;MAED,QAAQ,EAAE;UACR,WAAW,EAAX;cACE,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,gBAAgB,CAAA;WACrD;UACD,eAAe,EAAf;cACE,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;cACjC,OAAO,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;WACrD;UACD,WAAW,EAAX;cACE,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;WACnC;UACD,YAAY,EAAZ;cACE,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;WACpC;UACD,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cAC3C,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;cAE7C,MAAM,CAAC,IAAI,CAAC;kBACV,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;kBAC3B,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC;eAC9B,CAAC,CAAA;cAEF,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;OACF;MAED,QAAQ,EAAE;UACR,GAAG,YAAC,GAAG;cACL,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;WAC3B;UACD,WAAW,EAAE;cACX,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;WAC/B;UACD,cAAc,EAAE;cACd,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;WAC/B;OACF;MAED,OAAO,EAAE;UACP,aAAa,EAAb,UAAc,KAAU;cAEtB,IAAM,EAAE,GAAG,IAAI,CAAA;cAEf,IAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;cAC3C,IAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;cAE3C,IAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;cAC7C,IAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;cAE7C,IAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;cAC7C,IAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;cAE/C,IAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;cAC7C,IAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;cAE/C,IAAM,WAAW,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAA;cACnD,IAAM,WAAW,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAA;cAEnD,IAAM,MAAM,GAAG,YAAY,CACzB,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAC3C,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CACnE,CAAA;cAED,IAAI,MAAM,CAAC,MAAM,EAAE;kBACjB,KAAK,CAAC,MAAM,GAAG,YAAY,CAAA;kBAC3B,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;eACpC;WAEF;UACD,YAAY,EAAZ,UAAa,KAA2B;cACtC,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,SAAS;kBACf,EAAE,EAAE,OAAO;eACZ,EACD;kBACE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;eAC3B,CACF,CAAA;WACF;UACD,WAAW,EAAX,UAAY,KAAU;cAEpB,IAAM,EAAE,GAAG,IAAI,CAAA;;cAGf,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,IAAI,KAAK,CAAC,GAAG,EAAE;kBAC9C,OAAM;eACP;cAED,IAAM,aAAa,GAAG,UAAU,KAAK;kBAEnC,IAAM,WAAW,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;kBAEzC,WAAW,CAAC;sBACV,EAAE,EAAE,KAAK,CAAC,EAAE;sBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;sBAChB,OAAO;0BACL,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAA;0BACxC,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAA;uBAC5B;sBACD,OAAO,EAAP,UAAQ,KAAa;0BACnB,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;0BACtC,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,IAAI,MAAM,CAAC,CAAA;uBACzC;sBACD,UAAU,EAAV,UAAW,QAAgB;0BACzB,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAA;uBACnC;sBACD,SAAS,YAAC,IAAI;0BACZ,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;0BACjC,EAAE,CAAC,IAAI,CACL;8BACE,IAAI,EAAE,eAAe;8BACrB,EAAE,EAAE,OAAO;2BACZ,EACD;8BACE,KAAK,EAAE,IAAI;2BACZ,CACF,CAAA;uBACF;mBACF,CAAC,CAAA;eAEH,CAAA;cAED,IAAM,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cAErC,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE;kBAC7B,SAAS,CAAC;sBACR,MAAM,EAAE,KAAK,CAAC,MAAM;sBACpB,QAAQ,YAAC,MAAM;0BACb,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;0BAChC,aAAa,CAAC,KAAK,CAAC,CAAA;uBACrB;mBACF,CAAC,CAAA;eACH;mBACI;kBACH,aAAa,CAAC,KAAK,CAAC,CAAA;eACrB;WAEF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;UACJ,MAAM,QAAA;UACN,UAAU,YAAA;OACX;GAEF,CAAC,CAAA;;;;ACnSF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,IAAI;WACZ;UACD,OAAO,EAAE;cACP,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;cACnC,KAAK,EAAE,SAAS;WACjB;UACD,aAAa,EAAE;cACb,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;cAC5B,KAAK,EAAE,KAAK;WACb;UACD,iBAAiB,EAAE;cACjB,IAAI,EAAE,KAAK,CAAC;kBACV,OAAO;kBACP,SAAS;kBACT,UAAU;kBACV,QAAQ,EACT,CAAC;cACF,KAAK,EAAE,UAAU;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,SAAS,WAAA;cACT,SAAS,WAAA;cACT,OAAO,SAAA;cACP,SAAS,WAAA;cACT,UAAU,YAAA;cACV,QAAQ,UAAA;cAER,KAAK,EAAE,CAAC;cACR,IAAI,EAAE,SAAS;WAChB,CAAA;OACF;MAED,QAAQ,EAAE;UACR,KAAK;cACH,OAAO,IAAI,CAAC,GAAG,CAAI,iBAAiB,YAAS,CAAC,IAAI,CAAC,CAAA;WACpD;UACD,SAAS;cACP,IAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;cACvD,OAAO,iBAAiB,KAAK,MAAM,IAAI,iBAAiB,KAAK,OAAO;oBAChE,YAAY;oBACZ,cAAc,CAAA;WACnB;UACD,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC7B,IAAI,IAAI,EAAE;kBACR,MAAM,CAAC,IAAI,CAAC;sBACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;sBAC1B,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;mBAC7B,CAAC,CAAA;eACH;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;OACF;MAED,MAAM,EAAE;UACN,MAAM,EAAE;cACN,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;sBAC1C,OAAM;mBACP;kBACD,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;eACvB;cACD,EAAE,EAAE,gBAAgB;WACrB;OACF;MAED,QAAQ,EAAE;UACR,KAAK,YAAC,KAAK;;cAET,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;WACvB;UACD,SAAS;;cAEP,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;WAC7B;OACF;MAED,OAAO,EAAE;UACP,EAAE,EAAF,UAAG,KAAa;cACd,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;WACzB;UACD,IAAI;cACF,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;cACnC,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;;cAE/B,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,CAAA;WACzC;UACD,IAAI;cACF,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;cACnC,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;;cAE/B,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;WACrC;UACD,IAAI,EAAJ,UAAK,KAAa,EAAE,QAAkB;cAEpC,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC7B,IAAI,CAAC,IAAI,EAAE;kBACT,OAAM;eACP;cAED,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAmB,CAAA;cAE9C,OAAO,CAAC,KAAK,CAAC,kBAAkB,GAAG,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAA;cACzD,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,cAAc;qBAC7D,cAAc,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG;qBAClD,cAAc,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA;WAE1D;OACF;MAED,UAAU,EAAE;UACV,cAAc,kBAAA;OACf;MAED,UAAU,EAAV;UAEE,IAAM,EAAE,GAAG,IAAI,CAAA;;UAGf,IAAI,aAAqB,CAAA;UAEzB,IAAM,eAAe,GAAG;;cAGtB,EAAE,CAAC,IAAI,EAAE,CAAA;cAET,aAAa,GAAG,MAAM,CAAC,UAAU,CAC/B,eAAe,EACf,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CACnB,CAAA;WAEF,CAAA;UAED,EAAE,CAAC,KAAK,CACN,UAAU,EACV,UAAU,QAAQ;cAChB,IAAI,QAAQ,EAAE;kBACZ,aAAa,GAAG,MAAM,CAAC,UAAU,CAC/B,eAAe,EACf,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CACnB,CAAA;eACF;mBACI,IAAI,aAAa,EAAE;kBACtB,YAAY,CAAC,aAAa,CAAC,CAAA;kBAC3B,aAAa,GAAG,CAAC,CAAA;eAClB;WACF,EACD,IAAI,CACL,CAAA;UAED,IAAM,OAAO,GAAG,UAAU,SAAuB;cAC/C,IAAI,SAAS,KAAK,EAAE,EAAE;kBACpB,IAAI,aAAa,EAAE;sBACjB,YAAY,CAAC,aAAa,CAAC,CAAA;mBAC5B;kBACD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;eACrD;WACF,CAAA;UACD,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;OAEpD;GAEF,CAAC,CAAA;;;;ACjNF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;WAC1C;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,KAAK,YAAC,KAAK;cACT,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,UAAU;eACf,EACD;kBACE,KAAK,OAAA;eACN,EACD,IAAI,CACL,CAAA;WACF;OACF;MAED,MAAM,EAAE;UACN,IAAI,EAAE;cACJ,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;sBAC1C,KAAK,CAAC,IAAI,EAAE,CAAA;sBAEN,IAAA,gBAAI,EAAE,oBAAM,CAAS;sBAE3B,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;sBAE7B,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;0BACzB,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;uBAClC;2BACI;0BACH,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;0BACnD,IAAI,MAAM,EAAE;8BACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE;kCACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;+BACjB;2BACF;+BACI;8BACH,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;2BACrC;uBACF;sBAED,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;mBAEzB;eACF;cACD,EAAE,EAAE,cAAc;WACnB;OACF;GAEF,CAAC,CAAA;;;;ACtEF,qBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,mBAAuB;MAE7B,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;cAChB,QAAQ,EAAE,IAAI;WACf;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;cAC9B,QAAQ,EAAE,IAAI;WACf;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UAEV,IAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,eAAmB,CAAC,CAAA;UAEzE,IAAI,MAAM,GAAG,KAAK,CAAA;UAElB,IAAI,QAAQ,EAAE;cACZ,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC3B,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAEjC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;oBACxB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;oBACjC,KAAK,IAAI,IAAI,CAAA;WAClB;UAED,OAAO;cACL,MAAM,QAAA;WACP,CAAA;OACF;MAED,MAAM,EAAE;UACN,MAAM,EAAE;cACN,QAAQ,YAAC,KAAK,EAAE,IAAI;;;kBAIlB,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE;sBACjC,OAAM;mBACP;kBAED,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;kBAE7B,IAAI,CAAC,GAAG,CACN,QAAQ,EACR,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;wBACpB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;wBACtC,IAAI,CAAC,KAAK,IAAI,IAAI,CACvB,CAAA;eAEF;cACD,EAAE,EAAE,UAAU;WACf;OACF;MAED,OAAO,EAAE;UACP,KAAK;cACH,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,MAAM;kBACZ,EAAE,EAAE,cAAc;eACnB,EACD;kBACE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;kBACtB,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;eAC5B,CACF,CAAA;WACF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF;;;;ACvFD,aAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,WAAe;MAErB,SAAS,EAAE;UACT,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;cAC/C,KAAK,EAAE,UAAU;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC;sBACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;mBACtB,CAAC,CAAA;eACH;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;OACF;GACF;;;;ACzDD,mBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,iBAAqB;MAE3B,SAAS,EAAE;UACT,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GACF;;;;ACdD,kBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,gBAAoB;MAE1B,SAAS,EAAE;UACT,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GACF,CAAC,CAAA;;;;ACdF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GACF;;;;ACdD,mBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,iBAAqB;MAE3B,SAAS,EAAE;UACT,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GAEF;;;;;;WCrBe,YAAY,CAAC,MAAW;MACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAA;EACpD,CAAC;AAED,WAAgB,kBAAkB,CAAC,OAAc,EAAE,KAAY;MAE7D,IAAM,MAAM,GAAU,EAAE,CAAA;MAExB,IAAI,KAAK,GAAG,CAAC,CAAA;MAEb,IAAM,IAAI,GAAG,UAAU,OAAc;UACnC,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,OAAO,EACP,UAAU,IAAI;cACZ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;kBAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;kBACjB,IAAI,IAAI,CAAC,QAAQ,EAAE;sBACjB,KAAK,EAAE,CAAA;sBACP,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;mBACpB;eACF;WACF,CACF,CAAA;OACF,CAAA;MAED,IAAI,CAAC,OAAO,CAAC,CAAA;MAEb,OAAO,MAAM,CAAA;EAEf,CAAC;;ECbD,IAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC;MAEjC,QAAQ,aAAA;MAER,IAAI,EAAE,sBAA0B;MAEhC,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;cAChB,QAAQ,EAAE,IAAI;WACf;UACD,OAAO,EAAE;cACP,IAAI,EAAE,SAAS;cACf,QAAQ,EAAE,IAAI;WACf;UACD,KAAK,EAAE;cACL,IAAI,EAAE,SAAS;cACf,QAAQ,EAAE,IAAI;WACf;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,YAAY;WACnB;OACF;MAED,QAAQ,EAAE;UACR,YAAY;cACV,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;WAC5C;UACD,WAAW;cACT,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACnC,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;cAC7C,IAAI,YAAY,KAAK,SAAS,EAAE;kBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;sBAClD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,YAAY,EAAE;0BACpC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;uBAC3B;mBACF;eACF;WACF;OACF;MAED,OAAO,EAAE;UACP,OAAO,EAAP,UAAQ,MAAW,EAAE,KAAa;cAEhC,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;cAEnC,EAAE,CAAC,IAAI,CACL;kBACE,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,iBAAiB;eACtB,EACD;kBACE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;kBACtB,KAAK,OAAA;kBACL,MAAM,QAAA;kBACN,MAAM,QAAA;eACP,CACF,CAAA;cAED,IAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cAEnC,IAAI,QAAQ,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;kBAE3D,IAAM,SAAO,GAAG,aAAW,KAAO,CAAA;kBAElC,EAAE,CAAC,GAAG,CAAI,SAAO,eAAY,EAAE,IAAI,CAAC,CAAA;kBAEpC,QAAQ,CAAC,MAAM,CAAC;uBACf,IAAI,CAAC,UAAU,QAAe;sBAC7B,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;0BACnC,EAAE,CAAC,GAAG,CAAI,SAAO,cAAW,EAAE,QAAQ,CAAC,CAAA;uBACxC;2BACI;0BACH,EAAE,CAAC,GAAG,CAAI,SAAO,YAAS,EAAE,IAAI,CAAC,CAAA;uBAClC;mBACF,CAAC;uBACD,OAAO,CAAC;sBACP,EAAE,CAAC,GAAG,CAAI,SAAO,eAAY,EAAE,KAAK,CAAC,CAAA;mBACtC,CAAC,CAAA;eACH;WAEF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF,CAAC,CAAA;EAEF,eAAe,CAAC,UAAU,CAAC,eAAe,GAAG,eAAe,CAAA;;AC7D5D,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,OAAO,EAAE;cACP,IAAI,EAAE,SAAS;cACf,QAAQ,EAAE,IAAI;WACf;UACD,WAAW,EAAE;cACX,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,QAAQ;WAChB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,SAAS;WAChB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;WACjF;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,WAAW;WACnB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;cAChG,KAAK,EAAE,gBAAgB;WACxB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,cAAc,EAAE;cACd,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,YAAY;WACnB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,UAAU,YAAA;cACV,OAAO,EAAE,KAAK;cACd,SAAS,EAAE,KAAK;cAChB,mBAAmB,EAAE,EAAE;cACvB,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;WACrC,CAAA;OACF;MAED,QAAQ,EAAE;UACR,KAAK,YAAC,KAAK;cACT,IAAI,CAAC,GAAG,CAAC;kBACP,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC;kBAChD,iBAAiB,EAAE,KAAK;eACzB,CAAC,CAAA;WACH;OACF;MAED,QAAQ,EAAE;UACR,eAAe,EAAf;cACE,OAAO,kBAAkB,CACvB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EACnB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAClB,CAAA;WACF;UACD,YAAY,EAAZ;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAC3B,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAC3B,UAAU,MAAW;kBACnB,MAAM,CAAC,IAAI,CACT,MAAM,CAAC,IAAI,CACZ,CAAA;eACF,CACF,CAAA;cACD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;WAC1B;UACD,UAAU,EAAV;cACE,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACvC,OAAO,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;WACvC;UACD,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC;sBACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;mBACtB,CAAC,CAAA;eACH;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;OACF;MAED,MAAM,EAAE;UACN,KAAK,EAAE;cACL,QAAQ,EAAR,UAAS,KAAK,EAAE,IAAI;kBAElB,KAAK,CAAC,IAAI,EAAE,CAAA;kBAEZ,IAAM,EAAE,GAAG,IAAI,CAAA;kBAEf,IAAM,iBAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAA;kBAC9D,IAAM,mBAAmB,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAA;kBAElE,IAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAA;kBAChC,IAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAA;kBAClC,IAAM,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAA;kBAE1D,iBAAiB,CAAC,MAAM;sBACxB,mBAAmB,CAAC,MAAM,GAAG,aAAa,CAAA;kBAE1C,iBAAiB,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC,KAAK,CAAA;kBACvD,mBAAmB,CAAC,aAAa,CAAC,GAAG,cAAc,CAAA;kBAEnD,IAAM,OAAO,GAAwB;sBACnC,iBAAiB,mBAAA;sBACjB,mBAAmB,qBAAA;mBACpB,CAAA;kBAED,IAAI,UAAU,EAAE;sBACd,OAAO,CAAC,KAAK,GAAG,iBAAiB,CAAA;mBAClC;kBAED,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;kBAEf,IAAI,UAAU,EAAE;;sBAEd,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAA;mBACjC;kBAED,IAAI,IAAI,CAAC,MAAM,EAAE;sBACf,IAAI,CAAC,GAAG,CAAC;0BACP,SAAS,EAAE,KAAK;uBACjB,CAAC,CAAA;mBACH;eAEF;cACD,EAAE,EAAE,iBAAiB;WACtB;UACD,OAAO,EAAE;cACP,QAAQ,YAAC,KAAK;kBAEZ,KAAK,CAAC,IAAI,EAAE,CAAA;kBAEZ,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;eAE7B;cACD,EAAE,EAAE,SAAS;WACd;OACF;MAED,OAAO,EAAE;UACP,OAAO,EAAP,UAAQ,KAA4B;cAClC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;cACxB,cAAc,CAAC,KAAK,CAAC,CAAA;WACtB;UACD,YAAY,EAAZ,UAAa,KAA2B;;cAGtC,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,cAAc,CAAC,KAAK,CAAC,CAAA;cAErB,IAAM,KAAK,GAAG,EAAE,CAAA;cAEhB,IAAI,CAAC,GAAG,CAAC;kBACP,KAAK,OAAA;eACN,CAAC,CAAA;;cAGF,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;WAEvB;UACD,UAAU,YAAC,KAAK;cACd,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,UAAU;eACf,EACD;kBACE,KAAK,OAAA;eACN,CACF,CAAA;WACF;OACF;MAED,UAAU;UACR,wBAAwB,CAAC,IAAI,CAAC,CAAA;OAC/B;MAED,UAAU,EAAE;UACV,GAAG,KAAA;UACH,IAAI,MAAA;UACJ,KAAK,OAAA;UACL,OAAO,SAAA;UACP,eAAe,iBAAA;OAChB;GAEF,CAAC,CAAA;;;;ACjQF,mBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,iBAAqB;MAE3B,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;cAChB,QAAQ,EAAE,IAAI;WACf;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF;;;;AC7BD,eAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,aAAiB;MAEvB,SAAS,EAAE;UACT,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GAEF,CAAC,CAAA;;;;ACpBF,qBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,mBAAuB;MAE7B,SAAS,EAAE;UACT,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GACF;;;;ACdD,sBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,oBAAwB;MAE9B,SAAS,EAAE;UACT,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GACF;;;;ACdD,qBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,mBAAuB;MAE7B,SAAS,EAAE;UACT,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GACF;;;;ACPD,oBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,KAAK,EAAE,WAAW;MAElB,IAAI,EAAE,kBAAsB;MAE5B,SAAS,EAAE;UACT,WAAW,EAAE;cACX,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,GAAG;WACX;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,WAAW,EAAX;cACE,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;kBACzB,OAAO,EAAE,CAAA;eACV;cACD,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;WACnC;UACD,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cAC3C,IAAI,WAAW,EAAE;kBACf,MAAM,CAAC,IAAI,CAAC;sBACV,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;sBACnC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;sBAC3B,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC;sBAC9B,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC;mBAC/B,CAAC,CAAA;eACH;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;UACD,YAAY,EAAZ;cACE,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cAC3C,IAAI,WAAW,EAAE;kBACf,OAAO;sBACL,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;mBAC5B,CAAA;eACF;WACF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF,CAAC,CAAA;;;;AC9DF,aAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,WAAe;MAErB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC;kBACV,gBAAgB;kBAChB,aAAa;kBACb,gBAAgB;kBAChB,gBAAgB;kBAChB,cAAc;kBACd,cAAc;kBACd,gBAAgB;kBAChB,cAAc,EACf,CAAC;cACF,KAAK,EAAE,gBAAgB;WACxB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;WACzB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,UAAU;WACjB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GACF,CAAC,CAAA;;;;;;AC5DF,kBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,UAAU,EAAE;UACV,KAAK,OAAA;OACN;GAEF,CAAC,CAAA;;ACMF,aAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,WAAe;MAErB,SAAS,EAAE;UACT,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,WAAW;WACnB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;UACJ,SAAS,WAAA;OACV;GAEF,CAAC,CAAA;;;;ACvCF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UACV,IAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,WAAe,CAAC,CAAA;UACjE,OAAO;cACL,SAAS,EAAE,IAAI;oBACX,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;oBACrB,KAAK;WACV,CAAA;OACF;GAEF,CAAC,CAAA;;;;ACpBF,eAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,aAAiB;MAEvB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,UAAU;WACjB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC;WAC9B;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,QAAQ;cACN,OAAO,iBAAiB,CACtB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CACnB,CAAA;WACF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF;;;;ACxCD,kBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,gBAAoB;MAE1B,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,UAAU;WACjB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;WAC7B;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GAEF;;;;ACpBD,gBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,cAAkB;MAExB,SAAS,EAAE;UACT,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;cAC9C,KAAK,EAAE,UAAU;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GACF,CAAC,CAAA;;;;ACzBF,eAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,aAAiB;MAEvB,SAAS,EAAE;UACT,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,CAAC;WACT;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,GAAG;WACX;UACD,WAAW,EAAE;cACX,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,CAAC;WACT;UACD,WAAW,EAAE;cACX,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,SAAS;WACjB;UACD,aAAa,EAAE;cACb,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;cAChC,KAAK,EAAE,OAAO;WACf;UACD,UAAU,EAAE;cACV,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,CAAC;WACT;UACD,UAAU,EAAE;cACV,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,SAAS;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,mBAAmB;cACjB,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;oBACrD,CAAC;oBACD,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;WAC5B;UACD,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC7B,IAAI,IAAI,EAAE;kBACR,MAAM,CAAC,IAAI,CAAC;sBACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;sBACpB,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;mBACtB,CAAC,CAAA;eACH;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;UACD,UAAU;cACR,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;kBACzB,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;kBAC3B,OAAO;sBACL,eAAe,EAAK,GAAG,GAAG,EAAE,WAAM,GAAG,OAAI;sBACzC,gBAAgB,EAAE,MAAI,EAAE,GAAG,CAAC,OAAI;sBAChC,UAAU,EAAE,yEAAyE;mBACtF,CAAA;eACF;WACF;UACD,SAAS;cACP,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACnC,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;cAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;kBACzB,OAAO;sBACL,eAAe,EAAK,CAAC,OAAO,GAAG,GAAG,KAAK,GAAG,GAAG,EAAE,CAAC,WAAM,GAAG,OAAI;sBAC7D,gBAAgB,EAAE,MAAI,EAAE,GAAG,CAAC,OAAI;sBAChC,UAAU,EAAE,qGAAqG;mBAClH,CAAA;eACF;cACD,OAAO;kBACL,eAAe,EAAK,GAAG,WAAM,GAAG,OAAI;kBACpC,gBAAgB,EAAK,CAAC,CAAC,GAAG,GAAG,OAAO,IAAI,GAAG,GAAG,GAAG,QAAK;kBACtD,UAAU,EAAE,kDAAkD;eAC/D,CAAA;WACF;UACD,MAAM;cACJ,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;WACxC;UACD,GAAG;cACD,OAAO,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;WACxC;UACD,IAAI;cACF,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;cAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;kBACzB,OAAO,iBAAe,MAAM,oBACxB,MAAM,SAAI,MAAM,kBAAa,CAAC,GAAG,MAAM,oBACvC,MAAM,SAAI,MAAM,iBAAY,CAAC,GAAG,MAAQ,CAAA;eAC7C;mBACI;kBACH,OAAO,kBAAgB,MAAM,oBACzB,MAAM,SAAI,MAAM,iBAAY,CAAC,GAAG,MAAM,oBACtC,MAAM,SAAI,MAAM,kBAAa,CAAC,GAAG,MAAQ,CAAA;eAC9C;WACF;OACF;GACF,CAAC,CAAA;;;;ACzGF,mBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,iBAAqB;MAE3B,SAAS,EAAE;UACT,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC;cAC7B,KAAK,EAAE,gBAAgB;WACxB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,IAAI;WACZ;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;WACjB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,IAAI;WACZ;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,SAAS,WAAA;cACT,SAAS,EAAE,KAAK;WACjB,CAAA;OACF;MAED,QAAQ,EAAE;UACR,QAAQ;cACN,OAAO,iBAAiB,CACtB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CACnB,CAAA;WACF;UACD,YAAY,EAAZ;cAEE,IAAM,WAAW,GAA2B,EAAE,CAAA;cAE9C,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cACrC,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACvC,IAAI,QAAQ,EAAE;kBACZ,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;eACzC;cACD,IAAI,SAAS,EAAE;kBACb,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;eAC3C;cAED,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;kBAC3C,OAAO,WAAW,CAAA;eACnB;WAEF;OACF;MAED,MAAM,EAAE;UACN,IAAI,EAAE;cACJ,QAAQ,YAAC,KAAK;kBACZ,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;eAC5B;cACD,EAAE,EAAE,SAAS;WACd;UACD,KAAK,EAAE;cACL,QAAQ,YAAC,KAAK;kBACZ,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;eAC7B;cACD,EAAE,EAAE,SAAS;WACd;OACF;MAED,OAAO,EAAE;UACP,aAAa,EAAb,UAAc,KAA2B;cACvC,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;cAC3B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;cAC5B,IAAI,CAAC,IAAI,CAAC;kBACR,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,YAAY;eACjB,CAAC,CAAA;WACH;UACD,SAAS,EAAT,UAAU,KAA2B;cACnC,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;cAC3B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;cAC5B,IAAI,CAAC,IAAI,CAAC;kBACR,IAAI,EAAE,IAAI;kBACV,EAAE,EAAE,YAAY;eACjB,CAAC,CAAA;WACH;OACF;MAED,UAAU,EAAE;UACV,MAAM,QAAA;UACN,OAAO,SAAA;OACR;GACF,CAAC,CAAA;;;;;;ACrIF,sBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,SAAS,EAAE;UACT,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;OACF;MAED,QAAQ,EAAE;UACR,WAAW,EAAX;cAEE,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cACrC,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cAEvC,IAAI,QAAQ,EAAE;kBACZ,OAAO;sBACL,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC;mBAC1B,CAAA;eACF;cAED,OAAO;kBACL,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;eAC3B,CAAA;WACF;UACD,QAAQ,EAAR;cAEE,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cACrC,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACvC,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cAEnC,IAAI,QAAQ,EAAE;kBACZ,OAAO;sBACL,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC;sBACzB,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;mBAC3B,CAAA;eACF;cAED,OAAO;kBACL,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;kBACzB,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;kBAC1B,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC;eAC/B,CAAA;WACF;OACF;GAEF,CAAC,CAAA;;ACnDF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,CAAC;WACT;UACD,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC;WAC9B;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,CAAC;WACT;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,UAAU,EAAE;UACV,aAAa,eAAA;OACd;GACF,CAAC,CAAA;;;;;;ECrCF,IAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC;MAE1B,QAAQ,aAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,YAAY,EAAE;cACZ,IAAI,EAAE,SAAS;WAChB;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,SAAS;WAChB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,SAAS;WAChB;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,SAAS;WAChB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,iBAAiB,EAAE;cACjB,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,YAAY;WACnB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,UAAU;WACjB;OACF;MAED,IAAI;UACF,OAAO;cACL,SAAS,EAAE,KAAK;WACjB,CAAA;OACF;MAED,QAAQ,EAAE;UACR,QAAQ;cACN,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;cAC7C,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cAChC,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;WACxC;UACD,OAAO;cACL,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;kBAC1B,OAAO,KAAK,CAAA;eACb;cACD,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cAC3C,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cAChC,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;WACvC;UACD,aAAa,EAAb;cACE,IAAI,MAAM,GAAG,KAAK,CAAA;cAClB,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;kBACzD,IAAM,aAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;kBAC3C,IAAM,cAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;kBAC7C,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;kBAC1C,IAAI,QAAQ,EAAE;sBACZ,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,QAAQ,EACR,UAAU,KAAU;0BAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAY,EAAE,KAAK,CAAC,GAAG,CAAC;iCACtC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAW,EAAE,KAAK,CAAC,GAAG,CAAC,EACxC;8BACA,MAAM,GAAG,IAAI,CAAA;8BACb,OAAO,KAAK,CAAA;2BACb;uBACF,CACF,CAAA;mBACF;eACF;cACD,OAAO,MAAM,CAAA;WACd;UACD,QAAQ;cACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;kBACnD,OAAO,KAAK,CAAA;eACb;cACD,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;cAC7C,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cAChC,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;WACxC;UACD,QAAQ;cACN,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;cAC7C,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cAChC,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;WACxC;UACD,WAAW;cACT,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;cAC1C,OAAO,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;WACvC;UACD,MAAM;cACJ,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cACtC,IAAI,MAAM,EAAE;kBACV,OAAO,IAAI,CAAA;eACZ;cACD,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;kBACxB,OAAO,KAAK,CAAA;eACb;cACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;WAChC;OACF;MAED,OAAO,EAAE;UACP,iBAAiB,EAAjB;cAEE,IAAM,EAAE,GAAG,IAAI,CAAA;cAEf,IAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC3B,IAAM,QAAQ,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cAEpC,IAAM,eAAe,GAAG;kBACtB,EAAE,CAAC,IAAI,CACL;sBACE,IAAI,EAAE,QAAQ;sBACd,EAAE,EAAE,UAAU;mBACf,EACD;sBACE,IAAI,MAAA;sBACJ,QAAQ,UAAA;mBACT,CACF,CAAA;eACF,CAAA;cAED,IAAI,QAAQ,EAAE;;kBAEZ,IAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;kBACnC,IAAM,WAAW,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;kBACzC,IAAI,QAAQ,IAAI,CAAC,WAAW,EAAE;sBAE5B,EAAE,CAAC,GAAG,CAAC;0BACL,SAAS,EAAE,IAAI;uBAChB,CAAC,CAAA;sBAEF,QAAQ,CAAC,IAAI,CAAC;2BACb,IAAI,CAAC,UAAU,QAAe;0BAC7B,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;8BACnC,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;8BACjC,eAAe,EAAE,CAAA;2BAClB;+BACI;8BACH,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;2BAC5B;uBACF,CAAC;2BACD,OAAO,CAAC;0BACP,EAAE,CAAC,GAAG,CAAC;8BACL,SAAS,EAAE,KAAK;2BACjB,CAAC,CAAA;uBACH,CAAC,CAAA;sBAEF,OAAM;mBACP;eACF;cAED,eAAe,EAAE,CAAA;WAElB;UACD,iBAAiB,YAAC,KAAK;cAErB,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC7B,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cAErC,IAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;cAEzC,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,UAAU;eACf,EACD;kBACE,IAAI,MAAA;kBACJ,QAAQ,EAAE,CAAC,QAAQ;kBACnB,QAAQ,EAAE,KAAK;wBACX,aAAa,CAAC,OAAO;wBACrB,aAAa,CAAC,OAAO;eAC1B,CACF,CAAA;WAEF;UACD,gBAAgB;cAEd,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAE7B,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,UAAU;eACf,EACD;kBACE,IAAI,MAAA;kBACJ,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;eAC9B,CACF,CAAA;WAEF;UACD,mBAAmB,YAAC,IAAI;cAEtB,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAE7B,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,OAAO;kBACb,EAAE,EAAE,UAAU;eACf,EACD;kBACE,IAAI,MAAA;kBACJ,OAAO,EAAE,IAAI,CAAC,OAAO;eACtB,CACF,CAAA;WAEF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;UACJ,QAAQ,UAAA;OACT;GAEF,CAAC,CAAA;EAEF,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAA;;WC7PvB,SAAS,CAAC,IAAW,EAAE,YAAsB;MAC3D,IAAM,UAAU,GAAG,UAAU,KAAU;UACrC,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;cAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;kBAC3C,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;eAC7B;cACD,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,KAAK,CAAC,QAAQ,EACd,UAAU,CACX,CAAA;WACF;OACF,CAAA;MACD,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,IAAI,EACJ,UAAU,CACX,CAAA;EACH,CAAC;AAED,WAAgB,kBAAkB,CAAC,IAAW,EAAE,YAAsB;MAEpE,IAAM,OAAO,GAAU,EAAE,CAAA;MAEzB,IAAM,UAAU,GAAG,UAAU,KAAU;UAErC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;cAC1C,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,OAAO,EACP,UAAU,MAAW;kBACnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;sBAC5C,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;mBAC9B;eACF,CACF,CAAA;WACF;UAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;UACnB,IAAI,KAAK,CAAC,QAAQ,EAAE;cAClB,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,KAAK,CAAC,QAAQ,EACd,UAAU,CACX,CAAA;WACF;UACD,OAAO,CAAC,GAAG,EAAE,CAAA;OAEd,CAAA;MACD,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,IAAI,EACJ,UAAU,CACX,CAAA;EAEH,CAAC;AAED,WAAgB,iBAAiB,CAAC,IAAW,EAAE,WAAqB,EAAE,YAAsB,EAAE,aAAsB;MAClH,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,WAAW,EACX,UAAU,GAAG;UACX,aAAa,CAAC,WAAW,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;OACzE,CACF,CAAA;EACH,CAAC;AAED,WAAgB,aAAa,CAAC,WAAqB,EAAE,YAAsB,EAAE,GAAW,EAAE,OAAgB,EAAE,aAAsB,EAAE,IAAW;MAE7I,IAAM,OAAO,GAAU,EAAE,CAAA;MACzB,IAAI,IAAS,CAAA;MAEb,IAAM,UAAU,GAAG,UAAU,KAAU;UAErC,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;cACrB,IAAI,GAAG,KAAK,CAAA;cACZ,OAAO,KAAK,CAAA;WACb;UAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;UACnB,IAAI,KAAK,CAAC,QAAQ,EAAE;cAClB,IAAI,QAAM,GAAG,SAAS,CAAA;cACtB,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,KAAK,CAAC,QAAQ,EACd,UAAU,KAAK;kBACb,OAAO,QAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;eAClC,CACF,CAAA;cACD,IAAI,QAAM,KAAK,KAAK,EAAE;kBACpB,OAAO,QAAM,CAAA;eACd;WACF;UACD,OAAO,CAAC,GAAG,EAAE,CAAA;OAEd,CAAA;MACD,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,IAAI,EACJ,UAAU,CACX,CAAA;MAED,IAAI,CAAC,IAAI,EAAE;UACT,OAAM;OACP;MAED,OAAO,CAAC,OAAO,EAAE,CAAA;MAEjB,IAAM,OAAO,GAAG,UAAU,IAAS,EAAE,WAAqB;UACxD,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;cACzC,OAAM;WACP;UACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;cACzC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;WAC3B;UACD,IAAI,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;cACzC,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,IAAI,CAAC,QAAQ,EACb,UAAU,IAAI;kBACZ,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;eACpB,CACF,CAAA;WACF;OACF,CAAA;MAED,IAAM,UAAU,GAAG,UAAU,IAAS,EAAE,cAAwB;UAC9D,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;cACzC,OAAM;WACP;UACD,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;UACvC,IAAI,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;cAC5C,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,IAAI,CAAC,QAAQ,EACb,UAAU,IAAI;kBACZ,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;eACvB,CACF,CAAA;WACF;OACF,CAAA;MAED,IAAI,OAAO,EAAE;UACX,OAAO,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,CAAA;UAC7B,IAAI,CAAC,aAAa,EAAE;cAClB,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,OAAO,EACP,UAAU,MAAW;kBAEnB,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;sBAC3C,OAAO,KAAK,CAAA;mBACb;;kBAGD,IAAI,UAAU,GAAG,IAAI,CAAA;kBACrB,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,MAAM,CAAC,QAAQ,EACf,UAAU,IAAS;sBACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;0BACzC,OAAO,UAAU,GAAG,KAAK,CAAA;uBAC1B;mBACF,CACF,CAAA;kBACD,IAAI,UAAU,EAAE;sBACd,OAAO,CAAC,MAAM,CAAC,CAAA;mBAChB;uBACI;sBACH,UAAU,CAAC,MAAM,CAAC,CAAA;mBACnB;eAEF,CACF,CAAA;WACF;OACF;WACI;UACH,UAAU,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,CAAA;UAChC,IAAI,CAAC,aAAa,EAAE;cAClB,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,OAAO,EACP,UAAU,MAAM;kBACd,UAAU,CAAC,MAAM,CAAC,CAAA;eACnB,CACF,CAAA;WACF;OACF;EAEH,CAAC;;AC5JD,aAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,WAAe;MAErB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,SAAS;WAChB;UACD,mBAAmB,EAAE;cACnB,IAAI,EAAE,SAAS;WAChB;UACD,mBAAmB,EAAE;cACnB,IAAI,EAAE,SAAS;WAChB;UACD,kBAAkB,EAAE;cAClB,IAAI,EAAE,SAAS;WAChB;UACD,gBAAgB,EAAE;cAChB,IAAI,EAAE,WAAW;WAClB;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,SAAS;WAChB;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,SAAS;WAChB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,SAAS;WAChB;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,SAAS;WAChB;UACD,aAAa,EAAE;cACb,IAAI,EAAE,WAAW;WAClB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAG;cACV,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,YAAY;WACnB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,iBAAiB;cACf,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC7B,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;cAC7C,IAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;cAE3D,IAAM,iBAAiB,GAAG,CAAC,YAAY,IAAI,mBAAmB,IAAI,EAAE,EAAE,KAAK,EAAE,CAAA;cAC7E,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;cAC3C,IAAI,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;kBAChC,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;eACnC;cAED,OAAO,iBAAiB,CAAA;WACzB;UACD,iBAAiB;cACf,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;cAC7C,IAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;cAC3D,OAAO,CAAC,YAAY,IAAI,mBAAmB,IAAI,EAAE,EAAE,KAAK,EAAE,CAAA;WAC3D;UACD,gBAAgB;cACd,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC7B,IAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;cAC/C,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;cAC3C,IAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;cACzD,IAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;cAEvD,IAAM,gBAAgB,GAAG,CAAC,WAAW,IAAI,kBAAkB,IAAI,EAAE,EAAE,KAAK,EAAE,CAAA;cAC1E,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAA;cAE3E,OAAO,gBAAgB,CAAA;WACxB;UACD,iBAAiB;cACf,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;cAC7C,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE,KAAK,EAAE,CAAA;WACpC;OACF;MAED,MAAM,EAAE;UACN,MAAM,EAAE;cACN,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,KAAK,CAAC,IAAI,EAAE,CAAA;kBAEZ,IAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC5B,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAC9B,CAAA;kBAEO,IAAA,gBAAI,CAAS;kBACb,IAAA,cAAG,CAAS;kBAEpB,IAAI,IAAI,CAAC,QAAQ,EAAE;sBACjB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;mBACvB;uBACI;sBACH,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;mBACpC;kBAED,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;kBAEtC,IAAI,CAAC,IAAI,CACP;sBACE,IAAI,EAAE,QAAQ;sBACd,EAAE,EAAE,MAAM;mBACX,EACD;sBACE,YAAY,cAAA;sBACZ,IAAI,MAAA;mBACL,CACF,CAAA;eACF;cACD,EAAE,EAAE,UAAU;WACf;UACD,MAAM,EAAE;cACN,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,KAAK,CAAC,IAAI,EAAE,CAAA;kBAEZ,IAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC5B,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAC9B,CAAA;kBAEO,IAAA,gBAAI,CAAS;kBACb,IAAA,cAAG,CAAS;kBAEpB,IAAI,IAAI,CAAC,QAAQ,EAAE;sBACjB,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;0BACzC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;uBACvB;2BACI;0BACH,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;0BACvB,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;uBACtB;mBACF;uBACI;sBACH,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;0BACrE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;0BACvB,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;uBACtB;2BACI;0BACH,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;uBACpC;mBACF;kBAED,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;kBAEtC,IAAI,CAAC,IAAI,CACP;sBACE,IAAI,EAAE,QAAQ;sBACd,EAAE,EAAE,MAAM;mBACX,EACD;sBACE,YAAY,cAAA;sBACZ,IAAI,MAAA;mBACL,CACF,CAAA;eACF;cACD,EAAE,EAAE,UAAU;WACf;UACD,KAAK,EAAE;cACL,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAClB,KAAK,CAAC,IAAI,EAAE,CAAA;kBAEZ,IAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAC3B,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAC7B,CAAA;kBAEO,IAAA,sBAAO,EAAE,gBAAI,CAAS;kBAE9B,aAAa,CACX,WAAW,EACX,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAC7B,IAAI,CAAC,GAAG,EACR,OAAO,EACP,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EACzB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CACjB,CAAA;kBAED,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;kBAEpC,IAAI,CAAC,IAAI,CACP;sBACE,IAAI,EAAE,OAAO;sBACb,EAAE,EAAE,MAAM;mBACX,EACD;sBACE,WAAW,aAAA;sBACX,IAAI,MAAA;mBACL,CACF,CAAA;eACF;cACD,EAAE,EAAE,UAAU;WACf;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;UACJ,QAAQ,UAAA;OACT;GAEF,CAAC,CAAA;;;;AC9NF,aAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,WAAe;MAErB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,CAAC;WACT;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,CAAC;WACT;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,SAAS;WAChB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,gBAAgB;WACxB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,WAAW;WACnB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,EAAE;WACV;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,UAAU,EAAE,CAAC,CAAC;WACf,CAAA;OACF;MAED,QAAQ,EAAE;UACR,WAAW,EAAX;cACE,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;cACzC,OAAO,UAAU,GAAG,CAAC;oBACjB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;oBACjB,UAAU,CAAA;WACf;OACF;MAED,OAAO,EAAE;UACP,UAAU,EAAV,UAAW,KAA2B,EAAE,KAAa;cAEnD,IAAM,UAAU,GAAG,KAAK,CAAC,aAA2B,CAAA;cACpD,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAqB,CAAC,EAAE;kBAC1D,KAAK,IAAI,GAAG,CAAA;eACb;cAED,IAAI,CAAC,GAAG,CAAC;kBACP,UAAU,EAAE,KAAK;eAClB,CAAC,CAAA;WACH;UAED,WAAW;cACT,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,CAAC,GAAG,CAAC;kBACP,UAAU,EAAE,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;eACpC,CAAC,CAAA;WACH;UAED,WAAW,EAAX,UAAY,KAA2B,EAAE,KAAa;cAEpD,IAAM,UAAU,GAAG,KAAK,CAAC,aAA2B,CAAA;cACpD,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAqB,CAAC,EAAE;kBAC1D,KAAK,IAAI,GAAG,CAAA;eACb;cAED,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;cAExB,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,MAAM;eACX,EACD;kBACE,KAAK,OAAA;eACN,CACF,CAAA;WACF;UAED,eAAe,EAAf,UAAgB,OAAoB;cAClC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;WACjD;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF,CAAC,CAAA;;;;ACjGF,aAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,WAAe;MAErB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;WACtB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;cAChD,KAAK,EAAE,WAAW;WACnB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,IAAI,EAAE,EAAE;WACT,CAAA;OACF;MAED,MAAM,EAAE;UACN,GAAG,EAAE;cACH,QAAQ,YAAC,KAAK,EAAE,IAAI;kBAElB,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;sBAC1C,OAAM;mBACP;kBAEO,IAAA,qBAAM,CAAU;kBACxB,IAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;kBAElC,IAAI,CAAC,MAAM,CACT,MAAM,EACN;sBACE,IAAI,EAAE,OAAO;sBACb,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;sBACxB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;sBAC1B,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;mBACjC,CACF,CAAA;kBAED,IAAI,IAAI,CAAC,QAAQ,EAAE;sBACjB,IAAI,CAAC,GAAG,CAAC;0BACP,KAAK,EAAE,OAAO;uBACf,CAAC,CAAA;mBACH;eAEF;cACD,EAAE,EAAE,UAAU;WACf;UACD,MAAM,EAAE;cACN,QAAQ,EAAR,UAAS,KAAK;kBAEZ,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;sBAC1C,OAAM;mBACP;kBAEO,IAAA,qBAAM,CAAU;kBACxB,IAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;kBAElC,IAAM,IAAI,GAAU,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;kBACpC,IAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI;sBACxC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAA;mBAC7B,CAAC,CAAA;kBACF,IAAI,CAAC,GAAG,CAAC;sBACP,IAAI,EAAE,OAAO;mBACd,CAAC,CAAA;kBAEF,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,OAAO,EAAE;sBACjC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,CAAA;mBAC5D;eAEF;cACD,EAAE,EAAE,UAAU;WACf;UACD,MAAM,EAAE;cACN,QAAQ,EAAR,UAAS,KAAK;kBAEZ,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;sBAC1C,OAAM;mBACP;kBAED,IAAM,EAAE,GAAG,IAAI,CAAA;kBACP,IAAA,qBAAM,CAAU;kBACxB,IAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;kBAClC,IAAM,IAAI,GAAU,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;kBAElC,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,IAAI,EACJ,UAAU,IAAI,EAAE,KAAK;sBACnB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;0BACzB,EAAE,CAAC,GAAG,CACJ,UAAQ,KAAO,EACf;8BACE,IAAI,EAAE,OAAO;8BACb,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;8BACxB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;8BAC1B,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;2BACjC,CACF,CAAA;0BACD,OAAO,KAAK,CAAA;uBACb;mBACF,CACF,CAAA;eAEF;cACD,EAAE,EAAE,UAAU;WACf;OACF;MAED,QAAQ,EAAE;UACR,KAAK,YAAC,KAAK;cACT,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,MAAM;eACX,EACD,EAAE,KAAK,OAAA,EAAE,EACT,IAAI,CACL,CAAA;WACF;OACF;MAED,OAAO,EAAE;UACP,cAAc,EAAd,UAAe,GAAQ;cACrB,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,WAAW;kBACjB,EAAE,EAAE,MAAM;eACX,EACD;kBACE,IAAI,EAAE,GAAG,CAAC,IAAI;eACf,CACF,CAAA;WACF;UACD,cAAc,EAAd,UAAe,GAAQ;cACrB,IAAI,CAAC,GAAG,CAAC;kBACP,KAAK,EAAE,GAAG,CAAC,IAAI;eAChB,CAAC,CAAA;WACH;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF,CAAC,CAAA;;;;AC/KF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,UAAU;WACjB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;cAChB,QAAQ,EAAE,IAAI;WACf;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,OAAO;cACL,QAAQ,EAAE,KAAK;WAChB,CAAA;OACF;MAED,QAAQ,EAAE;UACR,IAAI;cACF,IAAI,CAAC,WAAW,EAAE,CAAA;WACnB;UACD,IAAI;cACF,IAAI,CAAC,WAAW,EAAE,CAAA;WACnB;UACD,KAAK;cACH,IAAI,CAAC,WAAW,EAAE,CAAA;WACnB;UACD,QAAQ;cACN,IAAI,CAAC,WAAW,EAAE,CAAA;WACnB;OACF;MAED,MAAM,EAAE;UACN,MAAM,EAAE;cACN,QAAQ,YAAC,CAAC,EAAE,IAAI;kBACd,IAAI,CAAC,GAAG,CAAC;sBACP,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;mBACzC,CAAC,CAAA;eACH;cACD,EAAE,EAAE,MAAM;WACX;OACF;MAED,OAAO,EAAE;UACP,WAAW;cACT,IAAI,CAAC,IAAI,CAAC;kBACR,IAAI,EAAE,QAAQ;kBACd,EAAE,EAAE,UAAU;eACf,CAAC,CAAA;WACH;OACF;MAED,UAAU;UAER,IAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,WAAe,CAAC,CAAA;UAE/D,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;UAErD,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;UAC3B,IAAI,IAAI,IAAI,IAAI,EAAE;cAChB,IAAI,GAAG,EAAE,GAAG,KAAK,CAAA;cACjB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;WACvB;UAED,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;UAC7B,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;cAChC,KAAK,GAAG,IAAI,CAAA;WACb;UAED,IAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAA;UAE/B,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;UAE9B,IAAI,CAAC,IAAI,CACP;cACE,IAAI,EAAE,KAAK;cACX,EAAE,EAAE,UAAU;WACf,EACD;cACE,QAAQ,UAAA;WACT,CACF,CAAA;OAEF;MAED,aAAa;UACX,IAAI,CAAC,IAAI,CAAC;cACR,IAAI,EAAE,QAAQ;cACd,EAAE,EAAE,UAAU;WACf,CAAC,CAAA;OACH;GAEF,CAAC,CAAA;;;;ACjGF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,SAAS,EAAE;cACT,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAC;cAChC,KAAK,EAAE,UAAU;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;cAC/C,KAAK,EAAE,SAAS;WACjB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACvC,IAAI,SAAS,EAAE;kBACb,MAAM,CAAC,IAAI,CAAC;sBACV,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;mBAC9B,CAAC,CAAA;eACH;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;OACF;MAED,MAAM,EAAE;UACN,KAAK,EAAE;cACL,QAAQ,YAAC,KAAK;kBACZ,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;kBAC3B,IAAI,CAAC,IAAI,CAAC;sBACR,IAAI,EAAE,OAAO;sBACb,EAAE,EAAE,UAAU;mBACf,CAAC,CAAA;eACH;cACD,EAAE,EAAE,cAAc;WACnB;UACD,IAAI,EAAE;cACJ,QAAQ,YAAC,KAAK;kBACZ,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,IAAI,CAAC,IAAI,CAAC;sBACR,IAAI,EAAE,MAAM;sBACZ,EAAE,EAAE,UAAU;mBACf,CAAC,CAAA;eACH;cACD,EAAE,EAAE,SAAS;WACd;UACD,KAAK,EAAE;cACL,QAAQ,YAAC,KAAK;kBACZ,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,IAAI,CAAC,IAAI,CAAC;sBACR,IAAI,EAAE,OAAO;sBACb,EAAE,EAAE,UAAU;mBACf,CAAC,CAAA;eACH;cACD,EAAE,EAAE,SAAS;WACd;UACD,OAAO,EAAE;cACP,QAAQ,YAAC,KAAK;kBACZ,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,IAAI,CAAC,IAAI,CAAC;sBACR,IAAI,EAAE,SAAS;sBACf,EAAE,EAAE,UAAU;mBACf,CAAC,CAAA;eACH;cACD,EAAE,EAAE,SAAS;WACd;OACF;MAED,OAAO,EAAE;UACP,OAAO,EAAP;cACE,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAc,CAAA;cACzC,OAAO,CAAC,kBAAkB,EAAE,CAAA;WAC7B;OACF;MAED,UAAU,EAAE;UACV,OAAO,SAAA;OACR;GACF;;;;AC5HD,qBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,mBAAuB;MAE7B,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,UAAU;WACjB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GACF;;;;AC3BD,qBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,mBAAuB;MAE7B,SAAS,EAAE;UACT,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GAEF;;;;WCde,cAAc,CAAC,QAAsB,EAAE,QAAiB,EAAE,KAA0B,EAAE,MAAc;MAElH,IAAI,KAAK,GAAwB,EAAE,CAAA;MACnC,IAAI,WAAqC,CAAA;MACzC,IAAI,UAAkC,CAAA;MACtC,IAAI,aAAa,GAAG,CAAC,CAAA;MACrB,IAAI,KAAK,GAAG,CAAC,CAAA;MAEb,QAAQ,CAAC,OAAO,CACd,UAAU,KAAU;UAClB,IAAI,KAAK,CAAC,GAAG,KAAK,iBAAiB,EAAE;cAE7B,IAAA,gBAA6B,EAA3B,gBAAK,EAAE,cAAoB,CAAA;cACnC,IAAM,IAAI,GAAG,MAAM,GAAG,KAAK,EAAE,CAAA;cAE7B,IAAI,CAAC,WAAW,EAAE;kBAChB,WAAW,GAAG,EAAE,CAAA;kBAChB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;eACxB;cAED,IAAI,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;cACjC,IAAI,SAAS,GAAG,MAAM,GAAG,aAAa,EAAE;kBACtC,SAAS,GAAG,MAAM,GAAG,aAAa,CAAA;eACnC;cAED,UAAU,GAAG;kBACX,KAAK,OAAA;kBACL,IAAI,MAAA;kBACJ,IAAI,EAAE,SAAS;eAChB,CAAA;cAED,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;cAC5B,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAA;cAExE,aAAa,IAAI,UAAU,CAAC,IAAI,CAAA;cAEhC,IAAI,aAAa,IAAI,MAAM,EAAE;kBAC3B,WAAW,GAAG,UAAU,GAAG,SAAS,CAAA;kBACpC,aAAa,GAAG,CAAC,CAAA;eAClB;WAEF;OACF,CACF,CAAA;MAED,IAAI,UAAU,IAAI,WAAW,EAAE;UAC7B,UAAU,CAAC,IAAI,GAAG,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAA;OAClD;MAED,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;EAErB,CAAC;;ECtCD,IAAM,cAAc,GAAG,CAAC,CAAA;AAExB,oBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,kBAAsB;MAE5B,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,WAAW;WACnB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI;UACF,IAAM,IAAI,GAAG,EAAG,CAAA;UAChB,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;UAC5C,IAAI,QAAQ,EAAE;cACZ,cAAc,CACZ,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,cAAc,CACrC,CAAA;WACF;UACD,OAAO,IAAI,CAAA;OACZ;MAED,iBAAiB,YAAC,KAAK;UAErB,IAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAA;UACzC,IAAI,CAAC,QAAQ,EAAE;cACb,OAAM;WACP;UAED,cAAc,CACZ,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,CAAC,MAAM,IAAI,cAAc,CAC/B,CAAA;OAEF;GAEF,CAAC,CAAA;;AC5EF,wBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,IAAI,EAAE,sBAA0B;MAEhC,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,WAAW;WAClB;OACF;GAEF,CAAC,CAAA;;;;ACRF,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GACF,CAAC,CAAA;;;;ACpBF,qBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,mBAAuB;MAE7B,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;GACF,CAAC,CAAA;;;;EC1BK,IAAM,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;;AC4B1C,aAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,WAAe;MAErB,SAAS,EAAE;UACT,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;cACvD,KAAK,EAAE,cAAc;WACtB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,WAAW;WAClB;UACD,kBAAkB,EAAE;cAClB,IAAI,EAAE,WAAW;WAClB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;cAClC,KAAK,EAAE,SAAS;WACjB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,WAAW;cACT,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;cACjC,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,MAAM,KAAK,UAAU,EAAE;kBACzB,OAAO,cAAc,CACnB,kBAAkB,EAClB,KAAK,EACL,IAAI,EACJ,KAAK,CACN,CAAA;eACF;cACD,OAAO,KAAK,CAAA;WACb;OACF;MAED,QAAQ,EAAE;UACR,MAAM,YAAC,KAAK;cACV,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,cAAc;kBACpB,EAAE,EAAE,MAAM;eACX,EACD;kBACE,MAAM,EAAE,KAAK;eACd,EACD,IAAI,CACL,CAAA;WACF;OACF;MAED,OAAO,EAAE;UACP,QAAQ,EAAR,UAAS,MAAmB;cAC1B,IAAI,CAAC,IAAI,CACP;kBACE,IAAI,EAAE,UAAU;kBAChB,EAAE,EAAE,MAAM;eACX,EACD;kBACE,MAAM,QAAA;kBACN,WAAW,EAAE,KAAK;kBAClB,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;eACnD,EACD,IAAI,CACL,CAAA;WACF;OACF;GACF;;;;AClFD,iBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,eAAmB;MAEzB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,gBAAgB,EAAE;cAChB,IAAI,EAAE,WAAW;WAClB;UACD,WAAW,EAAE;cACX,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,IAAI;WACZ;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,YAAC,OAAO;UAEV,IAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,WAAe,CAAC,CAAA;UAEjE,OAAO;cACL,cAAc,gBAAA;cACd,KAAK,EAAE,SAAS;cAChB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;cAC9B,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;WACvC,CAAA;OAEF;MAED,QAAQ,EAAE;UACR,WAAW;cACT,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;cACzC,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,UAAU,KAAK,UAAU,EAAE;kBAC7B,OAAO,cAAc,CACnB,kBAAkB,EAClB,KAAK,EACL,IAAI,EACJ,KAAK,CACN,CAAA;eACF;cACD,OAAO,KAAK,CAAA;WACb;UACD,cAAc,EAAd;cACE,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;cACzC,IAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;cACjD,OAAO,UAAU,KAAK,cAAc,IAAI,cAAc;oBAClD,OAAO,CAAC,cAAc,CAAC;oBACvB,EAAE,CAAA;WACP;UACD,WAAW,EAAX;cACE,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;WAChD;UACD,eAAe,EAAf;cACE,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;WAC1D;OACF;MAED,MAAM,EAAE;UACN,YAAY,EAAE;cACZ,QAAQ,YAAC,CAAC,EAAE,IAAI;kBACd,IAAI,CAAC,GAAG,CAAC;sBACP,UAAU,EAAE,IAAI,CAAC,MAAM;mBACxB,CAAC,CAAA;eACH;cACD,EAAE,EAAE,MAAM;WACX;UACD,QAAQ,EAAE;cACR,QAAQ,YAAC,CAAC,EAAE,IAAI;kBAEN,IAAA,oBAAM,CAAS;kBACvB,IAAM,KAAK,GAAG,MAAM;wBAChB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBACxB,SAAS,CAAA;kBAEb,IAAI,CAAC,GAAG,CAAC;sBACP,KAAK,OAAA;mBACN,CAAC,CAAA;kBAEF,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,EAAE;sBAChD,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAA;sBACnB,IAAI,EAAE,CAAC,cAAc,EAAE;0BACrB,EAAE,CAAC,cAAc,EAAE,CAAA;uBACpB;sBACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;mBACxB;eAEF;cACD,EAAE,EAAE,MAAM;WACX;OACF;GAEF,CAAC,CAAA;;;;EClHF,IAAMJ,eAAa,GAAG,qBAAyB,CAAA;EAC/C,IAAMC,YAAU,GAAG,kBAAsB,CAAA;AAEzC,eAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,KAAK,EAAE,SAAS;MAEhB,IAAI,EAAE,aAAiB;MAEvB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,IAAI;WACZ;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,IAAI;WACZ;UACD,YAAY,EAAE;cACZ,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,IAAI;WACZ;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG;WACtC;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,QAAQ,EAAE;UACR,YAAY,EAAZ;cAEE,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;cAEjC,IAAI,KAAK,IAAI,MAAM,EAAE;kBACnB,IAAM,MAAM,GAA2B,EAAE,CAAA;kBACzC,IAAI,KAAK,EAAE;sBACT,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;mBAC9B;kBACD,IAAI,MAAM,EAAE;sBACV,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;mBAChC;kBACD,OAAO,MAAM,CAAA;eACd;WAEF;OACF;MAED,QAAQ,EAAE;UACR,OAAO,YAAC,OAAO;cACb,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;cAC5B,IAAI,OAAO,EAAE;kBACX,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;kBAC5C,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAA;eAC9B;mBACI;kBACH,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;eAC9C;WACF;OACF;MAED,OAAO,EAAE;UACP,IAAI;cACF,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;WAC1B;UACD,KAAK;cACH,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;WAC3B;OACF;MAED,WAAW,EAAE;UACX,MAAM,EAAE;cACN,KAAK,EAAL,UAAM,IAAI;kBAER,IAAM,EAAE,GAAG,IAAW,CAAA;kBACtB,IAAM,MAAM,GAAG,IAAmB,CAAA;kBAClC,IAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAsB,CAAA;kBAC/C,EAAE,CAAC,cAAc,GAAG,OAAO,CAAA;;kBAG3B,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAED,eAAa,CAAC,CAAA;kBACvC,EAAE,CAAC,IAAI,CAAC;sBACN,IAAI,EAAE,MAAM;sBACZ,EAAE,EAAE,QAAQ;mBACb,CAAC,CAAA;kBAEF,UAAU,CACR;sBACE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;0BACtB,OAAM;uBACP;sBAED,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAEC,YAAU,CAAC,CAAA;sBAEpC,eAAe,CACb,OAAO,EACP;0BACE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;8BACtB,OAAM;2BACP;0BACD,EAAE,CAAC,IAAI,CAAC;8BACN,IAAI,EAAE,QAAQ;8BACd,EAAE,EAAE,QAAQ;2BACb,CAAC,CAAA;uBACH,CACF,CAAA;mBACF,EACD,EAAE,CACH,CAAA;eAEF;cACD,KAAK,EAAL,UAAM,IAAI,EAAE,IAAI;kBAEd,IAAM,EAAE,GAAG,IAAW,CAAA;kBACtB,IAAM,MAAM,GAAG,IAAmB,CAAA;kBAClC,IAAM,OAAO,GAAG,EAAE,CAAC,cAA6B,CAAA;kBAChD,EAAE,CAAC,cAAc,GAAG,SAAS,CAAA;kBAE7B,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAEA,YAAU,CAAC,CAAA;kBACvC,EAAE,CAAC,IAAI,CAAC;sBACN,IAAI,EAAE,OAAO;sBACb,EAAE,EAAE,QAAQ;mBACb,CAAC,CAAA;kBAEF,eAAe,CACb,OAAO,EACP;sBACE,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;0BACrB,OAAM;uBACP;sBACD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAED,eAAa,CAAC,CAAA;sBAC1C,EAAE,CAAC,IAAI,CAAC;0BACN,IAAI,EAAE,QAAQ;0BACd,EAAE,EAAE,QAAQ;uBACb,CAAC,CAAA;sBACF,IAAI,EAAE,CAAA;mBACP,CACF,CAAA;eAEF;WACF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF,CAAC,CAAA;;;;EC3JF,IAAM,cAAc,GAAG,KAAK,CAAA;EAC5B,IAAM,eAAe,GAAG,MAAM,CAAA;AAE9B,cAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,YAAgB;MAEtB,SAAS,EAAE;UACT,IAAI,EAAE;cACJ,IAAI,EAAE,SAAS;cACf,QAAQ,EAAE,IAAI;WACf;UACD,OAAO,EAAE;cACP,IAAI,EAAE,SAAS;cACf,QAAQ,EAAE,IAAI;WACf;UACD,SAAS,EAAE;cACT,IAAI,EAAE,SAAS;WAChB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;WAClB;UACD,SAAS,EAAE;cACT,IAAI,EAAE,UAAU;WACjB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,cAAc;WACrB;OACF;MAED,IAAI,EAAJ;UAEE,IAAI,OAAO,GAAG,SAAS,CAAA;UACvB,IAAI,SAAS,GAAG,SAAS,CAAA;UAEzB,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EACnB,UAAU,IAAS;cACjB,IAAI,IAAI,CAAC,gBAAgB,EAAE;kBACzB,OAAO,GAAG,IAAI,CAAC,GAAG,CAAA;kBAClB,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAA;eAClC;WACF,CACF,CAAA;UAED,OAAO;cACL,cAAc,gBAAA;cACd,eAAe,iBAAA;cAEf,SAAS,EAAE,SAAS;cACpB,OAAO,SAAA;cACP,SAAS,WAAA;WACV,CAAA;OACF;MAED,QAAQ,EAAE;UACR,UAAU,EAAE;cACV,IAAI,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC;cACvC,GAAG,EAAH;kBACE,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;kBACvC,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;kBAC7B,OAAO,SAAS,IAAI,IAAI;yBACnB,SAAS,CAAC,MAAM,GAAG,CAAC;yBACpB,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAA;eACtC;cACD,GAAG,EAAH,UAAI,OAAO;kBACT,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;kBACrC,IAAI,OAAO,EAAE;sBACX,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAC9B,UAAU,IAAS;0BACjB,OAAO,IAAI,CAAC,GAAG,CAAA;uBAChB,CACF,CAAA;mBACF;uBACI;sBACH,SAAS,GAAG,EAAE,CAAA;mBACf;kBACD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;eACjC;WACF;UACD,WAAW,EAAX;cACE,IAAM,MAAM,GAAa,EAAE,CAAA;cAE3B,IAAM,WAAW,GAA2B,EAAE,CAAA;cAE9C,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;cAEjC,IAAI,KAAK,EAAE;kBACT,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;kBAClC,WAAW,CAAC,SAAS,GAAG,MAAM,CAAA;eAC/B;cACD,IAAI,MAAM,EAAE;kBACV,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;kBACpC,WAAW,CAAC,SAAS,GAAG,MAAM,CAAA;eAC/B;cAED,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;kBAC3C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;eACzB;cAED,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;cAC/B,IAAI,KAAK,EAAE;kBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;eACnB;cAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;kBACrB,OAAO,MAAM,CAAA;eACd;WACF;OACF;MAED,QAAQ,EAAE;UACR,SAAS,YAAC,SAAS;cACjB,IAAI,CAAC,IAAI,CACP,cAAc,EACd;kBACE,SAAS,WAAA;eACV,CACF,CAAA;WACF;OACF;MAED,OAAO,EAAE;UACP,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG;OACvB;MAED,OAAO,EAAE;UAEP,gBAAgB,EAAhB,UAAiB,KAA2B,EAAE,IAAU;cACtD,KAAK,CAAC,IAAI,EAAE,CAAA;cACZ,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;WACrC;UACD,gBAAgB,EAAhB,UAAiB,KAA2B,EAAE,IAAU,EAAE,KAAa;cAErE,KAAK,CAAC,IAAI,EAAE,CAAA;cAEZ,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;cACrC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAQ,KAAK,SAAM,CAAC,CAAA;cAEvC,IAAI,IAAI,CAAC,OAAO,EAAE;kBAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;sBAC9D,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;mBAC9B;eACF;mBACI;kBACH,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;eAC9B;WAEF;UACD,WAAW,EAAX,UAAY,MAAoB,EAAE,IAAU,EAAE,KAAa;cACzD,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;WAC5B;UACD,UAAU,EAAV,UAAW,GAAW,EAAE,KAAa;cACnC,IAAI,CAAC,GAAG,CAAC;kBACP,OAAO,EAAE,GAAG;kBACZ,SAAS,EAAE,KAAK;eACjB,CAAC,CAAA;cACF,IAAI,CAAC,IAAI,CACP,MAAM,EACN;kBACE,GAAG,KAAA;kBACH,KAAK,OAAA;eACN,CACF,CAAA;WACF;UAED,kBAAkB,EAAlB,UAAmB,UAAkB;cAEnC,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;cACjC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;kBAC/B,OAAM;eACP;cAED,IAAI,SAAS,GAAa,EAAE,EAAE,QAAQ,GAAa,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAA;cAEnE,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,OAAO,EACP,UAAU,GAAQ,EAAE,KAAK;kBACvB,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE;sBACjB,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAA;sBAC5B,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAA;mBACtB;uBACI,IAAI,GAAG,CAAC,GAAG,KAAK,WAAW,EAAE;sBAChC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;sBACrB,QAAQ,IAAI,EAAE,CAAA;mBACf;uBACI;sBACH,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;mBACrB;eACF,CACF,CAAA;cAED,UAAU,IAAI,QAAQ,CAAA;cAEtB,IAAI,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAA;cAC7B,IAAI,UAAU,GAAG,CAAC,IAAI,OAAO,EAAE;kBAC7B,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,QAAQ,EACR,UAAU,KAAK;sBACb,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,CAAA;sBAC/C,SAAS,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAA;sBAC3B,UAAU,IAAI,QAAQ,CAAA;sBACtB,OAAO,EAAE,CAAA;mBACV,CACF,CAAA;eACF;cAED,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;WAEjC;OAEF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;UACJ,KAAK,OAAA;UACL,MAAM,QAAA;UACN,QAAQ,UAAA;OACT;MAED,UAAU,EAAV;UACE,IAAM,EAAE,GAAG,IAAI,CAAA;UACf,mBAAmB,CACjB,EAAE,CAAC,GAAG,EACN,UAAU,IAAS;cACjB,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;WAClC,CACF,CAAA;OACF;GAEF,CAAC,CAAA;;ECtQF,IAAI,QAAQ,GAAG,SAAS,CAAA;EAExB,SAAS,GAAG,CAAC,KAAoB;MAE/B,IAAM,QAAQ,GAAG,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;MACpD,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAA;MAErB,QAAQ,GAAG,IAAI,GAAG,CAChB,GAAG,CAAC,MAAM,CAAC,MAAM,CACf;UACE,EAAE,EAAE,IAAI;UACR,KAAK,EAAE,QAAQ;OAChB,EACD,UAAU,CACX,CACF,CAAA;MAED,OAAO,QAAQ,CAAA;EAEjB,CAAC;EAED,SAAS,MAAM;MACb,IAAI,QAAQ,EAAE;UACZ,QAAQ,CAAC,OAAO,EAAE,CAAA;UAClB,QAAQ,GAAG,SAAS,CAAA;OACrB;EACH,CAAC;EAEA,GAAG,CAAC,SAAiB,CAAC,WAAW,GAAG;;MAEnC,KAAK,EAAL,UAAM,OAAgB;UACpB,IAAI,QAAQ,EAAE;cACZ,MAAM,EAAE,CAAA;WACT;UACD,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;OACpB;;MAED,MAAM;UACJ,IAAI,QAAQ,EAAE;cACZ,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;cAC5B,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;WACxB;OACF;;MAED,MAAM,EAAN,UAAO,IAAY;UACjB,IAAI,QAAQ,EAAE;cACZ,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;WACnB;OACF;GACF,CAAA;;;;ECrCD,IAAMA,eAAa,GAAG,sBAA0B,CAAA;EAChD,IAAMC,YAAU,GAAG,mBAAuB,CAAA;AAE1C,gBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,cAAkB;MAExB,SAAS,EAAE;UACT,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC;cAC7B,KAAK,EAAE,aAAa;WACrB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,UAAU;cAChB,QAAQ,EAAE,IAAI;WACf;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,IAAI;WACZ;UACD,GAAG,EAAE;cACH,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,EAAE;WACV;UACD,GAAG,EAAE;cACH,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,EAAE;WACV;OACF;MAED,IAAI;UACF,OAAO;cACL,SAAS,EAAE,KAAK;cAChB,SAAS,EAAE,CAAC;WACb,CAAA;OACF;MAED,QAAQ,EAAE;UACR,QAAQ,EAAR;cACE,OAAO,iBAAiB,CACtB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CACnB,CAAA;WACF;OACF;MAED,OAAO,EAAE;UACP,IAAI,EAAJ,UAAK,QAAgB;cAEnB,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;kBACxB,OAAM;eACP;cAED,IAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAA;cACtB,IAAI,OAAO,EAAE;kBACX,IAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;kBACrC,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAA;kBACxD,EAAE,CAAC,GAAG,CAAC;sBACL,SAAS,WAAA;mBACV,CAAC,CAAA;kBACF,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;eACvC;WAEF;UACD,IAAI,EAAJ,UAAK,MAAc,EAAE,KAAa;cAEhC,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;kBACvB,OAAM;eACP;cAED,IAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;cACrC,IAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,GAAG,GAAG,CAAA;cAE5D,EAAE,CAAC,GAAG,CAAC;kBACL,SAAS,EAAE,IAAI;kBACf,SAAS,EAAE,GAAG;eACf,CAAC,CAAA;cAEF,IAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAA;cACtB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAED,eAAa,CAAC,CAAA;cACxC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;cAEhC,UAAU,CACR;kBACE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;sBACX,OAAM;mBACP;kBAED,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAEC,YAAU,CAAC,CAAA;kBAErC,IAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;kBAC7C,IAAI,QAAQ,GAAG,CAAC,EAAE;sBAChB,UAAU,CACR;0BACE,IAAI,EAAE,CAAC,GAAG,EAAE;8BACV,EAAE,CAAC,IAAI,EAAE,CAAA;2BACV;uBACF,EACD,QAAQ,CACT,CAAA;mBACF;eACF,EACD,EAAE,CACH,CAAA;WAEF;UACD,IAAI;cAEF,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;kBACxB,OAAM;eACP;cAED,EAAE,CAAC,GAAG,CAAC;kBACL,SAAS,EAAE,KAAK;eACjB,CAAC,CAAA;cAEF,IAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAA;cACtB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAEA,YAAU,CAAC,CAAA;cAExC,eAAe,CACb,OAAO,EACP;kBACE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;sBACX,OAAM;mBACP;kBACD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAED,eAAa,CAAC,CAAA;kBAC3C,EAAE,CAAC,IAAI,CAAC;sBACN,IAAI,EAAE,MAAM;sBACZ,EAAE,EAAE,SAAS;mBACd,CAAC,CAAA;eACH,CACF,CAAA;WAEF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF;;ECpKD,IAAM,GAAG,GAA2B,EAAE,CAAA;AAEtC,WAAgB,YAAY,CAAC,SAAe,EAAE,KAAW,EAAE,SAAiB,EAAE,OAAwB;MAEpG,IAAM,QAAQ,GAAQ,IAAI,GAAG,CAC3B,GAAG,CAAC,MAAM,CAAC,MAAM,CACf;UACE,EAAE,EAAE,IAAI;UACR,KAAK,OAAA;OACN,EACD,SAAS,CACV,CACF,CAAA;MAED,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE;UAErB,IAAI,OAAO,EAAE;cACX,OAAO,EAAE,CAAA;WACV;UACD,QAAQ,CAAC,OAAO,EAAE,CAAA;;UAGlB,IAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,CAAA;UACnC,IAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,CAAA;UACrC,IAAI,OAAO,GAAgB,SAAS,CAAA;UACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;cACnD,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;cACxB,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;kBAC9B,OAAO,GAAG,IAAI,CAAA;kBACd,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;eAC1B;mBACI,IAAI,OAAO,EAAE;;kBAEhB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;eACnC;WACF;OAEF,CAAC,CAAA;MAEF,UAAU,CACR;UACE,IAAI,QAAQ,CAAC,GAAG,EAAE;cAEhB,IAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAA;cAEpD,IAAI,MAAM,GAAG,CAAC,CAAA;cACd,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;cAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;kBAC9B,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;eACzB;;cAGD,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;cAE5B,IAAI,CAAC,IAAI,CAAC;kBACR,QAAQ,UAAA;kBACR,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,YAAY;eAClC,CAAC,CAAA;WAEH;OACF,EACD,GAAG,CACJ,CAAA;EAEH,CAAC;;EC5DD,IAAM,MAAM,GAAS,EAAE,CAAA;EAEvB,SAAS,UAAU,CAAC,MAAc,EAAE,GAAiB;MAEnD,IAAM,KAAK,GAAS,EAAE,MAAM,QAAA,EAAE,CAAA;MAC9B,IAAI,OAAwB,CAAA;MAE5B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;MAEhC,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;UACtB,KAAK,CAAC,OAAO,GAAG,GAAa,CAAA;OAC9B;WACI;UACH,OAAO,GAAI,GAAW,CAAC,OAAO,CAAA;UAC9B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAU,CAAC,CAAA;OACrC;MAED,YAAY,CACV,OAAO,EACP,KAAK,EACL,cAAc,EACd,OAAO,CACR,CAAA;EAEH,CAAC;EAEA,GAAG,CAAC,SAAiB,CAAC,QAAQ,GAAG;MAChC,OAAO,EAAP,UAAQ,GAAiB;UACvB,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;OAC3B;MACD,IAAI,EAAJ,UAAK,GAAiB;UACpB,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;OACxB;MACD,OAAO,EAAP,UAAQ,GAAiB;UACvB,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;OAC3B;MACD,KAAK,EAAL,UAAM,GAAiB;UACrB,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;OACzB;MACD,MAAM,EAAN,UAAO,GAGN;UACC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;OAC/B;GACF,CAAA;;;;AClCD,gBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,YAAgB;MAEtB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,UAAU;cAChB,QAAQ,EAAE,IAAI;WACf;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG;WACtC;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,MAAM;WACd;UACD,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,gBAAgB;WACxB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,YAAY;WACnB;OACF;MAED,IAAI;UACF,OAAO;cACL,QAAQ,EAAE,iBAAiB,CAAC,aAAa,CAAC;WAC3C,CAAA;OACF;MAED,MAAM,EAAE;UACN,MAAM,EAAE;cACN,QAAQ,YAAC,KAAK;kBACZ,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,IAAI,CAAC,OAAO,EAAE,CAAA;eACf;cACD,EAAE,EAAE,QAAQ;WACb;OACF;MAED,OAAO,EAAE;UACP,EAAE,EAAF;cACG,IAAI,CAAC,KAAK,CAAC,MAAc,CAAC,KAAK,EAAE,CAAA;cAClC,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC7B,IAAI,IAAI,EAAE;kBACR,IAAI,EAAE,CAAA;eACP;WACF;OACF;MAED,UAAU,EAAE;UACV,MAAM,QAAA;UACN,MAAM,QAAA;OACP;MAED,UAAU,EAAV;UACE,IAAM,EAAE,GAAG,IAAI,CAAA;UACf,UAAU,CACR;cACE,IAAI,EAAE,CAAC,KAAK,EAAE;kBACX,EAAE,CAAC,KAAK,CAAC,MAAc,CAAC,IAAI,EAAE,CAAA;eAChC;WACF,EACD,EAAE,CACH,CAAA;OACF;GAEF;;;;AC9ED,gBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,cAAkB;MAExB,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,UAAU;cAChB,QAAQ,EAAE,IAAI;WACf;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;WAClB;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG;WACtC;UACD,MAAM,EAAE;cACN,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,IAAI;WACZ;UACD,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;cAC3B,KAAK,EAAE,gBAAgB;WACxB;UACD,IAAI,EAAE;cACJ,IAAI,EAAE,YAAY;WACnB;UACD,UAAU,EAAE;cACV,IAAI,EAAE,UAAU;cAChB,KAAK,EAAE,IAAI;WACZ;UACD,UAAU,EAAE;cACV,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;WAC5B;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,YAAY;WACnB;OACF;MAED,IAAI;UACF,OAAO;cACL,QAAQ,EAAE,iBAAiB,CAAC,gBAAgB,CAAC;WAC9C,CAAA;OACF;MAED,MAAM,EAAE;UACN,MAAM,EAAE;cACN,QAAQ,YAAC,KAAK;kBACZ,KAAK,CAAC,IAAI,EAAE,CAAA;kBACZ,IAAI,CAAC,OAAO,EAAE,CAAA;eACf;cACD,EAAE,EAAE,QAAQ;WACb;OACF;MAED,OAAO,EAAE;UACP,EAAE,EAAF;cACG,IAAI,CAAC,KAAK,CAAC,MAAc,CAAC,KAAK,EAAE,CAAA;cAClC,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAC7B,IAAI,IAAI,EAAE;kBACR,IAAI,EAAE,CAAA;eACP;WACF;UACD,MAAM,EAAN;cACG,IAAI,CAAC,KAAK,CAAC,MAAc,CAAC,KAAK,EAAE,CAAA;cAClC,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;cACrC,IAAI,QAAQ,EAAE;kBACZ,QAAQ,EAAE,CAAA;eACX;WACF;OACF;MAED,UAAU,EAAE;UACV,MAAM,QAAA;UACN,MAAM,QAAA;OACP;MAED,UAAU,EAAV;UACE,IAAM,EAAE,GAAG,IAAI,CAAA;UACf,UAAU,CACR;cACE,IAAI,EAAE,CAAC,KAAK,EAAE;kBACX,EAAE,CAAC,KAAK,CAAC,MAAc,CAAC,IAAI,EAAE,CAAA;eAChC;WACF,EACD,EAAE,CACH,CAAA;OACF;GAEF;;EC5GD,IAAM,SAAS,GAAG,GAAG,CAAC,SAAgB,CAAA;EAEtC,SAAS,CAAC,MAAM,GAAG,UAAU,IAAS;MAEpC,IAAM,KAAK,GAAS,EAAE,CAAA;MAEtB,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;UACvB,IAAM,GAAG,GAAG,IAAY,CAAA;UACxB,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;UAC7B,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;UACvB,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;UAC3B,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;UACvB,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;UACzB,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;UACzB,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;OACtB;WACI;UACH,KAAK,CAAC,OAAO,GAAG,IAAc,CAAA;OAC/B;MAED,IAAI,GAAG,CACL,GAAG,CAAC,MAAM,CAAC,MAAM,CACf;UACE,EAAE,EAAE,IAAI;UACR,KAAK,OAAA;OACN,EACDK,OAAK,CACN,CACF,CAAA;EAEH,CAAC,CAAA;EAED,SAAS,CAAC,QAAQ,GAAG,UAAU,IAAS;MAEtC,IAAM,KAAK,GAAS,EAAE,CAAA;MAEtB,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;UACvB,IAAM,GAAG,GAAG,IAAY,CAAA;UACxB,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;UAC7B,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;UACvB,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;UAC3B,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;UACvB,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;UACzB,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;UACzB,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;UACrB,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;UACjC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;UACjC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;OAC9B;WACI;UACH,KAAK,CAAC,OAAO,GAAG,IAAc,CAAA;OAC/B;MAED,IAAI,GAAG,CACL,GAAG,CAAC,MAAM,CAAC,MAAM,CACf;UACE,EAAE,EAAE,IAAI;UACR,KAAK,OAAA;OACN,EACD,OAAO,CACR,CACF,CAAA;EAEH,CAAC,CAAA;;;;ECjDD,IAAML,eAAa,GAAG,2BAA+B,CAAA;EACrD,IAAMC,YAAU,GAAG,wBAA4B,CAAA;AAE/C,qBAAe,GAAG,CAAC,MAAM,CAAC;MAExB,QAAQ,aAAA;MAER,IAAI,EAAE,mBAAuB;MAE7B,SAAS,EAAE;UACT,KAAK,EAAE;cACL,IAAI,EAAE,UAAU;WACjB;UACD,OAAO,EAAE;cACP,IAAI,EAAE,UAAU;WACjB;UACD,MAAM,EAAE;cACN,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC;WAC9B;UACD,QAAQ,EAAE;cACR,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,IAAI;WACZ;UACD,GAAG,EAAE;cACH,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,EAAE;WACV;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,EAAE;WACV;UACD,KAAK,EAAE;cACL,IAAI,EAAE,WAAW;cACjB,KAAK,EAAE,GAAG;WACX;OACF;MAED,IAAI;UACF,OAAO;cACL,SAAS,EAAE,KAAK;cAChB,SAAS,EAAE,CAAC;WACb,CAAA;OACF;MAED,QAAQ,EAAE;UACR,QAAQ,EAAR;cACE,OAAO,iBAAiB,CACtB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CACnB,CAAA;WACF;OACF;MAED,OAAO,EAAE;UACP,IAAI,EAAJ,UAAK,QAAgB;cAEnB,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;kBACxB,OAAM;eACP;cAED,IAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAA;cACtB,IAAI,OAAO,EAAE;kBACX,IAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;kBACrC,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAA;kBACxD,EAAE,CAAC,GAAG,CAAC;sBACL,SAAS,WAAA;mBACV,CAAC,CAAA;kBACF,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;eACvC;WAEF;UACD,IAAI,EAAJ,UAAK,MAAc,EAAE,KAAa;cAEhC,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;kBACvB,OAAM;eACP;cAED,IAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;cACrC,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;cACzC,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;cACzC,IAAM,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,KAAK,GAAG,GAAG,CAAA;cAErC,EAAE,CAAC,GAAG,CAAC;kBACL,SAAS,EAAE,IAAI;kBACf,SAAS,EAAE,GAAG;eACf,CAAC,CAAA;cAEF,IAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAA;cACtB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAED,eAAa,CAAC,CAAA;cACxC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;cAChC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;cACpC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;cAEpC,UAAU,CACR;kBACE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;sBACX,OAAM;mBACP;kBAED,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAEC,YAAU,CAAC,CAAA;kBAErC,IAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;kBAC7C,IAAI,QAAQ,GAAG,CAAC,EAAE;sBAChB,UAAU,CACR;0BACE,IAAI,EAAE,CAAC,GAAG,EAAE;8BACV,EAAE,CAAC,IAAI,EAAE,CAAA;2BACV;uBACF,EACD,QAAQ,CACT,CAAA;mBACF;eACF,EACD,EAAE,CACH,CAAA;WAEF;UAED,IAAI;cAEF,IAAM,EAAE,GAAG,IAAI,CAAA;cACf,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;kBACxB,OAAM;eACP;cAED,EAAE,CAAC,GAAG,CAAC;kBACL,SAAS,EAAE,KAAK;eACjB,CAAC,CAAA;cAEF,IAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAA;cACtB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAEA,YAAU,CAAC,CAAA;cAExC,eAAe,CACb,OAAO,EACP;kBACE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;sBACX,OAAM;mBACP;kBACD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAED,eAAa,CAAC,CAAA;kBAC3C,EAAE,CAAC,IAAI,CAAC;sBACN,IAAI,EAAE,MAAM;sBACZ,EAAE,EAAE,cAAc;mBACnB,CAAC,CAAA;eACH,CACF,CAAA;WAEF;OACF;MAED,UAAU,EAAE;UACV,IAAI,MAAA;OACL;GAEF;;EC7JD,IAAIM,QAAM,GAAW,EAAE,CAAA;EAEvB,SAAS,eAAe,CAAC,MAAc,EAAE,GAAiB;MAExD,IAAI,KAAK,GAAS,EAAE,MAAM,QAAA,EAAE,CAAA;MAC5B,IAAI,OAAwB,CAAA;;MAG5B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAEA,QAAM,CAAC,CAAA;MAEhC,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;UACtB,KAAK,CAAC,OAAO,GAAG,GAAG,CAAA;OACpB;WACI;UACH,OAAO,GAAI,GAAW,CAAC,OAAO,CAAA;UAC9B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAU,CAAC,CAAA;OACrC;MAED,YAAY,CACV,YAAY,EACZ,KAAK,EACL,mBAAmB,EACnB,OAAO,CACR,CAAA;EAEH,CAAC;EAEA,GAAG,CAAC,SAAiB,CAAC,aAAa,GAAG;MACrC,IAAI,EAAJ,UAAK,KAAmB;UACtB,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;OAC3B;MACD,OAAO,EAAP,UAAQ,KAAmB;UACzB,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;OAClC;MACD,IAAI,EAAJ,UAAK,KAAmB;UACtB,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;OAC/B;MACD,OAAO,EAAP,UAAQ,KAAmB;UACzB,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;OAClC;MACD,KAAK,EAAL,UAAM,KAAmB;UACvB,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;OAChC;MACD,MAAM,EAAN,UAAO,OAAe;UACpB,GAAG,CAAC,MAAM,CAAC,MAAM,CAACA,QAAM,EAAE,OAAO,CAAC,CAAA;OACnC;GACF,CAAA;;ECsDD;;;AAGA,MAAa,OAAO,GAAG,QAAwB,CAAA;EAE/C;;;AAGA,WAAgB,OAAO,CAAC,GAAQ;MAC9B,GAAG,CAAC,SAAS,CAAC;UACZ,GAAG,KAAA;UACH,GAAG,KAAA;UACH,GAAG,KAAA;UACH,WAAW,aAAA;UACX,SAAS,WAAA;UACT,QAAQ,UAAA;UACR,SAAS,WAAA;UACT,cAAc,kBAAA;UAEd,IAAI,MAAA;UACJ,QAAQ,UAAA;UACR,SAAS,WAAA;UACT,OAAO,SAAA;UACP,IAAI,MAAA;UACJ,IAAI,MAAA;UACJ,MAAM,QAAA;UACN,KAAK,OAAA;UAEL,UAAU,YAAA;UACV,cAAc,gBAAA;UAEd,MAAM,QAAA;UACN,WAAW,aAAA;UACX,KAAK,OAAA;UACL,WAAW,aAAA;UACX,QAAQ,UAAA;UACR,KAAK,OAAA;UACL,UAAU,YAAA;UACV,QAAQ,UAAA;UACR,aAAa,eAAA;UACb,WAAW,aAAA;UACX,MAAM,QAAA;UACN,KAAK,OAAA;UACL,SAAS,WAAA;UACT,MAAM,QAAA;UACN,QAAQ,UAAA;UACR,KAAK,OAAA;UACL,IAAI,MAAA;UACJ,MAAM,QAAA;UACN,MAAM,QAAA;UACN,WAAW,aAAA;UACX,UAAU,YAAA;UACV,UAAU,YAAA;UACV,UAAU,YAAA;UACV,WAAW,aAAA;UACX,KAAK,SAAA;UACL,MAAM,QAAA;UAEN,OAAO,SAAA;UAEP,KAAK,OAAA;UACL,OAAO,SAAA;UACP,QAAQ,UAAA;UACR,aAAa,eAAA;UACb,IAAI,MAAA;UACJ,WAAW,aAAA;UACX,OAAO,SAAA;UACP,MAAM,QAAA;UACN,KAAK,OAAA;UAEL,IAAI,MAAA;UACJ,UAAU,YAAA;UACV,SAAS,WAAA;UACT,QAAQ,UAAA;UACR,UAAU,YAAA;UAEV,QAAQ,UAAA;UAER,UAAU,YAAA;UACV,MAAM,QAAA;UACN,YAAY,cAAA;UACZ,aAAa,eAAA;UACb,YAAY,cAAA;UACZ,WAAW,aAAA;UAEX,QAAQ,UAAA;UACR,QAAQ,UAAA;UACR,YAAY,cAAA;UACZ,IAAI,MAAA;UACJ,IAAI,MAAA;UACJ,QAAQ,UAAA;UACR,KAAK,OAAA;UACL,MAAM,QAAA;UACN,SAAS,WAAA;UACT,OAAO,SAAA;UACP,MAAM,QAAA;UACN,QAAQ,UAAA;UACR,OAAO,SAAA;UACP,UAAU,YAAA;UACV,IAAI,MAAA;UACJ,GAAG,KAAA;UACH,IAAI,MAAA;UACJ,IAAI,MAAA;UACJ,QAAQ,UAAA;UAER,QAAQ,UAAA;UACR,YAAY,cAAA;UACZ,YAAY,cAAA;UAEZ,WAAW,aAAA;UACX,eAAe,iBAAA;UAEf,QAAQ,UAAA;UACR,YAAY,cAAA;UACZ,IAAI,MAAA;UACJ,QAAQ,UAAA;UACR,MAAM,QAAA;UACN,KAAK,OAAA;OACN,CAAC,CAAA;EACJ,CAAC;;;;;;;;;;;;;"}