@sazito/checkout 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +121 -0
- package/dist/chunks/labels-BlMZkOsV.cjs +1646 -0
- package/dist/chunks/labels-BlMZkOsV.cjs.map +1 -0
- package/dist/chunks/labels-ChywPk2i.js +1613 -0
- package/dist/chunks/labels-ChywPk2i.js.map +1 -0
- package/dist/chunks/use-checkout-Cvp_K3UW.cjs +69 -0
- package/dist/chunks/use-checkout-Cvp_K3UW.cjs.map +1 -0
- package/dist/chunks/use-checkout-E0O8HsSs.js +63 -0
- package/dist/chunks/use-checkout-E0O8HsSs.js.map +1 -0
- package/dist/core/index.cjs +40 -0
- package/dist/core/index.cjs.map +1 -0
- package/dist/core/index.d.cts +482 -0
- package/dist/core/index.d.ts +482 -0
- package/dist/core/index.js +3 -0
- package/dist/core/index.js.map +1 -0
- package/dist/next/index.cjs +845 -0
- package/dist/next/index.cjs.map +1 -0
- package/dist/next/index.d.cts +427 -0
- package/dist/next/index.d.ts +427 -0
- package/dist/next/index.js +834 -0
- package/dist/next/index.js.map +1 -0
- package/dist/react/index.cjs +17 -0
- package/dist/react/index.cjs.map +1 -0
- package/dist/react/index.d.cts +376 -0
- package/dist/react/index.d.ts +376 -0
- package/dist/react/index.js +7 -0
- package/dist/react/index.js.map +1 -0
- package/dist/styles.css +1696 -0
- package/package.json +98 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/ui/slot.tsx","../../src/ui/primitives.tsx","../../src/ui/Stepper.tsx","../../src/ui/OrderSummary.tsx","../../src/ui/steps/CartStep.tsx","../../src/ui/steps/ShippingStep.tsx","../../src/ui/steps/PaymentStep.tsx","../../src/ui/steps/ResultStep.tsx","../../src/ui/SazitoCheckout.tsx","../../src/next/SazitoCheckoutPage.tsx"],"sourcesContent":["'use client';\n\nimport {\n cloneElement,\n isValidElement,\n type ReactNode,\n type ReactElement,\n type HTMLAttributes\n} from 'react';\n\n/**\n * When `asChild` is true, merges the parent's props onto the single React child\n * element instead of rendering a wrapper element — the same pattern Radix UI /\n * shadcn/ui uses. Class names and event handlers are merged; all other props\n * from the parent win (child props act as defaults).\n */\nexport function Slot({\n children,\n ...slotProps\n}: HTMLAttributes<HTMLElement> & { children?: ReactNode }) {\n if (!isValidElement(children)) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[Slot] Must receive exactly one valid React element as child.');\n }\n return <>{children}</>;\n }\n\n const child = children as ReactElement<Record<string, unknown>>;\n const childProps = child.props as Record<string, unknown>;\n\n const mergedClassName =\n [slotProps.className, childProps.className].filter(Boolean).join(' ') || undefined;\n\n // Merge event handlers: call both if both exist.\n const merged: Record<string, unknown> = { ...childProps, ...slotProps };\n if (mergedClassName) merged.className = mergedClassName;\n\n for (const key of Object.keys(childProps)) {\n if (key.startsWith('on') && typeof childProps[key] === 'function' && typeof (slotProps as Record<string, unknown>)[key] === 'function') {\n const slotHandler = (slotProps as Record<string, unknown>)[key] as (...a: unknown[]) => void;\n const childHandler = childProps[key] as (...a: unknown[]) => void;\n merged[key] = (...args: unknown[]) => {\n slotHandler(...args);\n childHandler(...args);\n };\n }\n }\n\n return cloneElement(child, merged);\n}\n","'use client';\n\nimport type {\n ButtonHTMLAttributes,\n InputHTMLAttributes,\n ReactNode,\n SelectHTMLAttributes,\n TextareaHTMLAttributes\n} from 'react';\nimport { Slot } from './slot';\n\nfunction cx(...parts: Array<string | false | undefined | null>): string {\n return parts.filter(Boolean).join(' ');\n}\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'outline' | 'ghost';\n block?: boolean;\n loading?: boolean;\n asChild?: boolean;\n}\n\nexport function Button({\n variant = 'primary',\n block,\n loading,\n asChild,\n className,\n children,\n disabled,\n ...rest\n}: ButtonProps) {\n const props = {\n className: cx('szc-btn', `szc-btn--${variant}`, block && 'szc-btn--block', className),\n disabled: disabled || loading,\n 'aria-busy': loading || undefined,\n ...rest,\n };\n\n if (asChild) {\n return <Slot {...props}>{children}</Slot>;\n }\n\n return (\n <button type=\"button\" {...props}>\n {loading ? <Spinner /> : null}\n <span>{children}</span>\n </button>\n );\n}\n\nexport interface SpinnerProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function Spinner({ asChild, className, children }: SpinnerProps = {}) {\n if (asChild && children) {\n return <Slot className={cx('szc-spinner', className)}>{children}</Slot>;\n }\n return <span className={cx('szc-spinner', className)} aria-hidden=\"true\">{children}</span>;\n}\n\nexport interface ProductPlaceholderProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function ProductPlaceholder({ asChild, className, children }: ProductPlaceholderProps = {}) {\n const props = { className: cx('szc-product-placeholder', className) };\n\n if (asChild && children) {\n return <Slot {...props}>{children}</Slot>;\n }\n\n return (\n <span {...props}>\n {children ?? (\n <svg viewBox=\"0 0 64 64\" width=\"30\" height=\"30\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M32 12 49 21.5v21L32 52 15 42.5v-21L32 12Z\"\n stroke=\"currentColor\"\n strokeWidth=\"2.25\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"m15 21.5 17 9.5 17-9.5M32 31v21\"\n stroke=\"currentColor\"\n strokeWidth=\"2.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </span>\n );\n}\n\nexport interface FieldProps extends InputHTMLAttributes<HTMLInputElement> {\n label: string;\n error?: string;\n optionalLabel?: string;\n asChild?: boolean;\n}\n\nexport function FieldLabel({\n label,\n required,\n optionalLabel\n}: {\n label: string;\n required?: boolean;\n optionalLabel?: string;\n}) {\n return (\n <span className=\"szc-field__label\">\n {label}\n {!required && optionalLabel ? (\n <span className=\"szc-field__optional\">({optionalLabel})</span>\n ) : null}\n </span>\n );\n}\n\nexport function Field({ label, id, className, error, required, optionalLabel, asChild, children, ...rest }: FieldProps) {\n const inputProps = {\n id,\n required,\n className: cx('szc-input', error && 'szc-input--error', className),\n ...rest,\n };\n\n return (\n <label className=\"szc-field\" htmlFor={id}>\n <FieldLabel label={label} required={required} optionalLabel={optionalLabel} />\n {asChild && children\n ? <Slot {...inputProps}>{children as ReactNode}</Slot>\n : <input {...inputProps} />\n }\n {error ? <span className=\"szc-field__error\">{error}</span> : null}\n </label>\n );\n}\n\nexport interface TextAreaFieldProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n label: string;\n error?: string;\n optionalLabel?: string;\n asChild?: boolean;\n}\n\nexport function TextAreaField({ label, id, className, error, required, optionalLabel, asChild, children, ...rest }: TextAreaFieldProps) {\n const inputProps = {\n id,\n required,\n className: cx('szc-input', 'szc-textarea', error && 'szc-input--error', className),\n ...rest,\n };\n\n return (\n <label className=\"szc-field\" htmlFor={id}>\n <FieldLabel label={label} required={required} optionalLabel={optionalLabel} />\n {asChild && children\n ? <Slot {...inputProps as Record<string, unknown>}>{children as ReactNode}</Slot>\n : <textarea {...inputProps} />\n }\n {error ? <span className=\"szc-field__error\">{error}</span> : null}\n </label>\n );\n}\n\nexport interface SelectFieldProps extends SelectHTMLAttributes<HTMLSelectElement> {\n label: string;\n children: ReactNode;\n optionalLabel?: string;\n}\n\nexport function SelectField({ label, id, className, children, required, optionalLabel, ...rest }: SelectFieldProps) {\n return (\n <label className=\"szc-field\" htmlFor={id}>\n <FieldLabel label={label} required={required} optionalLabel={optionalLabel} />\n <select id={id} required={required} className={cx('szc-input', 'szc-select', className)} {...rest}>\n {children}\n </select>\n </label>\n );\n}\n\nexport function Card({ className, children }: { className?: string; children: ReactNode }) {\n return <div className={cx('szc-card', className)}>{children}</div>;\n}\n\nexport interface SectionTitleProps {\n children: ReactNode;\n asChild?: boolean;\n className?: string;\n}\n\nexport function SectionTitle({ children, asChild, className }: SectionTitleProps) {\n const props = { className: cx('szc-section-title', className) };\n if (asChild && children) {\n return <Slot {...props}>{children}</Slot>;\n }\n return <h3 {...props}>{children}</h3>;\n}\n\nexport interface ErrorBannerProps {\n message: string;\n asChild?: boolean;\n children?: ReactNode;\n className?: string;\n}\n\nexport function ErrorBanner({ message, asChild, children, className }: ErrorBannerProps) {\n const props = {\n className: cx('szc-error', className),\n role: 'alert' as const,\n };\n\n if (asChild && children) {\n return <Slot {...props}>{children}</Slot>;\n }\n\n return <div {...props}>{message}</div>;\n}\n","'use client';\n\nimport type { ReactElement } from 'react';\nimport { useCheckout } from '../react';\nimport type { CheckoutStep } from '../core';\n\nconst STEPS: CheckoutStep[] = ['cart', 'shipping', 'payment', 'result'];\n\nconst STEP_ICONS: Record<CheckoutStep, () => ReactElement> = {\n cart: CartIcon,\n shipping: TruckIcon,\n payment: CardIcon,\n result: ClipboardIcon\n};\n\nexport function Stepper() {\n const { state, t } = useCheckout();\n const labels: Record<CheckoutStep, string> = {\n cart: t.stepCart,\n shipping: t.stepShipping,\n payment: t.stepPayment,\n result: t.stepResult\n };\n\n const currentIndex = STEPS.indexOf(state.step);\n\n return (\n <ol className=\"szc-stepper\">\n {STEPS.map((step, index) => {\n const status =\n index < currentIndex ? 'done' : index === currentIndex ? 'active' : 'todo';\n const Icon = STEP_ICONS[step];\n return (\n <li key={step} className={`szc-step szc-step--${status}`}>\n <span className=\"szc-step__dot\">\n {status === 'done' ? <CheckIcon /> : <Icon />}\n </span>\n <span className=\"szc-step__label\">{labels[step]}</span>\n {index < STEPS.length - 1 ? <span className=\"szc-step__line\" /> : null}\n </li>\n );\n })}\n </ol>\n );\n}\n\nfunction CheckIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"15\" height=\"15\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3.5 8.5l3 3 6-6.5\" stroke=\"currentColor\" strokeWidth=\"2.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n\nexport function CartIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"15\" height=\"15\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M1.5 2h1.8l1.9 7.5h6.3l1.5-5H4.8\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <circle cx=\"6.5\" cy=\"13\" r=\"1\" fill=\"currentColor\" />\n <circle cx=\"11\" cy=\"13\" r=\"1\" fill=\"currentColor\" />\n </svg>\n );\n}\n\nexport function TruckIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"15\" height=\"15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"4\" width=\"9\" height=\"7\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <path d=\"M10 6.5h2.5l2 2.5V11h-4.5V6.5z\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinejoin=\"round\" />\n <circle cx=\"4\" cy=\"12.5\" r=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <circle cx=\"12\" cy=\"12.5\" r=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n </svg>\n );\n}\n\nexport function CardIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"15\" height=\"15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1.5\" y=\"3.5\" width=\"13\" height=\"9\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <path d=\"M1.5 6.5h13\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <rect x=\"3\" y=\"8.5\" width=\"3\" height=\"1.5\" rx=\".5\" fill=\"currentColor\" />\n </svg>\n );\n}\n\nexport function ClipboardIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"15\" height=\"15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"2.5\" y=\"2.5\" width=\"11\" height=\"12\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <path d=\"M5.5 2.5A1.5 1.5 0 0 1 7 1h2a1.5 1.5 0 0 1 1.5 1.5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n <path d=\"M5 7h6M5 9.5h4\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n","'use client';\n\nimport { useCheckout } from '../react';\nimport { formatPercent, type SummaryLineKey } from '../core';\n\nexport function OrderSummary() {\n const { state, summary, money, t } = useCheckout();\n const percentSign = state.locale === 'fa' ? '٪' : '%';\n\n const lineLabels: Record<SummaryLineKey, string> = {\n subtotal: t.subtotal,\n discount: t.yourSavings,\n shipping: t.shipping,\n credit: t.credit,\n vat: t.vat\n };\n\n return (\n <aside className=\"szc-summary\">\n <div className=\"szc-summary__total-head\">\n <span className=\"szc-summary__total-label\">{t.totalAmount}</span>\n <span className=\"szc-summary__total-value\">{money(summary.total)}</span>\n </div>\n\n <dl className=\"szc-summary__lines\">\n {summary.lines.map((line) => (\n <div\n key={line.key}\n className={`szc-summary__line${line.key === 'discount' ? ' szc-summary__line--discount' : ''}`}\n >\n <dt>\n {lineLabels[line.key]}\n {(line.percent ?? 0) > 0\n ? ` (${formatPercent(line.percent as number, state.locale)}${percentSign})`\n : ''}\n </dt>\n <dd className={line.negative ? 'szc-summary__line--neg' : undefined}>\n {line.free ? (\n <span className=\"szc-summary__free\">{t.free}</span>\n ) : (\n `${line.negative ? '−' : ''}${money(line.amount)}`\n )}\n </dd>\n </div>\n ))}\n </dl>\n\n <div className=\"szc-summary__grand\">\n <span>{t.total}</span>\n <span>{money(summary.total)}</span>\n </div>\n </aside>\n );\n}\n","'use client';\n\nimport { useEffect, useRef, useState } from 'react';\nimport type React from 'react';\nimport { useCheckout } from '../../react';\nimport { toPersianDigits } from '../../core';\nimport { Button, ProductPlaceholder } from '../primitives';\nimport { CartIcon } from '../Stepper';\n\nconst PERSIAN_DIGITS = '۰۱۲۳۴۵۶۷۸۹';\nconst ARABIC_DIGITS = '٠١٢٣٤٥٦٧٨٩';\nconst QUANTITY_DEBOUNCE_MS = 600;\n\nfunction toLatinDigits(value: string): string {\n return value\n .replace(/[۰-۹]/g, (digit) => String(PERSIAN_DIGITS.indexOf(digit)))\n .replace(/[٠-٩]/g, (digit) => String(ARABIC_DIGITS.indexOf(digit)));\n}\n\nconst HEX_COLOR_RE = /^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;\n\nfunction attrValueToString(value: unknown): string {\n if (value == null) return '';\n if (typeof value === 'object') {\n const v = (value as Record<string, unknown>).value;\n return v == null ? '' : String(v);\n }\n return String(value);\n}\n\nfunction toHexColor(value: unknown): string | null {\n if (typeof value !== 'string') return null;\n const trimmed = value.trim();\n return HEX_COLOR_RE.test(trimmed) ? (trimmed.startsWith('#') ? trimmed : `#${trimmed}`) : null;\n}\n\n// Hex can arrive as the raw value, or nested in `extra`/`value` of an object attribute.\nfunction attrHexColor(value: unknown): string | null {\n if (value && typeof value === 'object') {\n const obj = value as Record<string, unknown>;\n return toHexColor(obj.extra) ?? toHexColor(obj.value);\n }\n return toHexColor(value);\n}\n\nexport function CartStep({\n continueShoppingUrl,\n renderEmpty,\n}: {\n continueShoppingUrl?: string;\n renderEmpty?: (props: { continueShoppingUrl?: string }) => React.ReactNode;\n}) {\n const { state, actions, money, t } = useCheckout();\n const cart = state.cart;\n const busy = state.flags.updatingCart;\n const invoiceItemsByVariant = new Map(\n (state.invoice?.items ?? []).map((item) => [item.productVariantId, item])\n );\n\n if (!cart || cart.items.length === 0) {\n if (renderEmpty) {\n return renderEmpty({ continueShoppingUrl });\n }\n\n return (\n <section className=\"szc-empty\" role=\"status\" aria-live=\"polite\">\n <div className=\"szc-empty__card\">\n <span className=\"szc-empty__badge\">\n <CartIcon />\n </span>\n <div className=\"szc-empty__copy\">\n <h3 className=\"szc-empty__title\">{t.cartEmpty}</h3>\n <p className=\"szc-empty__hint\">{t.cartEmptyHint}</p>\n </div>\n {continueShoppingUrl ? (\n <Button\n className=\"szc-empty__cta\"\n variant=\"primary\"\n onClick={() => { window.location.href = continueShoppingUrl; }}\n >\n {t.continueShopping}\n </Button>\n ) : null}\n </div>\n </section>\n );\n }\n\n return (\n <section className=\"szc-step-panel\">\n <ul className=\"szc-cart-list\">\n {cart.items.map((item) => {\n const max = item.product.maxOrderQuantity;\n const min = item.product.minOrderQuantity ?? 1;\n const invoiceItem = invoiceItemsByVariant.get(item.product.variantId);\n const rawLineTotal = (invoiceItem?.rawPrice ?? item.unitPrice) * item.quantity;\n const itemDiscount = invoiceItem?.customerProfit\n || Math.max(0, rawLineTotal - item.lineTotal);\n return (\n <li key={item.id} className=\"szc-cart-row\">\n {item.product.image?.url ? (\n // eslint-disable-next-line @next/next/no-img-element\n <img className=\"szc-cart-row__thumb\" src={item.product.image.url} alt=\"\" />\n ) : (\n <ProductPlaceholder />\n )}\n\n <div className=\"szc-cart-row__main\">\n <span className=\"szc-cart-row__name\">{item.product.name}</span>\n {item.product.attributes?.length ? (\n <span className=\"szc-cart-row__attrs\">\n {item.product.attributes.map((a, i) => {\n const value = attrValueToString(a.value);\n const hex = attrHexColor(a.value);\n return (\n <span key={`${a.name}-${i}`} className=\"szc-cart-row__attr\">\n {i > 0 ? <span className=\"szc-cart-row__attr-sep\">·</span> : null}\n <span>{a.name}:</span>\n {hex ? (\n <span\n className=\"szc-cart-row__swatch\"\n style={{ backgroundColor: hex }}\n title={hex}\n aria-hidden=\"true\"\n />\n ) : null}\n {value ? <span>{value}</span> : null}\n </span>\n );\n })}\n </span>\n ) : null}\n <span className=\"szc-cart-row__price\">{money(item.unitPrice)}</span>\n </div>\n\n <div className=\"szc-cart-row__side\">\n <QuantityControl\n value={item.quantity}\n min={min}\n max={max}\n label={t.quantity}\n onChange={(quantity) =>\n actions.updateItemQuantity(item.id, item.product.variantId, quantity)\n }\n />\n {itemDiscount > 0 ? (\n <span className=\"szc-cart-row__discount\">\n {t.itemDiscount(money(itemDiscount))}\n </span>\n ) : null}\n <span className=\"szc-cart-row__line-total\">{money(item.lineTotal)}</span>\n <button\n type=\"button\"\n className=\"szc-cart-row__remove\"\n aria-label={t.remove}\n disabled={busy}\n onClick={() => actions.removeItem(item.id, item.product.variantId)}\n >\n <TrashIcon />\n </button>\n </div>\n </li>\n );\n })}\n </ul>\n </section>\n );\n}\n\ninterface QuantityControlProps {\n value: number;\n min: number;\n max?: number;\n label: string;\n onChange: (value: number) => Promise<void>;\n}\n\nfunction QuantityControl({ value, min, max, label, onChange }: QuantityControlProps) {\n const [draft, setDraft] = useState(() => toPersianDigits(String(value)));\n const [pending, setPending] = useState(false);\n const draftRef = useRef(draft);\n const pendingValueRef = useRef<number | null>(null);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const inFlightRef = useRef(false);\n const serverValueRef = useRef(value);\n const onChangeRef = useRef(onChange);\n\n serverValueRef.current = value;\n onChangeRef.current = onChange;\n\n const updateDraft = (next: string) => {\n draftRef.current = next;\n setDraft(next);\n };\n\n useEffect(() => {\n if (!pending || pendingValueRef.current === value) {\n updateDraft(toPersianDigits(String(value)));\n }\n }, [value, pending]);\n\n useEffect(\n () => () => {\n if (timerRef.current) clearTimeout(timerRef.current);\n },\n []\n );\n\n const normalize = (next: number): number =>\n Math.min(max ?? Number.POSITIVE_INFINITY, Math.max(min, Math.trunc(next)));\n\n async function flushPendingUpdate() {\n if (inFlightRef.current) return;\n\n const target = pendingValueRef.current;\n if (target == null) return;\n\n if (target === serverValueRef.current) {\n pendingValueRef.current = null;\n setPending(false);\n return;\n }\n\n inFlightRef.current = true;\n try {\n await onChangeRef.current(target);\n } finally {\n inFlightRef.current = false;\n\n if (pendingValueRef.current === target) {\n pendingValueRef.current = null;\n setPending(false);\n } else if (timerRef.current == null) {\n timerRef.current = setTimeout(() => {\n timerRef.current = null;\n void flushPendingUpdate();\n }, QUANTITY_DEBOUNCE_MS);\n }\n }\n }\n\n const scheduleUpdate = (rawValue: string | number) => {\n const parsed = typeof rawValue === 'number' ? rawValue : Number(toLatinDigits(rawValue));\n const next = normalize(Number.isFinite(parsed) ? parsed : value);\n\n updateDraft(toPersianDigits(String(next)));\n if (next === serverValueRef.current && !pending && !inFlightRef.current) return;\n\n pendingValueRef.current = next;\n setPending(true);\n\n if (timerRef.current) clearTimeout(timerRef.current);\n timerRef.current = setTimeout(() => {\n timerRef.current = null;\n void flushPendingUpdate();\n }, QUANTITY_DEBOUNCE_MS);\n };\n\n const step = (amount: number) => {\n const parsedDraft = Number(toLatinDigits(draftRef.current));\n const base = Number.isFinite(parsedDraft) ? parsedDraft : value;\n scheduleUpdate(base + amount);\n };\n\n const parsedDraft = Number(toLatinDigits(draft));\n const displayedValue = Number.isFinite(parsedDraft) ? normalize(parsedDraft) : value;\n\n return (\n <div className={`szc-qty${pending ? ' szc-qty--pending' : ''}`} aria-busy={pending}>\n <button\n type=\"button\"\n className=\"szc-qty__btn\"\n aria-label={`${label} −`}\n disabled={displayedValue <= min}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => step(-1)}\n >\n <MinusIcon />\n </button>\n <input\n className=\"szc-qty__input\"\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[۰-۹٠-٩0-9]*\"\n role=\"spinbutton\"\n value={draft}\n aria-label={label}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={displayedValue}\n onChange={(event) => {\n const digits = toLatinDigits(event.target.value).replace(/\\D/g, '');\n if (!digits) {\n if (timerRef.current) clearTimeout(timerRef.current);\n timerRef.current = null;\n updateDraft('');\n return;\n }\n scheduleUpdate(Number(digits));\n }}\n onBlur={() => scheduleUpdate(draftRef.current)}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n event.currentTarget.blur();\n } else if (event.key === 'Escape') {\n event.preventDefault();\n if (timerRef.current) clearTimeout(timerRef.current);\n timerRef.current = null;\n pendingValueRef.current = null;\n setPending(false);\n updateDraft(toPersianDigits(String(value)));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n step(1);\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n step(-1);\n }\n }}\n />\n <button\n type=\"button\"\n className=\"szc-qty__btn\"\n aria-label={`${label} +`}\n disabled={max != null && displayedValue >= max}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => step(1)}\n >\n <PlusIcon />\n </button>\n </div>\n );\n}\n\nfunction MinusIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"14\" height=\"14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3.5 8h9\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n\nfunction PlusIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"14\" height=\"14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M8 3.5v9M3.5 8h9\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n\nfunction TrashIcon() {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.7\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M3 6h18\" />\n <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\" />\n <path d=\"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\" />\n <path d=\"M10 11v6M14 11v6\" />\n </svg>\n );\n}\n\n\n","'use client';\n\nimport { useState, useCallback, useRef, useEffect, type CSSProperties } from 'react';\nimport { useCheckout } from '../../react';\nimport { toPersianDigits, normalizeIranianPhone, isValidIranianMobile } from '../../core';\nimport { Field, FieldLabel, ProductPlaceholder } from '../primitives';\nimport type { ShippingGroup, ShippingRate, AddressFormValues } from '../../core';\n\ntype TouchedFields = Partial<Record<keyof AddressFormValues, true>>;\ntype FormErrors = Partial<Record<keyof AddressFormValues, string>>;\n\nfunction validate(\n form: AddressFormValues,\n needsShipping: boolean,\n postalCodeMandatory: boolean,\n emailMandatory: boolean,\n t: { errorRequired: string; errorMobilePhone: string; errorEmail: string }\n): FormErrors {\n const e: FormErrors = {};\n if (!form.firstName.trim()) e.firstName = t.errorRequired;\n if (!form.lastName.trim()) e.lastName = t.errorRequired;\n if (!form.mobilePhone.trim()) {\n e.mobilePhone = t.errorRequired;\n } else if (!isValidIranianMobile(form.mobilePhone)) {\n e.mobilePhone = t.errorMobilePhone;\n }\n if (emailMandatory && !form.email.trim()) {\n e.email = t.errorRequired;\n } else if (form.email.trim() && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(form.email.trim())) {\n e.email = t.errorEmail;\n }\n if (needsShipping) {\n if (!form.regionId) e.regionId = t.errorRequired;\n if (!form.cityId) e.cityId = t.errorRequired;\n if (postalCodeMandatory && !form.postalCode.trim()) e.postalCode = t.errorRequired;\n if (!form.address.trim()) e.address = t.errorRequired;\n }\n return e;\n}\n\nexport function ShippingStep() {\n const { state, actions, t, digitalItems } = useCheckout();\n const { addressForm, regions, shippingGroups } = state;\n const [touched, setTouched] = useState<TouchedFields>({});\n const needsShipping = state.invoice?.needsShipping ?? true;\n\n const touch = useCallback((key: keyof AddressFormValues) => {\n setTouched((prev) => ({ ...prev, [key]: true }));\n }, []);\n\n const allErrors = validate(addressForm, needsShipping, state.postalCodeMandatory, state.emailMandatory, t as never);\n const errors: FormErrors = Object.fromEntries(\n Object.entries(allErrors).filter(([k]) => touched[k as keyof AddressFormValues])\n );\n\n const selectedRegion = regions.find((r) => r.id === addressForm.regionId);\n\n const handleBlurPhone = (key: 'mobilePhone' | 'phoneNumber') => {\n const raw = addressForm[key];\n if (raw) {\n const normalized = normalizeIranianPhone(raw);\n if (normalized !== raw) actions.setAddressField(key, normalized);\n }\n touch(key);\n };\n\n const busy = state.flags.savingAddress || state.flags.loadingShipping;\n\n return (\n <section className={`szc-step-panel${busy ? ' szc-step-panel--loading' : ''}`}>\n <div className=\"szc-shipping-form-card\">\n <section className=\"szc-shipping-section\" aria-labelledby=\"szc-contact-title\">\n <ShippingSectionHeader id=\"szc-contact-title\" title={t.contactInfo} icon=\"contact\" />\n <div className=\"szc-form-grid\">\n <Field\n id=\"szc-first-name\"\n label={t.firstName}\n required\n optionalLabel={t.optional}\n value={addressForm.firstName}\n error={errors.firstName}\n onChange={(e) => actions.setAddressField('firstName', e.target.value)}\n onBlur={() => touch('firstName')}\n />\n <Field\n id=\"szc-last-name\"\n label={t.lastName}\n required\n optionalLabel={t.optional}\n value={addressForm.lastName}\n error={errors.lastName}\n onChange={(e) => actions.setAddressField('lastName', e.target.value)}\n onBlur={() => touch('lastName')}\n />\n <Field\n id=\"szc-mobile\"\n label={t.mobilePhone}\n required\n optionalLabel={t.optional}\n className=\"szc-input--ltr\"\n dir=\"ltr\"\n inputMode=\"tel\"\n value={addressForm.mobilePhone}\n error={errors.mobilePhone}\n onChange={(e) => actions.setAddressField('mobilePhone', e.target.value)}\n onBlur={() => handleBlurPhone('mobilePhone')}\n />\n <Field\n id=\"szc-email\"\n label={t.email}\n required={state.emailMandatory}\n optionalLabel={t.optional}\n className=\"szc-input--ltr\"\n dir=\"ltr\"\n inputMode=\"email\"\n value={addressForm.email}\n error={errors.email}\n onChange={(e) => actions.setAddressField('email', e.target.value)}\n onBlur={() => touch('email')}\n />\n </div>\n </section>\n\n {needsShipping ? (\n <section className=\"szc-shipping-section\" aria-labelledby=\"szc-address-title\">\n <ShippingSectionHeader id=\"szc-address-title\" title={t.reviewAddress} icon=\"address\" />\n <div className=\"szc-form-grid\">\n <EnhancedSelect\n id=\"szc-region\"\n label={t.region}\n required\n optionalLabel={t.optional}\n value={addressForm.regionId ?? ''}\n error={errors.regionId}\n onChange={(v) => {\n actions.setAddressField('regionId', v ? Number(v) : null);\n touch('regionId');\n }}\n placeholder={t.selectRegion}\n options={regions.map((r) => ({ value: r.id, label: r.name }))}\n />\n <EnhancedSelect\n id=\"szc-city\"\n label={t.city}\n required\n optionalLabel={t.optional}\n value={addressForm.cityId ?? ''}\n disabled={!selectedRegion}\n error={errors.cityId}\n onChange={(v) => {\n actions.setAddressField('cityId', v ? Number(v) : null);\n touch('cityId');\n }}\n placeholder={t.selectCity}\n options={selectedRegion?.cities.map((c) => ({ value: c.id, label: c.name })) ?? []}\n />\n <Field\n id=\"szc-postal\"\n label={t.postalCode}\n required={state.postalCodeMandatory}\n optionalLabel={t.optional}\n className=\"szc-input--ltr\"\n dir=\"ltr\"\n inputMode=\"numeric\"\n value={addressForm.postalCode}\n error={errors.postalCode}\n onChange={(e) => actions.setAddressField('postalCode', e.target.value)}\n onBlur={() => touch('postalCode')}\n />\n <Field\n id=\"szc-phone\"\n label={t.phoneNumber}\n optionalLabel={t.optional}\n className=\"szc-input--ltr\"\n dir=\"ltr\"\n inputMode=\"tel\"\n value={addressForm.phoneNumber}\n onChange={(e) => actions.setAddressField('phoneNumber', e.target.value)}\n onBlur={() => handleBlurPhone('phoneNumber')}\n />\n </div>\n <Field\n id=\"szc-address\"\n label={t.addressLine}\n required\n optionalLabel={t.optional}\n value={addressForm.address}\n error={errors.address}\n onChange={(e) => actions.setAddressField('address', e.target.value)}\n onBlur={() => touch('address')}\n />\n <Field\n id=\"szc-description\"\n label={t.description}\n optionalLabel={t.optional}\n value={addressForm.description}\n onChange={(e) => actions.setAddressField('description', e.target.value)}\n onBlur={() => touch('description')}\n />\n </section>\n ) : null}\n </div>\n\n {shippingGroups.length > 0 ? (\n <section className=\"szc-shipping-methods\" aria-labelledby=\"szc-methods-title\">\n <ShippingSectionHeader id=\"szc-methods-title\" title={t.shippingMethods} icon=\"shipping\" />\n <div className=\"szc-ship-groups\">\n {shippingGroups.map((group) => (\n <ShippingGroupCard key={group.key} group={group} />\n ))}\n </div>\n </section>\n ) : needsShipping ? (\n <div className=\"szc-shipping-pending\" role=\"note\">\n <span className=\"szc-shipping-pending__icon\" aria-hidden=\"true\"><TruckIcon /></span>\n <div className=\"szc-shipping-pending__copy\">\n <strong>{t.shippingMethods}</strong>\n <span>{t.shippingMethodsHint}</span>\n </div>\n </div>\n ) : null}\n\n {digitalItems.length > 0 ? (\n <div className=\"szc-digital-note\">\n <span className=\"szc-digital-note__icon\">⬇︎</span>\n <div>\n <strong>{t.digitalNoShipping}</strong>\n <ul>\n {digitalItems.map((item) => (\n <li key={item.id}>{item.name}</li>\n ))}\n </ul>\n </div>\n </div>\n ) : null}\n </section>\n );\n}\n\nfunction ShippingSectionHeader({\n id,\n title,\n icon\n}: {\n id: string;\n title: string;\n icon: 'contact' | 'address' | 'shipping';\n}) {\n return (\n <header className=\"szc-shipping-section__head\">\n <span className=\"szc-shipping-section__icon\" aria-hidden=\"true\">\n {icon === 'contact' ? <ContactIcon /> : icon === 'address' ? <AddressIcon /> : <TruckIcon />}\n </span>\n <h2 id={id} className=\"szc-shipping-section__title\">{title}</h2>\n </header>\n );\n}\n\nfunction ContactIcon() {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"8\" r=\"3.25\" stroke=\"currentColor\" strokeWidth=\"1.7\" />\n <path d=\"M5.5 19c.65-3.35 3-5.25 6.5-5.25s5.85 1.9 6.5 5.25\" stroke=\"currentColor\" strokeWidth=\"1.7\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n\nfunction AddressIcon() {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M19 10c0 4.7-7 10-7 10S5 14.7 5 10a7 7 0 1 1 14 0Z\" stroke=\"currentColor\" strokeWidth=\"1.7\" strokeLinejoin=\"round\" />\n <circle cx=\"12\" cy=\"10\" r=\"2.25\" stroke=\"currentColor\" strokeWidth=\"1.7\" />\n </svg>\n );\n}\n\ninterface EnhancedSelectProps {\n id: string;\n label: string;\n value: string | number;\n placeholder: string;\n options: { value: string | number; label: string }[];\n required?: boolean;\n optionalLabel?: string;\n disabled?: boolean;\n error?: string;\n onChange: (value: string) => void;\n}\n\nfunction EnhancedSelect({ id, label, value, placeholder, options, required, optionalLabel, disabled, error, onChange }: EnhancedSelectProps) {\n return (\n <label className=\"szc-field\" htmlFor={id}>\n <FieldLabel label={label} required={required} optionalLabel={optionalLabel} />\n <div className=\"szc-select-wrap\">\n <select\n id={id}\n className={`szc-input szc-select-enhanced${error ? ' szc-input--error' : ''}`}\n value={value}\n required={required}\n disabled={disabled}\n onChange={(e) => onChange(e.target.value)}\n >\n <option value=\"\">{placeholder}</option>\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n <span className=\"szc-select-chevron\" aria-hidden=\"true\">\n <ChevronIcon />\n </span>\n </div>\n {error ? <span className=\"szc-field__error\">{error}</span> : null}\n </label>\n );\n}\n\nfunction ChevronIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"14\" height=\"14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n\n/**\n * Click-and-drag horizontal scrolling for a container with a hidden scrollbar.\n * Also maps vertical mouse-wheel deltas to horizontal scroll so a plain mouse\n * (no horizontal wheel) can still pan the list.\n */\nfunction useDragScroll() {\n const ref = useRef<HTMLDivElement>(null);\n const drag = useRef({ down: false, startX: 0, startLeft: 0 });\n\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const onWheel = (e: WheelEvent) => {\n if (el.scrollWidth <= el.clientWidth) return; // nothing to pan\n if (Math.abs(e.deltaY) <= Math.abs(e.deltaX)) return; // already horizontal\n e.preventDefault();\n el.scrollLeft += e.deltaY;\n };\n el.addEventListener('wheel', onWheel, { passive: false });\n return () => el.removeEventListener('wheel', onWheel);\n }, []);\n\n const onPointerDown = (e: React.PointerEvent<HTMLDivElement>) => {\n const el = ref.current;\n if (!el) return;\n drag.current = { down: true, startX: e.clientX, startLeft: el.scrollLeft };\n el.setPointerCapture(e.pointerId);\n el.classList.add('szc-dragging');\n };\n const onPointerMove = (e: React.PointerEvent<HTMLDivElement>) => {\n const el = ref.current;\n if (!el || !drag.current.down) return;\n el.scrollLeft = drag.current.startLeft - (e.clientX - drag.current.startX);\n };\n const onPointerUp = (e: React.PointerEvent<HTMLDivElement>) => {\n const el = ref.current;\n if (!el || !drag.current.down) return;\n drag.current.down = false;\n el.classList.remove('szc-dragging');\n try {\n el.releasePointerCapture(e.pointerId);\n } catch {\n /* pointer already released */\n }\n };\n\n return { ref, onPointerDown, onPointerMove, onPointerUp };\n}\n\nfunction ShippingGroupCard({ group }: { group: ShippingGroup }) {\n const { actions, price, state, t } = useCheckout();\n const busy = state.flags.selectingRate;\n const selectedRate = group.rates.find((rate) => rate.id === group.selectedRateId);\n const showRateSelector = group.items.length !== 1 || group.rates.length !== 1;\n const itemsScroll = useDragScroll();\n\n return (\n <div className=\"szc-ship-group\">\n <header className=\"szc-ship-group__head\">\n <span\n className=\"szc-ship-group__mark\"\n style={shippingRateIconStyle(selectedRate?.color)}\n aria-hidden=\"true\"\n >\n {selectedRate ? <ShippingRateIcon rate={selectedRate} /> : <TruckIcon />}\n </span>\n <div className=\"szc-ship-group__heading\">\n <div className=\"szc-ship-group__title-row\">\n <strong className=\"szc-ship-group__title\">\n {group.title || selectedRate?.name || t.shippingMethod}\n </strong>\n <span className=\"szc-ship-group__count\">\n {t.productCount(toPersianDigits(String(group.items.length)))}\n </span>\n </div>\n {selectedRate ? (\n <span className=\"szc-ship-group__hint\">\n {selectedRate.description ? (\n <span className=\"szc-ship-group__desc\">{selectedRate.description}</span>\n ) : null}\n <span className=\"szc-ship-group__rate-price\">\n {selectedRate.price > 0 ? price(selectedRate.price) : t.free}\n </span>\n </span>\n ) : (\n <span className=\"szc-ship-group__hint\">{t.shippingMethods}</span>\n )}\n </div>\n </header>\n\n <div\n className=\"szc-ship-group__items\"\n ref={itemsScroll.ref}\n onPointerDown={itemsScroll.onPointerDown}\n onPointerMove={itemsScroll.onPointerMove}\n onPointerUp={itemsScroll.onPointerUp}\n onPointerCancel={itemsScroll.onPointerUp}\n >\n {group.items.map((item) => (\n <article key={item.id} className=\"szc-ship-product\">\n <div className=\"szc-ship-product__media\">\n {item.image?.url ? (\n <img src={item.image.url} alt={item.image.alt || item.name} />\n ) : (\n <ProductPlaceholder />\n )}\n <span className=\"szc-ship-product__quantity\">\n {toPersianDigits(String(item.quantity))}\n </span>\n </div>\n <div className=\"szc-ship-product__copy\">\n <strong className=\"szc-ship-product__name\">{item.name}</strong>\n {item.attributes.length > 0 ? (\n <span className=\"szc-ship-product__attrs\">\n {item.attributes.map((attribute) => `${attribute.name}: ${attribute.value}`).join(' · ')}\n </span>\n ) : null}\n </div>\n </article>\n ))}\n </div>\n\n {!showRateSelector && selectedRate?.description?.trim() ? (\n <div className=\"szc-ship-group__description\">\n {selectedRate.description.trim()}\n </div>\n ) : null}\n\n {showRateSelector ? (\n <div className=\"szc-rate-list\" role=\"radiogroup\">\n {group.rates.map((rate: ShippingRate) => {\n const selected = group.selectedRateId === rate.id;\n const description = rate.description?.trim();\n return (\n <button\n key={rate.id}\n type=\"button\"\n role=\"radio\"\n aria-checked={selected}\n aria-label={description ? `${rate.name} — ${description}` : rate.name}\n disabled={busy}\n className={`szc-rate${selected ? ' szc-rate--selected' : ''}`}\n onClick={() => actions.selectShippingRate(group.key, rate.id)}\n >\n <span\n className=\"szc-rate__icon\"\n style={shippingRateIconStyle(rate.color)}\n aria-hidden=\"true\"\n >\n <ShippingRateIcon rate={rate} />\n </span>\n <span className=\"szc-rate__copy\">\n <span className=\"szc-rate__name\">{rate.name}</span>\n {rate.price > 0 ? (\n <span className=\"szc-rate__price\">{price(rate.price)}</span>\n ) : null}\n </span>\n <span className=\"szc-rate__radio\" aria-hidden=\"true\">\n {selected ? <CheckIcon /> : null}\n </span>\n {description ? (\n <span className=\"szc-rate__description\">{description}</span>\n ) : null}\n </button>\n );\n })}\n </div>\n ) : null}\n </div>\n );\n}\n\nconst ICON_PROPS = {\n viewBox: '0 0 24 24',\n width: 26,\n height: 26,\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 1.8,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n 'aria-hidden': true,\n} as const;\n\nfunction TruckIcon() {\n return (\n <svg {...ICON_PROPS}>\n <path d=\"M14 17V6a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1h1\" />\n <path d=\"M9 18h5\" />\n <path d=\"M18 18h1a1 1 0 0 0 1-1v-3.28a1 1 0 0 0-.21-.62l-2.7-3.39A1 1 0 0 0 16.3 9H14\" />\n <circle cx=\"7\" cy=\"18\" r=\"2\" />\n <circle cx=\"16\" cy=\"18\" r=\"2\" />\n </svg>\n );\n}\n\nfunction ShippingRateIcon({ rate }: { rate: ShippingRate }) {\n const iconKey = shippingRateIconKey(rate);\n\n switch (iconKey) {\n case 'post':\n return <PostIcon />;\n case 'free-delivery':\n return <FreeDeliveryIcon />;\n case 'courier':\n return <CourierIcon />;\n case 'delivery-man':\n return <DeliveryManIcon />;\n default:\n return rate.icon && isImageUrl(rate.icon) ? <img src={rate.icon} alt=\"\" /> : <TruckIcon />;\n }\n}\n\nfunction shippingRateIconKey(rate: ShippingRate): string {\n const explicit = (rate.icon || rate.type || '').trim().toLowerCase().replace(/_/g, '-');\n if (explicit) return explicit;\n\n const name = rate.name.trim().toLowerCase();\n if (name.includes('پست') || name.includes('post')) return 'post';\n if (name.includes('رایگان') || name.includes('free')) return 'free-delivery';\n if (name.includes('پیک') || name.includes('courier')) return 'courier';\n if (name.includes('حضوری') || name.includes('delivery man')) return 'delivery-man';\n return '';\n}\n\n/**\n * The API returns `color` as a palette *token* (e.g. `mainColor`, `green`) — not\n * always a CSS color. Map the known tokens to concrete CSS colors so each rate\n * renders its own chip color instead of every icon falling back to the accent.\n */\nconst SHIPPING_COLOR_TOKENS: Record<string, string> = {\n green: '#16a34a',\n red: '#dc2626',\n blue: '#2563eb',\n orange: '#ea580c',\n yellow: '#eab308',\n purple: '#7c3aed',\n pink: '#db2777',\n teal: '#0d9488',\n cyan: '#0891b2',\n indigo: '#4f46e5',\n gray: '#6b7280',\n grey: '#6b7280',\n black: '#0f172a',\n brown: '#92400e'\n};\n\nfunction resolveShippingColor(raw: string): string | undefined {\n const token = raw.trim().toLowerCase();\n if (!token) return undefined;\n // The shop's \"main color\" is the theme accent → let the CSS fallback handle it.\n if (token === 'maincolor' || token === 'main') return undefined;\n if (token === 'transparent' || token === 'white') return '#ffffff';\n if (SHIPPING_COLOR_TOKENS[token]) return SHIPPING_COLOR_TOKENS[token];\n // Already a concrete CSS color value (hex / rgb()).\n if (parseColorChannels(token)) return token;\n return undefined;\n}\n\nfunction shippingRateIconStyle(color?: string): CSSProperties | undefined {\n if (!color) return undefined;\n\n const resolved = resolveShippingColor(color);\n\n // Unknown token / unparseable → let CSS use the theme's soft accent treatment.\n if (!resolved) return undefined;\n\n const rgb = parseColorChannels(resolved);\n if (!rgb) return undefined;\n\n const luminance = (0.299 * rgb[0] + 0.587 * rgb[1] + 0.114 * rgb[2]) / 255;\n\n // A white / near-white brand color (common for \"post\") would vanish against\n // the card. Render a neutral chip with a slate glyph instead.\n if (luminance > 0.9) {\n return {\n '--szc-rate-color': '#eef0f5',\n '--szc-rate-foreground': '#475569'\n } as CSSProperties;\n }\n\n const foreground = luminance > 0.62\n ? `rgb(${rgb.map((channel) => Math.round(channel * 0.58)).join(', ')})`\n : resolved;\n\n return {\n '--szc-rate-color': `color-mix(in srgb, ${resolved} 13%, var(--szc-card))`,\n '--szc-rate-foreground': foreground\n } as CSSProperties;\n}\n\nfunction parseColorChannels(value: string): [number, number, number] | null {\n const hex = value.match(/^#([\\da-f]{3}|[\\da-f]{6}|[\\da-f]{8})$/i)?.[1];\n if (hex?.length === 3) {\n return [0, 1, 2].map((index) => parseInt(hex[index] + hex[index], 16)) as [number, number, number];\n }\n if (hex && hex.length >= 6) {\n return [\n parseInt(hex.slice(0, 2), 16),\n parseInt(hex.slice(2, 4), 16),\n parseInt(hex.slice(4, 6), 16)\n ];\n }\n const channels = value.match(/^rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)/i);\n if (channels) return [Number(channels[1]), Number(channels[2]), Number(channels[3])];\n return null;\n}\n\nfunction isImageUrl(value: string): boolean {\n return /^(https?:)?\\/\\//i.test(value) || value.startsWith('/') || value.startsWith('data:');\n}\n\nfunction PostIcon() {\n return (\n <svg {...ICON_PROPS}>\n <path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\" />\n <path d=\"M3.3 7 12 12l8.7-5\" />\n <path d=\"M12 22V12\" />\n <path d=\"m7.5 4.6 9 5.2\" />\n </svg>\n );\n}\n\nfunction FreeDeliveryIcon() {\n return (\n <svg {...ICON_PROPS}>\n <path d=\"M21 11V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l1.5-.86\" />\n <path d=\"M3.3 7 12 12l8.7-5\" />\n <path d=\"M12 22V12\" />\n <path d=\"m15.5 17 2 2 4-4\" />\n </svg>\n );\n}\n\nfunction CourierIcon() {\n return (\n <svg {...ICON_PROPS}>\n <circle cx=\"5.5\" cy=\"17.5\" r=\"3.5\" />\n <circle cx=\"18.5\" cy=\"17.5\" r=\"3.5\" />\n <circle cx=\"15\" cy=\"5\" r=\"1\" />\n <path d=\"M12 17.5V14l-3-3 4-3 2 3h2\" />\n </svg>\n );\n}\n\nfunction DeliveryManIcon() {\n return (\n <svg {...ICON_PROPS}>\n <circle cx=\"9\" cy=\"4.5\" r=\"2.5\" />\n <path d=\"M5.5 21v-6.5a3.5 3.5 0 0 1 7 0V21\" />\n <rect x=\"14\" y=\"11.5\" width=\"6.5\" height=\"7\" rx=\"1.2\" />\n <path d=\"M14 15h6.5\" />\n <path d=\"M17.2 11.5v3.5\" />\n </svg>\n );\n}\n\nfunction CheckIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"12\" height=\"12\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"m3.2 8.2 3 3 6.6-6.4\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n","'use client';\n\nimport { useCheckout } from '../../react';\nimport {\n paymentMethodInfo,\n formatPercent,\n type AppliedDiscount,\n type CheckoutLocale,\n type PaymentMethodKind,\n type Strings\n} from '../../core';\nimport { Button, SectionTitle, Spinner } from '../primitives';\n\n/** Human line for the applied-code card: \"20% off (50,000)\", \"Free shipping\", … */\nfunction describeDiscount(\n discount: AppliedDiscount,\n t: Strings,\n money: (amount: number) => string,\n locale: CheckoutLocale\n): string | null {\n const parts: string[] = [];\n if (discount.kind === 'percentage' && (discount.percent ?? 0) > 0) {\n const percentOff = t.discountPercentOff(formatPercent(discount.percent as number, locale));\n parts.push(discount.amount > 0 ? `${percentOff} (${money(discount.amount)})` : percentOff);\n } else if (discount.amount > 0) {\n parts.push(t.discountAmountOff(money(discount.amount)));\n }\n if (discount.kind === 'free_shipping' || (discount.shippingSaved ?? 0) > 0) {\n parts.push(t.discountFreeShipping);\n }\n return parts.length > 0 ? parts.join(' + ') : null;\n}\n\nexport function PaymentStep() {\n const { state, actions, t, money } = useCheckout();\n const {\n paymentMethods,\n selectedPaymentMethodId,\n appliedDiscount,\n discountCode,\n discountError,\n flags,\n locale\n } = state;\n\n return (\n <section className=\"szc-step-panel\">\n <SectionTitle>{t.paymentMethod}</SectionTitle>\n\n {flags.loadingPayments ? (\n <p className=\"szc-inline-loading\">\n <Spinner /> {t.loading}\n </p>\n ) : (\n <div className=\"szc-pay-list\" role=\"radiogroup\" aria-label={t.paymentMethod}>\n {paymentMethods.map((method) => {\n const selected = selectedPaymentMethodId === method.id;\n const info = paymentMethodInfo(method.code, locale);\n // Prefer backend-provided title/description; fall back to derived labels.\n const backendTitle = locale === 'fa' ? method.titleFa : method.title;\n const title = backendTitle?.trim() || info.title;\n const description = method.description?.trim() || info.description;\n return (\n <button\n key={method.id}\n type=\"button\"\n role=\"radio\"\n aria-checked={selected}\n className={`szc-pay${selected ? ' szc-pay--selected' : ''}`}\n onClick={() => actions.selectPaymentMethod(method.id)}\n >\n <span className=\"szc-pay__icon\" aria-hidden=\"true\">\n <PaymentIcon kind={info.kind} />\n </span>\n <span className=\"szc-pay__body\">\n <span className=\"szc-pay__name\">{title}</span>\n <span className=\"szc-pay__desc\">{description}</span>\n </span>\n <span className=\"szc-pay__radio\" aria-hidden=\"true\">\n {selected ? <CheckIcon /> : null}\n </span>\n </button>\n );\n })}\n </div>\n )}\n\n <SectionTitle>{t.discountCode}</SectionTitle>\n {appliedDiscount ? (\n <div className=\"szc-discount szc-discount--applied\">\n <span className=\"szc-discount__icon\" aria-hidden=\"true\">\n <TagIcon />\n </span>\n <span className=\"szc-discount__body\">\n <code className=\"szc-discount__code\">{appliedDiscount.code}</code>\n <span className=\"szc-discount__desc\">\n {describeDiscount(appliedDiscount, t, money, locale) ?? t.applied}\n </span>\n </span>\n <span className=\"szc-discount__badge\">\n <CheckIcon /> {t.applied}\n </span>\n <Button variant=\"ghost\" onClick={() => actions.removeDiscount()} loading={flags.applyingDiscount}>\n {t.remove}\n </Button>\n </div>\n ) : (\n <div className=\"szc-discount-field\">\n <div className=\"szc-discount\">\n <span className=\"szc-discount__inputwrap\">\n <TagIcon />\n <input\n className={`szc-input${discountError ? ' szc-input--error' : ''}`}\n placeholder={t.discountPlaceholder}\n value={discountCode}\n aria-invalid={discountError ? true : undefined}\n onChange={(e) => actions.setDiscountCode(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') actions.applyDiscount();\n }}\n />\n </span>\n <Button\n variant=\"outline\"\n onClick={() => actions.applyDiscount()}\n loading={flags.applyingDiscount}\n disabled={!discountCode.trim()}\n >\n {t.apply}\n </Button>\n </div>\n {discountError ? (\n <p className=\"szc-discount__error\" role=\"alert\">\n <AlertIcon />\n {discountError}\n </p>\n ) : null}\n </div>\n )}\n </section>\n );\n}\n\nfunction TagIcon() {\n return (\n <svg viewBox=\"0 0 20 20\" width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M10.5 2.5H16v5.5l-7.5 7.5a1.8 1.8 0 0 1-2.5 0L3 13a1.8 1.8 0 0 1 0-2.5z\" />\n <circle cx=\"12.8\" cy=\"5.7\" r=\"1\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n );\n}\n\nconst ICON_PROPS = {\n viewBox: '0 0 20 20',\n width: 20,\n height: 20,\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 1.4,\n strokeLinecap: 'round' as const,\n strokeLinejoin: 'round' as const,\n 'aria-hidden': true\n};\n\nfunction AlertIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"14\" height=\"14\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"8\" cy=\"8\" r=\"6.5\" stroke=\"currentColor\" strokeWidth=\"1.4\" />\n <path d=\"M8 4.8v3.4\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeLinecap=\"round\" />\n <circle cx=\"8\" cy=\"11\" r=\"0.85\" fill=\"currentColor\" />\n </svg>\n );\n}\n\nfunction CheckIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"12\" height=\"12\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"m3.2 8.2 3 3 6.6-6.4\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n\nfunction PaymentIcon({ kind }: { kind: PaymentMethodKind }) {\n switch (kind) {\n case 'card':\n // two cards / transfer\n return (\n <svg {...ICON_PROPS}>\n <rect x=\"2\" y=\"5\" width=\"13\" height=\"9\" rx=\"2\" />\n <path d=\"M2 8h13M5.5 11.5h3\" />\n <path d=\"M15.5 6.5h2.5v9h-9v-1.5\" />\n </svg>\n );\n case 'cod':\n // package / hand\n return (\n <svg {...ICON_PROPS}>\n <path d=\"M10 2.5 17 6v8l-7 3.5L3 14V6z\" />\n <path d=\"M3 6l7 3.5L17 6M10 9.5v8\" />\n </svg>\n );\n case 'bnpl':\n // calendar / installments\n return (\n <svg {...ICON_PROPS}>\n <rect x=\"3\" y=\"4\" width=\"14\" height=\"13\" rx=\"2\" />\n <path d=\"M3 8h14M7 2.5v3M13 2.5v3M6.5 12h3\" />\n </svg>\n );\n case 'wallet':\n return (\n <svg {...ICON_PROPS}>\n <rect x=\"2.5\" y=\"5\" width=\"15\" height=\"11\" rx=\"2.5\" />\n <path d=\"M2.5 9h15\" />\n <circle cx=\"14\" cy=\"12.5\" r=\"1.1\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n );\n case 'free':\n // tag\n return (\n <svg {...ICON_PROPS}>\n <path d=\"M10.5 2.5H16v5.5l-7.5 7.5a1.8 1.8 0 0 1-2.5 0L3 13a1.8 1.8 0 0 1 0-2.5z\" />\n <circle cx=\"12.8\" cy=\"5.7\" r=\"1\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n );\n case 'gateway':\n default:\n // single card / bank\n return (\n <svg {...ICON_PROPS}>\n <rect x=\"2.5\" y=\"4.5\" width=\"15\" height=\"11\" rx=\"2\" />\n <path d=\"M2.5 8.5h15M5.5 12.5h4\" />\n </svg>\n );\n }\n}\n","'use client';\n\nimport { useCheckout } from '../../react';\nimport { Button, Spinner } from '../primitives';\n\nexport function ResultStep({ continueShoppingUrl }: { continueShoppingUrl?: string }) {\n const { state, actions, t } = useCheckout();\n const result = state.result;\n const status = result?.status ?? 'pending';\n\n const titleMap = {\n success: t.paymentSuccess,\n failed: t.paymentFailed,\n pending: t.paymentPending,\n stock_violated: t.paymentFailed\n } as const;\n\n return (\n <section className={`szc-result szc-result--${status}`}>\n <div className=\"szc-result__icon\">\n {status === 'success' ? (\n <CheckCircle />\n ) : status === 'pending' ? (\n <Spinner />\n ) : (\n <CrossCircle />\n )}\n </div>\n\n <h2 className=\"szc-result__title\">{titleMap[status]}</h2>\n\n {status === 'pending' ? <p className=\"szc-muted\">{t.paymentPendingHint}</p> : null}\n {result?.message ? <p className=\"szc-muted\">{result.message}</p> : null}\n\n {result?.order ? (\n <p className=\"szc-result__order\">\n {t.orderNumber}: <strong>{result.order.orderNumber}</strong>\n </p>\n ) : null}\n\n <div className=\"szc-result__actions\">\n {status === 'failed' || status === 'stock_violated' ? (\n <Button onClick={() => actions.goToStep('payment')}>{t.tryAgain}</Button>\n ) : null}\n {continueShoppingUrl ? (\n <Button variant=\"outline\" onClick={() => (window.location.href = continueShoppingUrl)}>\n {t.continueShopping}\n </Button>\n ) : null}\n </div>\n </section>\n );\n}\n\nfunction CheckCircle() {\n return (\n <svg viewBox=\"0 0 48 48\" width=\"48\" height=\"48\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"24\" cy=\"24\" r=\"22\" stroke=\"currentColor\" strokeWidth=\"2.5\" />\n <path\n d=\"M15 24.5l6 6 12-13\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nfunction CrossCircle() {\n return (\n <svg viewBox=\"0 0 48 48\" width=\"48\" height=\"48\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"24\" cy=\"24\" r=\"22\" stroke=\"currentColor\" strokeWidth=\"2.5\" />\n <path d=\"M17 17l14 14M31 17L17 31\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n","'use client';\n\nimport type { CSSProperties, ReactNode } from 'react';\nimport { useCheckout } from '../react';\nimport { formatNumber, type CheckoutTheme } from '../core';\nimport { Button, ErrorBanner } from './primitives';\nimport { Stepper, CartIcon, TruckIcon, CardIcon, ClipboardIcon } from './Stepper';\nimport { OrderSummary } from './OrderSummary';\nimport { CartStep } from './steps/CartStep';\nimport { ShippingStep } from './steps/ShippingStep';\nimport { PaymentStep } from './steps/PaymentStep';\nimport { ResultStep } from './steps/ResultStep';\n\n/** Props passed to renderNextButton / renderBackButton. */\nexport interface RenderButtonProps {\n /** Whether the action is in-flight (show a loading indicator). */\n loading: boolean;\n /** Whether the button should be inert (validation not met). */\n disabled: boolean;\n /** Trigger the checkout action for this button. */\n onClick: () => void;\n /** Localised label for the current step. */\n children: ReactNode;\n}\n\nexport interface RenderEmptyCartProps {\n continueShoppingUrl?: string;\n}\n\nexport interface SazitoCheckoutProps {\n theme?: CheckoutTheme;\n continueShoppingUrl?: string;\n className?: string;\n renderNextButton?: (props: RenderButtonProps) => ReactNode;\n renderBackButton?: (props: RenderButtonProps) => ReactNode;\n renderEmptyCart?: (props: RenderEmptyCartProps) => ReactNode;\n}\n\nfunction themeVars(theme?: CheckoutTheme): CSSProperties {\n const vars: Record<string, string> = {};\n if (theme?.accent) vars['--szc-accent'] = theme.accent;\n if (theme?.accentForeground) vars['--szc-accent-foreground'] = theme.accentForeground;\n if (theme?.accentSoft) vars['--szc-accent-soft'] = theme.accentSoft;\n if (theme?.background) vars['--szc-bg'] = theme.background;\n if (theme?.foreground) vars['--szc-fg'] = theme.foreground;\n if (theme?.muted) vars['--szc-muted'] = theme.muted;\n if (theme?.mutedForeground) vars['--szc-muted-fg'] = theme.mutedForeground;\n if (theme?.border) vars['--szc-border'] = theme.border;\n if (theme?.card) vars['--szc-card'] = theme.card;\n if (theme?.summaryBackground) vars['--szc-summary-bg'] = theme.summaryBackground;\n if (theme?.danger) vars['--szc-danger'] = theme.danger;\n if (theme?.success) vars['--szc-success'] = theme.success;\n if (theme?.radius != null) vars['--szc-radius'] = `${theme.radius}px`;\n if (theme?.fontFamily) vars['--szc-font'] = theme.fontFamily;\n return vars as CSSProperties;\n}\n\nfunction CheckoutSkeleton({ label }: { label: string }) {\n return (\n <div className=\"szc-layout szc-skeleton-layout\" role=\"status\" aria-label={label}>\n <main className=\"szc-main\" aria-hidden=\"true\">\n <div className=\"szc-skeleton-cart-row\">\n <span className=\"szc-skeleton szc-skeleton--thumb\" />\n <div className=\"szc-skeleton-copy\">\n <span className=\"szc-skeleton szc-skeleton--title\" />\n <span className=\"szc-skeleton szc-skeleton--text\" />\n <span className=\"szc-skeleton szc-skeleton--price\" />\n </div>\n <span className=\"szc-skeleton szc-skeleton--counter\" />\n </div>\n <div className=\"szc-skeleton-cart-row\">\n <span className=\"szc-skeleton szc-skeleton--thumb\" />\n <div className=\"szc-skeleton-copy\">\n <span className=\"szc-skeleton szc-skeleton--title\" />\n <span className=\"szc-skeleton szc-skeleton--text\" />\n <span className=\"szc-skeleton szc-skeleton--price\" />\n </div>\n <span className=\"szc-skeleton szc-skeleton--counter\" />\n </div>\n </main>\n\n <div className=\"szc-side\" aria-hidden=\"true\">\n <aside className=\"szc-summary szc-summary--skeleton\">\n <div className=\"szc-summary__total-head\">\n <span className=\"szc-skeleton szc-skeleton--summary-label\" />\n <span className=\"szc-skeleton szc-skeleton--summary-total\" />\n </div>\n <div className=\"szc-skeleton-summary-lines\">\n <div><span className=\"szc-skeleton\" /><span className=\"szc-skeleton\" /></div>\n <div><span className=\"szc-skeleton\" /><span className=\"szc-skeleton\" /></div>\n </div>\n <div className=\"szc-skeleton-summary-grand\">\n <span className=\"szc-skeleton\" />\n <span className=\"szc-skeleton\" />\n </div>\n </aside>\n <div className=\"szc-side__cta\">\n <span className=\"szc-skeleton szc-skeleton--button\" />\n </div>\n </div>\n </div>\n );\n}\n\nexport function SazitoCheckout({\n theme,\n continueShoppingUrl,\n className,\n renderNextButton,\n renderBackButton,\n renderEmptyCart,\n}: SazitoCheckoutProps) {\n const { state, actions, t, summary, money } = useCheckout();\n const { step, direction, flags, error } = state;\n\n const isResult = step === 'result';\n const bootstrapping =\n step === 'cart' && !error && (!state.cart || !state.invoice || flags.bootstrapping);\n const fatal = error && !state.cart && step === 'cart';\n\n const cartEmpty = !state.cart || state.cart.items.length === 0;\n const footerVisible =\n (step === 'cart' && !cartEmpty) || step === 'shipping' || step === 'payment';\n\n const nextBusy =\n state.status === 'working' ||\n flags.savingAddress ||\n flags.loadingShipping ||\n flags.loadingPayments ||\n flags.placingOrder;\n\n const needsShipping = state.invoice?.needsShipping !== false;\n const shippingSavePhase = state.addressDirty || !state.applicable;\n const shippingReady =\n !needsShipping ||\n (state.shippingGroups.length > 0 &&\n state.shippingGroups.every((g) => g.selectedRateId != null));\n const paymentReady =\n state.paymentMethods.length > 0 && state.selectedPaymentMethodId != null;\n const nextDisabled =\n step === 'cart'\n ? cartEmpty\n : step === 'shipping'\n ? !shippingSavePhase && !shippingReady\n : step === 'payment'\n ? !paymentReady\n : false;\n\n const nextLabel =\n step === 'cart'\n ? t.placeOrder\n : step === 'shipping'\n ? needsShipping && shippingSavePhase\n ? t.saveShippingDetails\n : t.continueToPayment\n : t.finishPurchase;\n\n const backOnClick =\n step === 'cart' && continueShoppingUrl\n ? () => { window.location.href = continueShoppingUrl; }\n : () => actions.back();\n\n const backVisible =\n step !== 'cart' || !!continueShoppingUrl;\n\n const nextButtonProps: RenderButtonProps = {\n loading: nextBusy,\n disabled: nextDisabled,\n onClick: () => actions.next(),\n children: nextLabel,\n };\n\n const backButtonProps: RenderButtonProps = {\n loading: false,\n disabled: false,\n onClick: backOnClick,\n children: t.back,\n };\n\n /* Rendered twice: under the order summary (desktop) and in the sticky\n bottom bar (mobile). CSS shows exactly one of the two. */\n const nextButtonNode = renderNextButton ? (\n renderNextButton(nextButtonProps)\n ) : (\n <Button\n className=\"szc-footer__next\"\n loading={nextBusy}\n disabled={nextDisabled}\n onClick={() => actions.next()}\n >\n {nextLabel}\n </Button>\n );\n\n const backButtonNode = backVisible ? (\n renderBackButton ? (\n renderBackButton(backButtonProps)\n ) : (\n <Button variant=\"ghost\" className=\"szc-back-btn\" onClick={backOnClick}>\n <svg\n className=\"szc-back-arrow\"\n viewBox=\"0 0 16 16\"\n width=\"15\"\n height=\"15\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M9.5 3.5 5 8l4.5 4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n {t.back}\n </Button>\n )\n ) : null;\n\n const actionsVisible = !bootstrapping && !fatal && !isResult && footerVisible;\n\n /* Mobile header (replaces the stepper on small screens): back chevron at the\n inline start, current step title centered, \"step n of m\" at the end. */\n const flowSteps = ['cart', 'shipping', 'payment'] as const;\n const flowIndex = flowSteps.indexOf(step as (typeof flowSteps)[number]);\n const headTitle =\n step === 'cart'\n ? t.stepCart\n : step === 'shipping'\n ? t.stepShippingInfo\n : step === 'payment'\n ? t.stepPayment\n : t.stepResult;\n const HeadIcon =\n step === 'cart'\n ? CartIcon\n : step === 'shipping'\n ? TruckIcon\n : step === 'payment'\n ? CardIcon\n : ClipboardIcon;\n const mobileHead = (\n <div className=\"szc-mobile-head\">\n {footerVisible && backVisible ? (\n <button\n type=\"button\"\n className=\"szc-mobile-head__back\"\n aria-label={t.back}\n onClick={backOnClick}\n >\n <svg\n className=\"szc-back-arrow\"\n viewBox=\"0 0 16 16\"\n width=\"18\"\n height=\"18\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M9.5 3.5 5 8l4.5 4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n ) : (\n <span />\n )}\n <span className=\"szc-mobile-head__title\">\n <span className=\"szc-mobile-head__dot\">\n <HeadIcon />\n </span>\n {headTitle}\n </span>\n {flowIndex >= 0 ? (\n <span className=\"szc-mobile-head__count\">\n {t.stepOf(\n formatNumber(flowIndex + 1, state.locale),\n formatNumber(flowSteps.length, state.locale)\n )}\n </span>\n ) : (\n <span />\n )}\n </div>\n );\n\n return (\n <div\n className={`szc-root${className ? ` ${className}` : ''}`}\n dir={direction}\n style={themeVars(theme)}\n >\n {mobileHead}\n <Stepper />\n\n {bootstrapping ? (\n <CheckoutSkeleton label={t.loading} />\n ) : fatal ? (\n <ErrorBanner message={error.message} />\n ) : isResult ? (\n <div className=\"szc-result-wrap\">\n <ResultStep continueShoppingUrl={continueShoppingUrl} />\n </div>\n ) : (\n <>\n <div className={`szc-layout${cartEmpty ? ' szc-layout--full' : ''}`}>\n <main className=\"szc-main\">\n {error ? <ErrorBanner message={error.message} /> : null}\n\n {step === 'cart' ? <CartStep continueShoppingUrl={continueShoppingUrl} renderEmpty={renderEmptyCart} /> : null}\n {step === 'shipping' ? <ShippingStep /> : null}\n {step === 'payment' ? <PaymentStep /> : null}\n\n {actionsVisible && backButtonNode ? (\n <div className=\"szc-back-row\">{backButtonNode}</div>\n ) : null}\n </main>\n\n {!cartEmpty ? (\n <div className=\"szc-side\">\n <OrderSummary />\n {actionsVisible ? <div className=\"szc-side__cta\">{nextButtonNode}</div> : null}\n </div>\n ) : null}\n </div>\n </>\n )}\n\n {actionsVisible ? (\n <div className=\"szc-footer-bar\">\n <div className=\"szc-footer\">\n <div className=\"szc-footer__total\">\n <span className=\"szc-footer__total-label\">{t.total}</span>\n <span className=\"szc-footer__total-value\">{money(summary.total)}</span>\n </div>\n <div className=\"szc-footer__actions\">{nextButtonNode}</div>\n </div>\n </div>\n ) : null}\n </div>\n );\n}\n","'use client';\n\nimport { useEffect } from 'react';\nimport type React from 'react';\nimport { CheckoutProvider, useCheckout, useSazitoClient } from '../react';\nimport { SazitoCheckout, type RenderButtonProps } from '../ui';\nimport type { CheckoutConfig, CheckoutCredentials } from '../core';\n\nexport interface RenderEmptyCartProps {\n continueShoppingUrl?: string;\n}\n\nexport interface SazitoCheckoutPageProps {\n credentials?: CheckoutCredentials;\n config?: CheckoutConfig;\n paymentReturnParams?: Record<string, string>;\n className?: string;\n renderNextButton?: (props: RenderButtonProps) => React.ReactNode;\n renderBackButton?: (props: RenderButtonProps) => React.ReactNode;\n renderEmptyCart?: (props: RenderEmptyCartProps) => React.ReactNode;\n}\n\nexport function SazitoCheckoutPage({\n credentials,\n config,\n paymentReturnParams,\n className,\n renderNextButton,\n renderBackButton,\n renderEmptyCart,\n}: SazitoCheckoutPageProps) {\n const isReturn = paymentReturnParams != null;\n const client = useSazitoClient();\n\n return (\n <CheckoutProvider\n client={client}\n credentials={credentials}\n config={config}\n autoStart={!isReturn}\n >\n {isReturn ? <ResolveReturn params={paymentReturnParams} /> : null}\n <SazitoCheckout\n theme={config?.theme}\n continueShoppingUrl={config?.continueShoppingUrl}\n className={className}\n renderNextButton={renderNextButton}\n renderBackButton={renderBackButton}\n renderEmptyCart={renderEmptyCart}\n />\n </CheckoutProvider>\n );\n}\n\nfunction ResolveReturn({ params }: { params: Record<string, string> }) {\n const { actions } = useCheckout();\n useEffect(() => {\n void actions.resolvePaymentReturn(params);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return null;\n}\n"],"names":["isValidElement","_jsx","_Fragment","cloneElement","_jsxs","TruckIcon","useCheckout","CheckIcon","formatPercent","useState","toPersianDigits","useRef","useEffect","isValidIranianMobile","useCallback","normalizeIranianPhone","ICON_PROPS","paymentMethodInfo","formatNumber","useSazitoClient","CheckoutProvider"],"mappings":";;;;;;;;;AAUA;;;;;AAKG;AACG,SAAU,IAAI,CAAC,EACnB,QAAQ,EACR,GAAG,SAAS,EAC2C,EAAA;AACvD,IAAA,IAAI,CAACA,oBAAc,CAAC,QAAQ,CAAC,EAAE;QAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AACzC,YAAA,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC;QAC/E;QACA,OAAOC,cAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAI;IACxB;IAEA,MAAM,KAAK,GAAG,QAAiD;AAC/D,IAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAAgC;IAEzD,MAAM,eAAe,GACnB,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS;;IAGpF,MAAM,MAAM,GAA4B,EAAE,GAAG,UAAU,EAAE,GAAG,SAAS,EAAE;AACvE,IAAA,IAAI,eAAe;AAAE,QAAA,MAAM,CAAC,SAAS,GAAG,eAAe;IAEvD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;QACzC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,OAAQ,SAAqC,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE;AACtI,YAAA,MAAM,WAAW,GAAI,SAAqC,CAAC,GAAG,CAA8B;AAC5F,YAAA,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAA8B;YACjE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAe,KAAI;AACnC,gBAAA,WAAW,CAAC,GAAG,IAAI,CAAC;AACpB,gBAAA,YAAY,CAAC,GAAG,IAAI,CAAC;AACvB,YAAA,CAAC;QACH;IACF;AAEA,IAAA,OAAOC,kBAAY,CAAC,KAAK,EAAE,MAAM,CAAC;AACpC;;ACtCA,SAAS,EAAE,CAAC,GAAG,KAA+C,EAAA;IAC5D,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACxC;AASM,SAAU,MAAM,CAAC,EACrB,OAAO,GAAG,SAAS,EACnB,KAAK,EACL,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACK,EAAA;AACZ,IAAA,MAAM,KAAK,GAAG;AACZ,QAAA,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAA,SAAA,EAAY,OAAO,CAAA,CAAE,EAAE,KAAK,IAAI,gBAAgB,EAAE,SAAS,CAAC;QACrF,QAAQ,EAAE,QAAQ,IAAI,OAAO;QAC7B,WAAW,EAAE,OAAO,IAAI,SAAS;AACjC,QAAA,GAAG,IAAI;KACR;IAED,IAAI,OAAO,EAAE;AACX,QAAA,OAAOF,eAAC,IAAI,EAAA,EAAA,GAAK,KAAK,EAAA,QAAA,EAAG,QAAQ,GAAQ;IAC3C;IAEA,QACEG,eAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,KAAK,KAAK,EAAA,QAAA,EAAA,CAC5B,OAAO,GAAGH,eAAC,OAAO,EAAA,EAAA,CAAG,GAAG,IAAI,EAC7BA,cAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,QAAQ,EAAA,CAAQ,CAAA,EAAA,CAChB;AAEb;AAQM,SAAU,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAA,GAAmB,EAAE,EAAA;AACzE,IAAA,IAAI,OAAO,IAAI,QAAQ,EAAE;AACvB,QAAA,OAAOA,cAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,EAAA,QAAA,EAAG,QAAQ,GAAQ;IACzE;AACA,IAAA,OAAOA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,EAAA,aAAA,EAAc,MAAM,EAAA,QAAA,EAAE,QAAQ,GAAQ;AAC5F;AAQM,SAAU,kBAAkB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAA,GAA8B,EAAE,EAAA;AAC/F,IAAA,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,EAAE;AAErE,IAAA,IAAI,OAAO,IAAI,QAAQ,EAAE;AACvB,QAAA,OAAOA,eAAC,IAAI,EAAA,EAAA,GAAK,KAAK,EAAA,QAAA,EAAG,QAAQ,GAAQ;IAC3C;AAEA,IAAA,QACEA,cAAA,CAAA,MAAA,EAAA,EAAA,GAAU,KAAK,EAAA,QAAA,EACZ,QAAQ,KACPG,eAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CAC5EH,cAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,4CAA4C,EAC9C,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,MAAM,EAClB,cAAc,EAAC,OAAO,EAAA,CACtB,EACFA,cAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,iCAAiC,EACnC,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,MAAM,EAClB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EAAA,CACtB,CAAA,EAAA,CACE,CACP,EAAA,CACI;AAEX;AASM,SAAU,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,aAAa,EAKd,EAAA;AACC,IAAA,QACEG,eAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAA,CAC/B,KAAK,EACL,CAAC,QAAQ,IAAI,aAAa,IACzBA,eAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,qBAAqB,EAAA,QAAA,EAAA,CAAA,GAAA,EAAG,aAAa,EAAA,GAAA,CAAA,EAAA,CAAS,IAC5D,IAAI,CAAA,EAAA,CACH;AAEX;AAEM,SAAU,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAc,EAAA;AACpH,IAAA,MAAM,UAAU,GAAG;QACjB,EAAE;QACF,QAAQ;QACR,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,kBAAkB,EAAE,SAAS,CAAC;AAClE,QAAA,GAAG,IAAI;KACR;AAED,IAAA,QACEA,eAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAC,WAAW,EAAC,OAAO,EAAE,EAAE,EAAA,QAAA,EAAA,CACtCH,cAAA,CAAC,UAAU,EAAA,EAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAA,CAAI,EAC7E,OAAO,IAAI;AACV,kBAAEA,cAAA,CAAC,IAAI,OAAK,UAAU,EAAA,QAAA,EAAG,QAAqB,EAAA;kBAC5CA,6BAAW,UAAU,EAAA,CAAI,EAE5B,KAAK,GAAGA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAE,KAAK,EAAA,CAAQ,GAAG,IAAI,CAAA,EAAA,CAC3D;AAEZ;AAwDM,SAAU,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAqB,EAAA;AAC9E,IAAA,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,EAAE;AAC/D,IAAA,IAAI,OAAO,IAAI,QAAQ,EAAE;AACvB,QAAA,OAAOA,eAAC,IAAI,EAAA,EAAA,GAAK,KAAK,EAAA,QAAA,EAAG,QAAQ,GAAQ;IAC3C;AACA,IAAA,OAAOA,cAAA,CAAA,IAAA,EAAA,EAAA,GAAQ,KAAK,EAAA,QAAA,EAAG,QAAQ,GAAM;AACvC;AASM,SAAU,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAoB,EAAA;AACrF,IAAA,MAAM,KAAK,GAAG;AACZ,QAAA,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;AACrC,QAAA,IAAI,EAAE,OAAgB;KACvB;AAED,IAAA,IAAI,OAAO,IAAI,QAAQ,EAAE;AACvB,QAAA,OAAOA,eAAC,IAAI,EAAA,EAAA,GAAK,KAAK,EAAA,QAAA,EAAG,QAAQ,GAAQ;IAC3C;AAEA,IAAA,OAAOA,cAAA,CAAA,KAAA,EAAA,EAAA,GAAS,KAAK,EAAA,QAAA,EAAG,OAAO,GAAO;AACxC;;AC5NA,MAAM,KAAK,GAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC;AAEvE,MAAM,UAAU,GAA6C;AAC3D,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,QAAQ,EAAEI,WAAS;AACnB,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,MAAM,EAAE;CACT;SAEe,OAAO,GAAA;IACrB,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAGC,uBAAW,EAAE;AAClC,IAAA,MAAM,MAAM,GAAiC;QAC3C,IAAI,EAAE,CAAC,CAAC,QAAQ;QAChB,QAAQ,EAAE,CAAC,CAAC,YAAY;QACxB,OAAO,EAAE,CAAC,CAAC,WAAW;QACtB,MAAM,EAAE,CAAC,CAAC;KACX;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AAE9C,IAAA,QACEL,cAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,aAAa,EAAA,QAAA,EACxB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;YACzB,MAAM,MAAM,GACV,KAAK,GAAG,YAAY,GAAG,MAAM,GAAG,KAAK,KAAK,YAAY,GAAG,QAAQ,GAAG,MAAM;AAC5E,YAAA,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;AAC7B,YAAA,QACEG,eAAA,CAAA,IAAA,EAAA,EAAe,SAAS,EAAE,CAAA,mBAAA,EAAsB,MAAM,CAAA,CAAE,EAAA,QAAA,EAAA,CACtDH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,eAAe,YAC5B,MAAM,KAAK,MAAM,GAAGA,cAAA,CAACM,WAAS,EAAA,EAAA,CAAG,GAAGN,cAAA,CAAC,IAAI,EAAA,EAAA,CAAG,EAAA,CACxC,EACPA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAAE,MAAM,CAAC,IAAI,CAAC,EAAA,CAAQ,EACtD,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAGA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,gBAAgB,EAAA,CAAG,GAAG,IAAI,CAAA,EAAA,EAL/D,IAAI,CAMR;QAET,CAAC,CAAC,EAAA,CACC;AAET;AAEA,SAASM,WAAS,GAAA;AAChB,IAAA,QACEN,cAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAC5EA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,oBAAoB,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAA,CAAG,EAAA,CAChH;AAEV;SAEgB,QAAQ,GAAA;AACtB,IAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CAC5EH,yBAAM,CAAC,EAAC,kCAAkC,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAA,CAAG,EAClIA,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,cAAc,EAAA,CAAG,EACrDA,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,cAAc,EAAA,CAAG,CAAA,EAAA,CAChD;AAEV;SAEgBI,WAAS,GAAA;IACvB,QACED,eAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CAC5EH,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAA,CAAG,EACxFA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,gCAAgC,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,cAAc,EAAC,OAAO,EAAA,CAAG,EAC1GA,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAA,CAAG,EAC3EA,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAA,CAAG,CAAA,EAAA,CACxE;AAEV;SAEgB,QAAQ,GAAA;AACtB,IAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CAC5EH,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,KAAK,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,GAAG,EAC/FA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,aAAa,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAA,CAAG,EAChEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,cAAc,EAAA,CAAG,CAAA,EAAA,CACrE;AAEV;SAEgB,aAAa,GAAA;AAC3B,IAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,iBAAa,MAAM,EAAA,QAAA,EAAA,CAC5EH,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,KAAK,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,GAAG,EAChGA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,oDAAoD,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAA,CAAG,EAC7HA,yBAAM,CAAC,EAAC,gBAAgB,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAA,CAAG,CAAA,EAAA,CACrF;AAEV;;SCxFgB,YAAY,GAAA;AAC1B,IAAA,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAGK,uBAAW,EAAE;AAClD,IAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG;AAErD,IAAA,MAAM,UAAU,GAAmC;QACjD,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,QAAQ,EAAE,CAAC,CAAC,WAAW;QACvB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,GAAG,EAAE,CAAC,CAAC;KACR;AAED,IAAA,QACEF,eAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAC,aAAa,EAAA,QAAA,EAAA,CAC5BA,yBAAK,SAAS,EAAC,yBAAyB,EAAA,QAAA,EAAA,CACtCH,yBAAM,SAAS,EAAC,0BAA0B,EAAA,QAAA,EAAE,CAAC,CAAC,WAAW,EAAA,CAAQ,EACjEA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,0BAA0B,YAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAA,CAAQ,CAAA,EAAA,CACpE,EAENA,cAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACtBG,eAAA,CAAA,KAAA,EAAA,EAEE,SAAS,EAAE,CAAA,iBAAA,EAAoB,IAAI,CAAC,GAAG,KAAK,UAAU,GAAG,8BAA8B,GAAG,EAAE,CAAA,CAAE,EAAA,QAAA,EAAA,CAE9FA,mCACG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EACpB,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI;AACrB,sCAAE,CAAA,EAAA,EAAKI,oBAAa,CAAC,IAAI,CAAC,OAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA,EAAG,WAAW,CAAA,CAAA;sCACtE,EAAE,CAAA,EAAA,CACH,EACLP,uBAAI,SAAS,EAAE,IAAI,CAAC,QAAQ,GAAG,wBAAwB,GAAG,SAAS,EAAA,QAAA,EAChE,IAAI,CAAC,IAAI,IACRA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAE,CAAC,CAAC,IAAI,GAAQ,KAEnD,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAE,CACnD,GACE,CAAA,EAAA,EAfA,IAAI,CAAC,GAAG,CAgBT,CACP,CAAC,EAAA,CACC,EAELG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAA,CACjCH,mCAAO,CAAC,CAAC,KAAK,EAAA,CAAQ,EACtBA,mCAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAA,CAAQ,CAAA,EAAA,CAC/B,CAAA,EAAA,CACA;AAEZ;;AC5CA,MAAM,cAAc,GAAG,YAAY;AACnC,MAAM,aAAa,GAAG,YAAY;AAClC,MAAM,oBAAoB,GAAG,GAAG;AAEhC,SAAS,aAAa,CAAC,KAAa,EAAA;AAClC,IAAA,OAAO;AACJ,SAAA,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAClE,SAAA,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACvE;AAEA,MAAM,YAAY,GAAG,qCAAqC;AAE1D,SAAS,iBAAiB,CAAC,KAAc,EAAA;IACvC,IAAI,KAAK,IAAI,IAAI;AAAE,QAAA,OAAO,EAAE;AAC5B,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,MAAM,CAAC,GAAI,KAAiC,CAAC,KAAK;AAClD,QAAA,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IACnC;AACA,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB;AAEA,SAAS,UAAU,CAAC,KAAc,EAAA;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,QAAA,OAAO,IAAI;AAC1C,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;AAC5B,IAAA,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE,IAAI,IAAI;AAChG;AAEA;AACA,SAAS,YAAY,CAAC,KAAc,EAAA;AAClC,IAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACtC,MAAM,GAAG,GAAG,KAAgC;AAC5C,QAAA,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;IACvD;AACA,IAAA,OAAO,UAAU,CAAC,KAAK,CAAC;AAC1B;SAEgB,QAAQ,CAAC,EACvB,mBAAmB,EACnB,WAAW,GAIZ,EAAA;AACC,IAAA,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAGK,uBAAW,EAAE;AAClD,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI;AACvB,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY;AACrC,IAAA,MAAM,qBAAqB,GAAG,IAAI,GAAG,CACnC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAC1E;IAED,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACpC,IAAI,WAAW,EAAE;AACf,YAAA,OAAO,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;QAC7C;QAEA,QACEL,4BAAS,SAAS,EAAC,WAAW,EAAC,IAAI,EAAC,QAAQ,EAAA,WAAA,EAAW,QAAQ,EAAA,QAAA,EAC7DG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iBAAiB,aAC9BH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAChCA,cAAA,CAAC,QAAQ,EAAA,EAAA,CAAG,EAAA,CACP,EACPG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAAA,CAC9BH,uBAAI,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAE,CAAC,CAAC,SAAS,EAAA,CAAM,EACnDA,cAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAAE,CAAC,CAAC,aAAa,EAAA,CAAK,IAChD,EACL,mBAAmB,IAClBA,cAAA,CAAC,MAAM,IACL,SAAS,EAAC,gBAAgB,EAC1B,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,QAAQ,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAC,CAAC,EAAA,QAAA,EAE7D,CAAC,CAAC,gBAAgB,EAAA,CACZ,IACP,IAAI,CAAA,EAAA,CACJ,EAAA,CACE;IAEd;IAEA,QACEA,4BAAS,SAAS,EAAC,gBAAgB,EAAA,QAAA,EACjCA,cAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,eAAe,YAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACvB,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB;gBACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC;AAC9C,gBAAA,MAAM,WAAW,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AACrE,gBAAA,MAAM,YAAY,GAAG,CAAC,WAAW,EAAE,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ;AAC9E,gBAAA,MAAM,YAAY,GAAG,WAAW,EAAE;uBAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;AAC/C,gBAAA,QACEG,eAAA,CAAA,IAAA,EAAA,EAAkB,SAAS,EAAC,cAAc,EAAA,QAAA,EAAA,CACvC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;;AAEtB,wBAAAH,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,EAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAC,EAAE,EAAA,CAAG,KAE3EA,cAAA,CAAC,kBAAkB,EAAA,EAAA,CAAG,CACvB,EAEDG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAA,CACjCH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,GAAQ,EAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,IAC9BA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,qBAAqB,EAAA,QAAA,EAClC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;wCACpC,MAAM,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;wCACxC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;AACjC,wCAAA,QACEG,eAAA,CAAA,MAAA,EAAA,EAA6B,SAAS,EAAC,oBAAoB,aACxD,CAAC,GAAG,CAAC,GAAGH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,wBAAwB,EAAA,QAAA,EAAA,QAAA,EAAA,CAAS,GAAG,IAAI,EACjEG,eAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAO,CAAC,CAAC,IAAI,EAAA,GAAA,CAAA,EAAA,CAAS,EACrB,GAAG,IACFH,yBACE,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,EAC/B,KAAK,EAAE,GAAG,EAAA,aAAA,EACE,MAAM,GAClB,IACA,IAAI,EACP,KAAK,GAAGA,mCAAO,KAAK,EAAA,CAAQ,GAAG,IAAI,CAAA,EAAA,EAX3B,CAAA,EAAG,CAAC,CAAC,IAAI,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE,CAYpB;AAEX,oCAAA,CAAC,CAAC,EAAA,CACG,IACL,IAAI,EACRA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,qBAAqB,EAAA,QAAA,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAA,CAAQ,CAAA,EAAA,CAChE,EAENG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oBAAoB,aACjCH,cAAA,CAAC,eAAe,EAAA,EACd,KAAK,EAAE,IAAI,CAAC,QAAQ,EACpB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,QAAQ,KACjB,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,GAEvE,EACD,YAAY,GAAG,CAAC,IACfA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,wBAAwB,EAAA,QAAA,EACrC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAA,CAC/B,IACL,IAAI,EACRA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,0BAA0B,EAAA,QAAA,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAA,CAAQ,EACzEA,cAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,sBAAsB,EAAA,YAAA,EACpB,CAAC,CAAC,MAAM,EACpB,QAAQ,EAAE,IAAI,EACd,OAAO,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAElEA,cAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EAAA,CACN,IACL,CAAA,EAAA,EA7DC,IAAI,CAAC,EAAE,CA8DX;AAET,YAAA,CAAC,CAAC,EAAA,CACC,EAAA,CACG;AAEd;AAUA,SAAS,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAwB,EAAA;AACjF,IAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGQ,cAAQ,CAAC,MAAMC,sBAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAGD,cAAQ,CAAC,KAAK,CAAC;AAC7C,IAAA,MAAM,QAAQ,GAAGE,YAAM,CAAC,KAAK,CAAC;AAC9B,IAAA,MAAM,eAAe,GAAGA,YAAM,CAAgB,IAAI,CAAC;AACnD,IAAA,MAAM,QAAQ,GAAGA,YAAM,CAAuC,IAAI,CAAC;AACnE,IAAA,MAAM,WAAW,GAAGA,YAAM,CAAC,KAAK,CAAC;AACjC,IAAA,MAAM,cAAc,GAAGA,YAAM,CAAC,KAAK,CAAC;AACpC,IAAA,MAAM,WAAW,GAAGA,YAAM,CAAC,QAAQ,CAAC;AAEpC,IAAA,cAAc,CAAC,OAAO,GAAG,KAAK;AAC9B,IAAA,WAAW,CAAC,OAAO,GAAG,QAAQ;AAE9B,IAAA,MAAM,WAAW,GAAG,CAAC,IAAY,KAAI;AACnC,QAAA,QAAQ,CAAC,OAAO,GAAG,IAAI;QACvB,QAAQ,CAAC,IAAI,CAAC;AAChB,IAAA,CAAC;IAEDC,eAAS,CAAC,MAAK;QACb,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,KAAK,KAAK,EAAE;YACjD,WAAW,CAACF,sBAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C;AACF,IAAA,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAEpB,IAAAE,eAAS,CACP,MAAM,MAAK;QACT,IAAI,QAAQ,CAAC,OAAO;AAAE,YAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;IACtD,CAAC,EACD,EAAE,CACH;AAED,IAAA,MAAM,SAAS,GAAG,CAAC,IAAY,KAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAE5E,IAAA,eAAe,kBAAkB,GAAA;QAC/B,IAAI,WAAW,CAAC,OAAO;YAAE;AAEzB,QAAA,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO;QACtC,IAAI,MAAM,IAAI,IAAI;YAAE;AAEpB,QAAA,IAAI,MAAM,KAAK,cAAc,CAAC,OAAO,EAAE;AACrC,YAAA,eAAe,CAAC,OAAO,GAAG,IAAI;YAC9B,UAAU,CAAC,KAAK,CAAC;YACjB;QACF;AAEA,QAAA,WAAW,CAAC,OAAO,GAAG,IAAI;AAC1B,QAAA,IAAI;AACF,YAAA,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC;gBAAU;AACR,YAAA,WAAW,CAAC,OAAO,GAAG,KAAK;AAE3B,YAAA,IAAI,eAAe,CAAC,OAAO,KAAK,MAAM,EAAE;AACtC,gBAAA,eAAe,CAAC,OAAO,GAAG,IAAI;gBAC9B,UAAU,CAAC,KAAK,CAAC;YACnB;AAAO,iBAAA,IAAI,QAAQ,CAAC,OAAO,IAAI,IAAI,EAAE;AACnC,gBAAA,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC,MAAK;AACjC,oBAAA,QAAQ,CAAC,OAAO,GAAG,IAAI;oBACvB,KAAK,kBAAkB,EAAE;gBAC3B,CAAC,EAAE,oBAAoB,CAAC;YAC1B;QACF;IACF;AAEA,IAAA,MAAM,cAAc,GAAG,CAAC,QAAyB,KAAI;QACnD,MAAM,MAAM,GAAG,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACxF,QAAA,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;QAEhE,WAAW,CAACF,sBAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,QAAA,IAAI,IAAI,KAAK,cAAc,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE;AAEzE,QAAA,eAAe,CAAC,OAAO,GAAG,IAAI;QAC9B,UAAU,CAAC,IAAI,CAAC;QAEhB,IAAI,QAAQ,CAAC,OAAO;AAAE,YAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;AACpD,QAAA,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC,MAAK;AACjC,YAAA,QAAQ,CAAC,OAAO,GAAG,IAAI;YACvB,KAAK,kBAAkB,EAAE;QAC3B,CAAC,EAAE,oBAAoB,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,IAAI,GAAG,CAAC,MAAc,KAAI;QAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3D,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,KAAK;AAC/D,QAAA,cAAc,CAAC,IAAI,GAAG,MAAM,CAAC;AAC/B,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAChD,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,KAAK;IAEpF,QACEN,yBAAK,SAAS,EAAE,UAAU,OAAO,GAAG,mBAAmB,GAAG,EAAE,EAAE,EAAA,WAAA,EAAa,OAAO,aAChFH,cAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,cAAc,EAAA,YAAA,EACZ,GAAG,KAAK,CAAA,EAAA,CAAI,EACxB,QAAQ,EAAE,cAAc,IAAI,GAAG,EAC/B,WAAW,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,EAAE,EAC9C,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,EAAA,QAAA,EAEvBA,cAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EAAA,CACN,EACTA,cAAA,CAAA,OAAA,EAAA,EACE,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,SAAS,EACnB,OAAO,EAAC,kCAAc,EACtB,IAAI,EAAC,YAAY,EACjB,KAAK,EAAE,KAAK,EAAA,YAAA,EACA,KAAK,mBACF,GAAG,EAAA,eAAA,EACH,GAAG,EAAA,eAAA,EACH,cAAc,EAC7B,QAAQ,EAAE,CAAC,KAAK,KAAI;AAClB,oBAAA,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;oBACnE,IAAI,CAAC,MAAM,EAAE;wBACX,IAAI,QAAQ,CAAC,OAAO;AAAE,4BAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;AACpD,wBAAA,QAAQ,CAAC,OAAO,GAAG,IAAI;wBACvB,WAAW,CAAC,EAAE,CAAC;wBACf;oBACF;AACA,oBAAA,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAChC,gBAAA,CAAC,EACD,MAAM,EAAE,MAAM,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC9C,SAAS,EAAE,CAAC,KAAK,KAAI;AACnB,oBAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;AACzB,wBAAA,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE;oBAC5B;AAAO,yBAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;wBACjC,KAAK,CAAC,cAAc,EAAE;wBACtB,IAAI,QAAQ,CAAC,OAAO;AAAE,4BAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;AACpD,wBAAA,QAAQ,CAAC,OAAO,GAAG,IAAI;AACvB,wBAAA,eAAe,CAAC,OAAO,GAAG,IAAI;wBAC9B,UAAU,CAAC,KAAK,CAAC;wBACjB,WAAW,CAACS,sBAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC7C;AAAO,yBAAA,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;wBAClC,KAAK,CAAC,cAAc,EAAE;wBACtB,IAAI,CAAC,CAAC,CAAC;oBACT;AAAO,yBAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;wBACpC,KAAK,CAAC,cAAc,EAAE;AACtB,wBAAA,IAAI,CAAC,EAAE,CAAC;oBACV;gBACF,CAAC,EAAA,CACD,EACFT,cAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,cAAc,EAAA,YAAA,EACZ,CAAA,EAAG,KAAK,CAAA,EAAA,CAAI,EACxB,QAAQ,EAAE,GAAG,IAAI,IAAI,IAAI,cAAc,IAAI,GAAG,EAC9C,WAAW,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,EAAE,EAC9C,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,EAAA,QAAA,EAEtBA,cAAA,CAAC,QAAQ,EAAA,EAAA,CAAG,EAAA,CACL,CAAA,EAAA,CACL;AAEV;AAEA,SAAS,SAAS,GAAA;AAChB,IAAA,QACEA,cAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAC5EA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAA,CAAG,EAAA,CAC7E;AAEV;AAEA,SAAS,QAAQ,GAAA;AACf,IAAA,QACEA,cAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAC5EA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,kBAAkB,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAA,CAAG,EAAA,CACrF;AAEV;AAEA,SAAS,SAAS,GAAA;AAChB,IAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CACjKH,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,EAAA,CAAG,EACpBA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,0CAA0C,EAAA,CAAG,EACrDA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,wCAAwC,EAAA,CAAG,EACnDA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,kBAAkB,EAAA,CAAG,CAAA,EAAA,CACzB;AAEV;;AC5VA,SAAS,QAAQ,CACf,IAAuB,EACvB,aAAsB,EACtB,mBAA4B,EAC5B,cAAuB,EACvB,CAA0E,EAAA;IAE1E,MAAM,CAAC,GAAe,EAAE;AACxB,IAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AAAE,QAAA,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,aAAa;AACzD,IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAAE,QAAA,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,aAAa;IACvD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE;AAC5B,QAAA,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,aAAa;IACjC;SAAO,IAAI,CAACY,2BAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAClD,QAAA,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,gBAAgB;IACpC;IACA,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;AACxC,QAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,aAAa;IAC3B;SAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE;AACrF,QAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU;IACxB;IACA,IAAI,aAAa,EAAE;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ;AAAE,YAAA,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,aAAa;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM;AAAE,YAAA,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,aAAa;QAC5C,IAAI,mBAAmB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AAAE,YAAA,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,aAAa;AAClF,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAAE,YAAA,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,aAAa;IACvD;AACA,IAAA,OAAO,CAAC;AACV;SAEgB,YAAY,GAAA;AAC1B,IAAA,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,GAAGP,uBAAW,EAAE;IACzD,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,KAAK;IACtD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAGG,cAAQ,CAAgB,EAAE,CAAC;IACzD,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,EAAE,aAAa,IAAI,IAAI;AAE1D,IAAA,MAAM,KAAK,GAAGK,iBAAW,CAAC,CAAC,GAA4B,KAAI;AACzD,QAAA,UAAU,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,cAAc,EAAE,CAAU,CAAC;AACnH,IAAA,MAAM,MAAM,GAAe,MAAM,CAAC,WAAW,CAC3C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAA4B,CAAC,CAAC,CACjF;AAED,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,QAAQ,CAAC;AAEzE,IAAA,MAAM,eAAe,GAAG,CAAC,GAAkC,KAAI;AAC7D,QAAA,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;QAC5B,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,UAAU,GAAGC,4BAAqB,CAAC,GAAG,CAAC;YAC7C,IAAI,UAAU,KAAK,GAAG;AAAE,gBAAA,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC;QAClE;QACA,KAAK,CAAC,GAAG,CAAC;AACZ,IAAA,CAAC;AAED,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,KAAK,CAAC,eAAe;IAErE,QACEX,6BAAS,SAAS,EAAE,iBAAiB,IAAI,GAAG,0BAA0B,GAAG,EAAE,EAAE,EAAA,QAAA,EAAA,CAC3EA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,wBAAwB,EAAA,QAAA,EAAA,CACrCA,eAAA,CAAA,SAAA,EAAA,EAAS,SAAS,EAAC,sBAAsB,EAAA,iBAAA,EAAiB,mBAAmB,aAC3EH,cAAA,CAAC,qBAAqB,IAAC,EAAE,EAAC,mBAAmB,EAAC,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAC,SAAS,EAAA,CAAG,EACrFG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,eAAe,aAC5BH,cAAA,CAAC,KAAK,IACJ,EAAE,EAAC,gBAAgB,EACnB,KAAK,EAAE,CAAC,CAAC,SAAS,EAClB,QAAQ,EAAA,IAAA,EACR,aAAa,EAAE,CAAC,CAAC,QAAQ,EACzB,KAAK,EAAE,WAAW,CAAC,SAAS,EAC5B,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,QAAQ,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACrE,MAAM,EAAE,MAAM,KAAK,CAAC,WAAW,CAAC,EAAA,CAChC,EACFA,eAAC,KAAK,EAAA,EACJ,EAAE,EAAC,eAAe,EAClB,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAA,IAAA,EACR,aAAa,EAAE,CAAC,CAAC,QAAQ,EACzB,KAAK,EAAE,WAAW,CAAC,QAAQ,EAC3B,KAAK,EAAE,MAAM,CAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACpE,MAAM,EAAE,MAAM,KAAK,CAAC,UAAU,CAAC,EAAA,CAC/B,EACFA,cAAA,CAAC,KAAK,EAAA,EACJ,EAAE,EAAC,YAAY,EACf,KAAK,EAAE,CAAC,CAAC,WAAW,EACpB,QAAQ,QACR,aAAa,EAAE,CAAC,CAAC,QAAQ,EACzB,SAAS,EAAC,gBAAgB,EAC1B,GAAG,EAAC,KAAK,EACT,SAAS,EAAC,KAAK,EACf,KAAK,EAAE,WAAW,CAAC,WAAW,EAC9B,KAAK,EAAE,MAAM,CAAC,WAAW,EACzB,QAAQ,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACvE,MAAM,EAAE,MAAM,eAAe,CAAC,aAAa,CAAC,EAAA,CAC5C,EACFA,cAAA,CAAC,KAAK,EAAA,EACJ,EAAE,EAAC,WAAW,EACd,KAAK,EAAE,CAAC,CAAC,KAAK,EACd,QAAQ,EAAE,KAAK,CAAC,cAAc,EAC9B,aAAa,EAAE,CAAC,CAAC,QAAQ,EACzB,SAAS,EAAC,gBAAgB,EAC1B,GAAG,EAAC,KAAK,EACT,SAAS,EAAC,OAAO,EACjB,KAAK,EAAE,WAAW,CAAC,KAAK,EACxB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACjE,MAAM,EAAE,MAAM,KAAK,CAAC,OAAO,CAAC,EAAA,CAC5B,CAAA,EAAA,CACE,CAAA,EAAA,CACE,EAET,aAAa,IACZG,6BAAS,SAAS,EAAC,sBAAsB,EAAA,iBAAA,EAAiB,mBAAmB,EAAA,QAAA,EAAA,CAC3EH,eAAC,qBAAqB,EAAA,EAAC,EAAE,EAAC,mBAAmB,EAAC,KAAK,EAAE,CAAC,CAAC,aAAa,EAAE,IAAI,EAAC,SAAS,GAAG,EACvFG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,eAAe,EAAA,QAAA,EAAA,CAC5BH,cAAA,CAAC,cAAc,EAAA,EACb,EAAE,EAAC,YAAY,EACf,KAAK,EAAE,CAAC,CAAC,MAAM,EACf,QAAQ,EAAA,IAAA,EACR,aAAa,EAAE,CAAC,CAAC,QAAQ,EACzB,KAAK,EAAE,WAAW,CAAC,QAAQ,IAAI,EAAE,EACjC,KAAK,EAAE,MAAM,CAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,CAAC,KAAI;AACd,4CAAA,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;4CACzD,KAAK,CAAC,UAAU,CAAC;AACnB,wCAAA,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,YAAY,EAC3B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAC7D,EACFA,cAAA,CAAC,cAAc,EAAA,EACb,EAAE,EAAC,UAAU,EACb,KAAK,EAAE,CAAC,CAAC,IAAI,EACb,QAAQ,EAAA,IAAA,EACR,aAAa,EAAE,CAAC,CAAC,QAAQ,EACzB,KAAK,EAAE,WAAW,CAAC,MAAM,IAAI,EAAE,EAC/B,QAAQ,EAAE,CAAC,cAAc,EACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EACpB,QAAQ,EAAE,CAAC,CAAC,KAAI;AACd,4CAAA,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;4CACvD,KAAK,CAAC,QAAQ,CAAC;wCACjB,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,UAAU,EACzB,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAA,CAClF,EACFA,cAAA,CAAC,KAAK,EAAA,EACJ,EAAE,EAAC,YAAY,EACf,KAAK,EAAE,CAAC,CAAC,UAAU,EACnB,QAAQ,EAAE,KAAK,CAAC,mBAAmB,EACnC,aAAa,EAAE,CAAC,CAAC,QAAQ,EACzB,SAAS,EAAC,gBAAgB,EAC1B,GAAG,EAAC,KAAK,EACT,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,WAAW,CAAC,UAAU,EAC7B,KAAK,EAAE,MAAM,CAAC,UAAU,EACxB,QAAQ,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACtE,MAAM,EAAE,MAAM,KAAK,CAAC,YAAY,CAAC,EAAA,CACjC,EACFA,cAAA,CAAC,KAAK,IACJ,EAAE,EAAC,WAAW,EACd,KAAK,EAAE,CAAC,CAAC,WAAW,EACpB,aAAa,EAAE,CAAC,CAAC,QAAQ,EACzB,SAAS,EAAC,gBAAgB,EAC1B,GAAG,EAAC,KAAK,EACT,SAAS,EAAC,KAAK,EACf,KAAK,EAAE,WAAW,CAAC,WAAW,EAC9B,QAAQ,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACvE,MAAM,EAAE,MAAM,eAAe,CAAC,aAAa,CAAC,EAAA,CAC5C,CAAA,EAAA,CACE,EACNA,cAAA,CAAC,KAAK,EAAA,EACJ,EAAE,EAAC,aAAa,EAChB,KAAK,EAAE,CAAC,CAAC,WAAW,EACpB,QAAQ,EAAA,IAAA,EACR,aAAa,EAAE,CAAC,CAAC,QAAQ,EACzB,KAAK,EAAE,WAAW,CAAC,OAAO,EAC1B,KAAK,EAAE,MAAM,CAAC,OAAO,EACrB,QAAQ,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACnE,MAAM,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC,EAAA,CAC9B,EACFA,cAAA,CAAC,KAAK,EAAA,EACJ,EAAE,EAAC,iBAAiB,EACpB,KAAK,EAAE,CAAC,CAAC,WAAW,EACpB,aAAa,EAAE,CAAC,CAAC,QAAQ,EACzB,KAAK,EAAE,WAAW,CAAC,WAAW,EAC9B,QAAQ,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACvE,MAAM,EAAE,MAAM,KAAK,CAAC,aAAa,CAAC,EAAA,CAClC,IACM,IACR,IAAI,CAAA,EAAA,CACJ,EAEL,cAAc,CAAC,MAAM,GAAG,CAAC,IACxBG,eAAA,CAAA,SAAA,EAAA,EAAS,SAAS,EAAC,sBAAsB,EAAA,iBAAA,EAAiB,mBAAmB,EAAA,QAAA,EAAA,CAC3EH,cAAA,CAAC,qBAAqB,EAAA,EAAC,EAAE,EAAC,mBAAmB,EAAC,KAAK,EAAE,CAAC,CAAC,eAAe,EAAE,IAAI,EAAC,UAAU,EAAA,CAAG,EAC1FA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAC7B,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,MACxBA,cAAA,CAAC,iBAAiB,EAAA,EAAiB,KAAK,EAAE,KAAK,EAAA,EAAvB,KAAK,CAAC,GAAG,CAAkB,CACpD,CAAC,EAAA,CACE,CAAA,EAAA,CACE,IACR,aAAa,IACfG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,sBAAsB,EAAC,IAAI,EAAC,MAAM,EAAA,QAAA,EAAA,CAC/CH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,4BAA4B,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAACA,cAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EAAA,CAAO,EACpFG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAAA,CACzCH,cAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAS,CAAC,CAAC,eAAe,EAAA,CAAU,EACpCA,cAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,CAAC,CAAC,mBAAmB,EAAA,CAAQ,CAAA,EAAA,CAChC,CAAA,EAAA,CACF,IACJ,IAAI,EAEP,YAAY,CAAC,MAAM,GAAG,CAAC,IACtBG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAA,CAC/BH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,wBAAwB,EAAA,QAAA,EAAA,cAAA,EAAA,CAAU,EAClDG,eAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACEH,cAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAS,CAAC,CAAC,iBAAiB,EAAA,CAAU,EACtCA,cAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,MACrBA,cAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAmB,IAAI,CAAC,IAAI,EAAA,EAAnB,IAAI,CAAC,EAAE,CAAkB,CACnC,CAAC,EAAA,CACC,CAAA,EAAA,CACD,CAAA,EAAA,CACF,IACJ,IAAI,CAAA,EAAA,CACA;AAEd;AAEA,SAAS,qBAAqB,CAAC,EAC7B,EAAE,EACF,KAAK,EACL,IAAI,EAKL,EAAA;IACC,QACEG,eAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAC,4BAA4B,aAC5CH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,4BAA4B,EAAA,aAAA,EAAa,MAAM,YAC5D,IAAI,KAAK,SAAS,GAAGA,cAAA,CAAC,WAAW,EAAA,EAAA,CAAG,GAAG,IAAI,KAAK,SAAS,GAAGA,cAAA,CAAC,WAAW,EAAA,EAAA,CAAG,GAAGA,cAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EAAA,CACvF,EACPA,uBAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,6BAA6B,EAAA,QAAA,EAAE,KAAK,EAAA,CAAM,CAAA,EAAA,CACzD;AAEb;AAEA,SAAS,WAAW,GAAA;AAClB,IAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CAC5EH,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAA,CAAG,EAC1EA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,oDAAoD,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAA,CAAG,CAAA,EAAA,CACzH;AAEV;AAEA,SAAS,WAAW,GAAA;AAClB,IAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CAC5EH,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,oDAAoD,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,cAAc,EAAC,OAAO,EAAA,CAAG,EAC9HA,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAA,CAAG,CAAA,EAAA,CACvE;AAEV;AAeA,SAAS,cAAc,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAuB,EAAA;AACzI,IAAA,QACEG,eAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAC,WAAW,EAAC,OAAO,EAAE,EAAE,EAAA,QAAA,EAAA,CACtCH,cAAA,CAAC,UAAU,EAAA,EAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAA,CAAI,EAC9EG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAAA,CAC9BA,eAAA,CAAA,QAAA,EAAA,EACE,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,CAAA,6BAAA,EAAgC,KAAK,GAAG,mBAAmB,GAAG,EAAE,CAAA,CAAE,EAC7E,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,QAAA,EAAA,CAEzCH,2BAAQ,KAAK,EAAC,EAAE,EAAA,QAAA,EAAE,WAAW,EAAA,CAAU,EACtC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,MACfA,2BAAwB,KAAK,EAAE,GAAG,CAAC,KAAK,EAAA,QAAA,EACrC,GAAG,CAAC,KAAK,IADC,GAAG,CAAC,KAAK,CAEb,CACV,CAAC,CAAA,EAAA,CACK,EACTA,yBAAM,SAAS,EAAC,oBAAoB,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EACrDA,cAAA,CAAC,WAAW,EAAA,EAAA,CAAG,GACV,CAAA,EAAA,CACH,EACL,KAAK,GAAGA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAE,KAAK,EAAA,CAAQ,GAAG,IAAI,CAAA,EAAA,CAC3D;AAEZ;AAEA,SAAS,WAAW,GAAA;AAClB,IAAA,QACEA,cAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAC5EA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,cAAc,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAA,CAAG,EAAA,CAC1G;AAEV;AAEA;;;;AAIG;AACH,SAAS,aAAa,GAAA;AACpB,IAAA,MAAM,GAAG,GAAGU,YAAM,CAAiB,IAAI,CAAC;AACxC,IAAA,MAAM,IAAI,GAAGA,YAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAE7DC,eAAS,CAAC,MAAK;AACb,QAAA,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO;AACtB,QAAA,IAAI,CAAC,EAAE;YAAE;AACT,QAAA,MAAM,OAAO,GAAG,CAAC,CAAa,KAAI;AAChC,YAAA,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW;AAAE,gBAAA,OAAO;AAC7C,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AAAE,gBAAA,OAAO;YACrD,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,EAAE,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM;AAC3B,QAAA,CAAC;AACD,QAAA,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACzD,OAAO,MAAM,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC;IACvD,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,aAAa,GAAG,CAAC,CAAqC,KAAI;AAC9D,QAAA,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO;AACtB,QAAA,IAAI,CAAC,EAAE;YAAE;QACT,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE;AAC1E,QAAA,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;AACjC,QAAA,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC;AAClC,IAAA,CAAC;AACD,IAAA,MAAM,aAAa,GAAG,CAAC,CAAqC,KAAI;AAC9D,QAAA,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO;QACtB,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;YAAE;QAC/B,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAC5E,IAAA,CAAC;AACD,IAAA,MAAM,WAAW,GAAG,CAAC,CAAqC,KAAI;AAC5D,QAAA,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO;QACtB,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;YAAE;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK;AACzB,QAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC;AACnC,QAAA,IAAI;AACF,YAAA,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;QACvC;AAAE,QAAA,MAAM;;QAER;AACF,IAAA,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE;AAC3D;AAEA,SAAS,iBAAiB,CAAC,EAAE,KAAK,EAA4B,EAAA;AAC5D,IAAA,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,GAAGN,uBAAW,EAAE;AAClD,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa;IACtC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,cAAc,CAAC;AACjF,IAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;AAC7E,IAAA,MAAM,WAAW,GAAG,aAAa,EAAE;IAEnC,QACEF,yBAAK,SAAS,EAAC,gBAAgB,EAAA,QAAA,EAAA,CAC7BA,eAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAC,sBAAsB,EAAA,QAAA,EAAA,CACtCH,yBACE,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAE,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,iBACrC,MAAM,EAAA,QAAA,EAEjB,YAAY,GAAGA,cAAA,CAAC,gBAAgB,EAAA,EAAC,IAAI,EAAE,YAAY,GAAI,GAAGA,cAAA,CAAC,SAAS,KAAG,EAAA,CACnE,EACPG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,yBAAyB,aACtCA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,2BAA2B,EAAA,QAAA,EAAA,CACxCH,2BAAQ,SAAS,EAAC,uBAAuB,EAAA,QAAA,EACtC,KAAK,CAAC,KAAK,IAAI,YAAY,EAAE,IAAI,IAAI,CAAC,CAAC,cAAc,EAAA,CAC/C,EACTA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,uBAAuB,EAAA,QAAA,EACpC,CAAC,CAAC,YAAY,CAACS,sBAAe,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAA,CACvD,IACH,EACL,YAAY,IACXN,0BAAM,SAAS,EAAC,sBAAsB,EAAA,QAAA,EAAA,CACnC,YAAY,CAAC,WAAW,IACvBH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,sBAAsB,YAAE,YAAY,CAAC,WAAW,EAAA,CAAQ,IACtE,IAAI,EACRA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,4BAA4B,EAAA,QAAA,EACzC,YAAY,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,GACvD,CAAA,EAAA,CACF,KAEPA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,sBAAsB,EAAA,QAAA,EAAE,CAAC,CAAC,eAAe,EAAA,CAAQ,CAClE,CAAA,EAAA,CACG,CAAA,EAAA,CACC,EAETA,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAC,uBAAuB,EACjC,GAAG,EAAE,WAAW,CAAC,GAAG,EACpB,aAAa,EAAE,WAAW,CAAC,aAAa,EACxC,aAAa,EAAE,WAAW,CAAC,aAAa,EACxC,WAAW,EAAE,WAAW,CAAC,WAAW,EACpC,eAAe,EAAE,WAAW,CAAC,WAAW,EAAA,QAAA,EAEvC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACpBG,eAAA,CAAA,SAAA,EAAA,EAAuB,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAA,CACjDA,yBAAK,SAAS,EAAC,yBAAyB,EAAA,QAAA,EAAA,CACrC,IAAI,CAAC,KAAK,EAAE,GAAG,IACdH,cAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,EAAA,CAAI,KAE9DA,cAAA,CAAC,kBAAkB,EAAA,EAAA,CAAG,CACvB,EACDA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,4BAA4B,YACzCS,sBAAe,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAClC,CAAA,EAAA,CACH,EACNN,yBAAK,SAAS,EAAC,wBAAwB,EAAA,QAAA,EAAA,CACrCH,cAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAC,wBAAwB,EAAA,QAAA,EAAE,IAAI,CAAC,IAAI,EAAA,CAAU,EAC9D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IACzBA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,yBAAyB,YACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,CAAA,EAAG,SAAS,CAAC,IAAI,CAAA,EAAA,EAAK,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAA,CACnF,IACL,IAAI,IACJ,CAAA,EAAA,EAlBM,IAAI,CAAC,EAAE,CAmBX,CACX,CAAC,EAAA,CACE,EAEL,CAAC,gBAAgB,IAAI,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,IACrDA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6BAA6B,EAAA,QAAA,EACzC,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,EAAA,CAC5B,IACJ,IAAI,EAEP,gBAAgB,IACfA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,eAAe,EAAC,IAAI,EAAC,YAAY,EAAA,QAAA,EAC7C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAkB,KAAI;oBACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,EAAE;oBACjD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE;AAC5C,oBAAA,QACEG,eAAA,CAAA,QAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EAAA,cAAA,EACE,QAAQ,gBACV,WAAW,GAAG,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,GAAA,EAAM,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,EACrE,QAAQ,EAAE,IAAI,EACd,SAAS,EAAE,CAAA,QAAA,EAAW,QAAQ,GAAG,qBAAqB,GAAG,EAAE,CAAA,CAAE,EAC7D,OAAO,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,EAAA,QAAA,EAAA,CAE7DH,cAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAC,gBAAgB,EAC1B,KAAK,EAAE,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,iBAC5B,MAAM,EAAA,QAAA,EAElBA,eAAC,gBAAgB,EAAA,EAAC,IAAI,EAAE,IAAI,EAAA,CAAI,EAAA,CAC3B,EACPG,eAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,gBAAgB,EAAA,QAAA,EAAA,CAC9BH,yBAAM,SAAS,EAAC,gBAAgB,EAAA,QAAA,EAAE,IAAI,CAAC,IAAI,GAAQ,EAClD,IAAI,CAAC,KAAK,GAAG,CAAC,IACbA,yBAAM,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAA,CAAQ,IAC1D,IAAI,CAAA,EAAA,CACH,EACPA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,iBAAiB,iBAAa,MAAM,EAAA,QAAA,EACjD,QAAQ,GAAGA,cAAA,CAACM,WAAS,KAAG,GAAG,IAAI,EAAA,CAC3B,EACN,WAAW,IACVN,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,uBAAuB,EAAA,QAAA,EAAE,WAAW,EAAA,CAAQ,IAC1D,IAAI,CAAA,EAAA,EA3BH,IAAI,CAAC,EAAE,CA4BL;gBAEb,CAAC,CAAC,GACE,IACJ,IAAI,CAAA,EAAA,CACJ;AAEV;AAEA,MAAMe,YAAU,GAAG;AACjB,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,MAAM,EAAE,EAAE;AACV,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,cAAc;AACtB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,aAAa,EAAE,OAAO;AACtB,IAAA,cAAc,EAAE,OAAO;AACvB,IAAA,aAAa,EAAE,IAAI;CACX;AAEV,SAAS,SAAS,GAAA;IAChB,QACEZ,4BAASY,YAAU,EAAA,QAAA,EAAA,CACjBf,yBAAM,CAAC,EAAC,2DAA2D,EAAA,CAAG,EACtEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,EAAA,CAAG,EACpBA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,8EAA8E,EAAA,CAAG,EACzFA,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,EAC/BA,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,CAAA,EAAA,CAC5B;AAEV;AAEA,SAAS,gBAAgB,CAAC,EAAE,IAAI,EAA0B,EAAA;AACxD,IAAA,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC;IAEzC,QAAQ,OAAO;AACb,QAAA,KAAK,MAAM;YACT,OAAOA,cAAA,CAAC,QAAQ,EAAA,EAAA,CAAG;AACrB,QAAA,KAAK,eAAe;YAClB,OAAOA,cAAA,CAAC,gBAAgB,EAAA,EAAA,CAAG;AAC7B,QAAA,KAAK,SAAS;YACZ,OAAOA,cAAA,CAAC,WAAW,EAAA,EAAA,CAAG;AACxB,QAAA,KAAK,cAAc;YACjB,OAAOA,cAAA,CAAC,eAAe,EAAA,EAAA,CAAG;AAC5B,QAAA;AACE,YAAA,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAGA,cAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAC,EAAE,EAAA,CAAG,GAAGA,cAAA,CAAC,SAAS,KAAG;;AAEhG;AAEA,SAAS,mBAAmB,CAAC,IAAkB,EAAA;IAC7C,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AACvF,IAAA,IAAI,QAAQ;AAAE,QAAA,OAAO,QAAQ;IAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC3C,IAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAAE,QAAA,OAAO,MAAM;AAChE,IAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAAE,QAAA,OAAO,eAAe;AAC5E,IAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AAAE,QAAA,OAAO,SAAS;AACtE,IAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;AAAE,QAAA,OAAO,cAAc;AAClF,IAAA,OAAO,EAAE;AACX;AAEA;;;;AAIG;AACH,MAAM,qBAAqB,GAA2B;AACpD,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,KAAK,EAAE;CACR;AAED,SAAS,oBAAoB,CAAC,GAAW,EAAA;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AACtC,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,SAAS;;AAE5B,IAAA,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,MAAM;AAAE,QAAA,OAAO,SAAS;AAC/D,IAAA,IAAI,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,OAAO;AAAE,QAAA,OAAO,SAAS;IAClE,IAAI,qBAAqB,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,qBAAqB,CAAC,KAAK,CAAC;;IAErE,IAAI,kBAAkB,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,KAAK;AAC3C,IAAA,OAAO,SAAS;AAClB;AAEA,SAAS,qBAAqB,CAAC,KAAc,EAAA;AAC3C,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,SAAS;AAE5B,IAAA,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC;;AAG5C,IAAA,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAO,SAAS;AAE/B,IAAA,MAAM,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC;AACxC,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,OAAO,SAAS;IAE1B,MAAM,SAAS,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG;;;AAI1E,IAAA,IAAI,SAAS,GAAG,GAAG,EAAE;QACnB,OAAO;AACL,YAAA,kBAAkB,EAAE,SAAS;AAC7B,YAAA,uBAAuB,EAAE;SACT;IACpB;AAEA,IAAA,MAAM,UAAU,GAAG,SAAS,GAAG;UAC3B,CAAA,IAAA,EAAO,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA;UAClE,QAAQ;IAEZ,OAAO;QACL,kBAAkB,EAAE,CAAA,mBAAA,EAAsB,QAAQ,CAAA,sBAAA,CAAwB;AAC1E,QAAA,uBAAuB,EAAE;KACT;AACpB;AAEA,SAAS,kBAAkB,CAAC,KAAa,EAAA;AACvC,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,CAAC;AACtE,IAAA,IAAI,GAAG,EAAE,MAAM,KAAK,CAAC,EAAE;AACrB,QAAA,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAA6B;IACpG;IACA,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;QAC1B,OAAO;YACL,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YAC7B,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YAC7B,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;SAC7B;IACH;IACA,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,2CAA2C,CAAC;AACzE,IAAA,IAAI,QAAQ;QAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,IAAA,OAAO,IAAI;AACb;AAEA,SAAS,UAAU,CAAC,KAAa,EAAA;IAC/B,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;AAC7F;AAEA,SAAS,QAAQ,GAAA;AACf,IAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAA,GAASY,YAAU,EAAA,QAAA,EAAA,CACjBf,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2HAA2H,EAAA,CAAG,EACtIA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,oBAAoB,EAAA,CAAG,EAC/BA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,WAAW,EAAA,CAAG,EACtBA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,gBAAgB,EAAA,CAAG,CAAA,EAAA,CACvB;AAEV;AAEA,SAAS,gBAAgB,GAAA;AACvB,IAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAA,GAASY,YAAU,EAAA,QAAA,EAAA,CACjBf,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,8GAA8G,EAAA,CAAG,EACzHA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,oBAAoB,EAAA,CAAG,EAC/BA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,WAAW,EAAA,CAAG,EACtBA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,kBAAkB,EAAA,CAAG,CAAA,EAAA,CACzB;AAEV;AAEA,SAAS,WAAW,GAAA;IAClB,QACEG,eAAA,CAAA,KAAA,EAAA,EAAA,GAASY,YAAU,EAAA,QAAA,EAAA,CACjBf,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAA,CAAG,EACrCA,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,MAAM,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAA,CAAG,EACtCA,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,EAC/BA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,4BAA4B,EAAA,CAAG,CAAA,EAAA,CACnC;AAEV;AAEA,SAAS,eAAe,GAAA;IACtB,QACEG,eAAA,CAAA,KAAA,EAAA,EAAA,GAASY,YAAU,EAAA,QAAA,EAAA,CACjBf,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAA,CAAG,EAClCA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,mCAAmC,EAAA,CAAG,EAC9CA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,KAAK,EAAA,CAAG,EACxDA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,EAAA,CAAG,EACvBA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,gBAAgB,EAAA,CAAG,CAAA,EAAA,CACvB;AAEV;AAEA,SAASM,WAAS,GAAA;AAChB,IAAA,QACEN,cAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAC5EA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,sBAAsB,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAA,CAAG,EAAA,CAChH;AAEV;;ACpqBA;AACA,SAAS,gBAAgB,CACvB,QAAyB,EACzB,CAAU,EACV,KAAiC,EACjC,MAAsB,EAAA;IAEtB,MAAM,KAAK,GAAa,EAAE;AAC1B,IAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE;AACjE,QAAA,MAAM,UAAU,GAAG,CAAC,CAAC,kBAAkB,CAACO,oBAAa,CAAC,QAAQ,CAAC,OAAiB,EAAE,MAAM,CAAC,CAAC;QAC1F,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAA,EAAG,UAAU,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,CAAA,CAAG,GAAG,UAAU,CAAC;IAC5F;AAAO,SAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,QAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD;AACA,IAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,EAAE;AAC1E,QAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACpC;AACA,IAAA,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;AACpD;SAEgB,WAAW,GAAA;AACzB,IAAA,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAGF,uBAAW,EAAE;AAClD,IAAA,MAAM,EACJ,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,KAAK,EACL,MAAM,EACP,GAAG,KAAK;IAET,QACEF,eAAA,CAAA,SAAA,EAAA,EAAS,SAAS,EAAC,gBAAgB,EAAA,QAAA,EAAA,CACjCH,cAAA,CAAC,YAAY,EAAA,EAAA,QAAA,EAAE,CAAC,CAAC,aAAa,EAAA,CAAgB,EAE7C,KAAK,CAAC,eAAe,IACpBG,eAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAA,CAC/BH,cAAA,CAAC,OAAO,EAAA,EAAA,CAAG,EAAA,GAAA,EAAE,CAAC,CAAC,OAAO,CAAA,EAAA,CACpB,KAEJA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,cAAc,EAAC,IAAI,EAAC,YAAY,EAAA,YAAA,EAAa,CAAC,CAAC,aAAa,EAAA,QAAA,EACxE,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;AAC7B,oBAAA,MAAM,QAAQ,GAAG,uBAAuB,KAAK,MAAM,CAAC,EAAE;oBACtD,MAAM,IAAI,GAAGgB,wBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;;AAEnD,oBAAA,MAAM,YAAY,GAAG,MAAM,KAAK,IAAI,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK;oBACpE,MAAM,KAAK,GAAG,YAAY,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK;AAChD,oBAAA,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,WAAW;oBAClE,QACEb,4BAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EAAA,cAAA,EACE,QAAQ,EACtB,SAAS,EAAE,CAAA,OAAA,EAAU,QAAQ,GAAG,oBAAoB,GAAG,EAAE,CAAA,CAAE,EAC3D,OAAO,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAA,QAAA,EAAA,CAErDH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,eAAe,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAChDA,cAAA,CAAC,WAAW,EAAA,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAI,EAAA,CAC3B,EACPG,0BAAM,SAAS,EAAC,eAAe,EAAA,QAAA,EAAA,CAC7BH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,eAAe,EAAA,QAAA,EAAE,KAAK,EAAA,CAAQ,EAC9CA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,eAAe,EAAA,QAAA,EAAE,WAAW,EAAA,CAAQ,CAAA,EAAA,CAC/C,EACPA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,gBAAgB,EAAA,aAAA,EAAa,MAAM,YAChD,QAAQ,GAAGA,cAAA,CAAC,SAAS,KAAG,GAAG,IAAI,EAAA,CAC3B,CAAA,EAAA,EAhBF,MAAM,CAAC,EAAE,CAiBP;gBAEb,CAAC,CAAC,GACE,CACP,EAEDA,eAAC,YAAY,EAAA,EAAA,QAAA,EAAE,CAAC,CAAC,YAAY,GAAgB,EAC5C,eAAe,IACdG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oCAAoC,EAAA,QAAA,EAAA,CACjDH,yBAAM,SAAS,EAAC,oBAAoB,EAAA,aAAA,EAAa,MAAM,YACrDA,cAAA,CAAC,OAAO,KAAG,EAAA,CACN,EACPG,0BAAM,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAA,CAClCH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAE,eAAe,CAAC,IAAI,GAAQ,EAClEA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,oBAAoB,YACjC,gBAAgB,CAAC,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAA,CAC5D,CAAA,EAAA,CACF,EACPG,eAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,qBAAqB,aACnCH,cAAA,CAAC,SAAS,KAAG,EAAA,GAAA,EAAE,CAAC,CAAC,OAAO,CAAA,EAAA,CACnB,EACPA,cAAA,CAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAE,MAAM,OAAO,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,gBAAgB,EAAA,QAAA,EAC7F,CAAC,CAAC,MAAM,EAAA,CACF,IACL,KAENG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oBAAoB,aACjCA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,cAAc,EAAA,QAAA,EAAA,CAC3BA,0BAAM,SAAS,EAAC,yBAAyB,EAAA,QAAA,EAAA,CACvCH,cAAA,CAAC,OAAO,EAAA,EAAA,CAAG,EACXA,0BACE,SAAS,EAAE,YAAY,aAAa,GAAG,mBAAmB,GAAG,EAAE,EAAE,EACjE,WAAW,EAAE,CAAC,CAAC,mBAAmB,EAClC,KAAK,EAAE,YAAY,EAAA,cAAA,EACL,aAAa,GAAG,IAAI,GAAG,SAAS,EAC9C,QAAQ,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACxD,SAAS,EAAE,CAAC,CAAC,KAAI;AACf,4CAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;gDAAE,OAAO,CAAC,aAAa,EAAE;AAChD,wCAAA,CAAC,EAAA,CACD,CAAA,EAAA,CACG,EACPA,cAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,MAAM,OAAO,CAAC,aAAa,EAAE,EACtC,OAAO,EAAE,KAAK,CAAC,gBAAgB,EAC/B,QAAQ,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAA,QAAA,EAE7B,CAAC,CAAC,KAAK,EAAA,CACD,CAAA,EAAA,CACL,EACL,aAAa,IACZG,eAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,qBAAqB,EAAC,IAAI,EAAC,OAAO,EAAA,QAAA,EAAA,CAC7CH,cAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EACZ,aAAa,CAAA,EAAA,CACZ,IACF,IAAI,CAAA,EAAA,CACJ,CACP,CAAA,EAAA,CACO;AAEd;AAEA,SAAS,OAAO,GAAA;AACd,IAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CACjKH,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,yEAAyE,EAAA,CAAG,EACpFA,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,MAAM,EAAC,EAAE,EAAC,KAAK,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,cAAc,EAAC,MAAM,EAAC,MAAM,EAAA,CAAG,CAAA,EAAA,CACjE;AAEV;AAEA,MAAM,UAAU,GAAG;AACjB,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,MAAM,EAAE,EAAE;AACV,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,cAAc;AACtB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,aAAa,EAAE,OAAgB;AAC/B,IAAA,cAAc,EAAE,OAAgB;AAChC,IAAA,aAAa,EAAE;CAChB;AAED,SAAS,SAAS,GAAA;AAChB,IAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CAC5EH,2BAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAA,CAAG,EACxEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAA,CAAG,EACrFA,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,MAAM,EAAC,IAAI,EAAC,cAAc,EAAA,CAAG,CAAA,EAAA,CAClD;AAEV;AAEA,SAAS,SAAS,GAAA;AAChB,IAAA,QACEA,cAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAC5EA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,sBAAsB,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAA,CAAG,EAAA,CAChH;AAEV;AAEA,SAAS,WAAW,CAAC,EAAE,IAAI,EAA+B,EAAA;IACxD,QAAQ,IAAI;AACV,QAAA,KAAK,MAAM;;AAET,YAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAA,GAAS,UAAU,EAAA,QAAA,EAAA,CACjBH,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,GAAG,EACjDA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,oBAAoB,EAAA,CAAG,EAC/BA,yBAAM,CAAC,EAAC,yBAAyB,EAAA,CAAG,CAAA,EAAA,CAChC;AAEV,QAAA,KAAK,KAAK;;AAER,YAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAA,GAAS,UAAU,EAAA,QAAA,EAAA,CACjBH,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,+BAA+B,EAAA,CAAG,EAC1CA,yBAAM,CAAC,EAAC,0BAA0B,EAAA,CAAG,CAAA,EAAA,CACjC;AAEV,QAAA,KAAK,MAAM;;AAET,YAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAA,GAAS,UAAU,EAAA,QAAA,EAAA,CACjBH,yBAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EAClDA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,mCAAmC,EAAA,CAAG,CAAA,EAAA,CAC1C;AAEV,QAAA,KAAK,QAAQ;YACX,QACEG,eAAA,CAAA,KAAA,EAAA,EAAA,GAAS,UAAU,EAAA,QAAA,EAAA,CACjBH,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,KAAK,EAAA,CAAG,EACtDA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,WAAW,EAAA,CAAG,EACtBA,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,IAAI,EAAC,cAAc,EAAC,MAAM,EAAC,MAAM,EAAA,CAAG,CAAA,EAAA,CAClE;AAEV,QAAA,KAAK,MAAM;;AAET,YAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAA,GAAS,UAAU,EAAA,QAAA,EAAA,CACjBH,yBAAM,CAAC,EAAC,yEAAyE,EAAA,CAAG,EACpFA,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,MAAM,EAAC,EAAE,EAAC,KAAK,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,cAAc,EAAC,MAAM,EAAC,MAAM,EAAA,CAAG,CAAA,EAAA,CACjE;AAEV,QAAA,KAAK,SAAS;AACd,QAAA;;AAEE,YAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAA,GAAS,UAAU,EAAA,QAAA,EAAA,CACjBH,yBAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EACtDA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,wBAAwB,EAAA,CAAG,CAAA,EAAA,CAC/B;;AAGd;;ACtOM,SAAU,UAAU,CAAC,EAAE,mBAAmB,EAAoC,EAAA;IAClF,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,GAAGK,uBAAW,EAAE;AAC3C,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AAC3B,IAAA,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,SAAS;AAE1C,IAAA,MAAM,QAAQ,GAAG;QACf,OAAO,EAAE,CAAC,CAAC,cAAc;QACzB,MAAM,EAAE,CAAC,CAAC,aAAa;QACvB,OAAO,EAAE,CAAC,CAAC,cAAc;QACzB,cAAc,EAAE,CAAC,CAAC;KACV;IAEV,QACEF,6BAAS,SAAS,EAAE,0BAA0B,MAAM,CAAA,CAAE,EAAA,QAAA,EAAA,CACpDH,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAC9B,MAAM,KAAK,SAAS,IACnBA,cAAA,CAAC,WAAW,EAAA,EAAA,CAAG,IACb,MAAM,KAAK,SAAS,IACtBA,cAAA,CAAC,OAAO,EAAA,EAAA,CAAG,KAEXA,cAAA,CAAC,WAAW,KAAG,CAChB,EAAA,CACG,EAENA,cAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAM,EAExD,MAAM,KAAK,SAAS,GAAGA,cAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,WAAW,EAAA,QAAA,EAAE,CAAC,CAAC,kBAAkB,EAAA,CAAK,GAAG,IAAI,EACjF,MAAM,EAAE,OAAO,GAAGA,cAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,WAAW,EAAA,QAAA,EAAE,MAAM,CAAC,OAAO,EAAA,CAAK,GAAG,IAAI,EAEtE,MAAM,EAAE,KAAK,IACZG,eAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,mBAAmB,aAC7B,CAAC,CAAC,WAAW,EAAA,IAAA,EAAGH,cAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAS,MAAM,CAAC,KAAK,CAAC,WAAW,EAAA,CAAU,CAAA,EAAA,CAC1D,IACF,IAAI,EAERG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,aACjC,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,gBAAgB,IACjDH,cAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAA,QAAA,EAAG,CAAC,CAAC,QAAQ,GAAU,IACvE,IAAI,EACP,mBAAmB,IAClBA,cAAA,CAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,mBAAmB,CAAC,EAAA,QAAA,EAClF,CAAC,CAAC,gBAAgB,EAAA,CACZ,IACP,IAAI,CAAA,EAAA,CACJ,CAAA,EAAA,CACE;AAEd;AAEA,SAAS,WAAW,GAAA;AAClB,IAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CAC5EH,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAA,CAAG,EACzEA,cAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,oBAAoB,EACtB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EAAA,CACtB,CAAA,EAAA,CACE;AAEV;AAEA,SAAS,WAAW,GAAA;AAClB,IAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CAC5EH,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAA,CAAG,EACzEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,0BAA0B,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAA,CAAG,CAAA,EAAA,CAC/F;AAEV;;ACtCA,SAAS,SAAS,CAAC,KAAqB,EAAA;IACtC,MAAM,IAAI,GAA2B,EAAE;IACvC,IAAI,KAAK,EAAE,MAAM;AAAE,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,MAAM;IACtD,IAAI,KAAK,EAAE,gBAAgB;AAAE,QAAA,IAAI,CAAC,yBAAyB,CAAC,GAAG,KAAK,CAAC,gBAAgB;IACrF,IAAI,KAAK,EAAE,UAAU;AAAE,QAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,UAAU;IACnE,IAAI,KAAK,EAAE,UAAU;AAAE,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU;IAC1D,IAAI,KAAK,EAAE,UAAU;AAAE,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU;IAC1D,IAAI,KAAK,EAAE,KAAK;AAAE,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,KAAK;IACnD,IAAI,KAAK,EAAE,eAAe;AAAE,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,eAAe;IAC1E,IAAI,KAAK,EAAE,MAAM;AAAE,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,MAAM;IACtD,IAAI,KAAK,EAAE,IAAI;AAAE,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,IAAI;IAChD,IAAI,KAAK,EAAE,iBAAiB;AAAE,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,iBAAiB;IAChF,IAAI,KAAK,EAAE,MAAM;AAAE,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,MAAM;IACtD,IAAI,KAAK,EAAE,OAAO;AAAE,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,OAAO;AACzD,IAAA,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI;QAAE,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAA,EAAA,CAAI;IACrE,IAAI,KAAK,EAAE,UAAU;AAAE,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,UAAU;AAC5D,IAAA,OAAO,IAAqB;AAC9B;AAEA,SAAS,gBAAgB,CAAC,EAAE,KAAK,EAAqB,EAAA;IACpD,QACEG,yBAAK,SAAS,EAAC,gCAAgC,EAAC,IAAI,EAAC,QAAQ,EAAA,YAAA,EAAa,KAAK,EAAA,QAAA,EAAA,CAC7EA,eAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,UAAU,iBAAa,MAAM,EAAA,QAAA,EAAA,CAC3CA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uBAAuB,aACpCH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kCAAkC,EAAA,CAAG,EACrDG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAA,CAChCH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kCAAkC,GAAG,EACrDA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,iCAAiC,EAAA,CAAG,EACpDA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kCAAkC,EAAA,CAAG,IACjD,EACNA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,oCAAoC,GAAG,CAAA,EAAA,CACnD,EACNG,yBAAK,SAAS,EAAC,uBAAuB,EAAA,QAAA,EAAA,CACpCH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kCAAkC,EAAA,CAAG,EACrDG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAA,CAChCH,yBAAM,SAAS,EAAC,kCAAkC,EAAA,CAAG,EACrDA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,iCAAiC,GAAG,EACpDA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kCAAkC,GAAG,CAAA,EAAA,CACjD,EACNA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,oCAAoC,GAAG,CAAA,EAAA,CACnD,CAAA,EAAA,CACD,EAEPG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,UAAU,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CAC1CA,eAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAC,mCAAmC,aAClDA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,yBAAyB,EAAA,QAAA,EAAA,CACtCH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,0CAA0C,GAAG,EAC7DA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,0CAA0C,GAAG,CAAA,EAAA,CACzD,EACNG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,4BAA4B,aACzCA,eAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CAAKH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,cAAc,GAAG,EAAAA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,cAAc,EAAA,CAAG,IAAM,EAC7EG,eAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CAAKH,yBAAM,SAAS,EAAC,cAAc,EAAA,CAAG,EAAAA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,cAAc,GAAG,CAAA,EAAA,CAAM,CAAA,EAAA,CACzE,EACNG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAAA,CACzCH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,cAAc,GAAG,EACjCA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,cAAc,GAAG,CAAA,EAAA,CAC7B,CAAA,EAAA,CACA,EACRA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,eAAe,EAAA,QAAA,EAC5BA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,mCAAmC,GAAG,EAAA,CAClD,CAAA,EAAA,CACF,CAAA,EAAA,CACF;AAEV;AAEM,SAAU,cAAc,CAAC,EAC7B,KAAK,EACL,mBAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GACK,EAAA;AACpB,IAAA,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAGK,uBAAW,EAAE;IAC3D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK;AAE/C,IAAA,MAAM,QAAQ,GAAG,IAAI,KAAK,QAAQ;IAClC,MAAM,aAAa,GACjB,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,aAAa,CAAC;AACrF,IAAA,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,KAAK,MAAM;AAErD,IAAA,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;AAC9D,IAAA,MAAM,aAAa,GACjB,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,SAAS,KAAK,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,SAAS;AAE9E,IAAA,MAAM,QAAQ,GACZ,KAAK,CAAC,MAAM,KAAK,SAAS;AAC1B,QAAA,KAAK,CAAC,aAAa;AACnB,QAAA,KAAK,CAAC,eAAe;AACrB,QAAA,KAAK,CAAC,eAAe;QACrB,KAAK,CAAC,YAAY;IAEpB,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,EAAE,aAAa,KAAK,KAAK;IAC5D,MAAM,iBAAiB,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,UAAU;IACjE,MAAM,aAAa,GACjB,CAAC,aAAa;AACd,SAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;AAC9B,YAAA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;AAChE,IAAA,MAAM,YAAY,GAChB,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,uBAAuB,IAAI,IAAI;AAC1E,IAAA,MAAM,YAAY,GAChB,IAAI,KAAK;AACP,UAAE;UACA,IAAI,KAAK;AACT,cAAE,CAAC,iBAAiB,IAAI,CAAC;cACvB,IAAI,KAAK;kBACP,CAAC;kBACD,KAAK;AAEf,IAAA,MAAM,SAAS,GACb,IAAI,KAAK;UACL,CAAC,CAAC;UACF,IAAI,KAAK;cACP,aAAa,IAAI;kBACf,CAAC,CAAC;kBACF,CAAC,CAAC;AACN,cAAE,CAAC,CAAC,cAAc;AAExB,IAAA,MAAM,WAAW,GACf,IAAI,KAAK,MAAM,IAAI;AACjB,UAAE,MAAK,EAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAC;UACpD,MAAM,OAAO,CAAC,IAAI,EAAE;IAE1B,MAAM,WAAW,GACf,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,mBAAmB;AAE1C,IAAA,MAAM,eAAe,GAAsB;AACzC,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,EAAE;AAC7B,QAAA,QAAQ,EAAE,SAAS;KACpB;AAED,IAAA,MAAM,eAAe,GAAsB;AACzC,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,CAAC,CAAC,IAAI;KACjB;AAED;AAC4D;IAC5D,MAAM,cAAc,GAAG,gBAAgB,IACrC,gBAAgB,CAAC,eAAe,CAAC,KAEjCL,eAAC,MAAM,EAAA,EACL,SAAS,EAAC,kBAAkB,EAC5B,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,EAAE,YAE5B,SAAS,EAAA,CACH,CACV;IAED,MAAM,cAAc,GAAG,WAAW,IAChC,gBAAgB,IACd,gBAAgB,CAAC,eAAe,CAAC,KAEjCG,eAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,cAAc,EAAC,OAAO,EAAE,WAAW,EAAA,QAAA,EAAA,CACnEH,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAC,gBAAgB,EAC1B,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,IAAI,EAAC,MAAM,EAAA,aAAA,EACC,MAAM,YAElBA,cAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,sBAAsB,EACxB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB,EAAA,CACE,EACL,CAAC,CAAC,IAAI,IACA,CACV,IACC,IAAI;AAER,IAAA,MAAM,cAAc,GAAG,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,aAAa;AAE7E;AAC0E;IAC1E,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAU;IAC1D,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAkC,CAAC;AACvE,IAAA,MAAM,SAAS,GACb,IAAI,KAAK;UACL,CAAC,CAAC;UACF,IAAI,KAAK;cACP,CAAC,CAAC;cACF,IAAI,KAAK;kBACP,CAAC,CAAC;AACJ,kBAAE,CAAC,CAAC,UAAU;AACtB,IAAA,MAAM,QAAQ,GACZ,IAAI,KAAK;AACP,UAAE;UACA,IAAI,KAAK;AACT,cAAEI;cACA,IAAI,KAAK;AACT,kBAAE;kBACA,aAAa;AACvB,IAAA,MAAM,UAAU,IACdD,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAAA,CAC7B,aAAa,IAAI,WAAW,IAC3BH,cAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,uBAAuB,EAAA,YAAA,EACrB,CAAC,CAAC,IAAI,EAClB,OAAO,EAAE,WAAW,EAAA,QAAA,EAEpBA,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAC,gBAAgB,EAC1B,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,IAAI,EAAC,MAAM,EAAA,aAAA,EACC,MAAM,EAAA,QAAA,EAElBA,cAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,sBAAsB,EACxB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EAAA,CACtB,EAAA,CACE,EAAA,CACC,KAETA,cAAA,CAAA,MAAA,EAAA,EAAA,CAAQ,CACT,EACDG,eAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,wBAAwB,EAAA,QAAA,EAAA,CACtCH,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,sBAAsB,EAAA,QAAA,EACpCA,cAAA,CAAC,QAAQ,EAAA,EAAA,CAAG,EAAA,CACP,EACN,SAAS,IACL,EACN,SAAS,IAAI,CAAC,IACbA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,wBAAwB,EAAA,QAAA,EACrC,CAAC,CAAC,MAAM,CACPiB,mBAAY,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EACzCA,mBAAY,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAC7C,EAAA,CACI,KAEPjB,cAAA,CAAA,MAAA,EAAA,EAAA,CAAQ,CACT,CAAA,EAAA,CACG,CACP;AAED,IAAA,QACEG,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,WAAW,SAAS,GAAG,IAAI,SAAS,CAAA,CAAE,GAAG,EAAE,CAAA,CAAE,EACxD,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,aAEtB,UAAU,EACXH,cAAA,CAAC,OAAO,KAAG,EAEV,aAAa,IACZA,cAAA,CAAC,gBAAgB,IAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAA,CAAI,IACpC,KAAK,IACPA,cAAA,CAAC,WAAW,EAAA,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAA,CAAI,IACrC,QAAQ,IACVA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAC9BA,eAAC,UAAU,EAAA,EAAC,mBAAmB,EAAE,mBAAmB,EAAA,CAAI,EAAA,CACpD,KAENA,cAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EACEE,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,UAAA,EAAa,SAAS,GAAG,mBAAmB,GAAG,EAAE,CAAA,CAAE,EAAA,QAAA,EAAA,CACjEA,0BAAM,SAAS,EAAC,UAAU,EAAA,QAAA,EAAA,CACvB,KAAK,GAAGH,eAAC,WAAW,EAAA,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAA,CAAI,GAAG,IAAI,EAEtD,IAAI,KAAK,MAAM,GAAGA,eAAC,QAAQ,EAAA,EAAC,mBAAmB,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,GAAI,GAAG,IAAI,EAC7G,IAAI,KAAK,UAAU,GAAGA,cAAA,CAAC,YAAY,KAAG,GAAG,IAAI,EAC7C,IAAI,KAAK,SAAS,GAAGA,cAAA,CAAC,WAAW,KAAG,GAAG,IAAI,EAE3C,cAAc,IAAI,cAAc,IAC/BA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,cAAc,EAAA,QAAA,EAAE,cAAc,GAAO,IAClD,IAAI,CAAA,EAAA,CACH,EAEN,CAAC,SAAS,IACTG,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,UAAU,EAAA,QAAA,EAAA,CACvBH,cAAA,CAAC,YAAY,EAAA,EAAA,CAAG,EACf,cAAc,GAAGA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,eAAe,EAAA,QAAA,EAAE,cAAc,EAAA,CAAO,GAAG,IAAI,CAAA,EAAA,CAC1E,IACJ,IAAI,IACJ,EAAA,CACL,CACJ,EAEA,cAAc,IACbA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gBAAgB,EAAA,QAAA,EAC7BG,yBAAK,SAAS,EAAC,YAAY,EAAA,QAAA,EAAA,CACzBA,yBAAK,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAA,CAChCH,yBAAM,SAAS,EAAC,yBAAyB,EAAA,QAAA,EAAE,CAAC,CAAC,KAAK,EAAA,CAAQ,EAC1DA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,yBAAyB,YAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAA,CAAQ,CAAA,EAAA,CACnE,EACNA,wBAAK,SAAS,EAAC,qBAAqB,EAAA,QAAA,EAAE,cAAc,EAAA,CAAO,CAAA,EAAA,CACvD,EAAA,CACF,IACJ,IAAI,CAAA,EAAA,CACJ;AAEV;;SCnUgB,kBAAkB,CAAC,EACjC,WAAW,EACX,MAAM,EACN,mBAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GACS,EAAA;AACxB,IAAA,MAAM,QAAQ,GAAG,mBAAmB,IAAI,IAAI;AAC5C,IAAA,MAAM,MAAM,GAAGkB,2BAAe,EAAE;AAEhC,IAAA,QACEf,eAAA,CAACgB,4BAAgB,EAAA,EACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,CAAC,QAAQ,EAAA,QAAA,EAAA,CAEnB,QAAQ,GAAGnB,cAAA,CAAC,aAAa,IAAC,MAAM,EAAE,mBAAmB,EAAA,CAAI,GAAG,IAAI,EACjEA,cAAA,CAAC,cAAc,EAAA,EACb,KAAK,EAAE,MAAM,EAAE,KAAK,EACpB,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,EAChD,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAe,EAAA,CAChC,CAAA,EAAA,CACe;AAEvB;AAEA,SAAS,aAAa,CAAC,EAAE,MAAM,EAAsC,EAAA;AACnE,IAAA,MAAM,EAAE,OAAO,EAAE,GAAGK,uBAAW,EAAE;IACjCM,eAAS,CAAC,MAAK;AACb,QAAA,KAAK,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC;;IAE3C,CAAC,EAAE,EAAE,CAAC;AACN,IAAA,OAAO,IAAI;AACb;;;;;;;;;;;;;;"}
|