@kne/react-calendar 1.0.6 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/locale/zh-CN.js","../src/locale/en-US.js","../src/withLocale.js","../src/constants.js","../src/useStackedPanelLayout.js","../src/utils.js","../src/rules.js","../src/events.js","../src/formatCalendarLabels.js","../src/components/Header/NavIcon.js","../src/components/Header/constants.js","../src/components/Header/YearPickerPanel.js","../src/components/Header/MonthPickerPanel.js","../src/components/Header/index.js","../src/useStackedLayout.js","../src/components/DateCell/index.js","../src/components/EventItem/getEventTagLabel.js","../src/components/EventItem/index.js","../src/components/Panel/PanelTitle.js","../src/components/Panel/PanelScrollShadow.js","../src/components/Panel/usePanelScrollShadow.js","../src/components/Panel/ViewPanel.js","../src/useScheduleSelectionGesture.js","../src/components/SchedulePanel/DefaultFormInner.js","../src/components/SchedulePanel/SlotEvents.js","../src/components/SchedulePanel/SlotItem.js","../src/components/SchedulePanel/index.js","../src/ScheduleCalendar.js"],"sourcesContent":["const locale = {\n 'Header.today': '今天',\n 'Header.prevMonth': '上一月',\n 'Header.nextMonth': '下一月',\n 'Header.prevYearPage': '上一组年份',\n 'Header.nextYearPage': '下一组年份',\n 'Header.yearLabel': '{year}年',\n 'Header.monthLabel': '{monthName}',\n 'Header.monthPickerItem': '{monthName}',\n 'PanelTitle.dateLabel': '{year}年{monthName}{day}日',\n 'PanelTitle.eventCount': '共 {count} 个日程',\n 'ViewPanel.empty': '暂无日程',\n 'SchedulePanel.selectFreeSlot': '选择空闲时间段',\n 'SchedulePanel.newSchedule': '新增日程:{range}',\n 'SchedulePanel.cancel': '取消',\n 'SchedulePanel.save': '保存',\n 'SlotItem.disabled': '不可选',\n 'SlotItem.occupied': '已占用',\n 'DefaultFormInner.title': '标题',\n 'DefaultFormInner.titlePlaceholder': '请输入日程标题',\n 'DefaultFormInner.detail': '详情',\n 'DefaultFormInner.detailPlaceholder': '请输入日程详情',\n 'Calendar.month.1': '1月',\n 'Calendar.month.2': '2月',\n 'Calendar.month.3': '3月',\n 'Calendar.month.4': '4月',\n 'Calendar.month.5': '5月',\n 'Calendar.month.6': '6月',\n 'Calendar.month.7': '7月',\n 'Calendar.month.8': '8月',\n 'Calendar.month.9': '9月',\n 'Calendar.month.10': '10月',\n 'Calendar.month.11': '11月',\n 'Calendar.month.12': '12月'\n};\n\nexport default locale;\n","const locale = {\n 'Header.today': 'Today',\n 'Header.prevMonth': 'Previous month',\n 'Header.nextMonth': 'Next month',\n 'Header.prevYearPage': 'Previous years',\n 'Header.nextYearPage': 'Next years',\n 'Header.yearLabel': '{year}',\n 'Header.monthLabel': '{monthName}',\n 'Header.monthPickerItem': '{monthName}',\n 'PanelTitle.dateLabel': '{monthName} {day}, {year}',\n 'PanelTitle.eventCount': '{count} events',\n 'ViewPanel.empty': 'No events',\n 'SchedulePanel.selectFreeSlot': 'Select an available time slot',\n 'SchedulePanel.newSchedule': 'New event: {range}',\n 'SchedulePanel.cancel': 'Cancel',\n 'SchedulePanel.save': 'Save',\n 'SlotItem.disabled': 'Unavailable',\n 'SlotItem.occupied': 'Occupied',\n 'DefaultFormInner.title': 'Title',\n 'DefaultFormInner.titlePlaceholder': 'Enter event title',\n 'DefaultFormInner.detail': 'Details',\n 'DefaultFormInner.detailPlaceholder': 'Enter event details',\n 'Calendar.month.1': 'Jan',\n 'Calendar.month.2': 'Feb',\n 'Calendar.month.3': 'Mar',\n 'Calendar.month.4': 'Apr',\n 'Calendar.month.5': 'May',\n 'Calendar.month.6': 'Jun',\n 'Calendar.month.7': 'Jul',\n 'Calendar.month.8': 'Aug',\n 'Calendar.month.9': 'Sep',\n 'Calendar.month.10': 'Oct',\n 'Calendar.month.11': 'Nov',\n 'Calendar.month.12': 'Dec'\n};\n\nexport default locale;\n","import { createWithIntlProvider } from '@kne/react-intl';\nimport zhCN from './locale/zh-CN';\nimport enUS from './locale/en-US';\n\nconst withLocale = createWithIntlProvider({\n defaultLocale: 'zh-CN',\n messages: {\n 'zh-CN': zhCN,\n 'en-US': enUS\n },\n namespace: 'react-calendar'\n});\n\nexport default withLocale;\n","export const DATE_FORMAT = 'YYYY-MM-DD';\nexport const TIME_FORMAT = 'HH:mm';\n/** Stack panels vertically when container width is below this value (px). */\nexport const LAYOUT_STACK_BREAKPOINT = 560;\n/** Minimum panel viewport height in stacked layout (px), aligned with root min-height. */\nexport const LAYOUT_MIN_HEIGHT = 560;\n","import { useLayoutEffect, useState } from 'react';\nimport { LAYOUT_MIN_HEIGHT } from './constants';\n\nconst measureHeight = node => {\n if (!node) {\n return 0;\n }\n return Math.ceil(node.getBoundingClientRect().height);\n};\n\nexport const useStackedPanelLayout = (rootRef, calendarRef, stacked) => {\n const [layoutStyle, setLayoutStyle] = useState(undefined);\n\n useLayoutEffect(() => {\n if (!stacked) {\n setLayoutStyle(undefined);\n return undefined;\n }\n\n const root = rootRef.current;\n const calendar = calendarRef.current;\n if (!root || !calendar) {\n return undefined;\n }\n\n const update = () => {\n const calendarHeight = measureHeight(calendar);\n const panelViewportHeight = Math.max(calendarHeight, LAYOUT_MIN_HEIGHT);\n const totalHeight = calendarHeight + panelViewportHeight;\n setLayoutStyle({\n height: totalHeight,\n '--schedule-panel-top': `${calendarHeight}px`,\n '--schedule-panel-height': `${panelViewportHeight}px`\n });\n };\n\n update();\n\n if (typeof ResizeObserver === 'undefined') {\n window.addEventListener('resize', update);\n return () => window.removeEventListener('resize', update);\n }\n\n const observer = new ResizeObserver(update);\n observer.observe(calendar);\n observer.observe(root);\n return () => observer.disconnect();\n }, [calendarRef, rootRef, stacked]);\n\n return layoutStyle;\n};\n\nexport default useStackedPanelLayout;\n","import dayjs from 'dayjs';\nimport useControlValue from '@kne/use-control-value';\nimport { DATE_FORMAT, TIME_FORMAT } from './constants';\n\nexport const classNames = (...list) =>\n list\n .flatMap(item => {\n if (!item) {\n return [];\n }\n if (typeof item === 'string') {\n return [item];\n }\n return Object.keys(item).filter(key => item[key]);\n })\n .join(' ');\n\nexport const toDayjs = value => {\n if (!value) {\n return null;\n }\n const date = dayjs(value);\n return date.isValid() ? date : null;\n};\n\nexport const parseDayTime = (date, time) => {\n const day = toDayjs(date) || dayjs();\n const parsed = dayjs(`${day.format(DATE_FORMAT)} ${time}`, `${DATE_FORMAT} ${TIME_FORMAT}`);\n return parsed.isValid() ? parsed : day.startOf('day');\n};\n\nexport const formatRange = (start, end) => `${dayjs(start).format(TIME_FORMAT)} - ${dayjs(end).format(TIME_FORMAT)}`;\n\nexport const getDefaultFormValues = (defaultFormValues, ctx) => {\n if (typeof defaultFormValues === 'function') {\n return defaultFormValues(ctx);\n }\n return {\n title: '',\n detail: '',\n ...(defaultFormValues || {})\n };\n};\n\nexport const sortEventsByStart = events =>\n [...(events || [])].sort((a, b) => {\n const aStart = toDayjs(a.start)?.valueOf() ?? 0;\n const bStart = toDayjs(b.start)?.valueOf() ?? 0;\n return aStart - bStart;\n });\n\nexport const dedupeEventsById = events => {\n const map = new Map();\n (events || []).forEach(event => {\n map.set(event.id, event);\n });\n return [...map.values()];\n};\n\nexport const useControlledState = ({ value, defaultValue, onChange }) => {\n const props = {};\n if (typeof value !== 'undefined') {\n props.value = value;\n }\n if (typeof defaultValue !== 'undefined') {\n props.defaultValue = defaultValue;\n }\n if (onChange) {\n props.onChange = onChange;\n }\n return useControlValue(props);\n};\n","const getRuleDisabled = (result, defaultReason) => {\n if (!result) {\n return null;\n }\n if (typeof result === 'boolean') {\n return result ? { disabled: true, reason: defaultReason } : null;\n }\n if (result.disabled) {\n return { disabled: true, reason: result.reason || defaultReason };\n }\n return null;\n};\n\nexport const checkRule = ({ date, slot, mode, disabledDate, disabledDateTime, availableDateTime }) => {\n if (disabledDate?.(date.toDate())) {\n return { disabled: true };\n }\n const ctx = {\n date: date.toDate(),\n mode,\n ...(slot\n ? {\n slot: {\n start: slot.start.toDate(),\n end: slot.end.toDate()\n }\n }\n : {})\n };\n const disabledResult = getRuleDisabled(disabledDateTime?.(ctx));\n if (disabledResult) {\n return disabledResult;\n }\n if (availableDateTime && !availableDateTime(ctx)) {\n return { disabled: true };\n }\n return null;\n};\n","import dayjs from 'dayjs';\nimport { DATE_FORMAT, TIME_FORMAT } from './constants';\nimport { parseDayTime, toDayjs } from './utils';\nimport { checkRule } from './rules';\n\nexport const normalizeEvent = event => {\n const start = toDayjs(event.start || event.date);\n const end = toDayjs(event.end || event.start || event.date);\n return {\n ...event,\n start,\n end: end && start && !end.isAfter(start) ? start.add(1, 'minute') : end\n };\n};\n\nexport const groupEventsByDate = events => {\n return (events || []).reduce((result, event) => {\n const normalized = normalizeEvent(event);\n if (!normalized.start || !normalized.end) {\n return result;\n }\n const startOfDay = normalized.start.startOf('day');\n const endOfDay = normalized.end.startOf('day');\n let current = startOfDay;\n while (current.isBefore(endOfDay) || current.isSame(endOfDay, 'day')) {\n const key = current.format(DATE_FORMAT);\n result[key] = result[key] || [];\n result[key].push(normalized);\n current = current.add(1, 'day');\n }\n return result;\n }, {});\n};\n\nconst getOverlappingEvents = (slotStart, slotEnd, sortedEvents) => {\n const matched = [];\n for (const event of sortedEvents) {\n if (!event.end.isAfter(slotStart)) {\n continue;\n }\n if (!event.start.isBefore(slotEnd)) {\n break;\n }\n matched.push(event);\n }\n return matched;\n};\n\nexport const generateTimeSlots = ({ date, events, timeUnit = 30, dayStart = '09:00', dayEnd = '18:00', disabledDate, disabledDateTime, availableDateTime, mode = 'schedule' }) => {\n const selectedDate = toDayjs(date) || dayjs();\n const startAt = parseDayTime(selectedDate, dayStart);\n const endAt = parseDayTime(selectedDate, dayEnd);\n if (!startAt.isBefore(endAt)) {\n return [];\n }\n const normalizedEvents = (events || [])\n .map(normalizeEvent)\n .filter(event => event.start && event.end)\n .sort((a, b) => a.start.valueOf() - b.start.valueOf());\n const slots = [];\n let current = startAt;\n\n while (current.isBefore(endAt)) {\n const slotStart = current;\n const slotEnd = slotStart.add(timeUnit, 'minute');\n const matchedEvents = getOverlappingEvents(slotStart, slotEnd, normalizedEvents);\n const baseSlot = {\n key: `${slotStart.format(DATE_FORMAT)}-${slotStart.format(TIME_FORMAT)}`,\n date: slotStart.format(DATE_FORMAT),\n start: slotStart,\n end: slotEnd\n };\n const ruleResult = checkRule({\n date: selectedDate,\n slot: baseSlot,\n mode,\n disabledDate,\n disabledDateTime,\n availableDateTime\n });\n\n slots.push({\n ...baseSlot,\n start: slotStart.toDate(),\n end: slotEnd.toDate(),\n status: ruleResult ? 'disabled' : matchedEvents.length > 0 ? 'occupied' : 'free',\n disabledReason: ruleResult?.reason,\n events: matchedEvents\n });\n current = slotEnd;\n }\n return slots;\n};\n","import dayjs from 'dayjs';\nimport { toDayjs } from './utils';\n\nconst toDay = value => toDayjs(value) || dayjs();\n\nexport const getMonthName = (formatMessage, monthIndex) => formatMessage({ id: `Calendar.month.${monthIndex + 1}` });\n\nexport const getPanelDateLabel = (formatMessage, date) => {\n const d = toDay(date);\n const monthIndex = d.month();\n return formatMessage(\n { id: 'PanelTitle.dateLabel' },\n {\n year: d.year(),\n month: monthIndex + 1,\n day: d.date(),\n monthName: getMonthName(formatMessage, monthIndex)\n }\n );\n};\n\nexport const getHeaderMonthLabel = (formatMessage, date) => {\n const d = toDay(date);\n const monthIndex = d.month();\n return formatMessage(\n { id: 'Header.monthLabel' },\n {\n month: monthIndex + 1,\n monthName: getMonthName(formatMessage, monthIndex)\n }\n );\n};\n\nexport const getMonthPickerItemLabel = (formatMessage, value, monthIndex) =>\n formatMessage(\n { id: 'Header.monthPickerItem' },\n {\n month: monthIndex + 1,\n monthName: getMonthName(formatMessage, monthIndex)\n }\n );\n","import style from './style.module.scss';\n\nconst HeaderNavIcon = ({ direction, className }) => (\n <svg className={className || style['header-nav-icon']} viewBox=\"0 0 16 16\" aria-hidden focusable=\"false\">\n <path d={direction === 'prev' ? 'M10 4 L6 8 L10 12' : 'M6 4 L10 8 L6 12'} fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\n\nexport default HeaderNavIcon;\n","export const YEAR_PAGE_SIZE = 12;\n\nexport const getYearPageStart = year => Math.floor(year / YEAR_PAGE_SIZE) * YEAR_PAGE_SIZE;\n","import { useMemo } from 'react';\nimport { useIntl } from '@kne/react-intl';\nimport { classNames } from '../../utils';\nimport HeaderNavIcon from './NavIcon';\nimport { YEAR_PAGE_SIZE } from './constants';\nimport style from './style.module.scss';\n\nconst PickerPanelNav = ({ label, onClick, children }) => (\n <button type=\"button\" className={style['picker-panel-nav']} aria-label={label} onClick={onClick}>\n {children}\n </button>\n);\n\nconst YearPickerPanel = ({ value, pageStart, onPageStartChange, onSelect }) => {\n const { formatMessage } = useIntl();\n const years = useMemo(() => Array.from({ length: YEAR_PAGE_SIZE }, (_, index) => pageStart + index), [pageStart]);\n return (\n <div className={style['picker-panel']}>\n <div className={style['picker-panel-header']}>\n <PickerPanelNav label={formatMessage({ id: 'Header.prevYearPage' })} onClick={() => onPageStartChange(pageStart - YEAR_PAGE_SIZE)}>\n <HeaderNavIcon direction=\"prev\" className={style['picker-panel-nav-icon']} />\n </PickerPanelNav>\n <div className={style['picker-panel-range']}>\n {pageStart}-{pageStart + YEAR_PAGE_SIZE - 1}\n </div>\n <PickerPanelNav label={formatMessage({ id: 'Header.nextYearPage' })} onClick={() => onPageStartChange(pageStart + YEAR_PAGE_SIZE)}>\n <HeaderNavIcon direction=\"next\" className={style['picker-panel-nav-icon']} />\n </PickerPanelNav>\n </div>\n <div className={style['picker-panel-grid']}>\n {years.map(year => (\n <button key={year} type=\"button\" className={classNames(style['picker-cell'], { [style['picker-cell-active']]: year === value.year() })} onClick={() => onSelect(year)}>\n {year}\n </button>\n ))}\n </div>\n </div>\n );\n};\n\nexport default YearPickerPanel;\n","import { useMemo } from 'react';\nimport { useIntl } from '@kne/react-intl';\nimport { getMonthPickerItemLabel } from '../../formatCalendarLabels';\nimport { classNames } from '../../utils';\nimport style from './style.module.scss';\n\nconst MonthPickerPanel = ({ value, onSelect }) => {\n const { formatMessage } = useIntl();\n const months = useMemo(() => Array.from({ length: 12 }, (_, index) => index), []);\n return (\n <div className={style['picker-panel']}>\n <div className={style['picker-panel-grid']}>\n {months.map(month => (\n <button key={month} type=\"button\" className={classNames(style['picker-cell'], { [style['picker-cell-active']]: month === value.month() })} onClick={() => onSelect(month)}>\n {getMonthPickerItemLabel(formatMessage, value, month)}\n </button>\n ))}\n </div>\n </div>\n );\n};\n\nexport default MonthPickerPanel;\n","import { useEffect, useState } from 'react';\nimport dayjs from 'dayjs';\nimport { Button, Popover, Space } from 'antd';\nimport { useIntl } from '@kne/react-intl';\nimport { getHeaderMonthLabel } from '../../formatCalendarLabels';\nimport { toDayjs } from '../../utils';\nimport HeaderNavIcon from './NavIcon';\nimport YearPickerPanel from './YearPickerPanel';\nimport MonthPickerPanel from './MonthPickerPanel';\nimport { getYearPageStart } from './constants';\nimport style from './style.module.scss';\n\nconst HeaderNavButton = ({ label, onClick, children }) => (\n <button type=\"button\" className={style['header-nav']} aria-label={label} onClick={onClick}>\n {children}\n </button>\n);\n\nconst Header = ({ current, showTodayButton, onCurrentChange, onSelectToday }) => {\n const { formatMessage } = useIntl();\n const date = toDayjs(current) || dayjs();\n const [yearOpen, setYearOpen] = useState(false);\n const [monthOpen, setMonthOpen] = useState(false);\n const [yearPageStart, setYearPageStart] = useState(() => getYearPageStart(date.year()));\n const currentYear = date.year();\n const yearText = formatMessage({ id: 'Header.yearLabel' }, { year: date.year() });\n const monthText = getHeaderMonthLabel(formatMessage, date);\n\n useEffect(() => {\n if (yearOpen) {\n setYearPageStart(getYearPageStart(currentYear));\n }\n }, [yearOpen, currentYear]);\n\n const handleYearSelect = year => {\n onCurrentChange(date.year(year), { source: 'picker' });\n setYearOpen(false);\n };\n\n const handleMonthSelect = month => {\n onCurrentChange(date.month(month), { source: 'picker' });\n setMonthOpen(false);\n };\n\n return (\n <div className={style['calendar-header']}>\n <div className={style['calendar-title']}>\n <Popover\n open={yearOpen}\n onOpenChange={open => {\n setYearOpen(open);\n if (open) {\n setMonthOpen(false);\n }\n }}\n trigger=\"click\"\n placement=\"bottomLeft\"\n rootClassName={style['header-picker-popover']}\n content={<YearPickerPanel value={date} pageStart={yearPageStart} onPageStartChange={setYearPageStart} onSelect={handleYearSelect} />}\n >\n <button type=\"button\" className={style['calendar-title-part']}>\n {yearText}\n </button>\n </Popover>\n <Popover\n open={monthOpen}\n onOpenChange={open => {\n setMonthOpen(open);\n if (open) {\n setYearOpen(false);\n }\n }}\n trigger=\"click\"\n placement=\"bottomLeft\"\n rootClassName={style['header-picker-popover']}\n content={<MonthPickerPanel value={date} onSelect={handleMonthSelect} />}\n >\n <button type=\"button\" className={style['calendar-title-part']}>\n {monthText}\n </button>\n </Popover>\n </div>\n <Space size={4} className={style['header-actions']}>\n {showTodayButton ? (\n <Button className={style['header-today']} type=\"text\" size=\"small\" onClick={onSelectToday}>\n {formatMessage({ id: 'Header.today' })}\n </Button>\n ) : null}\n <HeaderNavButton label={formatMessage({ id: 'Header.prevMonth' })} onClick={() => onCurrentChange(date.subtract(1, 'month'), { source: 'prevMonth' })}>\n <HeaderNavIcon direction=\"prev\" />\n </HeaderNavButton>\n <HeaderNavButton label={formatMessage({ id: 'Header.nextMonth' })} onClick={() => onCurrentChange(date.add(1, 'month'), { source: 'nextMonth' })}>\n <HeaderNavIcon direction=\"next\" />\n </HeaderNavButton>\n </Space>\n </div>\n );\n};\n\nexport default Header;\n","import { useEffect, useLayoutEffect, useState } from 'react';\n\nconst readWidth = node => {\n if (!node) {\n return 0;\n }\n return node.getBoundingClientRect().width;\n};\n\nexport const useStackedLayout = (ref, stackAt) => {\n const [stacked, setStacked] = useState(false);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) {\n return;\n }\n setStacked(readWidth(node) < stackAt);\n }, [ref, stackAt]);\n\n useEffect(() => {\n const node = ref.current;\n if (!node) {\n return undefined;\n }\n\n const update = () => {\n setStacked(readWidth(node) < stackAt);\n };\n\n update();\n\n if (typeof ResizeObserver === 'undefined') {\n window.addEventListener('resize', update);\n return () => window.removeEventListener('resize', update);\n }\n\n const observer = new ResizeObserver(() => update());\n observer.observe(node);\n return () => observer.disconnect();\n }, [ref, stackAt]);\n\n return stacked;\n};\n\nexport default useStackedLayout;\n","import { Badge } from 'antd';\nimport { classNames } from '../../utils';\nimport style from './style.module.scss';\n\nconst DateCell = ({ date, dayEvents, selected, currentMonth, disabled, badgeMaxCount, renderDateCell }) => {\n const count = dayEvents.length;\n const customCell = renderDateCell?.(date.toDate(), {\n events: dayEvents,\n selected,\n currentMonth\n });\n if (customCell) {\n return customCell;\n }\n return (\n <div\n className={classNames(style['date-cell'], {\n [style['date-selected']]: selected,\n [style['date-muted']]: !currentMonth && !selected,\n [style['date-disabled']]: disabled && !selected,\n [style['date-has-events']]: count > 0 && !selected\n })}\n >\n <div className={style['date-number']}>{date.date()}</div>\n {count ? <Badge count={count > badgeMaxCount ? `${badgeMaxCount}+` : count} size=\"small\" /> : null}\n </div>\n );\n};\n\nexport default DateCell;\n","const getEventTagLabel = event => {\n if (!event.raw || typeof event.raw !== 'object') {\n return null;\n }\n const { label, type } = event.raw;\n if (typeof label === 'string' && label) {\n return label;\n }\n if (typeof type === 'string' && type) {\n return type;\n }\n return null;\n};\n\nexport default getEventTagLabel;\n","import { List, Tag } from 'antd';\nimport { classNames, formatRange } from '../../utils';\nimport getEventTagLabel from './getEventTagLabel';\nimport style from './style.module.scss';\n\nconst EventItem = ({ event, date, mode, renderEventItem, onEventClick }) => {\n if (renderEventItem) {\n return renderEventItem(event, { date, mode, onEventClick });\n }\n const clickable = !event.disabled && (typeof event.onClick === 'function' || typeof onEventClick === 'function');\n const handleClick = () => {\n if (typeof event.onClick === 'function') {\n event.onClick(event, { date, mode });\n return;\n }\n onEventClick?.(event, { date, mode });\n };\n const tagLabel = getEventTagLabel(event);\n return (\n <List.Item className={style['event-list-item']}>\n <div\n className={classNames(style['event-item'], {\n [style['event-item-clickable']]: clickable,\n [style['event-item-disabled']]: event.disabled\n })}\n role={clickable ? 'button' : undefined}\n tabIndex={clickable ? 0 : undefined}\n onClick={clickable ? handleClick : undefined}\n onKeyDown={\n clickable\n ? eventKey => {\n if (eventKey.key === 'Enter' || eventKey.key === ' ') {\n eventKey.preventDefault();\n handleClick();\n }\n }\n : undefined\n }\n >\n <div className={style['event-item-head']}>\n <div className={style['event-item-title']}>{event.title}</div>\n {tagLabel ? (\n <Tag className={style['event-item-tag']} color={event.color}>\n {tagLabel}\n </Tag>\n ) : null}\n </div>\n <div className={style['event-item-time']}>{formatRange(event.start, event.end)}</div>\n {event.detail ? <div className={style['event-item-detail']}>{event.detail}</div> : null}\n </div>\n </List.Item>\n );\n};\n\nexport default EventItem;\n","import { useIntl } from '@kne/react-intl';\nimport { getPanelDateLabel } from '../../formatCalendarLabels';\nimport style from './style.module.scss';\n\nconst PanelTitle = ({ date, subtitle, count }) => {\n const { formatMessage } = useIntl();\n const dateText = getPanelDateLabel(formatMessage, date);\n const countText = typeof count === 'number' ? formatMessage({ id: 'PanelTitle.eventCount' }, { count }) : null;\n return (\n <div className={style['panel-title']}>\n <span>{dateText}</span>\n {subtitle || countText ? <span>{subtitle || countText}</span> : null}\n </div>\n );\n};\n\nexport default PanelTitle;\n","import { classNames } from '../../utils';\nimport style from './style.module.scss';\n\nconst PanelScrollShadow = ({ visible }) => <div className={classNames(style['panel-scroll-shadow'], { [style['panel-scroll-shadow-visible']]: visible })} aria-hidden />;\n\nexport default PanelScrollShadow;\n","import { useCallback, useEffect, useState } from 'react';\nimport { classNames } from '../../utils';\nimport style from './style.module.scss';\n\nconst usePanelScrollShadow = (resetKey, scrollRef) => {\n const [scrolled, setScrolled] = useState(false);\n\n useEffect(() => {\n if (scrollRef?.current) {\n scrollRef.current.scrollTop = 0;\n }\n setScrolled(false);\n }, [resetKey, scrollRef]);\n\n const onScroll = useCallback(event => {\n setScrolled(event.currentTarget.scrollTop > 0);\n }, []);\n\n return { scrolled, onScroll };\n};\n\nexport default usePanelScrollShadow;\n","import { useMemo, useRef } from 'react';\nimport { Card, Empty, List, Spin } from 'antd';\nimport { useIntl } from '@kne/react-intl';\nimport { DATE_FORMAT } from '../../constants';\nimport { classNames, sortEventsByStart } from '../../utils';\nimport EventItem from '../EventItem';\nimport PanelTitle from './PanelTitle';\nimport PanelScrollShadow from './PanelScrollShadow';\nimport usePanelScrollShadow from './usePanelScrollShadow';\nimport style from './style.module.scss';\n\nconst ViewPanel = ({ date, events, loading, renderEventItem, renderPanelHeader, onEventClick, scrollable = true }) => {\n const { formatMessage } = useIntl();\n const sortedEvents = useMemo(() => sortEventsByStart(events), [events]);\n const panelHeader = renderPanelHeader?.({ date: date.toDate(), mode: 'view', events: sortedEvents });\n const scrollRef = useRef(null);\n const { scrolled, onScroll } = usePanelScrollShadow(date.format(DATE_FORMAT), scrollRef);\n return (\n <Card bordered={false} title={panelHeader || <PanelTitle date={date} count={sortedEvents.length} />} className={classNames(style['panel-card'], !scrollable && style['panel-card-expanded'])}>\n <Spin spinning={!!loading} classNames={{ root: style['panel-spin'], container: style['panel-spin-container'] }}>\n <div ref={scrollRef} className={classNames(style['panel-scroll-body'], !scrollable && style['panel-scroll-body-expanded'])} onScroll={scrollable ? onScroll : undefined}>\n {scrollable ? <PanelScrollShadow visible={scrolled} /> : null}\n <div className={style['panel-scroll-content']}>\n {sortedEvents.length ? (\n <List dataSource={sortedEvents} renderItem={event => <EventItem event={event} date={date.toDate()} mode=\"view\" renderEventItem={renderEventItem} onEventClick={onEventClick} />} />\n ) : (\n <Empty description={formatMessage({ id: 'ViewPanel.empty' })} />\n )}\n </div>\n </div>\n </Spin>\n </Card>\n );\n};\n\nexport default ViewPanel;\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nconst LONG_PRESS_DELAY = 400;\nconst SCROLL_CANCEL_THRESHOLD = 12;\nconst TAP_MOVE_THRESHOLD = 8;\n\nconst getPopoverKey = slot => (slot ? `form:${slot.key}` : null);\n\nconst getSlotIndexFromPoint = (container, clientX, clientY) => {\n const slotElements = container?.querySelectorAll?.('[data-slot-index]');\n if (!slotElements?.length) {\n return null;\n }\n\n let closestIndex = null;\n let closestDistance = Infinity;\n\n for (const candidate of slotElements) {\n const rect = candidate.getBoundingClientRect();\n const index = Number(candidate.getAttribute('data-slot-index'));\n if (Number.isNaN(index)) {\n continue;\n }\n\n if (clientY >= rect.top && clientY <= rect.bottom && clientX >= rect.left && clientX <= rect.right) {\n return index;\n }\n\n if (clientX < rect.left || clientX > rect.right) {\n continue;\n }\n\n const centerY = (rect.top + rect.bottom) / 2;\n const distance = Math.abs(clientY - centerY);\n if (distance < closestDistance) {\n closestDistance = distance;\n closestIndex = index;\n }\n }\n\n return closestIndex;\n};\n\nconst clearDocumentTextSelection = () => {\n const selection = document.getSelection?.();\n if (selection && !selection.isCollapsed) {\n selection.removeAllRanges();\n }\n};\n\nconst useScheduleSelectionGesture = ({ slots, selectedSlots, setSelectedSlots, allowMultiSelect, onSlotRangeChange, onFreeSlotClick }) => {\n const [dragging, setDragging] = useState(false);\n const [activePopoverKey, setActivePopoverKey] = useState(null);\n const slotsRef = useRef(null);\n const draggingRef = useRef(false);\n const dragStartIndexRef = useRef(null);\n const longPressTimerRef = useRef(null);\n const touchStateRef = useRef(null);\n const slotsDataRef = useRef(slots);\n const selectedSlotsRef = useRef(selectedSlots);\n const allowMultiSelectRef = useRef(allowMultiSelect);\n const suppressTriggerUntilRef = useRef(0);\n const suppressMouseUntilRef = useRef(0);\n const scrollLockRef = useRef(null);\n const handlersRef = useRef({});\n\n slotsDataRef.current = slots;\n selectedSlotsRef.current = selectedSlots;\n allowMultiSelectRef.current = allowMultiSelect;\n\n const selectedKeys = useMemo(() => new Set(selectedSlots.map(slot => slot.key)), [selectedSlots]);\n const selectedAnchorKey = selectedSlots[selectedSlots.length - 1]?.key;\n const formPopoverKey = selectedAnchorKey ? `form:${selectedAnchorKey}` : null;\n\n const clearLongPress = useCallback(() => {\n if (longPressTimerRef.current) {\n window.clearTimeout(longPressTimerRef.current);\n longPressTimerRef.current = null;\n }\n }, []);\n\n const unlockContainerScroll = useCallback(() => {\n const container = slotsRef.current;\n if (!container || scrollLockRef.current == null) {\n return;\n }\n const scrollTop = scrollLockRef.current;\n container.style.overflow = '';\n container.style.touchAction = '';\n container.scrollTop = scrollTop;\n scrollLockRef.current = null;\n }, []);\n\n const lockContainerScroll = useCallback(() => {\n const container = slotsRef.current;\n if (!container || scrollLockRef.current != null) {\n return;\n }\n scrollLockRef.current = container.scrollTop;\n container.style.overflow = 'hidden';\n container.style.touchAction = 'none';\n }, []);\n\n const resetGestureState = useCallback(() => {\n clearLongPress();\n const container = slotsRef.current;\n const touchState = touchStateRef.current;\n if (container && touchState?.pointerId != null && container.hasPointerCapture?.(touchState.pointerId)) {\n try {\n container.releasePointerCapture(touchState.pointerId);\n } catch {\n // Ignore capture release errors on stale pointers.\n }\n }\n draggingRef.current = false;\n dragStartIndexRef.current = null;\n touchStateRef.current = null;\n container?.classList.remove('schedule-calendar-touch-dragging');\n unlockContainerScroll();\n setDragging(false);\n }, [clearLongPress, unlockContainerScroll]);\n\n const selectSlots = useCallback(\n nextSlots => {\n selectedSlotsRef.current = nextSlots;\n if (!nextSlots.length) {\n setActivePopoverKey(null);\n resetGestureState();\n }\n setSelectedSlots(nextSlots);\n onSlotRangeChange?.(nextSlots, { action: nextSlots.length ? 'select' : 'clear' });\n },\n [onSlotRangeChange, resetGestureState, setSelectedSlots]\n );\n\n const getSelectableRange = useCallback((startIndex, endIndex) => {\n const [start, end] = [Math.min(startIndex, endIndex), Math.max(startIndex, endIndex)];\n return slotsDataRef.current.slice(start, end + 1).filter(slot => slot.status === 'free');\n }, []);\n\n const showFormPopoverForSlots = useCallback(slotsList => {\n const anchorSlot = slotsList[slotsList.length - 1];\n if (anchorSlot) {\n setActivePopoverKey(getPopoverKey(anchorSlot));\n }\n }, []);\n\n const startSlotSelection = useCallback(\n (slot, index, { showPopover = true, lockScroll = false } = {}) => {\n clearDocumentTextSelection();\n setActivePopoverKey(getPopoverKey(slot));\n draggingRef.current = true;\n dragStartIndexRef.current = index;\n slotsRef.current?.classList.add('schedule-calendar-touch-dragging');\n if (lockScroll) {\n lockContainerScroll();\n }\n setDragging(true);\n selectSlots([slot]);\n if (!showPopover) {\n suppressTriggerUntilRef.current = Date.now() + 700;\n setActivePopoverKey(null);\n }\n onFreeSlotClick?.(slot);\n },\n [lockContainerScroll, onFreeSlotClick, selectSlots]\n );\n\n const finishSelection = useCallback(\n ({ fromTouch = false } = {}) => {\n const hadSelection = selectedSlotsRef.current.length > 0;\n resetGestureState();\n if (hadSelection) {\n if (fromTouch) {\n suppressTriggerUntilRef.current = Date.now() + 500;\n }\n showFormPopoverForSlots(selectedSlotsRef.current);\n }\n },\n [resetGestureState, showFormPopoverForSlots]\n );\n\n const updateSelectionRange = useCallback(\n index => {\n const startIndex = dragStartIndexRef.current;\n if (startIndex === null || !allowMultiSelectRef.current) {\n return;\n }\n const nextSlots = getSelectableRange(startIndex, index);\n selectSlots(nextSlots);\n },\n [getSelectableRange, selectSlots]\n );\n\n const shouldIgnoreMouseSelectionEvent = useCallback(() => {\n return !!touchStateRef.current || Date.now() < suppressMouseUntilRef.current;\n }, []);\n\n const handleMouseDown = useCallback(\n (event, slot, index) => {\n if (shouldIgnoreMouseSelectionEvent()) {\n return;\n }\n if (slot.status !== 'free') {\n return;\n }\n event.preventDefault();\n startSlotSelection(slot, index);\n },\n [shouldIgnoreMouseSelectionEvent, startSlotSelection]\n );\n\n const handleMouseEnter = useCallback(\n index => {\n if (shouldIgnoreMouseSelectionEvent() || !draggingRef.current) {\n return;\n }\n updateSelectionRange(index);\n },\n [shouldIgnoreMouseSelectionEvent, updateSelectionRange]\n );\n\n const handleMouseUp = useCallback(() => {\n if (shouldIgnoreMouseSelectionEvent()) {\n return;\n }\n finishSelection();\n }, [finishSelection, shouldIgnoreMouseSelectionEvent]);\n\n const handleMouseLeave = useCallback(() => {\n if (shouldIgnoreMouseSelectionEvent()) {\n return;\n }\n finishSelection();\n }, [finishSelection, shouldIgnoreMouseSelectionEvent]);\n\n const handlePopoverOpenChange = useCallback(\n (open, currentPopoverKey, { isForm = false } = {}) => {\n if (Date.now() < suppressTriggerUntilRef.current) {\n return;\n }\n if (!open && isForm) {\n selectSlots([]);\n return;\n }\n setActivePopoverKey(prevKey => {\n if (open) {\n return currentPopoverKey;\n }\n return prevKey === currentPopoverKey ? null : prevKey;\n });\n },\n [selectSlots]\n );\n\n handlersRef.current = {\n clearLongPress,\n finishSelection,\n onFreeSlotClick,\n resetGestureState,\n selectSlots,\n showFormPopoverForSlots,\n startSlotSelection,\n updateSelectionRange\n };\n\n useEffect(() => {\n const container = slotsRef.current;\n if (!container) {\n return undefined;\n }\n\n const releasePointerCapture = pointerId => {\n if (pointerId == null || !container.hasPointerCapture?.(pointerId)) {\n return;\n }\n try {\n container.releasePointerCapture(pointerId);\n } catch {\n // Ignore capture release errors on stale pointers.\n }\n };\n\n const clearPendingTouch = () => {\n handlersRef.current.clearLongPress();\n touchStateRef.current = null;\n };\n\n const isStillOnSameSlot = (touchState, clientX, clientY) => {\n const currentIndex = getSlotIndexFromPoint(container, clientX, clientY);\n return currentIndex === touchState.index;\n };\n\n const shouldCancelPendingGesture = (touchState, clientX, clientY) => {\n const moveX = Math.abs(clientX - touchState.x);\n const moveY = Math.abs(clientY - touchState.y);\n\n if (moveY > SCROLL_CANCEL_THRESHOLD) {\n return true;\n }\n\n if (!isStillOnSameSlot(touchState, clientX, clientY)) {\n return true;\n }\n\n if (!allowMultiSelectRef.current && (moveX > TAP_MOVE_THRESHOLD || moveY > TAP_MOVE_THRESHOLD)) {\n return true;\n }\n\n return false;\n };\n\n const activateLongPress = touchState => {\n if (!isStillOnSameSlot(touchState, touchState.lastX, touchState.lastY)) {\n return;\n }\n\n touchState.longPressed = true;\n touchState.active = true;\n clearDocumentTextSelection();\n\n try {\n container.setPointerCapture(touchState.pointerId);\n } catch {\n // Continue when capture is unavailable.\n }\n\n slotsRef.current?.classList.add('schedule-calendar-touch-dragging');\n handlersRef.current.startSlotSelection(touchState.slot, touchState.index, { showPopover: false, lockScroll: true });\n };\n\n const handlePointerDown = event => {\n if (event.pointerType === 'mouse' || event.isPrimary === false) {\n return;\n }\n\n const slotElement = event.target?.closest?.('[data-slot-index]');\n if (!slotElement || !container.contains(slotElement)) {\n return;\n }\n\n const index = Number(slotElement.getAttribute('data-slot-index'));\n const slot = slotsDataRef.current[index];\n if (Number.isNaN(index) || slot?.status !== 'free') {\n return;\n }\n\n handlersRef.current.resetGestureState();\n touchStateRef.current = {\n pointerId: event.pointerId,\n x: event.clientX,\n y: event.clientY,\n lastX: event.clientX,\n lastY: event.clientY,\n slot,\n index,\n moved: false,\n longPressed: false,\n active: false,\n selectionTriggered: false\n };\n\n if (!allowMultiSelectRef.current) {\n return;\n }\n\n longPressTimerRef.current = window.setTimeout(() => {\n const touchState = touchStateRef.current;\n if (!touchState || touchState.pointerId !== event.pointerId || touchState.moved) {\n return;\n }\n activateLongPress(touchState);\n longPressTimerRef.current = null;\n }, LONG_PRESS_DELAY);\n };\n\n const handlePointerMove = event => {\n const touchState = touchStateRef.current;\n if (!touchState || event.pointerId !== touchState.pointerId) {\n return;\n }\n\n touchState.lastX = event.clientX;\n touchState.lastY = event.clientY;\n\n if (!touchState.active) {\n if (shouldCancelPendingGesture(touchState, event.clientX, event.clientY)) {\n touchState.moved = true;\n clearPendingTouch();\n }\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n clearDocumentTextSelection();\n const index = getSlotIndexFromPoint(container, event.clientX, event.clientY);\n if (index !== null) {\n handlersRef.current.updateSelectionRange(index);\n }\n };\n\n const handlePointerUp = event => {\n const touchState = touchStateRef.current;\n if (!touchState || event.pointerId !== touchState.pointerId) {\n return;\n }\n\n releasePointerCapture(event.pointerId);\n suppressMouseUntilRef.current = Date.now() + 700;\n\n if (touchState.active) {\n event.preventDefault();\n touchState.selectionTriggered = true;\n const index = getSlotIndexFromPoint(container, event.clientX, event.clientY);\n if (index !== null) {\n handlersRef.current.updateSelectionRange(index);\n }\n suppressTriggerUntilRef.current = Date.now() + 500;\n handlersRef.current.finishSelection({ fromTouch: true });\n return;\n }\n\n handlersRef.current.clearLongPress();\n\n const quickTap =\n !touchState.moved &&\n !touchState.longPressed &&\n Math.abs(event.clientX - touchState.x) <= TAP_MOVE_THRESHOLD &&\n Math.abs(event.clientY - touchState.y) <= TAP_MOVE_THRESHOLD &&\n isStillOnSameSlot(touchState, event.clientX, event.clientY);\n\n const { slot } = touchState;\n touchStateRef.current = null;\n\n if (quickTap) {\n touchState.selectionTriggered = true;\n suppressTriggerUntilRef.current = Date.now() + 500;\n handlersRef.current.selectSlots([slot]);\n handlersRef.current.showFormPopoverForSlots([slot]);\n handlersRef.current.onFreeSlotClick?.(slot);\n return;\n }\n\n handlersRef.current.resetGestureState();\n };\n\n const handleContextMenu = event => {\n if (touchStateRef.current?.active || draggingRef.current) {\n event.preventDefault();\n }\n };\n\n const handleSelectStart = event => {\n if (!touchStateRef.current?.active && !draggingRef.current) {\n return;\n }\n event.preventDefault();\n };\n\n const handleTouchMove = event => {\n if (!draggingRef.current && !touchStateRef.current?.active) {\n return;\n }\n event.preventDefault();\n };\n\n const touchOptions = { passive: false, capture: true };\n container.addEventListener('pointerdown', handlePointerDown, { passive: true });\n container.addEventListener('pointermove', handlePointerMove, { passive: false });\n container.addEventListener('pointerup', handlePointerUp, { passive: false });\n container.addEventListener('pointercancel', handlePointerUp, { passive: false });\n container.addEventListener('touchmove', handleTouchMove, touchOptions);\n container.addEventListener('contextmenu', handleContextMenu);\n container.addEventListener('selectstart', handleSelectStart);\n\n return () => {\n releasePointerCapture(touchStateRef.current?.pointerId);\n handlersRef.current.clearLongPress();\n handlersRef.current.resetGestureState();\n longPressTimerRef.current = null;\n container.removeEventListener('touchmove', handleTouchMove, touchOptions);\n };\n }, []);\n\n return {\n activePopoverKey,\n dragging,\n formPopoverKey,\n selectedAnchorKey,\n selectedKeys,\n setActivePopoverKey,\n selectSlots,\n slotsRef,\n finishSelection,\n handleMouseDown,\n handleMouseEnter,\n handleMouseUp,\n handleMouseLeave,\n handlePopoverOpenChange\n };\n};\n\nexport default useScheduleSelectionGesture;\n","import FormInfo, { Input, TextArea } from '@kne/form-info';\nimport { useIntl } from '@kne/react-intl';\n\nconst DefaultFormInner = () => {\n const { formatMessage } = useIntl();\n return (\n <FormInfo\n column={1}\n list={[\n <Input name=\"title\" label={formatMessage({ id: 'DefaultFormInner.title' })} rule=\"REQ\" placeholder={formatMessage({ id: 'DefaultFormInner.titlePlaceholder' })} block />,\n <TextArea name=\"detail\" label={formatMessage({ id: 'DefaultFormInner.detail' })} placeholder={formatMessage({ id: 'DefaultFormInner.detailPlaceholder' })} block />\n ]}\n />\n );\n};\n\nexport default DefaultFormInner;\n","import { List } from 'antd';\nimport EventItem from '../EventItem';\nimport style from './style.module.scss';\n\nconst SlotEvents = ({ slot, date, onEventClick }) => (\n <div className={style['slot-popover-content']}>\n <List size=\"small\" dataSource={slot.events} renderItem={event => <EventItem event={event} date={date} mode=\"schedule\" onEventClick={onEventClick} />} />\n </div>\n);\n\nexport default SlotEvents;\n","import { Popover, Tag, Tooltip } from 'antd';\nimport { useIntl } from '@kne/react-intl';\nimport { classNames, formatRange } from '../../utils';\nimport SlotEvents from './SlotEvents';\nimport style from './style.module.scss';\n\nconst SlotItem = ({ slot, date, selected, formPopover, popoverOpen, onPopoverOpenChange, onContextMenu, onMouseDown, onPointerDown, onMouseEnter, onMouseUp, onClick, onEventClick, renderTimeSlot, renderOccupiedSlot }) => {\n const { formatMessage } = useIntl();\n const content = renderTimeSlot?.(slot, { selected });\n if (content) {\n const customNode = (\n <div data-slot-index={slot.index} data-slot-status={slot.status} onContextMenu={onContextMenu} onMouseDown={onMouseDown} onPointerDown={onPointerDown} onMouseEnter={onMouseEnter} onMouseUp={onMouseUp} onClick={onClick}>\n {content}\n </div>\n );\n if (formPopover) {\n return (\n <Popover rootClassName={style['schedule-popover']} open={popoverOpen} onOpenChange={onPopoverOpenChange} content={formPopover} trigger=\"click\" placement=\"bottom\" autoAdjustOverflow>\n {customNode}\n </Popover>\n );\n }\n return customNode;\n }\n\n const wrapWithPopover = node => {\n if (formPopover) {\n return (\n <Popover rootClassName={style['schedule-popover']} open={popoverOpen} onOpenChange={onPopoverOpenChange} content={formPopover} trigger=\"click\" placement=\"bottom\" autoAdjustOverflow>\n {node}\n </Popover>\n );\n }\n if (slot.status === 'occupied') {\n return (\n <Popover\n rootClassName={style['schedule-popover']}\n open={popoverOpen}\n onOpenChange={onPopoverOpenChange}\n content={<SlotEvents slot={slot} date={date} onEventClick={onEventClick} />}\n trigger=\"click\"\n placement=\"bottom\"\n autoAdjustOverflow\n >\n {node}\n </Popover>\n );\n }\n if (slot.disabledReason) {\n return <Tooltip title={slot.disabledReason}>{node}</Tooltip>;\n }\n return node;\n };\n\n const slotClassName = classNames(style['slot-item'], style[`slot-${slot.status}`], {\n [style['slot-selected']]: selected\n });\n const slotChildren = (\n <>\n <span className={style['slot-dot']} />\n <span className={style['slot-time']}>{formatRange(slot.start, slot.end)}</span>\n {slot.status === 'disabled' ? <Tag className={style['slot-tag']}>{formatMessage({ id: 'SlotItem.disabled' })}</Tag> : null}\n {slot.status === 'occupied' ? (\n <Tag className={style['slot-tag']} color=\"red\">\n {formatMessage({ id: 'SlotItem.occupied' })}\n </Tag>\n ) : null}\n {slot.status === 'occupied' && renderOccupiedSlot ? renderOccupiedSlot(slot, { events: slot.events }) : null}\n {slot.status === 'occupied' && !renderOccupiedSlot ? <span className={style['slot-title']}>{slot.events.map(event => event.title).join('、')}</span> : null}\n </>\n );\n const slotHandlers = {\n onContextMenu,\n onMouseDown,\n onPointerDown,\n onMouseEnter,\n onMouseUp,\n onClick\n };\n\n const inner =\n slot.status === 'disabled' ? (\n <button\n type=\"button\"\n className={slotClassName}\n data-slot-index={slot.index}\n data-slot-status={slot.status}\n disabled\n onContextMenu={onContextMenu}\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n onMouseEnter={onMouseEnter}\n onMouseUp={onMouseUp}\n onClick={onClick}\n >\n {slotChildren}\n </button>\n ) : (\n <div role=\"button\" tabIndex={0} className={slotClassName} data-slot-index={slot.index} data-slot-status={slot.status} {...slotHandlers}>\n {slotChildren}\n </div>\n );\n\n return wrapWithPopover(inner);\n};\n\nexport default SlotItem;\n","import { useMemo } from 'react';\nimport { Button, Card, Spin } from 'antd';\nimport { Form, SubmitButton } from '@kne/form-info';\nimport { useIntl } from '@kne/react-intl';\nimport { DATE_FORMAT } from '../../constants';\nimport useScheduleSelectionGesture from '../../useScheduleSelectionGesture';\nimport { classNames, dedupeEventsById, formatRange, getDefaultFormValues, sortEventsByStart } from '../../utils';\nimport PanelTitle from '../Panel/PanelTitle';\nimport PanelScrollShadow from '../Panel/PanelScrollShadow';\nimport usePanelScrollShadow from '../Panel/usePanelScrollShadow';\nimport panelStyle from '../Panel/style.module.scss';\nimport DefaultFormInner from './DefaultFormInner';\nimport SlotItem from './SlotItem';\nimport style from './style.module.scss';\n\nconst SchedulePanel = ({\n date,\n slots,\n loading,\n allowMultiSelect,\n selectedSlots,\n setSelectedSlots,\n onSlotRangeChange,\n onFreeSlotClick,\n onCreate,\n formInner,\n formProps,\n defaultFormValues,\n renderTimeSlot,\n renderOccupiedSlot,\n renderPanelHeader,\n onEventClick\n}) => {\n const { formatMessage } = useIntl();\n const events = useMemo(() => sortEventsByStart(dedupeEventsById(slots.flatMap(slot => slot.events || []))), [slots]);\n const panelHeader = renderPanelHeader?.({ date: date.toDate(), mode: 'schedule', events });\n const { activePopoverKey, dragging, formPopoverKey, selectedAnchorKey, selectedKeys, selectSlots, slotsRef, handleMouseDown, handleMouseEnter, handleMouseUp, handleMouseLeave, handlePopoverOpenChange } = useScheduleSelectionGesture({\n slots,\n selectedSlots,\n setSelectedSlots,\n allowMultiSelect,\n onSlotRangeChange,\n onFreeSlotClick\n });\n\n const { scrolled, onScroll } = usePanelScrollShadow(date.format(DATE_FORMAT), slotsRef);\n const formContext = {\n date: date.toDate(),\n slots: selectedSlots\n };\n const formPopover =\n selectedSlots.length && !dragging ? (\n <div className={style['form-popover']}>\n <div className={style['form-popover-title']}>{formatMessage({ id: 'SchedulePanel.newSchedule' }, { range: formatRange(selectedSlots[0].start, selectedSlots[selectedSlots.length - 1].end) })}</div>\n <Form\n {...formProps}\n data={getDefaultFormValues(defaultFormValues, formContext)}\n onSubmit={async values => {\n try {\n await onCreate?.(values, formContext);\n selectSlots([]);\n } catch {\n // Keep the form open when creation fails.\n }\n }}\n >\n {formInner || <DefaultFormInner />}\n <div className={style['form-actions']}>\n <Button onClick={() => selectSlots([])}>{formatMessage({ id: 'SchedulePanel.cancel' })}</Button>\n <SubmitButton>{formatMessage({ id: 'SchedulePanel.save' })}</SubmitButton>\n </div>\n </Form>\n </div>\n ) : null;\n\n return (\n <Card bordered={false} title={panelHeader || <PanelTitle date={date} subtitle={formatMessage({ id: 'SchedulePanel.selectFreeSlot' })} />} className={panelStyle['panel-card']}>\n <Spin spinning={!!loading} classNames={{ root: panelStyle['panel-spin'], container: panelStyle['panel-spin-container'] }}>\n <div ref={slotsRef} className={classNames(style['slots'], { [style['slots-dragging']]: dragging })} onScroll={onScroll} onMouseUp={handleMouseUp} onMouseLeave={handleMouseLeave}>\n <PanelScrollShadow visible={scrolled} />\n <div className={style['slots-content']}>\n {slots.map((slot, index) => {\n const slotWithIndex = { ...slot, index };\n const occupiedPopoverKey = `occupied:${slot.key}`;\n const currentPopoverKey = slot.key === selectedAnchorKey && formPopover ? formPopoverKey : slot.status === 'occupied' ? occupiedPopoverKey : null;\n return (\n <SlotItem\n key={slot.key}\n slot={slotWithIndex}\n date={date.toDate()}\n selected={selectedKeys.has(slot.key)}\n formPopover={slot.key === selectedAnchorKey ? formPopover : null}\n popoverOpen={!!currentPopoverKey && activePopoverKey === currentPopoverKey}\n onPopoverOpenChange={open => handlePopoverOpenChange(open, currentPopoverKey, { isForm: currentPopoverKey === formPopoverKey })}\n renderTimeSlot={renderTimeSlot}\n renderOccupiedSlot={renderOccupiedSlot}\n onEventClick={onEventClick}\n onContextMenu={event => {\n if (slot.status === 'free') {\n event.preventDefault();\n }\n }}\n onMouseDown={event => handleMouseDown(event, slot, index)}\n onMouseEnter={() => handleMouseEnter(index)}\n onMouseUp={handleMouseUp}\n onClick={undefined}\n />\n );\n })}\n </div>\n </div>\n </Spin>\n </Card>\n );\n};\n\nexport default SchedulePanel;\n","import { useCallback, useMemo, useRef, useState } from 'react';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport useControlValue from '@kne/use-control-value';\nimport { Calendar } from 'antd';\nimport withLocale from './withLocale';\nimport { DATE_FORMAT, LAYOUT_STACK_BREAKPOINT } from './constants';\nimport useStackedPanelLayout from './useStackedPanelLayout';\nimport { groupEventsByDate, generateTimeSlots } from './events';\nimport { checkRule } from './rules';\nimport { classNames, toDayjs, useControlledState } from './utils';\nimport Header from './components/Header';\nimport useStackedLayout from './useStackedLayout';\nimport DateCell from './components/DateCell';\nimport ViewPanel from './components/Panel/ViewPanel';\nimport SchedulePanel from './components/SchedulePanel';\nimport style from './style.module.scss';\n\ndayjs.extend(customParseFormat);\n\nconst buildMonthRuleCache = ({ currentDate, mode, disabledDate, disabledDateTime, availableDateTime }) => {\n const cache = new Map();\n const monthStart = currentDate.startOf('month');\n const monthEnd = currentDate.endOf('month');\n let cursor = monthStart;\n while (cursor.isBefore(monthEnd) || cursor.isSame(monthEnd, 'day')) {\n cache.set(\n cursor.format(DATE_FORMAT),\n checkRule({\n date: cursor,\n mode,\n disabledDate,\n disabledDateTime,\n availableDateTime\n })\n );\n cursor = cursor.add(1, 'day');\n }\n return cache;\n};\n\nconst ScheduleCalendarInner = props => {\n const {\n mode = 'view',\n events = [],\n loading,\n disabledDate,\n disabledDateTime,\n availableDateTime,\n badgeMaxCount = 9,\n timeUnit = 30,\n dayStart = '09:00',\n dayEnd = '18:00',\n allowMultiSelect = mode === 'schedule',\n renderDateCell,\n renderEventItem,\n renderTimeSlot,\n renderOccupiedSlot,\n renderPanelHeader,\n formInner,\n formProps,\n defaultFormValues,\n onDateChange,\n onEventClick,\n onFreeSlotClick,\n onSlotRangeChange,\n onCreate,\n className,\n style: propsStyle,\n stackAt = LAYOUT_STACK_BREAKPOINT,\n eventListScrollable = true,\n calendarProps,\n panelProps\n } = props;\n const rootRef = useRef(null);\n const calendarRef = useRef(null);\n const stacked = useStackedLayout(rootRef, stackAt);\n const eventListExpanded = mode === 'view' && !eventListScrollable;\n const stackedLayoutStyle = useStackedPanelLayout(rootRef, calendarRef, stacked && !eventListExpanded);\n const [value, setValue] = useControlValue(props);\n const selectedDate = useMemo(() => toDayjs(value) || dayjs(), [value]);\n const [current, setCurrent] = useControlledState({\n value: props.current,\n defaultValue: props.defaultCurrent || selectedDate,\n onChange: props.onCurrentChange\n });\n const currentDate = useMemo(() => toDayjs(current) || selectedDate, [current, selectedDate]);\n const [selectedSlots, setSelectedSlots] = useState([]);\n const eventGroup = useMemo(() => groupEventsByDate(events), [events]);\n const selectedEvents = useMemo(() => eventGroup[selectedDate.format(DATE_FORMAT)] || [], [eventGroup, selectedDate]);\n const ruleContext = useMemo(\n () => ({\n mode,\n disabledDate,\n disabledDateTime,\n availableDateTime\n }),\n [availableDateTime, disabledDate, disabledDateTime, mode]\n );\n const monthRuleCache = useMemo(\n () =>\n buildMonthRuleCache({\n currentDate,\n ...ruleContext\n }),\n [currentDate, ruleContext]\n );\n const getDateRule = useCallback(\n date => {\n const cached = monthRuleCache.get(date.format(DATE_FORMAT));\n if (cached !== undefined) {\n return cached;\n }\n return checkRule({\n date,\n ...ruleContext\n });\n },\n [monthRuleCache, ruleContext]\n );\n const slots = useMemo(\n () =>\n generateTimeSlots({\n date: selectedDate,\n events: selectedEvents,\n timeUnit,\n dayStart,\n dayEnd,\n disabledDate,\n disabledDateTime,\n availableDateTime,\n mode\n }),\n [availableDateTime, dayEnd, dayStart, disabledDate, disabledDateTime, mode, selectedDate, selectedEvents, timeUnit]\n );\n\n const handleSelectDate = (date, info) => {\n const nextDate = date.startOf('day').toDate();\n setValue(nextDate, info);\n onDateChange?.(nextDate, info);\n setSelectedSlots([]);\n };\n\n const handleCurrentChange = (date, info) => {\n setCurrent(date.startOf('month').toDate(), info);\n };\n\n const handleGoToday = () => {\n const today = dayjs().startOf('day');\n if (getDateRule(today)) {\n return;\n }\n handleSelectDate(today, { source: 'today' });\n handleCurrentChange(today, { source: 'today' });\n };\n\n const fullCellRender = date => {\n const key = date.format(DATE_FORMAT);\n const dayEvents = eventGroup[key] || [];\n const disabled = !!getDateRule(date);\n return <DateCell date={date} dayEvents={dayEvents} selected={date.isSame(selectedDate, 'day')} currentMonth={date.isSame(currentDate, 'month')} disabled={disabled} badgeMaxCount={badgeMaxCount} renderDateCell={renderDateCell} />;\n };\n\n return (\n <div className={style['schedule-calendar-shell']} style={propsStyle}>\n <div\n ref={rootRef}\n className={classNames(style['schedule-calendar'], stacked && style['schedule-calendar-stacked'], eventListExpanded && style['schedule-calendar-event-list-expanded'], className)}\n data-schedule-layout={stacked ? 'stacked' : 'row'}\n style={stacked && !eventListExpanded ? stackedLayoutStyle : undefined}\n >\n <div ref={calendarRef} className={style['calendar-side']}>\n <Calendar\n {...calendarProps}\n fullscreen={false}\n value={currentDate}\n headerRender={() => {\n const today = dayjs().startOf('day');\n const todayDisabled = !!getDateRule(today);\n return <Header current={currentDate} showTodayButton={!todayDisabled && (!selectedDate.isSame(today, 'day') || !currentDate.isSame(today, 'month'))} onCurrentChange={handleCurrentChange} onSelectToday={handleGoToday} />;\n }}\n fullCellRender={fullCellRender}\n disabledDate={date => !!getDateRule(date)}\n onSelect={date => {\n if (getDateRule(date)) {\n return;\n }\n handleSelectDate(date, { source: 'date' });\n }}\n onPanelChange={date => handleCurrentChange(date, { source: 'picker' })}\n />\n </div>\n <div className={style['panel-side']} {...panelProps}>\n {mode === 'schedule' ? (\n <SchedulePanel\n date={selectedDate}\n slots={slots}\n loading={loading}\n allowMultiSelect={allowMultiSelect}\n selectedSlots={selectedSlots}\n setSelectedSlots={setSelectedSlots}\n onSlotRangeChange={onSlotRangeChange}\n onFreeSlotClick={onFreeSlotClick}\n onCreate={onCreate}\n formInner={formInner}\n formProps={formProps}\n defaultFormValues={defaultFormValues}\n renderTimeSlot={renderTimeSlot}\n renderOccupiedSlot={renderOccupiedSlot}\n renderPanelHeader={renderPanelHeader}\n onEventClick={onEventClick}\n />\n ) : (\n <ViewPanel date={selectedDate} events={selectedEvents} loading={loading} renderEventItem={renderEventItem} renderPanelHeader={renderPanelHeader} onEventClick={onEventClick} scrollable={eventListScrollable} />\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport const ScheduleCalendar = withLocale(ScheduleCalendarInner);\n\nexport default ScheduleCalendar;\n"],"names":["locale","withLocale","createWithIntlProvider","defaultLocale","messages","zhCN","enUS","namespace","DATE_FORMAT","TIME_FORMAT","LAYOUT_STACK_BREAKPOINT","LAYOUT_MIN_HEIGHT","measureHeight","node","Math","ceil","getBoundingClientRect","height","useStackedPanelLayout","rootRef","calendarRef","stacked","layoutStyle","setLayoutStyle","useState","undefined","useLayoutEffect","root","current","calendar","update","calendarHeight","panelViewportHeight","max","totalHeight","ResizeObserver","window","addEventListener","removeEventListener","observer","observe","disconnect","classNames","slice","call","arguments","flatMap","item","Object","keys","filter","key","join","toDayjs","value","date","dayjs","isValid","parseDayTime","time","day","parsed","format","startOf","formatRange","start","end","getDefaultFormValues","defaultFormValues","ctx","_extends","title","detail","sortEventsByStart","events","sort","a","b","_toDayjs$valueOf","_toDayjs","_toDayjs$valueOf2","_toDayjs2","aStart","valueOf","bStart","dedupeEventsById","map","Map","forEach","event","set","id","values","useControlledState","_ref","defaultValue","onChange","props","useControlValue","getRuleDisabled","result","defaultReason","disabled","reason","checkRule","slot","mode","disabledDate","disabledDateTime","availableDateTime","toDate","disabledResult","normalizeEvent","isAfter","add","groupEventsByDate","reduce","normalized","startOfDay","endOfDay","isBefore","isSame","push","getOverlappingEvents","slotStart","slotEnd","sortedEvents","matched","generateTimeSlots","_ref$timeUnit","timeUnit","_ref$dayStart","dayStart","_ref$dayEnd","dayEnd","_ref$mode","selectedDate","startAt","endAt","normalizedEvents","slots","matchedEvents","baseSlot","ruleResult","status","length","disabledReason","toDay","getMonthName","formatMessage","monthIndex","getPanelDateLabel","d","month","year","monthName","getHeaderMonthLabel","getMonthPickerItemLabel","HeaderNavIcon","direction","className","_jsx","style","viewBox","focusable","children","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","YEAR_PAGE_SIZE","getYearPageStart","floor","PickerPanelNav","label","onClick","type","YearPickerPanel","pageStart","onPageStartChange","onSelect","useIntl","years","useMemo","Array","from","_","index","_jsxs","MonthPickerPanel","months","HeaderNavButton","Header","showTodayButton","onCurrentChange","onSelectToday","yearOpen","setYearOpen","monthOpen","setMonthOpen","yearPageStart","setYearPageStart","currentYear","yearText","monthText","useEffect","handleYearSelect","source","handleMonthSelect","Popover","open","onOpenChange","trigger","placement","rootClassName","content","Space","size","Button","subtract","readWidth","width","useStackedLayout","ref","stackAt","setStacked","DateCell","dayEvents","selected","currentMonth","badgeMaxCount","renderDateCell","count","customCell","Badge","getEventTagLabel","raw","EventItem","renderEventItem","onEventClick","clickable","handleClick","tagLabel","List","Item","role","tabIndex","onKeyDown","eventKey","preventDefault","Tag","color","PanelTitle","subtitle","dateText","countText","PanelScrollShadow","visible","usePanelScrollShadow","resetKey","scrollRef","scrolled","setScrolled","scrollTop","onScroll","useCallback","currentTarget","ViewPanel","loading","renderPanelHeader","scrollable","panelHeader","useRef","Card","bordered","Spin","spinning","container","dataSource","renderItem","Empty","description","LONG_PRESS_DELAY","SCROLL_CANCEL_THRESHOLD","TAP_MOVE_THRESHOLD","getPopoverKey","getSlotIndexFromPoint","clientX","clientY","slotElements","querySelectorAll","closestIndex","closestDistance","Infinity","candidate","rect","Number","getAttribute","isNaN","top","bottom","left","right","centerY","distance","abs","clearDocumentTextSelection","selection","document","getSelection","isCollapsed","removeAllRanges","useScheduleSelectionGesture","selectedSlots","setSelectedSlots","allowMultiSelect","onSlotRangeChange","onFreeSlotClick","dragging","setDragging","activePopoverKey","setActivePopoverKey","slotsRef","draggingRef","dragStartIndexRef","longPressTimerRef","touchStateRef","slotsDataRef","selectedSlotsRef","allowMultiSelectRef","suppressTriggerUntilRef","suppressMouseUntilRef","scrollLockRef","handlersRef","selectedKeys","Set","selectedAnchorKey","formPopoverKey","clearLongPress","clearTimeout","unlockContainerScroll","overflow","touchAction","lockContainerScroll","resetGestureState","touchState","pointerId","hasPointerCapture","releasePointerCapture","classList","remove","selectSlots","nextSlots","action","getSelectableRange","startIndex","endIndex","min","showFormPopoverForSlots","slotsList","anchorSlot","startSlotSelection","showPopover","lockScroll","Date","now","finishSelection","fromTouch","hadSelection","updateSelectionRange","shouldIgnoreMouseSelectionEvent","handleMouseDown","handleMouseEnter","handleMouseUp","handleMouseLeave","handlePopoverOpenChange","currentPopoverKey","isForm","prevKey","clearPendingTouch","isStillOnSameSlot","currentIndex","shouldCancelPendingGesture","moveX","x","moveY","y","activateLongPress","lastX","lastY","longPressed","active","setPointerCapture","handlePointerDown","pointerType","isPrimary","slotElement","target","closest","contains","moved","selectionTriggered","setTimeout","handlePointerMove","stopPropagation","handlePointerUp","quickTap","handleContextMenu","handleSelectStart","handleTouchMove","touchOptions","passive","capture","DefaultFormInner","FormInfo","column","list","Input","name","rule","placeholder","block","TextArea","SlotEvents","SlotItem","formPopover","popoverOpen","onPopoverOpenChange","onContextMenu","onMouseDown","onPointerDown","onMouseEnter","onMouseUp","renderTimeSlot","renderOccupiedSlot","customNode","autoAdjustOverflow","wrapWithPopover","Tooltip","slotClassName","slotChildren","_Fragment","slotHandlers","inner","_catch","body","recover","e","then","SchedulePanel","onCreate","formInner","formProps","formContext","range","Form","data","onSubmit","_temp","Promise","resolve","reject","SubmitButton","panelStyle","onMouseLeave","slotWithIndex","occupiedPopoverKey","has","extend","customParseFormat","buildMonthRuleCache","currentDate","cache","monthStart","monthEnd","endOf","cursor","ScheduleCalendarInner","_props$mode","_props$events","_props$badgeMaxCount","_props$timeUnit","_props$dayStart","_props$dayEnd","_props$allowMultiSele","onDateChange","propsStyle","_props$stackAt","_props$eventListScrol","eventListScrollable","calendarProps","panelProps","eventListExpanded","stackedLayoutStyle","_useControlValue","setValue","_useControlledState","defaultCurrent","setCurrent","_useState","eventGroup","selectedEvents","ruleContext","monthRuleCache","getDateRule","cached","get","handleSelectDate","info","nextDate","handleCurrentChange","handleGoToday","today","fullCellRender","Calendar","fullscreen","headerRender","todayDisabled","onPanelChange","ScheduleCalendar"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/locale/zh-CN.js","../src/locale/en-US.js","../src/withLocale.js","../src/constants.js","../src/useStackedPanelLayout.js","../src/utils.js","../src/rules.js","../src/events.js","../src/formatCalendarLabels.js","../src/components/Header/NavIcon.js","../src/components/Header/constants.js","../src/components/Header/YearPickerPanel.js","../src/components/Header/MonthPickerPanel.js","../src/components/Header/index.js","../src/useStackedLayout.js","../src/components/DateCell/index.js","../src/components/EventItem/getEventTagLabel.js","../src/components/EventItem/index.js","../src/components/Panel/PanelTitle.js","../src/components/Panel/PanelScrollShadow.js","../src/components/Panel/usePanelScrollShadow.js","../src/components/Panel/ViewPanel.js","../src/timeline.js","../src/timeWindow.js","../src/components/TimeWindow/index.js","../src/components/SchedulePanel/DefaultFormInner.js","../src/components/SchedulePanel/EventDetail.js","../src/components/SchedulePanel/Timeline.js","../src/components/SchedulePanel/index.js","../src/ScheduleCalendar.js"],"sourcesContent":["const locale = {\n 'Header.today': '今天',\n 'Header.prevMonth': '上一月',\n 'Header.nextMonth': '下一月',\n 'Header.prevYearPage': '上一组年份',\n 'Header.nextYearPage': '下一组年份',\n 'Header.yearLabel': '{year}年',\n 'Header.monthLabel': '{monthName}',\n 'Header.monthPickerItem': '{monthName}',\n 'PanelTitle.dateLabel': '{year}年{monthName}{day}日',\n 'PanelTitle.eventCount': '共 {count} 个日程',\n 'ViewPanel.empty': '暂无日程',\n 'SchedulePanel.selectFreeSlot': '点击或拖拽空白处选择时间',\n 'SchedulePanel.cancel': '取消',\n 'SchedulePanel.save': '保存',\n 'SchedulePanel.newScheduleTitle': '新增日程',\n 'SchedulePanel.conflict': '与 {count} 个日程时间冲突',\n 'DefaultFormInner.title': '标题',\n 'DefaultFormInner.titlePlaceholder': '请输入日程标题',\n 'DefaultFormInner.detail': '详情',\n 'DefaultFormInner.detailPlaceholder': '请输入日程详情',\n 'TimeWindow.hours': '{count} 小时',\n 'TimeWindow.minutes': '{count} 分钟',\n 'TimeWindow.editable': '允许编辑',\n 'TimeWindow.locked': '已锁定',\n 'Calendar.month.1': '1月',\n 'Calendar.month.2': '2月',\n 'Calendar.month.3': '3月',\n 'Calendar.month.4': '4月',\n 'Calendar.month.5': '5月',\n 'Calendar.month.6': '6月',\n 'Calendar.month.7': '7月',\n 'Calendar.month.8': '8月',\n 'Calendar.month.9': '9月',\n 'Calendar.month.10': '10月',\n 'Calendar.month.11': '11月',\n 'Calendar.month.12': '12月'\n};\n\nexport default locale;\n","const locale = {\n 'Header.today': 'Today',\n 'Header.prevMonth': 'Previous month',\n 'Header.nextMonth': 'Next month',\n 'Header.prevYearPage': 'Previous years',\n 'Header.nextYearPage': 'Next years',\n 'Header.yearLabel': '{year}',\n 'Header.monthLabel': '{monthName}',\n 'Header.monthPickerItem': '{monthName}',\n 'PanelTitle.dateLabel': '{monthName} {day}, {year}',\n 'PanelTitle.eventCount': '{count} events',\n 'ViewPanel.empty': 'No events',\n 'SchedulePanel.selectFreeSlot': 'Click or drag on free time',\n 'SchedulePanel.cancel': 'Cancel',\n 'SchedulePanel.save': 'Save',\n 'SchedulePanel.newScheduleTitle': 'New event',\n 'SchedulePanel.conflict': 'Overlaps {count} event(s)',\n 'DefaultFormInner.title': 'Title',\n 'DefaultFormInner.titlePlaceholder': 'Enter event title',\n 'DefaultFormInner.detail': 'Details',\n 'DefaultFormInner.detailPlaceholder': 'Enter event details',\n 'TimeWindow.hours': '{count} h',\n 'TimeWindow.minutes': '{count} min',\n 'TimeWindow.editable': 'Editable',\n 'TimeWindow.locked': 'Locked',\n 'Calendar.month.1': 'Jan',\n 'Calendar.month.2': 'Feb',\n 'Calendar.month.3': 'Mar',\n 'Calendar.month.4': 'Apr',\n 'Calendar.month.5': 'May',\n 'Calendar.month.6': 'Jun',\n 'Calendar.month.7': 'Jul',\n 'Calendar.month.8': 'Aug',\n 'Calendar.month.9': 'Sep',\n 'Calendar.month.10': 'Oct',\n 'Calendar.month.11': 'Nov',\n 'Calendar.month.12': 'Dec'\n};\n\nexport default locale;\n","import { createWithIntlProvider } from '@kne/react-intl';\nimport zhCN from './locale/zh-CN';\nimport enUS from './locale/en-US';\n\nconst withLocale = createWithIntlProvider({\n defaultLocale: 'zh-CN',\n messages: {\n 'zh-CN': zhCN,\n 'en-US': enUS\n },\n namespace: 'react-calendar'\n});\n\nexport default withLocale;\n","export const DATE_FORMAT = 'YYYY-MM-DD';\nexport const TIME_FORMAT = 'HH:mm';\n/** Stack panels vertically when container width is below this value (px). */\nexport const LAYOUT_STACK_BREAKPOINT = 560;\n/** Minimum panel viewport height in stacked layout (px), aligned with root min-height. */\nexport const LAYOUT_MIN_HEIGHT = 560;\n","import { useLayoutEffect, useState } from 'react';\nimport { LAYOUT_MIN_HEIGHT } from './constants';\n\nconst measureHeight = node => {\n if (!node) {\n return 0;\n }\n return Math.ceil(node.getBoundingClientRect().height);\n};\n\nexport const useStackedPanelLayout = (rootRef, calendarRef, stacked) => {\n const [layoutStyle, setLayoutStyle] = useState(undefined);\n\n useLayoutEffect(() => {\n if (!stacked) {\n setLayoutStyle(undefined);\n return undefined;\n }\n\n const root = rootRef.current;\n const calendar = calendarRef.current;\n if (!root || !calendar) {\n return undefined;\n }\n\n const update = () => {\n const calendarHeight = measureHeight(calendar);\n const panelViewportHeight = Math.max(calendarHeight, LAYOUT_MIN_HEIGHT);\n const totalHeight = calendarHeight + panelViewportHeight;\n setLayoutStyle({\n height: totalHeight,\n '--schedule-panel-top': `${calendarHeight}px`,\n '--schedule-panel-height': `${panelViewportHeight}px`\n });\n };\n\n update();\n\n if (typeof ResizeObserver === 'undefined') {\n window.addEventListener('resize', update);\n return () => window.removeEventListener('resize', update);\n }\n\n const observer = new ResizeObserver(update);\n observer.observe(calendar);\n observer.observe(root);\n return () => observer.disconnect();\n }, [calendarRef, rootRef, stacked]);\n\n return layoutStyle;\n};\n\nexport default useStackedPanelLayout;\n","import dayjs from 'dayjs';\nimport useControlValue from '@kne/use-control-value';\nimport { DATE_FORMAT, TIME_FORMAT } from './constants';\n\nexport const classNames = (...list) =>\n list\n .flatMap(item => {\n if (!item) {\n return [];\n }\n if (typeof item === 'string') {\n return [item];\n }\n return Object.keys(item).filter(key => item[key]);\n })\n .join(' ');\n\nexport const toDayjs = value => {\n if (!value) {\n return null;\n }\n const date = dayjs(value);\n return date.isValid() ? date : null;\n};\n\nexport const parseDayTime = (date, time) => {\n const day = toDayjs(date) || dayjs();\n const parsed = dayjs(`${day.format(DATE_FORMAT)} ${time}`, `${DATE_FORMAT} ${TIME_FORMAT}`);\n return parsed.isValid() ? parsed : day.startOf('day');\n};\n\nexport const formatRange = (start, end) => `${dayjs(start).format(TIME_FORMAT)} - ${dayjs(end).format(TIME_FORMAT)}`;\n\nexport const getDefaultFormValues = (defaultFormValues, ctx) => {\n if (typeof defaultFormValues === 'function') {\n return defaultFormValues(ctx);\n }\n return {\n title: '',\n detail: '',\n ...(defaultFormValues || {})\n };\n};\n\nexport const sortEventsByStart = events =>\n [...(events || [])].sort((a, b) => {\n const aStart = toDayjs(a.start)?.valueOf() ?? 0;\n const bStart = toDayjs(b.start)?.valueOf() ?? 0;\n return aStart - bStart;\n });\n\nexport const dedupeEventsById = events => {\n const map = new Map();\n (events || []).forEach(event => {\n map.set(event.id, event);\n });\n return [...map.values()];\n};\n\nexport const useControlledState = ({ value, defaultValue, onChange }) => {\n const props = {};\n if (typeof value !== 'undefined') {\n props.value = value;\n }\n if (typeof defaultValue !== 'undefined') {\n props.defaultValue = defaultValue;\n }\n if (onChange) {\n props.onChange = onChange;\n }\n return useControlValue(props);\n};\n","const getRuleDisabled = (result, defaultReason) => {\n if (!result) {\n return null;\n }\n if (typeof result === 'boolean') {\n return result ? { disabled: true, reason: defaultReason } : null;\n }\n if (result.disabled) {\n return { disabled: true, reason: result.reason || defaultReason };\n }\n return null;\n};\n\nexport const checkRule = ({ date, slot, mode, disabledDate, disabledDateTime, availableDateTime }) => {\n if (disabledDate?.(date.toDate())) {\n return { disabled: true };\n }\n const ctx = {\n date: date.toDate(),\n mode,\n ...(slot\n ? {\n slot: {\n start: slot.start.toDate(),\n end: slot.end.toDate()\n }\n }\n : {})\n };\n const disabledResult = getRuleDisabled(disabledDateTime?.(ctx));\n if (disabledResult) {\n return disabledResult;\n }\n if (availableDateTime && !availableDateTime(ctx)) {\n return { disabled: true };\n }\n return null;\n};\n","import dayjs from 'dayjs';\nimport { DATE_FORMAT, TIME_FORMAT } from './constants';\nimport { parseDayTime, toDayjs } from './utils';\nimport { checkRule } from './rules';\n\nexport const normalizeEvent = event => {\n const start = toDayjs(event.start || event.date);\n const end = toDayjs(event.end || event.start || event.date);\n return {\n ...event,\n start,\n end: end && start && !end.isAfter(start) ? start.add(1, 'minute') : end\n };\n};\n\nexport const groupEventsByDate = events => {\n return (events || []).reduce((result, event) => {\n const normalized = normalizeEvent(event);\n if (!normalized.start || !normalized.end) {\n return result;\n }\n const startOfDay = normalized.start.startOf('day');\n const endOfDay = normalized.end.startOf('day');\n let current = startOfDay;\n while (current.isBefore(endOfDay) || current.isSame(endOfDay, 'day')) {\n const key = current.format(DATE_FORMAT);\n result[key] = result[key] || [];\n result[key].push(normalized);\n current = current.add(1, 'day');\n }\n return result;\n }, {});\n};\n\nconst getOverlappingEvents = (slotStart, slotEnd, sortedEvents) => {\n const matched = [];\n for (const event of sortedEvents) {\n if (!event.end.isAfter(slotStart)) {\n continue;\n }\n if (!event.start.isBefore(slotEnd)) {\n break;\n }\n matched.push(event);\n }\n return matched;\n};\n\nexport const generateTimeSlots = ({ date, events, timeUnit = 30, dayStart = '09:00', dayEnd = '18:00', disabledDate, disabledDateTime, availableDateTime, mode = 'schedule' }) => {\n const selectedDate = toDayjs(date) || dayjs();\n const startAt = parseDayTime(selectedDate, dayStart);\n const endAt = parseDayTime(selectedDate, dayEnd);\n if (!startAt.isBefore(endAt)) {\n return [];\n }\n const normalizedEvents = (events || [])\n .map(normalizeEvent)\n .filter(event => event.start && event.end)\n .sort((a, b) => a.start.valueOf() - b.start.valueOf());\n const slots = [];\n let current = startAt;\n\n while (current.isBefore(endAt)) {\n const slotStart = current;\n const slotEnd = slotStart.add(timeUnit, 'minute');\n const matchedEvents = getOverlappingEvents(slotStart, slotEnd, normalizedEvents);\n const baseSlot = {\n key: `${slotStart.format(DATE_FORMAT)}-${slotStart.format(TIME_FORMAT)}`,\n date: slotStart.format(DATE_FORMAT),\n start: slotStart,\n end: slotEnd\n };\n const ruleResult = checkRule({\n date: selectedDate,\n slot: baseSlot,\n mode,\n disabledDate,\n disabledDateTime,\n availableDateTime\n });\n\n slots.push({\n ...baseSlot,\n start: slotStart.toDate(),\n end: slotEnd.toDate(),\n status: ruleResult ? 'disabled' : matchedEvents.length > 0 ? 'occupied' : 'free',\n disabledReason: ruleResult?.reason,\n events: matchedEvents\n });\n current = slotEnd;\n }\n return slots;\n};\n","import dayjs from 'dayjs';\nimport { toDayjs } from './utils';\n\nconst toDay = value => toDayjs(value) || dayjs();\n\nexport const getMonthName = (formatMessage, monthIndex) => formatMessage({ id: `Calendar.month.${monthIndex + 1}` });\n\nexport const getPanelDateLabel = (formatMessage, date) => {\n const d = toDay(date);\n const monthIndex = d.month();\n return formatMessage(\n { id: 'PanelTitle.dateLabel' },\n {\n year: d.year(),\n month: monthIndex + 1,\n day: d.date(),\n monthName: getMonthName(formatMessage, monthIndex)\n }\n );\n};\n\nexport const getHeaderMonthLabel = (formatMessage, date) => {\n const d = toDay(date);\n const monthIndex = d.month();\n return formatMessage(\n { id: 'Header.monthLabel' },\n {\n month: monthIndex + 1,\n monthName: getMonthName(formatMessage, monthIndex)\n }\n );\n};\n\nexport const getMonthPickerItemLabel = (formatMessage, value, monthIndex) =>\n formatMessage(\n { id: 'Header.monthPickerItem' },\n {\n month: monthIndex + 1,\n monthName: getMonthName(formatMessage, monthIndex)\n }\n );\n","import style from './style.module.scss';\n\nconst HeaderNavIcon = ({ direction, className }) => (\n <svg className={className || style['header-nav-icon']} viewBox=\"0 0 16 16\" aria-hidden focusable=\"false\">\n <path d={direction === 'prev' ? 'M10 4 L6 8 L10 12' : 'M6 4 L10 8 L6 12'} fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\n\nexport default HeaderNavIcon;\n","export const YEAR_PAGE_SIZE = 12;\n\nexport const getYearPageStart = year => Math.floor(year / YEAR_PAGE_SIZE) * YEAR_PAGE_SIZE;\n","import { useMemo } from 'react';\nimport { useIntl } from '@kne/react-intl';\nimport { classNames } from '../../utils';\nimport HeaderNavIcon from './NavIcon';\nimport { YEAR_PAGE_SIZE } from './constants';\nimport style from './style.module.scss';\n\nconst PickerPanelNav = ({ label, onClick, children }) => (\n <button type=\"button\" className={style['picker-panel-nav']} aria-label={label} onClick={onClick}>\n {children}\n </button>\n);\n\nconst YearPickerPanel = ({ value, pageStart, onPageStartChange, onSelect }) => {\n const { formatMessage } = useIntl();\n const years = useMemo(() => Array.from({ length: YEAR_PAGE_SIZE }, (_, index) => pageStart + index), [pageStart]);\n return (\n <div className={style['picker-panel']}>\n <div className={style['picker-panel-header']}>\n <PickerPanelNav label={formatMessage({ id: 'Header.prevYearPage' })} onClick={() => onPageStartChange(pageStart - YEAR_PAGE_SIZE)}>\n <HeaderNavIcon direction=\"prev\" className={style['picker-panel-nav-icon']} />\n </PickerPanelNav>\n <div className={style['picker-panel-range']}>\n {pageStart}-{pageStart + YEAR_PAGE_SIZE - 1}\n </div>\n <PickerPanelNav label={formatMessage({ id: 'Header.nextYearPage' })} onClick={() => onPageStartChange(pageStart + YEAR_PAGE_SIZE)}>\n <HeaderNavIcon direction=\"next\" className={style['picker-panel-nav-icon']} />\n </PickerPanelNav>\n </div>\n <div className={style['picker-panel-grid']}>\n {years.map(year => (\n <button key={year} type=\"button\" className={classNames(style['picker-cell'], { [style['picker-cell-active']]: year === value.year() })} onClick={() => onSelect(year)}>\n {year}\n </button>\n ))}\n </div>\n </div>\n );\n};\n\nexport default YearPickerPanel;\n","import { useMemo } from 'react';\nimport { useIntl } from '@kne/react-intl';\nimport { getMonthPickerItemLabel } from '../../formatCalendarLabels';\nimport { classNames } from '../../utils';\nimport style from './style.module.scss';\n\nconst MonthPickerPanel = ({ value, onSelect }) => {\n const { formatMessage } = useIntl();\n const months = useMemo(() => Array.from({ length: 12 }, (_, index) => index), []);\n return (\n <div className={style['picker-panel']}>\n <div className={style['picker-panel-grid']}>\n {months.map(month => (\n <button key={month} type=\"button\" className={classNames(style['picker-cell'], { [style['picker-cell-active']]: month === value.month() })} onClick={() => onSelect(month)}>\n {getMonthPickerItemLabel(formatMessage, value, month)}\n </button>\n ))}\n </div>\n </div>\n );\n};\n\nexport default MonthPickerPanel;\n","import { useEffect, useState } from 'react';\nimport dayjs from 'dayjs';\nimport { Button, Popover, Space } from 'antd';\nimport { useIntl } from '@kne/react-intl';\nimport { getHeaderMonthLabel } from '../../formatCalendarLabels';\nimport { toDayjs } from '../../utils';\nimport HeaderNavIcon from './NavIcon';\nimport YearPickerPanel from './YearPickerPanel';\nimport MonthPickerPanel from './MonthPickerPanel';\nimport { getYearPageStart } from './constants';\nimport style from './style.module.scss';\n\nconst HeaderNavButton = ({ label, onClick, children }) => (\n <button type=\"button\" className={style['header-nav']} aria-label={label} onClick={onClick}>\n {children}\n </button>\n);\n\nconst Header = ({ current, showTodayButton, onCurrentChange, onSelectToday }) => {\n const { formatMessage } = useIntl();\n const date = toDayjs(current) || dayjs();\n const [yearOpen, setYearOpen] = useState(false);\n const [monthOpen, setMonthOpen] = useState(false);\n const [yearPageStart, setYearPageStart] = useState(() => getYearPageStart(date.year()));\n const currentYear = date.year();\n const yearText = formatMessage({ id: 'Header.yearLabel' }, { year: date.year() });\n const monthText = getHeaderMonthLabel(formatMessage, date);\n\n useEffect(() => {\n if (yearOpen) {\n setYearPageStart(getYearPageStart(currentYear));\n }\n }, [yearOpen, currentYear]);\n\n const handleYearSelect = year => {\n onCurrentChange(date.year(year), { source: 'picker' });\n setYearOpen(false);\n };\n\n const handleMonthSelect = month => {\n onCurrentChange(date.month(month), { source: 'picker' });\n setMonthOpen(false);\n };\n\n return (\n <div className={style['calendar-header']}>\n <div className={style['calendar-title']}>\n <Popover\n open={yearOpen}\n onOpenChange={open => {\n setYearOpen(open);\n if (open) {\n setMonthOpen(false);\n }\n }}\n trigger=\"click\"\n placement=\"bottomLeft\"\n rootClassName={style['header-picker-popover']}\n content={<YearPickerPanel value={date} pageStart={yearPageStart} onPageStartChange={setYearPageStart} onSelect={handleYearSelect} />}\n >\n <button type=\"button\" className={style['calendar-title-part']}>\n {yearText}\n </button>\n </Popover>\n <Popover\n open={monthOpen}\n onOpenChange={open => {\n setMonthOpen(open);\n if (open) {\n setYearOpen(false);\n }\n }}\n trigger=\"click\"\n placement=\"bottomLeft\"\n rootClassName={style['header-picker-popover']}\n content={<MonthPickerPanel value={date} onSelect={handleMonthSelect} />}\n >\n <button type=\"button\" className={style['calendar-title-part']}>\n {monthText}\n </button>\n </Popover>\n </div>\n <Space size={4} className={style['header-actions']}>\n {showTodayButton ? (\n <Button className={style['header-today']} type=\"text\" size=\"small\" onClick={onSelectToday}>\n {formatMessage({ id: 'Header.today' })}\n </Button>\n ) : null}\n <HeaderNavButton label={formatMessage({ id: 'Header.prevMonth' })} onClick={() => onCurrentChange(date.subtract(1, 'month'), { source: 'prevMonth' })}>\n <HeaderNavIcon direction=\"prev\" />\n </HeaderNavButton>\n <HeaderNavButton label={formatMessage({ id: 'Header.nextMonth' })} onClick={() => onCurrentChange(date.add(1, 'month'), { source: 'nextMonth' })}>\n <HeaderNavIcon direction=\"next\" />\n </HeaderNavButton>\n </Space>\n </div>\n );\n};\n\nexport default Header;\n","import { useEffect, useLayoutEffect, useState } from 'react';\n\nconst readWidth = node => {\n if (!node) {\n return 0;\n }\n return node.getBoundingClientRect().width;\n};\n\nexport const useStackedLayout = (ref, stackAt) => {\n const [stacked, setStacked] = useState(false);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) {\n return;\n }\n setStacked(readWidth(node) < stackAt);\n }, [ref, stackAt]);\n\n useEffect(() => {\n const node = ref.current;\n if (!node) {\n return undefined;\n }\n\n const update = () => {\n setStacked(readWidth(node) < stackAt);\n };\n\n update();\n\n if (typeof ResizeObserver === 'undefined') {\n window.addEventListener('resize', update);\n return () => window.removeEventListener('resize', update);\n }\n\n const observer = new ResizeObserver(() => update());\n observer.observe(node);\n return () => observer.disconnect();\n }, [ref, stackAt]);\n\n return stacked;\n};\n\nexport default useStackedLayout;\n","import { Badge } from 'antd';\nimport { classNames } from '../../utils';\nimport style from './style.module.scss';\n\nconst DateCell = ({ date, dayEvents, selected, currentMonth, disabled, badgeMaxCount, renderDateCell }) => {\n const count = dayEvents.length;\n const customCell = renderDateCell?.(date.toDate(), {\n events: dayEvents,\n selected,\n currentMonth\n });\n if (customCell) {\n return customCell;\n }\n return (\n <div\n className={classNames(style['date-cell'], {\n [style['date-selected']]: selected,\n [style['date-muted']]: !currentMonth && !selected,\n [style['date-disabled']]: disabled && !selected,\n [style['date-has-events']]: count > 0 && !selected\n })}\n >\n <div className={style['date-number']}>{date.date()}</div>\n {count ? <Badge count={count > badgeMaxCount ? `${badgeMaxCount}+` : count} size=\"small\" /> : null}\n </div>\n );\n};\n\nexport default DateCell;\n","const getEventTagLabel = event => {\n if (!event.raw || typeof event.raw !== 'object') {\n return null;\n }\n const { label, type } = event.raw;\n if (typeof label === 'string' && label) {\n return label;\n }\n if (typeof type === 'string' && type) {\n return type;\n }\n return null;\n};\n\nexport default getEventTagLabel;\n","import { List, Tag } from 'antd';\nimport { classNames, formatRange } from '../../utils';\nimport getEventTagLabel from './getEventTagLabel';\nimport style from './style.module.scss';\n\nconst EventItem = ({ event, date, mode, renderEventItem, onEventClick }) => {\n if (renderEventItem) {\n return renderEventItem(event, { date, mode, onEventClick });\n }\n const clickable = !event.disabled && (typeof event.onClick === 'function' || typeof onEventClick === 'function');\n const handleClick = () => {\n if (typeof event.onClick === 'function') {\n event.onClick(event, { date, mode });\n return;\n }\n onEventClick?.(event, { date, mode });\n };\n const tagLabel = getEventTagLabel(event);\n return (\n <List.Item className={style['event-list-item']}>\n <div\n className={classNames(style['event-item'], {\n [style['event-item-clickable']]: clickable,\n [style['event-item-disabled']]: event.disabled\n })}\n role={clickable ? 'button' : undefined}\n tabIndex={clickable ? 0 : undefined}\n onClick={clickable ? handleClick : undefined}\n onKeyDown={\n clickable\n ? eventKey => {\n if (eventKey.key === 'Enter' || eventKey.key === ' ') {\n eventKey.preventDefault();\n handleClick();\n }\n }\n : undefined\n }\n >\n <div className={style['event-item-head']}>\n <div className={style['event-item-title']}>{event.title}</div>\n {tagLabel ? (\n <Tag className={style['event-item-tag']} color={event.color}>\n {tagLabel}\n </Tag>\n ) : null}\n </div>\n <div className={style['event-item-time']}>{formatRange(event.start, event.end)}</div>\n {event.detail ? <div className={style['event-item-detail']}>{event.detail}</div> : null}\n </div>\n </List.Item>\n );\n};\n\nexport default EventItem;\n","import { useIntl } from '@kne/react-intl';\nimport { getPanelDateLabel } from '../../formatCalendarLabels';\nimport style from './style.module.scss';\n\nconst PanelTitle = ({ date, subtitle, count }) => {\n const { formatMessage } = useIntl();\n const dateText = getPanelDateLabel(formatMessage, date);\n const countText = typeof count === 'number' ? formatMessage({ id: 'PanelTitle.eventCount' }, { count }) : null;\n return (\n <div className={style['panel-title']}>\n <span>{dateText}</span>\n {subtitle || countText ? <span>{subtitle || countText}</span> : null}\n </div>\n );\n};\n\nexport default PanelTitle;\n","import { classNames } from '../../utils';\nimport style from './style.module.scss';\n\nconst PanelScrollShadow = ({ visible }) => <div className={classNames(style['panel-scroll-shadow'], { [style['panel-scroll-shadow-visible']]: visible })} aria-hidden />;\n\nexport default PanelScrollShadow;\n","import { useCallback, useEffect, useState } from 'react';\nimport { classNames } from '../../utils';\nimport style from './style.module.scss';\n\nconst usePanelScrollShadow = (resetKey, scrollRef) => {\n const [scrolled, setScrolled] = useState(false);\n\n useEffect(() => {\n if (scrollRef?.current) {\n scrollRef.current.scrollTop = 0;\n }\n setScrolled(false);\n }, [resetKey, scrollRef]);\n\n const onScroll = useCallback(event => {\n setScrolled(event.currentTarget.scrollTop > 0);\n }, []);\n\n return { scrolled, onScroll };\n};\n\nexport default usePanelScrollShadow;\n","import { useMemo, useRef } from 'react';\nimport { Card, Empty, List, Spin } from 'antd';\nimport { useIntl } from '@kne/react-intl';\nimport { DATE_FORMAT } from '../../constants';\nimport { classNames, sortEventsByStart } from '../../utils';\nimport EventItem from '../EventItem';\nimport PanelTitle from './PanelTitle';\nimport PanelScrollShadow from './PanelScrollShadow';\nimport usePanelScrollShadow from './usePanelScrollShadow';\nimport style from './style.module.scss';\n\nconst ViewPanel = ({ date, events, loading, renderEventItem, renderPanelHeader, onEventClick, scrollable = true }) => {\n const { formatMessage } = useIntl();\n const sortedEvents = useMemo(() => sortEventsByStart(events), [events]);\n const panelHeader = renderPanelHeader?.({ date: date.toDate(), mode: 'view', events: sortedEvents });\n const scrollRef = useRef(null);\n const { scrolled, onScroll } = usePanelScrollShadow(date.format(DATE_FORMAT), scrollRef);\n return (\n <Card bordered={false} title={panelHeader || <PanelTitle date={date} count={sortedEvents.length} />} className={classNames(style['panel-card'], !scrollable && style['panel-card-expanded'])}>\n <Spin spinning={!!loading} classNames={{ root: style['panel-spin'], container: style['panel-spin-container'] }}>\n <div ref={scrollRef} className={classNames(style['panel-scroll-body'], !scrollable && style['panel-scroll-body-expanded'])} onScroll={scrollable ? onScroll : undefined}>\n {scrollable ? <PanelScrollShadow visible={scrolled} /> : null}\n <div className={style['panel-scroll-content']}>\n {sortedEvents.length ? (\n <List dataSource={sortedEvents} renderItem={event => <EventItem event={event} date={date.toDate()} mode=\"view\" renderEventItem={renderEventItem} onEventClick={onEventClick} />} />\n ) : (\n <Empty description={formatMessage({ id: 'ViewPanel.empty' })} />\n )}\n </div>\n </div>\n </Spin>\n </Card>\n );\n};\n\nexport default ViewPanel;\n","import dayjs from 'dayjs';\n\nexport const MINUTE_MS = 60 * 1000;\n\nconst toMs = value => {\n if (value === null || typeof value === 'undefined') {\n return NaN;\n }\n if (typeof value === 'number') {\n return value;\n }\n const date = dayjs(value);\n return date.isValid() ? date.valueOf() : NaN;\n};\n\nexport const snapToStep = (ms, { originMs, stepMs, mode = 'round' }) => {\n const fn = mode === 'floor' ? Math.floor : mode === 'ceil' ? Math.ceil : Math.round;\n return originMs + fn((ms - originMs) / stepMs) * stepMs;\n};\n\nconst clamp = (value, min, max) => Math.min(Math.max(value, min), max);\n\n/**\n * Clip events to the day window and lay overlapping ones out side by side.\n * Returns `{ event, startMs, endMs, column, columns }` sorted by start.\n */\nexport const layoutTimelineEvents = (events, { startMs, endMs }) => {\n const items = (events || [])\n .map(event => {\n const s = Math.max(toMs(event.start), startMs);\n const e = Math.min(toMs(event.end), endMs);\n return { event, startMs: s, endMs: e };\n })\n .filter(item => Number.isFinite(item.startMs) && Number.isFinite(item.endMs) && item.endMs > item.startMs)\n .sort((a, b) => a.startMs - b.startMs || b.endMs - a.endMs);\n\n let cluster = [];\n let clusterEnd = -Infinity;\n let columnEnds = [];\n const flush = () => {\n cluster.forEach(item => {\n item.columns = columnEnds.length;\n });\n cluster = [];\n columnEnds = [];\n };\n items.forEach(item => {\n if (item.startMs >= clusterEnd) {\n flush();\n clusterEnd = -Infinity;\n }\n let column = columnEnds.findIndex(end => end <= item.startMs);\n if (column === -1) {\n column = columnEnds.length;\n columnEnds.push(item.endMs);\n } else {\n columnEnds[column] = item.endMs;\n }\n item.column = column;\n cluster.push(item);\n clusterEnd = Math.max(clusterEnd, item.endMs);\n });\n flush();\n return items;\n};\n\n/** Merge consecutive disabled slots (same reason) into ranges. */\nexport const mergeDisabledSlots = slots => {\n const ranges = [];\n (slots || []).forEach(slot => {\n if (slot.status !== 'disabled') {\n return;\n }\n const startMs = toMs(slot.start);\n const endMs = toMs(slot.end);\n const last = ranges[ranges.length - 1];\n if (last && last.endMs === startMs && last.reason === slot.disabledReason) {\n last.endMs = endMs;\n return;\n }\n ranges.push({ startMs, endMs, reason: slot.disabledReason });\n });\n return ranges;\n};\n\nexport const toBlockers = ranges =>\n (ranges || [])\n .map(range => ({ startMs: toMs(range.startMs ?? range.start), endMs: toMs(range.endMs ?? range.end) }))\n .filter(range => Number.isFinite(range.startMs) && Number.isFinite(range.endMs) && range.endMs > range.startMs)\n .sort((a, b) => a.startMs - b.startMs);\n\n/**\n * The free gap around `ms` between blockers, bounded by the day window.\n * Returns null when `ms` falls inside a blocker.\n */\nexport const getFreeGap = (ms, blockers, { startMs, endMs }) => {\n let gapStart = startMs;\n let gapEnd = endMs;\n for (const blocker of blockers || []) {\n if (blocker.startMs <= ms && ms < blocker.endMs) {\n return null;\n }\n if (blocker.endMs <= ms) {\n gapStart = Math.max(gapStart, blocker.endMs);\n } else if (blocker.startMs > ms) {\n gapEnd = Math.min(gapEnd, blocker.startMs);\n }\n }\n if (ms < startMs || ms >= endMs || gapEnd <= gapStart) {\n return null;\n }\n return { startMs: gapStart, endMs: gapEnd };\n};\n\n/** Range created by pressing at `anchorMs` and dragging to `pointerMs`, kept inside `gap`. */\nexport const createSelectionRange = ({ anchorMs, pointerMs, gap, originMs, stepMs }) => {\n const anchorStart = clamp(snapToStep(anchorMs, { originMs, stepMs, mode: 'floor' }), gap.startMs, gap.endMs);\n const anchorEnd = Math.min(anchorStart + stepMs, gap.endMs);\n const pointer = clamp(pointerMs, gap.startMs, gap.endMs);\n if (pointer >= anchorStart) {\n const end = clamp(snapToStep(pointer, { originMs, stepMs, mode: 'ceil' }), anchorEnd, gap.endMs);\n return { startMs: anchorStart, endMs: end };\n }\n const start = clamp(snapToStep(pointer, { originMs, stepMs, mode: 'floor' }), gap.startMs, anchorStart);\n return { startMs: start, endMs: anchorEnd };\n};\n\n/** Default range for a single click: one `unitMs` block that contains the pointer, fitted into `gap`. */\nexport const clickSelectionRange = ({ pointerMs, gap, originMs, unitMs }) => {\n const duration = Math.min(unitMs, gap.endMs - gap.startMs);\n const start = clamp(snapToStep(pointerMs, { originMs, stepMs: unitMs, mode: 'floor' }), gap.startMs, gap.endMs - duration);\n return { startMs: start, endMs: start + duration };\n};\n\nexport const moveSelectionRange = ({ range, deltaMs, gap, originMs, stepMs }) => {\n const duration = range.endMs - range.startMs;\n const start = clamp(snapToStep(range.startMs + deltaMs, { originMs, stepMs }), gap.startMs, gap.endMs - duration);\n return { startMs: start, endMs: start + duration };\n};\n\nexport const resizeSelectionRange = ({ range, edge, pointerMs, gap, originMs, stepMs, minMs = stepMs }) => {\n const snapped = snapToStep(pointerMs, { originMs, stepMs });\n if (edge === 'start') {\n const start = clamp(snapped, gap.startMs, range.endMs - minMs);\n return { startMs: start, endMs: range.endMs };\n }\n const end = clamp(snapped, range.startMs + minMs, gap.endMs);\n return { startMs: range.startMs, endMs: end };\n};\n\nexport const findOverlappingEvents = (range, events) => {\n if (!range) {\n return [];\n }\n return (events || []).filter(event => toMs(event.start) < range.endMs && toMs(event.end) > range.startMs);\n};\n\nexport const findOverlappingSlots = (range, slots) => {\n if (!range) {\n return [];\n }\n return (slots || []).filter(slot => toMs(slot.start) < range.endMs && toMs(slot.end) > range.startMs);\n};\n","import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\ndayjs.extend(customParseFormat);\n\nexport const DEFAULT_DURATION = 60;\nexport const DEFAULT_STEP = 1;\nexport const DEFAULT_DEBOUNCE_WAIT = 300;\nexport const DEFAULT_SEPARATOR = ' ~ ';\nexport const DEFAULT_FORMAT = ['YYYY-MM-DD HH:mm', 'HH:mm'];\nexport const DEFAULT_MIN_VISIBLE_SPAN = 360;\n\nconst MINUTE_MS = 60 * 1000;\nconst HOUR_MS = 60 * MINUTE_MS;\nconst PARSE_FORMATS = ['YYYY-MM-DD HH:mm:ss', 'YYYY-MM-DD HH:mm', 'YYYY-MM-DD'];\n\nexport const parseDateLike = value => {\n if (value == null || value === '') {\n return null;\n }\n if (dayjs.isDayjs(value)) {\n return value.isValid() ? value : null;\n }\n const direct = dayjs(value);\n if (direct.isValid()) {\n return direct;\n }\n if (typeof value === 'string') {\n const parsed = dayjs(value, PARSE_FORMATS, true);\n return parsed.isValid() ? parsed : null;\n }\n return null;\n};\n\nconst isEmptyBound = value => value == null || value === '';\n\nconst defaultDayRange = now => {\n const day = (parseDateLike(now) || dayjs()).startOf('day');\n return [day, day.add(1, 'day')];\n};\n\n/**\n * `null` 或 `[null, null]` 表示不限制;单侧为空表示该侧不限制;`undefined` 为当天全天。\n */\nexport const resolveRange = (range, now = dayjs()) => {\n if (range === null) {\n return [null, null];\n }\n if (!Array.isArray(range)) {\n return defaultDayRange(now);\n }\n const start = isEmptyBound(range[0]) ? null : parseDateLike(range[0]);\n const end = isEmptyBound(range[1]) ? null : parseDateLike(range[1]);\n const startInvalid = !isEmptyBound(range[0]) && !start;\n const endInvalid = !isEmptyBound(range[1]) && !end;\n if (startInvalid || endInvalid || (start && end && !end.isAfter(start))) {\n return defaultDayRange(now);\n }\n return [start, end];\n};\n\nexport const resolveDuration = (duration, rangeStart, rangeEnd) => {\n const requested = Number(duration) > 0 ? Number(duration) : DEFAULT_DURATION;\n if (!rangeStart || !rangeEnd) {\n return requested;\n }\n const rangeMinutes = rangeEnd.diff(rangeStart, 'minute');\n if (rangeMinutes > 0 && requested > rangeMinutes) {\n return rangeMinutes;\n }\n return requested;\n};\n\nexport const resolveStep = step => (Number(step) > 0 ? Number(step) : DEFAULT_STEP);\n\nexport const resolveVisibleSpan = ({ visibleSpan, duration, baseDuration = duration, rangeStart, rangeEnd }) => {\n const minimum = duration * 1.5;\n let span = Number(visibleSpan) > 0 ? Number(visibleSpan) : Math.max(baseDuration * 6, DEFAULT_MIN_VISIBLE_SPAN);\n if (rangeStart && rangeEnd && !(Number(visibleSpan) > 0)) {\n span = Math.min(span, rangeEnd.diff(rangeStart, 'minute'));\n }\n return Math.max(span, minimum);\n};\n\nconst snapMs = (ms, stepMs, mode = 'round') => {\n const anchor = dayjs(ms).startOf('day').valueOf();\n const units = (ms - anchor) / stepMs;\n const snapped = mode === 'floor' ? Math.floor(units) : mode === 'ceil' ? Math.ceil(units) : Math.round(units);\n return anchor + snapped * stepMs;\n};\n\nexport const clampWindowStart = (startInput, { rangeStart, rangeEnd, duration, step, snap = true, now }) => {\n const durationMs = duration * MINUTE_MS;\n const minMs = rangeStart ? rangeStart.valueOf() : -Infinity;\n const maxMs = rangeEnd ? rangeEnd.valueOf() - durationMs : Infinity;\n if (maxMs <= minMs) {\n return dayjs(minMs);\n }\n const fallback = rangeStart || parseDateLike(now) || dayjs();\n const start = parseDateLike(startInput) || fallback;\n const stepMs = step * MINUTE_MS;\n let target = snap ? snapMs(start.valueOf(), stepMs) : start.valueOf();\n if (target > maxMs) {\n target = snap ? snapMs(maxMs, stepMs, 'floor') : maxMs;\n }\n if (target < minMs) {\n target = snap ? snapMs(minMs, stepMs, 'ceil') : minMs;\n }\n return dayjs(Math.min(Math.max(target, minMs), maxMs));\n};\n\nexport const createTimeWindow = ({ start, duration, range, step, now, snap = true } = {}) => {\n const [rangeStart, rangeEnd] = resolveRange(range, now);\n const resolvedDuration = resolveDuration(duration, rangeStart, rangeEnd);\n const resolvedStep = resolveStep(step);\n const windowStart = clampWindowStart(start == null ? null : start, {\n rangeStart,\n rangeEnd,\n duration: resolvedDuration,\n step: resolvedStep,\n snap,\n now\n });\n return {\n start: windowStart,\n end: windowStart.add(resolvedDuration, 'minute'),\n rangeStart,\n rangeEnd,\n duration: resolvedDuration,\n step: resolvedStep\n };\n};\n\n/**\n * 拖动窗口一侧边界:另一侧保持不动,拖动侧按 step 吸附,并受最短 / 最长时长与范围约束。\n */\nexport const resizeTimeWindow = ({ edge, pointerMs, startMs, endMs, step, rangeStart, rangeEnd, minDuration, maxDuration }) => {\n const stepMs = resolveStep(step) * MINUTE_MS;\n const minMs = (Number(minDuration) > 0 ? Number(minDuration) : resolveStep(step)) * MINUTE_MS;\n const maxMs = Number(maxDuration) > 0 ? Number(maxDuration) * MINUTE_MS : Infinity;\n const rangeStartMs = rangeStart ? dayjs(rangeStart).valueOf() : -Infinity;\n const rangeEndMs = rangeEnd ? dayjs(rangeEnd).valueOf() : Infinity;\n if (edge === 'start') {\n let next = snapMs(pointerMs, stepMs);\n next = Math.min(next, endMs - minMs);\n next = Math.max(next, endMs - maxMs, rangeStartMs);\n return { startMs: next, duration: (endMs - next) / MINUTE_MS };\n }\n let next = snapMs(pointerMs, stepMs);\n next = Math.max(next, startMs + minMs);\n next = Math.min(next, startMs + maxMs, rangeEndMs);\n return { startMs, duration: (next - startMs) / MINUTE_MS };\n};\n\nexport const toWindowValue = window => [window.start.toDate(), window.end.toDate()];\n\nexport const getViewport = ({ startMs, duration }, visibleSpanMinutes) => {\n const spanMs = visibleSpanMinutes * MINUTE_MS;\n const centerMs = startMs + (duration * MINUTE_MS) / 2;\n return { startMs: centerMs - spanMs / 2, endMs: centerMs + spanMs / 2, spanMs };\n};\n\nexport const wheelDeltaToPx = ({ delta, deltaMode = 0, trackWidth }) => {\n if (deltaMode === 1) {\n return delta * 16;\n }\n if (deltaMode === 2) {\n return delta * (trackWidth > 0 ? trackWidth : 1);\n }\n return delta;\n};\n\n/**\n * 把滚轮像素累加为整步数:步数与刻度尺比例一致,单次离散滚动至少移动一步。\n */\nexport const consumeWheelSteps = ({ accumulatedPx, deltaPx, pxPerStep, discrete }) => {\n const sameDirection = accumulatedPx === 0 || Math.sign(accumulatedPx) === Math.sign(deltaPx);\n const total = (sameDirection ? accumulatedPx : 0) + deltaPx;\n const perStep = pxPerStep > 0 ? pxPerStep : 1;\n let steps = Math.trunc(total / perStep) || 0;\n let rest = total - steps * perStep;\n if (steps === 0 && discrete && deltaPx !== 0) {\n steps = Math.sign(deltaPx);\n rest = 0;\n }\n return { steps, accumulatedPx: rest };\n};\n\nexport const DEFAULT_INERTIA_TIME_CONSTANT = 325;\nconst VELOCITY_WINDOW_MS = 120;\n\n/**\n * `true` 为默认强度 1,数字为强度倍数,`false` / `0` 关闭。返回滑行衰减时间常数(ms),0 表示关闭。\n */\nexport const resolveInertia = inertia => {\n if (inertia === false || inertia == null) {\n return inertia == null ? DEFAULT_INERTIA_TIME_CONSTANT : 0;\n }\n if (inertia === true) {\n return DEFAULT_INERTIA_TIME_CONSTANT;\n }\n const strength = Number(inertia);\n return strength > 0 ? DEFAULT_INERTIA_TIME_CONSTANT * strength : 0;\n};\n\n/**\n * samples: [{ t, ms }],按时间顺序;返回最近一段内每毫秒移动的时间量。\n */\nexport const estimateVelocity = (samples, now) => {\n if (!samples || samples.length < 2) {\n return 0;\n }\n const latest = samples[samples.length - 1];\n const reference = now == null ? latest.t : now;\n if (reference - latest.t > VELOCITY_WINDOW_MS / 2) {\n return 0;\n }\n const recent = samples.filter(sample => latest.t - sample.t <= VELOCITY_WINDOW_MS);\n if (recent.length < 2) {\n return 0;\n }\n const first = recent[0];\n const elapsed = latest.t - first.t;\n return elapsed > 0 ? (latest.ms - first.ms) / elapsed : 0;\n};\n\nexport const timeAtClientX = ({ clientX, rectLeft, rectWidth, rangeStartMs, rangeEndMs, grabOffsetMs = 0 }) => {\n const span = Math.max(rangeEndMs - rangeStartMs, 1);\n const width = rectWidth > 0 ? rectWidth : 1;\n const ratio = Math.min(Math.max((clientX - rectLeft) / width, 0), 1);\n return rangeStartMs + ratio * span - grabOffsetMs;\n};\n\nexport const formatTimeWindowParts = ({ start, end, format = DEFAULT_FORMAT }) => {\n const startDate = parseDateLike(start);\n const endDate = parseDateLike(end);\n if (!startDate || !endDate || typeof format === 'function') {\n return null;\n }\n const formats = Array.isArray(format) ? format : [format, format];\n const startText = startDate.format(formats[0] || DEFAULT_FORMAT[0]);\n let endFormat = formats[1] || formats[0] || DEFAULT_FORMAT[1];\n const endAtMidnight = endDate.valueOf() === endDate.startOf('day').valueOf();\n if (format === DEFAULT_FORMAT && !endAtMidnight && !endDate.isSame(startDate, 'day')) {\n endFormat = 'MM-DD HH:mm';\n }\n return [startText, endDate.format(endFormat)];\n};\n\nexport const formatTimeWindow = ({ start, end, format = DEFAULT_FORMAT, separator = DEFAULT_SEPARATOR }) => {\n if (typeof format === 'function') {\n const startDate = parseDateLike(start);\n const endDate = parseDateLike(end);\n return startDate && endDate ? format(startDate.toDate(), endDate.toDate()) : '';\n }\n const parts = formatTimeWindowParts({ start, end, format });\n return parts ? `${parts[0]}${separator}${parts[1]}` : '';\n};\n\nconst LABEL_INTERVALS = [1, 2, 3, 4, 6, 8, 12, 24];\n\nconst pickLabelEvery = (pxPerHour, minLabelPx) => {\n if (!(pxPerHour > 0)) {\n return 3;\n }\n return LABEL_INTERVALS.find(every => pxPerHour * every >= minLabelPx) || 24;\n};\n\nconst TICK_MINUTES = [1, 2, 5, 10, 15, 30, 60];\nconst MIN_TICK_GAP_PX = 7;\n\nconst pickTickMinutes = (pxPerHour, labelEvery) => {\n const fit = TICK_MINUTES.find(minutes => (pxPerHour * minutes) / 60 >= MIN_TICK_GAP_PX);\n return fit || labelEvery * 60;\n};\n\n/**\n * 只生成当前视窗 [viewStart, viewEnd] 内的刻度;`outOfRange` 标出超出可选范围的刻度。\n */\nexport const buildScaleTicks = (viewStart, viewEnd, { trackWidth, rangeStart, rangeEnd, minLabelPx = 52 } = {}) => {\n const viewStartMs = dayjs(viewStart).valueOf();\n const viewEndMs = dayjs(viewEnd).valueOf();\n const span = viewEndMs - viewStartMs;\n if (span <= 0) {\n return [];\n }\n const pxPerHour = trackWidth > 0 ? (trackWidth * HOUR_MS) / span : 0;\n const labelEvery = trackWidth > 0 ? pickLabelEvery(pxPerHour, minLabelPx) : span / HOUR_MS <= 6 ? 1 : 3;\n const tickMinutes = trackWidth > 0 ? pickTickMinutes(pxPerHour, labelEvery) : 60;\n const tickMs = tickMinutes * MINUTE_MS;\n const rangeStartMs = rangeStart ? dayjs(rangeStart).valueOf() : -Infinity;\n const rangeEndMs = rangeEnd ? dayjs(rangeEnd).valueOf() : Infinity;\n const ticks = [];\n let cursorMs = snapMs(viewStartMs, tickMs, 'ceil');\n while (cursorMs <= viewEndMs) {\n const cursor = dayjs(cursorMs);\n const major = cursor.minute() === 0;\n const midnight = major && cursor.hour() === 0;\n const minute = cursor.minute();\n const level = midnight ? 'day' : major ? 'hour' : minute === 30 ? 'half' : minute % 15 === 0 && tickMinutes < 15 ? 'quarter' : 'minute';\n ticks.push({\n key: cursorMs,\n ratio: (cursorMs - viewStartMs) / span,\n major,\n level,\n label: midnight ? cursor.format('MM-DD') : cursor.format('HH:mm'),\n showLabel: major && cursor.hour() % labelEvery === 0,\n outOfRange: cursorMs < rangeStartMs || cursorMs > rangeEndMs\n });\n cursorMs = snapMs(cursorMs + tickMs, tickMs);\n }\n return ticks;\n};\n\nexport const formatDurationParts = minutes => {\n const total = Math.max(Math.round(minutes), 0);\n return { hours: Math.floor(total / 60), minutes: total % 60 };\n};\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport { useIntl } from '@kne/react-intl';\nimport withLocale from '../../withLocale';\nimport { classNames } from '../../utils';\nimport {\n DEFAULT_DEBOUNCE_WAIT,\n DEFAULT_DURATION,\n DEFAULT_FORMAT,\n DEFAULT_SEPARATOR,\n buildScaleTicks,\n consumeWheelSteps,\n createTimeWindow,\n estimateVelocity,\n formatDurationParts,\n formatTimeWindow,\n formatTimeWindowParts,\n getViewport,\n parseDateLike,\n resizeTimeWindow,\n resolveInertia,\n resolveVisibleSpan,\n timeAtClientX,\n toWindowValue,\n wheelDeltaToPx\n} from '../../timeWindow';\nimport style from './style.module.scss';\n\nconst GRIP_MIN_WIDTH = 28;\nconst CLICK_MOVE_TOLERANCE = 4;\nconst DISCRETE_WHEEL_DELTA = 50;\nconst VISUAL_EASE_MS = 70;\nconst WHEEL_IDLE_MS = 140;\nconst WHEEL_NOTCH_EASE_MS = 90;\nconst WHEEL_INERTIA_SCALE = 0.6;\n\nconst sameInstant = (left, right) => {\n const leftDate = parseDateLike(left);\n const rightDate = parseDateLike(right);\n if (!leftDate || !rightDate) {\n return false;\n }\n return Math.abs(leftDate.valueOf() - rightDate.valueOf()) < 1000;\n};\n\nconst readWindowStart = value => {\n if (!Array.isArray(value)) {\n return null;\n }\n return parseDateLike(value[0]);\n};\n\nconst isDiscreteWheel = (event, deltaPx) => {\n if (event.deltaMode !== 0) {\n return true;\n }\n const legacy = event.wheelDeltaY || event.wheelDeltaX;\n if (legacy && Math.abs(legacy) % 120 === 0) {\n return true;\n }\n return Math.abs(deltaPx) >= DISCRETE_WHEEL_DELTA;\n};\n\nconst useElementWidth = ref => {\n const [width, setWidth] = useState(0);\n useEffect(() => {\n const node = ref.current;\n if (!node) {\n return undefined;\n }\n setWidth(node.getBoundingClientRect().width);\n if (typeof ResizeObserver === 'undefined') {\n return undefined;\n }\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n if (entry) {\n setWidth(entry.contentRect.width);\n }\n });\n observer.observe(node);\n return () => observer.disconnect();\n }, [ref]);\n return width;\n};\n\nconst TimeWindowInner = ({\n value,\n defaultValue,\n onChange,\n duration,\n range,\n step,\n visibleSpan,\n debounceWait = DEFAULT_DEBOUNCE_WAIT,\n format = DEFAULT_FORMAT,\n separator = DEFAULT_SEPARATOR,\n showDuration = true,\n size = 'default',\n inertia = true,\n resizable = true,\n wheelEffect = true,\n lockable = false,\n locked,\n defaultLocked = false,\n onLockedChange,\n minDuration,\n maxDuration,\n className,\n style: styleProp\n}) => {\n const { formatMessage } = useIntl();\n const isControlled = typeof value !== 'undefined';\n const [innerValue, setInnerValue] = useState(() => {\n if (Array.isArray(defaultValue) && readWindowStart(defaultValue)) {\n return defaultValue;\n }\n return toWindowValue(createTimeWindow({ duration, range, step }));\n });\n const [draftStart, setDraftStart] = useState(null);\n const [draftDuration, setDraftDuration] = useState(null);\n const [dragging, setDragging] = useState(false);\n const [innerLocked, setInnerLocked] = useState(defaultLocked);\n const lockedControlled = typeof locked === 'boolean';\n const isLocked = lockable && (lockedControlled ? locked : innerLocked);\n const [resizeView, setResizeView] = useState(null);\n const resizeRef = useRef(null);\n const resizeEdge = resizeView ? resizeView.edge : null;\n const rootRef = useRef(null);\n const trackRef = useRef(null);\n const dragRef = useRef(null);\n const wheelAccumRef = useRef(0);\n const interactingRef = useRef(false);\n const timerRef = useRef(null);\n const pendingRef = useRef(null);\n const onChangeRef = useRef(onChange);\n const onLockedChangeRef = useRef(onLockedChange);\n const isLockedRef = useRef(isLocked);\n onLockedChangeRef.current = onLockedChange;\n isLockedRef.current = isLocked;\n const trackWidth = useElementWidth(trackRef);\n\n const committedValue = isControlled ? value : innerValue;\n const committedStart = readWindowStart(committedValue);\n const committedMs = committedStart ? committedStart.valueOf() : null;\n const anchorDay = committedStart ? committedStart.startOf('day').valueOf() : undefined;\n const draftMs = draftStart ? draftStart.valueOf() : null;\n const committedEnd = Array.isArray(committedValue) ? parseDateLike(committedValue[1]) : null;\n const committedEndMs = committedEnd ? committedEnd.valueOf() : null;\n const committedDuration = committedStart && committedEnd && committedEnd.isAfter(committedStart) ? committedEnd.diff(committedStart, 'minute', true) : null;\n const activeDuration = draftDuration != null ? draftDuration : committedDuration != null ? committedDuration : duration;\n\n const initialDurationRef = useRef(committedDuration || DEFAULT_DURATION);\n const optionsRef = useRef(null);\n onChangeRef.current = onChange;\n optionsRef.current = { duration: activeDuration, range, step, now: anchorDay };\n\n const baseWindow = useMemo(() => {\n const start = draftMs == null ? committedMs : draftMs;\n return createTimeWindow({ start, duration: activeDuration, range, step, now: anchorDay });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [anchorDay, committedMs, draftMs, activeDuration, step, JSON.stringify(range === undefined ? 'default' : range)]);\n\n const visibleSpanMinutes = resolveVisibleSpan({\n visibleSpan,\n duration: baseWindow.duration,\n baseDuration: Number(duration) > 0 ? Number(duration) : initialDurationRef.current,\n rangeStart: baseWindow.rangeStart,\n rangeEnd: baseWindow.rangeEnd\n });\n const baseStartMs = baseWindow.start.valueOf();\n const rangeStartMs = baseWindow.rangeStart ? baseWindow.rangeStart.valueOf() : null;\n const rangeEndMs = baseWindow.rangeEnd ? baseWindow.rangeEnd.valueOf() : null;\n const durationMs = baseWindow.duration * 60 * 1000;\n\n const [visualMs, setVisualMs] = useState(null);\n const visualRef = useRef(null);\n const visualTargetRef = useRef(null);\n const frameRef = useRef(null);\n const lastFrameRef = useRef(0);\n const wheelActiveRef = useRef(false);\n const wheelIdleRef = useRef(null);\n const easeRef = useRef(VISUAL_EASE_MS);\n const glidingRef = useRef(false);\n const wheelBaseRef = useRef(null);\n const wheelSamplesRef = useRef([]);\n const wheelDirectionRef = useRef(0);\n const inertiaTau = resolveInertia(inertia);\n const inertiaRef = useRef(inertiaTau);\n inertiaRef.current = inertiaTau;\n\n const clampVisual = ms => {\n let next = ms;\n if (rangeEndMs != null) {\n next = Math.min(next, rangeEndMs - durationMs);\n }\n if (rangeStartMs != null) {\n next = Math.max(next, rangeStartMs);\n }\n return next;\n };\n const clampVisualRef = useRef(clampVisual);\n clampVisualRef.current = clampVisual;\n\n const runFrame = time => {\n const target = visualTargetRef.current;\n const current = visualRef.current == null ? target : visualRef.current;\n const dt = lastFrameRef.current ? Math.min(time - lastFrameRef.current, 64) : 16;\n lastFrameRef.current = time;\n const diff = target - current;\n const settled = Math.abs(diff) < 1000;\n const next = settled ? target : current + diff * (1 - Math.exp(-dt / easeRef.current));\n visualRef.current = next;\n setVisualMs(next);\n if (glidingRef.current) {\n moveToRef.current(next);\n }\n if (settled) {\n frameRef.current = null;\n lastFrameRef.current = 0;\n easeRef.current = VISUAL_EASE_MS;\n glidingRef.current = false;\n return;\n }\n frameRef.current = requestAnimationFrame(runFrame);\n };\n\n const stopGlide = () => {\n if (!glidingRef.current) {\n return false;\n }\n glidingRef.current = false;\n wheelBaseRef.current = null;\n wheelSamplesRef.current = [];\n wheelDirectionRef.current = 0;\n easeRef.current = VISUAL_EASE_MS;\n if (frameRef.current) {\n cancelAnimationFrame(frameRef.current);\n frameRef.current = null;\n lastFrameRef.current = 0;\n }\n visualTargetRef.current = visualRef.current;\n return true;\n };\n\n const glideTo = (ms, easeMs = inertiaTau) => {\n const snapped = createTimeWindow({ start: ms, ...optionsRef.current }).start.valueOf();\n glidingRef.current = true;\n easeRef.current = easeMs;\n setVisualTarget(snapped);\n };\n\n const setVisualTarget = (ms, { immediate = false } = {}) => {\n const target = clampVisualRef.current(ms);\n visualTargetRef.current = target;\n if (immediate || typeof requestAnimationFrame === 'undefined') {\n if (frameRef.current) {\n cancelAnimationFrame(frameRef.current);\n frameRef.current = null;\n lastFrameRef.current = 0;\n }\n visualRef.current = target;\n setVisualMs(target);\n return;\n }\n if (!frameRef.current) {\n frameRef.current = requestAnimationFrame(runFrame);\n }\n };\n const setVisualTargetRef = useRef(setVisualTarget);\n setVisualTargetRef.current = setVisualTarget;\n const glideToRef = useRef(glideTo);\n glideToRef.current = glideTo;\n const stopGlideRef = useRef(stopGlide);\n stopGlideRef.current = stopGlide;\n\n useEffect(\n () => () => {\n if (frameRef.current) {\n cancelAnimationFrame(frameRef.current);\n }\n clearTimeout(wheelIdleRef.current);\n },\n []\n );\n\n useEffect(() => {\n if (dragRef.current || resizeRef.current || wheelActiveRef.current || glidingRef.current) {\n return;\n }\n if (visualRef.current == null) {\n visualRef.current = baseStartMs;\n visualTargetRef.current = baseStartMs;\n return;\n }\n setVisualTargetRef.current(baseStartMs);\n }, [baseStartMs]);\n\n const displayStartMs = resizeView || visualMs == null ? baseStartMs : visualMs;\n const viewport = resizeView || getViewport({ startMs: displayStartMs, duration: baseWindow.duration }, visibleSpanMinutes);\n\n const viewRef = useRef(null);\n const baseWindowRef = useRef(baseWindow);\n baseWindowRef.current = baseWindow;\n viewRef.current = viewport;\n\n const ticks = useMemo(\n () =>\n buildScaleTicks(viewport.startMs, viewport.endMs, {\n trackWidth,\n rangeStart: rangeStartMs,\n rangeEnd: rangeEndMs\n }),\n [viewport.startMs, viewport.endMs, trackWidth, rangeStartMs, rangeEndMs]\n );\n\n const toPercent = ms => ((ms - viewport.startMs) / viewport.spanMs) * 100;\n const width = (durationMs / viewport.spanMs) * 100;\n const left = toPercent(displayStartMs);\n const windowPx = (width / 100) * trackWidth;\n const leftShade = rangeStartMs != null ? Math.min(Math.max(toPercent(rangeStartMs), 0), 100) : 0;\n const rightShade = rangeEndMs != null ? Math.min(Math.max(100 - toPercent(rangeEndMs), 0), 100) : 0;\n\n const label = useMemo(() => {\n if (typeof format === 'function') {\n return format(baseWindow.start.toDate(), baseWindow.end.toDate());\n }\n const [startText, endText] = formatTimeWindowParts({ start: baseWindow.start, end: baseWindow.end, format });\n return (\n <>\n <span>{startText}</span>\n <span className={style.separator}>{separator}</span>\n <span>{endText}</span>\n </>\n );\n }, [baseWindow.end, baseWindow.start, format, separator]);\n\n const ariaValueText = formatTimeWindow({\n start: baseWindow.start,\n end: baseWindow.end,\n format: typeof format === 'function' ? DEFAULT_FORMAT : format,\n separator: typeof separator === 'string' ? separator : DEFAULT_SEPARATOR\n });\n\n const durationText = useMemo(() => {\n const { hours, minutes } = formatDurationParts(baseWindow.duration);\n const parts = [];\n if (hours) {\n parts.push(formatMessage({ id: 'TimeWindow.hours' }, { count: hours }));\n }\n if (minutes || !hours) {\n parts.push(formatMessage({ id: 'TimeWindow.minutes' }, { count: minutes }));\n }\n return parts.join(' ');\n }, [baseWindow.duration, formatMessage]);\n\n const clearTimer = () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n\n useEffect(() => clearTimer, []);\n\n useEffect(() => {\n if (interactingRef.current || draftMs == null) {\n return;\n }\n const pending = Array.isArray(pendingRef.current) ? pendingRef.current : null;\n if (pending && sameInstant(committedMs, pending[0]) && sameInstant(committedEndMs, pending[1])) {\n pendingRef.current = null;\n setDraftStart(null);\n setDraftDuration(null);\n }\n }, [committedMs, committedEndMs, draftMs]);\n\n const publish = nextWindow => {\n const nextValue = toWindowValue(nextWindow);\n baseWindowRef.current = nextWindow;\n pendingRef.current = nextValue;\n setDraftStart(nextWindow.start);\n setDraftDuration(nextWindow.duration);\n clearTimer();\n timerRef.current = setTimeout(() => {\n timerRef.current = null;\n if (!isControlled) {\n setInnerValue(nextValue);\n }\n if (onChangeRef.current) {\n onChangeRef.current(nextValue);\n }\n }, debounceWait);\n };\n\n const moveTo = startInput => {\n const current = baseWindowRef.current;\n const nextWindow = createTimeWindow({\n start: startInput,\n ...optionsRef.current\n });\n if (nextWindow.start.valueOf() === current.start.valueOf()) {\n return;\n }\n publish(nextWindow);\n };\n const moveToRef = useRef(moveTo);\n moveToRef.current = moveTo;\n\n const durationPropRef = useRef(duration);\n useEffect(() => {\n if (durationPropRef.current === duration) {\n return;\n }\n durationPropRef.current = duration;\n publish(createTimeWindow({ ...optionsRef.current, start: baseWindowRef.current.start, duration }));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [duration]);\n\n const pointerTimeAt = (clientX, view) => {\n const rect = trackRef.current ? trackRef.current.getBoundingClientRect() : { left: 0, width: 1 };\n return timeAtClientX({\n clientX,\n rectLeft: rect.left,\n rectWidth: rect.width,\n rangeStartMs: view.startMs,\n rangeEndMs: view.endMs\n });\n };\n\n const startResize = (event, edge) => {\n const view = viewRef.current;\n const current = baseWindowRef.current;\n const edgeMs = edge === 'start' ? current.start.valueOf() : current.end.valueOf();\n resizeRef.current = {\n pointerId: event.pointerId,\n edge,\n view,\n grabOffsetMs: pointerTimeAt(event.clientX, view) - edgeMs\n };\n interactingRef.current = true;\n setResizeView({ ...view, edge });\n try {\n event.currentTarget.setPointerCapture(event.pointerId);\n } catch (error) {\n // pointer may already be released\n }\n };\n\n const moveResize = event => {\n const resize = resizeRef.current;\n const current = baseWindowRef.current;\n const next = resizeTimeWindow({\n edge: resize.edge,\n pointerMs: pointerTimeAt(event.clientX, resize.view) - resize.grabOffsetMs,\n startMs: current.start.valueOf(),\n endMs: current.end.valueOf(),\n step: current.step,\n rangeStart: current.rangeStart,\n rangeEnd: current.rangeEnd,\n minDuration,\n maxDuration\n });\n if (next.startMs === current.start.valueOf() && next.duration === current.duration) {\n return;\n }\n publish(createTimeWindow({ ...optionsRef.current, start: next.startMs, duration: next.duration }));\n };\n\n const endResize = () => {\n const resize = resizeRef.current;\n resizeRef.current = null;\n interactingRef.current = false;\n const current = baseWindowRef.current;\n const centerMs = resize.view.startMs + resize.view.spanMs / 2;\n const frozenStart = centerMs - (current.duration * 60 * 1000) / 2;\n visualRef.current = frozenStart;\n setVisualMs(frozenStart);\n setResizeView(null);\n setVisualTargetRef.current(current.start.valueOf());\n };\n\n const onPointerDown = event => {\n if (event.button != null && event.button !== 0) {\n return;\n }\n const braked = stopGlideRef.current();\n const edgeNode = resizable && event.target && event.target.closest ? event.target.closest('[data-edge]') : null;\n if (edgeNode) {\n startResize(event, edgeNode.getAttribute('data-edge'));\n return;\n }\n dragRef.current = {\n pointerId: event.pointerId,\n startX: event.clientX,\n originMs: visualRef.current == null ? baseWindowRef.current.start.valueOf() : visualRef.current,\n moved: false,\n braked,\n samples: []\n };\n interactingRef.current = true;\n try {\n event.currentTarget.setPointerCapture(event.pointerId);\n } catch (error) {\n // pointer may already be released\n }\n };\n\n const onPointerMove = event => {\n if (resizeRef.current) {\n if (resizeRef.current.pointerId === event.pointerId) {\n moveResize(event);\n }\n return;\n }\n const drag = dragRef.current;\n if (!drag || drag.pointerId !== event.pointerId) {\n return;\n }\n const dx = event.clientX - drag.startX;\n if (!drag.moved && Math.abs(dx) < CLICK_MOVE_TOLERANCE) {\n return;\n }\n if (!drag.moved) {\n drag.moved = true;\n setDragging(true);\n }\n const rect = trackRef.current ? trackRef.current.getBoundingClientRect() : { width: 1 };\n const deltaMs = (dx / (rect.width || 1)) * viewRef.current.spanMs;\n const rawMs = drag.originMs - deltaMs;\n drag.samples.push({ t: event.timeStamp, ms: rawMs });\n if (drag.samples.length > 12) {\n drag.samples.shift();\n }\n moveToRef.current(rawMs);\n setVisualTargetRef.current(rawMs, { immediate: true });\n };\n\n const endDrag = event => {\n if (resizeRef.current) {\n if (!event || resizeRef.current.pointerId === event.pointerId) {\n endResize();\n }\n return;\n }\n const drag = dragRef.current;\n if (!drag || (event && drag.pointerId !== event.pointerId)) {\n return;\n }\n dragRef.current = null;\n interactingRef.current = false;\n setDragging(false);\n if (drag.moved) {\n const velocity = inertiaRef.current && event ? estimateVelocity(drag.samples, event.timeStamp) : 0;\n const projection = velocity * inertiaRef.current;\n if (Math.abs(projection) >= baseWindowRef.current.step * 60 * 1000) {\n glideToRef.current(visualRef.current + projection);\n } else {\n setVisualTargetRef.current(baseWindowRef.current.start.valueOf());\n }\n }\n if (!drag.moved && drag.braked) {\n moveToRef.current(drag.originMs);\n setVisualTargetRef.current(baseWindowRef.current.start.valueOf());\n return;\n }\n if (!drag.moved && event && event.type === 'pointerup') {\n const rect = trackRef.current ? trackRef.current.getBoundingClientRect() : { left: 0, width: 1 };\n const view = viewRef.current;\n const clickedMs = timeAtClientX({\n clientX: event.clientX,\n rectLeft: rect.left,\n rectWidth: rect.width,\n rangeStartMs: view.startMs,\n rangeEndMs: view.endMs\n });\n const current = baseWindowRef.current;\n moveToRef.current(clickedMs - (current.duration * 60 * 1000) / 2);\n }\n };\n\n const onKeyDown = event => {\n stopGlideRef.current();\n const current = baseWindowRef.current;\n const stepMinutes = current.step;\n const moves = {\n ArrowLeft: -stepMinutes,\n ArrowDown: -stepMinutes,\n ArrowRight: stepMinutes,\n ArrowUp: stepMinutes,\n PageDown: -current.duration,\n PageUp: current.duration\n };\n if (event.key === 'Home' && current.rangeStart) {\n event.preventDefault();\n moveToRef.current(current.rangeStart);\n return;\n }\n if (event.key === 'End' && current.rangeEnd) {\n event.preventDefault();\n moveToRef.current(current.rangeEnd);\n return;\n }\n if (!(event.key in moves)) {\n return;\n }\n event.preventDefault();\n const minutes = event.shiftKey ? Math.sign(moves[event.key]) * Math.max(60, stepMinutes) : moves[event.key];\n moveToRef.current(current.start.add(minutes, 'minute'));\n };\n\n useEffect(() => {\n const node = rootRef.current;\n if (!node) {\n return undefined;\n }\n const onWheel = event => {\n if (isLockedRef.current) {\n return;\n }\n const dominant = Math.abs(event.deltaX) > Math.abs(event.deltaY) ? event.deltaX : event.deltaY;\n if (!dominant) {\n return;\n }\n event.preventDefault();\n const current = baseWindowRef.current;\n const rectWidth = trackRef.current ? trackRef.current.getBoundingClientRect().width : node.clientWidth;\n const deltaPx = wheelDeltaToPx({ delta: dominant, deltaMode: event.deltaMode, trackWidth: rectWidth });\n const stepMs = current.step * 60 * 1000;\n const pxPerStep = (rectWidth * stepMs) / viewRef.current.spanMs;\n const discrete = isDiscreteWheel(event, deltaPx);\n const { steps, accumulatedPx } = consumeWheelSteps({\n accumulatedPx: wheelAccumRef.current,\n deltaPx,\n pxPerStep,\n discrete\n });\n wheelAccumRef.current = accumulatedPx;\n wheelActiveRef.current = true;\n clearTimeout(wheelIdleRef.current);\n wheelIdleRef.current = setTimeout(() => {\n wheelActiveRef.current = false;\n wheelAccumRef.current = 0;\n wheelBaseRef.current = null;\n wheelSamplesRef.current = [];\n wheelDirectionRef.current = 0;\n if (!glidingRef.current) {\n setVisualTargetRef.current(baseWindowRef.current.start.valueOf());\n }\n }, WHEEL_IDLE_MS);\n\n if (discrete && inertiaRef.current) {\n if (!steps) {\n return;\n }\n const samples = wheelSamplesRef.current;\n if (wheelDirectionRef.current !== Math.sign(steps)) {\n samples.length = 0;\n wheelBaseRef.current = null;\n wheelDirectionRef.current = Math.sign(steps);\n }\n const from = wheelBaseRef.current == null ? current.start.valueOf() : wheelBaseRef.current;\n const base = createTimeWindow({ start: from + steps * stepMs, ...optionsRef.current }).start.valueOf();\n wheelBaseRef.current = base;\n samples.push({ t: event.timeStamp, ms: base });\n if (samples.length > 8) {\n samples.shift();\n }\n const projection = estimateVelocity(samples, event.timeStamp) * inertiaRef.current * WHEEL_INERTIA_SCALE;\n let target = base + projection;\n const lastTarget = visualTargetRef.current;\n if (samples.length > 1 && lastTarget != null && (target - lastTarget) * wheelDirectionRef.current < 0) {\n target = lastTarget;\n }\n glideToRef.current(target, projection ? inertiaRef.current : WHEEL_NOTCH_EASE_MS);\n return;\n }\n\n if (steps) {\n moveToRef.current(current.start.valueOf() + steps * stepMs);\n }\n const residualMs = pxPerStep > 0 ? (accumulatedPx / pxPerStep) * stepMs : 0;\n setVisualTargetRef.current(baseWindowRef.current.start.valueOf() + residualMs);\n };\n node.addEventListener('wheel', onWheel, { passive: false });\n return () => node.removeEventListener('wheel', onWheel);\n }, []);\n\n const toggleLocked = () => {\n const next = !isLockedRef.current;\n if (next) {\n stopGlideRef.current();\n }\n if (!lockedControlled) {\n setInnerLocked(next);\n }\n if (onLockedChangeRef.current) {\n onLockedChangeRef.current(next);\n }\n };\n\n const labelTicks = ticks.filter(tick => tick.showLabel);\n const ariaBounds = {};\n if (rangeStartMs != null) {\n ariaBounds['aria-valuemin'] = rangeStartMs;\n }\n if (rangeEndMs != null) {\n ariaBounds['aria-valuemax'] = rangeEndMs - durationMs;\n }\n\n return (\n <div\n ref={rootRef}\n className={classNames(style.root, style[`root-${size}`], className, {\n [style['root-dragging']]: dragging,\n [style['root-resizing']]: !!resizeView,\n [style['root-locked']]: isLocked\n })}\n style={styleProp}\n >\n <div className={style.header}>\n <div className={style.label}>{label}</div>\n <div className={style.actions}>\n {lockable ? (\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={!isLocked}\n aria-label={formatMessage({ id: isLocked ? 'TimeWindow.locked' : 'TimeWindow.editable' })}\n className={classNames(style.switch, { [style['switch-on']]: !isLocked })}\n onClick={toggleLocked}\n >\n <i />\n </button>\n ) : null}\n {showDuration ? <span className={style.duration}>{durationText}</span> : null}\n </div>\n </div>\n {isLocked ? null : (\n <div className={style.scale}>\n <div\n ref={trackRef}\n className={classNames(style.track, { [style['track-wheel']]: wheelEffect })}\n role=\"slider\"\n tabIndex={0}\n {...ariaBounds}\n aria-valuenow={baseWindow.start.valueOf()}\n aria-valuetext={ariaValueText}\n onKeyDown={onKeyDown}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={endDrag}\n onPointerCancel={endDrag}\n >\n {leftShade > 0 ? <span className={classNames(style.shade, style['shade-start'])} style={{ width: `${leftShade}%` }} /> : null}\n {rightShade > 0 ? <span className={classNames(style.shade, style['shade-end'])} style={{ width: `${rightShade}%` }} /> : null}\n <div className={style.ticks}>\n {ticks.map(tick => (\n <span\n key={tick.key}\n className={classNames(style.tick, style[`tick-${tick.level}`], {\n [style['tick-out']]: tick.outOfRange\n })}\n style={{ left: `${tick.ratio * 100}%` }}\n />\n ))}\n </div>\n {wheelEffect ? <span className={style.cylinder} aria-hidden=\"true\" /> : null}\n <span\n className={classNames(style.window, {\n [style['window-compact']]: windowPx < GRIP_MIN_WIDTH,\n [style['window-resizable']]: resizable,\n [style['window-fixed']]: !resizable\n })}\n style={{ left: `${left}%`, width: `${width}%` }}\n >\n {resizable ? (\n <>\n <span data-edge=\"start\" aria-hidden=\"true\" className={classNames(style.edge, style['edge-start'], { [style['edge-active']]: resizeEdge === 'start' })} />\n <span data-edge=\"end\" aria-hidden=\"true\" className={classNames(style.edge, style['edge-end'], { [style['edge-active']]: resizeEdge === 'end' })} />\n </>\n ) : null}\n </span>\n </div>\n <div className={style.labels}>\n {labelTicks.map(tick => (\n <span\n key={tick.key}\n className={classNames(style['tick-label'], style[`tick-label-${tick.level}`], {\n [style['tick-out']]: tick.outOfRange\n })}\n style={{ left: `${tick.ratio * 100}%` }}\n >\n {tick.label}\n </span>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nconst TimeWindow = withLocale(TimeWindowInner);\n\nexport default TimeWindow;\n","import FormInfo, { Input, TextArea } from '@kne/form-info';\nimport { useIntl } from '@kne/react-intl';\n\nconst DefaultFormInner = () => {\n const { formatMessage } = useIntl();\n return (\n <FormInfo\n column={1}\n list={[\n <Input name=\"title\" label={formatMessage({ id: 'DefaultFormInner.title' })} rule=\"REQ\" placeholder={formatMessage({ id: 'DefaultFormInner.titlePlaceholder' })} block />,\n <TextArea name=\"detail\" label={formatMessage({ id: 'DefaultFormInner.detail' })} placeholder={formatMessage({ id: 'DefaultFormInner.detailPlaceholder' })} block />\n ]}\n />\n );\n};\n\nexport default DefaultFormInner;\n","import { Tag } from 'antd';\nimport { classNames, formatRange } from '../../utils';\nimport getEventTagLabel from '../EventItem/getEventTagLabel';\nimport style from './style.module.scss';\n\nconst EventDetail = ({ event, date, onEventClick }) => {\n const clickable = !event.disabled && (typeof event.onClick === 'function' || typeof onEventClick === 'function');\n const handleClick = () => {\n if (typeof event.onClick === 'function') {\n event.onClick(event, { date, mode: 'schedule' });\n return;\n }\n onEventClick?.(event, { date, mode: 'schedule' });\n };\n const tagLabel = getEventTagLabel(event);\n return (\n <div\n className={classNames(style['event-detail'], { [style['event-detail-clickable']]: clickable, [style['event-detail-disabled']]: event.disabled })}\n style={event.color ? { '--timeline-event-color': event.color } : undefined}\n role={clickable ? 'button' : undefined}\n tabIndex={clickable ? 0 : undefined}\n onClick={clickable ? handleClick : undefined}\n onKeyDown={\n clickable\n ? keyEvent => {\n if (keyEvent.key === 'Enter' || keyEvent.key === ' ') {\n keyEvent.preventDefault();\n handleClick();\n }\n }\n : undefined\n }\n >\n <span className={style['event-detail-bar']} />\n <div className={style['event-detail-body']}>\n <div className={style['event-detail-title']}>{event.title}</div>\n <div className={style['event-detail-time']}>{formatRange(event.start, event.end)}</div>\n {event.detail ? <div className={style['event-detail-text']}>{event.detail}</div> : null}\n {tagLabel ? (\n <Tag className={style['event-detail-tag']} color={event.color}>\n {tagLabel}\n </Tag>\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default EventDetail;\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport dayjs from 'dayjs';\nimport { Popover, Tooltip } from 'antd';\nimport { TIME_FORMAT } from '../../constants';\nimport { MINUTE_MS, clickSelectionRange, createSelectionRange, getFreeGap, moveSelectionRange, resizeSelectionRange, snapToStep } from '../../timeline';\nimport { classNames, formatRange } from '../../utils';\nimport EventDetail from './EventDetail';\nimport style from './style.module.scss';\n\nconst DRAG_THRESHOLD_PX = 4;\nconst TOUCH_SLOP_PX = 8;\nconst LONG_PRESS_MS = 350;\n\nconst Timeline = ({\n date,\n day,\n hourHeight,\n timeUnit,\n timeStep,\n eventItems,\n disabledRanges,\n blockers,\n conflicts,\n allowMultiSelect,\n selection,\n dragging,\n formPopover,\n popoverOpen,\n popoverPlacement,\n popoverAnchor,\n onPopoverOpenChange,\n onSelectionDrag,\n onSelectionCommit,\n onFreeSlotClick,\n onEventClick,\n renderEventBlock,\n renderOccupiedSlot,\n interactionRef,\n isMobile\n}) => {\n const gridRef = useRef(null);\n const gestureRef = useRef(null);\n const suppressClickRef = useRef(false);\n const touchCommitRef = useRef(0);\n const [hover, setHover] = useState(null);\n const [activeEventKey, setActiveEventKey] = useState(null);\n const pxPerMs = hourHeight / (60 * MINUTE_MS);\n const height = (day.endMs - day.startMs) * pxPerMs;\n const unitMs = timeUnit * MINUTE_MS;\n const stepMs = timeStep * MINUTE_MS;\n\n const latest = useRef({});\n latest.current = { day, blockers, unitMs, stepMs, allowMultiSelect, selection, onSelectionDrag, onSelectionCommit, onFreeSlotClick, pxPerMs };\n\n const toY = ms => (ms - day.startMs) * pxPerMs;\n\n const lines = useMemo(() => {\n const list = [];\n for (let ms = day.startMs; ms <= day.endMs; ms += unitMs) {\n list.push({ ms, hour: dayjs(ms).minute() === 0 });\n }\n return list;\n }, [day.endMs, day.startMs, unitMs]);\n\n const labels = useMemo(() => {\n const list = [];\n let cursor = dayjs(day.startMs);\n if (cursor.minute() !== 0) {\n list.push(day.startMs);\n cursor = cursor.add(1, 'hour').startOf('hour');\n }\n for (; cursor.valueOf() <= day.endMs; cursor = cursor.add(1, 'hour')) {\n list.push(cursor.valueOf());\n }\n if (list[list.length - 1] !== day.endMs) {\n list.push(day.endMs);\n }\n return list;\n }, [day.endMs, day.startMs]);\n\n const [now, setNow] = useState(() => Date.now());\n useEffect(() => {\n const timer = setInterval(() => setNow(Date.now()), 60 * 1000);\n return () => clearInterval(timer);\n }, []);\n const showNow = now >= day.startMs && now <= day.endMs;\n\n const msAtClientY = clientY => {\n const rect = gridRef.current.getBoundingClientRect();\n const { day: currentDay, pxPerMs: currentPx } = latest.current;\n return Math.min(Math.max(currentDay.startMs + (clientY - rect.top) / currentPx, currentDay.startMs), currentDay.endMs - 1);\n };\n\n const finishGesture = () => {\n const gesture = gestureRef.current;\n if (!gesture) {\n return;\n }\n clearTimeout(gesture.timer);\n window.removeEventListener('pointermove', gesture.onMove);\n window.removeEventListener('pointerup', gesture.onUp);\n window.removeEventListener('pointercancel', gesture.onCancel);\n gestureRef.current = null;\n };\n\n useEffect(() => finishGesture, []);\n\n useEffect(() => {\n const grid = gridRef.current;\n if (!grid) {\n return undefined;\n }\n const preventScroll = event => {\n if (gestureRef.current?.active) {\n event.preventDefault();\n }\n };\n const preventGhostClick = event => {\n if (Date.now() - touchCommitRef.current < 300) {\n event.preventDefault();\n }\n };\n grid.addEventListener('touchmove', preventScroll, { passive: false });\n grid.addEventListener('touchend', preventGhostClick, { passive: false });\n return () => {\n grid.removeEventListener('touchmove', preventScroll);\n grid.removeEventListener('touchend', preventGhostClick);\n };\n }, []);\n\n const handlePointerDown = event => {\n if (!gridRef.current?.contains(event.target)) {\n return;\n }\n if (interactionRef) {\n interactionRef.current = Date.now();\n }\n if (event.pointerType === 'mouse' && event.button !== 0) {\n return;\n }\n const { day: currentDay, blockers: currentBlockers, selection: currentSelection, allowMultiSelect: multi } = latest.current;\n const edgeNode = event.target.closest('[data-selection-edge]');\n const onSelection = event.target.closest('[data-timeline-selection]');\n const eventNode = event.target.closest('[data-timeline-event]');\n const pointerMs = msAtClientY(event.clientY);\n let gesture;\n if (edgeNode && currentSelection && multi) {\n gesture = { type: 'resize', edge: edgeNode.dataset.selectionEdge, active: true };\n } else if (onSelection && currentSelection) {\n gesture = { type: 'move', active: true };\n } else {\n const gap = getFreeGap(pointerMs, currentBlockers, currentDay);\n if (!gap) {\n return;\n }\n gesture = { type: 'create', gap, active: event.pointerType === 'mouse', onEvent: !!eventNode };\n }\n if (gesture.type !== 'create') {\n const ownGap = getFreeGap(currentSelection.startMs, currentBlockers, currentDay) || currentDay;\n gesture.gap = ownGap;\n gesture.range0 = currentSelection;\n event.preventDefault();\n }\n Object.assign(gesture, {\n pointerId: event.pointerId,\n pointerType: event.pointerType,\n startX: event.clientX,\n startY: event.clientY,\n startMs: pointerMs,\n moved: false\n });\n setHover(null);\n\n gesture.onMove = moveEvent => {\n if (moveEvent.pointerId !== gesture.pointerId) {\n return;\n }\n const dx = moveEvent.clientX - gesture.startX;\n const dy = moveEvent.clientY - gesture.startY;\n if (!gesture.active) {\n if (Math.hypot(dx, dy) > TOUCH_SLOP_PX) {\n finishGesture();\n }\n return;\n }\n if (!gesture.moved && Math.abs(dy) < DRAG_THRESHOLD_PX) {\n return;\n }\n const { stepMs: step, day: d, allowMultiSelect: canResize } = latest.current;\n const ms = msAtClientY(moveEvent.clientY);\n let next;\n if (gesture.type === 'create') {\n if (!canResize) {\n return;\n }\n next = createSelectionRange({ anchorMs: gesture.startMs, pointerMs: ms, gap: gesture.gap, originMs: d.startMs, stepMs: step });\n } else if (gesture.type === 'move') {\n next = moveSelectionRange({ range: gesture.range0, deltaMs: ms - gesture.startMs, gap: gesture.gap, originMs: d.startMs, stepMs: step });\n } else {\n next = resizeSelectionRange({ range: gesture.range0, edge: gesture.edge, pointerMs: ms, gap: gesture.gap, originMs: d.startMs, stepMs: step });\n }\n gesture.moved = true;\n gesture.range = next;\n latest.current.onSelectionDrag(next);\n };\n\n gesture.onUp = upEvent => {\n if (upEvent.pointerId !== gesture.pointerId) {\n return;\n }\n finishGesture();\n if (gesture.pointerType !== 'mouse') {\n touchCommitRef.current = Date.now();\n }\n const { unitMs: unit, day: d, onSelectionCommit: commit, onFreeSlotClick: onFreeClick } = latest.current;\n if (gesture.moved) {\n suppressClickRef.current = true;\n setTimeout(() => {\n suppressClickRef.current = false;\n }, 0);\n commit(gesture.range);\n return;\n }\n if (gesture.type !== 'create') {\n commit(gesture.range0);\n return;\n }\n if (gesture.onEvent) {\n return;\n }\n const range = clickSelectionRange({ pointerMs: gesture.startMs, gap: gesture.gap, originMs: d.startMs, unitMs: unit });\n const slotStart = snapToStep(gesture.startMs, { originMs: d.startMs, stepMs: unit, mode: 'floor' });\n onFreeClick?.({ start: new Date(slotStart), end: new Date(Math.min(slotStart + unit, d.endMs)) });\n commit(range);\n };\n\n gesture.onCancel = cancelEvent => {\n if (cancelEvent.pointerId !== gesture.pointerId) {\n return;\n }\n const wasMoved = gesture.moved;\n finishGesture();\n if (wasMoved) {\n latest.current.onSelectionCommit(gesture.range);\n }\n };\n\n if (!gesture.active) {\n gesture.timer = setTimeout(() => {\n gesture.active = true;\n navigator.vibrate?.(10);\n const { day: d, unitMs: unit } = latest.current;\n const range = clickSelectionRange({ pointerMs: gesture.startMs, gap: gesture.gap, originMs: d.startMs, unitMs: unit });\n gesture.moved = true;\n gesture.range = range;\n gesture.startMs = range.startMs;\n latest.current.onSelectionDrag(range);\n }, LONG_PRESS_MS);\n }\n\n finishGesture();\n gestureRef.current = gesture;\n window.addEventListener('pointermove', gesture.onMove);\n window.addEventListener('pointerup', gesture.onUp);\n window.addEventListener('pointercancel', gesture.onCancel);\n };\n\n const handleHover = event => {\n if (event.pointerType !== 'mouse' || gestureRef.current || !gridRef.current?.contains(event.target)) {\n return;\n }\n if (event.target.closest('[data-timeline-selection]')) {\n setHover(null);\n return;\n }\n const ms = msAtClientY(event.clientY);\n const gap = getFreeGap(ms, blockers, day);\n if (!gap) {\n setHover(null);\n return;\n }\n const range = clickSelectionRange({ pointerMs: ms, gap, originMs: day.startMs, unitMs });\n setHover(current => (current && current.startMs === range.startMs && current.endMs === range.endMs ? current : range));\n };\n\n const renderEventContent = item => {\n const { event } = item;\n if (renderEventBlock) {\n return renderEventBlock(event, { start: new Date(item.startMs), end: new Date(item.endMs) });\n }\n if (renderOccupiedSlot) {\n return renderOccupiedSlot({ start: new Date(item.startMs), end: new Date(item.endMs), status: 'occupied', events: [event] }, { events: [event] });\n }\n return (\n <>\n <div className={style['timeline-event-title']}>{event.title}</div>\n <div className={style['timeline-event-time']}>{formatRange(event.start, event.end)}</div>\n </>\n );\n };\n\n const selectionBlock = selection ? (\n <div\n data-timeline-selection=\"\"\n className={classNames(style['timeline-selection'], {\n [style['timeline-selection-dragging']]: dragging,\n [style['timeline-selection-conflict']]: conflicts.length > 0,\n [style['timeline-selection-compact']]: (selection.endMs - selection.startMs) * pxPerMs < 34\n })}\n style={{ top: toY(selection.startMs), height: Math.max((selection.endMs - selection.startMs) * pxPerMs, 6) }}\n >\n {allowMultiSelect ? <span data-selection-edge=\"start\" className={classNames(style['timeline-selection-edge'], style['timeline-selection-edge-start'])} /> : null}\n <div className={style['timeline-selection-label']}>\n <span>{formatRange(selection.startMs, selection.endMs)}</span>\n {conflicts.length ? <span className={style['timeline-selection-badge']}>{conflicts.length}</span> : null}\n </div>\n {allowMultiSelect ? <span data-selection-edge=\"end\" className={classNames(style['timeline-selection-edge'], style['timeline-selection-edge-end'])} /> : null}\n </div>\n ) : null;\n\n return (\n <div className={style['timeline']} style={{ height }}>\n <div className={style['timeline-axis']} aria-hidden>\n {labels.map(ms => (\n <span key={ms} className={style['timeline-axis-label']} style={{ top: toY(ms) }}>\n {dayjs(ms).format(TIME_FORMAT)}\n </span>\n ))}\n </div>\n <div\n ref={gridRef}\n className={classNames(style['timeline-grid'], { [style['timeline-grid-dragging']]: dragging })}\n onPointerDown={handlePointerDown}\n onPointerMove={handleHover}\n onPointerLeave={() => setHover(null)}\n onContextMenu={event => {\n if (gridRef.current?.contains(event.target)) {\n event.preventDefault();\n }\n }}\n onClickCapture={event => {\n if (suppressClickRef.current && gridRef.current?.contains(event.target)) {\n suppressClickRef.current = false;\n event.stopPropagation();\n }\n }}\n >\n {lines.map(line => (\n <span key={line.ms} className={classNames(style['timeline-line'], { [style['timeline-line-hour']]: line.hour })} style={{ top: toY(line.ms) }} />\n ))}\n {disabledRanges.map(range => {\n const block = (\n <div key={range.startMs} className={style['timeline-disabled']} style={{ top: toY(range.startMs), height: (range.endMs - range.startMs) * pxPerMs }}>\n {range.reason && (range.endMs - range.startMs) * pxPerMs >= 22 ? <span className={style['timeline-disabled-reason']}>{range.reason}</span> : null}\n </div>\n );\n return range.reason ? (\n <Tooltip key={range.startMs} title={range.reason}>\n {block}\n </Tooltip>\n ) : (\n block\n );\n })}\n {eventItems.map(item => {\n const key = `${item.event.id}-${item.startMs}`;\n const blockHeight = (item.endMs - item.startMs) * pxPerMs;\n return (\n <Popover\n key={key}\n arrow={false}\n trigger=\"click\"\n placement={isMobile ? 'bottom' : 'left'}\n rootClassName={style['schedule-popover']}\n open={activeEventKey === key}\n onOpenChange={open => setActiveEventKey(open ? key : null)}\n content={<EventDetail event={item.event} date={date} onEventClick={onEventClick} />}\n >\n <div\n data-timeline-event=\"\"\n className={classNames(style['timeline-event'], {\n [style['timeline-event-disabled']]: item.event.disabled,\n [style['timeline-event-compact']]: blockHeight < 34\n })}\n style={{\n top: toY(item.startMs),\n height: Math.max(blockHeight - 2, 4),\n left: `calc(${(item.column / item.columns) * 100}% + 2px)`,\n width: `calc(${100 / item.columns}% - 4px)`,\n ...(item.event.color ? { '--timeline-event-color': item.event.color } : null)\n }}\n >\n {renderEventContent(item)}\n </div>\n </Popover>\n );\n })}\n {hover && !selection ? (\n <div className={style['timeline-ghost']} style={{ top: toY(hover.startMs), height: (hover.endMs - hover.startMs) * pxPerMs }}>\n + {dayjs(hover.startMs).format(TIME_FORMAT)}\n </div>\n ) : null}\n {showNow ? <span className={style['timeline-now']} style={{ top: toY(now) }} /> : null}\n {selectionBlock}\n {formPopover && popoverAnchor ? (\n <Popover arrow={false} trigger=\"click\" placement={popoverPlacement} rootClassName={style['schedule-popover']} open={popoverOpen && !dragging} onOpenChange={onPopoverOpenChange} content={formPopover} destroyOnHidden>\n <span aria-hidden className={style['timeline-popover-anchor']} style={{ top: toY(popoverAnchor.startMs), height: (popoverAnchor.endMs - popoverAnchor.startMs) * pxPerMs }} />\n </Popover>\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default Timeline;\n","import { useMemo, useRef, useState } from 'react';\nimport { Alert, Button, Card, Drawer, Spin } from 'antd';\nimport { Form, SubmitButton } from '@kne/form-info';\nimport { useIntl } from '@kne/react-intl';\nimport { useIsMobile } from '@kne/responsive-utils';\nimport { DATE_FORMAT } from '../../constants';\nimport { findOverlappingEvents, findOverlappingSlots, getFreeGap, layoutTimelineEvents, mergeDisabledSlots, toBlockers } from '../../timeline';\nimport { classNames, getDefaultFormValues, parseDayTime, sortEventsByStart } from '../../utils';\nimport PanelTitle from '../Panel/PanelTitle';\nimport PanelScrollShadow from '../Panel/PanelScrollShadow';\nimport usePanelScrollShadow from '../Panel/usePanelScrollShadow';\nimport panelStyle from '../Panel/style.module.scss';\nimport TimeWindow from '../TimeWindow';\nimport DefaultFormInner from './DefaultFormInner';\nimport Timeline from './Timeline';\nimport style from './style.module.scss';\n\nconst SchedulePanel = ({\n date,\n slots,\n events: dayEvents,\n dayStart,\n dayEnd,\n timeUnit,\n timeStep,\n hourHeight,\n allowConflict,\n loading,\n allowMultiSelect,\n onSlotRangeChange,\n onFreeSlotClick,\n onCreate,\n formInner,\n formProps,\n defaultFormValues,\n renderEventBlock,\n renderOccupiedSlot,\n renderPanelHeader,\n onEventClick\n}) => {\n const { formatMessage } = useIntl();\n const isMobile = useIsMobile();\n const scrollRef = useRef(null);\n const interactionRef = useRef(0);\n const openedAtRef = useRef(0);\n const [selection, setSelection] = useState(null);\n const [dragging, setDragging] = useState(false);\n const [popoverOpen, setPopoverOpen] = useState(false);\n const [popoverPlacement, setPopoverPlacement] = useState('left');\n const [popoverAnchor, setPopoverAnchor] = useState(null);\n\n const day = useMemo(() => ({ startMs: parseDayTime(date, dayStart).valueOf(), endMs: parseDayTime(date, dayEnd).valueOf() }), [date, dayEnd, dayStart]);\n const events = useMemo(() => sortEventsByStart(dayEvents || []), [dayEvents]);\n const eventItems = useMemo(() => layoutTimelineEvents(events, day), [day, events]);\n const disabledRanges = useMemo(() => mergeDisabledSlots(slots), [slots]);\n const blockers = useMemo(() => toBlockers(allowConflict ? disabledRanges : [...disabledRanges, ...eventItems]), [allowConflict, disabledRanges, eventItems]);\n const conflicts = useMemo(\n () =>\n findOverlappingEvents(\n selection,\n eventItems.map(item => item.event)\n ),\n [eventItems, selection]\n );\n const gap = (selection && getFreeGap(selection.startMs, blockers, day)) || day;\n const windowRange = useMemo(() => [new Date(gap.startMs), new Date(gap.endMs)], [gap.startMs, gap.endMs]);\n\n const panelHeader = renderPanelHeader?.({ date: date.toDate(), mode: 'schedule', events });\n const { scrolled, onScroll } = usePanelScrollShadow(date.format(DATE_FORMAT), scrollRef);\n\n const getFormContext = range => ({\n date: date.toDate(),\n start: range ? new Date(range.startMs) : null,\n end: range ? new Date(range.endMs) : null,\n slots: findOverlappingSlots(range, slots),\n conflicts: findOverlappingEvents(\n range,\n eventItems.map(item => item.event)\n )\n });\n\n const emitRange = range => {\n if (range) {\n onSlotRangeChange?.(findOverlappingSlots(range, slots), { action: 'select', start: new Date(range.startMs), end: new Date(range.endMs) });\n } else {\n onSlotRangeChange?.([], { action: 'clear' });\n }\n };\n\n const clearSelection = () => {\n setPopoverOpen(false);\n setPopoverAnchor(null);\n setDragging(false);\n if (selection) {\n setSelection(null);\n emitRange(null);\n }\n };\n\n const commitSelection = range => {\n setDragging(false);\n if (!range) {\n return;\n }\n if (!popoverOpen) {\n const stacked = !!scrollRef.current?.closest('[data-schedule-layout=\"stacked\"]');\n setPopoverPlacement(stacked ? 'bottom' : 'left');\n setPopoverAnchor(range);\n }\n setSelection(range);\n openedAtRef.current = Date.now();\n setPopoverOpen(true);\n emitRange(range);\n };\n\n const formContext = getFormContext(selection);\n const formPopover = selection ? (\n <div className={classNames(style['form-popover'], { [style['form-sheet-content']]: isMobile })}>\n <div className={style['form-popover-title']}>{formatMessage({ id: 'SchedulePanel.newScheduleTitle' })}</div>\n <Form\n {...formProps}\n {...(isMobile ? { size: 'large' } : null)}\n className={classNames(style['form-popover-form'], formProps?.className)}\n data={getDefaultFormValues(defaultFormValues, formContext)}\n onSubmit={async values => {\n try {\n await onCreate?.(values, getFormContext(selection));\n clearSelection();\n } catch {\n // Keep the form open when creation fails.\n }\n }}\n >\n <div className={style['form-popover-body']}>\n <TimeWindow\n className={style['form-time-window']}\n size={isMobile ? 'default' : 'small'}\n value={[new Date(selection.startMs), new Date(selection.endMs)]}\n range={windowRange}\n step={timeStep}\n minDuration={timeStep}\n resizable={allowMultiSelect}\n debounceWait={120}\n format=\"HH:mm\"\n separator=\" - \"\n onChange={value => {\n if (!value) {\n return;\n }\n const range = { startMs: value[0].getTime(), endMs: value[1].getTime() };\n setSelection(range);\n emitRange(range);\n }}\n />\n {conflicts.length ? (\n <Alert className={style['form-conflict']} type=\"warning\" showIcon title={`${formatMessage({ id: 'SchedulePanel.conflict' }, { count: conflicts.length })}:${conflicts.map(event => event.title).join('、')}`} />\n ) : null}\n {formInner || <DefaultFormInner />}\n </div>\n <div className={style['form-actions']}>\n <Button onClick={clearSelection}>{formatMessage({ id: 'SchedulePanel.cancel' })}</Button>\n <SubmitButton>{formatMessage({ id: 'SchedulePanel.save' })}</SubmitButton>\n </div>\n </Form>\n </div>\n ) : null;\n\n return (\n <Card bordered={false} title={panelHeader || <PanelTitle date={date} subtitle={formatMessage({ id: 'SchedulePanel.selectFreeSlot' })} />} className={panelStyle['panel-card']}>\n <Spin spinning={!!loading} classNames={{ root: panelStyle['panel-spin'], container: panelStyle['panel-spin-container'] }}>\n <div ref={scrollRef} className={style['slots']} onScroll={onScroll}>\n <PanelScrollShadow visible={scrolled} />\n <Timeline\n date={date.toDate()}\n day={day}\n hourHeight={hourHeight}\n timeUnit={timeUnit}\n timeStep={timeStep}\n eventItems={eventItems}\n disabledRanges={disabledRanges}\n blockers={blockers}\n conflicts={conflicts}\n allowMultiSelect={allowMultiSelect}\n selection={selection}\n dragging={dragging}\n formPopover={isMobile ? null : formPopover}\n isMobile={isMobile}\n popoverOpen={popoverOpen}\n popoverPlacement={popoverPlacement}\n popoverAnchor={popoverAnchor}\n interactionRef={interactionRef}\n onPopoverOpenChange={open => {\n if (open) {\n setPopoverOpen(true);\n return;\n }\n if (Date.now() - interactionRef.current < 400) {\n return;\n }\n clearSelection();\n }}\n onSelectionDrag={range => {\n setDragging(true);\n setSelection(range);\n }}\n onSelectionCommit={commitSelection}\n onFreeSlotClick={slot => onFreeSlotClick?.({ ...slot, key: `${date.format(DATE_FORMAT)}-${slot.start.getTime()}`, date: date.format(DATE_FORMAT), status: 'free', events: [] })}\n onEventClick={onEventClick}\n renderEventBlock={renderEventBlock}\n renderOccupiedSlot={renderOccupiedSlot}\n />\n </div>\n </Spin>\n {isMobile ? (\n <Drawer\n placement=\"bottom\"\n size=\"auto\"\n closable={false}\n rootClassName={style['form-sheet']}\n open={!!selection && popoverOpen && !dragging}\n onClose={() => {\n if (Date.now() - openedAtRef.current < 500) {\n return;\n }\n clearSelection();\n }}\n destroyOnHidden\n >\n {formPopover}\n </Drawer>\n ) : null}\n </Card>\n );\n};\n\nexport default SchedulePanel;\n","import { useCallback, useMemo, useRef } from 'react';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport useControlValue from '@kne/use-control-value';\nimport { Calendar } from 'antd';\nimport withLocale from './withLocale';\nimport { DATE_FORMAT, LAYOUT_STACK_BREAKPOINT } from './constants';\nimport useStackedPanelLayout from './useStackedPanelLayout';\nimport { groupEventsByDate, generateTimeSlots } from './events';\nimport { checkRule } from './rules';\nimport { classNames, toDayjs, useControlledState } from './utils';\nimport Header from './components/Header';\nimport useStackedLayout from './useStackedLayout';\nimport DateCell from './components/DateCell';\nimport ViewPanel from './components/Panel/ViewPanel';\nimport SchedulePanel from './components/SchedulePanel';\nimport style from './style.module.scss';\n\ndayjs.extend(customParseFormat);\n\nconst buildMonthRuleCache = ({ currentDate, mode, disabledDate, disabledDateTime, availableDateTime }) => {\n const cache = new Map();\n const monthStart = currentDate.startOf('month');\n const monthEnd = currentDate.endOf('month');\n let cursor = monthStart;\n while (cursor.isBefore(monthEnd) || cursor.isSame(monthEnd, 'day')) {\n cache.set(\n cursor.format(DATE_FORMAT),\n checkRule({\n date: cursor,\n mode,\n disabledDate,\n disabledDateTime,\n availableDateTime\n })\n );\n cursor = cursor.add(1, 'day');\n }\n return cache;\n};\n\nconst ScheduleCalendarInner = props => {\n const {\n mode = 'view',\n events = [],\n loading,\n disabledDate,\n disabledDateTime,\n availableDateTime,\n badgeMaxCount = 9,\n timeUnit = 30,\n dayStart = '09:00',\n dayEnd = '18:00',\n timeStep = 5,\n hourHeight = 56,\n allowConflict = false,\n allowMultiSelect = mode === 'schedule',\n renderDateCell,\n renderEventItem,\n renderEventBlock,\n renderOccupiedSlot,\n renderPanelHeader,\n formInner,\n formProps,\n defaultFormValues,\n onDateChange,\n onEventClick,\n onFreeSlotClick,\n onSlotRangeChange,\n onCreate,\n className,\n style: propsStyle,\n stackAt = LAYOUT_STACK_BREAKPOINT,\n eventListScrollable = true,\n calendarProps,\n panelProps\n } = props;\n const rootRef = useRef(null);\n const calendarRef = useRef(null);\n const stacked = useStackedLayout(rootRef, stackAt);\n const eventListExpanded = mode === 'view' && !eventListScrollable;\n const stackedLayoutStyle = useStackedPanelLayout(rootRef, calendarRef, stacked && !eventListExpanded);\n const [value, setValue] = useControlValue(props);\n const selectedDate = useMemo(() => toDayjs(value) || dayjs(), [value]);\n const [current, setCurrent] = useControlledState({\n value: props.current,\n defaultValue: props.defaultCurrent || selectedDate,\n onChange: props.onCurrentChange\n });\n const currentDate = useMemo(() => toDayjs(current) || selectedDate, [current, selectedDate]);\n const eventGroup = useMemo(() => groupEventsByDate(events), [events]);\n const selectedEvents = useMemo(() => eventGroup[selectedDate.format(DATE_FORMAT)] || [], [eventGroup, selectedDate]);\n const ruleContext = useMemo(\n () => ({\n mode,\n disabledDate,\n disabledDateTime,\n availableDateTime\n }),\n [availableDateTime, disabledDate, disabledDateTime, mode]\n );\n const monthRuleCache = useMemo(\n () =>\n buildMonthRuleCache({\n currentDate,\n ...ruleContext\n }),\n [currentDate, ruleContext]\n );\n const getDateRule = useCallback(\n date => {\n const cached = monthRuleCache.get(date.format(DATE_FORMAT));\n if (cached !== undefined) {\n return cached;\n }\n return checkRule({\n date,\n ...ruleContext\n });\n },\n [monthRuleCache, ruleContext]\n );\n const slots = useMemo(\n () =>\n generateTimeSlots({\n date: selectedDate,\n events: selectedEvents,\n timeUnit,\n dayStart,\n dayEnd,\n disabledDate,\n disabledDateTime,\n availableDateTime,\n mode\n }),\n [availableDateTime, dayEnd, dayStart, disabledDate, disabledDateTime, mode, selectedDate, selectedEvents, timeUnit]\n );\n\n const handleSelectDate = (date, info) => {\n const nextDate = date.startOf('day').toDate();\n setValue(nextDate, info);\n onDateChange?.(nextDate, info);\n };\n\n const handleCurrentChange = (date, info) => {\n setCurrent(date.startOf('month').toDate(), info);\n };\n\n const handleGoToday = () => {\n const today = dayjs().startOf('day');\n if (getDateRule(today)) {\n return;\n }\n handleSelectDate(today, { source: 'today' });\n handleCurrentChange(today, { source: 'today' });\n };\n\n const fullCellRender = date => {\n const key = date.format(DATE_FORMAT);\n const dayEvents = eventGroup[key] || [];\n const disabled = !!getDateRule(date);\n return <DateCell date={date} dayEvents={dayEvents} selected={date.isSame(selectedDate, 'day')} currentMonth={date.isSame(currentDate, 'month')} disabled={disabled} badgeMaxCount={badgeMaxCount} renderDateCell={renderDateCell} />;\n };\n\n return (\n <div className={style['schedule-calendar-shell']} style={propsStyle}>\n <div\n ref={rootRef}\n className={classNames(style['schedule-calendar'], stacked && style['schedule-calendar-stacked'], eventListExpanded && style['schedule-calendar-event-list-expanded'], className)}\n data-schedule-layout={stacked ? 'stacked' : 'row'}\n style={stacked && !eventListExpanded ? stackedLayoutStyle : undefined}\n >\n <div ref={calendarRef} className={style['calendar-side']}>\n <Calendar\n {...calendarProps}\n fullscreen={false}\n value={currentDate}\n headerRender={() => {\n const today = dayjs().startOf('day');\n const todayDisabled = !!getDateRule(today);\n return <Header current={currentDate} showTodayButton={!todayDisabled && (!selectedDate.isSame(today, 'day') || !currentDate.isSame(today, 'month'))} onCurrentChange={handleCurrentChange} onSelectToday={handleGoToday} />;\n }}\n fullCellRender={fullCellRender}\n disabledDate={date => !!getDateRule(date)}\n onSelect={date => {\n if (getDateRule(date)) {\n return;\n }\n handleSelectDate(date, { source: 'date' });\n }}\n onPanelChange={date => handleCurrentChange(date, { source: 'picker' })}\n />\n </div>\n <div className={style['panel-side']} {...panelProps}>\n {mode === 'schedule' ? (\n <SchedulePanel\n key={selectedDate.format(DATE_FORMAT)}\n date={selectedDate}\n slots={slots}\n events={selectedEvents}\n dayStart={dayStart}\n dayEnd={dayEnd}\n timeUnit={timeUnit}\n timeStep={timeStep}\n hourHeight={hourHeight}\n allowConflict={allowConflict}\n loading={loading}\n allowMultiSelect={allowMultiSelect}\n onSlotRangeChange={onSlotRangeChange}\n onFreeSlotClick={onFreeSlotClick}\n onCreate={onCreate}\n formInner={formInner}\n formProps={formProps}\n defaultFormValues={defaultFormValues}\n renderEventBlock={renderEventBlock}\n renderOccupiedSlot={renderOccupiedSlot}\n renderPanelHeader={renderPanelHeader}\n onEventClick={onEventClick}\n />\n ) : (\n <ViewPanel date={selectedDate} events={selectedEvents} loading={loading} renderEventItem={renderEventItem} renderPanelHeader={renderPanelHeader} onEventClick={onEventClick} scrollable={eventListScrollable} />\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport const ScheduleCalendar = withLocale(ScheduleCalendarInner);\n\nexport default ScheduleCalendar;\n"],"names":["locale","withLocale","createWithIntlProvider","defaultLocale","messages","zhCN","enUS","namespace","DATE_FORMAT","TIME_FORMAT","LAYOUT_STACK_BREAKPOINT","LAYOUT_MIN_HEIGHT","measureHeight","node","Math","ceil","getBoundingClientRect","height","useStackedPanelLayout","rootRef","calendarRef","stacked","layoutStyle","setLayoutStyle","useState","undefined","useLayoutEffect","root","current","calendar","update","calendarHeight","panelViewportHeight","max","totalHeight","ResizeObserver","window","addEventListener","removeEventListener","observer","observe","disconnect","classNames","slice","call","arguments","flatMap","item","Object","keys","filter","key","join","toDayjs","value","date","dayjs","isValid","parseDayTime","time","day","parsed","format","startOf","formatRange","start","end","getDefaultFormValues","defaultFormValues","ctx","title","detail","sortEventsByStart","events","sort","a","b","aStart","valueOf","bStart","dedupeEventsById","map","Map","forEach","event","set","id","values","useControlledState","defaultValue","onChange","props","useControlValue","getRuleDisabled","result","defaultReason","disabled","reason","checkRule","slot","mode","disabledDate","disabledDateTime","availableDateTime","toDate","disabledResult","normalizeEvent","isAfter","add","groupEventsByDate","reduce","normalized","startOfDay","endOfDay","isBefore","isSame","push","getOverlappingEvents","slotStart","slotEnd","sortedEvents","matched","generateTimeSlots","timeUnit","dayStart","dayEnd","selectedDate","startAt","endAt","normalizedEvents","slots","matchedEvents","baseSlot","ruleResult","status","length","disabledReason","toDay","getMonthName","formatMessage","monthIndex","getPanelDateLabel","d","month","year","monthName","getHeaderMonthLabel","getMonthPickerItemLabel","HeaderNavIcon","direction","className","_jsx","style","viewBox","focusable","children","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","YEAR_PAGE_SIZE","getYearPageStart","floor","PickerPanelNav","label","onClick","type","YearPickerPanel","pageStart","onPageStartChange","onSelect","useIntl","years","useMemo","Array","from","_","index","_jsxs","MonthPickerPanel","months","HeaderNavButton","Header","showTodayButton","onCurrentChange","onSelectToday","yearOpen","setYearOpen","monthOpen","setMonthOpen","yearPageStart","setYearPageStart","currentYear","yearText","monthText","useEffect","handleYearSelect","source","handleMonthSelect","Popover","open","onOpenChange","trigger","placement","rootClassName","content","Space","size","Button","subtract","readWidth","width","useStackedLayout","ref","stackAt","setStacked","DateCell","dayEvents","selected","currentMonth","badgeMaxCount","renderDateCell","count","customCell","Badge","getEventTagLabel","raw","EventItem","renderEventItem","onEventClick","clickable","handleClick","tagLabel","List","Item","role","tabIndex","onKeyDown","eventKey","preventDefault","Tag","color","PanelTitle","subtitle","dateText","countText","PanelScrollShadow","visible","usePanelScrollShadow","resetKey","scrollRef","scrolled","setScrolled","scrollTop","onScroll","useCallback","currentTarget","ViewPanel","loading","renderPanelHeader","scrollable","panelHeader","useRef","Card","bordered","Spin","spinning","container","dataSource","renderItem","Empty","description","MINUTE_MS","toMs","NaN","snapToStep","ms","originMs","stepMs","fn","round","clamp","min","layoutTimelineEvents","startMs","endMs","items","s","e","Number","isFinite","cluster","clusterEnd","Infinity","columnEnds","flush","columns","column","findIndex","mergeDisabledSlots","ranges","last","toBlockers","range","getFreeGap","blockers","gapStart","gapEnd","blocker","createSelectionRange","anchorMs","pointerMs","gap","anchorStart","anchorEnd","pointer","clickSelectionRange","unitMs","duration","moveSelectionRange","deltaMs","resizeSelectionRange","edge","minMs","snapped","findOverlappingEvents","findOverlappingSlots","extend","customParseFormat","DEFAULT_DURATION","DEFAULT_STEP","DEFAULT_DEBOUNCE_WAIT","DEFAULT_SEPARATOR","DEFAULT_FORMAT","DEFAULT_MIN_VISIBLE_SPAN","HOUR_MS","PARSE_FORMATS","parseDateLike","isDayjs","direct","isEmptyBound","defaultDayRange","now","resolveRange","isArray","startInvalid","endInvalid","resolveDuration","rangeStart","rangeEnd","requested","rangeMinutes","diff","resolveStep","step","resolveVisibleSpan","visibleSpan","baseDuration","minimum","span","snapMs","anchor","units","clampWindowStart","startInput","snap","durationMs","maxMs","fallback","target","createTimeWindow","resolvedDuration","resolvedStep","windowStart","resizeTimeWindow","minDuration","maxDuration","rangeStartMs","rangeEndMs","next","toWindowValue","getViewport","visibleSpanMinutes","spanMs","centerMs","wheelDeltaToPx","delta","deltaMode","trackWidth","consumeWheelSteps","accumulatedPx","deltaPx","pxPerStep","discrete","sameDirection","sign","total","perStep","steps","trunc","rest","DEFAULT_INERTIA_TIME_CONSTANT","VELOCITY_WINDOW_MS","resolveInertia","inertia","strength","estimateVelocity","samples","latest","reference","t","recent","sample","first","elapsed","timeAtClientX","clientX","rectLeft","rectWidth","grabOffsetMs","ratio","formatTimeWindowParts","startDate","endDate","formats","startText","endFormat","endAtMidnight","formatTimeWindow","separator","parts","LABEL_INTERVALS","pickLabelEvery","pxPerHour","minLabelPx","find","every","TICK_MINUTES","MIN_TICK_GAP_PX","pickTickMinutes","labelEvery","fit","minutes","buildScaleTicks","viewStart","viewEnd","viewStartMs","viewEndMs","tickMinutes","tickMs","ticks","cursorMs","cursor","major","minute","midnight","hour","level","showLabel","outOfRange","formatDurationParts","hours","GRIP_MIN_WIDTH","CLICK_MOVE_TOLERANCE","DISCRETE_WHEEL_DELTA","VISUAL_EASE_MS","WHEEL_IDLE_MS","WHEEL_NOTCH_EASE_MS","WHEEL_INERTIA_SCALE","sameInstant","left","right","leftDate","rightDate","abs","readWindowStart","isDiscreteWheel","legacy","wheelDeltaY","wheelDeltaX","useElementWidth","setWidth","entries","entry","contentRect","TimeWindowInner","debounceWait","showDuration","resizable","wheelEffect","lockable","locked","defaultLocked","onLockedChange","styleProp","isControlled","innerValue","setInnerValue","draftStart","setDraftStart","draftDuration","setDraftDuration","dragging","setDragging","innerLocked","setInnerLocked","lockedControlled","isLocked","resizeView","setResizeView","resizeRef","resizeEdge","trackRef","dragRef","wheelAccumRef","interactingRef","timerRef","pendingRef","onChangeRef","onLockedChangeRef","isLockedRef","committedValue","committedStart","committedMs","anchorDay","draftMs","committedEnd","committedEndMs","committedDuration","activeDuration","initialDurationRef","optionsRef","baseWindow","JSON","stringify","baseStartMs","visualMs","setVisualMs","visualRef","visualTargetRef","frameRef","lastFrameRef","wheelActiveRef","wheelIdleRef","easeRef","glidingRef","wheelBaseRef","wheelSamplesRef","wheelDirectionRef","inertiaTau","inertiaRef","clampVisual","clampVisualRef","runFrame","dt","settled","exp","moveToRef","requestAnimationFrame","stopGlide","cancelAnimationFrame","glideTo","easeMs","setVisualTarget","immediate","setVisualTargetRef","glideToRef","stopGlideRef","clearTimeout","displayStartMs","viewport","viewRef","baseWindowRef","toPercent","windowPx","leftShade","rightShade","endText","_Fragment","ariaValueText","durationText","clearTimer","pending","publish","nextWindow","nextValue","setTimeout","moveTo","durationPropRef","pointerTimeAt","view","rect","startResize","edgeMs","pointerId","setPointerCapture","error","moveResize","resize","endResize","frozenStart","onPointerDown","button","braked","edgeNode","closest","getAttribute","startX","moved","onPointerMove","drag","dx","rawMs","timeStamp","shift","endDrag","velocity","projection","clickedMs","stepMinutes","moves","ArrowLeft","ArrowDown","ArrowRight","ArrowUp","PageDown","PageUp","shiftKey","onWheel","dominant","deltaX","deltaY","clientWidth","base","lastTarget","residualMs","passive","toggleLocked","labelTicks","tick","ariaBounds","header","actions","switch","scale","track","onPointerUp","onPointerCancel","shade","cylinder","labels","TimeWindow","DefaultFormInner","FormInfo","list","Input","name","rule","placeholder","block","TextArea","EventDetail","keyEvent","DRAG_THRESHOLD_PX","TOUCH_SLOP_PX","LONG_PRESS_MS","Timeline","hourHeight","timeStep","eventItems","disabledRanges","conflicts","allowMultiSelect","selection","formPopover","popoverOpen","popoverPlacement","popoverAnchor","onPopoverOpenChange","onSelectionDrag","onSelectionCommit","onFreeSlotClick","renderEventBlock","renderOccupiedSlot","interactionRef","isMobile","gridRef","gestureRef","suppressClickRef","touchCommitRef","hover","setHover","activeEventKey","setActiveEventKey","pxPerMs","toY","lines","setNow","Date","timer","setInterval","clearInterval","showNow","msAtClientY","clientY","currentDay","currentPx","top","finishGesture","gesture","onMove","onUp","onCancel","grid","preventScroll","active","preventGhostClick","handlePointerDown","contains","pointerType","currentBlockers","currentSelection","multi","onSelection","eventNode","dataset","selectionEdge","onEvent","ownGap","range0","assign","startY","moveEvent","dy","hypot","canResize","upEvent","unit","commit","onFreeClick","cancelEvent","wasMoved","navigator","vibrate","handleHover","renderEventContent","selectionBlock","onPointerLeave","onContextMenu","onClickCapture","stopPropagation","line","Tooltip","blockHeight","arrow","destroyOnHidden","_catch","body","recover","then","SchedulePanel","allowConflict","onSlotRangeChange","onCreate","formInner","formProps","useIsMobile","openedAtRef","setSelection","setPopoverOpen","setPopoverPlacement","setPopoverAnchor","windowRange","getFormContext","emitRange","action","clearSelection","commitSelection","formContext","Form","data","onSubmit","_temp","Promise","resolve","reject","getTime","Alert","showIcon","SubmitButton","panelStyle","Drawer","closable","onClose","buildMonthRuleCache","currentDate","cache","monthStart","monthEnd","endOf","ScheduleCalendarInner","onDateChange","propsStyle","eventListScrollable","calendarProps","panelProps","eventListExpanded","stackedLayoutStyle","setValue","setCurrent","defaultCurrent","eventGroup","selectedEvents","ruleContext","monthRuleCache","getDateRule","cached","get","handleSelectDate","info","nextDate","handleCurrentChange","handleGoToday","today","fullCellRender","Calendar","fullscreen","headerRender","todayDisabled","onPanelChange","ScheduleCalendar"],"mappings":";;;;;;;;;;;;;;;;;AAAA,MAAMA,QAAM,GAAG;AACb,EAAA,cAAc,EAAE,IAAI;AACpB,EAAA,kBAAkB,EAAE,KAAK;AACzB,EAAA,kBAAkB,EAAE,KAAK;AACzB,EAAA,qBAAqB,EAAE,OAAO;AAC9B,EAAA,qBAAqB,EAAE,OAAO;AAC9B,EAAA,kBAAkB,EAAE,SAAS;AAC7B,EAAA,mBAAmB,EAAE,aAAa;AAClC,EAAA,wBAAwB,EAAE,aAAa;AACvC,EAAA,sBAAsB,EAAE,0BAA0B;AAClD,EAAA,uBAAuB,EAAE,eAAe;AACxC,EAAA,iBAAiB,EAAE,MAAM;AACzB,EAAA,8BAA8B,EAAE,cAAc;AAC9C,EAAA,sBAAsB,EAAE,IAAI;AAC5B,EAAA,oBAAoB,EAAE,IAAI;AAC1B,EAAA,gCAAgC,EAAE,MAAM;AACxC,EAAA,wBAAwB,EAAE,mBAAmB;AAC7C,EAAA,wBAAwB,EAAE,IAAI;AAC9B,EAAA,mCAAmC,EAAE,SAAS;AAC9C,EAAA,yBAAyB,EAAE,IAAI;AAC/B,EAAA,oCAAoC,EAAE,SAAS;AAC/C,EAAA,kBAAkB,EAAE,YAAY;AAChC,EAAA,oBAAoB,EAAE,YAAY;AAClC,EAAA,qBAAqB,EAAE,MAAM;AAC7B,EAAA,mBAAmB,EAAE,KAAK;AAC1B,EAAA,kBAAkB,EAAE,IAAI;AACxB,EAAA,kBAAkB,EAAE,IAAI;AACxB,EAAA,kBAAkB,EAAE,IAAI;AACxB,EAAA,kBAAkB,EAAE,IAAI;AACxB,EAAA,kBAAkB,EAAE,IAAI;AACxB,EAAA,kBAAkB,EAAE,IAAI;AACxB,EAAA,kBAAkB,EAAE,IAAI;AACxB,EAAA,kBAAkB,EAAE,IAAI;AACxB,EAAA,kBAAkB,EAAE,IAAI;AACxB,EAAA,mBAAmB,EAAE,KAAK;AAC1B,EAAA,mBAAmB,EAAE,KAAK;AAC1B,EAAA,mBAAmB,EAAE,KAAA;AACvB,CAAC;;ACrCD,MAAMA,MAAM,GAAG;AACb,EAAA,cAAc,EAAE,OAAO;AACvB,EAAA,kBAAkB,EAAE,gBAAgB;AACpC,EAAA,kBAAkB,EAAE,YAAY;AAChC,EAAA,qBAAqB,EAAE,gBAAgB;AACvC,EAAA,qBAAqB,EAAE,YAAY;AACnC,EAAA,kBAAkB,EAAE,QAAQ;AAC5B,EAAA,mBAAmB,EAAE,aAAa;AAClC,EAAA,wBAAwB,EAAE,aAAa;AACvC,EAAA,sBAAsB,EAAE,2BAA2B;AACnD,EAAA,uBAAuB,EAAE,gBAAgB;AACzC,EAAA,iBAAiB,EAAE,WAAW;AAC9B,EAAA,8BAA8B,EAAE,4BAA4B;AAC5D,EAAA,sBAAsB,EAAE,QAAQ;AAChC,EAAA,oBAAoB,EAAE,MAAM;AAC5B,EAAA,gCAAgC,EAAE,WAAW;AAC7C,EAAA,wBAAwB,EAAE,2BAA2B;AACrD,EAAA,wBAAwB,EAAE,OAAO;AACjC,EAAA,mCAAmC,EAAE,mBAAmB;AACxD,EAAA,yBAAyB,EAAE,SAAS;AACpC,EAAA,oCAAoC,EAAE,qBAAqB;AAC3D,EAAA,kBAAkB,EAAE,WAAW;AAC/B,EAAA,oBAAoB,EAAE,aAAa;AACnC,EAAA,qBAAqB,EAAE,UAAU;AACjC,EAAA,mBAAmB,EAAE,QAAQ;AAC7B,EAAA,kBAAkB,EAAE,KAAK;AACzB,EAAA,kBAAkB,EAAE,KAAK;AACzB,EAAA,kBAAkB,EAAE,KAAK;AACzB,EAAA,kBAAkB,EAAE,KAAK;AACzB,EAAA,kBAAkB,EAAE,KAAK;AACzB,EAAA,kBAAkB,EAAE,KAAK;AACzB,EAAA,kBAAkB,EAAE,KAAK;AACzB,EAAA,kBAAkB,EAAE,KAAK;AACzB,EAAA,kBAAkB,EAAE,KAAK;AACzB,EAAA,mBAAmB,EAAE,KAAK;AAC1B,EAAA,mBAAmB,EAAE,KAAK;AAC1B,EAAA,mBAAmB,EAAE,KAAA;AACvB,CAAC;;ACjCD,MAAMC,UAAU,GAAGC,gCAAsB,CAAC;AACxCC,EAAAA,aAAa,EAAE,OAAO;AACtBC,EAAAA,QAAQ,EAAE;AACR,IAAA,OAAO,EAAEC,QAAI;AACb,IAAA,OAAO,EAAEC,MAAAA;GACV;AACDC,EAAAA,SAAS,EAAE,gBAAA;AACb,CAAC,CAAC;;ACXK,MAAMC,WAAW,GAAG,YAAY,CAAA;AAChC,MAAMC,WAAW,GAAG,OAAO,CAAA;AAClC;AACO,MAAMC,uBAAuB,GAAG,GAAG,CAAA;AAC1C;AACO,MAAMC,iBAAiB,GAAG,GAAG;;ACFpC,MAAMC,aAAa,GAAGC,IAAI,IAAI;EAC5B,IAAI,CAACA,IAAI,EAAE;AACT,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;EACA,OAAOC,IAAI,CAACC,IAAI,CAACF,IAAI,CAACG,qBAAqB,EAAE,CAACC,MAAM,CAAC,CAAA;AACvD,CAAC,CAAA;AAEM,MAAMC,qBAAqB,GAAGA,CAACC,OAAO,EAAEC,WAAW,EAAEC,OAAO,KAAK;EACtE,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGC,cAAQ,CAACC,SAAS,CAAC,CAAA;AAEzDC,EAAAA,qBAAe,CAAC,MAAM;IACpB,IAAI,CAACL,OAAO,EAAE;MACZE,cAAc,CAACE,SAAS,CAAC,CAAA;AACzB,MAAA,OAAOA,SAAS,CAAA;AAClB,KAAA;AAEA,IAAA,MAAME,IAAI,GAAGR,OAAO,CAACS,OAAO,CAAA;AAC5B,IAAA,MAAMC,QAAQ,GAAGT,WAAW,CAACQ,OAAO,CAAA;AACpC,IAAA,IAAI,CAACD,IAAI,IAAI,CAACE,QAAQ,EAAE;AACtB,MAAA,OAAOJ,SAAS,CAAA;AAClB,KAAA;IAEA,MAAMK,MAAM,GAAGA,MAAM;AACnB,MAAA,MAAMC,cAAc,GAAGnB,aAAa,CAACiB,QAAQ,CAAC,CAAA;MAC9C,MAAMG,mBAAmB,GAAGlB,IAAI,CAACmB,GAAG,CAACF,cAAc,EAAEpB,iBAAiB,CAAC,CAAA;AACvE,MAAA,MAAMuB,WAAW,GAAGH,cAAc,GAAGC,mBAAmB,CAAA;AACxDT,MAAAA,cAAc,CAAC;AACbN,QAAAA,MAAM,EAAEiB,WAAW;QACnB,sBAAsB,EAAE,CAAGH,EAAAA,cAAc,CAAI,EAAA,CAAA;QAC7C,yBAAyB,EAAE,GAAGC,mBAAmB,CAAA,EAAA,CAAA;AACnD,OAAC,CAAC,CAAA;KACH,CAAA;AAEDF,IAAAA,MAAM,EAAE,CAAA;AAER,IAAA,IAAI,OAAOK,cAAc,KAAK,WAAW,EAAE;AACzCC,MAAAA,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEP,MAAM,CAAC,CAAA;MACzC,OAAO,MAAMM,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAER,MAAM,CAAC,CAAA;AAC3D,KAAA;AAEA,IAAA,MAAMS,QAAQ,GAAG,IAAIJ,cAAc,CAACL,MAAM,CAAC,CAAA;AAC3CS,IAAAA,QAAQ,CAACC,OAAO,CAACX,QAAQ,CAAC,CAAA;AAC1BU,IAAAA,QAAQ,CAACC,OAAO,CAACb,IAAI,CAAC,CAAA;AACtB,IAAA,OAAO,MAAMY,QAAQ,CAACE,UAAU,EAAE,CAAA;GACnC,EAAE,CAACrB,WAAW,EAAED,OAAO,EAAEE,OAAO,CAAC,CAAC,CAAA;AAEnC,EAAA,OAAOC,WAAW,CAAA;AACpB,CAAC;;AC9CM,MAAMoB,UAAU,GAAG,YAAA;EAAA,OACxB,EAAA,CAAAC,KAAA,CAAAC,IAAA,CAAAC,SAAA,CACGC,CAAAA,OAAO,CAACC,IAAI,IAAI;IACf,IAAI,CAACA,IAAI,EAAE;AACT,MAAA,OAAO,EAAE,CAAA;AACX,KAAA;AACA,IAAA,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MAC5B,OAAO,CAACA,IAAI,CAAC,CAAA;AACf,KAAA;AACA,IAAA,OAAOC,MAAM,CAACC,IAAI,CAACF,IAAI,CAAC,CAACG,MAAM,CAACC,GAAG,IAAIJ,IAAI,CAACI,GAAG,CAAC,CAAC,CAAA;AACnD,GAAC,CAAC,CACDC,IAAI,CAAC,GAAG,CAAC,CAAA;AAAA,CAAA,CAAA;AAEP,MAAMC,OAAO,GAAGC,KAAK,IAAI;EAC9B,IAAI,CAACA,KAAK,EAAE;AACV,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA,EAAA,MAAMC,IAAI,GAAGC,yBAAK,CAACF,KAAK,CAAC,CAAA;EACzB,OAAOC,IAAI,CAACE,OAAO,EAAE,GAAGF,IAAI,GAAG,IAAI,CAAA;AACrC,CAAC,CAAA;AAEM,MAAMG,YAAY,GAAGA,CAACH,IAAI,EAAEI,IAAI,KAAK;EAC1C,MAAMC,GAAG,GAAGP,OAAO,CAACE,IAAI,CAAC,IAAIC,yBAAK,EAAE,CAAA;EACpC,MAAMK,MAAM,GAAGL,yBAAK,CAAC,GAAGI,GAAG,CAACE,MAAM,CAACtD,WAAW,CAAC,CAAImD,CAAAA,EAAAA,IAAI,EAAE,EAAE,CAAA,EAAGnD,WAAW,CAAIC,CAAAA,EAAAA,WAAW,EAAE,CAAC,CAAA;AAC3F,EAAA,OAAOoD,MAAM,CAACJ,OAAO,EAAE,GAAGI,MAAM,GAAGD,GAAG,CAACG,OAAO,CAAC,KAAK,CAAC,CAAA;AACvD,CAAC,CAAA;AAEM,MAAMC,WAAW,GAAGA,CAACC,KAAK,EAAEC,GAAG,KAAK,CAAGV,EAAAA,yBAAK,CAACS,KAAK,CAAC,CAACH,MAAM,CAACrD,WAAW,CAAC,CAAM+C,GAAAA,EAAAA,yBAAK,CAACU,GAAG,CAAC,CAACJ,MAAM,CAACrD,WAAW,CAAC,CAAE,CAAA,CAAA;AAE7G,MAAM0D,oBAAoB,GAAGA,CAACC,iBAAiB,EAAEC,GAAG,KAAK;AAC9D,EAAA,IAAI,OAAOD,iBAAiB,KAAK,UAAU,EAAE;IAC3C,OAAOA,iBAAiB,CAACC,GAAG,CAAC,CAAA;AAC/B,GAAA;EACA,OAAO;AACLC,IAAAA,KAAK,EAAE,EAAE;AACTC,IAAAA,MAAM,EAAE,EAAE;IACV,IAAIH,iBAAiB,IAAI,EAAE,CAAA;GAC5B,CAAA;AACH,CAAC,CAAA;MAEYI,iBAAiB,GAAGC,MAAM,IACrC,CAAC,IAAIA,MAAM,IAAI,EAAE,CAAC,CAAC,CAACC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;AACjC,EAAA,MAAMC,MAAM,GAAGxB,OAAO,CAACsB,CAAC,CAACV,KAAK,CAAC,EAAEa,OAAO,EAAE,IAAI,CAAC,CAAA;AAC/C,EAAA,MAAMC,MAAM,GAAG1B,OAAO,CAACuB,CAAC,CAACX,KAAK,CAAC,EAAEa,OAAO,EAAE,IAAI,CAAC,CAAA;EAC/C,OAAOD,MAAM,GAAGE,MAAM,CAAA;AACxB,CAAC,EAAC;AAESC,MAAAA,gBAAgB,GAAGP,MAAM,IAAI;AACxC,EAAA,MAAMQ,GAAG,GAAG,IAAIC,GAAG,EAAE,CAAA;AACrB,EAAA,CAACT,MAAM,IAAI,EAAE,EAAEU,OAAO,CAACC,KAAK,IAAI;IAC9BH,GAAG,CAACI,GAAG,CAACD,KAAK,CAACE,EAAE,EAAEF,KAAK,CAAC,CAAA;AAC1B,GAAC,CAAC,CAAA;AACF,EAAA,OAAO,CAAC,GAAGH,GAAG,CAACM,MAAM,EAAE,CAAC,CAAA;AAC1B,EAAC;AAEM,MAAMC,kBAAkB,GAAGA,CAAC;EAAElC,KAAK;EAAEmC,YAAY;AAAEC,EAAAA,QAAAA;AAAS,CAAC,KAAK;EACvE,MAAMC,KAAK,GAAG,EAAE,CAAA;AAChB,EAAA,IAAI,OAAOrC,KAAK,KAAK,WAAW,EAAE;IAChCqC,KAAK,CAACrC,KAAK,GAAGA,KAAK,CAAA;AACrB,GAAA;AACA,EAAA,IAAI,OAAOmC,YAAY,KAAK,WAAW,EAAE;IACvCE,KAAK,CAACF,YAAY,GAAGA,YAAY,CAAA;AACnC,GAAA;AACA,EAAA,IAAIC,QAAQ,EAAE;IACZC,KAAK,CAACD,QAAQ,GAAGA,QAAQ,CAAA;AAC3B,GAAA;EACA,OAAOE,mCAAe,CAACD,KAAK,CAAC,CAAA;AAC/B,CAAC;;ACvED,MAAME,eAAe,GAAGA,CAACC,MAAM,EAAEC,aAAa,KAAK;EACjD,IAAI,CAACD,MAAM,EAAE;AACX,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA,EAAA,IAAI,OAAOA,MAAM,KAAK,SAAS,EAAE;AAC/B,IAAA,OAAOA,MAAM,GAAG;AAAEE,MAAAA,QAAQ,EAAE,IAAI;AAAEC,MAAAA,MAAM,EAAEF,aAAAA;AAAc,KAAC,GAAG,IAAI,CAAA;AAClE,GAAA;EACA,IAAID,MAAM,CAACE,QAAQ,EAAE;IACnB,OAAO;AAAEA,MAAAA,QAAQ,EAAE,IAAI;AAAEC,MAAAA,MAAM,EAAEH,MAAM,CAACG,MAAM,IAAIF,aAAAA;KAAe,CAAA;AACnE,GAAA;AACA,EAAA,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAEM,MAAMG,SAAS,GAAGA,CAAC;EAAE3C,IAAI;EAAE4C,IAAI;EAAEC,IAAI;EAAEC,YAAY;EAAEC,gBAAgB;AAAEC,EAAAA,iBAAAA;AAAkB,CAAC,KAAK;EACpG,IAAIF,YAAY,GAAG9C,IAAI,CAACiD,MAAM,EAAE,CAAC,EAAE;IACjC,OAAO;AAAER,MAAAA,QAAQ,EAAE,IAAA;KAAM,CAAA;AAC3B,GAAA;AACA,EAAA,MAAM3B,GAAG,GAAG;AACVd,IAAAA,IAAI,EAAEA,IAAI,CAACiD,MAAM,EAAE;IACnBJ,IAAI;AACJ,IAAA,IAAID,IAAI,GACJ;AACEA,MAAAA,IAAI,EAAE;AACJlC,QAAAA,KAAK,EAAEkC,IAAI,CAAClC,KAAK,CAACuC,MAAM,EAAE;AAC1BtC,QAAAA,GAAG,EAAEiC,IAAI,CAACjC,GAAG,CAACsC,MAAM,EAAC;AACvB,OAAA;KACD,GACD,EAAE,CAAA;GACP,CAAA;EACD,MAAMC,cAAc,GAAGZ,eAAe,CAACS,gBAAgB,GAAGjC,GAAG,CAAC,CAAC,CAAA;AAC/D,EAAA,IAAIoC,cAAc,EAAE;AAClB,IAAA,OAAOA,cAAc,CAAA;AACvB,GAAA;AACA,EAAA,IAAIF,iBAAiB,IAAI,CAACA,iBAAiB,CAAClC,GAAG,CAAC,EAAE;IAChD,OAAO;AAAE2B,MAAAA,QAAQ,EAAE,IAAA;KAAM,CAAA;AAC3B,GAAA;AACA,EAAA,OAAO,IAAI,CAAA;AACb,CAAC;;AChCYU,MAAAA,cAAc,GAAGtB,KAAK,IAAI;EACrC,MAAMnB,KAAK,GAAGZ,OAAO,CAAC+B,KAAK,CAACnB,KAAK,IAAImB,KAAK,CAAC7B,IAAI,CAAC,CAAA;AAChD,EAAA,MAAMW,GAAG,GAAGb,OAAO,CAAC+B,KAAK,CAAClB,GAAG,IAAIkB,KAAK,CAACnB,KAAK,IAAImB,KAAK,CAAC7B,IAAI,CAAC,CAAA;EAC3D,OAAO;AACL,IAAA,GAAG6B,KAAK;IACRnB,KAAK;IACLC,GAAG,EAAEA,GAAG,IAAID,KAAK,IAAI,CAACC,GAAG,CAACyC,OAAO,CAAC1C,KAAK,CAAC,GAAGA,KAAK,CAAC2C,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG1C,GAAAA;GACrE,CAAA;AACH,EAAC;AAEY2C,MAAAA,iBAAiB,GAAGpC,MAAM,IAAI;EACzC,OAAO,CAACA,MAAM,IAAI,EAAE,EAAEqC,MAAM,CAAC,CAAChB,MAAM,EAAEV,KAAK,KAAK;AAC9C,IAAA,MAAM2B,UAAU,GAAGL,cAAc,CAACtB,KAAK,CAAC,CAAA;IACxC,IAAI,CAAC2B,UAAU,CAAC9C,KAAK,IAAI,CAAC8C,UAAU,CAAC7C,GAAG,EAAE;AACxC,MAAA,OAAO4B,MAAM,CAAA;AACf,KAAA;IACA,MAAMkB,UAAU,GAAGD,UAAU,CAAC9C,KAAK,CAACF,OAAO,CAAC,KAAK,CAAC,CAAA;IAClD,MAAMkD,QAAQ,GAAGF,UAAU,CAAC7C,GAAG,CAACH,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9C,IAAInC,OAAO,GAAGoF,UAAU,CAAA;AACxB,IAAA,OAAOpF,OAAO,CAACsF,QAAQ,CAACD,QAAQ,CAAC,IAAIrF,OAAO,CAACuF,MAAM,CAACF,QAAQ,EAAE,KAAK,CAAC,EAAE;AACpE,MAAA,MAAM9D,GAAG,GAAGvB,OAAO,CAACkC,MAAM,CAACtD,WAAW,CAAC,CAAA;MACvCsF,MAAM,CAAC3C,GAAG,CAAC,GAAG2C,MAAM,CAAC3C,GAAG,CAAC,IAAI,EAAE,CAAA;AAC/B2C,MAAAA,MAAM,CAAC3C,GAAG,CAAC,CAACiE,IAAI,CAACL,UAAU,CAAC,CAAA;MAC5BnF,OAAO,GAAGA,OAAO,CAACgF,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AACjC,KAAA;AACA,IAAA,OAAOd,MAAM,CAAA;GACd,EAAE,EAAE,CAAC,CAAA;AACR,EAAC;AAED,MAAMuB,oBAAoB,GAAGA,CAACC,SAAS,EAAEC,OAAO,EAAEC,YAAY,KAAK;EACjE,MAAMC,OAAO,GAAG,EAAE,CAAA;AAClB,EAAA,KAAK,MAAMrC,KAAK,IAAIoC,YAAY,EAAE;IAChC,IAAI,CAACpC,KAAK,CAAClB,GAAG,CAACyC,OAAO,CAACW,SAAS,CAAC,EAAE;AACjC,MAAA,SAAA;AACF,KAAA;IACA,IAAI,CAAClC,KAAK,CAACnB,KAAK,CAACiD,QAAQ,CAACK,OAAO,CAAC,EAAE;AAClC,MAAA,MAAA;AACF,KAAA;AACAE,IAAAA,OAAO,CAACL,IAAI,CAAChC,KAAK,CAAC,CAAA;AACrB,GAAA;AACA,EAAA,OAAOqC,OAAO,CAAA;AAChB,CAAC,CAAA;AAEM,MAAMC,iBAAiB,GAAGA,CAAC;EAAEnE,IAAI;EAAEkB,MAAM;AAAEkD,EAAAA,QAAQ,GAAG,EAAE;AAAEC,EAAAA,QAAQ,GAAG,OAAO;AAAEC,EAAAA,MAAM,GAAG,OAAO;EAAExB,YAAY;EAAEC,gBAAgB;EAAEC,iBAAiB;AAAEH,EAAAA,IAAI,GAAG,UAAA;AAAW,CAAC,KAAK;EAChL,MAAM0B,YAAY,GAAGzE,OAAO,CAACE,IAAI,CAAC,IAAIC,yBAAK,EAAE,CAAA;AAC7C,EAAA,MAAMuE,OAAO,GAAGrE,YAAY,CAACoE,YAAY,EAAEF,QAAQ,CAAC,CAAA;AACpD,EAAA,MAAMI,KAAK,GAAGtE,YAAY,CAACoE,YAAY,EAAED,MAAM,CAAC,CAAA;AAChD,EAAA,IAAI,CAACE,OAAO,CAACb,QAAQ,CAACc,KAAK,CAAC,EAAE;AAC5B,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;EACA,MAAMC,gBAAgB,GAAG,CAACxD,MAAM,IAAI,EAAE,EACnCQ,GAAG,CAACyB,cAAc,CAAC,CACnBxD,MAAM,CAACkC,KAAK,IAAIA,KAAK,CAACnB,KAAK,IAAImB,KAAK,CAAClB,GAAG,CAAC,CACzCQ,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACV,KAAK,CAACa,OAAO,EAAE,GAAGF,CAAC,CAACX,KAAK,CAACa,OAAO,EAAE,CAAC,CAAA;EACxD,MAAMoD,KAAK,GAAG,EAAE,CAAA;EAChB,IAAItG,OAAO,GAAGmG,OAAO,CAAA;AAErB,EAAA,OAAOnG,OAAO,CAACsF,QAAQ,CAACc,KAAK,CAAC,EAAE;IAC9B,MAAMV,SAAS,GAAG1F,OAAO,CAAA;IACzB,MAAM2F,OAAO,GAAGD,SAAS,CAACV,GAAG,CAACe,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACjD,MAAMQ,aAAa,GAAGd,oBAAoB,CAACC,SAAS,EAAEC,OAAO,EAAEU,gBAAgB,CAAC,CAAA;AAChF,IAAA,MAAMG,QAAQ,GAAG;AACfjF,MAAAA,GAAG,EAAE,CAAA,EAAGmE,SAAS,CAACxD,MAAM,CAACtD,WAAW,CAAC,CAAA,CAAA,EAAI8G,SAAS,CAACxD,MAAM,CAACrD,WAAW,CAAC,CAAE,CAAA;AACxE8C,MAAAA,IAAI,EAAE+D,SAAS,CAACxD,MAAM,CAACtD,WAAW,CAAC;AACnCyD,MAAAA,KAAK,EAAEqD,SAAS;AAChBpD,MAAAA,GAAG,EAAEqD,OAAAA;KACN,CAAA;IACD,MAAMc,UAAU,GAAGnC,SAAS,CAAC;AAC3B3C,MAAAA,IAAI,EAAEuE,YAAY;AAClB3B,MAAAA,IAAI,EAAEiC,QAAQ;MACdhC,IAAI;MACJC,YAAY;MACZC,gBAAgB;AAChBC,MAAAA,iBAAAA;AACF,KAAC,CAAC,CAAA;IAEF2B,KAAK,CAACd,IAAI,CAAC;AACT,MAAA,GAAGgB,QAAQ;AACXnE,MAAAA,KAAK,EAAEqD,SAAS,CAACd,MAAM,EAAE;AACzBtC,MAAAA,GAAG,EAAEqD,OAAO,CAACf,MAAM,EAAE;AACrB8B,MAAAA,MAAM,EAAED,UAAU,GAAG,UAAU,GAAGF,aAAa,CAACI,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,MAAM;MAChFC,cAAc,EAAEH,UAAU,EAAEpC,MAAM;AAClCxB,MAAAA,MAAM,EAAE0D,aAAAA;AACV,KAAC,CAAC,CAAA;AACFvG,IAAAA,OAAO,GAAG2F,OAAO,CAAA;AACnB,GAAA;AACA,EAAA,OAAOW,KAAK,CAAA;AACd;;ACzFA,MAAMO,KAAK,GAAGnF,KAAK,IAAID,OAAO,CAACC,KAAK,CAAC,IAAIE,yBAAK,EAAE,CAAA;AAEzC,MAAMkF,YAAY,GAAGA,CAACC,aAAa,EAAEC,UAAU,KAAKD,aAAa,CAAC;AAAErD,EAAAA,EAAE,EAAE,CAAA,eAAA,EAAkBsD,UAAU,GAAG,CAAC,CAAA,CAAA;AAAG,CAAC,CAAC,CAAA;AAE7G,MAAMC,iBAAiB,GAAGA,CAACF,aAAa,EAAEpF,IAAI,KAAK;AACxD,EAAA,MAAMuF,CAAC,GAAGL,KAAK,CAAClF,IAAI,CAAC,CAAA;AACrB,EAAA,MAAMqF,UAAU,GAAGE,CAAC,CAACC,KAAK,EAAE,CAAA;AAC5B,EAAA,OAAOJ,aAAa,CAClB;AAAErD,IAAAA,EAAE,EAAE,sBAAA;AAAuB,GAAC,EAC9B;AACE0D,IAAAA,IAAI,EAAEF,CAAC,CAACE,IAAI,EAAE;IACdD,KAAK,EAAEH,UAAU,GAAG,CAAC;AACrBhF,IAAAA,GAAG,EAAEkF,CAAC,CAACvF,IAAI,EAAE;AACb0F,IAAAA,SAAS,EAAEP,YAAY,CAACC,aAAa,EAAEC,UAAU,CAAA;AACnD,GACF,CAAC,CAAA;AACH,CAAC,CAAA;AAEM,MAAMM,mBAAmB,GAAGA,CAACP,aAAa,EAAEpF,IAAI,KAAK;AAC1D,EAAA,MAAMuF,CAAC,GAAGL,KAAK,CAAClF,IAAI,CAAC,CAAA;AACrB,EAAA,MAAMqF,UAAU,GAAGE,CAAC,CAACC,KAAK,EAAE,CAAA;AAC5B,EAAA,OAAOJ,aAAa,CAClB;AAAErD,IAAAA,EAAE,EAAE,mBAAA;AAAoB,GAAC,EAC3B;IACEyD,KAAK,EAAEH,UAAU,GAAG,CAAC;AACrBK,IAAAA,SAAS,EAAEP,YAAY,CAACC,aAAa,EAAEC,UAAU,CAAA;AACnD,GACF,CAAC,CAAA;AACH,CAAC,CAAA;AAEM,MAAMO,uBAAuB,GAAGA,CAACR,aAAa,EAAErF,KAAK,EAAEsF,UAAU,KACtED,aAAa,CACX;AAAErD,EAAAA,EAAE,EAAE,wBAAA;AAAyB,CAAC,EAChC;EACEyD,KAAK,EAAEH,UAAU,GAAG,CAAC;AACrBK,EAAAA,SAAS,EAAEP,YAAY,CAACC,aAAa,EAAEC,UAAU,CAAA;AACnD,CACF,CAAC;;;;ACtCH,MAAMQ,aAAa,GAAGA,CAAC;EAAEC,SAAS;AAAEC,EAAAA,SAAAA;AAAU,CAAC,kBAC7CC,cAAA,CAAA,KAAA,EAAA;AAAKD,EAAAA,SAAS,EAAEA,SAAS,IAAIE,OAAK,CAAC,iBAAiB,CAAE;AAACC,EAAAA,OAAO,EAAC,WAAW;EAAC,aAAW,EAAA,IAAA;AAACC,EAAAA,SAAS,EAAC,OAAO;AAAAC,EAAAA,QAAA,eACtGJ,cAAA,CAAA,MAAA,EAAA;AAAMT,IAAAA,CAAC,EAAEO,SAAS,KAAK,MAAM,GAAG,mBAAmB,GAAG,kBAAmB;AAACO,IAAAA,IAAI,EAAC,MAAM;AAACC,IAAAA,MAAM,EAAC,cAAc;AAACC,IAAAA,WAAW,EAAC,KAAK;AAACC,IAAAA,aAAa,EAAC,OAAO;AAACC,IAAAA,cAAc,EAAC,OAAA;GAAS,CAAA;AAAC,CAC1K,CACN;;ACNM,MAAMC,cAAc,GAAG,EAAE,CAAA;AAEzB,MAAMC,gBAAgB,GAAGlB,IAAI,IAAIlI,IAAI,CAACqJ,KAAK,CAACnB,IAAI,GAAGiB,cAAc,CAAC,GAAGA,cAAc;;ACK1F,MAAMG,cAAc,GAAGA,CAAC;EAAEC,KAAK;EAAEC,OAAO;AAAEX,EAAAA,QAAAA;AAAS,CAAC,kBAClDJ,cAAA,CAAA,QAAA,EAAA;AAAQgB,EAAAA,IAAI,EAAC,QAAQ;AAACjB,EAAAA,SAAS,EAAEE,OAAK,CAAC,kBAAkB,CAAE;AAAC,EAAA,YAAA,EAAYa,KAAM;AAACC,EAAAA,OAAO,EAAEA,OAAQ;AAAAX,EAAAA,QAAA,EAC7FA,QAAAA;AAAQ,CACH,CACT,CAAA;AAED,MAAMa,eAAe,GAAGA,CAAC;EAAElH,KAAK;EAAEmH,SAAS;EAAEC,iBAAiB;AAAEC,EAAAA,QAAAA;AAAS,CAAC,KAAK;EAC7E,MAAM;AAAEhC,IAAAA,aAAAA;GAAe,GAAGiC,iBAAO,EAAE,CAAA;EACnC,MAAMC,KAAK,GAAGC,aAAO,CAAC,MAAMC,KAAK,CAACC,IAAI,CAAC;AAAEzC,IAAAA,MAAM,EAAE0B,cAAAA;AAAe,GAAC,EAAE,CAACgB,CAAC,EAAEC,KAAK,KAAKT,SAAS,GAAGS,KAAK,CAAC,EAAE,CAACT,SAAS,CAAC,CAAC,CAAA;AACjH,EAAA,oBACEU,eAAA,CAAA,KAAA,EAAA;AAAK7B,IAAAA,SAAS,EAAEE,OAAK,CAAC,cAAc,CAAE;AAAAG,IAAAA,QAAA,gBACpCwB,eAAA,CAAA,KAAA,EAAA;AAAK7B,MAAAA,SAAS,EAAEE,OAAK,CAAC,qBAAqB,CAAE;MAAAG,QAAA,EAAA,cAC3CJ,cAAA,CAACa,cAAc,EAAA;QAACC,KAAK,EAAE1B,aAAa,CAAC;AAAErD,UAAAA,EAAE,EAAE,qBAAA;AAAsB,SAAC,CAAE;QAACgF,OAAO,EAAEA,MAAMI,iBAAiB,CAACD,SAAS,GAAGR,cAAc,CAAE;QAAAN,QAAA,eAChIJ,cAAA,CAACH,aAAa,EAAA;AAACC,UAAAA,SAAS,EAAC,MAAM;UAACC,SAAS,EAAEE,OAAK,CAAC,uBAAuB,CAAA;SAAI,CAAA;OAC9D,CAAC,eACjB2B,eAAA,CAAA,KAAA,EAAA;AAAK7B,QAAAA,SAAS,EAAEE,OAAK,CAAC,oBAAoB,CAAE;QAAAG,QAAA,EAAA,CACzCc,SAAS,EAAC,GAAC,EAACA,SAAS,GAAGR,cAAc,GAAG,CAAC,CAAA;AAAA,OACxC,CAAC,eACNV,cAAA,CAACa,cAAc,EAAA;QAACC,KAAK,EAAE1B,aAAa,CAAC;AAAErD,UAAAA,EAAE,EAAE,qBAAA;AAAsB,SAAC,CAAE;QAACgF,OAAO,EAAEA,MAAMI,iBAAiB,CAACD,SAAS,GAAGR,cAAc,CAAE;QAAAN,QAAA,eAChIJ,cAAA,CAACH,aAAa,EAAA;AAACC,UAAAA,SAAS,EAAC,MAAM;UAACC,SAAS,EAAEE,OAAK,CAAC,uBAAuB,CAAA;SAAI,CAAA;AAAC,OAC/D,CAAC,CAAA;KACd,CAAC,eACND,cAAA,CAAA,KAAA,EAAA;AAAKD,MAAAA,SAAS,EAAEE,OAAK,CAAC,mBAAmB,CAAE;AAAAG,MAAAA,QAAA,EACxCkB,KAAK,CAAC5F,GAAG,CAAC+D,IAAI,iBACbO,cAAA,CAAA,QAAA,EAAA;AAAmBgB,QAAAA,IAAI,EAAC,QAAQ;AAACjB,QAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC,aAAa,CAAC,EAAE;UAAE,CAACA,OAAK,CAAC,oBAAoB,CAAC,GAAGR,IAAI,KAAK1F,KAAK,CAAC0F,IAAI,EAAC;AAAE,SAAC,CAAE;AAACsB,QAAAA,OAAO,EAAEA,MAAMK,QAAQ,CAAC3B,IAAI,CAAE;AAAAW,QAAAA,QAAA,EACnKX,IAAAA;AAAI,OAAA,EADMA,IAEL,CACT,CAAA;AAAC,KACC,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV,CAAC;;AChCD,MAAMoC,gBAAgB,GAAGA,CAAC;EAAE9H,KAAK;AAAEqH,EAAAA,QAAAA;AAAS,CAAC,KAAK;EAChD,MAAM;AAAEhC,IAAAA,aAAAA;GAAe,GAAGiC,iBAAO,EAAE,CAAA;EACnC,MAAMS,MAAM,GAAGP,aAAO,CAAC,MAAMC,KAAK,CAACC,IAAI,CAAC;AAAEzC,IAAAA,MAAM,EAAE,EAAA;GAAI,EAAE,CAAC0C,CAAC,EAAEC,KAAK,KAAKA,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;AACjF,EAAA,oBACE3B,cAAA,CAAA,KAAA,EAAA;AAAKD,IAAAA,SAAS,EAAEE,OAAK,CAAC,cAAc,CAAE;AAAAG,IAAAA,QAAA,eACpCJ,cAAA,CAAA,KAAA,EAAA;AAAKD,MAAAA,SAAS,EAAEE,OAAK,CAAC,mBAAmB,CAAE;AAAAG,MAAAA,QAAA,EACxC0B,MAAM,CAACpG,GAAG,CAAC8D,KAAK,iBACfQ,cAAA,CAAA,QAAA,EAAA;AAAoBgB,QAAAA,IAAI,EAAC,QAAQ;AAACjB,QAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC,aAAa,CAAC,EAAE;UAAE,CAACA,OAAK,CAAC,oBAAoB,CAAC,GAAGT,KAAK,KAAKzF,KAAK,CAACyF,KAAK,EAAC;AAAE,SAAC,CAAE;AAACuB,QAAAA,OAAO,EAAEA,MAAMK,QAAQ,CAAC5B,KAAK,CAAE;AAAAY,QAAAA,QAAA,EACvKR,uBAAuB,CAACR,aAAa,EAAErF,KAAK,EAAEyF,KAAK,CAAA;AAAC,OAAA,EAD1CA,KAEL,CACT,CAAA;KACE,CAAA;AAAC,GACH,CAAC,CAAA;AAEV,CAAC;;ACRD,MAAMuC,eAAe,GAAGA,CAAC;EAAEjB,KAAK;EAAEC,OAAO;AAAEX,EAAAA,QAAAA;AAAS,CAAC,kBACnDJ,cAAA,CAAA,QAAA,EAAA;AAAQgB,EAAAA,IAAI,EAAC,QAAQ;AAACjB,EAAAA,SAAS,EAAEE,OAAK,CAAC,YAAY,CAAE;AAAC,EAAA,YAAA,EAAYa,KAAM;AAACC,EAAAA,OAAO,EAAEA,OAAQ;AAAAX,EAAAA,QAAA,EACvFA,QAAAA;AAAQ,CACH,CACT,CAAA;AAED,MAAM4B,MAAM,GAAGA,CAAC;EAAE3J,OAAO;EAAE4J,eAAe;EAAEC,eAAe;AAAEC,EAAAA,aAAAA;AAAc,CAAC,KAAK;EAC/E,MAAM;AAAE/C,IAAAA,aAAAA;GAAe,GAAGiC,iBAAO,EAAE,CAAA;EACnC,MAAMrH,IAAI,GAAGF,OAAO,CAACzB,OAAO,CAAC,IAAI4B,yBAAK,EAAE,CAAA;EACxC,MAAM,CAACmI,QAAQ,EAAEC,WAAW,CAAC,GAAGpK,cAAQ,CAAC,KAAK,CAAC,CAAA;EAC/C,MAAM,CAACqK,SAAS,EAAEC,YAAY,CAAC,GAAGtK,cAAQ,CAAC,KAAK,CAAC,CAAA;AACjD,EAAA,MAAM,CAACuK,aAAa,EAAEC,gBAAgB,CAAC,GAAGxK,cAAQ,CAAC,MAAM0I,gBAAgB,CAAC3G,IAAI,CAACyF,IAAI,EAAE,CAAC,CAAC,CAAA;AACvF,EAAA,MAAMiD,WAAW,GAAG1I,IAAI,CAACyF,IAAI,EAAE,CAAA;EAC/B,MAAMkD,QAAQ,GAAGvD,aAAa,CAAC;AAAErD,IAAAA,EAAE,EAAE,kBAAA;AAAmB,GAAC,EAAE;AAAE0D,IAAAA,IAAI,EAAEzF,IAAI,CAACyF,IAAI,EAAC;AAAE,GAAC,CAAC,CAAA;AACjF,EAAA,MAAMmD,SAAS,GAAGjD,mBAAmB,CAACP,aAAa,EAAEpF,IAAI,CAAC,CAAA;AAE1D6I,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAIT,QAAQ,EAAE;AACZK,MAAAA,gBAAgB,CAAC9B,gBAAgB,CAAC+B,WAAW,CAAC,CAAC,CAAA;AACjD,KAAA;AACF,GAAC,EAAE,CAACN,QAAQ,EAAEM,WAAW,CAAC,CAAC,CAAA;EAE3B,MAAMI,gBAAgB,GAAGrD,IAAI,IAAI;AAC/ByC,IAAAA,eAAe,CAAClI,IAAI,CAACyF,IAAI,CAACA,IAAI,CAAC,EAAE;AAAEsD,MAAAA,MAAM,EAAE,QAAA;AAAS,KAAC,CAAC,CAAA;IACtDV,WAAW,CAAC,KAAK,CAAC,CAAA;GACnB,CAAA;EAED,MAAMW,iBAAiB,GAAGxD,KAAK,IAAI;AACjC0C,IAAAA,eAAe,CAAClI,IAAI,CAACwF,KAAK,CAACA,KAAK,CAAC,EAAE;AAAEuD,MAAAA,MAAM,EAAE,QAAA;AAAS,KAAC,CAAC,CAAA;IACxDR,YAAY,CAAC,KAAK,CAAC,CAAA;GACpB,CAAA;AAED,EAAA,oBACEX,eAAA,CAAA,KAAA,EAAA;AAAK7B,IAAAA,SAAS,EAAEE,OAAK,CAAC,iBAAiB,CAAE;AAAAG,IAAAA,QAAA,gBACvCwB,eAAA,CAAA,KAAA,EAAA;AAAK7B,MAAAA,SAAS,EAAEE,OAAK,CAAC,gBAAgB,CAAE;MAAAG,QAAA,EAAA,cACtCJ,cAAA,CAACiD,YAAO,EAAA;AACNC,QAAAA,IAAI,EAAEd,QAAS;QACfe,YAAY,EAAED,IAAI,IAAI;UACpBb,WAAW,CAACa,IAAI,CAAC,CAAA;AACjB,UAAA,IAAIA,IAAI,EAAE;YACRX,YAAY,CAAC,KAAK,CAAC,CAAA;AACrB,WAAA;SACA;AACFa,QAAAA,OAAO,EAAC,OAAO;AACfC,QAAAA,SAAS,EAAC,YAAY;AACtBC,QAAAA,aAAa,EAAErD,OAAK,CAAC,uBAAuB,CAAE;QAC9CsD,OAAO,eAAEvD,cAAA,CAACiB,eAAe,EAAA;AAAClH,UAAAA,KAAK,EAAEC,IAAK;AAACkH,UAAAA,SAAS,EAAEsB,aAAc;AAACrB,UAAAA,iBAAiB,EAAEsB,gBAAiB;AAACrB,UAAAA,QAAQ,EAAE0B,gBAAAA;AAAiB,SAAE,CAAE;AAAA1C,QAAAA,QAAA,eAErIJ,cAAA,CAAA,QAAA,EAAA;AAAQgB,UAAAA,IAAI,EAAC,QAAQ;AAACjB,UAAAA,SAAS,EAAEE,OAAK,CAAC,qBAAqB,CAAE;AAAAG,UAAAA,QAAA,EAC3DuC,QAAAA;SACK,CAAA;AAAC,OACF,CAAC,eACV3C,cAAA,CAACiD,YAAO,EAAA;AACNC,QAAAA,IAAI,EAAEZ,SAAU;QAChBa,YAAY,EAAED,IAAI,IAAI;UACpBX,YAAY,CAACW,IAAI,CAAC,CAAA;AAClB,UAAA,IAAIA,IAAI,EAAE;YACRb,WAAW,CAAC,KAAK,CAAC,CAAA;AACpB,WAAA;SACA;AACFe,QAAAA,OAAO,EAAC,OAAO;AACfC,QAAAA,SAAS,EAAC,YAAY;AACtBC,QAAAA,aAAa,EAAErD,OAAK,CAAC,uBAAuB,CAAE;QAC9CsD,OAAO,eAAEvD,cAAA,CAAC6B,gBAAgB,EAAA;AAAC9H,UAAAA,KAAK,EAAEC,IAAK;AAACoH,UAAAA,QAAQ,EAAE4B,iBAAAA;AAAkB,SAAE,CAAE;AAAA5C,QAAAA,QAAA,eAExEJ,cAAA,CAAA,QAAA,EAAA;AAAQgB,UAAAA,IAAI,EAAC,QAAQ;AAACjB,UAAAA,SAAS,EAAEE,OAAK,CAAC,qBAAqB,CAAE;AAAAG,UAAAA,QAAA,EAC3DwC,SAAAA;SACK,CAAA;AAAC,OACF,CAAC,CAAA;AAAA,KACP,CAAC,eACNhB,eAAA,CAAC4B,UAAK,EAAA;AAACC,MAAAA,IAAI,EAAE,CAAE;AAAC1D,MAAAA,SAAS,EAAEE,OAAK,CAAC,gBAAgB,CAAE;AAAAG,MAAAA,QAAA,EAChD6B,CAAAA,eAAe,gBACdjC,cAAA,CAAC0D,WAAM,EAAA;AAAC3D,QAAAA,SAAS,EAAEE,OAAK,CAAC,cAAc,CAAE;AAACe,QAAAA,IAAI,EAAC,MAAM;AAACyC,QAAAA,IAAI,EAAC,OAAO;AAAC1C,QAAAA,OAAO,EAAEoB,aAAc;QAAA/B,QAAA,EACvFhB,aAAa,CAAC;AAAErD,UAAAA,EAAE,EAAE,cAAA;SAAgB,CAAA;AAAC,OAChC,CAAC,GACP,IAAI,eACRiE,cAAA,CAAC+B,eAAe,EAAA;QAACjB,KAAK,EAAE1B,aAAa,CAAC;AAAErD,UAAAA,EAAE,EAAE,kBAAA;AAAmB,SAAC,CAAE;AAACgF,QAAAA,OAAO,EAAEA,MAAMmB,eAAe,CAAClI,IAAI,CAAC2J,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;AAAEZ,UAAAA,MAAM,EAAE,WAAA;AAAY,SAAC,CAAE;QAAA3C,QAAA,eACpJJ,cAAA,CAACH,aAAa,EAAA;AAACC,UAAAA,SAAS,EAAC,MAAA;SAAQ,CAAA;AAAC,OACnB,CAAC,eAClBE,cAAA,CAAC+B,eAAe,EAAA;QAACjB,KAAK,EAAE1B,aAAa,CAAC;AAAErD,UAAAA,EAAE,EAAE,kBAAA;AAAmB,SAAC,CAAE;AAACgF,QAAAA,OAAO,EAAEA,MAAMmB,eAAe,CAAClI,IAAI,CAACqD,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;AAAE0F,UAAAA,MAAM,EAAE,WAAA;AAAY,SAAC,CAAE;QAAA3C,QAAA,eAC/IJ,cAAA,CAACH,aAAa,EAAA;AAACC,UAAAA,SAAS,EAAC,MAAA;SAAQ,CAAA;AAAC,OACnB,CAAC,CAAA;AAAA,KACb,CAAC,CAAA;AAAA,GACL,CAAC,CAAA;AAEV,CAAC;;AC/FD,MAAM8D,SAAS,GAAGtM,IAAI,IAAI;EACxB,IAAI,CAACA,IAAI,EAAE;AACT,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;AACA,EAAA,OAAOA,IAAI,CAACG,qBAAqB,EAAE,CAACoM,KAAK,CAAA;AAC3C,CAAC,CAAA;AAEM,MAAMC,gBAAgB,GAAGA,CAACC,GAAG,EAAEC,OAAO,KAAK;EAChD,MAAM,CAAClM,OAAO,EAAEmM,UAAU,CAAC,GAAGhM,cAAQ,CAAC,KAAK,CAAC,CAAA;AAE7CE,EAAAA,qBAAe,CAAC,MAAM;AACpB,IAAA,MAAMb,IAAI,GAAGyM,GAAG,CAAC1L,OAAO,CAAA;IACxB,IAAI,CAACf,IAAI,EAAE;AACT,MAAA,OAAA;AACF,KAAA;AACA2M,IAAAA,UAAU,CAACL,SAAS,CAACtM,IAAI,CAAC,GAAG0M,OAAO,CAAC,CAAA;AACvC,GAAC,EAAE,CAACD,GAAG,EAAEC,OAAO,CAAC,CAAC,CAAA;AAElBnB,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,MAAMvL,IAAI,GAAGyM,GAAG,CAAC1L,OAAO,CAAA;IACxB,IAAI,CAACf,IAAI,EAAE;AACT,MAAA,OAAOY,SAAS,CAAA;AAClB,KAAA;IAEA,MAAMK,MAAM,GAAGA,MAAM;AACnB0L,MAAAA,UAAU,CAACL,SAAS,CAACtM,IAAI,CAAC,GAAG0M,OAAO,CAAC,CAAA;KACtC,CAAA;AAEDzL,IAAAA,MAAM,EAAE,CAAA;AAER,IAAA,IAAI,OAAOK,cAAc,KAAK,WAAW,EAAE;AACzCC,MAAAA,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEP,MAAM,CAAC,CAAA;MACzC,OAAO,MAAMM,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAER,MAAM,CAAC,CAAA;AAC3D,KAAA;IAEA,MAAMS,QAAQ,GAAG,IAAIJ,cAAc,CAAC,MAAML,MAAM,EAAE,CAAC,CAAA;AACnDS,IAAAA,QAAQ,CAACC,OAAO,CAAC3B,IAAI,CAAC,CAAA;AACtB,IAAA,OAAO,MAAM0B,QAAQ,CAACE,UAAU,EAAE,CAAA;AACpC,GAAC,EAAE,CAAC6K,GAAG,EAAEC,OAAO,CAAC,CAAC,CAAA;AAElB,EAAA,OAAOlM,OAAO,CAAA;AAChB,CAAC;;;;ACvCD,MAAMoM,QAAQ,GAAGA,CAAC;EAAElK,IAAI;EAAEmK,SAAS;EAAEC,QAAQ;EAAEC,YAAY;EAAE5H,QAAQ;EAAE6H,aAAa;AAAEC,EAAAA,cAAAA;AAAe,CAAC,KAAK;AACzG,EAAA,MAAMC,KAAK,GAAGL,SAAS,CAACnF,MAAM,CAAA;EAC9B,MAAMyF,UAAU,GAAGF,cAAc,GAAGvK,IAAI,CAACiD,MAAM,EAAE,EAAE;AACjD/B,IAAAA,MAAM,EAAEiJ,SAAS;IACjBC,QAAQ;AACRC,IAAAA,YAAAA;AACF,GAAC,CAAC,CAAA;AACF,EAAA,IAAII,UAAU,EAAE;AACd,IAAA,OAAOA,UAAU,CAAA;AACnB,GAAA;AACA,EAAA,oBACE7C,eAAA,CAAA,KAAA,EAAA;AACE7B,IAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC,WAAW,CAAC,EAAE;AACxC,MAAA,CAACA,OAAK,CAAC,eAAe,CAAC,GAAGmE,QAAQ;MAClC,CAACnE,OAAK,CAAC,YAAY,CAAC,GAAG,CAACoE,YAAY,IAAI,CAACD,QAAQ;MACjD,CAACnE,OAAK,CAAC,eAAe,CAAC,GAAGxD,QAAQ,IAAI,CAAC2H,QAAQ;MAC/C,CAACnE,OAAK,CAAC,iBAAiB,CAAC,GAAGuE,KAAK,GAAG,CAAC,IAAI,CAACJ,QAAAA;AAC5C,KAAC,CAAE;AAAAhE,IAAAA,QAAA,gBAEHJ,cAAA,CAAA,KAAA,EAAA;AAAKD,MAAAA,SAAS,EAAEE,OAAK,CAAC,aAAa,CAAE;AAAAG,MAAAA,QAAA,EAAEpG,IAAI,CAACA,IAAI,EAAC;AAAC,KAAM,CAAC,EACxDwK,KAAK,gBAAGxE,cAAA,CAAC0E,UAAK,EAAA;MAACF,KAAK,EAAEA,KAAK,GAAGF,aAAa,GAAG,CAAGA,EAAAA,aAAa,CAAG,CAAA,CAAA,GAAGE,KAAM;AAACf,MAAAA,IAAI,EAAC,OAAA;KAAS,CAAC,GAAG,IAAI,CAAA;AAAA,GAC/F,CAAC,CAAA;AAEV,CAAC;;AC3BD,MAAMkB,gBAAgB,GAAG9I,KAAK,IAAI;EAChC,IAAI,CAACA,KAAK,CAAC+I,GAAG,IAAI,OAAO/I,KAAK,CAAC+I,GAAG,KAAK,QAAQ,EAAE;AAC/C,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EACA,MAAM;IAAE9D,KAAK;AAAEE,IAAAA,IAAAA;GAAM,GAAGnF,KAAK,CAAC+I,GAAG,CAAA;AACjC,EAAA,IAAI,OAAO9D,KAAK,KAAK,QAAQ,IAAIA,KAAK,EAAE;AACtC,IAAA,OAAOA,KAAK,CAAA;AACd,GAAA;AACA,EAAA,IAAI,OAAOE,IAAI,KAAK,QAAQ,IAAIA,IAAI,EAAE;AACpC,IAAA,OAAOA,IAAI,CAAA;AACb,GAAA;AACA,EAAA,OAAO,IAAI,CAAA;AACb,CAAC;;;;ACPD,MAAM6D,SAAS,GAAGA,CAAC;EAAEhJ,KAAK;EAAE7B,IAAI;EAAE6C,IAAI;EAAEiI,eAAe;AAAEC,EAAAA,YAAAA;AAAa,CAAC,KAAK;AAC1E,EAAA,IAAID,eAAe,EAAE;IACnB,OAAOA,eAAe,CAACjJ,KAAK,EAAE;MAAE7B,IAAI;MAAE6C,IAAI;AAAEkI,MAAAA,YAAAA;AAAa,KAAC,CAAC,CAAA;AAC7D,GAAA;AACA,EAAA,MAAMC,SAAS,GAAG,CAACnJ,KAAK,CAACY,QAAQ,KAAK,OAAOZ,KAAK,CAACkF,OAAO,KAAK,UAAU,IAAI,OAAOgE,YAAY,KAAK,UAAU,CAAC,CAAA;EAChH,MAAME,WAAW,GAAGA,MAAM;AACxB,IAAA,IAAI,OAAOpJ,KAAK,CAACkF,OAAO,KAAK,UAAU,EAAE;AACvClF,MAAAA,KAAK,CAACkF,OAAO,CAAClF,KAAK,EAAE;QAAE7B,IAAI;AAAE6C,QAAAA,IAAAA;AAAK,OAAC,CAAC,CAAA;AACpC,MAAA,OAAA;AACF,KAAA;IACAkI,YAAY,GAAGlJ,KAAK,EAAE;MAAE7B,IAAI;AAAE6C,MAAAA,IAAAA;AAAK,KAAC,CAAC,CAAA;GACtC,CAAA;AACD,EAAA,MAAMqI,QAAQ,GAAGP,gBAAgB,CAAC9I,KAAK,CAAC,CAAA;AACxC,EAAA,oBACEmE,cAAA,CAACmF,SAAI,CAACC,IAAI,EAAA;AAACrF,IAAAA,SAAS,EAAEE,OAAK,CAAC,iBAAiB,CAAE;AAAAG,IAAAA,QAAA,eAC7CwB,eAAA,CAAA,KAAA,EAAA;AACE7B,MAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC,YAAY,CAAC,EAAE;AACzC,QAAA,CAACA,OAAK,CAAC,sBAAsB,CAAC,GAAG+E,SAAS;AAC1C,QAAA,CAAC/E,OAAK,CAAC,qBAAqB,CAAC,GAAGpE,KAAK,CAACY,QAAAA;AACxC,OAAC,CAAE;AACH4I,MAAAA,IAAI,EAAEL,SAAS,GAAG,QAAQ,GAAG9M,SAAU;AACvCoN,MAAAA,QAAQ,EAAEN,SAAS,GAAG,CAAC,GAAG9M,SAAU;AACpC6I,MAAAA,OAAO,EAAEiE,SAAS,GAAGC,WAAW,GAAG/M,SAAU;AAC7CqN,MAAAA,SAAS,EACPP,SAAS,GACLQ,QAAQ,IAAI;QACV,IAAIA,QAAQ,CAAC5L,GAAG,KAAK,OAAO,IAAI4L,QAAQ,CAAC5L,GAAG,KAAK,GAAG,EAAE;UACpD4L,QAAQ,CAACC,cAAc,EAAE,CAAA;AACzBR,UAAAA,WAAW,EAAE,CAAA;AACf,SAAA;AACF,OAAC,GACD/M,SACL;AAAAkI,MAAAA,QAAA,gBAEDwB,eAAA,CAAA,KAAA,EAAA;AAAK7B,QAAAA,SAAS,EAAEE,OAAK,CAAC,iBAAiB,CAAE;AAAAG,QAAAA,QAAA,gBACvCJ,cAAA,CAAA,KAAA,EAAA;AAAKD,UAAAA,SAAS,EAAEE,OAAK,CAAC,kBAAkB,CAAE;UAAAG,QAAA,EAAEvE,KAAK,CAACd,KAAAA;AAAK,SAAM,CAAC,EAC7DmK,QAAQ,gBACPlF,cAAA,CAAC0F,QAAG,EAAA;AAAC3F,UAAAA,SAAS,EAAEE,OAAK,CAAC,gBAAgB,CAAE;UAAC0F,KAAK,EAAE9J,KAAK,CAAC8J,KAAM;AAAAvF,UAAAA,QAAA,EACzD8E,QAAAA;SACE,CAAC,GACJ,IAAI,CAAA;OACL,CAAC,eACNlF,cAAA,CAAA,KAAA,EAAA;AAAKD,QAAAA,SAAS,EAAEE,OAAK,CAAC,iBAAiB,CAAE;QAAAG,QAAA,EAAE3F,WAAW,CAACoB,KAAK,CAACnB,KAAK,EAAEmB,KAAK,CAAClB,GAAG,CAAA;AAAC,OAAM,CAAC,EACpFkB,KAAK,CAACb,MAAM,gBAAGgF,cAAA,CAAA,KAAA,EAAA;AAAKD,QAAAA,SAAS,EAAEE,OAAK,CAAC,mBAAmB,CAAE;QAAAG,QAAA,EAAEvE,KAAK,CAACb,MAAAA;OAAY,CAAC,GAAG,IAAI,CAAA;KACpF,CAAA;AAAC,GACG,CAAC,CAAA;AAEhB,CAAC;;;;AChDD,MAAM4K,UAAU,GAAGA,CAAC;EAAE5L,IAAI;EAAE6L,QAAQ;AAAErB,EAAAA,KAAAA;AAAM,CAAC,KAAK;EAChD,MAAM;AAAEpF,IAAAA,aAAAA;GAAe,GAAGiC,iBAAO,EAAE,CAAA;AACnC,EAAA,MAAMyE,QAAQ,GAAGxG,iBAAiB,CAACF,aAAa,EAAEpF,IAAI,CAAC,CAAA;EACvD,MAAM+L,SAAS,GAAG,OAAOvB,KAAK,KAAK,QAAQ,GAAGpF,aAAa,CAAC;AAAErD,IAAAA,EAAE,EAAE,uBAAA;AAAwB,GAAC,EAAE;AAAEyI,IAAAA,KAAAA;GAAO,CAAC,GAAG,IAAI,CAAA;AAC9G,EAAA,oBACE5C,eAAA,CAAA,KAAA,EAAA;AAAK7B,IAAAA,SAAS,EAAEE,UAAK,CAAC,aAAa,CAAE;AAAAG,IAAAA,QAAA,gBACnCJ,cAAA,CAAA,MAAA,EAAA;AAAAI,MAAAA,QAAA,EAAO0F,QAAAA;AAAQ,KAAO,CAAC,EACtBD,QAAQ,IAAIE,SAAS,gBAAG/F,cAAA,CAAA,MAAA,EAAA;MAAAI,QAAA,EAAOyF,QAAQ,IAAIE,SAAAA;KAAgB,CAAC,GAAG,IAAI,CAAA;AAAA,GACjE,CAAC,CAAA;AAEV,CAAC;;ACXD,MAAMC,iBAAiB,GAAGA,CAAC;AAAEC,EAAAA,OAAAA;AAAQ,CAAC,kBAAKjG,cAAA,CAAA,KAAA,EAAA;AAAKD,EAAAA,SAAS,EAAE5G,UAAU,CAAC8G,UAAK,CAAC,qBAAqB,CAAC,EAAE;AAAE,IAAA,CAACA,UAAK,CAAC,6BAA6B,CAAC,GAAGgG,OAAAA;AAAQ,GAAC,CAAE;AAAC,EAAA,aAAA,EAAA,IAAA;AAAW,CAAE,CAAC;;ACCxK,MAAMC,oBAAoB,GAAGA,CAACC,QAAQ,EAAEC,SAAS,KAAK;EACpD,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGrO,cAAQ,CAAC,KAAK,CAAC,CAAA;AAE/C4K,EAAAA,eAAS,CAAC,MAAM;IACd,IAAIuD,SAAS,EAAE/N,OAAO,EAAE;AACtB+N,MAAAA,SAAS,CAAC/N,OAAO,CAACkO,SAAS,GAAG,CAAC,CAAA;AACjC,KAAA;IACAD,WAAW,CAAC,KAAK,CAAC,CAAA;AACpB,GAAC,EAAE,CAACH,QAAQ,EAAEC,SAAS,CAAC,CAAC,CAAA;AAEzB,EAAA,MAAMI,QAAQ,GAAGC,iBAAW,CAAC5K,KAAK,IAAI;IACpCyK,WAAW,CAACzK,KAAK,CAAC6K,aAAa,CAACH,SAAS,GAAG,CAAC,CAAC,CAAA;GAC/C,EAAE,EAAE,CAAC,CAAA;EAEN,OAAO;IAAEF,QAAQ;AAAEG,IAAAA,QAAAA;GAAU,CAAA;AAC/B,CAAC;;ACRD,MAAMG,SAAS,GAAGA,CAAC;EAAE3M,IAAI;EAAEkB,MAAM;EAAE0L,OAAO;EAAE9B,eAAe;EAAE+B,iBAAiB;EAAE9B,YAAY;AAAE+B,EAAAA,UAAU,GAAG,IAAA;AAAK,CAAC,KAAK;EACpH,MAAM;AAAE1H,IAAAA,aAAAA;GAAe,GAAGiC,iBAAO,EAAE,CAAA;AACnC,EAAA,MAAMpD,YAAY,GAAGsD,aAAO,CAAC,MAAMtG,iBAAiB,CAACC,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC,CAAA;EACvE,MAAM6L,WAAW,GAAGF,iBAAiB,GAAG;AAAE7M,IAAAA,IAAI,EAAEA,IAAI,CAACiD,MAAM,EAAE;AAAEJ,IAAAA,IAAI,EAAE,MAAM;AAAE3B,IAAAA,MAAM,EAAE+C,YAAAA;AAAa,GAAC,CAAC,CAAA;AACpG,EAAA,MAAMmI,SAAS,GAAGY,YAAM,CAAC,IAAI,CAAC,CAAA;EAC9B,MAAM;IAAEX,QAAQ;AAAEG,IAAAA,QAAAA;GAAU,GAAGN,oBAAoB,CAAClM,IAAI,CAACO,MAAM,CAACtD,WAAW,CAAC,EAAEmP,SAAS,CAAC,CAAA;EACxF,oBACEpG,cAAA,CAACiH,SAAI,EAAA;AAACC,IAAAA,QAAQ,EAAE,KAAM;AAACnM,IAAAA,KAAK,EAAEgM,WAAW,iBAAI/G,cAAA,CAAC4F,UAAU,EAAA;AAAC5L,MAAAA,IAAI,EAAEA,IAAK;MAACwK,KAAK,EAAEvG,YAAY,CAACe,MAAAA;AAAO,KAAE,CAAE;AAACe,IAAAA,SAAS,EAAE5G,UAAU,CAAC8G,UAAK,CAAC,YAAY,CAAC,EAAE,CAAC6G,UAAU,IAAI7G,UAAK,CAAC,qBAAqB,CAAC,CAAE;IAAAG,QAAA,eAC3LJ,cAAA,CAACmH,SAAI,EAAA;MAACC,QAAQ,EAAE,CAAC,CAACR,OAAQ;AAACzN,MAAAA,UAAU,EAAE;AAAEf,QAAAA,IAAI,EAAE6H,UAAK,CAAC,YAAY,CAAC;QAAEoH,SAAS,EAAEpH,UAAK,CAAC,sBAAsB,CAAA;OAAI;AAAAG,MAAAA,QAAA,eAC7GwB,eAAA,CAAA,KAAA,EAAA;AAAKmC,QAAAA,GAAG,EAAEqC,SAAU;AAACrG,QAAAA,SAAS,EAAE5G,UAAU,CAAC8G,UAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC6G,UAAU,IAAI7G,UAAK,CAAC,4BAA4B,CAAC,CAAE;AAACuG,QAAAA,QAAQ,EAAEM,UAAU,GAAGN,QAAQ,GAAGtO,SAAU;AAAAkI,QAAAA,QAAA,EACrK0G,CAAAA,UAAU,gBAAG9G,cAAA,CAACgG,iBAAiB,EAAA;AAACC,UAAAA,OAAO,EAAEI,QAAAA;AAAS,SAAE,CAAC,GAAG,IAAI,eAC7DrG,cAAA,CAAA,KAAA,EAAA;AAAKD,UAAAA,SAAS,EAAEE,UAAK,CAAC,sBAAsB,CAAE;AAAAG,UAAAA,QAAA,EAC3CnC,YAAY,CAACe,MAAM,gBAClBgB,cAAA,CAACmF,SAAI,EAAA;AAACmC,YAAAA,UAAU,EAAErJ,YAAa;AAACsJ,YAAAA,UAAU,EAAE1L,KAAK,iBAAImE,cAAA,CAAC6E,SAAS,EAAA;AAAChJ,cAAAA,KAAK,EAAEA,KAAM;AAAC7B,cAAAA,IAAI,EAAEA,IAAI,CAACiD,MAAM,EAAG;AAACJ,cAAAA,IAAI,EAAC,MAAM;AAACiI,cAAAA,eAAe,EAAEA,eAAgB;AAACC,cAAAA,YAAY,EAAEA,YAAAA;aAAe,CAAA;AAAE,WAAE,CAAC,gBAEnL/E,cAAA,CAACwH,UAAK,EAAA;YAACC,WAAW,EAAErI,aAAa,CAAC;AAAErD,cAAAA,EAAE,EAAE,iBAAA;aAAmB,CAAA;WAAI,CAAA;AAChE,SACE,CAAC,CAAA;OACH,CAAA;KACD,CAAA;AAAC,GACH,CAAC,CAAA;AAEX,CAAC;;AC/BM,MAAM2L,WAAS,GAAG,EAAE,GAAG,IAAI,CAAA;AAElC,MAAMC,IAAI,GAAG5N,KAAK,IAAI;EACpB,IAAIA,KAAK,KAAK,IAAI,IAAI,OAAOA,KAAK,KAAK,WAAW,EAAE;AAClD,IAAA,OAAO6N,GAAG,CAAA;AACZ,GAAA;AACA,EAAA,IAAI,OAAO7N,KAAK,KAAK,QAAQ,EAAE;AAC7B,IAAA,OAAOA,KAAK,CAAA;AACd,GAAA;AACA,EAAA,MAAMC,IAAI,GAAGC,yBAAK,CAACF,KAAK,CAAC,CAAA;AACzB,EAAA,OAAOC,IAAI,CAACE,OAAO,EAAE,GAAGF,IAAI,CAACuB,OAAO,EAAE,GAAGqM,GAAG,CAAA;AAC9C,CAAC,CAAA;AAEM,MAAMC,UAAU,GAAGA,CAACC,EAAE,EAAE;EAAEC,QAAQ;EAAEC,MAAM;AAAEnL,EAAAA,IAAI,GAAG,OAAA;AAAQ,CAAC,KAAK;EACtE,MAAMoL,EAAE,GAAGpL,IAAI,KAAK,OAAO,GAAGtF,IAAI,CAACqJ,KAAK,GAAG/D,IAAI,KAAK,MAAM,GAAGtF,IAAI,CAACC,IAAI,GAAGD,IAAI,CAAC2Q,KAAK,CAAA;AACnF,EAAA,OAAOH,QAAQ,GAAGE,EAAE,CAAC,CAACH,EAAE,GAAGC,QAAQ,IAAIC,MAAM,CAAC,GAAGA,MAAM,CAAA;AACzD,CAAC,CAAA;AAED,MAAMG,KAAK,GAAGA,CAACpO,KAAK,EAAEqO,GAAG,EAAE1P,GAAG,KAAKnB,IAAI,CAAC6Q,GAAG,CAAC7Q,IAAI,CAACmB,GAAG,CAACqB,KAAK,EAAEqO,GAAG,CAAC,EAAE1P,GAAG,CAAC,CAAA;;AAEtE;AACA;AACA;AACA;AACO,MAAM2P,oBAAoB,GAAGA,CAACnN,MAAM,EAAE;EAAEoN,OAAO;AAAEC,EAAAA,KAAAA;AAAM,CAAC,KAAK;EAClE,MAAMC,KAAK,GAAG,CAACtN,MAAM,IAAI,EAAE,EACxBQ,GAAG,CAACG,KAAK,IAAI;AACZ,IAAA,MAAM4M,CAAC,GAAGlR,IAAI,CAACmB,GAAG,CAACiP,IAAI,CAAC9L,KAAK,CAACnB,KAAK,CAAC,EAAE4N,OAAO,CAAC,CAAA;AAC9C,IAAA,MAAMI,CAAC,GAAGnR,IAAI,CAAC6Q,GAAG,CAACT,IAAI,CAAC9L,KAAK,CAAClB,GAAG,CAAC,EAAE4N,KAAK,CAAC,CAAA;IAC1C,OAAO;MAAE1M,KAAK;AAAEyM,MAAAA,OAAO,EAAEG,CAAC;AAAEF,MAAAA,KAAK,EAAEG,CAAAA;KAAG,CAAA;GACvC,CAAC,CACD/O,MAAM,CAACH,IAAI,IAAImP,MAAM,CAACC,QAAQ,CAACpP,IAAI,CAAC8O,OAAO,CAAC,IAAIK,MAAM,CAACC,QAAQ,CAACpP,IAAI,CAAC+O,KAAK,CAAC,IAAI/O,IAAI,CAAC+O,KAAK,GAAG/O,IAAI,CAAC8O,OAAO,CAAC,CACzGnN,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACkN,OAAO,GAAGjN,CAAC,CAACiN,OAAO,IAAIjN,CAAC,CAACkN,KAAK,GAAGnN,CAAC,CAACmN,KAAK,CAAC,CAAA;EAE7D,IAAIM,OAAO,GAAG,EAAE,CAAA;EAChB,IAAIC,UAAU,GAAG,CAACC,QAAQ,CAAA;EAC1B,IAAIC,UAAU,GAAG,EAAE,CAAA;EACnB,MAAMC,KAAK,GAAGA,MAAM;AAClBJ,IAAAA,OAAO,CAACjN,OAAO,CAACpC,IAAI,IAAI;AACtBA,MAAAA,IAAI,CAAC0P,OAAO,GAAGF,UAAU,CAAChK,MAAM,CAAA;AAClC,KAAC,CAAC,CAAA;AACF6J,IAAAA,OAAO,GAAG,EAAE,CAAA;AACZG,IAAAA,UAAU,GAAG,EAAE,CAAA;GAChB,CAAA;AACDR,EAAAA,KAAK,CAAC5M,OAAO,CAACpC,IAAI,IAAI;AACpB,IAAA,IAAIA,IAAI,CAAC8O,OAAO,IAAIQ,UAAU,EAAE;AAC9BG,MAAAA,KAAK,EAAE,CAAA;MACPH,UAAU,GAAG,CAACC,QAAQ,CAAA;AACxB,KAAA;AACA,IAAA,IAAII,MAAM,GAAGH,UAAU,CAACI,SAAS,CAACzO,GAAG,IAAIA,GAAG,IAAInB,IAAI,CAAC8O,OAAO,CAAC,CAAA;AAC7D,IAAA,IAAIa,MAAM,KAAK,CAAC,CAAC,EAAE;MACjBA,MAAM,GAAGH,UAAU,CAAChK,MAAM,CAAA;AAC1BgK,MAAAA,UAAU,CAACnL,IAAI,CAACrE,IAAI,CAAC+O,KAAK,CAAC,CAAA;AAC7B,KAAC,MAAM;AACLS,MAAAA,UAAU,CAACG,MAAM,CAAC,GAAG3P,IAAI,CAAC+O,KAAK,CAAA;AACjC,KAAA;IACA/O,IAAI,CAAC2P,MAAM,GAAGA,MAAM,CAAA;AACpBN,IAAAA,OAAO,CAAChL,IAAI,CAACrE,IAAI,CAAC,CAAA;IAClBsP,UAAU,GAAGvR,IAAI,CAACmB,GAAG,CAACoQ,UAAU,EAAEtP,IAAI,CAAC+O,KAAK,CAAC,CAAA;AAC/C,GAAC,CAAC,CAAA;AACFU,EAAAA,KAAK,EAAE,CAAA;AACP,EAAA,OAAOT,KAAK,CAAA;AACd,CAAC,CAAA;;AAED;AACO,MAAMa,kBAAkB,GAAG1K,KAAK,IAAI;EACzC,MAAM2K,MAAM,GAAG,EAAE,CAAA;AACjB,EAAA,CAAC3K,KAAK,IAAI,EAAE,EAAE/C,OAAO,CAACgB,IAAI,IAAI;AAC5B,IAAA,IAAIA,IAAI,CAACmC,MAAM,KAAK,UAAU,EAAE;AAC9B,MAAA,OAAA;AACF,KAAA;AACA,IAAA,MAAMuJ,OAAO,GAAGX,IAAI,CAAC/K,IAAI,CAAClC,KAAK,CAAC,CAAA;AAChC,IAAA,MAAM6N,KAAK,GAAGZ,IAAI,CAAC/K,IAAI,CAACjC,GAAG,CAAC,CAAA;IAC5B,MAAM4O,IAAI,GAAGD,MAAM,CAACA,MAAM,CAACtK,MAAM,GAAG,CAAC,CAAC,CAAA;AACtC,IAAA,IAAIuK,IAAI,IAAIA,IAAI,CAAChB,KAAK,KAAKD,OAAO,IAAIiB,IAAI,CAAC7M,MAAM,KAAKE,IAAI,CAACqC,cAAc,EAAE;MACzEsK,IAAI,CAAChB,KAAK,GAAGA,KAAK,CAAA;AAClB,MAAA,OAAA;AACF,KAAA;IACAe,MAAM,CAACzL,IAAI,CAAC;MAAEyK,OAAO;MAAEC,KAAK;MAAE7L,MAAM,EAAEE,IAAI,CAACqC,cAAAA;AAAe,KAAC,CAAC,CAAA;AAC9D,GAAC,CAAC,CAAA;AACF,EAAA,OAAOqK,MAAM,CAAA;AACf,CAAC,CAAA;AAEM,MAAME,UAAU,GAAGF,MAAM,IAC9B,CAACA,MAAM,IAAI,EAAE,EACV5N,GAAG,CAAC+N,KAAK,KAAK;EAAEnB,OAAO,EAAEX,IAAI,CAAC8B,KAAK,CAACnB,OAAO,IAAImB,KAAK,CAAC/O,KAAK,CAAC;EAAE6N,KAAK,EAAEZ,IAAI,CAAC8B,KAAK,CAAClB,KAAK,IAAIkB,KAAK,CAAC9O,GAAG,CAAA;AAAE,CAAC,CAAC,CAAC,CACtGhB,MAAM,CAAC8P,KAAK,IAAId,MAAM,CAACC,QAAQ,CAACa,KAAK,CAACnB,OAAO,CAAC,IAAIK,MAAM,CAACC,QAAQ,CAACa,KAAK,CAAClB,KAAK,CAAC,IAAIkB,KAAK,CAAClB,KAAK,GAAGkB,KAAK,CAACnB,OAAO,CAAC,CAC9GnN,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACkN,OAAO,GAAGjN,CAAC,CAACiN,OAAO,CAAC,CAAA;;AAE1C;AACA;AACA;AACA;AACO,MAAMoB,UAAU,GAAGA,CAAC5B,EAAE,EAAE6B,QAAQ,EAAE;EAAErB,OAAO;AAAEC,EAAAA,KAAAA;AAAM,CAAC,KAAK;EAC9D,IAAIqB,QAAQ,GAAGtB,OAAO,CAAA;EACtB,IAAIuB,MAAM,GAAGtB,KAAK,CAAA;AAClB,EAAA,KAAK,MAAMuB,OAAO,IAAIH,QAAQ,IAAI,EAAE,EAAE;IACpC,IAAIG,OAAO,CAACxB,OAAO,IAAIR,EAAE,IAAIA,EAAE,GAAGgC,OAAO,CAACvB,KAAK,EAAE;AAC/C,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AACA,IAAA,IAAIuB,OAAO,CAACvB,KAAK,IAAIT,EAAE,EAAE;MACvB8B,QAAQ,GAAGrS,IAAI,CAACmB,GAAG,CAACkR,QAAQ,EAAEE,OAAO,CAACvB,KAAK,CAAC,CAAA;AAC9C,KAAC,MAAM,IAAIuB,OAAO,CAACxB,OAAO,GAAGR,EAAE,EAAE;MAC/B+B,MAAM,GAAGtS,IAAI,CAAC6Q,GAAG,CAACyB,MAAM,EAAEC,OAAO,CAACxB,OAAO,CAAC,CAAA;AAC5C,KAAA;AACF,GAAA;EACA,IAAIR,EAAE,GAAGQ,OAAO,IAAIR,EAAE,IAAIS,KAAK,IAAIsB,MAAM,IAAID,QAAQ,EAAE;AACrD,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EACA,OAAO;AAAEtB,IAAAA,OAAO,EAAEsB,QAAQ;AAAErB,IAAAA,KAAK,EAAEsB,MAAAA;GAAQ,CAAA;AAC7C,CAAC,CAAA;;AAED;AACO,MAAME,oBAAoB,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,SAAS;EAAEC,GAAG;EAAEnC,QAAQ;AAAEC,EAAAA,MAAAA;AAAO,CAAC,KAAK;AACtF,EAAA,MAAMmC,WAAW,GAAGhC,KAAK,CAACN,UAAU,CAACmC,QAAQ,EAAE;IAAEjC,QAAQ;IAAEC,MAAM;AAAEnL,IAAAA,IAAI,EAAE,OAAA;GAAS,CAAC,EAAEqN,GAAG,CAAC5B,OAAO,EAAE4B,GAAG,CAAC3B,KAAK,CAAC,CAAA;AAC5G,EAAA,MAAM6B,SAAS,GAAG7S,IAAI,CAAC6Q,GAAG,CAAC+B,WAAW,GAAGnC,MAAM,EAAEkC,GAAG,CAAC3B,KAAK,CAAC,CAAA;AAC3D,EAAA,MAAM8B,OAAO,GAAGlC,KAAK,CAAC8B,SAAS,EAAEC,GAAG,CAAC5B,OAAO,EAAE4B,GAAG,CAAC3B,KAAK,CAAC,CAAA;EACxD,IAAI8B,OAAO,IAAIF,WAAW,EAAE;AAC1B,IAAA,MAAMxP,GAAG,GAAGwN,KAAK,CAACN,UAAU,CAACwC,OAAO,EAAE;MAAEtC,QAAQ;MAAEC,MAAM;AAAEnL,MAAAA,IAAI,EAAE,MAAA;AAAO,KAAC,CAAC,EAAEuN,SAAS,EAAEF,GAAG,CAAC3B,KAAK,CAAC,CAAA;IAChG,OAAO;AAAED,MAAAA,OAAO,EAAE6B,WAAW;AAAE5B,MAAAA,KAAK,EAAE5N,GAAAA;KAAK,CAAA;AAC7C,GAAA;AACA,EAAA,MAAMD,KAAK,GAAGyN,KAAK,CAACN,UAAU,CAACwC,OAAO,EAAE;IAAEtC,QAAQ;IAAEC,MAAM;AAAEnL,IAAAA,IAAI,EAAE,OAAA;AAAQ,GAAC,CAAC,EAAEqN,GAAG,CAAC5B,OAAO,EAAE6B,WAAW,CAAC,CAAA;EACvG,OAAO;AAAE7B,IAAAA,OAAO,EAAE5N,KAAK;AAAE6N,IAAAA,KAAK,EAAE6B,SAAAA;GAAW,CAAA;AAC7C,CAAC,CAAA;;AAED;AACO,MAAME,mBAAmB,GAAGA,CAAC;EAAEL,SAAS;EAAEC,GAAG;EAAEnC,QAAQ;AAAEwC,EAAAA,MAAAA;AAAO,CAAC,KAAK;AAC3E,EAAA,MAAMC,QAAQ,GAAGjT,IAAI,CAAC6Q,GAAG,CAACmC,MAAM,EAAEL,GAAG,CAAC3B,KAAK,GAAG2B,GAAG,CAAC5B,OAAO,CAAC,CAAA;AAC1D,EAAA,MAAM5N,KAAK,GAAGyN,KAAK,CAACN,UAAU,CAACoC,SAAS,EAAE;IAAElC,QAAQ;AAAEC,IAAAA,MAAM,EAAEuC,MAAM;AAAE1N,IAAAA,IAAI,EAAE,OAAA;GAAS,CAAC,EAAEqN,GAAG,CAAC5B,OAAO,EAAE4B,GAAG,CAAC3B,KAAK,GAAGiC,QAAQ,CAAC,CAAA;EAC1H,OAAO;AAAElC,IAAAA,OAAO,EAAE5N,KAAK;IAAE6N,KAAK,EAAE7N,KAAK,GAAG8P,QAAAA;GAAU,CAAA;AACpD,CAAC,CAAA;AAEM,MAAMC,kBAAkB,GAAGA,CAAC;EAAEhB,KAAK;EAAEiB,OAAO;EAAER,GAAG;EAAEnC,QAAQ;AAAEC,EAAAA,MAAAA;AAAO,CAAC,KAAK;EAC/E,MAAMwC,QAAQ,GAAGf,KAAK,CAAClB,KAAK,GAAGkB,KAAK,CAACnB,OAAO,CAAA;EAC5C,MAAM5N,KAAK,GAAGyN,KAAK,CAACN,UAAU,CAAC4B,KAAK,CAACnB,OAAO,GAAGoC,OAAO,EAAE;IAAE3C,QAAQ;AAAEC,IAAAA,MAAAA;GAAQ,CAAC,EAAEkC,GAAG,CAAC5B,OAAO,EAAE4B,GAAG,CAAC3B,KAAK,GAAGiC,QAAQ,CAAC,CAAA;EACjH,OAAO;AAAElC,IAAAA,OAAO,EAAE5N,KAAK;IAAE6N,KAAK,EAAE7N,KAAK,GAAG8P,QAAAA;GAAU,CAAA;AACpD,CAAC,CAAA;AAEM,MAAMG,oBAAoB,GAAGA,CAAC;EAAElB,KAAK;EAAEmB,IAAI;EAAEX,SAAS;EAAEC,GAAG;EAAEnC,QAAQ;EAAEC,MAAM;AAAE6C,EAAAA,KAAK,GAAG7C,MAAAA;AAAO,CAAC,KAAK;AACzG,EAAA,MAAM8C,OAAO,GAAGjD,UAAU,CAACoC,SAAS,EAAE;IAAElC,QAAQ;AAAEC,IAAAA,MAAAA;AAAO,GAAC,CAAC,CAAA;EAC3D,IAAI4C,IAAI,KAAK,OAAO,EAAE;AACpB,IAAA,MAAMlQ,KAAK,GAAGyN,KAAK,CAAC2C,OAAO,EAAEZ,GAAG,CAAC5B,OAAO,EAAEmB,KAAK,CAAClB,KAAK,GAAGsC,KAAK,CAAC,CAAA;IAC9D,OAAO;AAAEvC,MAAAA,OAAO,EAAE5N,KAAK;MAAE6N,KAAK,EAAEkB,KAAK,CAAClB,KAAAA;KAAO,CAAA;AAC/C,GAAA;AACA,EAAA,MAAM5N,GAAG,GAAGwN,KAAK,CAAC2C,OAAO,EAAErB,KAAK,CAACnB,OAAO,GAAGuC,KAAK,EAAEX,GAAG,CAAC3B,KAAK,CAAC,CAAA;EAC5D,OAAO;IAAED,OAAO,EAAEmB,KAAK,CAACnB,OAAO;AAAEC,IAAAA,KAAK,EAAE5N,GAAAA;GAAK,CAAA;AAC/C,CAAC,CAAA;AAEM,MAAMoQ,qBAAqB,GAAGA,CAACtB,KAAK,EAAEvO,MAAM,KAAK;EACtD,IAAI,CAACuO,KAAK,EAAE;AACV,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACA,EAAA,OAAO,CAACvO,MAAM,IAAI,EAAE,EAAEvB,MAAM,CAACkC,KAAK,IAAI8L,IAAI,CAAC9L,KAAK,CAACnB,KAAK,CAAC,GAAG+O,KAAK,CAAClB,KAAK,IAAIZ,IAAI,CAAC9L,KAAK,CAAClB,GAAG,CAAC,GAAG8O,KAAK,CAACnB,OAAO,CAAC,CAAA;AAC3G,CAAC,CAAA;AAEM,MAAM0C,oBAAoB,GAAGA,CAACvB,KAAK,EAAE9K,KAAK,KAAK;EACpD,IAAI,CAAC8K,KAAK,EAAE;AACV,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACA,EAAA,OAAO,CAAC9K,KAAK,IAAI,EAAE,EAAEhF,MAAM,CAACiD,IAAI,IAAI+K,IAAI,CAAC/K,IAAI,CAAClC,KAAK,CAAC,GAAG+O,KAAK,CAAClB,KAAK,IAAIZ,IAAI,CAAC/K,IAAI,CAACjC,GAAG,CAAC,GAAG8O,KAAK,CAACnB,OAAO,CAAC,CAAA;AACvG,CAAC;;AC/JDrO,yBAAK,CAACgR,MAAM,CAACC,qCAAiB,CAAC,CAAA;AAExB,MAAMC,gBAAgB,GAAG,EAAE,CAAA;AAC3B,MAAMC,YAAY,GAAG,CAAC,CAAA;AACtB,MAAMC,qBAAqB,GAAG,GAAG,CAAA;AACjC,MAAMC,iBAAiB,GAAG,KAAK,CAAA;AAC/B,MAAMC,cAAc,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;AACpD,MAAMC,wBAAwB,GAAG,GAAG,CAAA;AAE3C,MAAM9D,SAAS,GAAG,EAAE,GAAG,IAAI,CAAA;AAC3B,MAAM+D,OAAO,GAAG,EAAE,GAAG/D,SAAS,CAAA;AAC9B,MAAMgE,aAAa,GAAG,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAA;AAExE,MAAMC,aAAa,GAAG5R,KAAK,IAAI;AACpC,EAAA,IAAIA,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,EAAE;AACjC,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA,EAAA,IAAIE,yBAAK,CAAC2R,OAAO,CAAC7R,KAAK,CAAC,EAAE;IACxB,OAAOA,KAAK,CAACG,OAAO,EAAE,GAAGH,KAAK,GAAG,IAAI,CAAA;AACvC,GAAA;AACA,EAAA,MAAM8R,MAAM,GAAG5R,yBAAK,CAACF,KAAK,CAAC,CAAA;AAC3B,EAAA,IAAI8R,MAAM,CAAC3R,OAAO,EAAE,EAAE;AACpB,IAAA,OAAO2R,MAAM,CAAA;AACf,GAAA;AACA,EAAA,IAAI,OAAO9R,KAAK,KAAK,QAAQ,EAAE;IAC7B,MAAMO,MAAM,GAAGL,yBAAK,CAACF,KAAK,EAAE2R,aAAa,EAAE,IAAI,CAAC,CAAA;IAChD,OAAOpR,MAAM,CAACJ,OAAO,EAAE,GAAGI,MAAM,GAAG,IAAI,CAAA;AACzC,GAAA;AACA,EAAA,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAMwR,YAAY,GAAG/R,KAAK,IAAIA,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,CAAA;AAE3D,MAAMgS,eAAe,GAAGC,GAAG,IAAI;AAC7B,EAAA,MAAM3R,GAAG,GAAG,CAACsR,aAAa,CAACK,GAAG,CAAC,IAAI/R,yBAAK,EAAE,EAAEO,OAAO,CAAC,KAAK,CAAC,CAAA;EAC1D,OAAO,CAACH,GAAG,EAAEA,GAAG,CAACgD,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;AACjC,CAAC,CAAA;;AAED;AACA;AACA;AACO,MAAM4O,YAAY,GAAGA,CAACxC,KAAK,EAAEuC,GAAG,GAAG/R,yBAAK,EAAE,KAAK;EACpD,IAAIwP,KAAK,KAAK,IAAI,EAAE;AAClB,IAAA,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AACrB,GAAA;AACA,EAAA,IAAI,CAACjI,KAAK,CAAC0K,OAAO,CAACzC,KAAK,CAAC,EAAE;IACzB,OAAOsC,eAAe,CAACC,GAAG,CAAC,CAAA;AAC7B,GAAA;AACA,EAAA,MAAMtR,KAAK,GAAGoR,YAAY,CAACrC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGkC,aAAa,CAAClC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACrE,EAAA,MAAM9O,GAAG,GAAGmR,YAAY,CAACrC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGkC,aAAa,CAAClC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACnE,EAAA,MAAM0C,YAAY,GAAG,CAACL,YAAY,CAACrC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC/O,KAAK,CAAA;AACtD,EAAA,MAAM0R,UAAU,GAAG,CAACN,YAAY,CAACrC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC9O,GAAG,CAAA;AAClD,EAAA,IAAIwR,YAAY,IAAIC,UAAU,IAAK1R,KAAK,IAAIC,GAAG,IAAI,CAACA,GAAG,CAACyC,OAAO,CAAC1C,KAAK,CAAE,EAAE;IACvE,OAAOqR,eAAe,CAACC,GAAG,CAAC,CAAA;AAC7B,GAAA;AACA,EAAA,OAAO,CAACtR,KAAK,EAAEC,GAAG,CAAC,CAAA;AACrB,CAAC,CAAA;AAEM,MAAM0R,eAAe,GAAGA,CAAC7B,QAAQ,EAAE8B,UAAU,EAAEC,QAAQ,KAAK;AACjE,EAAA,MAAMC,SAAS,GAAG7D,MAAM,CAAC6B,QAAQ,CAAC,GAAG,CAAC,GAAG7B,MAAM,CAAC6B,QAAQ,CAAC,GAAGW,gBAAgB,CAAA;AAC5E,EAAA,IAAI,CAACmB,UAAU,IAAI,CAACC,QAAQ,EAAE;AAC5B,IAAA,OAAOC,SAAS,CAAA;AAClB,GAAA;EACA,MAAMC,YAAY,GAAGF,QAAQ,CAACG,IAAI,CAACJ,UAAU,EAAE,QAAQ,CAAC,CAAA;AACxD,EAAA,IAAIG,YAAY,GAAG,CAAC,IAAID,SAAS,GAAGC,YAAY,EAAE;AAChD,IAAA,OAAOA,YAAY,CAAA;AACrB,GAAA;AACA,EAAA,OAAOD,SAAS,CAAA;AAClB,CAAC,CAAA;AAEM,MAAMG,WAAW,GAAGC,IAAI,IAAKjE,MAAM,CAACiE,IAAI,CAAC,GAAG,CAAC,GAAGjE,MAAM,CAACiE,IAAI,CAAC,GAAGxB,YAAa,CAAA;AAE5E,MAAMyB,kBAAkB,GAAGA,CAAC;EAAEC,WAAW;EAAEtC,QAAQ;AAAEuC,EAAAA,YAAY,GAAGvC,QAAQ;EAAE8B,UAAU;AAAEC,EAAAA,QAAAA;AAAS,CAAC,KAAK;AAC9G,EAAA,MAAMS,OAAO,GAAGxC,QAAQ,GAAG,GAAG,CAAA;EAC9B,IAAIyC,IAAI,GAAGtE,MAAM,CAACmE,WAAW,CAAC,GAAG,CAAC,GAAGnE,MAAM,CAACmE,WAAW,CAAC,GAAGvV,IAAI,CAACmB,GAAG,CAACqU,YAAY,GAAG,CAAC,EAAEvB,wBAAwB,CAAC,CAAA;AAC/G,EAAA,IAAIc,UAAU,IAAIC,QAAQ,IAAI,EAAE5D,MAAM,CAACmE,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE;AACxDG,IAAAA,IAAI,GAAG1V,IAAI,CAAC6Q,GAAG,CAAC6E,IAAI,EAAEV,QAAQ,CAACG,IAAI,CAACJ,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;AAC5D,GAAA;AACA,EAAA,OAAO/U,IAAI,CAACmB,GAAG,CAACuU,IAAI,EAAED,OAAO,CAAC,CAAA;AAChC,CAAC,CAAA;AAED,MAAME,MAAM,GAAGA,CAACpF,EAAE,EAAEE,MAAM,EAAEnL,IAAI,GAAG,OAAO,KAAK;AAC7C,EAAA,MAAMsQ,MAAM,GAAGlT,yBAAK,CAAC6N,EAAE,CAAC,CAACtN,OAAO,CAAC,KAAK,CAAC,CAACe,OAAO,EAAE,CAAA;AACjD,EAAA,MAAM6R,KAAK,GAAG,CAACtF,EAAE,GAAGqF,MAAM,IAAInF,MAAM,CAAA;AACpC,EAAA,MAAM8C,OAAO,GAAGjO,IAAI,KAAK,OAAO,GAAGtF,IAAI,CAACqJ,KAAK,CAACwM,KAAK,CAAC,GAAGvQ,IAAI,KAAK,MAAM,GAAGtF,IAAI,CAACC,IAAI,CAAC4V,KAAK,CAAC,GAAG7V,IAAI,CAAC2Q,KAAK,CAACkF,KAAK,CAAC,CAAA;AAC7G,EAAA,OAAOD,MAAM,GAAGrC,OAAO,GAAG9C,MAAM,CAAA;AAClC,CAAC,CAAA;AAEM,MAAMqF,gBAAgB,GAAGA,CAACC,UAAU,EAAE;EAAEhB,UAAU;EAAEC,QAAQ;EAAE/B,QAAQ;EAAEoC,IAAI;AAAEW,EAAAA,IAAI,GAAG,IAAI;AAAEvB,EAAAA,GAAAA;AAAI,CAAC,KAAK;AAC1G,EAAA,MAAMwB,UAAU,GAAGhD,QAAQ,GAAG9C,SAAS,CAAA;EACvC,MAAMmD,KAAK,GAAGyB,UAAU,GAAGA,UAAU,CAAC/Q,OAAO,EAAE,GAAG,CAACwN,QAAQ,CAAA;AAC3D,EAAA,MAAM0E,KAAK,GAAGlB,QAAQ,GAAGA,QAAQ,CAAChR,OAAO,EAAE,GAAGiS,UAAU,GAAGzE,QAAQ,CAAA;EACnE,IAAI0E,KAAK,IAAI5C,KAAK,EAAE;IAClB,OAAO5Q,yBAAK,CAAC4Q,KAAK,CAAC,CAAA;AACrB,GAAA;EACA,MAAM6C,QAAQ,GAAGpB,UAAU,IAAIX,aAAa,CAACK,GAAG,CAAC,IAAI/R,yBAAK,EAAE,CAAA;AAC5D,EAAA,MAAMS,KAAK,GAAGiR,aAAa,CAAC2B,UAAU,CAAC,IAAII,QAAQ,CAAA;AACnD,EAAA,MAAM1F,MAAM,GAAG4E,IAAI,GAAGlF,SAAS,CAAA;AAC/B,EAAA,IAAIiG,MAAM,GAAGJ,IAAI,GAAGL,MAAM,CAACxS,KAAK,CAACa,OAAO,EAAE,EAAEyM,MAAM,CAAC,GAAGtN,KAAK,CAACa,OAAO,EAAE,CAAA;EACrE,IAAIoS,MAAM,GAAGF,KAAK,EAAE;AAClBE,IAAAA,MAAM,GAAGJ,IAAI,GAAGL,MAAM,CAACO,KAAK,EAAEzF,MAAM,EAAE,OAAO,CAAC,GAAGyF,KAAK,CAAA;AACxD,GAAA;EACA,IAAIE,MAAM,GAAG9C,KAAK,EAAE;AAClB8C,IAAAA,MAAM,GAAGJ,IAAI,GAAGL,MAAM,CAACrC,KAAK,EAAE7C,MAAM,EAAE,MAAM,CAAC,GAAG6C,KAAK,CAAA;AACvD,GAAA;AACA,EAAA,OAAO5Q,yBAAK,CAAC1C,IAAI,CAAC6Q,GAAG,CAAC7Q,IAAI,CAACmB,GAAG,CAACiV,MAAM,EAAE9C,KAAK,CAAC,EAAE4C,KAAK,CAAC,CAAC,CAAA;AACxD,CAAC,CAAA;AAEM,MAAMG,gBAAgB,GAAGA,CAAC;EAAElT,KAAK;EAAE8P,QAAQ;EAAEf,KAAK;EAAEmD,IAAI;EAAEZ,GAAG;AAAEuB,EAAAA,IAAI,GAAG,IAAA;AAAK,CAAC,GAAG,EAAE,KAAK;EAC3F,MAAM,CAACjB,UAAU,EAAEC,QAAQ,CAAC,GAAGN,YAAY,CAACxC,KAAK,EAAEuC,GAAG,CAAC,CAAA;EACvD,MAAM6B,gBAAgB,GAAGxB,eAAe,CAAC7B,QAAQ,EAAE8B,UAAU,EAAEC,QAAQ,CAAC,CAAA;AACxE,EAAA,MAAMuB,YAAY,GAAGnB,WAAW,CAACC,IAAI,CAAC,CAAA;EACtC,MAAMmB,WAAW,GAAGV,gBAAgB,CAAC3S,KAAK,IAAI,IAAI,GAAG,IAAI,GAAGA,KAAK,EAAE;IACjE4R,UAAU;IACVC,QAAQ;AACR/B,IAAAA,QAAQ,EAAEqD,gBAAgB;AAC1BjB,IAAAA,IAAI,EAAEkB,YAAY;IAClBP,IAAI;AACJvB,IAAAA,GAAAA;AACF,GAAC,CAAC,CAAA;EACF,OAAO;AACLtR,IAAAA,KAAK,EAAEqT,WAAW;IAClBpT,GAAG,EAAEoT,WAAW,CAAC1Q,GAAG,CAACwQ,gBAAgB,EAAE,QAAQ,CAAC;IAChDvB,UAAU;IACVC,QAAQ;AACR/B,IAAAA,QAAQ,EAAEqD,gBAAgB;AAC1BjB,IAAAA,IAAI,EAAEkB,YAAAA;GACP,CAAA;AACH,CAAC,CAAA;;AAED;AACA;AACA;AACO,MAAME,gBAAgB,GAAGA,CAAC;EAAEpD,IAAI;EAAEX,SAAS;EAAE3B,OAAO;EAAEC,KAAK;EAAEqE,IAAI;EAAEN,UAAU;EAAEC,QAAQ;EAAE0B,WAAW;AAAEC,EAAAA,WAAAA;AAAY,CAAC,KAAK;AAC7H,EAAA,MAAMlG,MAAM,GAAG2E,WAAW,CAACC,IAAI,CAAC,GAAGlF,SAAS,CAAA;EAC5C,MAAMmD,KAAK,GAAG,CAAClC,MAAM,CAACsF,WAAW,CAAC,GAAG,CAAC,GAAGtF,MAAM,CAACsF,WAAW,CAAC,GAAGtB,WAAW,CAACC,IAAI,CAAC,IAAIlF,SAAS,CAAA;AAC7F,EAAA,MAAM+F,KAAK,GAAG9E,MAAM,CAACuF,WAAW,CAAC,GAAG,CAAC,GAAGvF,MAAM,CAACuF,WAAW,CAAC,GAAGxG,SAAS,GAAGqB,QAAQ,CAAA;AAClF,EAAA,MAAMoF,YAAY,GAAG7B,UAAU,GAAGrS,yBAAK,CAACqS,UAAU,CAAC,CAAC/Q,OAAO,EAAE,GAAG,CAACwN,QAAQ,CAAA;AACzE,EAAA,MAAMqF,UAAU,GAAG7B,QAAQ,GAAGtS,yBAAK,CAACsS,QAAQ,CAAC,CAAChR,OAAO,EAAE,GAAGwN,QAAQ,CAAA;EAClE,IAAI6B,IAAI,KAAK,OAAO,EAAE;AACpB,IAAA,IAAIyD,IAAI,GAAGnB,MAAM,CAACjD,SAAS,EAAEjC,MAAM,CAAC,CAAA;IACpCqG,IAAI,GAAG9W,IAAI,CAAC6Q,GAAG,CAACiG,IAAI,EAAE9F,KAAK,GAAGsC,KAAK,CAAC,CAAA;AACpCwD,IAAAA,IAAI,GAAG9W,IAAI,CAACmB,GAAG,CAAC2V,IAAI,EAAE9F,KAAK,GAAGkF,KAAK,EAAEU,YAAY,CAAC,CAAA;IAClD,OAAO;AAAE7F,MAAAA,OAAO,EAAE+F,IAAI;AAAE7D,MAAAA,QAAQ,EAAE,CAACjC,KAAK,GAAG8F,IAAI,IAAI3G,SAAAA;KAAW,CAAA;AAChE,GAAA;AACA,EAAA,IAAI2G,IAAI,GAAGnB,MAAM,CAACjD,SAAS,EAAEjC,MAAM,CAAC,CAAA;EACpCqG,IAAI,GAAG9W,IAAI,CAACmB,GAAG,CAAC2V,IAAI,EAAE/F,OAAO,GAAGuC,KAAK,CAAC,CAAA;AACtCwD,EAAAA,IAAI,GAAG9W,IAAI,CAAC6Q,GAAG,CAACiG,IAAI,EAAE/F,OAAO,GAAGmF,KAAK,EAAEW,UAAU,CAAC,CAAA;EAClD,OAAO;IAAE9F,OAAO;AAAEkC,IAAAA,QAAQ,EAAE,CAAC6D,IAAI,GAAG/F,OAAO,IAAIZ,SAAAA;GAAW,CAAA;AAC5D,CAAC,CAAA;AAEM,MAAM4G,aAAa,GAAGzV,MAAM,IAAI,CAACA,MAAM,CAAC6B,KAAK,CAACuC,MAAM,EAAE,EAAEpE,MAAM,CAAC8B,GAAG,CAACsC,MAAM,EAAE,CAAC,CAAA;AAE5E,MAAMsR,WAAW,GAAGA,CAAC;EAAEjG,OAAO;AAAEkC,EAAAA,QAAAA;AAAS,CAAC,EAAEgE,kBAAkB,KAAK;AACxE,EAAA,MAAMC,MAAM,GAAGD,kBAAkB,GAAG9G,SAAS,CAAA;EAC7C,MAAMgH,QAAQ,GAAGpG,OAAO,GAAIkC,QAAQ,GAAG9C,SAAS,GAAI,CAAC,CAAA;EACrD,OAAO;AAAEY,IAAAA,OAAO,EAAEoG,QAAQ,GAAGD,MAAM,GAAG,CAAC;AAAElG,IAAAA,KAAK,EAAEmG,QAAQ,GAAGD,MAAM,GAAG,CAAC;AAAEA,IAAAA,MAAAA;GAAQ,CAAA;AACjF,CAAC,CAAA;AAEM,MAAME,cAAc,GAAGA,CAAC;EAAEC,KAAK;AAAEC,EAAAA,SAAS,GAAG,CAAC;AAAEC,EAAAA,UAAAA;AAAW,CAAC,KAAK;EACtE,IAAID,SAAS,KAAK,CAAC,EAAE;IACnB,OAAOD,KAAK,GAAG,EAAE,CAAA;AACnB,GAAA;EACA,IAAIC,SAAS,KAAK,CAAC,EAAE;IACnB,OAAOD,KAAK,IAAIE,UAAU,GAAG,CAAC,GAAGA,UAAU,GAAG,CAAC,CAAC,CAAA;AAClD,GAAA;AACA,EAAA,OAAOF,KAAK,CAAA;AACd,CAAC,CAAA;;AAED;AACA;AACA;AACO,MAAMG,iBAAiB,GAAGA,CAAC;EAAEC,aAAa;EAAEC,OAAO;EAAEC,SAAS;AAAEC,EAAAA,QAAAA;AAAS,CAAC,KAAK;AACpF,EAAA,MAAMC,aAAa,GAAGJ,aAAa,KAAK,CAAC,IAAIzX,IAAI,CAAC8X,IAAI,CAACL,aAAa,CAAC,KAAKzX,IAAI,CAAC8X,IAAI,CAACJ,OAAO,CAAC,CAAA;EAC5F,MAAMK,KAAK,GAAG,CAACF,aAAa,GAAGJ,aAAa,GAAG,CAAC,IAAIC,OAAO,CAAA;EAC3D,MAAMM,OAAO,GAAGL,SAAS,GAAG,CAAC,GAAGA,SAAS,GAAG,CAAC,CAAA;EAC7C,IAAIM,KAAK,GAAGjY,IAAI,CAACkY,KAAK,CAACH,KAAK,GAAGC,OAAO,CAAC,IAAI,CAAC,CAAA;AAC5C,EAAA,IAAIG,IAAI,GAAGJ,KAAK,GAAGE,KAAK,GAAGD,OAAO,CAAA;EAClC,IAAIC,KAAK,KAAK,CAAC,IAAIL,QAAQ,IAAIF,OAAO,KAAK,CAAC,EAAE;AAC5CO,IAAAA,KAAK,GAAGjY,IAAI,CAAC8X,IAAI,CAACJ,OAAO,CAAC,CAAA;AAC1BS,IAAAA,IAAI,GAAG,CAAC,CAAA;AACV,GAAA;EACA,OAAO;IAAEF,KAAK;AAAER,IAAAA,aAAa,EAAEU,IAAAA;GAAM,CAAA;AACvC,CAAC,CAAA;AAEM,MAAMC,6BAA6B,GAAG,GAAG,CAAA;AAChD,MAAMC,kBAAkB,GAAG,GAAG,CAAA;;AAE9B;AACA;AACA;AACO,MAAMC,cAAc,GAAGC,OAAO,IAAI;AACvC,EAAA,IAAIA,OAAO,KAAK,KAAK,IAAIA,OAAO,IAAI,IAAI,EAAE;AACxC,IAAA,OAAOA,OAAO,IAAI,IAAI,GAAGH,6BAA6B,GAAG,CAAC,CAAA;AAC5D,GAAA;EACA,IAAIG,OAAO,KAAK,IAAI,EAAE;AACpB,IAAA,OAAOH,6BAA6B,CAAA;AACtC,GAAA;AACA,EAAA,MAAMI,QAAQ,GAAGpH,MAAM,CAACmH,OAAO,CAAC,CAAA;EAChC,OAAOC,QAAQ,GAAG,CAAC,GAAGJ,6BAA6B,GAAGI,QAAQ,GAAG,CAAC,CAAA;AACpE,CAAC,CAAA;;AAED;AACA;AACA;AACO,MAAMC,gBAAgB,GAAGA,CAACC,OAAO,EAAEjE,GAAG,KAAK;EAChD,IAAI,CAACiE,OAAO,IAAIA,OAAO,CAACjR,MAAM,GAAG,CAAC,EAAE;AAClC,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;EACA,MAAMkR,MAAM,GAAGD,OAAO,CAACA,OAAO,CAACjR,MAAM,GAAG,CAAC,CAAC,CAAA;EAC1C,MAAMmR,SAAS,GAAGnE,GAAG,IAAI,IAAI,GAAGkE,MAAM,CAACE,CAAC,GAAGpE,GAAG,CAAA;EAC9C,IAAImE,SAAS,GAAGD,MAAM,CAACE,CAAC,GAAGR,kBAAkB,GAAG,CAAC,EAAE;AACjD,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;AACA,EAAA,MAAMS,MAAM,GAAGJ,OAAO,CAACtW,MAAM,CAAC2W,MAAM,IAAIJ,MAAM,CAACE,CAAC,GAAGE,MAAM,CAACF,CAAC,IAAIR,kBAAkB,CAAC,CAAA;AAClF,EAAA,IAAIS,MAAM,CAACrR,MAAM,GAAG,CAAC,EAAE;AACrB,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;AACA,EAAA,MAAMuR,KAAK,GAAGF,MAAM,CAAC,CAAC,CAAC,CAAA;EACvB,MAAMG,OAAO,GAAGN,MAAM,CAACE,CAAC,GAAGG,KAAK,CAACH,CAAC,CAAA;AAClC,EAAA,OAAOI,OAAO,GAAG,CAAC,GAAG,CAACN,MAAM,CAACpI,EAAE,GAAGyI,KAAK,CAACzI,EAAE,IAAI0I,OAAO,GAAG,CAAC,CAAA;AAC3D,CAAC,CAAA;AAEM,MAAMC,aAAa,GAAGA,CAAC;EAAEC,OAAO;EAAEC,QAAQ;EAAEC,SAAS;EAAEzC,YAAY;EAAEC,UAAU;AAAEyC,EAAAA,YAAY,GAAG,CAAA;AAAE,CAAC,KAAK;EAC7G,MAAM5D,IAAI,GAAG1V,IAAI,CAACmB,GAAG,CAAC0V,UAAU,GAAGD,YAAY,EAAE,CAAC,CAAC,CAAA;EACnD,MAAMtK,KAAK,GAAG+M,SAAS,GAAG,CAAC,GAAGA,SAAS,GAAG,CAAC,CAAA;EAC3C,MAAME,KAAK,GAAGvZ,IAAI,CAAC6Q,GAAG,CAAC7Q,IAAI,CAACmB,GAAG,CAAC,CAACgY,OAAO,GAAGC,QAAQ,IAAI9M,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACpE,EAAA,OAAOsK,YAAY,GAAG2C,KAAK,GAAG7D,IAAI,GAAG4D,YAAY,CAAA;AACnD,CAAC,CAAA;AAEM,MAAME,qBAAqB,GAAGA,CAAC;EAAErW,KAAK;EAAEC,GAAG;AAAEJ,EAAAA,MAAM,GAAGgR,cAAAA;AAAe,CAAC,KAAK;AAChF,EAAA,MAAMyF,SAAS,GAAGrF,aAAa,CAACjR,KAAK,CAAC,CAAA;AACtC,EAAA,MAAMuW,OAAO,GAAGtF,aAAa,CAAChR,GAAG,CAAC,CAAA;EAClC,IAAI,CAACqW,SAAS,IAAI,CAACC,OAAO,IAAI,OAAO1W,MAAM,KAAK,UAAU,EAAE;AAC1D,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA,EAAA,MAAM2W,OAAO,GAAG1P,KAAK,CAAC0K,OAAO,CAAC3R,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,EAAEA,MAAM,CAAC,CAAA;AACjE,EAAA,MAAM4W,SAAS,GAAGH,SAAS,CAACzW,MAAM,CAAC2W,OAAO,CAAC,CAAC,CAAC,IAAI3F,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;AACnE,EAAA,IAAI6F,SAAS,GAAGF,OAAO,CAAC,CAAC,CAAC,IAAIA,OAAO,CAAC,CAAC,CAAC,IAAI3F,cAAc,CAAC,CAAC,CAAC,CAAA;AAC7D,EAAA,MAAM8F,aAAa,GAAGJ,OAAO,CAAC1V,OAAO,EAAE,KAAK0V,OAAO,CAACzW,OAAO,CAAC,KAAK,CAAC,CAACe,OAAO,EAAE,CAAA;AAC5E,EAAA,IAAIhB,MAAM,KAAKgR,cAAc,IAAI,CAAC8F,aAAa,IAAI,CAACJ,OAAO,CAACrT,MAAM,CAACoT,SAAS,EAAE,KAAK,CAAC,EAAE;AACpFI,IAAAA,SAAS,GAAG,aAAa,CAAA;AAC3B,GAAA;EACA,OAAO,CAACD,SAAS,EAAEF,OAAO,CAAC1W,MAAM,CAAC6W,SAAS,CAAC,CAAC,CAAA;AAC/C,CAAC,CAAA;AAEM,MAAME,gBAAgB,GAAGA,CAAC;EAAE5W,KAAK;EAAEC,GAAG;AAAEJ,EAAAA,MAAM,GAAGgR,cAAc;AAAEgG,EAAAA,SAAS,GAAGjG,iBAAAA;AAAkB,CAAC,KAAK;AAC1G,EAAA,IAAI,OAAO/Q,MAAM,KAAK,UAAU,EAAE;AAChC,IAAA,MAAMyW,SAAS,GAAGrF,aAAa,CAACjR,KAAK,CAAC,CAAA;AACtC,IAAA,MAAMuW,OAAO,GAAGtF,aAAa,CAAChR,GAAG,CAAC,CAAA;AAClC,IAAA,OAAOqW,SAAS,IAAIC,OAAO,GAAG1W,MAAM,CAACyW,SAAS,CAAC/T,MAAM,EAAE,EAAEgU,OAAO,CAAChU,MAAM,EAAE,CAAC,GAAG,EAAE,CAAA;AACjF,GAAA;EACA,MAAMuU,KAAK,GAAGT,qBAAqB,CAAC;IAAErW,KAAK;IAAEC,GAAG;AAAEJ,IAAAA,MAAAA;AAAO,GAAC,CAAC,CAAA;AAC3D,EAAA,OAAOiX,KAAK,GAAG,CAAA,EAAGA,KAAK,CAAC,CAAC,CAAC,CAAA,EAAGD,SAAS,CAAA,EAAGC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,GAAG,EAAE,CAAA;AAC1D,CAAC,CAAA;AAED,MAAMC,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;AAElD,MAAMC,cAAc,GAAGA,CAACC,SAAS,EAAEC,UAAU,KAAK;AAChD,EAAA,IAAI,EAAED,SAAS,GAAG,CAAC,CAAC,EAAE;AACpB,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;AACA,EAAA,OAAOF,eAAe,CAACI,IAAI,CAACC,KAAK,IAAIH,SAAS,GAAGG,KAAK,IAAIF,UAAU,CAAC,IAAI,EAAE,CAAA;AAC7E,CAAC,CAAA;AAED,MAAMG,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;AAC9C,MAAMC,eAAe,GAAG,CAAC,CAAA;AAEzB,MAAMC,eAAe,GAAGA,CAACN,SAAS,EAAEO,UAAU,KAAK;AACjD,EAAA,MAAMC,GAAG,GAAGJ,YAAY,CAACF,IAAI,CAACO,OAAO,IAAKT,SAAS,GAAGS,OAAO,GAAI,EAAE,IAAIJ,eAAe,CAAC,CAAA;AACvF,EAAA,OAAOG,GAAG,IAAID,UAAU,GAAG,EAAE,CAAA;AAC/B,CAAC,CAAA;;AAED;AACA;AACA;AACO,MAAMG,eAAe,GAAGA,CAACC,SAAS,EAAEC,OAAO,EAAE;EAAEzD,UAAU;EAAExC,UAAU;EAAEC,QAAQ;AAAEqF,EAAAA,UAAU,GAAG,EAAA;AAAG,CAAC,GAAG,EAAE,KAAK;EACjH,MAAMY,WAAW,GAAGvY,yBAAK,CAACqY,SAAS,CAAC,CAAC/W,OAAO,EAAE,CAAA;EAC9C,MAAMkX,SAAS,GAAGxY,yBAAK,CAACsY,OAAO,CAAC,CAAChX,OAAO,EAAE,CAAA;AAC1C,EAAA,MAAM0R,IAAI,GAAGwF,SAAS,GAAGD,WAAW,CAAA;EACpC,IAAIvF,IAAI,IAAI,CAAC,EAAE;AACb,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACA,EAAA,MAAM0E,SAAS,GAAG7C,UAAU,GAAG,CAAC,GAAIA,UAAU,GAAGrD,OAAO,GAAIwB,IAAI,GAAG,CAAC,CAAA;EACpE,MAAMiF,UAAU,GAAGpD,UAAU,GAAG,CAAC,GAAG4C,cAAc,CAACC,SAAS,EAAEC,UAAU,CAAC,GAAG3E,IAAI,GAAGxB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACvG,EAAA,MAAMiH,WAAW,GAAG5D,UAAU,GAAG,CAAC,GAAGmD,eAAe,CAACN,SAAS,EAAEO,UAAU,CAAC,GAAG,EAAE,CAAA;AAChF,EAAA,MAAMS,MAAM,GAAGD,WAAW,GAAGhL,SAAS,CAAA;AACtC,EAAA,MAAMyG,YAAY,GAAG7B,UAAU,GAAGrS,yBAAK,CAACqS,UAAU,CAAC,CAAC/Q,OAAO,EAAE,GAAG,CAACwN,QAAQ,CAAA;AACzE,EAAA,MAAMqF,UAAU,GAAG7B,QAAQ,GAAGtS,yBAAK,CAACsS,QAAQ,CAAC,CAAChR,OAAO,EAAE,GAAGwN,QAAQ,CAAA;EAClE,MAAM6J,KAAK,GAAG,EAAE,CAAA;EAChB,IAAIC,QAAQ,GAAG3F,MAAM,CAACsF,WAAW,EAAEG,MAAM,EAAE,MAAM,CAAC,CAAA;EAClD,OAAOE,QAAQ,IAAIJ,SAAS,EAAE;AAC5B,IAAA,MAAMK,MAAM,GAAG7Y,yBAAK,CAAC4Y,QAAQ,CAAC,CAAA;IAC9B,MAAME,KAAK,GAAGD,MAAM,CAACE,MAAM,EAAE,KAAK,CAAC,CAAA;IACnC,MAAMC,QAAQ,GAAGF,KAAK,IAAID,MAAM,CAACI,IAAI,EAAE,KAAK,CAAC,CAAA;AAC7C,IAAA,MAAMF,MAAM,GAAGF,MAAM,CAACE,MAAM,EAAE,CAAA;AAC9B,IAAA,MAAMG,KAAK,GAAGF,QAAQ,GAAG,KAAK,GAAGF,KAAK,GAAG,MAAM,GAAGC,MAAM,KAAK,EAAE,GAAG,MAAM,GAAGA,MAAM,GAAG,EAAE,KAAK,CAAC,IAAIN,WAAW,GAAG,EAAE,GAAG,SAAS,GAAG,QAAQ,CAAA;IACvIE,KAAK,CAAC/U,IAAI,CAAC;AACTjE,MAAAA,GAAG,EAAEiZ,QAAQ;AACb/B,MAAAA,KAAK,EAAE,CAAC+B,QAAQ,GAAGL,WAAW,IAAIvF,IAAI;MACtC8F,KAAK;MACLI,KAAK;AACLrS,MAAAA,KAAK,EAAEmS,QAAQ,GAAGH,MAAM,CAACvY,MAAM,CAAC,OAAO,CAAC,GAAGuY,MAAM,CAACvY,MAAM,CAAC,OAAO,CAAC;MACjE6Y,SAAS,EAAEL,KAAK,IAAID,MAAM,CAACI,IAAI,EAAE,GAAGhB,UAAU,KAAK,CAAC;AACpDmB,MAAAA,UAAU,EAAER,QAAQ,GAAG1E,YAAY,IAAI0E,QAAQ,GAAGzE,UAAAA;AACpD,KAAC,CAAC,CAAA;IACFyE,QAAQ,GAAG3F,MAAM,CAAC2F,QAAQ,GAAGF,MAAM,EAAEA,MAAM,CAAC,CAAA;AAC9C,GAAA;AACA,EAAA,OAAOC,KAAK,CAAA;AACd,CAAC,CAAA;AAEM,MAAMU,mBAAmB,GAAGlB,OAAO,IAAI;AAC5C,EAAA,MAAM9C,KAAK,GAAG/X,IAAI,CAACmB,GAAG,CAACnB,IAAI,CAAC2Q,KAAK,CAACkK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;EAC9C,OAAO;IAAEmB,KAAK,EAAEhc,IAAI,CAACqJ,KAAK,CAAC0O,KAAK,GAAG,EAAE,CAAC;IAAE8C,OAAO,EAAE9C,KAAK,GAAG,EAAA;GAAI,CAAA;AAC/D,CAAC;;;;AClSD,MAAMkE,cAAc,GAAG,EAAE,CAAA;AACzB,MAAMC,oBAAoB,GAAG,CAAC,CAAA;AAC9B,MAAMC,oBAAoB,GAAG,EAAE,CAAA;AAC/B,MAAMC,cAAc,GAAG,EAAE,CAAA;AACzB,MAAMC,aAAa,GAAG,GAAG,CAAA;AACzB,MAAMC,mBAAmB,GAAG,EAAE,CAAA;AAC9B,MAAMC,mBAAmB,GAAG,GAAG,CAAA;AAE/B,MAAMC,WAAW,GAAGA,CAACC,IAAI,EAAEC,KAAK,KAAK;AACnC,EAAA,MAAMC,QAAQ,GAAGvI,aAAa,CAACqI,IAAI,CAAC,CAAA;AACpC,EAAA,MAAMG,SAAS,GAAGxI,aAAa,CAACsI,KAAK,CAAC,CAAA;AACtC,EAAA,IAAI,CAACC,QAAQ,IAAI,CAACC,SAAS,EAAE;AAC3B,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACA,EAAA,OAAO5c,IAAI,CAAC6c,GAAG,CAACF,QAAQ,CAAC3Y,OAAO,EAAE,GAAG4Y,SAAS,CAAC5Y,OAAO,EAAE,CAAC,GAAG,IAAI,CAAA;AAClE,CAAC,CAAA;AAED,MAAM8Y,eAAe,GAAGta,KAAK,IAAI;AAC/B,EAAA,IAAI,CAACyH,KAAK,CAAC0K,OAAO,CAACnS,KAAK,CAAC,EAAE;AACzB,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA,EAAA,OAAO4R,aAAa,CAAC5R,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC,CAAA;AAED,MAAMua,eAAe,GAAGA,CAACzY,KAAK,EAAEoT,OAAO,KAAK;AAC1C,EAAA,IAAIpT,KAAK,CAACgT,SAAS,KAAK,CAAC,EAAE;AACzB,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EACA,MAAM0F,MAAM,GAAG1Y,KAAK,CAAC2Y,WAAW,IAAI3Y,KAAK,CAAC4Y,WAAW,CAAA;AACrD,EAAA,IAAIF,MAAM,IAAIhd,IAAI,CAAC6c,GAAG,CAACG,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE;AAC1C,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA,EAAA,OAAOhd,IAAI,CAAC6c,GAAG,CAACnF,OAAO,CAAC,IAAIyE,oBAAoB,CAAA;AAClD,CAAC,CAAA;AAED,MAAMgB,eAAe,GAAG3Q,GAAG,IAAI;EAC7B,MAAM,CAACF,KAAK,EAAE8Q,QAAQ,CAAC,GAAG1c,cAAQ,CAAC,CAAC,CAAC,CAAA;AACrC4K,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,MAAMvL,IAAI,GAAGyM,GAAG,CAAC1L,OAAO,CAAA;IACxB,IAAI,CAACf,IAAI,EAAE;AACT,MAAA,OAAOY,SAAS,CAAA;AAClB,KAAA;IACAyc,QAAQ,CAACrd,IAAI,CAACG,qBAAqB,EAAE,CAACoM,KAAK,CAAC,CAAA;AAC5C,IAAA,IAAI,OAAOjL,cAAc,KAAK,WAAW,EAAE;AACzC,MAAA,OAAOV,SAAS,CAAA;AAClB,KAAA;AACA,IAAA,MAAMc,QAAQ,GAAG,IAAIJ,cAAc,CAACgc,OAAO,IAAI;AAC7C,MAAA,MAAMC,KAAK,GAAGD,OAAO,CAAC,CAAC,CAAC,CAAA;AACxB,MAAA,IAAIC,KAAK,EAAE;AACTF,QAAAA,QAAQ,CAACE,KAAK,CAACC,WAAW,CAACjR,KAAK,CAAC,CAAA;AACnC,OAAA;AACF,KAAC,CAAC,CAAA;AACF7K,IAAAA,QAAQ,CAACC,OAAO,CAAC3B,IAAI,CAAC,CAAA;AACtB,IAAA,OAAO,MAAM0B,QAAQ,CAACE,UAAU,EAAE,CAAA;AACpC,GAAC,EAAE,CAAC6K,GAAG,CAAC,CAAC,CAAA;AACT,EAAA,OAAOF,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAMkR,eAAe,GAAGA,CAAC;EACvBhb,KAAK;EACLmC,YAAY;EACZC,QAAQ;EACRqO,QAAQ;EACRf,KAAK;EACLmD,IAAI;EACJE,WAAW;AACXkI,EAAAA,YAAY,GAAG3J,qBAAqB;AACpC9Q,EAAAA,MAAM,GAAGgR,cAAc;AACvBgG,EAAAA,SAAS,GAAGjG,iBAAiB;AAC7B2J,EAAAA,YAAY,GAAG,IAAI;AACnBxR,EAAAA,IAAI,GAAG,SAAS;AAChBqM,EAAAA,OAAO,GAAG,IAAI;AACdoF,EAAAA,SAAS,GAAG,IAAI;AAChBC,EAAAA,WAAW,GAAG,IAAI;AAClBC,EAAAA,QAAQ,GAAG,KAAK;EAChBC,MAAM;AACNC,EAAAA,aAAa,GAAG,KAAK;EACrBC,cAAc;EACdtH,WAAW;EACXC,WAAW;EACXnO,SAAS;AACTE,EAAAA,KAAK,EAAEuV,SAAAA;AACT,CAAC,KAAK;EACJ,MAAM;AAAEpW,IAAAA,aAAAA;GAAe,GAAGiC,iBAAO,EAAE,CAAA;AACnC,EAAA,MAAMoU,YAAY,GAAG,OAAO1b,KAAK,KAAK,WAAW,CAAA;EACjD,MAAM,CAAC2b,UAAU,EAAEC,aAAa,CAAC,GAAG1d,cAAQ,CAAC,MAAM;IACjD,IAAIuJ,KAAK,CAAC0K,OAAO,CAAChQ,YAAY,CAAC,IAAImY,eAAe,CAACnY,YAAY,CAAC,EAAE;AAChE,MAAA,OAAOA,YAAY,CAAA;AACrB,KAAA;IACA,OAAOoS,aAAa,CAACV,gBAAgB,CAAC;MAAEpD,QAAQ;MAAEf,KAAK;AAAEmD,MAAAA,IAAAA;AAAK,KAAC,CAAC,CAAC,CAAA;AACnE,GAAC,CAAC,CAAA;EACF,MAAM,CAACgJ,UAAU,EAAEC,aAAa,CAAC,GAAG5d,cAAQ,CAAC,IAAI,CAAC,CAAA;EAClD,MAAM,CAAC6d,aAAa,EAAEC,gBAAgB,CAAC,GAAG9d,cAAQ,CAAC,IAAI,CAAC,CAAA;EACxD,MAAM,CAAC+d,QAAQ,EAAEC,WAAW,CAAC,GAAGhe,cAAQ,CAAC,KAAK,CAAC,CAAA;EAC/C,MAAM,CAACie,WAAW,EAAEC,cAAc,CAAC,GAAGle,cAAQ,CAACqd,aAAa,CAAC,CAAA;AAC7D,EAAA,MAAMc,gBAAgB,GAAG,OAAOf,MAAM,KAAK,SAAS,CAAA;EACpD,MAAMgB,QAAQ,GAAGjB,QAAQ,KAAKgB,gBAAgB,GAAGf,MAAM,GAAGa,WAAW,CAAC,CAAA;EACtE,MAAM,CAACI,UAAU,EAAEC,aAAa,CAAC,GAAGte,cAAQ,CAAC,IAAI,CAAC,CAAA;AAClD,EAAA,MAAMue,SAAS,GAAGxP,YAAM,CAAC,IAAI,CAAC,CAAA;EAC9B,MAAMyP,UAAU,GAAGH,UAAU,GAAGA,UAAU,CAAC1L,IAAI,GAAG,IAAI,CAAA;AACtD,EAAA,MAAMhT,OAAO,GAAGoP,YAAM,CAAC,IAAI,CAAC,CAAA;AAC5B,EAAA,MAAM0P,QAAQ,GAAG1P,YAAM,CAAC,IAAI,CAAC,CAAA;AAC7B,EAAA,MAAM2P,OAAO,GAAG3P,YAAM,CAAC,IAAI,CAAC,CAAA;AAC5B,EAAA,MAAM4P,aAAa,GAAG5P,YAAM,CAAC,CAAC,CAAC,CAAA;AAC/B,EAAA,MAAM6P,cAAc,GAAG7P,YAAM,CAAC,KAAK,CAAC,CAAA;AACpC,EAAA,MAAM8P,QAAQ,GAAG9P,YAAM,CAAC,IAAI,CAAC,CAAA;AAC7B,EAAA,MAAM+P,UAAU,GAAG/P,YAAM,CAAC,IAAI,CAAC,CAAA;AAC/B,EAAA,MAAMgQ,WAAW,GAAGhQ,YAAM,CAAC7K,QAAQ,CAAC,CAAA;AACpC,EAAA,MAAM8a,iBAAiB,GAAGjQ,YAAM,CAACuO,cAAc,CAAC,CAAA;AAChD,EAAA,MAAM2B,WAAW,GAAGlQ,YAAM,CAACqP,QAAQ,CAAC,CAAA;EACpCY,iBAAiB,CAAC5e,OAAO,GAAGkd,cAAc,CAAA;EAC1C2B,WAAW,CAAC7e,OAAO,GAAGge,QAAQ,CAAA;AAC9B,EAAA,MAAMvH,UAAU,GAAG4F,eAAe,CAACgC,QAAQ,CAAC,CAAA;AAE5C,EAAA,MAAMS,cAAc,GAAG1B,YAAY,GAAG1b,KAAK,GAAG2b,UAAU,CAAA;AACxD,EAAA,MAAM0B,cAAc,GAAG/C,eAAe,CAAC8C,cAAc,CAAC,CAAA;EACtD,MAAME,WAAW,GAAGD,cAAc,GAAGA,cAAc,CAAC7b,OAAO,EAAE,GAAG,IAAI,CAAA;AACpE,EAAA,MAAM+b,SAAS,GAAGF,cAAc,GAAGA,cAAc,CAAC5c,OAAO,CAAC,KAAK,CAAC,CAACe,OAAO,EAAE,GAAGrD,SAAS,CAAA;EACtF,MAAMqf,OAAO,GAAG3B,UAAU,GAAGA,UAAU,CAACra,OAAO,EAAE,GAAG,IAAI,CAAA;AACxD,EAAA,MAAMic,YAAY,GAAGhW,KAAK,CAAC0K,OAAO,CAACiL,cAAc,CAAC,GAAGxL,aAAa,CAACwL,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;EAC5F,MAAMM,cAAc,GAAGD,YAAY,GAAGA,YAAY,CAACjc,OAAO,EAAE,GAAG,IAAI,CAAA;EACnE,MAAMmc,iBAAiB,GAAGN,cAAc,IAAII,YAAY,IAAIA,YAAY,CAACpa,OAAO,CAACga,cAAc,CAAC,GAAGI,YAAY,CAAC9K,IAAI,CAAC0K,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,IAAI,CAAA;AAC3J,EAAA,MAAMO,cAAc,GAAG7B,aAAa,IAAI,IAAI,GAAGA,aAAa,GAAG4B,iBAAiB,IAAI,IAAI,GAAGA,iBAAiB,GAAGlN,QAAQ,CAAA;AAEvH,EAAA,MAAMoN,kBAAkB,GAAG5Q,YAAM,CAAC0Q,iBAAiB,IAAIvM,gBAAgB,CAAC,CAAA;AACxE,EAAA,MAAM0M,UAAU,GAAG7Q,YAAM,CAAC,IAAI,CAAC,CAAA;EAC/BgQ,WAAW,CAAC3e,OAAO,GAAG8D,QAAQ,CAAA;EAC9B0b,UAAU,CAACxf,OAAO,GAAG;AAAEmS,IAAAA,QAAQ,EAAEmN,cAAc;IAAElO,KAAK;IAAEmD,IAAI;AAAEZ,IAAAA,GAAG,EAAEsL,SAAAA;GAAW,CAAA;AAE9E,EAAA,MAAMQ,UAAU,GAAGvW,aAAO,CAAC,MAAM;IAC/B,MAAM7G,KAAK,GAAG6c,OAAO,IAAI,IAAI,GAAGF,WAAW,GAAGE,OAAO,CAAA;AACrD,IAAA,OAAO3J,gBAAgB,CAAC;MAAElT,KAAK;AAAE8P,MAAAA,QAAQ,EAAEmN,cAAc;MAAElO,KAAK;MAAEmD,IAAI;AAAEZ,MAAAA,GAAG,EAAEsL,SAAAA;AAAU,KAAC,CAAC,CAAA;AACzF;GACD,EAAE,CAACA,SAAS,EAAED,WAAW,EAAEE,OAAO,EAAEI,cAAc,EAAE/K,IAAI,EAAEmL,IAAI,CAACC,SAAS,CAACvO,KAAK,KAAKvR,SAAS,GAAG,SAAS,GAAGuR,KAAK,CAAC,CAAC,CAAC,CAAA;EAEpH,MAAM+E,kBAAkB,GAAG3B,kBAAkB,CAAC;IAC5CC,WAAW;IACXtC,QAAQ,EAAEsN,UAAU,CAACtN,QAAQ;AAC7BuC,IAAAA,YAAY,EAAEpE,MAAM,CAAC6B,QAAQ,CAAC,GAAG,CAAC,GAAG7B,MAAM,CAAC6B,QAAQ,CAAC,GAAGoN,kBAAkB,CAACvf,OAAO;IAClFiU,UAAU,EAAEwL,UAAU,CAACxL,UAAU;IACjCC,QAAQ,EAAEuL,UAAU,CAACvL,QAAAA;AACvB,GAAC,CAAC,CAAA;EACF,MAAM0L,WAAW,GAAGH,UAAU,CAACpd,KAAK,CAACa,OAAO,EAAE,CAAA;AAC9C,EAAA,MAAM4S,YAAY,GAAG2J,UAAU,CAACxL,UAAU,GAAGwL,UAAU,CAACxL,UAAU,CAAC/Q,OAAO,EAAE,GAAG,IAAI,CAAA;AACnF,EAAA,MAAM6S,UAAU,GAAG0J,UAAU,CAACvL,QAAQ,GAAGuL,UAAU,CAACvL,QAAQ,CAAChR,OAAO,EAAE,GAAG,IAAI,CAAA;EAC7E,MAAMiS,UAAU,GAAGsK,UAAU,CAACtN,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAA;EAElD,MAAM,CAAC0N,QAAQ,EAAEC,WAAW,CAAC,GAAGlgB,cAAQ,CAAC,IAAI,CAAC,CAAA;AAC9C,EAAA,MAAMmgB,SAAS,GAAGpR,YAAM,CAAC,IAAI,CAAC,CAAA;AAC9B,EAAA,MAAMqR,eAAe,GAAGrR,YAAM,CAAC,IAAI,CAAC,CAAA;AACpC,EAAA,MAAMsR,QAAQ,GAAGtR,YAAM,CAAC,IAAI,CAAC,CAAA;AAC7B,EAAA,MAAMuR,YAAY,GAAGvR,YAAM,CAAC,CAAC,CAAC,CAAA;AAC9B,EAAA,MAAMwR,cAAc,GAAGxR,YAAM,CAAC,KAAK,CAAC,CAAA;AACpC,EAAA,MAAMyR,YAAY,GAAGzR,YAAM,CAAC,IAAI,CAAC,CAAA;AACjC,EAAA,MAAM0R,OAAO,GAAG1R,YAAM,CAAC2M,cAAc,CAAC,CAAA;AACtC,EAAA,MAAMgF,UAAU,GAAG3R,YAAM,CAAC,KAAK,CAAC,CAAA;AAChC,EAAA,MAAM4R,YAAY,GAAG5R,YAAM,CAAC,IAAI,CAAC,CAAA;AACjC,EAAA,MAAM6R,eAAe,GAAG7R,YAAM,CAAC,EAAE,CAAC,CAAA;AAClC,EAAA,MAAM8R,iBAAiB,GAAG9R,YAAM,CAAC,CAAC,CAAC,CAAA;AACnC,EAAA,MAAM+R,UAAU,GAAGlJ,cAAc,CAACC,OAAO,CAAC,CAAA;AAC1C,EAAA,MAAMkJ,UAAU,GAAGhS,YAAM,CAAC+R,UAAU,CAAC,CAAA;EACrCC,UAAU,CAAC3gB,OAAO,GAAG0gB,UAAU,CAAA;EAE/B,MAAME,WAAW,GAAGnR,EAAE,IAAI;IACxB,IAAIuG,IAAI,GAAGvG,EAAE,CAAA;IACb,IAAIsG,UAAU,IAAI,IAAI,EAAE;MACtBC,IAAI,GAAG9W,IAAI,CAAC6Q,GAAG,CAACiG,IAAI,EAAED,UAAU,GAAGZ,UAAU,CAAC,CAAA;AAChD,KAAA;IACA,IAAIW,YAAY,IAAI,IAAI,EAAE;MACxBE,IAAI,GAAG9W,IAAI,CAACmB,GAAG,CAAC2V,IAAI,EAAEF,YAAY,CAAC,CAAA;AACrC,KAAA;AACA,IAAA,OAAOE,IAAI,CAAA;GACZ,CAAA;AACD,EAAA,MAAM6K,cAAc,GAAGlS,YAAM,CAACiS,WAAW,CAAC,CAAA;EAC1CC,cAAc,CAAC7gB,OAAO,GAAG4gB,WAAW,CAAA;EAEpC,MAAME,QAAQ,GAAG/e,IAAI,IAAI;AACvB,IAAA,MAAMuT,MAAM,GAAG0K,eAAe,CAAChgB,OAAO,CAAA;AACtC,IAAA,MAAMA,OAAO,GAAG+f,SAAS,CAAC/f,OAAO,IAAI,IAAI,GAAGsV,MAAM,GAAGyK,SAAS,CAAC/f,OAAO,CAAA;AACtE,IAAA,MAAM+gB,EAAE,GAAGb,YAAY,CAAClgB,OAAO,GAAGd,IAAI,CAAC6Q,GAAG,CAAChO,IAAI,GAAGme,YAAY,CAAClgB,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA;IAChFkgB,YAAY,CAAClgB,OAAO,GAAG+B,IAAI,CAAA;AAC3B,IAAA,MAAMsS,IAAI,GAAGiB,MAAM,GAAGtV,OAAO,CAAA;IAC7B,MAAMghB,OAAO,GAAG9hB,IAAI,CAAC6c,GAAG,CAAC1H,IAAI,CAAC,GAAG,IAAI,CAAA;IACrC,MAAM2B,IAAI,GAAGgL,OAAO,GAAG1L,MAAM,GAAGtV,OAAO,GAAGqU,IAAI,IAAI,CAAC,GAAGnV,IAAI,CAAC+hB,GAAG,CAAC,CAACF,EAAE,GAAGV,OAAO,CAACrgB,OAAO,CAAC,CAAC,CAAA;IACtF+f,SAAS,CAAC/f,OAAO,GAAGgW,IAAI,CAAA;IACxB8J,WAAW,CAAC9J,IAAI,CAAC,CAAA;IACjB,IAAIsK,UAAU,CAACtgB,OAAO,EAAE;AACtBkhB,MAAAA,SAAS,CAAClhB,OAAO,CAACgW,IAAI,CAAC,CAAA;AACzB,KAAA;AACA,IAAA,IAAIgL,OAAO,EAAE;MACXf,QAAQ,CAACjgB,OAAO,GAAG,IAAI,CAAA;MACvBkgB,YAAY,CAAClgB,OAAO,GAAG,CAAC,CAAA;MACxBqgB,OAAO,CAACrgB,OAAO,GAAGsb,cAAc,CAAA;MAChCgF,UAAU,CAACtgB,OAAO,GAAG,KAAK,CAAA;AAC1B,MAAA,OAAA;AACF,KAAA;AACAigB,IAAAA,QAAQ,CAACjgB,OAAO,GAAGmhB,qBAAqB,CAACL,QAAQ,CAAC,CAAA;GACnD,CAAA;EAED,MAAMM,SAAS,GAAGA,MAAM;AACtB,IAAA,IAAI,CAACd,UAAU,CAACtgB,OAAO,EAAE;AACvB,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;IACAsgB,UAAU,CAACtgB,OAAO,GAAG,KAAK,CAAA;IAC1BugB,YAAY,CAACvgB,OAAO,GAAG,IAAI,CAAA;IAC3BwgB,eAAe,CAACxgB,OAAO,GAAG,EAAE,CAAA;IAC5BygB,iBAAiB,CAACzgB,OAAO,GAAG,CAAC,CAAA;IAC7BqgB,OAAO,CAACrgB,OAAO,GAAGsb,cAAc,CAAA;IAChC,IAAI2E,QAAQ,CAACjgB,OAAO,EAAE;AACpBqhB,MAAAA,oBAAoB,CAACpB,QAAQ,CAACjgB,OAAO,CAAC,CAAA;MACtCigB,QAAQ,CAACjgB,OAAO,GAAG,IAAI,CAAA;MACvBkgB,YAAY,CAAClgB,OAAO,GAAG,CAAC,CAAA;AAC1B,KAAA;AACAggB,IAAAA,eAAe,CAAChgB,OAAO,GAAG+f,SAAS,CAAC/f,OAAO,CAAA;AAC3C,IAAA,OAAO,IAAI,CAAA;GACZ,CAAA;EAED,MAAMshB,OAAO,GAAGA,CAAC7R,EAAE,EAAE8R,MAAM,GAAGb,UAAU,KAAK;IAC3C,MAAMjO,OAAO,GAAG8C,gBAAgB,CAAC;AAAElT,MAAAA,KAAK,EAAEoN,EAAE;AAAE,MAAA,GAAG+P,UAAU,CAACxf,OAAAA;AAAQ,KAAC,CAAC,CAACqC,KAAK,CAACa,OAAO,EAAE,CAAA;IACtFod,UAAU,CAACtgB,OAAO,GAAG,IAAI,CAAA;IACzBqgB,OAAO,CAACrgB,OAAO,GAAGuhB,MAAM,CAAA;IACxBC,eAAe,CAAC/O,OAAO,CAAC,CAAA;GACzB,CAAA;AAED,EAAA,MAAM+O,eAAe,GAAGA,CAAC/R,EAAE,EAAE;AAAEgS,IAAAA,SAAS,GAAG,KAAA;GAAO,GAAG,EAAE,KAAK;AAC1D,IAAA,MAAMnM,MAAM,GAAGuL,cAAc,CAAC7gB,OAAO,CAACyP,EAAE,CAAC,CAAA;IACzCuQ,eAAe,CAAChgB,OAAO,GAAGsV,MAAM,CAAA;AAChC,IAAA,IAAImM,SAAS,IAAI,OAAON,qBAAqB,KAAK,WAAW,EAAE;MAC7D,IAAIlB,QAAQ,CAACjgB,OAAO,EAAE;AACpBqhB,QAAAA,oBAAoB,CAACpB,QAAQ,CAACjgB,OAAO,CAAC,CAAA;QACtCigB,QAAQ,CAACjgB,OAAO,GAAG,IAAI,CAAA;QACvBkgB,YAAY,CAAClgB,OAAO,GAAG,CAAC,CAAA;AAC1B,OAAA;MACA+f,SAAS,CAAC/f,OAAO,GAAGsV,MAAM,CAAA;MAC1BwK,WAAW,CAACxK,MAAM,CAAC,CAAA;AACnB,MAAA,OAAA;AACF,KAAA;AACA,IAAA,IAAI,CAAC2K,QAAQ,CAACjgB,OAAO,EAAE;AACrBigB,MAAAA,QAAQ,CAACjgB,OAAO,GAAGmhB,qBAAqB,CAACL,QAAQ,CAAC,CAAA;AACpD,KAAA;GACD,CAAA;AACD,EAAA,MAAMY,kBAAkB,GAAG/S,YAAM,CAAC6S,eAAe,CAAC,CAAA;EAClDE,kBAAkB,CAAC1hB,OAAO,GAAGwhB,eAAe,CAAA;AAC5C,EAAA,MAAMG,UAAU,GAAGhT,YAAM,CAAC2S,OAAO,CAAC,CAAA;EAClCK,UAAU,CAAC3hB,OAAO,GAAGshB,OAAO,CAAA;AAC5B,EAAA,MAAMM,YAAY,GAAGjT,YAAM,CAACyS,SAAS,CAAC,CAAA;EACtCQ,YAAY,CAAC5hB,OAAO,GAAGohB,SAAS,CAAA;EAEhC5W,eAAS,CACP,MAAM,MAAM;IACV,IAAIyV,QAAQ,CAACjgB,OAAO,EAAE;AACpBqhB,MAAAA,oBAAoB,CAACpB,QAAQ,CAACjgB,OAAO,CAAC,CAAA;AACxC,KAAA;AACA6hB,IAAAA,YAAY,CAACzB,YAAY,CAACpgB,OAAO,CAAC,CAAA;GACnC,EACD,EACF,CAAC,CAAA;AAEDwK,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI8T,OAAO,CAACte,OAAO,IAAIme,SAAS,CAACne,OAAO,IAAImgB,cAAc,CAACngB,OAAO,IAAIsgB,UAAU,CAACtgB,OAAO,EAAE;AACxF,MAAA,OAAA;AACF,KAAA;AACA,IAAA,IAAI+f,SAAS,CAAC/f,OAAO,IAAI,IAAI,EAAE;MAC7B+f,SAAS,CAAC/f,OAAO,GAAG4f,WAAW,CAAA;MAC/BI,eAAe,CAAChgB,OAAO,GAAG4f,WAAW,CAAA;AACrC,MAAA,OAAA;AACF,KAAA;AACA8B,IAAAA,kBAAkB,CAAC1hB,OAAO,CAAC4f,WAAW,CAAC,CAAA;AACzC,GAAC,EAAE,CAACA,WAAW,CAAC,CAAC,CAAA;EAEjB,MAAMkC,cAAc,GAAG7D,UAAU,IAAI4B,QAAQ,IAAI,IAAI,GAAGD,WAAW,GAAGC,QAAQ,CAAA;AAC9E,EAAA,MAAMkC,QAAQ,GAAG9D,UAAU,IAAI/H,WAAW,CAAC;AAAEjG,IAAAA,OAAO,EAAE6R,cAAc;IAAE3P,QAAQ,EAAEsN,UAAU,CAACtN,QAAAA;GAAU,EAAEgE,kBAAkB,CAAC,CAAA;AAE1H,EAAA,MAAM6L,OAAO,GAAGrT,YAAM,CAAC,IAAI,CAAC,CAAA;AAC5B,EAAA,MAAMsT,aAAa,GAAGtT,YAAM,CAAC8Q,UAAU,CAAC,CAAA;EACxCwC,aAAa,CAACjiB,OAAO,GAAGyf,UAAU,CAAA;EAClCuC,OAAO,CAAChiB,OAAO,GAAG+hB,QAAQ,CAAA;AAE1B,EAAA,MAAMxH,KAAK,GAAGrR,aAAO,CACnB,MACE8Q,eAAe,CAAC+H,QAAQ,CAAC9R,OAAO,EAAE8R,QAAQ,CAAC7R,KAAK,EAAE;IAChDuG,UAAU;AACVxC,IAAAA,UAAU,EAAE6B,YAAY;AACxB5B,IAAAA,QAAQ,EAAE6B,UAAAA;AACZ,GAAC,CAAC,EACJ,CAACgM,QAAQ,CAAC9R,OAAO,EAAE8R,QAAQ,CAAC7R,KAAK,EAAEuG,UAAU,EAAEX,YAAY,EAAEC,UAAU,CACzE,CAAC,CAAA;AAED,EAAA,MAAMmM,SAAS,GAAGzS,EAAE,IAAK,CAACA,EAAE,GAAGsS,QAAQ,CAAC9R,OAAO,IAAI8R,QAAQ,CAAC3L,MAAM,GAAI,GAAG,CAAA;EACzE,MAAM5K,KAAK,GAAI2J,UAAU,GAAG4M,QAAQ,CAAC3L,MAAM,GAAI,GAAG,CAAA;AAClD,EAAA,MAAMuF,IAAI,GAAGuG,SAAS,CAACJ,cAAc,CAAC,CAAA;AACtC,EAAA,MAAMK,QAAQ,GAAI3W,KAAK,GAAG,GAAG,GAAIiL,UAAU,CAAA;EAC3C,MAAM2L,SAAS,GAAGtM,YAAY,IAAI,IAAI,GAAG5W,IAAI,CAAC6Q,GAAG,CAAC7Q,IAAI,CAACmB,GAAG,CAAC6hB,SAAS,CAACpM,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;EAChG,MAAMuM,UAAU,GAAGtM,UAAU,IAAI,IAAI,GAAG7W,IAAI,CAAC6Q,GAAG,CAAC7Q,IAAI,CAACmB,GAAG,CAAC,GAAG,GAAG6hB,SAAS,CAACnM,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;AAEnG,EAAA,MAAMtN,KAAK,GAAGS,aAAO,CAAC,MAAM;AAC1B,IAAA,IAAI,OAAOhH,MAAM,KAAK,UAAU,EAAE;AAChC,MAAA,OAAOA,MAAM,CAACud,UAAU,CAACpd,KAAK,CAACuC,MAAM,EAAE,EAAE6a,UAAU,CAACnd,GAAG,CAACsC,MAAM,EAAE,CAAC,CAAA;AACnE,KAAA;AACA,IAAA,MAAM,CAACkU,SAAS,EAAEwJ,OAAO,CAAC,GAAG5J,qBAAqB,CAAC;MAAErW,KAAK,EAAEod,UAAU,CAACpd,KAAK;MAAEC,GAAG,EAAEmd,UAAU,CAACnd,GAAG;AAAEJ,MAAAA,MAAAA;AAAO,KAAC,CAAC,CAAA;IAC5G,oBACEqH,eAAA,CAAAgZ,mBAAA,EAAA;AAAAxa,MAAAA,QAAA,gBACEJ,cAAA,CAAA,MAAA,EAAA;AAAAI,QAAAA,QAAA,EAAO+Q,SAAAA;OAAgB,CAAC,eACxBnR,cAAA,CAAA,MAAA,EAAA;QAAMD,SAAS,EAAEE,OAAK,CAACsR,SAAU;AAAAnR,QAAAA,QAAA,EAAEmR,SAAAA;OAAgB,CAAC,eACpDvR,cAAA,CAAA,MAAA,EAAA;AAAAI,QAAAA,QAAA,EAAOua,OAAAA;AAAO,OAAO,CAAC,CAAA;AAAA,KACtB,CAAC,CAAA;AAEP,GAAC,EAAE,CAAC7C,UAAU,CAACnd,GAAG,EAAEmd,UAAU,CAACpd,KAAK,EAAEH,MAAM,EAAEgX,SAAS,CAAC,CAAC,CAAA;EAEzD,MAAMsJ,aAAa,GAAGvJ,gBAAgB,CAAC;IACrC5W,KAAK,EAAEod,UAAU,CAACpd,KAAK;IACvBC,GAAG,EAAEmd,UAAU,CAACnd,GAAG;IACnBJ,MAAM,EAAE,OAAOA,MAAM,KAAK,UAAU,GAAGgR,cAAc,GAAGhR,MAAM;AAC9DgX,IAAAA,SAAS,EAAE,OAAOA,SAAS,KAAK,QAAQ,GAAGA,SAAS,GAAGjG,iBAAAA;AACzD,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMwP,YAAY,GAAGvZ,aAAO,CAAC,MAAM;IACjC,MAAM;MAAEgS,KAAK;AAAEnB,MAAAA,OAAAA;AAAQ,KAAC,GAAGkB,mBAAmB,CAACwE,UAAU,CAACtN,QAAQ,CAAC,CAAA;IACnE,MAAMgH,KAAK,GAAG,EAAE,CAAA;AAChB,IAAA,IAAI+B,KAAK,EAAE;AACT/B,MAAAA,KAAK,CAAC3T,IAAI,CAACuB,aAAa,CAAC;AAAErD,QAAAA,EAAE,EAAE,kBAAA;AAAmB,OAAC,EAAE;AAAEyI,QAAAA,KAAK,EAAE+O,KAAAA;AAAM,OAAC,CAAC,CAAC,CAAA;AACzE,KAAA;AACA,IAAA,IAAInB,OAAO,IAAI,CAACmB,KAAK,EAAE;AACrB/B,MAAAA,KAAK,CAAC3T,IAAI,CAACuB,aAAa,CAAC;AAAErD,QAAAA,EAAE,EAAE,oBAAA;AAAqB,OAAC,EAAE;AAAEyI,QAAAA,KAAK,EAAE4N,OAAAA;AAAQ,OAAC,CAAC,CAAC,CAAA;AAC7E,KAAA;AACA,IAAA,OAAOZ,KAAK,CAAC3X,IAAI,CAAC,GAAG,CAAC,CAAA;GACvB,EAAE,CAACie,UAAU,CAACtN,QAAQ,EAAEpL,aAAa,CAAC,CAAC,CAAA;EAExC,MAAM2b,UAAU,GAAGA,MAAM;IACvB,IAAIjE,QAAQ,CAACze,OAAO,EAAE;AACpB6hB,MAAAA,YAAY,CAACpD,QAAQ,CAACze,OAAO,CAAC,CAAA;MAC9Bye,QAAQ,CAACze,OAAO,GAAG,IAAI,CAAA;AACzB,KAAA;GACD,CAAA;AAEDwK,EAAAA,eAAS,CAAC,MAAMkY,UAAU,EAAE,EAAE,CAAC,CAAA;AAE/BlY,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAIgU,cAAc,CAACxe,OAAO,IAAIkf,OAAO,IAAI,IAAI,EAAE;AAC7C,MAAA,OAAA;AACF,KAAA;AACA,IAAA,MAAMyD,OAAO,GAAGxZ,KAAK,CAAC0K,OAAO,CAAC6K,UAAU,CAAC1e,OAAO,CAAC,GAAG0e,UAAU,CAAC1e,OAAO,GAAG,IAAI,CAAA;IAC7E,IAAI2iB,OAAO,IAAIjH,WAAW,CAACsD,WAAW,EAAE2D,OAAO,CAAC,CAAC,CAAC,CAAC,IAAIjH,WAAW,CAAC0D,cAAc,EAAEuD,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;MAC9FjE,UAAU,CAAC1e,OAAO,GAAG,IAAI,CAAA;MACzBwd,aAAa,CAAC,IAAI,CAAC,CAAA;MACnBE,gBAAgB,CAAC,IAAI,CAAC,CAAA;AACxB,KAAA;GACD,EAAE,CAACsB,WAAW,EAAEI,cAAc,EAAEF,OAAO,CAAC,CAAC,CAAA;EAE1C,MAAM0D,OAAO,GAAGC,UAAU,IAAI;AAC5B,IAAA,MAAMC,SAAS,GAAG7M,aAAa,CAAC4M,UAAU,CAAC,CAAA;IAC3CZ,aAAa,CAACjiB,OAAO,GAAG6iB,UAAU,CAAA;IAClCnE,UAAU,CAAC1e,OAAO,GAAG8iB,SAAS,CAAA;AAC9BtF,IAAAA,aAAa,CAACqF,UAAU,CAACxgB,KAAK,CAAC,CAAA;AAC/Bqb,IAAAA,gBAAgB,CAACmF,UAAU,CAAC1Q,QAAQ,CAAC,CAAA;AACrCuQ,IAAAA,UAAU,EAAE,CAAA;AACZjE,IAAAA,QAAQ,CAACze,OAAO,GAAG+iB,UAAU,CAAC,MAAM;MAClCtE,QAAQ,CAACze,OAAO,GAAG,IAAI,CAAA;MACvB,IAAI,CAACod,YAAY,EAAE;QACjBE,aAAa,CAACwF,SAAS,CAAC,CAAA;AAC1B,OAAA;MACA,IAAInE,WAAW,CAAC3e,OAAO,EAAE;AACvB2e,QAAAA,WAAW,CAAC3e,OAAO,CAAC8iB,SAAS,CAAC,CAAA;AAChC,OAAA;KACD,EAAEnG,YAAY,CAAC,CAAA;GACjB,CAAA;EAED,MAAMqG,MAAM,GAAG/N,UAAU,IAAI;AAC3B,IAAA,MAAMjV,OAAO,GAAGiiB,aAAa,CAACjiB,OAAO,CAAA;IACrC,MAAM6iB,UAAU,GAAGtN,gBAAgB,CAAC;AAClClT,MAAAA,KAAK,EAAE4S,UAAU;AACjB,MAAA,GAAGuK,UAAU,CAACxf,OAAAA;AAChB,KAAC,CAAC,CAAA;AACF,IAAA,IAAI6iB,UAAU,CAACxgB,KAAK,CAACa,OAAO,EAAE,KAAKlD,OAAO,CAACqC,KAAK,CAACa,OAAO,EAAE,EAAE;AAC1D,MAAA,OAAA;AACF,KAAA;IACA0f,OAAO,CAACC,UAAU,CAAC,CAAA;GACpB,CAAA;AACD,EAAA,MAAM3B,SAAS,GAAGvS,YAAM,CAACqU,MAAM,CAAC,CAAA;EAChC9B,SAAS,CAAClhB,OAAO,GAAGgjB,MAAM,CAAA;AAE1B,EAAA,MAAMC,eAAe,GAAGtU,YAAM,CAACwD,QAAQ,CAAC,CAAA;AACxC3H,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAIyY,eAAe,CAACjjB,OAAO,KAAKmS,QAAQ,EAAE;AACxC,MAAA,OAAA;AACF,KAAA;IACA8Q,eAAe,CAACjjB,OAAO,GAAGmS,QAAQ,CAAA;IAClCyQ,OAAO,CAACrN,gBAAgB,CAAC;MAAE,GAAGiK,UAAU,CAACxf,OAAO;AAAEqC,MAAAA,KAAK,EAAE4f,aAAa,CAACjiB,OAAO,CAACqC,KAAK;AAAE8P,MAAAA,QAAAA;AAAS,KAAC,CAAC,CAAC,CAAA;AAClG;AACF,GAAC,EAAE,CAACA,QAAQ,CAAC,CAAC,CAAA;AAEd,EAAA,MAAM+Q,aAAa,GAAGA,CAAC7K,OAAO,EAAE8K,IAAI,KAAK;AACvC,IAAA,MAAMC,IAAI,GAAG/E,QAAQ,CAACre,OAAO,GAAGqe,QAAQ,CAACre,OAAO,CAACZ,qBAAqB,EAAE,GAAG;AAAEuc,MAAAA,IAAI,EAAE,CAAC;AAAEnQ,MAAAA,KAAK,EAAE,CAAA;KAAG,CAAA;AAChG,IAAA,OAAO4M,aAAa,CAAC;MACnBC,OAAO;MACPC,QAAQ,EAAE8K,IAAI,CAACzH,IAAI;MACnBpD,SAAS,EAAE6K,IAAI,CAAC5X,KAAK;MACrBsK,YAAY,EAAEqN,IAAI,CAAClT,OAAO;MAC1B8F,UAAU,EAAEoN,IAAI,CAACjT,KAAAA;AACnB,KAAC,CAAC,CAAA;GACH,CAAA;AAED,EAAA,MAAMmT,WAAW,GAAGA,CAAC7f,KAAK,EAAE+O,IAAI,KAAK;AACnC,IAAA,MAAM4Q,IAAI,GAAGnB,OAAO,CAAChiB,OAAO,CAAA;AAC5B,IAAA,MAAMA,OAAO,GAAGiiB,aAAa,CAACjiB,OAAO,CAAA;IACrC,MAAMsjB,MAAM,GAAG/Q,IAAI,KAAK,OAAO,GAAGvS,OAAO,CAACqC,KAAK,CAACa,OAAO,EAAE,GAAGlD,OAAO,CAACsC,GAAG,CAACY,OAAO,EAAE,CAAA;IACjFib,SAAS,CAACne,OAAO,GAAG;MAClBujB,SAAS,EAAE/f,KAAK,CAAC+f,SAAS;MAC1BhR,IAAI;MACJ4Q,IAAI;MACJ3K,YAAY,EAAE0K,aAAa,CAAC1f,KAAK,CAAC6U,OAAO,EAAE8K,IAAI,CAAC,GAAGG,MAAAA;KACpD,CAAA;IACD9E,cAAc,CAACxe,OAAO,GAAG,IAAI,CAAA;AAC7Bke,IAAAA,aAAa,CAAC;AAAE,MAAA,GAAGiF,IAAI;AAAE5Q,MAAAA,IAAAA;AAAK,KAAC,CAAC,CAAA;IAChC,IAAI;MACF/O,KAAK,CAAC6K,aAAa,CAACmV,iBAAiB,CAAChgB,KAAK,CAAC+f,SAAS,CAAC,CAAA;KACvD,CAAC,OAAOE,KAAK,EAAE;AACd;AAAA,KAAA;GAEH,CAAA;EAED,MAAMC,UAAU,GAAGlgB,KAAK,IAAI;AAC1B,IAAA,MAAMmgB,MAAM,GAAGxF,SAAS,CAACne,OAAO,CAAA;AAChC,IAAA,MAAMA,OAAO,GAAGiiB,aAAa,CAACjiB,OAAO,CAAA;IACrC,MAAMgW,IAAI,GAAGL,gBAAgB,CAAC;MAC5BpD,IAAI,EAAEoR,MAAM,CAACpR,IAAI;AACjBX,MAAAA,SAAS,EAAEsR,aAAa,CAAC1f,KAAK,CAAC6U,OAAO,EAAEsL,MAAM,CAACR,IAAI,CAAC,GAAGQ,MAAM,CAACnL,YAAY;AAC1EvI,MAAAA,OAAO,EAAEjQ,OAAO,CAACqC,KAAK,CAACa,OAAO,EAAE;AAChCgN,MAAAA,KAAK,EAAElQ,OAAO,CAACsC,GAAG,CAACY,OAAO,EAAE;MAC5BqR,IAAI,EAAEvU,OAAO,CAACuU,IAAI;MAClBN,UAAU,EAAEjU,OAAO,CAACiU,UAAU;MAC9BC,QAAQ,EAAElU,OAAO,CAACkU,QAAQ;MAC1B0B,WAAW;AACXC,MAAAA,WAAAA;AACF,KAAC,CAAC,CAAA;AACF,IAAA,IAAIG,IAAI,CAAC/F,OAAO,KAAKjQ,OAAO,CAACqC,KAAK,CAACa,OAAO,EAAE,IAAI8S,IAAI,CAAC7D,QAAQ,KAAKnS,OAAO,CAACmS,QAAQ,EAAE;AAClF,MAAA,OAAA;AACF,KAAA;IACAyQ,OAAO,CAACrN,gBAAgB,CAAC;MAAE,GAAGiK,UAAU,CAACxf,OAAO;MAAEqC,KAAK,EAAE2T,IAAI,CAAC/F,OAAO;MAAEkC,QAAQ,EAAE6D,IAAI,CAAC7D,QAAAA;AAAS,KAAC,CAAC,CAAC,CAAA;GACnG,CAAA;EAED,MAAMyR,SAAS,GAAGA,MAAM;AACtB,IAAA,MAAMD,MAAM,GAAGxF,SAAS,CAACne,OAAO,CAAA;IAChCme,SAAS,CAACne,OAAO,GAAG,IAAI,CAAA;IACxBwe,cAAc,CAACxe,OAAO,GAAG,KAAK,CAAA;AAC9B,IAAA,MAAMA,OAAO,GAAGiiB,aAAa,CAACjiB,OAAO,CAAA;AACrC,IAAA,MAAMqW,QAAQ,GAAGsN,MAAM,CAACR,IAAI,CAAClT,OAAO,GAAG0T,MAAM,CAACR,IAAI,CAAC/M,MAAM,GAAG,CAAC,CAAA;AAC7D,IAAA,MAAMyN,WAAW,GAAGxN,QAAQ,GAAIrW,OAAO,CAACmS,QAAQ,GAAG,EAAE,GAAG,IAAI,GAAI,CAAC,CAAA;IACjE4N,SAAS,CAAC/f,OAAO,GAAG6jB,WAAW,CAAA;IAC/B/D,WAAW,CAAC+D,WAAW,CAAC,CAAA;IACxB3F,aAAa,CAAC,IAAI,CAAC,CAAA;IACnBwD,kBAAkB,CAAC1hB,OAAO,CAACA,OAAO,CAACqC,KAAK,CAACa,OAAO,EAAE,CAAC,CAAA;GACpD,CAAA;EAED,MAAM4gB,aAAa,GAAGtgB,KAAK,IAAI;IAC7B,IAAIA,KAAK,CAACugB,MAAM,IAAI,IAAI,IAAIvgB,KAAK,CAACugB,MAAM,KAAK,CAAC,EAAE;AAC9C,MAAA,OAAA;AACF,KAAA;AACA,IAAA,MAAMC,MAAM,GAAGpC,YAAY,CAAC5hB,OAAO,EAAE,CAAA;IACrC,MAAMikB,QAAQ,GAAGpH,SAAS,IAAIrZ,KAAK,CAAC8R,MAAM,IAAI9R,KAAK,CAAC8R,MAAM,CAAC4O,OAAO,GAAG1gB,KAAK,CAAC8R,MAAM,CAAC4O,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAA;AAC/G,IAAA,IAAID,QAAQ,EAAE;MACZZ,WAAW,CAAC7f,KAAK,EAAEygB,QAAQ,CAACE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAA;AACtD,MAAA,OAAA;AACF,KAAA;IACA7F,OAAO,CAACte,OAAO,GAAG;MAChBujB,SAAS,EAAE/f,KAAK,CAAC+f,SAAS;MAC1Ba,MAAM,EAAE5gB,KAAK,CAAC6U,OAAO;AACrB3I,MAAAA,QAAQ,EAAEqQ,SAAS,CAAC/f,OAAO,IAAI,IAAI,GAAGiiB,aAAa,CAACjiB,OAAO,CAACqC,KAAK,CAACa,OAAO,EAAE,GAAG6c,SAAS,CAAC/f,OAAO;AAC/FqkB,MAAAA,KAAK,EAAE,KAAK;MACZL,MAAM;AACNpM,MAAAA,OAAO,EAAE,EAAA;KACV,CAAA;IACD4G,cAAc,CAACxe,OAAO,GAAG,IAAI,CAAA;IAC7B,IAAI;MACFwD,KAAK,CAAC6K,aAAa,CAACmV,iBAAiB,CAAChgB,KAAK,CAAC+f,SAAS,CAAC,CAAA;KACvD,CAAC,OAAOE,KAAK,EAAE;AACd;AAAA,KAAA;GAEH,CAAA;EAED,MAAMa,aAAa,GAAG9gB,KAAK,IAAI;IAC7B,IAAI2a,SAAS,CAACne,OAAO,EAAE;MACrB,IAAIme,SAAS,CAACne,OAAO,CAACujB,SAAS,KAAK/f,KAAK,CAAC+f,SAAS,EAAE;QACnDG,UAAU,CAAClgB,KAAK,CAAC,CAAA;AACnB,OAAA;AACA,MAAA,OAAA;AACF,KAAA;AACA,IAAA,MAAM+gB,IAAI,GAAGjG,OAAO,CAACte,OAAO,CAAA;IAC5B,IAAI,CAACukB,IAAI,IAAIA,IAAI,CAAChB,SAAS,KAAK/f,KAAK,CAAC+f,SAAS,EAAE;AAC/C,MAAA,OAAA;AACF,KAAA;IACA,MAAMiB,EAAE,GAAGhhB,KAAK,CAAC6U,OAAO,GAAGkM,IAAI,CAACH,MAAM,CAAA;AACtC,IAAA,IAAI,CAACG,IAAI,CAACF,KAAK,IAAInlB,IAAI,CAAC6c,GAAG,CAACyI,EAAE,CAAC,GAAGpJ,oBAAoB,EAAE;AACtD,MAAA,OAAA;AACF,KAAA;AACA,IAAA,IAAI,CAACmJ,IAAI,CAACF,KAAK,EAAE;MACfE,IAAI,CAACF,KAAK,GAAG,IAAI,CAAA;MACjBzG,WAAW,CAAC,IAAI,CAAC,CAAA;AACnB,KAAA;AACA,IAAA,MAAMwF,IAAI,GAAG/E,QAAQ,CAACre,OAAO,GAAGqe,QAAQ,CAACre,OAAO,CAACZ,qBAAqB,EAAE,GAAG;AAAEoM,MAAAA,KAAK,EAAE,CAAA;KAAG,CAAA;AACvF,IAAA,MAAM6G,OAAO,GAAImS,EAAE,IAAIpB,IAAI,CAAC5X,KAAK,IAAI,CAAC,CAAC,GAAIwW,OAAO,CAAChiB,OAAO,CAACoW,MAAM,CAAA;AACjE,IAAA,MAAMqO,KAAK,GAAGF,IAAI,CAAC7U,QAAQ,GAAG2C,OAAO,CAAA;AACrCkS,IAAAA,IAAI,CAAC3M,OAAO,CAACpS,IAAI,CAAC;MAAEuS,CAAC,EAAEvU,KAAK,CAACkhB,SAAS;AAAEjV,MAAAA,EAAE,EAAEgV,KAAAA;AAAM,KAAC,CAAC,CAAA;AACpD,IAAA,IAAIF,IAAI,CAAC3M,OAAO,CAACjR,MAAM,GAAG,EAAE,EAAE;AAC5B4d,MAAAA,IAAI,CAAC3M,OAAO,CAAC+M,KAAK,EAAE,CAAA;AACtB,KAAA;AACAzD,IAAAA,SAAS,CAAClhB,OAAO,CAACykB,KAAK,CAAC,CAAA;AACxB/C,IAAAA,kBAAkB,CAAC1hB,OAAO,CAACykB,KAAK,EAAE;AAAEhD,MAAAA,SAAS,EAAE,IAAA;AAAK,KAAC,CAAC,CAAA;GACvD,CAAA;EAED,MAAMmD,OAAO,GAAGphB,KAAK,IAAI;IACvB,IAAI2a,SAAS,CAACne,OAAO,EAAE;AACrB,MAAA,IAAI,CAACwD,KAAK,IAAI2a,SAAS,CAACne,OAAO,CAACujB,SAAS,KAAK/f,KAAK,CAAC+f,SAAS,EAAE;AAC7DK,QAAAA,SAAS,EAAE,CAAA;AACb,OAAA;AACA,MAAA,OAAA;AACF,KAAA;AACA,IAAA,MAAMW,IAAI,GAAGjG,OAAO,CAACte,OAAO,CAAA;AAC5B,IAAA,IAAI,CAACukB,IAAI,IAAK/gB,KAAK,IAAI+gB,IAAI,CAAChB,SAAS,KAAK/f,KAAK,CAAC+f,SAAU,EAAE;AAC1D,MAAA,OAAA;AACF,KAAA;IACAjF,OAAO,CAACte,OAAO,GAAG,IAAI,CAAA;IACtBwe,cAAc,CAACxe,OAAO,GAAG,KAAK,CAAA;IAC9B4d,WAAW,CAAC,KAAK,CAAC,CAAA;IAClB,IAAI2G,IAAI,CAACF,KAAK,EAAE;AACd,MAAA,MAAMQ,QAAQ,GAAGlE,UAAU,CAAC3gB,OAAO,IAAIwD,KAAK,GAAGmU,gBAAgB,CAAC4M,IAAI,CAAC3M,OAAO,EAAEpU,KAAK,CAACkhB,SAAS,CAAC,GAAG,CAAC,CAAA;AAClG,MAAA,MAAMI,UAAU,GAAGD,QAAQ,GAAGlE,UAAU,CAAC3gB,OAAO,CAAA;AAChD,MAAA,IAAId,IAAI,CAAC6c,GAAG,CAAC+I,UAAU,CAAC,IAAI7C,aAAa,CAACjiB,OAAO,CAACuU,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE;QAClEoN,UAAU,CAAC3hB,OAAO,CAAC+f,SAAS,CAAC/f,OAAO,GAAG8kB,UAAU,CAAC,CAAA;AACpD,OAAC,MAAM;AACLpD,QAAAA,kBAAkB,CAAC1hB,OAAO,CAACiiB,aAAa,CAACjiB,OAAO,CAACqC,KAAK,CAACa,OAAO,EAAE,CAAC,CAAA;AACnE,OAAA;AACF,KAAA;IACA,IAAI,CAACqhB,IAAI,CAACF,KAAK,IAAIE,IAAI,CAACP,MAAM,EAAE;AAC9B9C,MAAAA,SAAS,CAAClhB,OAAO,CAACukB,IAAI,CAAC7U,QAAQ,CAAC,CAAA;AAChCgS,MAAAA,kBAAkB,CAAC1hB,OAAO,CAACiiB,aAAa,CAACjiB,OAAO,CAACqC,KAAK,CAACa,OAAO,EAAE,CAAC,CAAA;AACjE,MAAA,OAAA;AACF,KAAA;AACA,IAAA,IAAI,CAACqhB,IAAI,CAACF,KAAK,IAAI7gB,KAAK,IAAIA,KAAK,CAACmF,IAAI,KAAK,WAAW,EAAE;AACtD,MAAA,MAAMya,IAAI,GAAG/E,QAAQ,CAACre,OAAO,GAAGqe,QAAQ,CAACre,OAAO,CAACZ,qBAAqB,EAAE,GAAG;AAAEuc,QAAAA,IAAI,EAAE,CAAC;AAAEnQ,QAAAA,KAAK,EAAE,CAAA;OAAG,CAAA;AAChG,MAAA,MAAM2X,IAAI,GAAGnB,OAAO,CAAChiB,OAAO,CAAA;MAC5B,MAAM+kB,SAAS,GAAG3M,aAAa,CAAC;QAC9BC,OAAO,EAAE7U,KAAK,CAAC6U,OAAO;QACtBC,QAAQ,EAAE8K,IAAI,CAACzH,IAAI;QACnBpD,SAAS,EAAE6K,IAAI,CAAC5X,KAAK;QACrBsK,YAAY,EAAEqN,IAAI,CAAClT,OAAO;QAC1B8F,UAAU,EAAEoN,IAAI,CAACjT,KAAAA;AACnB,OAAC,CAAC,CAAA;AACF,MAAA,MAAMlQ,OAAO,GAAGiiB,aAAa,CAACjiB,OAAO,CAAA;AACrCkhB,MAAAA,SAAS,CAAClhB,OAAO,CAAC+kB,SAAS,GAAI/kB,OAAO,CAACmS,QAAQ,GAAG,EAAE,GAAG,IAAI,GAAI,CAAC,CAAC,CAAA;AACnE,KAAA;GACD,CAAA;EAED,MAAMjF,SAAS,GAAG1J,KAAK,IAAI;IACzBoe,YAAY,CAAC5hB,OAAO,EAAE,CAAA;AACtB,IAAA,MAAMA,OAAO,GAAGiiB,aAAa,CAACjiB,OAAO,CAAA;AACrC,IAAA,MAAMglB,WAAW,GAAGhlB,OAAO,CAACuU,IAAI,CAAA;AAChC,IAAA,MAAM0Q,KAAK,GAAG;MACZC,SAAS,EAAE,CAACF,WAAW;MACvBG,SAAS,EAAE,CAACH,WAAW;AACvBI,MAAAA,UAAU,EAAEJ,WAAW;AACvBK,MAAAA,OAAO,EAAEL,WAAW;AACpBM,MAAAA,QAAQ,EAAE,CAACtlB,OAAO,CAACmS,QAAQ;MAC3BoT,MAAM,EAAEvlB,OAAO,CAACmS,QAAAA;KACjB,CAAA;IACD,IAAI3O,KAAK,CAACjC,GAAG,KAAK,MAAM,IAAIvB,OAAO,CAACiU,UAAU,EAAE;MAC9CzQ,KAAK,CAAC4J,cAAc,EAAE,CAAA;AACtB8T,MAAAA,SAAS,CAAClhB,OAAO,CAACA,OAAO,CAACiU,UAAU,CAAC,CAAA;AACrC,MAAA,OAAA;AACF,KAAA;IACA,IAAIzQ,KAAK,CAACjC,GAAG,KAAK,KAAK,IAAIvB,OAAO,CAACkU,QAAQ,EAAE;MAC3C1Q,KAAK,CAAC4J,cAAc,EAAE,CAAA;AACtB8T,MAAAA,SAAS,CAAClhB,OAAO,CAACA,OAAO,CAACkU,QAAQ,CAAC,CAAA;AACnC,MAAA,OAAA;AACF,KAAA;AACA,IAAA,IAAI,EAAE1Q,KAAK,CAACjC,GAAG,IAAI0jB,KAAK,CAAC,EAAE;AACzB,MAAA,OAAA;AACF,KAAA;IACAzhB,KAAK,CAAC4J,cAAc,EAAE,CAAA;AACtB,IAAA,MAAM2M,OAAO,GAAGvW,KAAK,CAACgiB,QAAQ,GAAGtmB,IAAI,CAAC8X,IAAI,CAACiO,KAAK,CAACzhB,KAAK,CAACjC,GAAG,CAAC,CAAC,GAAGrC,IAAI,CAACmB,GAAG,CAAC,EAAE,EAAE2kB,WAAW,CAAC,GAAGC,KAAK,CAACzhB,KAAK,CAACjC,GAAG,CAAC,CAAA;AAC3G2f,IAAAA,SAAS,CAAClhB,OAAO,CAACA,OAAO,CAACqC,KAAK,CAAC2C,GAAG,CAAC+U,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;GACxD,CAAA;AAEDvP,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,MAAMvL,IAAI,GAAGM,OAAO,CAACS,OAAO,CAAA;IAC5B,IAAI,CAACf,IAAI,EAAE;AACT,MAAA,OAAOY,SAAS,CAAA;AAClB,KAAA;IACA,MAAM4lB,OAAO,GAAGjiB,KAAK,IAAI;MACvB,IAAIqb,WAAW,CAAC7e,OAAO,EAAE;AACvB,QAAA,OAAA;AACF,OAAA;MACA,MAAM0lB,QAAQ,GAAGxmB,IAAI,CAAC6c,GAAG,CAACvY,KAAK,CAACmiB,MAAM,CAAC,GAAGzmB,IAAI,CAAC6c,GAAG,CAACvY,KAAK,CAACoiB,MAAM,CAAC,GAAGpiB,KAAK,CAACmiB,MAAM,GAAGniB,KAAK,CAACoiB,MAAM,CAAA;MAC9F,IAAI,CAACF,QAAQ,EAAE;AACb,QAAA,OAAA;AACF,OAAA;MACAliB,KAAK,CAAC4J,cAAc,EAAE,CAAA;AACtB,MAAA,MAAMpN,OAAO,GAAGiiB,aAAa,CAACjiB,OAAO,CAAA;AACrC,MAAA,MAAMuY,SAAS,GAAG8F,QAAQ,CAACre,OAAO,GAAGqe,QAAQ,CAACre,OAAO,CAACZ,qBAAqB,EAAE,CAACoM,KAAK,GAAGvM,IAAI,CAAC4mB,WAAW,CAAA;MACtG,MAAMjP,OAAO,GAAGN,cAAc,CAAC;AAAEC,QAAAA,KAAK,EAAEmP,QAAQ;QAAElP,SAAS,EAAEhT,KAAK,CAACgT,SAAS;AAAEC,QAAAA,UAAU,EAAE8B,SAAAA;AAAU,OAAC,CAAC,CAAA;MACtG,MAAM5I,MAAM,GAAG3P,OAAO,CAACuU,IAAI,GAAG,EAAE,GAAG,IAAI,CAAA;MACvC,MAAMsC,SAAS,GAAI0B,SAAS,GAAG5I,MAAM,GAAIqS,OAAO,CAAChiB,OAAO,CAACoW,MAAM,CAAA;AAC/D,MAAA,MAAMU,QAAQ,GAAGmF,eAAe,CAACzY,KAAK,EAAEoT,OAAO,CAAC,CAAA;MAChD,MAAM;QAAEO,KAAK;AAAER,QAAAA,aAAAA;OAAe,GAAGD,iBAAiB,CAAC;QACjDC,aAAa,EAAE4H,aAAa,CAACve,OAAO;QACpC4W,OAAO;QACPC,SAAS;AACTC,QAAAA,QAAAA;AACF,OAAC,CAAC,CAAA;MACFyH,aAAa,CAACve,OAAO,GAAG2W,aAAa,CAAA;MACrCwJ,cAAc,CAACngB,OAAO,GAAG,IAAI,CAAA;AAC7B6hB,MAAAA,YAAY,CAACzB,YAAY,CAACpgB,OAAO,CAAC,CAAA;AAClCogB,MAAAA,YAAY,CAACpgB,OAAO,GAAG+iB,UAAU,CAAC,MAAM;QACtC5C,cAAc,CAACngB,OAAO,GAAG,KAAK,CAAA;QAC9Bue,aAAa,CAACve,OAAO,GAAG,CAAC,CAAA;QACzBugB,YAAY,CAACvgB,OAAO,GAAG,IAAI,CAAA;QAC3BwgB,eAAe,CAACxgB,OAAO,GAAG,EAAE,CAAA;QAC5BygB,iBAAiB,CAACzgB,OAAO,GAAG,CAAC,CAAA;AAC7B,QAAA,IAAI,CAACsgB,UAAU,CAACtgB,OAAO,EAAE;AACvB0hB,UAAAA,kBAAkB,CAAC1hB,OAAO,CAACiiB,aAAa,CAACjiB,OAAO,CAACqC,KAAK,CAACa,OAAO,EAAE,CAAC,CAAA;AACnE,SAAA;OACD,EAAEqY,aAAa,CAAC,CAAA;AAEjB,MAAA,IAAIzE,QAAQ,IAAI6J,UAAU,CAAC3gB,OAAO,EAAE;QAClC,IAAI,CAACmX,KAAK,EAAE;AACV,UAAA,OAAA;AACF,SAAA;AACA,QAAA,MAAMS,OAAO,GAAG4I,eAAe,CAACxgB,OAAO,CAAA;QACvC,IAAIygB,iBAAiB,CAACzgB,OAAO,KAAKd,IAAI,CAAC8X,IAAI,CAACG,KAAK,CAAC,EAAE;UAClDS,OAAO,CAACjR,MAAM,GAAG,CAAC,CAAA;UAClB4Z,YAAY,CAACvgB,OAAO,GAAG,IAAI,CAAA;UAC3BygB,iBAAiB,CAACzgB,OAAO,GAAGd,IAAI,CAAC8X,IAAI,CAACG,KAAK,CAAC,CAAA;AAC9C,SAAA;AACA,QAAA,MAAM/N,IAAI,GAAGmX,YAAY,CAACvgB,OAAO,IAAI,IAAI,GAAGA,OAAO,CAACqC,KAAK,CAACa,OAAO,EAAE,GAAGqd,YAAY,CAACvgB,OAAO,CAAA;QAC1F,MAAM8lB,IAAI,GAAGvQ,gBAAgB,CAAC;AAAElT,UAAAA,KAAK,EAAE+G,IAAI,GAAG+N,KAAK,GAAGxH,MAAM;AAAE,UAAA,GAAG6P,UAAU,CAACxf,OAAAA;AAAQ,SAAC,CAAC,CAACqC,KAAK,CAACa,OAAO,EAAE,CAAA;QACtGqd,YAAY,CAACvgB,OAAO,GAAG8lB,IAAI,CAAA;QAC3BlO,OAAO,CAACpS,IAAI,CAAC;UAAEuS,CAAC,EAAEvU,KAAK,CAACkhB,SAAS;AAAEjV,UAAAA,EAAE,EAAEqW,IAAAA;AAAK,SAAC,CAAC,CAAA;AAC9C,QAAA,IAAIlO,OAAO,CAACjR,MAAM,GAAG,CAAC,EAAE;UACtBiR,OAAO,CAAC+M,KAAK,EAAE,CAAA;AACjB,SAAA;AACA,QAAA,MAAMG,UAAU,GAAGnN,gBAAgB,CAACC,OAAO,EAAEpU,KAAK,CAACkhB,SAAS,CAAC,GAAG/D,UAAU,CAAC3gB,OAAO,GAAGyb,mBAAmB,CAAA;AACxG,QAAA,IAAInG,MAAM,GAAGwQ,IAAI,GAAGhB,UAAU,CAAA;AAC9B,QAAA,MAAMiB,UAAU,GAAG/F,eAAe,CAAChgB,OAAO,CAAA;QAC1C,IAAI4X,OAAO,CAACjR,MAAM,GAAG,CAAC,IAAIof,UAAU,IAAI,IAAI,IAAI,CAACzQ,MAAM,GAAGyQ,UAAU,IAAItF,iBAAiB,CAACzgB,OAAO,GAAG,CAAC,EAAE;AACrGsV,UAAAA,MAAM,GAAGyQ,UAAU,CAAA;AACrB,SAAA;AACApE,QAAAA,UAAU,CAAC3hB,OAAO,CAACsV,MAAM,EAAEwP,UAAU,GAAGnE,UAAU,CAAC3gB,OAAO,GAAGwb,mBAAmB,CAAC,CAAA;AACjF,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,IAAIrE,KAAK,EAAE;AACT+J,QAAAA,SAAS,CAAClhB,OAAO,CAACA,OAAO,CAACqC,KAAK,CAACa,OAAO,EAAE,GAAGiU,KAAK,GAAGxH,MAAM,CAAC,CAAA;AAC7D,OAAA;AACA,MAAA,MAAMqW,UAAU,GAAGnP,SAAS,GAAG,CAAC,GAAIF,aAAa,GAAGE,SAAS,GAAIlH,MAAM,GAAG,CAAC,CAAA;AAC3E+R,MAAAA,kBAAkB,CAAC1hB,OAAO,CAACiiB,aAAa,CAACjiB,OAAO,CAACqC,KAAK,CAACa,OAAO,EAAE,GAAG8iB,UAAU,CAAC,CAAA;KAC/E,CAAA;AACD/mB,IAAAA,IAAI,CAACwB,gBAAgB,CAAC,OAAO,EAAEglB,OAAO,EAAE;AAAEQ,MAAAA,OAAO,EAAE,KAAA;AAAM,KAAC,CAAC,CAAA;IAC3D,OAAO,MAAMhnB,IAAI,CAACyB,mBAAmB,CAAC,OAAO,EAAE+kB,OAAO,CAAC,CAAA;GACxD,EAAE,EAAE,CAAC,CAAA;EAEN,MAAMS,YAAY,GAAGA,MAAM;AACzB,IAAA,MAAMlQ,IAAI,GAAG,CAAC6I,WAAW,CAAC7e,OAAO,CAAA;AACjC,IAAA,IAAIgW,IAAI,EAAE;MACR4L,YAAY,CAAC5hB,OAAO,EAAE,CAAA;AACxB,KAAA;IACA,IAAI,CAAC+d,gBAAgB,EAAE;MACrBD,cAAc,CAAC9H,IAAI,CAAC,CAAA;AACtB,KAAA;IACA,IAAI4I,iBAAiB,CAAC5e,OAAO,EAAE;AAC7B4e,MAAAA,iBAAiB,CAAC5e,OAAO,CAACgW,IAAI,CAAC,CAAA;AACjC,KAAA;GACD,CAAA;EAED,MAAMmQ,UAAU,GAAG5L,KAAK,CAACjZ,MAAM,CAAC8kB,IAAI,IAAIA,IAAI,CAACrL,SAAS,CAAC,CAAA;EACvD,MAAMsL,UAAU,GAAG,EAAE,CAAA;EACrB,IAAIvQ,YAAY,IAAI,IAAI,EAAE;AACxBuQ,IAAAA,UAAU,CAAC,eAAe,CAAC,GAAGvQ,YAAY,CAAA;AAC5C,GAAA;EACA,IAAIC,UAAU,IAAI,IAAI,EAAE;AACtBsQ,IAAAA,UAAU,CAAC,eAAe,CAAC,GAAGtQ,UAAU,GAAGZ,UAAU,CAAA;AACvD,GAAA;AAEA,EAAA,oBACE5L,eAAA,CAAA,KAAA,EAAA;AACEmC,IAAAA,GAAG,EAAEnM,OAAQ;AACbmI,IAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC7H,IAAI,EAAE6H,OAAK,CAAC,QAAQwD,IAAI,CAAA,CAAE,CAAC,EAAE1D,SAAS,EAAE;AAClE,MAAA,CAACE,OAAK,CAAC,eAAe,CAAC,GAAG+V,QAAQ;AAClC,MAAA,CAAC/V,OAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAACqW,UAAU;AACtC,MAAA,CAACrW,OAAK,CAAC,aAAa,CAAC,GAAGoW,QAAAA;AAC1B,KAAC,CAAE;AACHpW,IAAAA,KAAK,EAAEuV,SAAU;AAAApV,IAAAA,QAAA,gBAEjBwB,eAAA,CAAA,KAAA,EAAA;MAAK7B,SAAS,EAAEE,OAAK,CAAC0e,MAAO;AAAAve,MAAAA,QAAA,gBAC3BJ,cAAA,CAAA,KAAA,EAAA;QAAKD,SAAS,EAAEE,OAAK,CAACa,KAAM;AAAAV,QAAAA,QAAA,EAAEU,KAAAA;OAAW,CAAC,eAC1Cc,eAAA,CAAA,KAAA,EAAA;QAAK7B,SAAS,EAAEE,OAAK,CAAC2e,OAAQ;QAAAxe,QAAA,EAAA,CAC3BgV,QAAQ,gBACPpV,cAAA,CAAA,QAAA,EAAA;AACEgB,UAAAA,IAAI,EAAC,QAAQ;AACbqE,UAAAA,IAAI,EAAC,QAAQ;AACb,UAAA,cAAA,EAAc,CAACgR,QAAS;AACxB,UAAA,YAAA,EAAYjX,aAAa,CAAC;AAAErD,YAAAA,EAAE,EAAEsa,QAAQ,GAAG,mBAAmB,GAAG,qBAAA;AAAsB,WAAC,CAAE;AAC1FtW,UAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC4e,MAAM,EAAE;AAAE,YAAA,CAAC5e,OAAK,CAAC,WAAW,CAAC,GAAG,CAACoW,QAAAA;AAAS,WAAC,CAAE;AACzEtV,UAAAA,OAAO,EAAEwd,YAAa;UAAAne,QAAA,eAEtBJ,cAAA,CAAI,GAAA,EAAA,EAAA,CAAA;AAAC,SACC,CAAC,GACP,IAAI,EACPiV,YAAY,gBAAGjV,cAAA,CAAA,MAAA,EAAA;UAAMD,SAAS,EAAEE,OAAK,CAACuK,QAAS;AAAApK,UAAAA,QAAA,EAAE0a,YAAAA;SAAmB,CAAC,GAAG,IAAI,CAAA;AAAA,OAC1E,CAAC,CAAA;AAAA,KACH,CAAC,EACLzE,QAAQ,GAAG,IAAI,gBACdzU,eAAA,CAAA,KAAA,EAAA;MAAK7B,SAAS,EAAEE,OAAK,CAAC6e,KAAM;AAAA1e,MAAAA,QAAA,gBAC1BwB,eAAA,CAAA,KAAA,EAAA;AACEmC,QAAAA,GAAG,EAAE2S,QAAS;AACd3W,QAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC8e,KAAK,EAAE;AAAE,UAAA,CAAC9e,OAAK,CAAC,aAAa,CAAC,GAAGkV,WAAAA;AAAY,SAAC,CAAE;AAC5E9P,QAAAA,IAAI,EAAC,QAAQ;AACbC,QAAAA,QAAQ,EAAE,CAAE;AAAA,QAAA,GACRoZ,UAAU;AACd,QAAA,eAAA,EAAe5G,UAAU,CAACpd,KAAK,CAACa,OAAO,EAAG;AAC1C,QAAA,gBAAA,EAAgBsf,aAAc;AAC9BtV,QAAAA,SAAS,EAAEA,SAAU;AACrB4W,QAAAA,aAAa,EAAEA,aAAc;AAC7BQ,QAAAA,aAAa,EAAEA,aAAc;AAC7BqC,QAAAA,WAAW,EAAE/B,OAAQ;AACrBgC,QAAAA,eAAe,EAAEhC,OAAQ;AAAA7c,QAAAA,QAAA,EAExBqa,CAAAA,SAAS,GAAG,CAAC,gBAAGza,cAAA,CAAA,MAAA,EAAA;UAAMD,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAACif,KAAK,EAAEjf,OAAK,CAAC,aAAa,CAAC,CAAE;AAACA,UAAAA,KAAK,EAAE;YAAE4D,KAAK,EAAE,GAAG4W,SAAS,CAAA,CAAA,CAAA;AAAI,WAAA;SAAI,CAAC,GAAG,IAAI,EAC5HC,UAAU,GAAG,CAAC,gBAAG1a,cAAA,CAAA,MAAA,EAAA;UAAMD,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAACif,KAAK,EAAEjf,OAAK,CAAC,WAAW,CAAC,CAAE;AAACA,UAAAA,KAAK,EAAE;YAAE4D,KAAK,EAAE,GAAG6W,UAAU,CAAA,CAAA,CAAA;AAAI,WAAA;AAAE,SAAE,CAAC,GAAG,IAAI,eAC7H1a,cAAA,CAAA,KAAA,EAAA;UAAKD,SAAS,EAAEE,OAAK,CAAC2S,KAAM;AAAAxS,UAAAA,QAAA,EACzBwS,KAAK,CAAClX,GAAG,CAAC+iB,IAAI,iBACbze,cAAA,CAAA,MAAA,EAAA;AAEED,YAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAACwe,IAAI,EAAExe,OAAK,CAAC,QAAQwe,IAAI,CAACtL,KAAK,CAAA,CAAE,CAAC,EAAE;AAC7D,cAAA,CAAClT,OAAK,CAAC,UAAU,CAAC,GAAGwe,IAAI,CAACpL,UAAAA;AAC5B,aAAC,CAAE;AACHpT,YAAAA,KAAK,EAAE;AAAE+T,cAAAA,IAAI,EAAE,CAAGyK,EAAAA,IAAI,CAAC3N,KAAK,GAAG,GAAG,CAAA,CAAA,CAAA;AAAI,aAAA;WAJjC2N,EAAAA,IAAI,CAAC7kB,GAKX,CACF,CAAA;AAAC,SACC,CAAC,EACLub,WAAW,gBAAGnV,cAAA,CAAA,MAAA,EAAA;UAAMD,SAAS,EAAEE,OAAK,CAACkf,QAAS;UAAC,aAAY,EAAA,MAAA;AAAM,SAAE,CAAC,GAAG,IAAI,eAC5Enf,cAAA,CAAA,MAAA,EAAA;AACED,UAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAACpH,MAAM,EAAE;AAClC,YAAA,CAACoH,OAAK,CAAC,gBAAgB,CAAC,GAAGua,QAAQ,GAAGhH,cAAc;AACpD,YAAA,CAACvT,OAAK,CAAC,kBAAkB,CAAC,GAAGiV,SAAS;AACtC,YAAA,CAACjV,OAAK,CAAC,cAAc,CAAC,GAAG,CAACiV,SAAAA;AAC5B,WAAC,CAAE;AACHjV,UAAAA,KAAK,EAAE;YAAE+T,IAAI,EAAE,CAAGA,EAAAA,IAAI,CAAG,CAAA,CAAA;YAAEnQ,KAAK,EAAE,GAAGA,KAAK,CAAA,CAAA,CAAA;WAAM;AAAAzD,UAAAA,QAAA,EAE/C8U,SAAS,gBACRtT,eAAA,CAAAgZ,mBAAA,EAAA;AAAAxa,YAAAA,QAAA,gBACEJ,cAAA,CAAA,MAAA,EAAA;AAAM,cAAA,WAAA,EAAU,OAAO;AAAC,cAAA,aAAA,EAAY,MAAM;cAACD,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC2K,IAAI,EAAE3K,OAAK,CAAC,YAAY,CAAC,EAAE;AAAE,gBAAA,CAACA,OAAK,CAAC,aAAa,CAAC,GAAGwW,UAAU,KAAK,OAAA;eAAS,CAAA;aAAI,CAAC,eACzJzW,cAAA,CAAA,MAAA,EAAA;AAAM,cAAA,WAAA,EAAU,KAAK;AAAC,cAAA,aAAA,EAAY,MAAM;cAACD,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC2K,IAAI,EAAE3K,OAAK,CAAC,UAAU,CAAC,EAAE;AAAE,gBAAA,CAACA,OAAK,CAAC,aAAa,CAAC,GAAGwW,UAAU,KAAK,KAAA;eAAO,CAAA;AAAE,aAAE,CAAC,CAAA;AAAA,WACnJ,CAAC,GACD,IAAA;AAAI,SACJ,CAAC,CAAA;OACJ,CAAC,eACNzW,cAAA,CAAA,KAAA,EAAA;QAAKD,SAAS,EAAEE,OAAK,CAACmf,MAAO;AAAAhf,QAAAA,QAAA,EAC1Boe,UAAU,CAAC9iB,GAAG,CAAC+iB,IAAI,iBAClBze,cAAA,CAAA,MAAA,EAAA;AAEED,UAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC,YAAY,CAAC,EAAEA,OAAK,CAAC,cAAcwe,IAAI,CAACtL,KAAK,CAAA,CAAE,CAAC,EAAE;AAC5E,YAAA,CAAClT,OAAK,CAAC,UAAU,CAAC,GAAGwe,IAAI,CAACpL,UAAAA;AAC5B,WAAC,CAAE;AACHpT,UAAAA,KAAK,EAAE;AAAE+T,YAAAA,IAAI,EAAE,CAAGyK,EAAAA,IAAI,CAAC3N,KAAK,GAAG,GAAG,CAAA,CAAA,CAAA;WAAM;UAAA1Q,QAAA,EAEvCqe,IAAI,CAAC3d,KAAAA;SAND2d,EAAAA,IAAI,CAAC7kB,GAON,CACP,CAAA;AAAC,OACC,CAAC,CAAA;AAAA,KACH,CACN,CAAA;AAAA,GACE,CAAC,CAAA;AAEV,CAAC,CAAA;AAED,MAAMylB,UAAU,GAAG3oB,UAAU,CAACqe,eAAe;;AC/xB7C,MAAMuK,gBAAgB,GAAGA,MAAM;EAC7B,MAAM;AAAElgB,IAAAA,aAAAA;GAAe,GAAGiC,iBAAO,EAAE,CAAA;EACnC,oBACErB,cAAA,CAACuf,4BAAQ,EAAA;AACPpW,IAAAA,MAAM,EAAE,CAAE;AACVqW,IAAAA,IAAI,EAAE,cACJxf,cAAA,CAACyf,cAAK,EAAA;AAACC,MAAAA,IAAI,EAAC,OAAO;MAAC5e,KAAK,EAAE1B,aAAa,CAAC;AAAErD,QAAAA,EAAE,EAAE,wBAAA;AAAyB,OAAC,CAAE;AAAC4jB,MAAAA,IAAI,EAAC,KAAK;MAACC,WAAW,EAAExgB,aAAa,CAAC;AAAErD,QAAAA,EAAE,EAAE,mCAAA;AAAoC,OAAC,CAAE;MAAC8jB,KAAK,EAAA,IAAA;AAAA,KAAE,CAAC,eACxK7f,cAAA,CAAC8f,iBAAQ,EAAA;AAACJ,MAAAA,IAAI,EAAC,QAAQ;MAAC5e,KAAK,EAAE1B,aAAa,CAAC;AAAErD,QAAAA,EAAE,EAAE,yBAAA;AAA0B,OAAC,CAAE;MAAC6jB,WAAW,EAAExgB,aAAa,CAAC;AAAErD,QAAAA,EAAE,EAAE,oCAAA;AAAqC,OAAC,CAAE;MAAC8jB,KAAK,EAAA,IAAA;AAAA,KAAE,CAAC,CAAA;AACnK,GACH,CAAC,CAAA;AAEN,CAAC;;;;ACTD,MAAME,WAAW,GAAGA,CAAC;EAAElkB,KAAK;EAAE7B,IAAI;AAAE+K,EAAAA,YAAAA;AAAa,CAAC,KAAK;AACrD,EAAA,MAAMC,SAAS,GAAG,CAACnJ,KAAK,CAACY,QAAQ,KAAK,OAAOZ,KAAK,CAACkF,OAAO,KAAK,UAAU,IAAI,OAAOgE,YAAY,KAAK,UAAU,CAAC,CAAA;EAChH,MAAME,WAAW,GAAGA,MAAM;AACxB,IAAA,IAAI,OAAOpJ,KAAK,CAACkF,OAAO,KAAK,UAAU,EAAE;AACvClF,MAAAA,KAAK,CAACkF,OAAO,CAAClF,KAAK,EAAE;QAAE7B,IAAI;AAAE6C,QAAAA,IAAI,EAAE,UAAA;AAAW,OAAC,CAAC,CAAA;AAChD,MAAA,OAAA;AACF,KAAA;IACAkI,YAAY,GAAGlJ,KAAK,EAAE;MAAE7B,IAAI;AAAE6C,MAAAA,IAAI,EAAE,UAAA;AAAW,KAAC,CAAC,CAAA;GAClD,CAAA;AACD,EAAA,MAAMqI,QAAQ,GAAGP,gBAAgB,CAAC9I,KAAK,CAAC,CAAA;AACxC,EAAA,oBACE+F,eAAA,CAAA,KAAA,EAAA;AACE7B,IAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC,cAAc,CAAC,EAAE;AAAE,MAAA,CAACA,OAAK,CAAC,wBAAwB,CAAC,GAAG+E,SAAS;AAAE,MAAA,CAAC/E,OAAK,CAAC,uBAAuB,CAAC,GAAGpE,KAAK,CAACY,QAAAA;AAAS,KAAC,CAAE;AACjJwD,IAAAA,KAAK,EAAEpE,KAAK,CAAC8J,KAAK,GAAG;MAAE,wBAAwB,EAAE9J,KAAK,CAAC8J,KAAAA;AAAM,KAAC,GAAGzN,SAAU;AAC3EmN,IAAAA,IAAI,EAAEL,SAAS,GAAG,QAAQ,GAAG9M,SAAU;AACvCoN,IAAAA,QAAQ,EAAEN,SAAS,GAAG,CAAC,GAAG9M,SAAU;AACpC6I,IAAAA,OAAO,EAAEiE,SAAS,GAAGC,WAAW,GAAG/M,SAAU;AAC7CqN,IAAAA,SAAS,EACPP,SAAS,GACLgb,QAAQ,IAAI;MACV,IAAIA,QAAQ,CAACpmB,GAAG,KAAK,OAAO,IAAIomB,QAAQ,CAACpmB,GAAG,KAAK,GAAG,EAAE;QACpDomB,QAAQ,CAACva,cAAc,EAAE,CAAA;AACzBR,QAAAA,WAAW,EAAE,CAAA;AACf,OAAA;AACF,KAAC,GACD/M,SACL;AAAAkI,IAAAA,QAAA,gBAEDJ,cAAA,CAAA,MAAA,EAAA;MAAMD,SAAS,EAAEE,OAAK,CAAC,kBAAkB,CAAA;KAAI,CAAC,eAC9C2B,eAAA,CAAA,KAAA,EAAA;AAAK7B,MAAAA,SAAS,EAAEE,OAAK,CAAC,mBAAmB,CAAE;AAAAG,MAAAA,QAAA,gBACzCJ,cAAA,CAAA,KAAA,EAAA;AAAKD,QAAAA,SAAS,EAAEE,OAAK,CAAC,oBAAoB,CAAE;QAAAG,QAAA,EAAEvE,KAAK,CAACd,KAAAA;OAAW,CAAC,eAChEiF,cAAA,CAAA,KAAA,EAAA;AAAKD,QAAAA,SAAS,EAAEE,OAAK,CAAC,mBAAmB,CAAE;QAAAG,QAAA,EAAE3F,WAAW,CAACoB,KAAK,CAACnB,KAAK,EAAEmB,KAAK,CAAClB,GAAG,CAAA;AAAC,OAAM,CAAC,EACtFkB,KAAK,CAACb,MAAM,gBAAGgF,cAAA,CAAA,KAAA,EAAA;AAAKD,QAAAA,SAAS,EAAEE,OAAK,CAAC,mBAAmB,CAAE;QAAAG,QAAA,EAAEvE,KAAK,CAACb,MAAAA;OAAY,CAAC,GAAG,IAAI,EACtFkK,QAAQ,gBACPlF,cAAA,CAAC0F,QAAG,EAAA;AAAC3F,QAAAA,SAAS,EAAEE,OAAK,CAAC,kBAAkB,CAAE;QAAC0F,KAAK,EAAE9J,KAAK,CAAC8J,KAAM;AAAAvF,QAAAA,QAAA,EAC3D8E,QAAAA;OACE,CAAC,GACJ,IAAI,CAAA;AAAA,KACL,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV,CAAC;;ACrCD,MAAM+a,iBAAiB,GAAG,CAAC,CAAA;AAC3B,MAAMC,aAAa,GAAG,CAAC,CAAA;AACvB,MAAMC,aAAa,GAAG,GAAG,CAAA;AAEzB,MAAMC,QAAQ,GAAGA,CAAC;EAChBpmB,IAAI;EACJK,GAAG;EACHgmB,UAAU;EACVjiB,QAAQ;EACRkiB,QAAQ;EACRC,UAAU;EACVC,cAAc;EACd7W,QAAQ;EACR8W,SAAS;EACTC,gBAAgB;EAChBC,SAAS;EACT3K,QAAQ;EACR4K,WAAW;EACXC,WAAW;EACXC,gBAAgB;EAChBC,aAAa;EACbC,mBAAmB;EACnBC,eAAe;EACfC,iBAAiB;EACjBC,eAAe;EACfpc,YAAY;EACZqc,gBAAgB;EAChBC,kBAAkB;EAClBC,cAAc;AACdC,EAAAA,QAAAA;AACF,CAAC,KAAK;AACJ,EAAA,MAAMC,OAAO,GAAGxa,YAAM,CAAC,IAAI,CAAC,CAAA;AAC5B,EAAA,MAAMya,UAAU,GAAGza,YAAM,CAAC,IAAI,CAAC,CAAA;AAC/B,EAAA,MAAM0a,gBAAgB,GAAG1a,YAAM,CAAC,KAAK,CAAC,CAAA;AACtC,EAAA,MAAM2a,cAAc,GAAG3a,YAAM,CAAC,CAAC,CAAC,CAAA;EAChC,MAAM,CAAC4a,KAAK,EAAEC,QAAQ,CAAC,GAAG5pB,cAAQ,CAAC,IAAI,CAAC,CAAA;EACxC,MAAM,CAAC6pB,cAAc,EAAEC,iBAAiB,CAAC,GAAG9pB,cAAQ,CAAC,IAAI,CAAC,CAAA;AAC1D,EAAA,MAAM+pB,OAAO,GAAG3B,UAAU,IAAI,EAAE,GAAG3Y,WAAS,CAAC,CAAA;EAC7C,MAAMhQ,MAAM,GAAG,CAAC2C,GAAG,CAACkO,KAAK,GAAGlO,GAAG,CAACiO,OAAO,IAAI0Z,OAAO,CAAA;AAClD,EAAA,MAAMzX,MAAM,GAAGnM,QAAQ,GAAGsJ,WAAS,CAAA;AACnC,EAAA,MAAMM,MAAM,GAAGsY,QAAQ,GAAG5Y,WAAS,CAAA;AAEnC,EAAA,MAAMwI,MAAM,GAAGlJ,YAAM,CAAC,EAAE,CAAC,CAAA;EACzBkJ,MAAM,CAAC7X,OAAO,GAAG;IAAEgC,GAAG;IAAEsP,QAAQ;IAAEY,MAAM;IAAEvC,MAAM;IAAE0Y,gBAAgB;IAAEC,SAAS;IAAEM,eAAe;IAAEC,iBAAiB;IAAEC,eAAe;AAAEa,IAAAA,OAAAA;GAAS,CAAA;EAE7I,MAAMC,GAAG,GAAGna,EAAE,IAAI,CAACA,EAAE,GAAGzN,GAAG,CAACiO,OAAO,IAAI0Z,OAAO,CAAA;AAE9C,EAAA,MAAME,KAAK,GAAG3gB,aAAO,CAAC,MAAM;IAC1B,MAAMie,IAAI,GAAG,EAAE,CAAA;AACf,IAAA,KAAK,IAAI1X,EAAE,GAAGzN,GAAG,CAACiO,OAAO,EAAER,EAAE,IAAIzN,GAAG,CAACkO,KAAK,EAAET,EAAE,IAAIyC,MAAM,EAAE;MACxDiV,IAAI,CAAC3hB,IAAI,CAAC;QAAEiK,EAAE;QAAEoL,IAAI,EAAEjZ,yBAAK,CAAC6N,EAAE,CAAC,CAACkL,MAAM,EAAE,KAAK,CAAA;AAAE,OAAC,CAAC,CAAA;AACnD,KAAA;AACA,IAAA,OAAOwM,IAAI,CAAA;AACb,GAAC,EAAE,CAACnlB,GAAG,CAACkO,KAAK,EAAElO,GAAG,CAACiO,OAAO,EAAEiC,MAAM,CAAC,CAAC,CAAA;AAEpC,EAAA,MAAM6U,MAAM,GAAG7d,aAAO,CAAC,MAAM;IAC3B,MAAMie,IAAI,GAAG,EAAE,CAAA;AACf,IAAA,IAAI1M,MAAM,GAAG7Y,yBAAK,CAACI,GAAG,CAACiO,OAAO,CAAC,CAAA;AAC/B,IAAA,IAAIwK,MAAM,CAACE,MAAM,EAAE,KAAK,CAAC,EAAE;AACzBwM,MAAAA,IAAI,CAAC3hB,IAAI,CAACxD,GAAG,CAACiO,OAAO,CAAC,CAAA;AACtBwK,MAAAA,MAAM,GAAGA,MAAM,CAACzV,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC7C,OAAO,CAAC,MAAM,CAAC,CAAA;AAChD,KAAA;IACA,OAAOsY,MAAM,CAACvX,OAAO,EAAE,IAAIlB,GAAG,CAACkO,KAAK,EAAEuK,MAAM,GAAGA,MAAM,CAACzV,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;MACpEmiB,IAAI,CAAC3hB,IAAI,CAACiV,MAAM,CAACvX,OAAO,EAAE,CAAC,CAAA;AAC7B,KAAA;AACA,IAAA,IAAIikB,IAAI,CAACA,IAAI,CAACxgB,MAAM,GAAG,CAAC,CAAC,KAAK3E,GAAG,CAACkO,KAAK,EAAE;AACvCiX,MAAAA,IAAI,CAAC3hB,IAAI,CAACxD,GAAG,CAACkO,KAAK,CAAC,CAAA;AACtB,KAAA;AACA,IAAA,OAAOiX,IAAI,CAAA;GACZ,EAAE,CAACnlB,GAAG,CAACkO,KAAK,EAAElO,GAAG,CAACiO,OAAO,CAAC,CAAC,CAAA;AAE5B,EAAA,MAAM,CAAC0D,GAAG,EAAEmW,MAAM,CAAC,GAAGlqB,cAAQ,CAAC,MAAMmqB,IAAI,CAACpW,GAAG,EAAE,CAAC,CAAA;AAChDnJ,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,MAAMwf,KAAK,GAAGC,WAAW,CAAC,MAAMH,MAAM,CAACC,IAAI,CAACpW,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;AAC9D,IAAA,OAAO,MAAMuW,aAAa,CAACF,KAAK,CAAC,CAAA;GAClC,EAAE,EAAE,CAAC,CAAA;AACN,EAAA,MAAMG,OAAO,GAAGxW,GAAG,IAAI3R,GAAG,CAACiO,OAAO,IAAI0D,GAAG,IAAI3R,GAAG,CAACkO,KAAK,CAAA;EAEtD,MAAMka,WAAW,GAAGC,OAAO,IAAI;IAC7B,MAAMjH,IAAI,GAAG+F,OAAO,CAACnpB,OAAO,CAACZ,qBAAqB,EAAE,CAAA;IACpD,MAAM;AAAE4C,MAAAA,GAAG,EAAEsoB,UAAU;AAAEX,MAAAA,OAAO,EAAEY,SAAAA;KAAW,GAAG1S,MAAM,CAAC7X,OAAO,CAAA;AAC9D,IAAA,OAAOd,IAAI,CAAC6Q,GAAG,CAAC7Q,IAAI,CAACmB,GAAG,CAACiqB,UAAU,CAACra,OAAO,GAAG,CAACoa,OAAO,GAAGjH,IAAI,CAACoH,GAAG,IAAID,SAAS,EAAED,UAAU,CAACra,OAAO,CAAC,EAAEqa,UAAU,CAACpa,KAAK,GAAG,CAAC,CAAC,CAAA;GAC3H,CAAA;EAED,MAAMua,aAAa,GAAGA,MAAM;AAC1B,IAAA,MAAMC,OAAO,GAAGtB,UAAU,CAACppB,OAAO,CAAA;IAClC,IAAI,CAAC0qB,OAAO,EAAE;AACZ,MAAA,OAAA;AACF,KAAA;AACA7I,IAAAA,YAAY,CAAC6I,OAAO,CAACV,KAAK,CAAC,CAAA;IAC3BxpB,MAAM,CAACE,mBAAmB,CAAC,aAAa,EAAEgqB,OAAO,CAACC,MAAM,CAAC,CAAA;IACzDnqB,MAAM,CAACE,mBAAmB,CAAC,WAAW,EAAEgqB,OAAO,CAACE,IAAI,CAAC,CAAA;IACrDpqB,MAAM,CAACE,mBAAmB,CAAC,eAAe,EAAEgqB,OAAO,CAACG,QAAQ,CAAC,CAAA;IAC7DzB,UAAU,CAACppB,OAAO,GAAG,IAAI,CAAA;GAC1B,CAAA;AAEDwK,EAAAA,eAAS,CAAC,MAAMigB,aAAa,EAAE,EAAE,CAAC,CAAA;AAElCjgB,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,MAAMsgB,IAAI,GAAG3B,OAAO,CAACnpB,OAAO,CAAA;IAC5B,IAAI,CAAC8qB,IAAI,EAAE;AACT,MAAA,OAAOjrB,SAAS,CAAA;AAClB,KAAA;IACA,MAAMkrB,aAAa,GAAGvnB,KAAK,IAAI;AAC7B,MAAA,IAAI4lB,UAAU,CAACppB,OAAO,EAAEgrB,MAAM,EAAE;QAC9BxnB,KAAK,CAAC4J,cAAc,EAAE,CAAA;AACxB,OAAA;KACD,CAAA;IACD,MAAM6d,iBAAiB,GAAGznB,KAAK,IAAI;MACjC,IAAIumB,IAAI,CAACpW,GAAG,EAAE,GAAG2V,cAAc,CAACtpB,OAAO,GAAG,GAAG,EAAE;QAC7CwD,KAAK,CAAC4J,cAAc,EAAE,CAAA;AACxB,OAAA;KACD,CAAA;AACD0d,IAAAA,IAAI,CAACrqB,gBAAgB,CAAC,WAAW,EAAEsqB,aAAa,EAAE;AAAE9E,MAAAA,OAAO,EAAE,KAAA;AAAM,KAAC,CAAC,CAAA;AACrE6E,IAAAA,IAAI,CAACrqB,gBAAgB,CAAC,UAAU,EAAEwqB,iBAAiB,EAAE;AAAEhF,MAAAA,OAAO,EAAE,KAAA;AAAM,KAAC,CAAC,CAAA;AACxE,IAAA,OAAO,MAAM;AACX6E,MAAAA,IAAI,CAACpqB,mBAAmB,CAAC,WAAW,EAAEqqB,aAAa,CAAC,CAAA;AACpDD,MAAAA,IAAI,CAACpqB,mBAAmB,CAAC,UAAU,EAAEuqB,iBAAiB,CAAC,CAAA;KACxD,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;EAEN,MAAMC,iBAAiB,GAAG1nB,KAAK,IAAI;IACjC,IAAI,CAAC2lB,OAAO,CAACnpB,OAAO,EAAEmrB,QAAQ,CAAC3nB,KAAK,CAAC8R,MAAM,CAAC,EAAE;AAC5C,MAAA,OAAA;AACF,KAAA;AACA,IAAA,IAAI2T,cAAc,EAAE;AAClBA,MAAAA,cAAc,CAACjpB,OAAO,GAAG+pB,IAAI,CAACpW,GAAG,EAAE,CAAA;AACrC,KAAA;IACA,IAAInQ,KAAK,CAAC4nB,WAAW,KAAK,OAAO,IAAI5nB,KAAK,CAACugB,MAAM,KAAK,CAAC,EAAE;AACvD,MAAA,OAAA;AACF,KAAA;IACA,MAAM;AAAE/hB,MAAAA,GAAG,EAAEsoB,UAAU;AAAEhZ,MAAAA,QAAQ,EAAE+Z,eAAe;AAAE/C,MAAAA,SAAS,EAAEgD,gBAAgB;AAAEjD,MAAAA,gBAAgB,EAAEkD,KAAAA;KAAO,GAAG1T,MAAM,CAAC7X,OAAO,CAAA;IAC3H,MAAMikB,QAAQ,GAAGzgB,KAAK,CAAC8R,MAAM,CAAC4O,OAAO,CAAC,uBAAuB,CAAC,CAAA;IAC9D,MAAMsH,WAAW,GAAGhoB,KAAK,CAAC8R,MAAM,CAAC4O,OAAO,CAAC,2BAA2B,CAAC,CAAA;IACrE,MAAMuH,SAAS,GAAGjoB,KAAK,CAAC8R,MAAM,CAAC4O,OAAO,CAAC,uBAAuB,CAAC,CAAA;AAC/D,IAAA,MAAMtS,SAAS,GAAGwY,WAAW,CAAC5mB,KAAK,CAAC6mB,OAAO,CAAC,CAAA;AAC5C,IAAA,IAAIK,OAAO,CAAA;AACX,IAAA,IAAIzG,QAAQ,IAAIqH,gBAAgB,IAAIC,KAAK,EAAE;AACzCb,MAAAA,OAAO,GAAG;AAAE/hB,QAAAA,IAAI,EAAE,QAAQ;AAAE4J,QAAAA,IAAI,EAAE0R,QAAQ,CAACyH,OAAO,CAACC,aAAa;AAAEX,QAAAA,MAAM,EAAE,IAAA;OAAM,CAAA;AAClF,KAAC,MAAM,IAAIQ,WAAW,IAAIF,gBAAgB,EAAE;AAC1CZ,MAAAA,OAAO,GAAG;AAAE/hB,QAAAA,IAAI,EAAE,MAAM;AAAEqiB,QAAAA,MAAM,EAAE,IAAA;OAAM,CAAA;AAC1C,KAAC,MAAM;MACL,MAAMnZ,GAAG,GAAGR,UAAU,CAACO,SAAS,EAAEyZ,eAAe,EAAEf,UAAU,CAAC,CAAA;MAC9D,IAAI,CAACzY,GAAG,EAAE;AACR,QAAA,OAAA;AACF,OAAA;AACA6Y,MAAAA,OAAO,GAAG;AAAE/hB,QAAAA,IAAI,EAAE,QAAQ;QAAEkJ,GAAG;AAAEmZ,QAAAA,MAAM,EAAExnB,KAAK,CAAC4nB,WAAW,KAAK,OAAO;QAAEQ,OAAO,EAAE,CAAC,CAACH,SAAAA;OAAW,CAAA;AAChG,KAAA;AACA,IAAA,IAAIf,OAAO,CAAC/hB,IAAI,KAAK,QAAQ,EAAE;AAC7B,MAAA,MAAMkjB,MAAM,GAAGxa,UAAU,CAACia,gBAAgB,CAACrb,OAAO,EAAEob,eAAe,EAAEf,UAAU,CAAC,IAAIA,UAAU,CAAA;MAC9FI,OAAO,CAAC7Y,GAAG,GAAGga,MAAM,CAAA;MACpBnB,OAAO,CAACoB,MAAM,GAAGR,gBAAgB,CAAA;MACjC9nB,KAAK,CAAC4J,cAAc,EAAE,CAAA;AACxB,KAAA;AACAhM,IAAAA,MAAM,CAAC2qB,MAAM,CAACrB,OAAO,EAAE;MACrBnH,SAAS,EAAE/f,KAAK,CAAC+f,SAAS;MAC1B6H,WAAW,EAAE5nB,KAAK,CAAC4nB,WAAW;MAC9BhH,MAAM,EAAE5gB,KAAK,CAAC6U,OAAO;MACrB2T,MAAM,EAAExoB,KAAK,CAAC6mB,OAAO;AACrBpa,MAAAA,OAAO,EAAE2B,SAAS;AAClByS,MAAAA,KAAK,EAAE,KAAA;AACT,KAAC,CAAC,CAAA;IACFmF,QAAQ,CAAC,IAAI,CAAC,CAAA;AAEdkB,IAAAA,OAAO,CAACC,MAAM,GAAGsB,SAAS,IAAI;AAC5B,MAAA,IAAIA,SAAS,CAAC1I,SAAS,KAAKmH,OAAO,CAACnH,SAAS,EAAE;AAC7C,QAAA,OAAA;AACF,OAAA;MACA,MAAMiB,EAAE,GAAGyH,SAAS,CAAC5T,OAAO,GAAGqS,OAAO,CAACtG,MAAM,CAAA;MAC7C,MAAM8H,EAAE,GAAGD,SAAS,CAAC5B,OAAO,GAAGK,OAAO,CAACsB,MAAM,CAAA;AAC7C,MAAA,IAAI,CAACtB,OAAO,CAACM,MAAM,EAAE;QACnB,IAAI9rB,IAAI,CAACitB,KAAK,CAAC3H,EAAE,EAAE0H,EAAE,CAAC,GAAGrE,aAAa,EAAE;AACtC4C,UAAAA,aAAa,EAAE,CAAA;AACjB,SAAA;AACA,QAAA,OAAA;AACF,OAAA;AACA,MAAA,IAAI,CAACC,OAAO,CAACrG,KAAK,IAAInlB,IAAI,CAAC6c,GAAG,CAACmQ,EAAE,CAAC,GAAGtE,iBAAiB,EAAE;AACtD,QAAA,OAAA;AACF,OAAA;MACA,MAAM;AAAEjY,QAAAA,MAAM,EAAE4E,IAAI;AAAEvS,QAAAA,GAAG,EAAEkF,CAAC;AAAEmhB,QAAAA,gBAAgB,EAAE+D,SAAAA;OAAW,GAAGvU,MAAM,CAAC7X,OAAO,CAAA;AAC5E,MAAA,MAAMyP,EAAE,GAAG2a,WAAW,CAAC6B,SAAS,CAAC5B,OAAO,CAAC,CAAA;AACzC,MAAA,IAAIrU,IAAI,CAAA;AACR,MAAA,IAAI0U,OAAO,CAAC/hB,IAAI,KAAK,QAAQ,EAAE;QAC7B,IAAI,CAACyjB,SAAS,EAAE;AACd,UAAA,OAAA;AACF,SAAA;QACApW,IAAI,GAAGtE,oBAAoB,CAAC;UAAEC,QAAQ,EAAE+Y,OAAO,CAACza,OAAO;AAAE2B,UAAAA,SAAS,EAAEnC,EAAE;UAAEoC,GAAG,EAAE6Y,OAAO,CAAC7Y,GAAG;UAAEnC,QAAQ,EAAExI,CAAC,CAAC+I,OAAO;AAAEN,UAAAA,MAAM,EAAE4E,IAAAA;AAAK,SAAC,CAAC,CAAA;AAChI,OAAC,MAAM,IAAImW,OAAO,CAAC/hB,IAAI,KAAK,MAAM,EAAE;QAClCqN,IAAI,GAAG5D,kBAAkB,CAAC;UAAEhB,KAAK,EAAEsZ,OAAO,CAACoB,MAAM;AAAEzZ,UAAAA,OAAO,EAAE5C,EAAE,GAAGib,OAAO,CAACza,OAAO;UAAE4B,GAAG,EAAE6Y,OAAO,CAAC7Y,GAAG;UAAEnC,QAAQ,EAAExI,CAAC,CAAC+I,OAAO;AAAEN,UAAAA,MAAM,EAAE4E,IAAAA;AAAK,SAAC,CAAC,CAAA;AAC1I,OAAC,MAAM;QACLyB,IAAI,GAAG1D,oBAAoB,CAAC;UAAElB,KAAK,EAAEsZ,OAAO,CAACoB,MAAM;UAAEvZ,IAAI,EAAEmY,OAAO,CAACnY,IAAI;AAAEX,UAAAA,SAAS,EAAEnC,EAAE;UAAEoC,GAAG,EAAE6Y,OAAO,CAAC7Y,GAAG;UAAEnC,QAAQ,EAAExI,CAAC,CAAC+I,OAAO;AAAEN,UAAAA,MAAM,EAAE4E,IAAAA;AAAK,SAAC,CAAC,CAAA;AAChJ,OAAA;MACAmW,OAAO,CAACrG,KAAK,GAAG,IAAI,CAAA;MACpBqG,OAAO,CAACtZ,KAAK,GAAG4E,IAAI,CAAA;AACpB6B,MAAAA,MAAM,CAAC7X,OAAO,CAAC4oB,eAAe,CAAC5S,IAAI,CAAC,CAAA;KACrC,CAAA;AAED0U,IAAAA,OAAO,CAACE,IAAI,GAAGyB,OAAO,IAAI;AACxB,MAAA,IAAIA,OAAO,CAAC9I,SAAS,KAAKmH,OAAO,CAACnH,SAAS,EAAE;AAC3C,QAAA,OAAA;AACF,OAAA;AACAkH,MAAAA,aAAa,EAAE,CAAA;AACf,MAAA,IAAIC,OAAO,CAACU,WAAW,KAAK,OAAO,EAAE;AACnC9B,QAAAA,cAAc,CAACtpB,OAAO,GAAG+pB,IAAI,CAACpW,GAAG,EAAE,CAAA;AACrC,OAAA;MACA,MAAM;AAAEzB,QAAAA,MAAM,EAAEoa,IAAI;AAAEtqB,QAAAA,GAAG,EAAEkF,CAAC;AAAE2hB,QAAAA,iBAAiB,EAAE0D,MAAM;AAAEzD,QAAAA,eAAe,EAAE0D,WAAAA;OAAa,GAAG3U,MAAM,CAAC7X,OAAO,CAAA;MACxG,IAAI0qB,OAAO,CAACrG,KAAK,EAAE;QACjBgF,gBAAgB,CAACrpB,OAAO,GAAG,IAAI,CAAA;AAC/B+iB,QAAAA,UAAU,CAAC,MAAM;UACfsG,gBAAgB,CAACrpB,OAAO,GAAG,KAAK,CAAA;SACjC,EAAE,CAAC,CAAC,CAAA;AACLusB,QAAAA,MAAM,CAAC7B,OAAO,CAACtZ,KAAK,CAAC,CAAA;AACrB,QAAA,OAAA;AACF,OAAA;AACA,MAAA,IAAIsZ,OAAO,CAAC/hB,IAAI,KAAK,QAAQ,EAAE;AAC7B4jB,QAAAA,MAAM,CAAC7B,OAAO,CAACoB,MAAM,CAAC,CAAA;AACtB,QAAA,OAAA;AACF,OAAA;MACA,IAAIpB,OAAO,CAACkB,OAAO,EAAE;AACnB,QAAA,OAAA;AACF,OAAA;MACA,MAAMxa,KAAK,GAAGa,mBAAmB,CAAC;QAAEL,SAAS,EAAE8Y,OAAO,CAACza,OAAO;QAAE4B,GAAG,EAAE6Y,OAAO,CAAC7Y,GAAG;QAAEnC,QAAQ,EAAExI,CAAC,CAAC+I,OAAO;AAAEiC,QAAAA,MAAM,EAAEoa,IAAAA;AAAK,OAAC,CAAC,CAAA;AACtH,MAAA,MAAM5mB,SAAS,GAAG8J,UAAU,CAACkb,OAAO,CAACza,OAAO,EAAE;QAAEP,QAAQ,EAAExI,CAAC,CAAC+I,OAAO;AAAEN,QAAAA,MAAM,EAAE2c,IAAI;AAAE9nB,QAAAA,IAAI,EAAE,OAAA;AAAQ,OAAC,CAAC,CAAA;AACnGgoB,MAAAA,WAAW,GAAG;AAAEnqB,QAAAA,KAAK,EAAE,IAAI0nB,IAAI,CAACrkB,SAAS,CAAC;AAAEpD,QAAAA,GAAG,EAAE,IAAIynB,IAAI,CAAC7qB,IAAI,CAAC6Q,GAAG,CAACrK,SAAS,GAAG4mB,IAAI,EAAEplB,CAAC,CAACgJ,KAAK,CAAC,CAAA;AAAE,OAAC,CAAC,CAAA;MACjGqc,MAAM,CAACnb,KAAK,CAAC,CAAA;KACd,CAAA;AAEDsZ,IAAAA,OAAO,CAACG,QAAQ,GAAG4B,WAAW,IAAI;AAChC,MAAA,IAAIA,WAAW,CAAClJ,SAAS,KAAKmH,OAAO,CAACnH,SAAS,EAAE;AAC/C,QAAA,OAAA;AACF,OAAA;AACA,MAAA,MAAMmJ,QAAQ,GAAGhC,OAAO,CAACrG,KAAK,CAAA;AAC9BoG,MAAAA,aAAa,EAAE,CAAA;AACf,MAAA,IAAIiC,QAAQ,EAAE;QACZ7U,MAAM,CAAC7X,OAAO,CAAC6oB,iBAAiB,CAAC6B,OAAO,CAACtZ,KAAK,CAAC,CAAA;AACjD,OAAA;KACD,CAAA;AAED,IAAA,IAAI,CAACsZ,OAAO,CAACM,MAAM,EAAE;AACnBN,MAAAA,OAAO,CAACV,KAAK,GAAGjH,UAAU,CAAC,MAAM;QAC/B2H,OAAO,CAACM,MAAM,GAAG,IAAI,CAAA;AACrB2B,QAAAA,SAAS,CAACC,OAAO,GAAG,EAAE,CAAC,CAAA;QACvB,MAAM;AAAE5qB,UAAAA,GAAG,EAAEkF,CAAC;AAAEgL,UAAAA,MAAM,EAAEoa,IAAAA;SAAM,GAAGzU,MAAM,CAAC7X,OAAO,CAAA;QAC/C,MAAMoR,KAAK,GAAGa,mBAAmB,CAAC;UAAEL,SAAS,EAAE8Y,OAAO,CAACza,OAAO;UAAE4B,GAAG,EAAE6Y,OAAO,CAAC7Y,GAAG;UAAEnC,QAAQ,EAAExI,CAAC,CAAC+I,OAAO;AAAEiC,UAAAA,MAAM,EAAEoa,IAAAA;AAAK,SAAC,CAAC,CAAA;QACtH5B,OAAO,CAACrG,KAAK,GAAG,IAAI,CAAA;QACpBqG,OAAO,CAACtZ,KAAK,GAAGA,KAAK,CAAA;AACrBsZ,QAAAA,OAAO,CAACza,OAAO,GAAGmB,KAAK,CAACnB,OAAO,CAAA;AAC/B4H,QAAAA,MAAM,CAAC7X,OAAO,CAAC4oB,eAAe,CAACxX,KAAK,CAAC,CAAA;OACtC,EAAE0W,aAAa,CAAC,CAAA;AACnB,KAAA;AAEA2C,IAAAA,aAAa,EAAE,CAAA;IACfrB,UAAU,CAACppB,OAAO,GAAG0qB,OAAO,CAAA;IAC5BlqB,MAAM,CAACC,gBAAgB,CAAC,aAAa,EAAEiqB,OAAO,CAACC,MAAM,CAAC,CAAA;IACtDnqB,MAAM,CAACC,gBAAgB,CAAC,WAAW,EAAEiqB,OAAO,CAACE,IAAI,CAAC,CAAA;IAClDpqB,MAAM,CAACC,gBAAgB,CAAC,eAAe,EAAEiqB,OAAO,CAACG,QAAQ,CAAC,CAAA;GAC3D,CAAA;EAED,MAAMgC,WAAW,GAAGrpB,KAAK,IAAI;IAC3B,IAAIA,KAAK,CAAC4nB,WAAW,KAAK,OAAO,IAAIhC,UAAU,CAACppB,OAAO,IAAI,CAACmpB,OAAO,CAACnpB,OAAO,EAAEmrB,QAAQ,CAAC3nB,KAAK,CAAC8R,MAAM,CAAC,EAAE;AACnG,MAAA,OAAA;AACF,KAAA;IACA,IAAI9R,KAAK,CAAC8R,MAAM,CAAC4O,OAAO,CAAC,2BAA2B,CAAC,EAAE;MACrDsF,QAAQ,CAAC,IAAI,CAAC,CAAA;AACd,MAAA,OAAA;AACF,KAAA;AACA,IAAA,MAAM/Z,EAAE,GAAG2a,WAAW,CAAC5mB,KAAK,CAAC6mB,OAAO,CAAC,CAAA;IACrC,MAAMxY,GAAG,GAAGR,UAAU,CAAC5B,EAAE,EAAE6B,QAAQ,EAAEtP,GAAG,CAAC,CAAA;IACzC,IAAI,CAAC6P,GAAG,EAAE;MACR2X,QAAQ,CAAC,IAAI,CAAC,CAAA;AACd,MAAA,OAAA;AACF,KAAA;IACA,MAAMpY,KAAK,GAAGa,mBAAmB,CAAC;AAAEL,MAAAA,SAAS,EAAEnC,EAAE;MAAEoC,GAAG;MAAEnC,QAAQ,EAAE1N,GAAG,CAACiO,OAAO;AAAEiC,MAAAA,MAAAA;AAAO,KAAC,CAAC,CAAA;IACxFsX,QAAQ,CAACxpB,OAAO,IAAKA,OAAO,IAAIA,OAAO,CAACiQ,OAAO,KAAKmB,KAAK,CAACnB,OAAO,IAAIjQ,OAAO,CAACkQ,KAAK,KAAKkB,KAAK,CAAClB,KAAK,GAAGlQ,OAAO,GAAGoR,KAAM,CAAC,CAAA;GACvH,CAAA;EAED,MAAM0b,kBAAkB,GAAG3rB,IAAI,IAAI;IACjC,MAAM;AAAEqC,MAAAA,KAAAA;AAAM,KAAC,GAAGrC,IAAI,CAAA;AACtB,IAAA,IAAI4nB,gBAAgB,EAAE;MACpB,OAAOA,gBAAgB,CAACvlB,KAAK,EAAE;AAAEnB,QAAAA,KAAK,EAAE,IAAI0nB,IAAI,CAAC5oB,IAAI,CAAC8O,OAAO,CAAC;AAAE3N,QAAAA,GAAG,EAAE,IAAIynB,IAAI,CAAC5oB,IAAI,CAAC+O,KAAK,CAAA;AAAE,OAAC,CAAC,CAAA;AAC9F,KAAA;AACA,IAAA,IAAI8Y,kBAAkB,EAAE;AACtB,MAAA,OAAOA,kBAAkB,CAAC;AAAE3mB,QAAAA,KAAK,EAAE,IAAI0nB,IAAI,CAAC5oB,IAAI,CAAC8O,OAAO,CAAC;AAAE3N,QAAAA,GAAG,EAAE,IAAIynB,IAAI,CAAC5oB,IAAI,CAAC+O,KAAK,CAAC;AAAExJ,QAAAA,MAAM,EAAE,UAAU;QAAE7D,MAAM,EAAE,CAACW,KAAK,CAAA;AAAE,OAAC,EAAE;QAAEX,MAAM,EAAE,CAACW,KAAK,CAAA;AAAE,OAAC,CAAC,CAAA;AACnJ,KAAA;IACA,oBACE+F,eAAA,CAAAgZ,mBAAA,EAAA;AAAAxa,MAAAA,QAAA,gBACEJ,cAAA,CAAA,KAAA,EAAA;AAAKD,QAAAA,SAAS,EAAEE,OAAK,CAAC,sBAAsB,CAAE;QAAAG,QAAA,EAAEvE,KAAK,CAACd,KAAAA;OAAW,CAAC,eAClEiF,cAAA,CAAA,KAAA,EAAA;AAAKD,QAAAA,SAAS,EAAEE,OAAK,CAAC,qBAAqB,CAAE;QAAAG,QAAA,EAAE3F,WAAW,CAACoB,KAAK,CAACnB,KAAK,EAAEmB,KAAK,CAAClB,GAAG,CAAA;AAAC,OAAM,CAAC,CAAA;AAAA,KACzF,CAAC,CAAA;GAEN,CAAA;AAED,EAAA,MAAMyqB,cAAc,GAAGzE,SAAS,gBAC9B/e,eAAA,CAAA,KAAA,EAAA;AACE,IAAA,yBAAA,EAAwB,EAAE;AAC1B7B,IAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC,oBAAoB,CAAC,EAAE;AACjD,MAAA,CAACA,OAAK,CAAC,6BAA6B,CAAC,GAAG+V,QAAQ;MAChD,CAAC/V,OAAK,CAAC,6BAA6B,CAAC,GAAGwgB,SAAS,CAACzhB,MAAM,GAAG,CAAC;AAC5D,MAAA,CAACiB,OAAK,CAAC,4BAA4B,CAAC,GAAG,CAAC0gB,SAAS,CAACpY,KAAK,GAAGoY,SAAS,CAACrY,OAAO,IAAI0Z,OAAO,GAAG,EAAA;AAC3F,KAAC,CAAE;AACH/hB,IAAAA,KAAK,EAAE;AAAE4iB,MAAAA,GAAG,EAAEZ,GAAG,CAACtB,SAAS,CAACrY,OAAO,CAAC;AAAE5Q,MAAAA,MAAM,EAAEH,IAAI,CAACmB,GAAG,CAAC,CAACioB,SAAS,CAACpY,KAAK,GAAGoY,SAAS,CAACrY,OAAO,IAAI0Z,OAAO,EAAE,CAAC,CAAA;KAAI;IAAA5hB,QAAA,EAAA,CAE5GsgB,gBAAgB,gBAAG1gB,cAAA,CAAA,MAAA,EAAA;AAAM,MAAA,qBAAA,EAAoB,OAAO;MAACD,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC,yBAAyB,CAAC,EAAEA,OAAK,CAAC,+BAA+B,CAAC,CAAA;AAAE,KAAE,CAAC,GAAG,IAAI,eAChK2B,eAAA,CAAA,KAAA,EAAA;AAAK7B,MAAAA,SAAS,EAAEE,OAAK,CAAC,0BAA0B,CAAE;AAAAG,MAAAA,QAAA,gBAChDJ,cAAA,CAAA,MAAA,EAAA;QAAAI,QAAA,EAAO3F,WAAW,CAACkmB,SAAS,CAACrY,OAAO,EAAEqY,SAAS,CAACpY,KAAK,CAAA;AAAC,OAAO,CAAC,EAC7DkY,SAAS,CAACzhB,MAAM,gBAAGgB,cAAA,CAAA,MAAA,EAAA;AAAMD,QAAAA,SAAS,EAAEE,OAAK,CAAC,0BAA0B,CAAE;QAAAG,QAAA,EAAEqgB,SAAS,CAACzhB,MAAAA;OAAa,CAAC,GAAG,IAAI,CAAA;AAAA,KACrG,CAAC,EACL0hB,gBAAgB,gBAAG1gB,cAAA,CAAA,MAAA,EAAA;AAAM,MAAA,qBAAA,EAAoB,KAAK;MAACD,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC,yBAAyB,CAAC,EAAEA,OAAK,CAAC,6BAA6B,CAAC,CAAA;KAAI,CAAC,GAAG,IAAI,CAAA;GACzJ,CAAC,GACJ,IAAI,CAAA;AAER,EAAA,oBACE2B,eAAA,CAAA,KAAA,EAAA;AAAK7B,IAAAA,SAAS,EAAEE,OAAK,CAAC,UAAU,CAAE;AAACA,IAAAA,KAAK,EAAE;AAAEvI,MAAAA,MAAAA;KAAS;AAAA0I,IAAAA,QAAA,gBACnDJ,cAAA,CAAA,KAAA,EAAA;AAAKD,MAAAA,SAAS,EAAEE,OAAK,CAAC,eAAe,CAAE;MAAC,aAAW,EAAA,IAAA;AAAAG,MAAAA,QAAA,EAChDgf,MAAM,CAAC1jB,GAAG,CAACoM,EAAE,iBACZ9H,cAAA,CAAA,MAAA,EAAA;AAAeD,QAAAA,SAAS,EAAEE,OAAK,CAAC,qBAAqB,CAAE;AAACA,QAAAA,KAAK,EAAE;UAAE4iB,GAAG,EAAEZ,GAAG,CAACna,EAAE,CAAA;SAAI;QAAA1H,QAAA,EAC7EnG,yBAAK,CAAC6N,EAAE,CAAC,CAACvN,MAAM,CAACrD,WAAW,CAAA;AAAC,OAAA,EADrB4Q,EAEL,CACP,CAAA;KACE,CAAC,eACNlG,eAAA,CAAA,KAAA,EAAA;AACEmC,MAAAA,GAAG,EAAEyd,OAAQ;AACbzhB,MAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC,eAAe,CAAC,EAAE;AAAE,QAAA,CAACA,OAAK,CAAC,wBAAwB,CAAC,GAAG+V,QAAAA;AAAS,OAAC,CAAE;AAC/FmG,MAAAA,aAAa,EAAEoH,iBAAkB;AACjC5G,MAAAA,aAAa,EAAEuI,WAAY;AAC3BG,MAAAA,cAAc,EAAEA,MAAMxD,QAAQ,CAAC,IAAI,CAAE;MACrCyD,aAAa,EAAEzpB,KAAK,IAAI;QACtB,IAAI2lB,OAAO,CAACnpB,OAAO,EAAEmrB,QAAQ,CAAC3nB,KAAK,CAAC8R,MAAM,CAAC,EAAE;UAC3C9R,KAAK,CAAC4J,cAAc,EAAE,CAAA;AACxB,SAAA;OACA;MACF8f,cAAc,EAAE1pB,KAAK,IAAI;AACvB,QAAA,IAAI6lB,gBAAgB,CAACrpB,OAAO,IAAImpB,OAAO,CAACnpB,OAAO,EAAEmrB,QAAQ,CAAC3nB,KAAK,CAAC8R,MAAM,CAAC,EAAE;UACvE+T,gBAAgB,CAACrpB,OAAO,GAAG,KAAK,CAAA;UAChCwD,KAAK,CAAC2pB,eAAe,EAAE,CAAA;AACzB,SAAA;OACA;AAAAplB,MAAAA,QAAA,GAED8hB,KAAK,CAACxmB,GAAG,CAAC+pB,IAAI,iBACbzlB,cAAA,CAAA,MAAA,EAAA;AAAoBD,QAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC,eAAe,CAAC,EAAE;AAAE,UAAA,CAACA,OAAK,CAAC,oBAAoB,CAAC,GAAGwlB,IAAI,CAACvS,IAAAA;AAAK,SAAC,CAAE;AAACjT,QAAAA,KAAK,EAAE;AAAE4iB,UAAAA,GAAG,EAAEZ,GAAG,CAACwD,IAAI,CAAC3d,EAAE,CAAA;AAAE,SAAA;OAAjI2d,EAAAA,IAAI,CAAC3d,EAAgI,CACjJ,CAAC,EACD0Y,cAAc,CAAC9kB,GAAG,CAAC+N,KAAK,IAAI;QAC3B,MAAMoW,KAAK,gBACT7f,cAAA,CAAA,KAAA,EAAA;AAAyBD,UAAAA,SAAS,EAAEE,OAAK,CAAC,mBAAmB,CAAE;AAACA,UAAAA,KAAK,EAAE;AAAE4iB,YAAAA,GAAG,EAAEZ,GAAG,CAACxY,KAAK,CAACnB,OAAO,CAAC;YAAE5Q,MAAM,EAAE,CAAC+R,KAAK,CAAClB,KAAK,GAAGkB,KAAK,CAACnB,OAAO,IAAI0Z,OAAAA;WAAU;AAAA5hB,UAAAA,QAAA,EACjJqJ,KAAK,CAAC/M,MAAM,IAAI,CAAC+M,KAAK,CAAClB,KAAK,GAAGkB,KAAK,CAACnB,OAAO,IAAI0Z,OAAO,IAAI,EAAE,gBAAGhiB,cAAA,CAAA,MAAA,EAAA;AAAMD,YAAAA,SAAS,EAAEE,OAAK,CAAC,0BAA0B,CAAE;YAAAG,QAAA,EAAEqJ,KAAK,CAAC/M,MAAAA;AAAM,WAAO,CAAC,GAAG,IAAA;SADrI+M,EAAAA,KAAK,CAACnB,OAEX,CACN,CAAA;AACD,QAAA,OAAOmB,KAAK,CAAC/M,MAAM,gBACjBsD,cAAA,CAAC0lB,YAAO,EAAA;UAAqB3qB,KAAK,EAAE0O,KAAK,CAAC/M,MAAO;AAAA0D,UAAAA,QAAA,EAC9Cyf,KAAAA;AAAK,SAAA,EADMpW,KAAK,CAACnB,OAEX,CAAC,GAEVuX,KACD,CAAA;AACH,OAAC,CAAC,EACDU,UAAU,CAAC7kB,GAAG,CAAClC,IAAI,IAAI;AACtB,QAAA,MAAMI,GAAG,GAAG,CAAGJ,EAAAA,IAAI,CAACqC,KAAK,CAACE,EAAE,CAAIvC,CAAAA,EAAAA,IAAI,CAAC8O,OAAO,CAAE,CAAA,CAAA;QAC9C,MAAMqd,WAAW,GAAG,CAACnsB,IAAI,CAAC+O,KAAK,GAAG/O,IAAI,CAAC8O,OAAO,IAAI0Z,OAAO,CAAA;QACzD,oBACEhiB,cAAA,CAACiD,YAAO,EAAA;AAEN2iB,UAAAA,KAAK,EAAE,KAAM;AACbxiB,UAAAA,OAAO,EAAC,OAAO;AACfC,UAAAA,SAAS,EAAEke,QAAQ,GAAG,QAAQ,GAAG,MAAO;AACxCje,UAAAA,aAAa,EAAErD,OAAK,CAAC,kBAAkB,CAAE;UACzCiD,IAAI,EAAE4e,cAAc,KAAKloB,GAAI;UAC7BuJ,YAAY,EAAED,IAAI,IAAI6e,iBAAiB,CAAC7e,IAAI,GAAGtJ,GAAG,GAAG,IAAI,CAAE;UAC3D2J,OAAO,eAAEvD,cAAA,CAAC+f,WAAW,EAAA;YAAClkB,KAAK,EAAErC,IAAI,CAACqC,KAAM;AAAC7B,YAAAA,IAAI,EAAEA,IAAK;AAAC+K,YAAAA,YAAY,EAAEA,YAAAA;AAAa,WAAE,CAAE;AAAA3E,UAAAA,QAAA,eAEpFJ,cAAA,CAAA,KAAA,EAAA;AACE,YAAA,qBAAA,EAAoB,EAAE;AACtBD,YAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC,gBAAgB,CAAC,EAAE;cAC7C,CAACA,OAAK,CAAC,yBAAyB,CAAC,GAAGzG,IAAI,CAACqC,KAAK,CAACY,QAAQ;AACvD,cAAA,CAACwD,OAAK,CAAC,wBAAwB,CAAC,GAAG0lB,WAAW,GAAG,EAAA;AACnD,aAAC,CAAE;AACH1lB,YAAAA,KAAK,EAAE;AACL4iB,cAAAA,GAAG,EAAEZ,GAAG,CAACzoB,IAAI,CAAC8O,OAAO,CAAC;cACtB5Q,MAAM,EAAEH,IAAI,CAACmB,GAAG,CAACitB,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC;cACpC3R,IAAI,EAAE,CAASxa,KAAAA,EAAAA,IAAI,CAAC2P,MAAM,GAAG3P,IAAI,CAAC0P,OAAO,GAAI,GAAG,CAAU,QAAA,CAAA;AAC1DrF,cAAAA,KAAK,EAAE,CAAQ,KAAA,EAAA,GAAG,GAAGrK,IAAI,CAAC0P,OAAO,CAAU,QAAA,CAAA;AAC3C,cAAA,IAAI1P,IAAI,CAACqC,KAAK,CAAC8J,KAAK,GAAG;AAAE,gBAAA,wBAAwB,EAAEnM,IAAI,CAACqC,KAAK,CAAC8J,KAAAA;AAAM,eAAC,GAAG,IAAI,CAAA;aAC5E;YAAAvF,QAAA,EAED+kB,kBAAkB,CAAC3rB,IAAI,CAAA;WACrB,CAAA;AAAC,SAAA,EAxBDI,GAyBE,CAAC,CAAA;AAEd,OAAC,CAAC,EACDgoB,KAAK,IAAI,CAACjB,SAAS,gBAClB/e,eAAA,CAAA,KAAA,EAAA;AAAK7B,QAAAA,SAAS,EAAEE,OAAK,CAAC,gBAAgB,CAAE;AAACA,QAAAA,KAAK,EAAE;AAAE4iB,UAAAA,GAAG,EAAEZ,GAAG,CAACL,KAAK,CAACtZ,OAAO,CAAC;UAAE5Q,MAAM,EAAE,CAACkqB,KAAK,CAACrZ,KAAK,GAAGqZ,KAAK,CAACtZ,OAAO,IAAI0Z,OAAAA;SAAU;AAAA5hB,QAAAA,QAAA,EAAC,CAAA,IAC1H,EAACnG,yBAAK,CAAC2nB,KAAK,CAACtZ,OAAO,CAAC,CAAC/N,MAAM,CAACrD,WAAW,CAAC,CAAA;AAAA,OACxC,CAAC,GACJ,IAAI,EACPsrB,OAAO,gBAAGxiB,cAAA,CAAA,MAAA,EAAA;AAAMD,QAAAA,SAAS,EAAEE,OAAK,CAAC,cAAc,CAAE;AAACA,QAAAA,KAAK,EAAE;UAAE4iB,GAAG,EAAEZ,GAAG,CAACjW,GAAG,CAAA;AAAE,SAAA;AAAE,OAAE,CAAC,GAAG,IAAI,EACrFoZ,cAAc,EACdxE,WAAW,IAAIG,aAAa,gBAC3B/gB,cAAA,CAACiD,YAAO,EAAA;AAAC2iB,QAAAA,KAAK,EAAE,KAAM;AAACxiB,QAAAA,OAAO,EAAC,OAAO;AAACC,QAAAA,SAAS,EAAEyd,gBAAiB;AAACxd,QAAAA,aAAa,EAAErD,OAAK,CAAC,kBAAkB,CAAE;AAACiD,QAAAA,IAAI,EAAE2d,WAAW,IAAI,CAAC7K,QAAS;AAAC7S,QAAAA,YAAY,EAAE6d,mBAAoB;AAACzd,QAAAA,OAAO,EAAEqd,WAAY;QAACiF,eAAe,EAAA,IAAA;AAAAzlB,QAAAA,QAAA,eACpNJ,cAAA,CAAA,MAAA,EAAA;UAAM,aAAW,EAAA,IAAA;AAACD,UAAAA,SAAS,EAAEE,OAAK,CAAC,yBAAyB,CAAE;AAACA,UAAAA,KAAK,EAAE;AAAE4iB,YAAAA,GAAG,EAAEZ,GAAG,CAAClB,aAAa,CAACzY,OAAO,CAAC;YAAE5Q,MAAM,EAAE,CAACqpB,aAAa,CAACxY,KAAK,GAAGwY,aAAa,CAACzY,OAAO,IAAI0Z,OAAAA;AAAQ,WAAA;SAAI,CAAA;OACtK,CAAC,GACR,IAAI,CAAA;AAAA,KACL,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV,CAAC;;ACsJM,SAAS8D,MAAMA,CAACC,IAAI,EAAEC,OAAO,EAAE;EACrC,IAAI;AACH,IAAA,IAAIzpB,MAAM,GAAGwpB,IAAI,EAAE,CAAA;GACnB,CAAC,OAAMrd,CAAC,EAAE;IACV,OAAOsd,OAAO,CAACtd,CAAC,CAAC,CAAA;AAClB,GAAA;AACA,EAAA,IAAInM,MAAM,IAAIA,MAAM,CAAC0pB,IAAI,EAAE;IAC1B,OAAO1pB,MAAM,CAAC0pB,IAAI,CAAC,KAAK,CAAC,EAAED,OAAO,CAAC,CAAA;AACpC,GAAA;AACA,EAAA,OAAOzpB,MAAM,CAAA;AACd,CAAA;AA3iBA,MAAM2pB,aAAa,GAAGA,CAAC;EACrBlsB,IAAI;EACJ2E,KAAK;AACLzD,EAAAA,MAAM,EAAEiJ,SAAS;EACjB9F,QAAQ;EACRC,MAAM;EACNF,QAAQ;EACRkiB,QAAQ;EACRD,UAAU;EACV8F,aAAa;EACbvf,OAAO;EACP8Z,gBAAgB;EAChB0F,iBAAiB;EACjBjF,eAAe;EACfkF,QAAQ;EACRC,SAAS;EACTC,SAAS;EACT1rB,iBAAiB;EACjBumB,gBAAgB;EAChBC,kBAAkB;EAClBxa,iBAAiB;AACjB9B,EAAAA,YAAAA;AACF,CAAC,KAAK;EACJ,MAAM;AAAE3F,IAAAA,aAAAA;GAAe,GAAGiC,iBAAO,EAAE,CAAA;AACnC,EAAA,MAAMkgB,QAAQ,GAAGiF,2BAAW,EAAE,CAAA;AAC9B,EAAA,MAAMpgB,SAAS,GAAGY,YAAM,CAAC,IAAI,CAAC,CAAA;AAC9B,EAAA,MAAMsa,cAAc,GAAGta,YAAM,CAAC,CAAC,CAAC,CAAA;AAChC,EAAA,MAAMyf,WAAW,GAAGzf,YAAM,CAAC,CAAC,CAAC,CAAA;EAC7B,MAAM,CAAC2Z,SAAS,EAAE+F,YAAY,CAAC,GAAGzuB,cAAQ,CAAC,IAAI,CAAC,CAAA;EAChD,MAAM,CAAC+d,QAAQ,EAAEC,WAAW,CAAC,GAAGhe,cAAQ,CAAC,KAAK,CAAC,CAAA;EAC/C,MAAM,CAAC4oB,WAAW,EAAE8F,cAAc,CAAC,GAAG1uB,cAAQ,CAAC,KAAK,CAAC,CAAA;EACrD,MAAM,CAAC6oB,gBAAgB,EAAE8F,mBAAmB,CAAC,GAAG3uB,cAAQ,CAAC,MAAM,CAAC,CAAA;EAChE,MAAM,CAAC8oB,aAAa,EAAE8F,gBAAgB,CAAC,GAAG5uB,cAAQ,CAAC,IAAI,CAAC,CAAA;AAExD,EAAA,MAAMoC,GAAG,GAAGkH,aAAO,CAAC,OAAO;IAAE+G,OAAO,EAAEnO,YAAY,CAACH,IAAI,EAAEqE,QAAQ,CAAC,CAAC9C,OAAO,EAAE;IAAEgN,KAAK,EAAEpO,YAAY,CAACH,IAAI,EAAEsE,MAAM,CAAC,CAAC/C,OAAO,EAAC;GAAG,CAAC,EAAE,CAACvB,IAAI,EAAEsE,MAAM,EAAED,QAAQ,CAAC,CAAC,CAAA;AACvJ,EAAA,MAAMnD,MAAM,GAAGqG,aAAO,CAAC,MAAMtG,iBAAiB,CAACkJ,SAAS,IAAI,EAAE,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC,CAAA;AAC7E,EAAA,MAAMoc,UAAU,GAAGhf,aAAO,CAAC,MAAM8G,oBAAoB,CAACnN,MAAM,EAAEb,GAAG,CAAC,EAAE,CAACA,GAAG,EAAEa,MAAM,CAAC,CAAC,CAAA;AAClF,EAAA,MAAMslB,cAAc,GAAGjf,aAAO,CAAC,MAAM8H,kBAAkB,CAAC1K,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC,CAAA;EACxE,MAAMgL,QAAQ,GAAGpI,aAAO,CAAC,MAAMiI,UAAU,CAAC2c,aAAa,GAAG3F,cAAc,GAAG,CAAC,GAAGA,cAAc,EAAE,GAAGD,UAAU,CAAC,CAAC,EAAE,CAAC4F,aAAa,EAAE3F,cAAc,EAAED,UAAU,CAAC,CAAC,CAAA;EAC5J,MAAME,SAAS,GAAGlf,aAAO,CACvB,MACEwJ,qBAAqB,CACnB4V,SAAS,EACTJ,UAAU,CAAC7kB,GAAG,CAAClC,IAAI,IAAIA,IAAI,CAACqC,KAAK,CACnC,CAAC,EACH,CAAC0kB,UAAU,EAAEI,SAAS,CACxB,CAAC,CAAA;AACD,EAAA,MAAMzW,GAAG,GAAIyW,SAAS,IAAIjX,UAAU,CAACiX,SAAS,CAACrY,OAAO,EAAEqB,QAAQ,EAAEtP,GAAG,CAAC,IAAKA,GAAG,CAAA;AAC9E,EAAA,MAAMysB,WAAW,GAAGvlB,aAAO,CAAC,MAAM,CAAC,IAAI6gB,IAAI,CAAClY,GAAG,CAAC5B,OAAO,CAAC,EAAE,IAAI8Z,IAAI,CAAClY,GAAG,CAAC3B,KAAK,CAAC,CAAC,EAAE,CAAC2B,GAAG,CAAC5B,OAAO,EAAE4B,GAAG,CAAC3B,KAAK,CAAC,CAAC,CAAA;EAEzG,MAAMxB,WAAW,GAAGF,iBAAiB,GAAG;AAAE7M,IAAAA,IAAI,EAAEA,IAAI,CAACiD,MAAM,EAAE;AAAEJ,IAAAA,IAAI,EAAE,UAAU;AAAE3B,IAAAA,MAAAA;AAAO,GAAC,CAAC,CAAA;EAC1F,MAAM;IAAEmL,QAAQ;AAAEG,IAAAA,QAAAA;GAAU,GAAGN,oBAAoB,CAAClM,IAAI,CAACO,MAAM,CAACtD,WAAW,CAAC,EAAEmP,SAAS,CAAC,CAAA;EAExF,MAAM2gB,cAAc,GAAGtd,KAAK,KAAK;AAC/BzP,IAAAA,IAAI,EAAEA,IAAI,CAACiD,MAAM,EAAE;IACnBvC,KAAK,EAAE+O,KAAK,GAAG,IAAI2Y,IAAI,CAAC3Y,KAAK,CAACnB,OAAO,CAAC,GAAG,IAAI;IAC7C3N,GAAG,EAAE8O,KAAK,GAAG,IAAI2Y,IAAI,CAAC3Y,KAAK,CAAClB,KAAK,CAAC,GAAG,IAAI;AACzC5J,IAAAA,KAAK,EAAEqM,oBAAoB,CAACvB,KAAK,EAAE9K,KAAK,CAAC;AACzC8hB,IAAAA,SAAS,EAAE1V,qBAAqB,CAC9BtB,KAAK,EACL8W,UAAU,CAAC7kB,GAAG,CAAClC,IAAI,IAAIA,IAAI,CAACqC,KAAK,CACnC,CAAA;AACF,GAAC,CAAC,CAAA;EAEF,MAAMmrB,SAAS,GAAGvd,KAAK,IAAI;AACzB,IAAA,IAAIA,KAAK,EAAE;AACT2c,MAAAA,iBAAiB,GAAGpb,oBAAoB,CAACvB,KAAK,EAAE9K,KAAK,CAAC,EAAE;AAAEsoB,QAAAA,MAAM,EAAE,QAAQ;AAAEvsB,QAAAA,KAAK,EAAE,IAAI0nB,IAAI,CAAC3Y,KAAK,CAACnB,OAAO,CAAC;AAAE3N,QAAAA,GAAG,EAAE,IAAIynB,IAAI,CAAC3Y,KAAK,CAAClB,KAAK,CAAA;AAAE,OAAC,CAAC,CAAA;AAC3I,KAAC,MAAM;MACL6d,iBAAiB,GAAG,EAAE,EAAE;AAAEa,QAAAA,MAAM,EAAE,OAAA;AAAQ,OAAC,CAAC,CAAA;AAC9C,KAAA;GACD,CAAA;EAED,MAAMC,cAAc,GAAGA,MAAM;IAC3BP,cAAc,CAAC,KAAK,CAAC,CAAA;IACrBE,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACtB5Q,WAAW,CAAC,KAAK,CAAC,CAAA;AAClB,IAAA,IAAI0K,SAAS,EAAE;MACb+F,YAAY,CAAC,IAAI,CAAC,CAAA;MAClBM,SAAS,CAAC,IAAI,CAAC,CAAA;AACjB,KAAA;GACD,CAAA;EAED,MAAMG,eAAe,GAAG1d,KAAK,IAAI;IAC/BwM,WAAW,CAAC,KAAK,CAAC,CAAA;IAClB,IAAI,CAACxM,KAAK,EAAE;AACV,MAAA,OAAA;AACF,KAAA;IACA,IAAI,CAACoX,WAAW,EAAE;MAChB,MAAM/oB,OAAO,GAAG,CAAC,CAACsO,SAAS,CAAC/N,OAAO,EAAEkkB,OAAO,CAAC,kCAAkC,CAAC,CAAA;AAChFqK,MAAAA,mBAAmB,CAAC9uB,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAA;MAChD+uB,gBAAgB,CAACpd,KAAK,CAAC,CAAA;AACzB,KAAA;IACAid,YAAY,CAACjd,KAAK,CAAC,CAAA;AACnBgd,IAAAA,WAAW,CAACpuB,OAAO,GAAG+pB,IAAI,CAACpW,GAAG,EAAE,CAAA;IAChC2a,cAAc,CAAC,IAAI,CAAC,CAAA;IACpBK,SAAS,CAACvd,KAAK,CAAC,CAAA;GACjB,CAAA;AAED,EAAA,MAAM2d,WAAW,GAAGL,cAAc,CAACpG,SAAS,CAAC,CAAA;AAC7C,EAAA,MAAMC,WAAW,GAAGD,SAAS,gBAC3B/e,eAAA,CAAA,KAAA,EAAA;AAAK7B,IAAAA,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC,cAAc,CAAC,EAAE;AAAE,MAAA,CAACA,OAAK,CAAC,oBAAoB,CAAC,GAAGshB,QAAAA;AAAS,KAAC,CAAE;AAAAnhB,IAAAA,QAAA,gBAC7FJ,cAAA,CAAA,KAAA,EAAA;AAAKD,MAAAA,SAAS,EAAEE,OAAK,CAAC,oBAAoB,CAAE;MAAAG,QAAA,EAAEhB,aAAa,CAAC;AAAErD,QAAAA,EAAE,EAAE,gCAAA;OAAkC,CAAA;AAAC,KAAM,CAAC,eAC5G6F,eAAA,CAACylB,aAAI,EAAA;AAAA,MAAA,GACCd,SAAS;AAAA,MAAA,IACRhF,QAAQ,GAAG;AAAE9d,QAAAA,IAAI,EAAE,OAAA;AAAQ,OAAC,GAAG,IAAI,CAAA;MACxC1D,SAAS,EAAE5G,UAAU,CAAC8G,OAAK,CAAC,mBAAmB,CAAC,EAAEsmB,SAAS,EAAExmB,SAAS,CAAE;AACxEunB,MAAAA,IAAI,EAAE1sB,oBAAoB,CAACC,iBAAiB,EAAEusB,WAAW,CAAE;MAC3DG,QAAQ,EAAA,UAAQvrB,MAAM,EAAA;QAAA,IAAI;UAAA,MAAAwrB,KAAA,GAAA1B,MAAA,CACpB,YAAA;AAAA,YAAA,OAAA2B,OAAA,CAAAC,OAAA,CACIrB,QAAQ,GAAGrqB,MAAM,EAAE+qB,cAAc,CAACpG,SAAS,CAAC,CAAC,EAAAsF,IAAA,CAAA,YAAA;AACnDiB,cAAAA,cAAc,EAAE,CAAA;AAAC,aAAA,CAAA,CAAA;WAClB,EAAA,YAAA,EAAA,CAAA,CAAA;AAAA,UAAA,OAAAO,OAAA,CAAAC,OAAA,CAAAF,KAAA,IAAAA,KAAA,CAAAvB,IAAA,GAAAuB,KAAA,CAAAvB,IAAA,CAAA,YAAA,EAAA,CAAA,GAAA,KAAA,CAAA,CAAA,CAAA;AAGH,SAAC,QAAAvd,CAAA,EAAA;AAAA,UAAA,OAAA+e,OAAA,CAAAE,MAAA,CAAAjf,CAAA,CAAA,CAAA;AAAA,SAAA;OAAC;AAAAtI,MAAAA,QAAA,gBAEFwB,eAAA,CAAA,KAAA,EAAA;AAAK7B,QAAAA,SAAS,EAAEE,OAAK,CAAC,mBAAmB,CAAE;QAAAG,QAAA,EAAA,cACzCJ,cAAA,CAACqf,UAAU,EAAA;AACTtf,UAAAA,SAAS,EAAEE,OAAK,CAAC,kBAAkB,CAAE;AACrCwD,UAAAA,IAAI,EAAE8d,QAAQ,GAAG,SAAS,GAAG,OAAQ;AACrCxnB,UAAAA,KAAK,EAAE,CAAC,IAAIqoB,IAAI,CAACzB,SAAS,CAACrY,OAAO,CAAC,EAAE,IAAI8Z,IAAI,CAACzB,SAAS,CAACpY,KAAK,CAAC,CAAE;AAChEkB,UAAAA,KAAK,EAAEqd,WAAY;AACnBla,UAAAA,IAAI,EAAE0T,QAAS;AACfrS,UAAAA,WAAW,EAAEqS,QAAS;AACtBpL,UAAAA,SAAS,EAAEwL,gBAAiB;AAC5B1L,UAAAA,YAAY,EAAE,GAAI;AAClBza,UAAAA,MAAM,EAAC,OAAO;AACdgX,UAAAA,SAAS,EAAC,KAAK;UACfpV,QAAQ,EAAEpC,KAAK,IAAI;YACjB,IAAI,CAACA,KAAK,EAAE;AACV,cAAA,OAAA;AACF,aAAA;AACA,YAAA,MAAM0P,KAAK,GAAG;cAAEnB,OAAO,EAAEvO,KAAK,CAAC,CAAC,CAAC,CAAC6tB,OAAO,EAAE;AAAErf,cAAAA,KAAK,EAAExO,KAAK,CAAC,CAAC,CAAC,CAAC6tB,OAAO,EAAC;aAAG,CAAA;YACxElB,YAAY,CAACjd,KAAK,CAAC,CAAA;YACnBud,SAAS,CAACvd,KAAK,CAAC,CAAA;AAClB,WAAA;SACD,CAAC,EACDgX,SAAS,CAACzhB,MAAM,gBACfgB,cAAA,CAAC6nB,UAAK,EAAA;AAAC9nB,UAAAA,SAAS,EAAEE,OAAK,CAAC,eAAe,CAAE;AAACe,UAAAA,IAAI,EAAC,SAAS;UAAC8mB,QAAQ,EAAA,IAAA;UAAC/sB,KAAK,EAAE,CAAGqE,EAAAA,aAAa,CAAC;AAAErD,YAAAA,EAAE,EAAE,wBAAA;AAAyB,WAAC,EAAE;YAAEyI,KAAK,EAAEic,SAAS,CAACzhB,MAAAA;AAAO,WAAC,CAAC,CAAIyhB,CAAAA,EAAAA,SAAS,CAAC/kB,GAAG,CAACG,KAAK,IAAIA,KAAK,CAACd,KAAK,CAAC,CAAClB,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA;SAAK,CAAC,GAC7M,IAAI,EACPysB,SAAS,iBAAItmB,cAAA,CAACsf,gBAAgB,EAAA,EAAE,CAAC,CAAA;OAC/B,CAAC,eACN1d,eAAA,CAAA,KAAA,EAAA;AAAK7B,QAAAA,SAAS,EAAEE,OAAK,CAAC,cAAc,CAAE;QAAAG,QAAA,EAAA,cACpCJ,cAAA,CAAC0D,WAAM,EAAA;AAAC3C,UAAAA,OAAO,EAAEmmB,cAAe;UAAA9mB,QAAA,EAAEhB,aAAa,CAAC;AAAErD,YAAAA,EAAE,EAAE,sBAAA;WAAwB,CAAA;AAAC,SAAS,CAAC,eACzFiE,cAAA,CAAC+nB,qBAAY,EAAA;UAAA3nB,QAAA,EAAEhB,aAAa,CAAC;AAAErD,YAAAA,EAAE,EAAE,oBAAA;WAAsB,CAAA;AAAC,SAAe,CAAC,CAAA;AAAA,OACvE,CAAC,CAAA;AAAA,KACF,CAAC,CAAA;GACJ,CAAC,GACJ,IAAI,CAAA;EAER,oBACE6F,eAAA,CAACqF,SAAI,EAAA;AAACC,IAAAA,QAAQ,EAAE,KAAM;AAACnM,IAAAA,KAAK,EAAEgM,WAAW,iBAAI/G,cAAA,CAAC4F,UAAU,EAAA;AAAC5L,MAAAA,IAAI,EAAEA,IAAK;MAAC6L,QAAQ,EAAEzG,aAAa,CAAC;AAAErD,QAAAA,EAAE,EAAE,8BAAA;OAAgC,CAAA;AAAE,KAAE,CAAE;AAACgE,IAAAA,SAAS,EAAEioB,UAAU,CAAC,YAAY,CAAE;IAAA5nB,QAAA,EAAA,cAC5KJ,cAAA,CAACmH,SAAI,EAAA;MAACC,QAAQ,EAAE,CAAC,CAACR,OAAQ;AAACzN,MAAAA,UAAU,EAAE;AAAEf,QAAAA,IAAI,EAAE4vB,UAAU,CAAC,YAAY,CAAC;QAAE3gB,SAAS,EAAE2gB,UAAU,CAAC,sBAAsB,CAAA;OAAI;AAAA5nB,MAAAA,QAAA,eACvHwB,eAAA,CAAA,KAAA,EAAA;AAAKmC,QAAAA,GAAG,EAAEqC,SAAU;AAACrG,QAAAA,SAAS,EAAEE,OAAK,CAAC,OAAO,CAAE;AAACuG,QAAAA,QAAQ,EAAEA,QAAS;QAAApG,QAAA,EAAA,cACjEJ,cAAA,CAACgG,iBAAiB,EAAA;AAACC,UAAAA,OAAO,EAAEI,QAAAA;AAAS,SAAE,CAAC,eACxCrG,cAAA,CAACogB,QAAQ,EAAA;AACPpmB,UAAAA,IAAI,EAAEA,IAAI,CAACiD,MAAM,EAAG;AACpB5C,UAAAA,GAAG,EAAEA,GAAI;AACTgmB,UAAAA,UAAU,EAAEA,UAAW;AACvBjiB,UAAAA,QAAQ,EAAEA,QAAS;AACnBkiB,UAAAA,QAAQ,EAAEA,QAAS;AACnBC,UAAAA,UAAU,EAAEA,UAAW;AACvBC,UAAAA,cAAc,EAAEA,cAAe;AAC/B7W,UAAAA,QAAQ,EAAEA,QAAS;AACnB8W,UAAAA,SAAS,EAAEA,SAAU;AACrBC,UAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,UAAAA,SAAS,EAAEA,SAAU;AACrB3K,UAAAA,QAAQ,EAAEA,QAAS;AACnB4K,UAAAA,WAAW,EAAEW,QAAQ,GAAG,IAAI,GAAGX,WAAY;AAC3CW,UAAAA,QAAQ,EAAEA,QAAS;AACnBV,UAAAA,WAAW,EAAEA,WAAY;AACzBC,UAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,UAAAA,aAAa,EAAEA,aAAc;AAC7BO,UAAAA,cAAc,EAAEA,cAAe;UAC/BN,mBAAmB,EAAE9d,IAAI,IAAI;AAC3B,YAAA,IAAIA,IAAI,EAAE;cACRyjB,cAAc,CAAC,IAAI,CAAC,CAAA;AACpB,cAAA,OAAA;AACF,aAAA;YACA,IAAIvE,IAAI,CAACpW,GAAG,EAAE,GAAGsV,cAAc,CAACjpB,OAAO,GAAG,GAAG,EAAE;AAC7C,cAAA,OAAA;AACF,aAAA;AACA6uB,YAAAA,cAAc,EAAE,CAAA;WAChB;UACFjG,eAAe,EAAExX,KAAK,IAAI;YACxBwM,WAAW,CAAC,IAAI,CAAC,CAAA;YACjByQ,YAAY,CAACjd,KAAK,CAAC,CAAA;WACnB;AACFyX,UAAAA,iBAAiB,EAAEiG,eAAgB;AACnChG,UAAAA,eAAe,EAAEvkB,IAAI,IAAIukB,eAAe,GAAG;AAAE,YAAA,GAAGvkB,IAAI;AAAEhD,YAAAA,GAAG,EAAE,CAAGI,EAAAA,IAAI,CAACO,MAAM,CAACtD,WAAW,CAAC,CAAI2F,CAAAA,EAAAA,IAAI,CAAClC,KAAK,CAACktB,OAAO,EAAE,CAAE,CAAA;AAAE5tB,YAAAA,IAAI,EAAEA,IAAI,CAACO,MAAM,CAACtD,WAAW,CAAC;AAAE8H,YAAAA,MAAM,EAAE,MAAM;AAAE7D,YAAAA,MAAM,EAAE,EAAA;AAAG,WAAC,CAAE;AAChL6J,UAAAA,YAAY,EAAEA,YAAa;AAC3Bqc,UAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,UAAAA,kBAAkB,EAAEA,kBAAAA;AAAmB,SACxC,CAAC,CAAA;OACC,CAAA;AAAC,KACF,CAAC,EACNE,QAAQ,gBACPvhB,cAAA,CAACioB,WAAM,EAAA;AACL5kB,MAAAA,SAAS,EAAC,QAAQ;AAClBI,MAAAA,IAAI,EAAC,MAAM;AACXykB,MAAAA,QAAQ,EAAE,KAAM;AAChB5kB,MAAAA,aAAa,EAAErD,OAAK,CAAC,YAAY,CAAE;MACnCiD,IAAI,EAAE,CAAC,CAACyd,SAAS,IAAIE,WAAW,IAAI,CAAC7K,QAAS;MAC9CmS,OAAO,EAAEA,MAAM;QACb,IAAI/F,IAAI,CAACpW,GAAG,EAAE,GAAGya,WAAW,CAACpuB,OAAO,GAAG,GAAG,EAAE;AAC1C,UAAA,OAAA;AACF,SAAA;AACA6uB,QAAAA,cAAc,EAAE,CAAA;OAChB;MACFrB,eAAe,EAAA,IAAA;AAAAzlB,MAAAA,QAAA,EAEdwgB,WAAAA;KACK,CAAC,GACP,IAAI,CAAA;AAAA,GACJ,CAAC,CAAA;AAEX,CAAC;;;;ACvND3mB,yBAAK,CAACgR,MAAM,CAACC,qCAAiB,CAAC,CAAA;AAE/B,MAAMkd,mBAAmB,GAAGA,CAAC;EAAEC,WAAW;EAAExrB,IAAI;EAAEC,YAAY;EAAEC,gBAAgB;AAAEC,EAAAA,iBAAAA;AAAkB,CAAC,KAAK;AACxG,EAAA,MAAMsrB,KAAK,GAAG,IAAI3sB,GAAG,EAAE,CAAA;AACvB,EAAA,MAAM4sB,UAAU,GAAGF,WAAW,CAAC7tB,OAAO,CAAC,OAAO,CAAC,CAAA;AAC/C,EAAA,MAAMguB,QAAQ,GAAGH,WAAW,CAACI,KAAK,CAAC,OAAO,CAAC,CAAA;EAC3C,IAAI3V,MAAM,GAAGyV,UAAU,CAAA;AACvB,EAAA,OAAOzV,MAAM,CAACnV,QAAQ,CAAC6qB,QAAQ,CAAC,IAAI1V,MAAM,CAAClV,MAAM,CAAC4qB,QAAQ,EAAE,KAAK,CAAC,EAAE;IAClEF,KAAK,CAACxsB,GAAG,CACPgX,MAAM,CAACvY,MAAM,CAACtD,WAAW,CAAC,EAC1B0F,SAAS,CAAC;AACR3C,MAAAA,IAAI,EAAE8Y,MAAM;MACZjW,IAAI;MACJC,YAAY;MACZC,gBAAgB;AAChBC,MAAAA,iBAAAA;AACF,KAAC,CACH,CAAC,CAAA;IACD8V,MAAM,GAAGA,MAAM,CAACzV,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AAC/B,GAAA;AACA,EAAA,OAAOirB,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAMI,qBAAqB,GAAGtsB,KAAK,IAAI;EACrC,MAAM;AACJS,IAAAA,IAAI,GAAG,MAAM;AACb3B,IAAAA,MAAM,GAAG,EAAE;IACX0L,OAAO;IACP9J,YAAY;IACZC,gBAAgB;IAChBC,iBAAiB;AACjBsH,IAAAA,aAAa,GAAG,CAAC;AACjBlG,IAAAA,QAAQ,GAAG,EAAE;AACbC,IAAAA,QAAQ,GAAG,OAAO;AAClBC,IAAAA,MAAM,GAAG,OAAO;AAChBgiB,IAAAA,QAAQ,GAAG,CAAC;AACZD,IAAAA,UAAU,GAAG,EAAE;AACf8F,IAAAA,aAAa,GAAG,KAAK;IACrBzF,gBAAgB,GAAG7jB,IAAI,KAAK,UAAU;IACtC0H,cAAc;IACdO,eAAe;IACfsc,gBAAgB;IAChBC,kBAAkB;IAClBxa,iBAAiB;IACjByf,SAAS;IACTC,SAAS;IACT1rB,iBAAiB;IACjB8tB,YAAY;IACZ5jB,YAAY;IACZoc,eAAe;IACfiF,iBAAiB;IACjBC,QAAQ;IACRtmB,SAAS;AACTE,IAAAA,KAAK,EAAE2oB,UAAU;AACjB5kB,IAAAA,OAAO,GAAG7M,uBAAuB;AACjC0xB,IAAAA,mBAAmB,GAAG,IAAI;IAC1BC,aAAa;AACbC,IAAAA,UAAAA;AACF,GAAC,GAAG3sB,KAAK,CAAA;AACT,EAAA,MAAMxE,OAAO,GAAGoP,YAAM,CAAC,IAAI,CAAC,CAAA;AAC5B,EAAA,MAAMnP,WAAW,GAAGmP,YAAM,CAAC,IAAI,CAAC,CAAA;AAChC,EAAA,MAAMlP,OAAO,GAAGgM,gBAAgB,CAAClM,OAAO,EAAEoM,OAAO,CAAC,CAAA;AAClD,EAAA,MAAMglB,iBAAiB,GAAGnsB,IAAI,KAAK,MAAM,IAAI,CAACgsB,mBAAmB,CAAA;AACjE,EAAA,MAAMI,kBAAkB,GAAGtxB,qBAAqB,CAACC,OAAO,EAAEC,WAAW,EAAEC,OAAO,IAAI,CAACkxB,iBAAiB,CAAC,CAAA;EACrG,MAAM,CAACjvB,KAAK,EAAEmvB,QAAQ,CAAC,GAAG7sB,mCAAe,CAACD,KAAK,CAAC,CAAA;AAChD,EAAA,MAAMmC,YAAY,GAAGgD,aAAO,CAAC,MAAMzH,OAAO,CAACC,KAAK,CAAC,IAAIE,yBAAK,EAAE,EAAE,CAACF,KAAK,CAAC,CAAC,CAAA;AACtE,EAAA,MAAM,CAAC1B,OAAO,EAAE8wB,UAAU,CAAC,GAAGltB,kBAAkB,CAAC;IAC/ClC,KAAK,EAAEqC,KAAK,CAAC/D,OAAO;AACpB6D,IAAAA,YAAY,EAAEE,KAAK,CAACgtB,cAAc,IAAI7qB,YAAY;IAClDpC,QAAQ,EAAEC,KAAK,CAAC8F,eAAAA;AAClB,GAAC,CAAC,CAAA;AACF,EAAA,MAAMmmB,WAAW,GAAG9mB,aAAO,CAAC,MAAMzH,OAAO,CAACzB,OAAO,CAAC,IAAIkG,YAAY,EAAE,CAAClG,OAAO,EAAEkG,YAAY,CAAC,CAAC,CAAA;AAC5F,EAAA,MAAM8qB,UAAU,GAAG9nB,aAAO,CAAC,MAAMjE,iBAAiB,CAACpC,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC,CAAA;EACrE,MAAMouB,cAAc,GAAG/nB,aAAO,CAAC,MAAM8nB,UAAU,CAAC9qB,YAAY,CAAChE,MAAM,CAACtD,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAACoyB,UAAU,EAAE9qB,YAAY,CAAC,CAAC,CAAA;AACpH,EAAA,MAAMgrB,WAAW,GAAGhoB,aAAO,CACzB,OAAO;IACL1E,IAAI;IACJC,YAAY;IACZC,gBAAgB;AAChBC,IAAAA,iBAAAA;GACD,CAAC,EACF,CAACA,iBAAiB,EAAEF,YAAY,EAAEC,gBAAgB,EAAEF,IAAI,CAC1D,CAAC,CAAA;AACD,EAAA,MAAM2sB,cAAc,GAAGjoB,aAAO,CAC5B,MACE6mB,mBAAmB,CAAC;IAClBC,WAAW;IACX,GAAGkB,WAAAA;AACL,GAAC,CAAC,EACJ,CAAClB,WAAW,EAAEkB,WAAW,CAC3B,CAAC,CAAA;AACD,EAAA,MAAME,WAAW,GAAGhjB,iBAAW,CAC7BzM,IAAI,IAAI;AACN,IAAA,MAAM0vB,MAAM,GAAGF,cAAc,CAACG,GAAG,CAAC3vB,IAAI,CAACO,MAAM,CAACtD,WAAW,CAAC,CAAC,CAAA;IAC3D,IAAIyyB,MAAM,KAAKxxB,SAAS,EAAE;AACxB,MAAA,OAAOwxB,MAAM,CAAA;AACf,KAAA;AACA,IAAA,OAAO/sB,SAAS,CAAC;MACf3C,IAAI;MACJ,GAAGuvB,WAAAA;AACL,KAAC,CAAC,CAAA;AACJ,GAAC,EACD,CAACC,cAAc,EAAED,WAAW,CAC9B,CAAC,CAAA;AACD,EAAA,MAAM5qB,KAAK,GAAG4C,aAAO,CACnB,MACEpD,iBAAiB,CAAC;AAChBnE,IAAAA,IAAI,EAAEuE,YAAY;AAClBrD,IAAAA,MAAM,EAAEouB,cAAc;IACtBlrB,QAAQ;IACRC,QAAQ;IACRC,MAAM;IACNxB,YAAY;IACZC,gBAAgB;IAChBC,iBAAiB;AACjBH,IAAAA,IAAAA;GACD,CAAC,EACJ,CAACG,iBAAiB,EAAEsB,MAAM,EAAED,QAAQ,EAAEvB,YAAY,EAAEC,gBAAgB,EAAEF,IAAI,EAAE0B,YAAY,EAAE+qB,cAAc,EAAElrB,QAAQ,CACpH,CAAC,CAAA;AAED,EAAA,MAAMwrB,gBAAgB,GAAGA,CAAC5vB,IAAI,EAAE6vB,IAAI,KAAK;IACvC,MAAMC,QAAQ,GAAG9vB,IAAI,CAACQ,OAAO,CAAC,KAAK,CAAC,CAACyC,MAAM,EAAE,CAAA;AAC7CisB,IAAAA,QAAQ,CAACY,QAAQ,EAAED,IAAI,CAAC,CAAA;AACxBlB,IAAAA,YAAY,GAAGmB,QAAQ,EAAED,IAAI,CAAC,CAAA;GAC/B,CAAA;AAED,EAAA,MAAME,mBAAmB,GAAGA,CAAC/vB,IAAI,EAAE6vB,IAAI,KAAK;AAC1CV,IAAAA,UAAU,CAACnvB,IAAI,CAACQ,OAAO,CAAC,OAAO,CAAC,CAACyC,MAAM,EAAE,EAAE4sB,IAAI,CAAC,CAAA;GACjD,CAAA;EAED,MAAMG,aAAa,GAAGA,MAAM;IAC1B,MAAMC,KAAK,GAAGhwB,yBAAK,EAAE,CAACO,OAAO,CAAC,KAAK,CAAC,CAAA;AACpC,IAAA,IAAIivB,WAAW,CAACQ,KAAK,CAAC,EAAE;AACtB,MAAA,OAAA;AACF,KAAA;IACAL,gBAAgB,CAACK,KAAK,EAAE;AAAElnB,MAAAA,MAAM,EAAE,OAAA;AAAQ,KAAC,CAAC,CAAA;IAC5CgnB,mBAAmB,CAACE,KAAK,EAAE;AAAElnB,MAAAA,MAAM,EAAE,OAAA;AAAQ,KAAC,CAAC,CAAA;GAChD,CAAA;EAED,MAAMmnB,cAAc,GAAGlwB,IAAI,IAAI;AAC7B,IAAA,MAAMJ,GAAG,GAAGI,IAAI,CAACO,MAAM,CAACtD,WAAW,CAAC,CAAA;AACpC,IAAA,MAAMkN,SAAS,GAAGklB,UAAU,CAACzvB,GAAG,CAAC,IAAI,EAAE,CAAA;AACvC,IAAA,MAAM6C,QAAQ,GAAG,CAAC,CAACgtB,WAAW,CAACzvB,IAAI,CAAC,CAAA;IACpC,oBAAOgG,cAAA,CAACkE,QAAQ,EAAA;AAAClK,MAAAA,IAAI,EAAEA,IAAK;AAACmK,MAAAA,SAAS,EAAEA,SAAU;MAACC,QAAQ,EAAEpK,IAAI,CAAC4D,MAAM,CAACW,YAAY,EAAE,KAAK,CAAE;MAAC8F,YAAY,EAAErK,IAAI,CAAC4D,MAAM,CAACyqB,WAAW,EAAE,OAAO,CAAE;AAAC5rB,MAAAA,QAAQ,EAAEA,QAAS;AAAC6H,MAAAA,aAAa,EAAEA,aAAc;AAACC,MAAAA,cAAc,EAAEA,cAAAA;AAAe,KAAE,CAAC,CAAA;GACrO,CAAA;AAED,EAAA,oBACEvE,cAAA,CAAA,KAAA,EAAA;AAAKD,IAAAA,SAAS,EAAEE,KAAK,CAAC,yBAAyB,CAAE;AAACA,IAAAA,KAAK,EAAE2oB,UAAW;AAAAxoB,IAAAA,QAAA,eAClEwB,eAAA,CAAA,KAAA,EAAA;AACEmC,MAAAA,GAAG,EAAEnM,OAAQ;MACbmI,SAAS,EAAE5G,UAAU,CAAC8G,KAAK,CAAC,mBAAmB,CAAC,EAAEnI,OAAO,IAAImI,KAAK,CAAC,2BAA2B,CAAC,EAAE+oB,iBAAiB,IAAI/oB,KAAK,CAAC,uCAAuC,CAAC,EAAEF,SAAS,CAAE;AACjL,MAAA,sBAAA,EAAsBjI,OAAO,GAAG,SAAS,GAAG,KAAM;MAClDmI,KAAK,EAAEnI,OAAO,IAAI,CAACkxB,iBAAiB,GAAGC,kBAAkB,GAAG/wB,SAAU;AAAAkI,MAAAA,QAAA,gBAEtEJ,cAAA,CAAA,KAAA,EAAA;AAAK+D,QAAAA,GAAG,EAAElM,WAAY;AAACkI,QAAAA,SAAS,EAAEE,KAAK,CAAC,eAAe,CAAE;QAAAG,QAAA,eACvDJ,cAAA,CAACmqB,aAAQ,EAAA;AAAA,UAAA,GACHrB,aAAa;AACjBsB,UAAAA,UAAU,EAAE,KAAM;AAClBrwB,UAAAA,KAAK,EAAEsuB,WAAY;UACnBgC,YAAY,EAAEA,MAAM;YAClB,MAAMJ,KAAK,GAAGhwB,yBAAK,EAAE,CAACO,OAAO,CAAC,KAAK,CAAC,CAAA;AACpC,YAAA,MAAM8vB,aAAa,GAAG,CAAC,CAACb,WAAW,CAACQ,KAAK,CAAC,CAAA;YAC1C,oBAAOjqB,cAAA,CAACgC,MAAM,EAAA;AAAC3J,cAAAA,OAAO,EAAEgwB,WAAY;cAACpmB,eAAe,EAAE,CAACqoB,aAAa,KAAK,CAAC/rB,YAAY,CAACX,MAAM,CAACqsB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC5B,WAAW,CAACzqB,MAAM,CAACqsB,KAAK,EAAE,OAAO,CAAC,CAAE;AAAC/nB,cAAAA,eAAe,EAAE6nB,mBAAoB;AAAC5nB,cAAAA,aAAa,EAAE6nB,aAAAA;AAAc,aAAE,CAAC,CAAA;WAC3N;AACFE,UAAAA,cAAc,EAAEA,cAAe;UAC/BptB,YAAY,EAAE9C,IAAI,IAAI,CAAC,CAACyvB,WAAW,CAACzvB,IAAI,CAAE;UAC1CoH,QAAQ,EAAEpH,IAAI,IAAI;AAChB,YAAA,IAAIyvB,WAAW,CAACzvB,IAAI,CAAC,EAAE;AACrB,cAAA,OAAA;AACF,aAAA;YACA4vB,gBAAgB,CAAC5vB,IAAI,EAAE;AAAE+I,cAAAA,MAAM,EAAE,MAAA;AAAO,aAAC,CAAC,CAAA;WAC1C;AACFwnB,UAAAA,aAAa,EAAEvwB,IAAI,IAAI+vB,mBAAmB,CAAC/vB,IAAI,EAAE;AAAE+I,YAAAA,MAAM,EAAE,QAAA;WAAU,CAAA;SACtE,CAAA;OACE,CAAC,eACN/C,cAAA,CAAA,KAAA,EAAA;AAAKD,QAAAA,SAAS,EAAEE,KAAK,CAAC,YAAY,CAAE;AAAA,QAAA,GAAK8oB,UAAU;AAAA3oB,QAAAA,QAAA,EAChDvD,IAAI,KAAK,UAAU,gBAClBmD,cAAA,CAACkmB,aAAa,EAAA;AAEZlsB,UAAAA,IAAI,EAAEuE,YAAa;AACnBI,UAAAA,KAAK,EAAEA,KAAM;AACbzD,UAAAA,MAAM,EAAEouB,cAAe;AACvBjrB,UAAAA,QAAQ,EAAEA,QAAS;AACnBC,UAAAA,MAAM,EAAEA,MAAO;AACfF,UAAAA,QAAQ,EAAEA,QAAS;AACnBkiB,UAAAA,QAAQ,EAAEA,QAAS;AACnBD,UAAAA,UAAU,EAAEA,UAAW;AACvB8F,UAAAA,aAAa,EAAEA,aAAc;AAC7Bvf,UAAAA,OAAO,EAAEA,OAAQ;AACjB8Z,UAAAA,gBAAgB,EAAEA,gBAAiB;AACnC0F,UAAAA,iBAAiB,EAAEA,iBAAkB;AACrCjF,UAAAA,eAAe,EAAEA,eAAgB;AACjCkF,UAAAA,QAAQ,EAAEA,QAAS;AACnBC,UAAAA,SAAS,EAAEA,SAAU;AACrBC,UAAAA,SAAS,EAAEA,SAAU;AACrB1rB,UAAAA,iBAAiB,EAAEA,iBAAkB;AACrCumB,UAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,UAAAA,kBAAkB,EAAEA,kBAAmB;AACvCxa,UAAAA,iBAAiB,EAAEA,iBAAkB;AACrC9B,UAAAA,YAAY,EAAEA,YAAAA;SArBTxG,EAAAA,YAAY,CAAChE,MAAM,CAACtD,WAAW,CAsBrC,CAAC,gBAEF+I,cAAA,CAAC2G,SAAS,EAAA;AAAC3M,UAAAA,IAAI,EAAEuE,YAAa;AAACrD,UAAAA,MAAM,EAAEouB,cAAe;AAAC1iB,UAAAA,OAAO,EAAEA,OAAQ;AAAC9B,UAAAA,eAAe,EAAEA,eAAgB;AAAC+B,UAAAA,iBAAiB,EAAEA,iBAAkB;AAAC9B,UAAAA,YAAY,EAAEA,YAAa;AAAC+B,UAAAA,UAAU,EAAE+hB,mBAAAA;SAAsB,CAAA;AAChN,OACE,CAAC,CAAA;KACH,CAAA;AAAC,GACH,CAAC,CAAA;AAEV,CAAC,CAAA;MAEY2B,gBAAgB,GAAG9zB,UAAU,CAACgyB,qBAAqB;;;;;;;;;;;;"}