@thebasenet/ui 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/dist/brand/index.d.mts +55 -0
- package/dist/brand/index.d.ts +55 -0
- package/dist/brand/index.js +152 -0
- package/dist/brand/index.js.map +1 -0
- package/dist/brand/index.mjs +152 -0
- package/dist/brand/index.mjs.map +1 -0
- package/dist/components/index.d.mts +122 -0
- package/dist/components/index.d.ts +122 -0
- package/dist/components/index.js +848 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/index.mjs +7956 -0
- package/dist/components/index.mjs.map +1 -0
- package/dist/index.d.mts +32 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.js +2801 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +32365 -0
- package/dist/index.mjs.map +1 -0
- package/dist/tokens/index.d.mts +190 -0
- package/dist/tokens/index.d.ts +190 -0
- package/dist/tokens/index.js +104 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/tokens/index.mjs +104 -0
- package/dist/tokens/index.mjs.map +1 -0
- package/dist/ui/index.d.mts +302 -0
- package/dist/ui/index.d.ts +302 -0
- package/dist/ui/index.js +2058 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/index.mjs +31585 -0
- package/dist/ui/index.mjs.map +1 -0
- package/dist/utils/cn.d.mts +5 -0
- package/dist/utils/cn.d.ts +5 -0
- package/dist/utils/cn.js +11 -0
- package/dist/utils/cn.js.map +1 -0
- package/dist/utils/cn.mjs +3197 -0
- package/dist/utils/cn.mjs.map +1 -0
- package/package.json +102 -0
- package/styles/animations.css +63 -0
- package/styles/globals.css +31 -0
- package/styles/theme.css +97 -0
- package/styles/variables.css +238 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../mnt/GitHub/tcn-ui/node_modules/clsx/dist/clsx.mjs","../../mnt/GitHub/tcn-ui/node_modules/tailwind-merge/src/lib/utils.ts","../../mnt/GitHub/tcn-ui/node_modules/tailwind-merge/src/lib/class-group-utils.ts","../../mnt/GitHub/tcn-ui/node_modules/tailwind-merge/src/lib/lru-cache.ts","../../mnt/GitHub/tcn-ui/node_modules/tailwind-merge/src/lib/parse-class-name.ts","../../mnt/GitHub/tcn-ui/node_modules/tailwind-merge/src/lib/sort-modifiers.ts","../../mnt/GitHub/tcn-ui/node_modules/tailwind-merge/src/lib/config-utils.ts","../../mnt/GitHub/tcn-ui/node_modules/tailwind-merge/src/lib/merge-classlist.ts","../../mnt/GitHub/tcn-ui/node_modules/tailwind-merge/src/lib/tw-join.ts","../../mnt/GitHub/tcn-ui/node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts","../../mnt/GitHub/tcn-ui/node_modules/tailwind-merge/src/lib/from-theme.ts","../../mnt/GitHub/tcn-ui/node_modules/tailwind-merge/src/lib/validators.ts","../../mnt/GitHub/tcn-ui/node_modules/tailwind-merge/src/lib/default-config.ts","../../mnt/GitHub/tcn-ui/node_modules/tailwind-merge/src/lib/tw-merge.ts","../../mnt/GitHub/tcn-ui/src/utils/cn.ts","../../mnt/GitHub/tcn-ui/src/components/loader.tsx","../../mnt/GitHub/tcn-ui/src/brand/BrandLogo.tsx","../../mnt/GitHub/tcn-ui/src/components/page-loader.tsx","../../mnt/GitHub/tcn-ui/src/ui/typography.tsx","../../mnt/GitHub/tcn-ui/src/components/empty-state.tsx","../../mnt/GitHub/tcn-ui/src/ui/skeleton.tsx","../../mnt/GitHub/tcn-ui/src/components/loading-state.tsx","../../mnt/GitHub/tcn-ui/src/components/error-state.tsx","../../mnt/GitHub/tcn-ui/node_modules/shared/src/utils.ts","../../mnt/GitHub/tcn-ui/node_modules/lucide-react/src/defaultAttributes.ts","../../mnt/GitHub/tcn-ui/node_modules/lucide-react/src/Icon.ts","../../mnt/GitHub/tcn-ui/node_modules/lucide-react/src/createLucideIcon.ts","../../mnt/GitHub/tcn-ui/node_modules/lucide-react/src/icons/check.ts","../../mnt/GitHub/tcn-ui/node_modules/lucide-react/src/icons/chevron-down.ts","../../mnt/GitHub/tcn-ui/node_modules/lucide-react/src/icons/circle-user.ts","../../mnt/GitHub/tcn-ui/node_modules/lucide-react/src/icons/layout-grid.ts","../../mnt/GitHub/tcn-ui/node_modules/lucide-react/src/icons/moon.ts","../../mnt/GitHub/tcn-ui/node_modules/lucide-react/src/icons/search.ts","../../mnt/GitHub/tcn-ui/node_modules/lucide-react/src/icons/sun.ts","../../mnt/GitHub/tcn-ui/node_modules/lucide-react/src/icons/x.ts","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/primitive/src/primitive.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-compose-refs/src/compose-refs.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-context/src/create-context.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-use-layout-effect/src/use-layout-effect.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-id/src/id.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-use-controllable-state/src/use-controllable-state.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/src/slot.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-primitive/src/primitive.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-use-callback-ref/src/use-callback-ref.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-use-escape-keydown/src/use-escape-keydown.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-dismissable-layer/src/dismissable-layer.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-focus-scope/src/focus-scope.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-portal/src/portal.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-presence/src/use-state-machine.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-presence/src/presence.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-focus-guards/src/focus-guards.tsx","../../mnt/GitHub/tcn-ui/node_modules/tslib/tslib.es6.mjs","../../mnt/GitHub/tcn-ui/node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../../mnt/GitHub/tcn-ui/node_modules/use-callback-ref/dist/es2015/assignRef.js","../../mnt/GitHub/tcn-ui/node_modules/use-callback-ref/dist/es2015/useRef.js","../../mnt/GitHub/tcn-ui/node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../../mnt/GitHub/tcn-ui/node_modules/use-sidecar/dist/es2015/medium.js","../../mnt/GitHub/tcn-ui/node_modules/use-sidecar/dist/es2015/exports.js","../../mnt/GitHub/tcn-ui/node_modules/react-remove-scroll/dist/es2015/medium.js","../../mnt/GitHub/tcn-ui/node_modules/react-remove-scroll/dist/es2015/UI.js","../../mnt/GitHub/tcn-ui/node_modules/get-nonce/dist/es2015/index.js","../../mnt/GitHub/tcn-ui/node_modules/react-style-singleton/dist/es2015/singleton.js","../../mnt/GitHub/tcn-ui/node_modules/react-style-singleton/dist/es2015/hook.js","../../mnt/GitHub/tcn-ui/node_modules/react-style-singleton/dist/es2015/component.js","../../mnt/GitHub/tcn-ui/node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../../mnt/GitHub/tcn-ui/node_modules/react-remove-scroll-bar/dist/es2015/component.js","../../mnt/GitHub/tcn-ui/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../../mnt/GitHub/tcn-ui/node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../../mnt/GitHub/tcn-ui/node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../../mnt/GitHub/tcn-ui/node_modules/react-remove-scroll/dist/es2015/sidecar.js","../../mnt/GitHub/tcn-ui/node_modules/react-remove-scroll/dist/es2015/Combination.js","../../mnt/GitHub/tcn-ui/node_modules/aria-hidden/dist/es2015/index.js","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/src/slot.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-dialog/src/dialog.tsx","../../mnt/GitHub/tcn-ui/src/ui/dialog.tsx","../../mnt/GitHub/tcn-ui/node_modules/vaul/dist/index.mjs","../../mnt/GitHub/tcn-ui/src/ui/drawer.tsx","../../mnt/GitHub/tcn-ui/src/components/custom-modal.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-slot/src/slot.tsx","../../mnt/GitHub/tcn-ui/node_modules/class-variance-authority/dist/index.mjs","../../mnt/GitHub/tcn-ui/src/ui/button.tsx","../../mnt/GitHub/tcn-ui/src/components/back-button.tsx","../../mnt/GitHub/tcn-ui/node_modules/next-themes/dist/index.mjs","../../mnt/GitHub/tcn-ui/src/components/theme-switcher.tsx","../../mnt/GitHub/tcn-ui/src/components/profile-image.tsx","../../mnt/GitHub/tcn-ui/src/ui/input.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/src/primitive.tsx","../../mnt/GitHub/tcn-ui/node_modules/@radix-ui/react-label/src/label.tsx","../../mnt/GitHub/tcn-ui/src/ui/label.tsx","../../mnt/GitHub/tcn-ui/src/components/country-selector.tsx"],"names":["t","concatArrays","array1","array2","combinedArray","Array","length","i","createClassValidatorObject","classGroupId","validator","createClassPartObject","nextPart","Map","validators","CLASS_PART_SEPARATOR","EMPTY_CONFLICTS","ARBITRARY_PROPERTY_PREFIX","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","className","startsWith","endsWith","getGroupIdForArbitraryProperty","classParts","split","startIndex","getGroupRecursive","getConflictingClassGroupIds","hasPostfixModifier","modifierConflicts","baseConflicts","classPartObject","classPathsLength","currentClassPart","nextClassPartObject","get","result","undefined","classRest","join","slice","validatorsLength","validatorObj","indexOf","content","colonIndex","property","theme","classGroups","processClassGroups","group","processClassesRecursively","classGroup","len","classDefinition","processClassDefinition","processStringDefinition","processFunctionDefinition","processObjectDefinition","classPartObjectToEdit","getPart","isThemeGetter","push","entries","Object","key","value","path","current","parts","part","next","set","func","createLruCache","maxCacheSize","cacheSize","cache","create","previousCache","update","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","EMPTY_MODIFIERS","createResultObject","modifiers","hasImportantModifier","baseClassName","maybePostfixModifierPosition","isExternal","createParseClassName","prefix","experimentalParseClassName","parseClassName","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","index","currentCharacter","baseClassNameWithImportantModifier","fullPrefix","parseClassNameOriginal","createSortModifiers","modifierWeights","orderSensitiveModifiers","forEach","mod","currentSegment","modifier","isArbitrary","isOrderSensitive","has","sort","createConfigUtils","sortModifiers","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","classGroupsInConflict","classNames","trim","originalClassName","substring","variantModifier","modifierId","classId","conflictGroups","twJoin","classLists","argument","resolvedValue","string","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","reduce","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","args","fallbackThemeArr","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","test","isNumber","Number","isNaN","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryWeight","isLabelWeight","isArbitraryFamilyName","isLabelFamilyName","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","isArbitraryVariableWeight","testLabel","testValue","exec","shouldMatchNoLabel","label","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","span","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleSizingInline","scaleSizingBlock","scaleColor","scaleBgPosition","position","scaleBgRepeat","repeat","scaleBgSize","size","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","animate","aspect","blur","breakpoint","color","container","ease","font","leading","perspective","radius","shadow","spacing","text","tracking","columns","box","display","sr","float","clear","isolation","object","overflow","overscroll","inset","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","row","gap","justify","items","baseline","self","p","px","py","ps","pe","pbs","pbe","pt","pr","pb","pl","m","mx","my","ms","me","mbs","mbe","mt","mr","mb","ml","inline","block","w","screen","h","list","placeholder","decoration","indent","align","whitespace","break","wrap","hyphens","bg","linear","to","radial","conic","from","via","rounded","border","divide","outline","ring","opacity","mask","closest","farthest","filter","brightness","contrast","grayscale","invert","saturate","sepia","table","caption","transition","duration","delay","backface","rotate","scale","skew","transform","origin","translate","accent","appearance","caret","scheme","cursor","resize","scroll","snap","touch","select","fill","stroke","twMerge","jsx","jsxs","React","_","forwardRef","createElement","__iconNode","React2","createContext","React3","useContext","createScope","nextScopes","useLayoutEffect","React4","React5","React6","Slot","React7","props","Node","React8","React9","React10","React11","node","handleAndDispatchPointerDownOutsideEvent","React12","handleFocusIn","handleFocusOut","handleMutations","React13","ReactDOM","React14","React23","getElementRef","count","React15","__assign","useCallbackRef","useState","React16","x","cbs","React17","React18","SideCar","React19","React20","isScrollable","React21","Style","React24","createSlot","createSlotClone","React25","isSlottable","mergeProps","SLOTTABLE_IDENTIFIER","React26","PORTAL_NAME","Fragment","Portal","Dialog","DialogTrigger","DialogPortal","DialogOverlay","DialogContent","DialogTitle","DialogDescription","React__default","useIsomorphicLayoutEffect","useEffect","setRef","composeRefs","useComposedRefs","React27","useUncontrolledState","useControllableState","useMemo","Root","activeSnapPointIndex","_drawerRef_current","_drawerRef_current1","_window_visualViewport","Overlay","Content","direction","Drawer","React29","param","Image","Link","NODES","Primitive","React31","React32","Label","useRef"],"mappings":";;;;;;;;;AAAA,SAAS,EAAE,CAAA,EAAE;AAAC,EAAA,IAAIA,EAAAA,EAAE,GAAE,CAAA,GAAE,EAAA;AAAG,EAAA,IAAG,YAAU,OAAO,CAAA,IAAG,QAAA,IAAU,OAAO,GAAE,CAAA,IAAG,CAAA;AAAA,OAAA,IAAU,YAAU,OAAO,CAAA,MAAK,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,EAAE;AAAC,IAAA,IAAI,IAAE,CAAA,CAAE,MAAA;AAAO,IAAA,KAAIA,KAAE,CAAA,EAAEA,EAAAA,GAAE,CAAA,EAAEA,EAAAA,EAAAA,IAAMA,EAAC,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,EAAEA,EAAC,CAAC,OAAK,CAAA,KAAI,CAAA,IAAG,MAAK,CAAA,IAAG,CAAA,CAAA;AAAA,EAAE,CAAA,MAAM,KAAI,CAAA,IAAK,CAAA,EAAE,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA,KAAI,CAAA,IAAG,GAAA,CAAA,EAAK,CAAA,IAAG,CAAA,CAAA;AAAG,EAAA,OAAO,CAAA;AAAC;AAAQ,SAAS,IAAA,GAAM;AAAC,EAAA,KAAA,IAAQ,CAAA,EAAEA,EAAAA,EAAE,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,IAAG,CAAA,GAAE,SAAA,CAAU,MAAA,EAAO,CAAA,GAAE,CAAA,EAAE,CAAA,EAAA,GAAK,CAAA,GAAE,SAAA,CAAU,CAAC,CAAA,MAAKA,EAAAA,GAAE,CAAA,CAAE,CAAC,CAAA,CAAA,KAAK,CAAA,KAAI,CAAA,IAAG,GAAA,CAAA,EAAK,CAAA,IAAGA,EAAAA,CAAAA;AAAG,EAAA,OAAO,CAAA;AAAC;;;ACGxW,IAAMC,YAAAA,GAAeA,CACxBC,MAAAA,EACAC,MAAAA,KACoB;AAEpB,EAAA,MAAMC,gBAA2B,IAAIC,KAAAA,CAAMH,MAAAA,CAAOI,MAAAA,GAASH,OAAOG,MAAM,CAAA;AACxE,EAAA,KAAA,IAASC,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAIL,MAAAA,CAAOI,QAAQC,CAAAA,EAAAA,EAAK;AACpCH,IAAAA,aAAAA,CAAcG,CAAC,CAAA,GAAIL,MAAAA,CAAOK,CAAC,CAAA;AAC/B,EAAA;AACA,EAAA,KAAA,IAASA,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAIJ,MAAAA,CAAOG,QAAQC,CAAAA,EAAAA,EAAK;AACpCH,IAAAA,aAAAA,CAAcF,MAAAA,CAAOI,MAAAA,GAASC,CAAC,CAAA,GAAIJ,OAAOI,CAAC,CAAA;AAC/C,EAAA;AACA,EAAA,OAAOH,aAAAA;AACX,CAAA;ACQA,IAAMI,0BAAAA,GAA6BA,CAC/BC,YAAAA,EACAC,SAAAA,MACwB;AACxBD,EAAAA,YAAAA;AACAC,EAAAA;AACH,CAAA,CAAA;AAGD,IAAMC,qBAAAA,GAAwBA,CAC1BC,QAAAA,mBAAyC,IAAIC,KAAG,EAChDC,UAAAA,GAA4C,MAC5CL,YAAAA,MACmB;AACnBG,EAAAA,QAAAA;AACAE,EAAAA,UAAAA;AACAL,EAAAA;AACH,CAAA,CAAA;AAED,IAAMM,oBAAAA,GAAuB,GAAA;AAE7B,IAAMC,kBAA+C,EAAA;AAErD,IAAMC,yBAAAA,GAA4B,aAAA;AAE3B,IAAMC,wBAAyBC,CAAAA,MAAAA,KAAqB;AACvD,EAAA,MAAMC,QAAAA,GAAWC,eAAeF,MAAM,CAAA;AACtC,EAAA,MAAM;AAAEG,IAAAA,sBAAAA;AAAwBC,IAAAA;GAA8B,GAAKJ,MAAAA;AAEnE,EAAA,MAAMK,kBAAmBC,CAAAA,SAAAA,KAAqB;AAC1C,IAAA,IAAIA,UAAUC,UAAAA,CAAW,GAAG,KAAKD,SAAAA,CAAUE,QAAAA,CAAS,GAAG,CAAA,EAAG;AACtD,MAAA,OAAOC,+BAA+BH,SAAS,CAAA;AACnD,IAAA;AAEA,IAAA,MAAMI,UAAAA,GAAaJ,SAAAA,CAAUK,KAAAA,CAAMf,oBAAoB,CAAA;AAEvD,IAAA,MAAMgB,UAAAA,GAAaF,WAAW,CAAC,CAAA,KAAM,MAAMA,UAAAA,CAAWvB,MAAAA,GAAS,IAAI,CAAA,GAAI,CAAA;AACvE,IAAA,OAAO0B,iBAAAA,CAAkBH,UAAAA,EAAYE,UAAAA,EAAYX,QAAQ,CAAA;AAC7D,EAAA,CAAA;AAEA,EAAA,MAAMa,2BAAAA,GAA8BA,CAChCxB,YAAAA,EACAyB,kBAAAA,KAC6B;AAC7B,IAAA,IAAIA,kBAAAA,EAAoB;AACpB,MAAA,MAAMC,iBAAAA,GAAoBZ,+BAA+Bd,YAAY,CAAA;AACrE,MAAA,MAAM2B,aAAAA,GAAgBd,uBAAuBb,YAAY,CAAA;AAEzD,MAAA,IAAI0B,iBAAAA,EAAmB;AACnB,QAAA,IAAIC,aAAAA,EAAe;AAEf,UAAA,OAAOnC,YAAAA,CAAamC,eAAeD,iBAAiB,CAAA;AACxD,QAAA;AAEA,QAAA,OAAOA,iBAAAA;AACX,MAAA;AAEA,MAAA,OAAOC,aAAAA,IAAiBpB,eAAAA;AAC5B,IAAA;AAEA,IAAA,OAAOM,sBAAAA,CAAuBb,YAAY,CAAA,IAAKO,eAAAA;AACnD,EAAA,CAAA;AAEA,EAAA,OAAO;AACHQ,IAAAA,eAAAA;AACAS,IAAAA;;AAER,CAAA;AAEA,IAAMD,iBAAAA,GAAoBA,CACtBH,UAAAA,EACAE,UAAAA,EACAM,eAAAA,KAC8B;AAC9B,EAAA,MAAMC,gBAAAA,GAAmBT,WAAWvB,MAAAA,GAASyB,UAAAA;AAC7C,EAAA,IAAIO,qBAAqB,CAAA,EAAG;AACxB,IAAA,OAAOD,eAAAA,CAAgB5B,YAAAA;AAC3B,EAAA;AAEA,EAAA,MAAM8B,gBAAAA,GAAmBV,WAAWE,UAAU,CAAA;AAC9C,EAAA,MAAMS,mBAAAA,GAAsBH,eAAAA,CAAgBzB,QAAAA,CAAS6B,GAAAA,CAAIF,gBAAgB,CAAA;AAEzE,EAAA,IAAIC,mBAAAA,EAAqB;AACrB,IAAA,MAAME,MAAAA,GAASV,iBAAAA,CAAkBH,UAAAA,EAAYE,UAAAA,GAAa,GAAGS,mBAAmB,CAAA;AAChF,IAAA,IAAIE,QAAQ,OAAOA,MAAAA;AACvB,EAAA;AAEA,EAAA,MAAM5B,aAAauB,eAAAA,CAAgBvB,UAAAA;AACnC,EAAA,IAAIA,eAAe,IAAA,EAAM;AACrB,IAAA,OAAO6B,MAAAA;AACX,EAAA;AAGA,EAAA,MAAMC,SAAAA,GACFb,UAAAA,KAAe,CAAA,GACTF,UAAAA,CAAWgB,IAAAA,CAAK9B,oBAAoB,CAAA,GACpCc,UAAAA,CAAWiB,KAAAA,CAAMf,UAAU,CAAA,CAAEc,IAAAA,CAAK9B,oBAAoB,CAAA;AAChE,EAAA,MAAMgC,mBAAmBjC,UAAAA,CAAWR,MAAAA;AAEpC,EAAA,KAAA,IAASC,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAIwC,gBAAAA,EAAkBxC,CAAAA,EAAAA,EAAK;AACvC,IAAA,MAAMyC,YAAAA,GAAelC,WAAWP,CAAC,CAAA;AACjC,IAAA,IAAIyC,YAAAA,CAAatC,SAAAA,CAAUkC,SAAS,CAAA,EAAG;AACnC,MAAA,OAAOI,YAAAA,CAAavC,YAAAA;AACxB,IAAA;AACJ,EAAA;AAEA,EAAA,OAAOkC,MAAAA;AACX,CAAA;AAOA,IAAMf,8BAAAA,GAAkCH,CAAAA,SAAAA,KACpCA,SAAAA,CAAUqB,KAAAA,CAAM,CAAA,EAAG,EAAE,CAAA,CAAEG,OAAAA,CAAQ,GAAG,CAAA,KAAM,EAAA,GAClCN,MAAAA,GAAAA,CACC,MAAK;AACF,EAAA,MAAMO,OAAAA,GAAUzB,SAAAA,CAAUqB,KAAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AACrC,EAAA,MAAMK,UAAAA,GAAaD,OAAAA,CAAQD,OAAAA,CAAQ,GAAG,CAAA;AACtC,EAAA,MAAMG,QAAAA,GAAWF,OAAAA,CAAQJ,KAAAA,CAAM,CAAA,EAAGK,UAAU,CAAA;AAC5C,EAAA,OAAOC,QAAAA,GAAWnC,4BAA4BmC,QAAAA,GAAWT,MAAAA;AAC7D,CAAA,GAAC;AAKJ,IAAMtB,iBAAkBF,CAAAA,MAAAA,KAAsD;AACjF,EAAA,MAAM;AAAEkC,IAAAA,KAAAA;AAAOC,IAAAA;GAAW,GAAKnC,MAAAA;AAC/B,EAAA,OAAOoC,kBAAAA,CAAmBD,aAAaD,KAAK,CAAA;AAChD,CAAA;AAGA,IAAME,kBAAAA,GAAqBA,CACvBD,WAAAA,EACAD,KAAAA,KACiB;AACjB,EAAA,MAAMjC,WAAWT,qBAAAA,EAAqB;AAEtC,EAAA,KAAA,MAAWF,gBAAgB6C,WAAAA,EAAa;AACpC,IAAA,MAAME,KAAAA,GAAQF,YAAY7C,YAAY,CAAA;AACtCgD,IAAAA,yBAAAA,CAA0BD,KAAAA,EAAOpC,QAAAA,EAAUX,YAAAA,EAAc4C,KAAK,CAAA;AAClE,EAAA;AAEA,EAAA,OAAOjC,QAAAA;AACX,CAAA;AAEA,IAAMqC,yBAAAA,GAA4BA,CAC9BC,UAAAA,EACArB,eAAAA,EACA5B,cACA4C,KAAAA,KACA;AACA,EAAA,MAAMM,MAAMD,UAAAA,CAAWpD,MAAAA;AACvB,EAAA,KAAA,IAASC,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAIoD,GAAAA,EAAKpD,CAAAA,EAAAA,EAAK;AAC1B,IAAA,MAAMqD,eAAAA,GAAkBF,WAAWnD,CAAC,CAAA;AACpCsD,IAAAA,sBAAAA,CAAuBD,eAAAA,EAAiBvB,eAAAA,EAAiB5B,YAAAA,EAAc4C,KAAK,CAAA;AAChF,EAAA;AACJ,CAAA;AAGA,IAAMQ,sBAAAA,GAAyBA,CAC3BD,eAAAA,EACAvB,eAAAA,EACA5B,cACA4C,KAAAA,KACA;AACA,EAAA,IAAI,OAAOO,oBAAoB,QAAA,EAAU;AACrCE,IAAAA,uBAAAA,CAAwBF,eAAAA,EAAiBvB,iBAAiB5B,YAAY,CAAA;AACtE,IAAA;AACJ,EAAA;AAEA,EAAA,IAAI,OAAOmD,oBAAoB,UAAA,EAAY;AACvCG,IAAAA,yBAAAA,CAA0BH,eAAAA,EAAiBvB,eAAAA,EAAiB5B,YAAAA,EAAc4C,KAAK,CAAA;AAC/E,IAAA;AACJ,EAAA;AAEAW,EAAAA,uBAAAA,CACIJ,eAAAA,EACAvB,eAAAA,EACA5B,YAAAA,EACA4C,KAAK,CAAA;AAEb,CAAA;AAEA,IAAMS,uBAAAA,GAA0BA,CAC5BF,eAAAA,EACAvB,eAAAA,EACA5B,YAAAA,KACA;AACA,EAAA,MAAMwD,wBACFL,eAAAA,KAAoB,EAAA,GAAKvB,eAAAA,GAAkB6B,OAAAA,CAAQ7B,iBAAiBuB,eAAe,CAAA;AACvFK,EAAAA,qBAAAA,CAAsBxD,YAAAA,GAAeA,YAAAA;AACzC,CAAA;AAEA,IAAMsD,yBAAAA,GAA4BA,CAC9BH,eAAAA,EACAvB,eAAAA,EACA5B,cACA4C,KAAAA,KACA;AACA,EAAA,IAAIc,aAAAA,CAAcP,eAAe,CAAA,EAAG;AAChCH,IAAAA,yBAAAA,CAA0BG,eAAAA,CAAgBP,KAAK,CAAA,EAAGhB,eAAAA,EAAiB5B,cAAc4C,KAAK,CAAA;AACtF,IAAA;AACJ,EAAA;AAEA,EAAA,IAAIhB,eAAAA,CAAgBvB,eAAe,IAAA,EAAM;AACrCuB,IAAAA,eAAAA,CAAgBvB,aAAa,EAAA;AACjC,EAAA;AACAuB,EAAAA,eAAAA,CAAgBvB,UAAAA,CAAWsD,IAAAA,CACvB5D,0BAAAA,CAA2BC,YAAAA,EAAcmD,eAAiC,CAAC,CAAA;AAEnF,CAAA;AAEA,IAAMI,uBAAAA,GAA0BA,CAC5BJ,eAAAA,EACAvB,eAAAA,EACA5B,cACA4C,KAAAA,KACA;AACA,EAAA,MAAMgB,OAAAA,GAAUC,MAAAA,CAAOD,OAAAA,CAAQT,eAAe,CAAA;AAC9C,EAAA,MAAMD,MAAMU,OAAAA,CAAQ/D,MAAAA;AACpB,EAAA,KAAA,IAASC,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAIoD,GAAAA,EAAKpD,CAAAA,EAAAA,EAAK;AAC1B,IAAA,MAAM,CAACgE,GAAAA,EAAKC,KAAK,CAAA,GAAIH,QAAQ9D,CAAC,CAAA;AAC9BkD,IAAAA,yBAAAA,CAA0Be,OAAON,OAAAA,CAAQ7B,eAAAA,EAAiBkC,GAAG,CAAA,EAAG9D,cAAc4C,KAAK,CAAA;AACvF,EAAA;AACJ,CAAA;AAEA,IAAMa,OAAAA,GAAUA,CAAC7B,eAAAA,EAAkCoC,IAAAA,KAAiC;AAChF,EAAA,IAAIC,OAAAA,GAAUrC,eAAAA;AACd,EAAA,MAAMsC,KAAAA,GAAQF,IAAAA,CAAK3C,KAAAA,CAAMf,oBAAoB,CAAA;AAC7C,EAAA,MAAM4C,MAAMgB,KAAAA,CAAMrE,MAAAA;AAElB,EAAA,KAAA,IAASC,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAIoD,GAAAA,EAAKpD,CAAAA,EAAAA,EAAK;AAC1B,IAAA,MAAMqE,IAAAA,GAAOD,MAAMpE,CAAC,CAAA;AAEpB,IAAA,IAAIsE,IAAAA,GAAOH,OAAAA,CAAQ9D,QAAAA,CAAS6B,GAAAA,CAAImC,IAAI,CAAA;AACpC,IAAA,IAAI,CAACC,IAAAA,EAAM;AACPA,MAAAA,IAAAA,GAAOlE,qBAAAA,EAAqB;AAC5B+D,MAAAA,OAAAA,CAAQ9D,QAAAA,CAASkE,GAAAA,CAAIF,IAAAA,EAAMC,IAAI,CAAA;AACnC,IAAA;AACAH,IAAAA,OAAAA,GAAUG,IAAAA;AACd,EAAA;AAEA,EAAA,OAAOH,OAAAA;AACX,CAAA;AAGA,IAAMP,aAAAA,GAAiBY,CAAAA,IAAAA,KACnB,eAAA,IAAmBA,IAAAA,IAASA,KAAqBZ,aAAAA,KAAkB,IAAA;ACzQhE,IAAMa,iBACTC,CAAAA,YAAAA,KACsB;AACtB,EAAA,IAAIA,eAAe,CAAA,EAAG;AAClB,IAAA,OAAO;AACHxC,MAAAA,GAAAA,EAAKA,MAAME,MAAAA;AACXmC,MAAAA,GAAAA,EAAKA,MAAK;AAAE,MAAA;;AAEpB,EAAA;AAEA,EAAA,IAAII,SAAAA,GAAY,CAAA;AAChB,EAAA,IAAIC,MAAAA,mBAA4Bb,MAAAA,CAAOc,MAAAA,CAAO,IAAI,CAAA;AAClD,EAAA,IAAIC,aAAAA,mBAAoCf,MAAAA,CAAOc,MAAAA,CAAO,IAAI,CAAA;AAE1D,EAAA,MAAME,MAAAA,GAASA,CAACf,GAAAA,EAAUC,KAAAA,KAAgB;AACtCW,IAAAA,MAAAA,CAAMZ,GAAG,CAAA,GAAIC,KAAAA;AACbU,IAAAA,SAAAA,EAAAA;AAEA,IAAA,IAAIA,YAAYD,YAAAA,EAAc;AAC1BC,MAAAA,SAAAA,GAAY,CAAA;AACZG,MAAAA,aAAAA,GAAgBF,MAAAA;AAChBA,MAAAA,MAAAA,mBAAQb,MAAAA,CAAOc,MAAAA,CAAO,IAAI,CAAA;AAC9B,IAAA;AACJ,EAAA,CAAA;AAEA,EAAA,OAAO;AACH3C,IAAAA,GAAAA,CAAI8B,GAAAA,EAAG;AACH,MAAA,IAAIC,KAAAA,GAAQW,OAAMZ,GAAG,CAAA;AAErB,MAAA,IAAIC,UAAU7B,MAAAA,EAAW;AACrB,QAAA,OAAO6B,KAAAA;AACX,MAAA;AACA,MAAA,IAAA,CAAKA,KAAAA,GAAQa,aAAAA,CAAcd,GAAG,CAAA,MAAO5B,MAAAA,EAAW;AAC5C2C,QAAAA,MAAAA,CAAOf,KAAKC,KAAK,CAAA;AACjB,QAAA,OAAOA,KAAAA;AACX,MAAA;AACJ,IAAA,CAAA;AACAM,IAAAA,GAAAA,CAAIP,KAAKC,KAAAA,EAAK;AACV,MAAA,IAAID,OAAOY,MAAAA,EAAO;AACdA,QAAAA,MAAAA,CAAMZ,GAAG,CAAA,GAAIC,KAAAA;MACjB,CAAA,MAAO;AACHc,QAAAA,MAAAA,CAAOf,KAAKC,KAAK,CAAA;AACrB,MAAA;AACJ,IAAA;;AAER,CAAA;ACnDO,IAAMe,kBAAAA,GAAqB,GAAA;AAElC,IAAMC,kBAAAA,GAAqB,GAAA;AAC3B,IAAMC,kBAA4B,EAAA;AAGlC,IAAMC,qBAAqBA,CACvBC,SAAAA,EACAC,oBAAAA,EACAC,aAAAA,EACAC,8BACAC,UAAAA,MACmB;AACnBJ,EAAAA,SAAAA;AACAC,EAAAA,oBAAAA;AACAC,EAAAA,aAAAA;AACAC,EAAAA,4BAAAA;AACAC,EAAAA;AACH,CAAA,CAAA;AAEM,IAAMC,uBAAwB7E,CAAAA,MAAAA,KAAqB;AACtD,EAAA,MAAM;AAAE8E,IAAAA,MAAAA;AAAQC,IAAAA;GAA0B,GAAK/E,MAAAA;AAQ/C,EAAA,IAAIgF,iBAAkB1E,CAAAA,SAAAA,KAAsC;AAExD,IAAA,MAAMkE,YAAsB,EAAA;AAE5B,IAAA,IAAIS,YAAAA,GAAe,CAAA;AACnB,IAAA,IAAIC,UAAAA,GAAa,CAAA;AACjB,IAAA,IAAIC,aAAAA,GAAgB,CAAA;AACpB,IAAA,IAAIC,uBAAAA;AAEJ,IAAA,MAAM5C,MAAMlC,SAAAA,CAAUnB,MAAAA;AACtB,IAAA,KAAA,IAASkG,KAAAA,GAAQ,CAAA,EAAGA,KAAAA,GAAQ7C,GAAAA,EAAK6C,KAAAA,EAAAA,EAAS;AACtC,MAAA,MAAMC,gBAAAA,GAAmBhF,UAAU+E,KAAK,CAAA;AAExC,MAAA,IAAIJ,YAAAA,KAAiB,CAAA,IAAKC,UAAAA,KAAe,CAAA,EAAG;AACxC,QAAA,IAAII,qBAAqBjB,kBAAAA,EAAoB;AACzCG,UAAAA,SAAAA,CAAUvB,IAAAA,CAAK3C,SAAAA,CAAUqB,KAAAA,CAAMwD,aAAAA,EAAeE,KAAK,CAAC,CAAA;AACpDF,UAAAA,aAAAA,GAAgBE,KAAAA,GAAQ,CAAA;AACxB,UAAA;AACJ,QAAA;AAEA,QAAA,IAAIC,qBAAqB,GAAA,EAAK;AAC1BF,UAAAA,uBAAAA,GAA0BC,KAAAA;AAC1B,UAAA;AACJ,QAAA;AACJ,MAAA;AAEA,MAAA,IAAIC,qBAAqB,GAAA,EAAKL,YAAAA,EAAAA;AACrBK,WAAAA,IAAAA,gBAAAA,KAAqB,GAAA,EAAKL,YAAAA,EAAAA;AAC1BK,WAAAA,IAAAA,gBAAAA,KAAqB,GAAA,EAAKJ,UAAAA,EAAAA;AAC1BI,WAAAA,IAAAA,gBAAAA,KAAqB,GAAA,EAAKJ,UAAAA,EAAAA;AACvC,IAAA;AAEA,IAAA,MAAMK,qCACFf,SAAAA,CAAUrF,MAAAA,KAAW,IAAImB,SAAAA,GAAYA,SAAAA,CAAUqB,MAAMwD,aAAa,CAAA;AAGtE,IAAA,IAAIT,aAAAA,GAAgBa,kCAAAA;AACpB,IAAA,IAAId,oBAAAA,GAAuB,KAAA;AAE3B,IAAA,IAAIc,kCAAAA,CAAmC/E,QAAAA,CAAS4D,kBAAkB,CAAA,EAAG;AACjEM,MAAAA,aAAAA,GAAgBa,kCAAAA,CAAmC5D,KAAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAC9D8C,MAAAA,oBAAAA,GAAuB,IAAA;AAC3B,IAAA,CAAA,MAAA;;;;;AAKIc,MAAAA,kCAAAA,CAAmChF,WAAW6D,kBAAkB;AAClE,MAAA;AACEM,MAAAA,aAAAA,GAAgBa,kCAAAA,CAAmC5D,MAAM,CAAC,CAAA;AAC1D8C,MAAAA,oBAAAA,GAAuB,IAAA;AAC3B,IAAA;AAEA,IAAA,MAAME,4BAAAA,GACFS,uBAAAA,IAA2BA,uBAAAA,GAA0BD,aAAAA,GAC/CC,0BAA0BD,aAAAA,GAC1B3D,MAAAA;AAEV,IAAA,OAAO+C,kBAAAA,CACHC,SAAAA,EACAC,oBAAAA,EACAC,aAAAA,EACAC,4BAA4B,CAAA;AAEpC,EAAA,CAAA;AAEA,EAAA,IAAIG,MAAAA,EAAQ;AACR,IAAA,MAAMU,aAAaV,MAAAA,GAAST,kBAAAA;AAC5B,IAAA,MAAMoB,sBAAAA,GAAyBT,cAAAA;AAC/BA,IAAAA,cAAAA,GAAkB1E,eACdA,SAAAA,CAAUC,UAAAA,CAAWiF,UAAU,CAAA,GACzBC,uBAAuBnF,SAAAA,CAAUqB,KAAAA,CAAM6D,UAAAA,CAAWrG,MAAM,CAAC,CAAA,GACzDoF,kBAAAA,CAAmBD,iBAAiB,KAAA,EAAOhE,SAAAA,EAAWkB,QAAW,IAAI,CAAA;AACnF,EAAA;AAEA,EAAA,IAAIuD,0BAAAA,EAA4B;AAC5B,IAAA,MAAMU,sBAAAA,GAAyBT,cAAAA;AAC/BA,IAAAA,cAAAA,GAAkB1E,eACdyE,0BAAAA,CAA2B;AAAEzE,MAAAA,SAAAA;MAAW0E,cAAAA,EAAgBS;AAAwB,KAAA,CAAA;AACxF,EAAA;AAEA,EAAA,OAAOT,cAAAA;AACX,CAAA;AC1GO,IAAMU,sBAAuB1F,CAAAA,MAAAA,KAAqB;AAErD,EAAA,MAAM2F,eAAAA,uBAAsBjG,GAAAA,EAAG;AAG/BM,EAAAA,MAAAA,CAAO4F,uBAAAA,CAAwBC,OAAAA,CAAQ,CAACC,GAAAA,EAAKT,KAAAA,KAAS;AAClDM,IAAAA,eAAAA,CAAgBhC,GAAAA,CAAImC,GAAAA,EAAK,GAAA,GAAUT,KAAK,CAAA;EAC5C,CAAC,CAAA;AAED,EAAA,OAAQb,CAAAA,SAAAA,KAA0C;AAC9C,IAAA,MAAMjD,SAAmB,EAAA;AACzB,IAAA,IAAIwE,iBAA2B,EAAA;AAG/B,IAAA,KAAA,IAAS3G,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAIoF,SAAAA,CAAUrF,QAAQC,CAAAA,EAAAA,EAAK;AACvC,MAAA,MAAM4G,QAAAA,GAAWxB,UAAUpF,CAAC,CAAA;AAG5B,MAAA,MAAM6G,WAAAA,GAAcD,QAAAA,CAAS,CAAC,CAAA,KAAM,GAAA;AACpC,MAAA,MAAME,gBAAAA,GAAmBP,eAAAA,CAAgBQ,GAAAA,CAAIH,QAAQ,CAAA;AAErD,MAAA,IAAIC,eAAeC,gBAAAA,EAAkB;AAEjC,QAAA,IAAIH,cAAAA,CAAe5G,SAAS,CAAA,EAAG;AAC3B4G,UAAAA,cAAAA,CAAeK,IAAAA,EAAI;AACnB7E,UAAAA,MAAAA,CAAO0B,IAAAA,CAAK,GAAG8C,cAAc,CAAA;AAC7BA,UAAAA,cAAAA,GAAiB,EAAA;AACrB,QAAA;AACAxE,QAAAA,MAAAA,CAAO0B,KAAK+C,QAAQ,CAAA;MACxB,CAAA,MAAO;AAEHD,QAAAA,cAAAA,CAAe9C,KAAK+C,QAAQ,CAAA;AAChC,MAAA;AACJ,IAAA;AAGA,IAAA,IAAID,cAAAA,CAAe5G,SAAS,CAAA,EAAG;AAC3B4G,MAAAA,cAAAA,CAAeK,IAAAA,EAAI;AACnB7E,MAAAA,MAAAA,CAAO0B,IAAAA,CAAK,GAAG8C,cAAc,CAAA;AACjC,IAAA;AAEA,IAAA,OAAOxE,MAAAA;AACX,EAAA,CAAA;AACJ,CAAA;AC1CO,IAAM8E,oBAAqBrG,CAAAA,MAAAA,MAAuB;EACrDgE,KAAAA,EAAOH,cAAAA,CAA+B7D,OAAO+D,SAAS,CAAA;AACtDiB,EAAAA,cAAAA,EAAgBH,qBAAqB7E,MAAM,CAAA;AAC3CsG,EAAAA,aAAAA,EAAeZ,oBAAoB1F,MAAM,CAAA;AACzC,EAAA,GAAGD,sBAAsBC,MAAM;AAClC,CAAA,CAAA;ACVD,IAAMuG,mBAAAA,GAAsB,KAAA;AAErB,IAAMC,cAAAA,GAAiBA,CAACC,SAAAA,EAAmBC,WAAAA,KAA4B;AAC1E,EAAA,MAAM;AAAE1B,IAAAA,cAAAA;AAAgB3E,IAAAA,eAAAA;AAAiBS,IAAAA,2BAAAA;AAA6BwF,IAAAA;GAAa,GAC/EI,WAAAA;AASJ,EAAA,MAAMC,wBAAkC,EAAA;AACxC,EAAA,MAAMC,UAAAA,GAAaH,SAAAA,CAAUI,IAAAA,EAAI,CAAGlG,MAAM4F,mBAAmB,CAAA;AAE7D,EAAA,IAAIhF,MAAAA,GAAS,EAAA;AAEb,EAAA,KAAA,IAAS8D,QAAQuB,UAAAA,CAAWzH,MAAAA,GAAS,GAAGkG,KAAAA,IAAS,CAAA,EAAGA,SAAS,CAAA,EAAG;AAC5D,IAAA,MAAMyB,iBAAAA,GAAoBF,WAAWvB,KAAK,CAAA;AAE1C,IAAA,MAAM;AACFT,MAAAA,UAAAA;AACAJ,MAAAA,SAAAA;AACAC,MAAAA,oBAAAA;AACAC,MAAAA,aAAAA;AACAC,MAAAA;AAA4B,KAAA,GAC5BK,eAAe8B,iBAAiB,CAAA;AAEpC,IAAA,IAAIlC,UAAAA,EAAY;AACZrD,MAAAA,MAAAA,GAASuF,iBAAAA,IAAqBvF,MAAAA,CAAOpC,MAAAA,GAAS,CAAA,GAAI,MAAMoC,MAAAA,GAASA,MAAAA,CAAAA;AACjE,MAAA;AACJ,IAAA;AAEA,IAAA,IAAIR,kBAAAA,GAAqB,CAAC,CAAC4D,4BAAAA;AAC3B,IAAA,IAAIrF,YAAAA,GAAee,gBACfU,kBAAAA,GACM2D,aAAAA,CAAcqC,UAAU,CAAA,EAAGpC,4BAA4B,IACvDD,aAAa,CAAA;AAGvB,IAAA,IAAI,CAACpF,YAAAA,EAAc;AACf,MAAA,IAAI,CAACyB,kBAAAA,EAAoB;AAErBQ,QAAAA,MAAAA,GAASuF,iBAAAA,IAAqBvF,MAAAA,CAAOpC,MAAAA,GAAS,CAAA,GAAI,MAAMoC,MAAAA,GAASA,MAAAA,CAAAA;AACjE,QAAA;AACJ,MAAA;AAEAjC,MAAAA,YAAAA,GAAee,gBAAgBqE,aAAa,CAAA;AAE5C,MAAA,IAAI,CAACpF,YAAAA,EAAc;AAEfiC,QAAAA,MAAAA,GAASuF,iBAAAA,IAAqBvF,MAAAA,CAAOpC,MAAAA,GAAS,CAAA,GAAI,MAAMoC,MAAAA,GAASA,MAAAA,CAAAA;AACjE,QAAA;AACJ,MAAA;AAEAR,MAAAA,kBAAAA,GAAqB,KAAA;AACzB,IAAA;AAGA,IAAA,MAAMiG,eAAAA,GACFxC,SAAAA,CAAUrF,MAAAA,KAAW,CAAA,GACf,KACAqF,SAAAA,CAAUrF,MAAAA,KAAW,CAAA,GACnBqF,SAAAA,CAAU,CAAC,CAAA,GACX8B,aAAAA,CAAc9B,SAAS,CAAA,CAAE9C,KAAK,GAAG,CAAA;AAE7C,IAAA,MAAMuF,UAAAA,GAAaxC,oBAAAA,GACbuC,eAAAA,GAAkB5C,kBAAAA,GAClB4C,eAAAA;AAEN,IAAA,MAAME,UAAUD,UAAAA,GAAa3H,YAAAA;AAE7B,IAAA,IAAIqH,qBAAAA,CAAsB7E,OAAAA,CAAQoF,OAAO,CAAA,GAAI,EAAA,EAAI;AAE7C,MAAA;AACJ,IAAA;AAEAP,IAAAA,qBAAAA,CAAsB1D,KAAKiE,OAAO,CAAA;AAElC,IAAA,MAAMC,cAAAA,GAAiBrG,2BAAAA,CAA4BxB,YAAAA,EAAcyB,kBAAkB,CAAA;AACnF,IAAA,KAAA,IAAS3B,IAAI,CAAA,EAAGA,CAAAA,GAAI+H,cAAAA,CAAehI,MAAAA,EAAQ,EAAEC,CAAAA,EAAG;AAC5C,MAAA,MAAMiD,KAAAA,GAAQ8E,eAAe/H,CAAC,CAAA;AAC9BuH,MAAAA,qBAAAA,CAAsB1D,IAAAA,CAAKgE,aAAa5E,KAAK,CAAA;AACjD,IAAA;AAGAd,IAAAA,MAAAA,GAASuF,iBAAAA,IAAqBvF,MAAAA,CAAOpC,MAAAA,GAAS,CAAA,GAAI,MAAMoC,MAAAA,GAASA,MAAAA,CAAAA;AACrE,EAAA;AAEA,EAAA,OAAOA,MAAAA;AACX,CAAA;ACjFa6F,IAAAA,MAAAA,GAASA,IAAIC,UAAAA,KAAwC;AAC9D,EAAA,IAAIhC,KAAAA,GAAQ,CAAA;AACZ,EAAA,IAAIiC,QAAAA;AACJ,EAAA,IAAIC,aAAAA;AACJ,EAAA,IAAIC,MAAAA,GAAS,EAAA;AAEb,EAAA,OAAOnC,KAAAA,GAAQgC,WAAWlI,MAAAA,EAAQ;AAC9B,IAAA,IAAKmI,QAAAA,GAAWD,UAAAA,CAAWhC,KAAAA,EAAO,CAAA,EAAI;AAClC,MAAA,IAAKkC,aAAAA,GAAgBE,OAAAA,CAAQH,QAAQ,CAAA,EAAI;AACrCE,QAAAA,MAAAA,KAAWA,MAAAA,IAAU,GAAA,CAAA;AACrBA,QAAAA,MAAAA,IAAUD,aAAAA;AACd,MAAA;AACJ,IAAA;AACJ,EAAA;AACA,EAAA,OAAOC,MAAAA;AACX,CAAA;AAEA,IAAMC,UAAWC,CAAAA,GAAAA,KAAwC;AAErD,EAAA,IAAI,OAAOA,QAAQ,QAAA,EAAU;AACzB,IAAA,OAAOA,GAAAA;AACX,EAAA;AAEA,EAAA,IAAIH,aAAAA;AACJ,EAAA,IAAIC,MAAAA,GAAS,EAAA;AAEb,EAAA,KAAA,IAASG,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAID,GAAAA,CAAIvI,QAAQwI,CAAAA,EAAAA,EAAK;AACjC,IAAA,IAAID,GAAAA,CAAIC,CAAC,CAAA,EAAG;AACR,MAAA,IAAKJ,aAAAA,GAAgBE,OAAAA,CAAQC,GAAAA,CAAIC,CAAC,CAA4B,CAAA,EAAI;AAC9DH,QAAAA,MAAAA,KAAWA,MAAAA,IAAU,GAAA,CAAA;AACrBA,QAAAA,MAAAA,IAAUD,aAAAA;AACd,MAAA;AACJ,IAAA;AACJ,EAAA;AAEA,EAAA,OAAOC,MAAAA;AACX,CAAA;ACvCO,IAAMI,mBAAAA,GAAsBA,CAC/BC,iBAAAA,EAAAA,GACGC,gBAAAA,KACY;AACf,EAAA,IAAIpB,WAAAA;AACJ,EAAA,IAAIqB,QAAAA;AACJ,EAAA,IAAIC,QAAAA;AACJ,EAAA,IAAIC,cAAAA;AAEJ,EAAA,MAAMC,oBAAqBzB,CAAAA,SAAAA,KAAqB;AAC5C,IAAA,MAAMzG,MAAAA,GAAS8H,gBAAAA,CAAiBK,MAAAA,CAC5B,CAACC,cAAAA,EAAgBC,wBAAwBA,mBAAAA,CAAoBD,cAAc,CAAA,EAC3EP,iBAAAA,EAAgC,CAAA;AAGpCnB,IAAAA,WAAAA,GAAcL,kBAAkBrG,MAAM,CAAA;AACtC+H,IAAAA,QAAAA,GAAWrB,YAAY1C,KAAAA,CAAM1C,GAAAA;AAC7B0G,IAAAA,QAAAA,GAAWtB,YAAY1C,KAAAA,CAAML,GAAAA;AAC7BsE,IAAAA,cAAAA,GAAiBK,aAAAA;AAEjB,IAAA,OAAOA,cAAc7B,SAAS,CAAA;AAClC,EAAA,CAAA;AAEA,EAAA,MAAM6B,gBAAiB7B,CAAAA,SAAAA,KAAqB;AACxC,IAAA,MAAM8B,YAAAA,GAAeR,SAAStB,SAAS,CAAA;AAEvC,IAAA,IAAI8B,YAAAA,EAAc;AACd,MAAA,OAAOA,YAAAA;AACX,IAAA;AAEA,IAAA,MAAMhH,MAAAA,GAASiF,cAAAA,CAAeC,SAAAA,EAAWC,WAAW,CAAA;AACpDsB,IAAAA,QAAAA,CAASvB,WAAWlF,MAAM,CAAA;AAE1B,IAAA,OAAOA,MAAAA;AACX,EAAA,CAAA;AAEA0G,EAAAA,cAAAA,GAAiBC,iBAAAA;AAEjB,EAAA,OAAO,IAAIM,IAAAA,KAA2BP,cAAAA,CAAeb,MAAAA,CAAO,GAAGoB,IAAI,CAAC,CAAA;AACxE,CAAA;AC/CA,IAAMC,mBAA4E,EAAA;AAE3E,IAAMC,YAITtF,CAAAA,GAAAA,KACa;AACb,EAAA,MAAMuF,WAAAA,GAAezG,CAAAA,KAAAA,KACjBA,KAAAA,CAAMkB,GAAG,CAAA,IAAKqF,gBAAAA;AAElBE,EAAAA,WAAAA,CAAY3F,aAAAA,GAAgB,IAAA;AAE5B,EAAA,OAAO2F,WAAAA;AACX,CAAA;AChBA,IAAMC,mBAAAA,GAAsB,6BAAA;AAC5B,IAAMC,sBAAAA,GAAyB,6BAAA;AAC/B,IAAMC,aAAAA,GAAgB,gCAAA;AACtB,IAAMC,eAAAA,GAAkB,kCAAA;AACxB,IAAMC,eAAAA,GACF,2HAAA;AACJ,IAAMC,kBAAAA,GAAqB,oDAAA;AAE3B,IAAMC,WAAAA,GAAc,iEAAA;AACpB,IAAMC,UAAAA,GACF,8FAAA;AAEG,IAAMC,UAAAA,GAAc/F,CAAAA,KAAAA,KAAkByF,aAAAA,CAAcO,IAAAA,CAAKhG,KAAK,CAAA;AAE9D,IAAMiG,QAAAA,GAAYjG,CAAAA,KAAAA,KAAkB,CAAC,CAACA,KAAAA,IAAS,CAACkG,MAAAA,CAAOC,KAAAA,CAAMD,MAAAA,CAAOlG,KAAK,CAAC,CAAA;AAE1E,IAAMoG,SAAAA,GAAapG,WAAkB,CAAC,CAACA,SAASkG,MAAAA,CAAOE,SAAAA,CAAUF,MAAAA,CAAOlG,KAAK,CAAC,CAAA;AAE9E,IAAMqG,SAAAA,GAAarG,CAAAA,KAAAA,KAAkBA,KAAAA,CAAM7C,QAAAA,CAAS,GAAG,CAAA,IAAK8I,QAAAA,CAASjG,KAAAA,CAAM1B,KAAAA,CAAM,CAAA,EAAG,EAAE,CAAC,CAAA;AAEvF,IAAMgI,YAAAA,GAAgBtG,CAAAA,KAAAA,KAAkB0F,eAAAA,CAAgBM,IAAAA,CAAKhG,KAAK,CAAA;AAElE,IAAMuG,QAAQA,MAAM,IAAA;AAE3B,IAAMC,YAAAA,GAAgBxG,CAAAA,KAAAA;;;;AAIlB2F,EAAAA,eAAAA,CAAgBK,KAAKhG,KAAK,CAAA,IAAK,CAAC4F,kBAAAA,CAAmBI,KAAKhG,KAAK;;AAEjE,IAAMyG,UAAUA,MAAM,KAAA;AAEtB,IAAMC,QAAAA,GAAY1G,CAAAA,KAAAA,KAAkB6F,WAAAA,CAAYG,IAAAA,CAAKhG,KAAK,CAAA;AAE1D,IAAM2G,OAAAA,GAAW3G,CAAAA,KAAAA,KAAkB8F,UAAAA,CAAWE,IAAAA,CAAKhG,KAAK,CAAA;AAEjD,IAAM4G,iBAAAA,GAAqB5G,WAC9B,CAAC6G,gBAAAA,CAAiB7G,KAAK,CAAA,IAAK,CAAC8G,oBAAoB9G,KAAK,CAAA;AAEnD,IAAM+G,eAAAA,GAAmB/G,CAAAA,KAAAA,KAAkBgH,mBAAAA,CAAoBhH,KAAAA,EAAOiH,aAAaR,OAAO,CAAA;AAE1F,IAAMI,gBAAAA,GAAoB7G,CAAAA,KAAAA,KAAkBuF,mBAAAA,CAAoBS,IAAAA,CAAKhG,KAAK,CAAA;AAE1E,IAAMkH,iBAAAA,GAAqBlH,CAAAA,KAAAA,KAC9BgH,mBAAAA,CAAoBhH,KAAAA,EAAOmH,eAAeX,YAAY,CAAA;AAEnD,IAAMY,iBAAAA,GAAqBpH,CAAAA,KAAAA,KAC9BgH,mBAAAA,CAAoBhH,KAAAA,EAAOqH,eAAepB,QAAQ,CAAA;AAE/C,IAAMqB,iBAAAA,GAAqBtH,CAAAA,KAAAA,KAAkBgH,mBAAAA,CAAoBhH,KAAAA,EAAOuH,eAAehB,KAAK,CAAA;AAE5F,IAAMiB,qBAAAA,GAAyBxH,CAAAA,KAAAA,KAClCgH,mBAAAA,CAAoBhH,KAAAA,EAAOyH,mBAAmBhB,OAAO,CAAA;AAElD,IAAMiB,mBAAAA,GAAuB1H,CAAAA,KAAAA,KAChCgH,mBAAAA,CAAoBhH,KAAAA,EAAO2H,iBAAiBlB,OAAO,CAAA;AAEhD,IAAMmB,gBAAAA,GAAoB5H,CAAAA,KAAAA,KAAkBgH,mBAAAA,CAAoBhH,KAAAA,EAAO6H,cAAclB,OAAO,CAAA;AAE5F,IAAMmB,iBAAAA,GAAqB9H,CAAAA,KAAAA,KAC9BgH,mBAAAA,CAAoBhH,KAAAA,EAAO+H,eAAerB,QAAQ,CAAA;AAE/C,IAAMI,mBAAAA,GAAuB9G,CAAAA,KAAAA,KAAkBwF,sBAAAA,CAAuBQ,IAAAA,CAAKhG,KAAK,CAAA;AAEhF,IAAMgI,yBAAAA,GAA6BhI,CAAAA,KAAAA,KACtCiI,sBAAAA,CAAuBjI,KAAAA,EAAOmH,aAAa,CAAA;AAExC,IAAMe,6BAAAA,GAAiClI,CAAAA,KAAAA,KAC1CiI,sBAAAA,CAAuBjI,KAAAA,EAAOyH,iBAAiB,CAAA;AAE5C,IAAMU,2BAAAA,GAA+BnI,CAAAA,KAAAA,KACxCiI,sBAAAA,CAAuBjI,KAAAA,EAAO2H,eAAe,CAAA;AAE1C,IAAMS,uBAAAA,GAA2BpI,CAAAA,KAAAA,KAAkBiI,sBAAAA,CAAuBjI,KAAAA,EAAOiH,WAAW,CAAA;AAE5F,IAAMoB,wBAAAA,GAA4BrI,CAAAA,KAAAA,KACrCiI,sBAAAA,CAAuBjI,KAAAA,EAAO6H,YAAY,CAAA;AAEvC,IAAMS,yBAAAA,GAA6BtI,CAAAA,KAAAA,KACtCiI,sBAAAA,CAAuBjI,KAAAA,EAAO+H,eAAe,IAAI,CAAA;AAE9C,IAAMQ,yBAAAA,GAA6BvI,CAAAA,KAAAA,KACtCiI,sBAAAA,CAAuBjI,KAAAA,EAAOuH,eAAe,IAAI,CAAA;AAIrD,IAAMP,mBAAAA,GAAsBA,CACxBhH,KAAAA,EACAwI,SAAAA,EACAC,SAAAA,KACA;AACA,EAAA,MAAMvK,MAAAA,GAASqH,mBAAAA,CAAoBmD,IAAAA,CAAK1I,KAAK,CAAA;AAE7C,EAAA,IAAI9B,MAAAA,EAAQ;AACR,IAAA,IAAIA,MAAAA,CAAO,CAAC,CAAA,EAAG;AACX,MAAA,OAAOsK,SAAAA,CAAUtK,MAAAA,CAAO,CAAC,CAAC,CAAA;AAC9B,IAAA;AAEA,IAAA,OAAOuK,SAAAA,CAAUvK,MAAAA,CAAO,CAAC,CAAE,CAAA;AAC/B,EAAA;AAEA,EAAA,OAAO,KAAA;AACX,CAAA;AAEA,IAAM+J,sBAAAA,GAAyBA,CAC3BjI,KAAAA,EACAwI,SAAAA,EACAG,qBAAqB,KAAA,KACrB;AACA,EAAA,MAAMzK,MAAAA,GAASsH,sBAAAA,CAAuBkD,IAAAA,CAAK1I,KAAK,CAAA;AAEhD,EAAA,IAAI9B,MAAAA,EAAQ;AACR,IAAA,IAAIA,MAAAA,CAAO,CAAC,CAAA,EAAG;AACX,MAAA,OAAOsK,SAAAA,CAAUtK,MAAAA,CAAO,CAAC,CAAC,CAAA;AAC9B,IAAA;AACA,IAAA,OAAOyK,kBAAAA;AACX,EAAA;AAEA,EAAA,OAAO,KAAA;AACX,CAAA;AAIA,IAAMhB,eAAAA,GAAmBiB,CAAAA,KAAAA,KAAkBA,KAAAA,KAAU,UAAA,IAAcA,KAAAA,KAAU,YAAA;AAE7E,IAAMf,YAAAA,GAAgBe,CAAAA,KAAAA,KAAkBA,KAAAA,KAAU,OAAA,IAAWA,KAAAA,KAAU,KAAA;AAEvE,IAAM3B,cAAe2B,CAAAA,KAAAA,KAAkBA,KAAAA,KAAU,QAAA,IAAYA,KAAAA,KAAU,UAAUA,KAAAA,KAAU,SAAA;AAE3F,IAAMzB,aAAAA,GAAiByB,WAAkBA,KAAAA,KAAU,QAAA;AAEnD,IAAMvB,aAAAA,GAAiBuB,WAAkBA,KAAAA,KAAU,QAAA;AAEnD,IAAMnB,iBAAAA,GAAqBmB,WAAkBA,KAAAA,KAAU,aAAA;AAEvD,IAAMrB,aAAAA,GAAiBqB,CAAAA,KAAAA,KAAkBA,KAAAA,KAAU,QAAA,IAAYA,KAAAA,KAAU,QAAA;AAEzE,IAAMb,aAAAA,GAAiBa,WAAkBA,KAAAA,KAAU,QAAA;AC5G5C,IAAMC,mBAAmBA,MAAK;AAOjC,EAAA,MAAMC,UAAAA,GAAazD,UAAU,OAAO,CAAA;AACpC,EAAA,MAAM0D,SAAAA,GAAY1D,UAAU,MAAM,CAAA;AAClC,EAAA,MAAM2D,SAAAA,GAAY3D,UAAU,MAAM,CAAA;AAClC,EAAA,MAAM4D,eAAAA,GAAkB5D,UAAU,aAAa,CAAA;AAC/C,EAAA,MAAM6D,aAAAA,GAAgB7D,UAAU,UAAU,CAAA;AAC1C,EAAA,MAAM8D,YAAAA,GAAe9D,UAAU,SAAS,CAAA;AACxC,EAAA,MAAM+D,eAAAA,GAAkB/D,UAAU,YAAY,CAAA;AAC9C,EAAA,MAAMgE,cAAAA,GAAiBhE,UAAU,WAAW,CAAA;AAC5C,EAAA,MAAMiE,YAAAA,GAAejE,UAAU,SAAS,CAAA;AACxC,EAAA,MAAMkE,WAAAA,GAAclE,UAAU,QAAQ,CAAA;AACtC,EAAA,MAAMmE,WAAAA,GAAcnE,UAAU,QAAQ,CAAA;AACtC,EAAA,MAAMoE,gBAAAA,GAAmBpE,UAAU,cAAc,CAAA;AACjD,EAAA,MAAMqE,eAAAA,GAAkBrE,UAAU,aAAa,CAAA;AAC/C,EAAA,MAAMsE,eAAAA,GAAkBtE,UAAU,aAAa,CAAA;AAC/C,EAAA,MAAMuE,SAAAA,GAAYvE,UAAU,MAAM,CAAA;AAClC,EAAA,MAAMwE,gBAAAA,GAAmBxE,UAAU,aAAa,CAAA;AAChD,EAAA,MAAMyE,WAAAA,GAAczE,UAAU,QAAQ,CAAA;AACtC,EAAA,MAAM0E,SAAAA,GAAY1E,UAAU,MAAM,CAAA;AAClC,EAAA,MAAM2E,YAAAA,GAAe3E,UAAU,SAAS,CAAA;AAUxC,EAAA,MAAM4E,UAAAA,GAAaA,MACf,CAAC,MAAA,EAAQ,OAAA,EAAS,OAAO,YAAA,EAAc,MAAA,EAAQ,MAAA,EAAQ,OAAA,EAAS,QAAQ,CAAA;AAC5E,EAAA,MAAMC,gBAAgBA,MAClB;AACI,IAAA,QAAA;AACA,IAAA,KAAA;AACA,IAAA,QAAA;AACA,IAAA,MAAA;AACA,IAAA,OAAA;AACA,IAAA,UAAA;;AAEA,IAAA,UAAA;AACA,IAAA,WAAA;;AAEA,IAAA,WAAA;AACA,IAAA,cAAA;;AAEA,IAAA,cAAA;AACA,IAAA,aAAA;;AAEA,IAAA;AAAa,GAAA;AAErB,EAAA,MAAMC,6BAA6BA,MAC/B,CAAC,GAAGD,aAAAA,EAAa,EAAIpD,qBAAqBD,gBAAgB,CAAA;AAC9D,EAAA,MAAMuD,gBAAgBA,MAAM,CAAC,QAAQ,QAAA,EAAU,MAAA,EAAQ,WAAW,QAAQ,CAAA;AAC1E,EAAA,MAAMC,eAAAA,GAAkBA,MAAM,CAAC,MAAA,EAAQ,WAAW,MAAM,CAAA;AACxD,EAAA,MAAMC,uBAAAA,GAA0BA,MAC5B,CAACxD,mBAAAA,EAAqBD,kBAAkByC,YAAY,CAAA;AACxD,EAAA,MAAMiB,UAAAA,GAAaA,MAAM,CAACxE,UAAAA,EAAY,QAAQ,MAAA,EAAQ,GAAGuE,yBAAyB,CAAA;AAClF,EAAA,MAAME,4BAA4BA,MAC9B,CAACpE,WAAW,MAAA,EAAQ,SAAA,EAAWU,qBAAqBD,gBAAgB,CAAA;AACxE,EAAA,MAAM4D,0BAAAA,GAA6BA,MAC/B,CACI,MAAA,EACA;AAAEC,IAAAA,IAAAA,EAAM,CAAC,MAAA,EAAQtE,SAAAA,EAAWU,mBAAAA,EAAqBD,gBAAgB;GAAC,EAClET,SAAAA,EACAU,qBACAD,gBAAgB,CAAA;AAExB,EAAA,MAAM8D,4BAA4BA,MAC9B,CAACvE,SAAAA,EAAW,MAAA,EAAQU,qBAAqBD,gBAAgB,CAAA;AAC7D,EAAA,MAAM+D,qBAAAA,GAAwBA,MAC1B,CAAC,MAAA,EAAQ,OAAO,KAAA,EAAO,IAAA,EAAM9D,qBAAqBD,gBAAgB,CAAA;AACtE,EAAA,MAAMgE,qBAAAA,GAAwBA,MAC1B,CACI,OAAA,EACA,KAAA,EACA,QAAA,EACA,SAAA,EACA,QAAA,EACA,QAAA,EACA,SAAA,EACA,UAAA,EACA,aAAA,EACA,UAAU,CAAA;AAElB,EAAA,MAAMC,uBAAAA,GAA0BA,MAC5B,CAAC,OAAA,EAAS,OAAO,QAAA,EAAU,SAAA,EAAW,eAAe,UAAU,CAAA;AACnE,EAAA,MAAMC,cAAcA,MAAM,CAAC,MAAA,EAAQ,GAAGT,yBAAyB,CAAA;AAC/D,EAAA,MAAMU,cAAcA,MAChB,CACIjF,UAAAA,EACA,MAAA,EACA,QACA,KAAA,EACA,KAAA,EACA,KAAA,EACA,KAAA,EACA,OACA,KAAA,EACA,KAAA,EACA,OACA,KAAA,EACA,GAAGuE,yBAAyB,CAAA;AAEpC,EAAA,MAAMW,iBAAAA,GAAoBA,MACtB,CACIlF,UAAAA,EACA,UACA,MAAA,EACA,KAAA,EACA,KAAA,EACA,KAAA,EACA,KAAA,EACA,KAAA,EACA,KAAA,EACA,GAAGuE,yBAAyB,CAAA;AAEpC,EAAA,MAAMY,gBAAAA,GAAmBA,MACrB,CACInF,UAAAA,EACA,UACA,MAAA,EACA,IAAA,EACA,KAAA,EACA,KAAA,EACA,OACA,KAAA,EACA,KAAA,EACA,KAAA,EACA,GAAGuE,yBAAyB,CAAA;AAEpC,EAAA,MAAMa,UAAAA,GAAaA,MAAM,CAACrC,UAAAA,EAAYhC,qBAAqBD,gBAAgB,CAAA;AAC3E,EAAA,MAAMuE,kBAAkBA,MACpB,CACI,GAAGlB,aAAAA,EAAa,EAChB/B,6BACAT,mBAAAA,EACA;IAAE2D,QAAAA,EAAU,CAACvE,qBAAqBD,gBAAgB;GAAG,CAAA;AAE7D,EAAA,MAAMyE,aAAAA,GAAgBA,MAAM,CAAC,WAAA,EAAa;AAAEC,IAAAA,MAAAA,EAAQ,CAAC,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,SAAS,OAAO;GAAG,CAAA;AACtF,EAAA,MAAMC,cAAcA,MAChB,CACI,QACA,OAAA,EACA,SAAA,EACApD,yBACArB,eAAAA,EACA;IAAE0E,IAAAA,EAAM,CAAC3E,qBAAqBD,gBAAgB;GAAG,CAAA;AAEzD,EAAA,MAAM6E,yBAAAA,GAA4BA,MAC9B,CAACrF,SAAAA,EAAW2B,2BAA2Bd,iBAAiB,CAAA;AAC5D,EAAA,MAAMyE,cAAcA,MAChB;;AAEI,IAAA,EAAA;AACA,IAAA,MAAA;AACA,IAAA,MAAA;AACApC,IAAAA,WAAAA;AACAzC,IAAAA,mBAAAA;AACAD,IAAAA;AAAgB,GAAA;AAExB,EAAA,MAAM+E,mBAAmBA,MACrB,CAAC,EAAA,EAAI3F,QAAAA,EAAU+B,2BAA2Bd,iBAAiB,CAAA;AAC/D,EAAA,MAAM2E,iBAAiBA,MAAM,CAAC,OAAA,EAAS,QAAA,EAAU,UAAU,QAAQ,CAAA;AACnE,EAAA,MAAMC,iBAAiBA,MACnB,CACI,UACA,UAAA,EACA,QAAA,EACA,WACA,QAAA,EACA,SAAA,EACA,aAAA,EACA,YAAA,EACA,cACA,YAAA,EACA,YAAA,EACA,aACA,KAAA,EACA,YAAA,EACA,SACA,YAAY,CAAA;AAEpB,EAAA,MAAMC,yBAAyBA,MAC3B,CAAC9F,QAAAA,EAAUI,SAAAA,EAAW8B,6BAA6BT,mBAAmB,CAAA;AAC1E,EAAA,MAAMsE,YAAYA,MACd;;AAEI,IAAA,EAAA;AACA,IAAA,MAAA;AACApC,IAAAA,SAAAA;AACA9C,IAAAA,mBAAAA;AACAD,IAAAA;AAAgB,GAAA;AAExB,EAAA,MAAMoF,cAAcA,MAAM,CAAC,MAAA,EAAQhG,QAAAA,EAAUa,qBAAqBD,gBAAgB,CAAA;AAClF,EAAA,MAAMqF,aAAaA,MAAM,CAAC,MAAA,EAAQjG,QAAAA,EAAUa,qBAAqBD,gBAAgB,CAAA;AACjF,EAAA,MAAMsF,SAAAA,GAAYA,MAAM,CAAClG,QAAAA,EAAUa,qBAAqBD,gBAAgB,CAAA;AACxE,EAAA,MAAMuF,iBAAiBA,MAAM,CAACrG,YAAY,MAAA,EAAQ,GAAGuE,yBAAyB,CAAA;AAE9E,EAAA,OAAO;IACH5J,SAAAA,EAAW,GAAA;IACX7B,KAAAA,EAAO;AACHwN,MAAAA,OAAAA,EAAS,CAAC,MAAA,EAAQ,MAAA,EAAQ,OAAA,EAAS,QAAQ,CAAA;AAC3CC,MAAAA,MAAAA,EAAQ,CAAC,OAAO,CAAA;AAChBC,MAAAA,IAAAA,EAAM,CAACjG,YAAY,CAAA;AACnBkG,MAAAA,UAAAA,EAAY,CAAClG,YAAY,CAAA;AACzBmG,MAAAA,KAAAA,EAAO,CAAClG,KAAK,CAAA;AACbmG,MAAAA,SAAAA,EAAW,CAACpG,YAAY,CAAA;AACxB,MAAA,aAAA,EAAe,CAACA,YAAY,CAAA;MAC5BqG,IAAAA,EAAM,CAAC,IAAA,EAAM,KAAA,EAAO,QAAQ,CAAA;AAC5BC,MAAAA,IAAAA,EAAM,CAAChG,iBAAiB,CAAA;MACxB,aAAA,EAAe,CACX,QACA,YAAA,EACA,OAAA,EACA,UACA,QAAA,EACA,UAAA,EACA,MAAA,EACA,WAAA,EACA,OAAO,CAAA;AAEX,MAAA,cAAA,EAAgB,CAACN,YAAY,CAAA;AAC7BuG,MAAAA,OAAAA,EAAS,CAAC,MAAA,EAAQ,OAAA,EAAS,MAAA,EAAQ,QAAA,EAAU,WAAW,OAAO,CAAA;AAC/DC,MAAAA,WAAAA,EAAa,CAAC,UAAA,EAAY,MAAA,EAAQ,QAAA,EAAU,UAAA,EAAY,WAAW,MAAM,CAAA;AACzEC,MAAAA,MAAAA,EAAQ,CAACzG,YAAY,CAAA;AACrB0G,MAAAA,MAAAA,EAAQ,CAAC1G,YAAY,CAAA;MACrB2G,OAAAA,EAAS,CAAC,MAAMhH,QAAQ,CAAA;AACxBiH,MAAAA,IAAAA,EAAM,CAAC5G,YAAY,CAAA;AACnB,MAAA,aAAA,EAAe,CAACA,YAAY,CAAA;AAC5B6G,MAAAA,QAAAA,EAAU,CAAC,SAAA,EAAW,OAAA,EAAS,QAAA,EAAU,MAAA,EAAQ,SAAS,QAAQ;AACrE,KAAA;IACDrO,WAAAA,EAAa;;;;;;;;AASTwN,MAAAA,MAAAA,EAAQ,CACJ;AACIA,QAAAA,MAAAA,EAAQ,CACJ,MAAA,EACA,QAAA,EACAvG,UAAAA,EACAc,gBAAAA,EACAC,qBACAgD,WAAW;OAElB,CAAA;;;;;;AAOL4C,MAAAA,SAAAA,EAAW,CAAC,WAAW,CAAA;;;;;AAKvBU,MAAAA,OAAAA,EAAS,CACL;AAAEA,QAAAA,OAAAA,EAAS,CAACnH,QAAAA,EAAUY,gBAAAA,EAAkBC,mBAAAA,EAAqBuC,cAAc;OAAG,CAAA;;;;;AAMlF,MAAA,aAAA,EAAe,CAAC;AAAE,QAAA,aAAA,EAAeY,UAAAA;OAAc,CAAA;;;;;AAK/C,MAAA,cAAA,EAAgB,CAAC;AAAE,QAAA,cAAA,EAAgBA,UAAAA;OAAc,CAAA;;;;;AAKjD,MAAA,cAAA,EAAgB,CAAC;AAAE,QAAA,cAAA,EAAgB,CAAC,MAAA,EAAQ,OAAA,EAAS,YAAA,EAAc,cAAc;AAAG,OAAA,CAAA;;;;;AAKpF,MAAA,gBAAA,EAAkB,CAAC;QAAE,gBAAA,EAAkB,CAAC,SAAS,OAAO;OAAG,CAAA;;;;;AAK3DoD,MAAAA,GAAAA,EAAK,CAAC;QAAEA,GAAAA,EAAK,CAAC,UAAU,SAAS;OAAG,CAAA;;;;;MAKpCC,OAAAA,EAAS,CACL,SACA,cAAA,EACA,QAAA,EACA,QACA,aAAA,EACA,OAAA,EACA,gBACA,eAAA,EACA,YAAA,EACA,gBACA,oBAAA,EACA,oBAAA,EACA,sBACA,iBAAA,EACA,WAAA,EACA,aACA,MAAA,EACA,aAAA,EACA,UAAA,EACA,WAAA,EACA,QAAQ,CAAA;;;;;MAMZC,EAAAA,EAAI,CAAC,WAAW,aAAa,CAAA;;;;;AAK7BC,MAAAA,KAAAA,EAAO,CAAC;AAAEA,QAAAA,KAAAA,EAAO,CAAC,OAAA,EAAS,MAAA,EAAQ,MAAA,EAAQ,SAAS,KAAK;AAAG,OAAA,CAAA;;;;;AAK5DC,MAAAA,KAAAA,EAAO,CAAC;AAAEA,QAAAA,KAAAA,EAAO,CAAC,MAAA,EAAQ,OAAA,EAAS,MAAA,EAAQ,MAAA,EAAQ,SAAS,KAAK;AAAG,OAAA,CAAA;;;;;MAKpEC,SAAAA,EAAW,CAAC,WAAW,gBAAgB,CAAA;;;;;AAKvC,MAAA,YAAA,EAAc,CAAC;AAAEC,QAAAA,MAAAA,EAAQ,CAAC,SAAA,EAAW,OAAA,EAAS,MAAA,EAAQ,QAAQ,YAAY;AAAG,OAAA,CAAA;;;;;AAK7E,MAAA,iBAAA,EAAmB,CAAC;AAAEA,QAAAA,MAAAA,EAAQxD,0BAAAA;OAA8B,CAAA;;;;;AAK5DyD,MAAAA,QAAAA,EAAU,CAAC;AAAEA,QAAAA,QAAAA,EAAUxD,aAAAA;OAAiB,CAAA;;;;;AAKxC,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,YAAA,EAAcA,aAAAA;OAAiB,CAAA;;;;;AAKhD,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,YAAA,EAAcA,aAAAA;OAAiB,CAAA;;;;;AAKhDyD,MAAAA,UAAAA,EAAY,CAAC;AAAEA,QAAAA,UAAAA,EAAYxD,eAAAA;OAAmB,CAAA;;;;;AAK9C,MAAA,cAAA,EAAgB,CAAC;AAAE,QAAA,cAAA,EAAgBA,eAAAA;OAAmB,CAAA;;;;;AAKtD,MAAA,cAAA,EAAgB,CAAC;AAAE,QAAA,cAAA,EAAgBA,eAAAA;OAAmB,CAAA;;;;;AAKtDgB,MAAAA,QAAAA,EAAU,CAAC,QAAA,EAAU,OAAA,EAAS,UAAA,EAAY,YAAY,QAAQ,CAAA;;;;;AAK9DyC,MAAAA,KAAAA,EAAO,CAAC;AAAEA,QAAAA,KAAAA,EAAOvD,UAAAA;OAAc,CAAA;;;;;AAK/B,MAAA,SAAA,EAAW,CAAC;AAAE,QAAA,SAAA,EAAWA,UAAAA;OAAc,CAAA;;;;;AAKvC,MAAA,SAAA,EAAW,CAAC;AAAE,QAAA,SAAA,EAAWA,UAAAA;OAAc,CAAA;;;;;;AAMvCwD,MAAAA,KAAAA,EAAO,CACH;AACI,QAAA,SAAA,EAAWxD,UAAAA,EAAU;;;;;AAKrBwD,QAAAA,KAAAA,EAAOxD,UAAAA;OACV,CAAA;;;;;;AAOLyD,MAAAA,GAAAA,EAAK,CACD;AACI,QAAA,SAAA,EAAWzD,UAAAA,EAAU;;;;;AAKrByD,QAAAA,GAAAA,EAAKzD,UAAAA;OACR,CAAA;;;;;AAML,MAAA,UAAA,EAAY,CAAC;AAAE,QAAA,UAAA,EAAYA,UAAAA;OAAc,CAAA;;;;;AAKzC,MAAA,UAAA,EAAY,CAAC;AAAE,QAAA,UAAA,EAAYA,UAAAA;OAAc,CAAA;;;;;AAKzC0D,MAAAA,GAAAA,EAAK,CAAC;AAAEA,QAAAA,GAAAA,EAAK1D,UAAAA;OAAc,CAAA;;;;;AAK3B2D,MAAAA,KAAAA,EAAO,CAAC;AAAEA,QAAAA,KAAAA,EAAO3D,UAAAA;OAAc,CAAA;;;;;AAK/B4D,MAAAA,MAAAA,EAAQ,CAAC;AAAEA,QAAAA,MAAAA,EAAQ5D,UAAAA;OAAc,CAAA;;;;;AAKjC6D,MAAAA,IAAAA,EAAM,CAAC;AAAEA,QAAAA,IAAAA,EAAM7D,UAAAA;OAAc,CAAA;;;;;MAK7B8D,UAAAA,EAAY,CAAC,SAAA,EAAW,WAAA,EAAa,UAAU,CAAA;;;;;AAK/CC,MAAAA,CAAAA,EAAG,CAAC;AAAEA,QAAAA,CAAAA,EAAG,CAAClI,SAAAA,EAAW,MAAA,EAAQU,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;;;;AAUrE0H,MAAAA,KAAAA,EAAO,CACH;AACIA,QAAAA,KAAAA,EAAO,CACHxI,UAAAA,EACA,MAAA,EACA,QACAsD,cAAAA,EACA,GAAGiB,yBAAyB;OAEnC,CAAA;;;;;AAML,MAAA,gBAAA,EAAkB,CAAC;AAAEkE,QAAAA,IAAAA,EAAM,CAAC,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,aAAa;AAAG,OAAA,CAAA;;;;;AAKzE,MAAA,WAAA,EAAa,CAAC;QAAEA,IAAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,cAAc;AAAG,OAAA,CAAA;;;;;AAK1DA,MAAAA,IAAAA,EAAM,CAAC;AAAEA,QAAAA,IAAAA,EAAM,CAACvI,QAAAA,EAAUF,UAAAA,EAAY,MAAA,EAAQ,SAAA,EAAW,QAAQc,gBAAgB;AAAG,OAAA,CAAA;;;;;AAKpF4H,MAAAA,IAAAA,EAAM,CAAC;AAAEA,QAAAA,IAAAA,EAAM,CAAC,EAAA,EAAIxI,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;AAKtE6H,MAAAA,MAAAA,EAAQ,CAAC;AAAEA,QAAAA,MAAAA,EAAQ,CAAC,EAAA,EAAIzI,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;AAK1E8H,MAAAA,KAAAA,EAAO,CACH;AACIA,QAAAA,KAAAA,EAAO,CACHvI,SAAAA,EACA,OAAA,EACA,MAAA,EACA,MAAA,EACAU,qBACAD,gBAAgB;OAEvB,CAAA;;;;;AAML,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAa2D,yBAAAA;OAA6B,CAAA;;;;;AAK1D,MAAA,eAAA,EAAiB,CAAC;AAAEoE,QAAAA,GAAAA,EAAKnE,0BAAAA;OAA8B,CAAA;;;;;AAKvD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaE,yBAAAA;OAA6B,CAAA;;;;;AAK1D,MAAA,SAAA,EAAW,CAAC;AAAE,QAAA,SAAA,EAAWA,yBAAAA;OAA6B,CAAA;;;;;AAKtD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaH,yBAAAA;OAA6B,CAAA;;;;;AAK1D,MAAA,eAAA,EAAiB,CAAC;AAAEqE,QAAAA,GAAAA,EAAKpE,0BAAAA;OAA8B,CAAA;;;;;AAKvD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaE,yBAAAA;OAA6B,CAAA;;;;;AAK1D,MAAA,SAAA,EAAW,CAAC;AAAE,QAAA,SAAA,EAAWA,yBAAAA;OAA6B,CAAA;;;;;AAKtD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAa,CAAC,KAAA,EAAO,KAAA,EAAO,OAAA,EAAS,aAAa,WAAW;AAAG,OAAA,CAAA;;;;;AAKhF,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaC,qBAAAA;OAAyB,CAAA;;;;;AAKtD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,qBAAAA;OAAyB,CAAA;;;;;AAKtDkE,MAAAA,GAAAA,EAAK,CAAC;AAAEA,QAAAA,GAAAA,EAAKxE,uBAAAA;OAA2B,CAAA;;;;;AAKxC,MAAA,OAAA,EAAS,CAAC;AAAE,QAAA,OAAA,EAASA,uBAAAA;OAA2B,CAAA;;;;;AAKhD,MAAA,OAAA,EAAS,CAAC;AAAE,QAAA,OAAA,EAASA,uBAAAA;OAA2B,CAAA;;;;;AAKhD,MAAA,iBAAA,EAAmB,CAAC;AAAEyE,QAAAA,OAAAA,EAAS,CAAC,GAAGlE,qBAAAA,EAAqB,EAAI,QAAQ;AAAG,OAAA,CAAA;;;;;AAKvE,MAAA,eAAA,EAAiB,CAAC;AAAE,QAAA,eAAA,EAAiB,CAAC,GAAGC,uBAAAA,EAAuB,EAAI,QAAQ;AAAG,OAAA,CAAA;;;;;AAK/E,MAAA,cAAA,EAAgB,CAAC;AAAE,QAAA,cAAA,EAAgB,CAAC,MAAA,EAAQ,GAAGA,uBAAAA,EAAyB;AAAG,OAAA,CAAA;;;;;AAK3E,MAAA,eAAA,EAAiB,CAAC;AAAEpM,QAAAA,OAAAA,EAAS,CAAC,QAAA,EAAU,GAAGmM,qBAAAA,EAAuB;AAAG,OAAA,CAAA;;;;;AAKrE,MAAA,aAAA,EAAe,CAAC;QAAEmE,KAAAA,EAAO,CAAC,GAAGlE,uBAAAA,EAAuB,EAAI;UAAEmE,QAAAA,EAAU,CAAC,IAAI,MAAM;SAAG;OAAG,CAAA;;;;;AAKrF,MAAA,YAAA,EAAc,CACV;AAAEC,QAAAA,IAAAA,EAAM,CAAC,MAAA,EAAQ,GAAGpE,uBAAAA,EAAuB,EAAI;UAAEmE,QAAAA,EAAU,CAAC,IAAI,MAAM;SAAG;OAAG,CAAA;;;;;AAMhF,MAAA,eAAA,EAAiB,CAAC;AAAE,QAAA,eAAA,EAAiBpE,qBAAAA;OAAyB,CAAA;;;;;AAK9D,MAAA,aAAA,EAAe,CAAC;AAAE,QAAA,aAAA,EAAe,CAAC,GAAGC,uBAAAA,EAAuB,EAAI,UAAU;AAAG,OAAA,CAAA;;;;;AAK7E,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,YAAA,EAAc,CAAC,MAAA,EAAQ,GAAGA,uBAAAA,EAAyB;AAAG,OAAA,CAAA;;;;;;AAMvEqE,MAAAA,CAAAA,EAAG,CAAC;AAAEA,QAAAA,CAAAA,EAAG7E,uBAAAA;OAA2B,CAAA;;;;;AAKpC8E,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAI9E,uBAAAA;OAA2B,CAAA;;;;;AAKtC+E,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAI/E,uBAAAA;OAA2B,CAAA;;;;;AAKtCgF,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAIhF,uBAAAA;OAA2B,CAAA;;;;;AAKtCiF,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAIjF,uBAAAA;OAA2B,CAAA;;;;;AAKtCkF,MAAAA,GAAAA,EAAK,CAAC;AAAEA,QAAAA,GAAAA,EAAKlF,uBAAAA;OAA2B,CAAA;;;;;AAKxCmF,MAAAA,GAAAA,EAAK,CAAC;AAAEA,QAAAA,GAAAA,EAAKnF,uBAAAA;OAA2B,CAAA;;;;;AAKxCoF,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAIpF,uBAAAA;OAA2B,CAAA;;;;;AAKtCqF,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAIrF,uBAAAA;OAA2B,CAAA;;;;;AAKtCsF,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAItF,uBAAAA;OAA2B,CAAA;;;;;AAKtCuF,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAIvF,uBAAAA;OAA2B,CAAA;;;;;AAKtCwF,MAAAA,CAAAA,EAAG,CAAC;AAAEA,QAAAA,CAAAA,EAAG/E,WAAAA;OAAe,CAAA;;;;;AAKxBgF,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAIhF,WAAAA;OAAe,CAAA;;;;;AAK1BiF,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAIjF,WAAAA;OAAe,CAAA;;;;;AAK1BkF,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAIlF,WAAAA;OAAe,CAAA;;;;;AAK1BmF,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAInF,WAAAA;OAAe,CAAA;;;;;AAK1BoF,MAAAA,GAAAA,EAAK,CAAC;AAAEA,QAAAA,GAAAA,EAAKpF,WAAAA;OAAe,CAAA;;;;;AAK5BqF,MAAAA,GAAAA,EAAK,CAAC;AAAEA,QAAAA,GAAAA,EAAKrF,WAAAA;OAAe,CAAA;;;;;AAK5BsF,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAItF,WAAAA;OAAe,CAAA;;;;;AAK1BuF,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAIvF,WAAAA;OAAe,CAAA;;;;;AAK1BwF,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAIxF,WAAAA;OAAe,CAAA;;;;;AAK1ByF,MAAAA,EAAAA,EAAI,CAAC;AAAEA,QAAAA,EAAAA,EAAIzF,WAAAA;OAAe,CAAA;;;;;AAK1B,MAAA,SAAA,EAAW,CAAC;AAAE,QAAA,SAAA,EAAWT,uBAAAA;OAA2B,CAAA;;;;;AAKpD,MAAA,iBAAA,EAAmB,CAAC,iBAAiB,CAAA;;;;;AAKrC,MAAA,SAAA,EAAW,CAAC;AAAE,QAAA,SAAA,EAAWA,uBAAAA;OAA2B,CAAA;;;;;AAKpD,MAAA,iBAAA,EAAmB,CAAC,iBAAiB,CAAA;;;;;;;;AAUrCmB,MAAAA,IAAAA,EAAM,CAAC;AAAEA,QAAAA,IAAAA,EAAMT,WAAAA;OAAe,CAAA;;;;;AAK9B,MAAA,aAAA,EAAe,CAAC;AAAEyF,QAAAA,MAAAA,EAAQ,CAAC,MAAA,EAAQ,GAAGxF,iBAAAA,EAAmB;AAAG,OAAA,CAAA;;;;;AAK5D,MAAA,iBAAA,EAAmB,CAAC;AAAE,QAAA,YAAA,EAAc,CAAC,MAAA,EAAQ,GAAGA,iBAAAA,EAAmB;AAAG,OAAA,CAAA;;;;;AAKtE,MAAA,iBAAA,EAAmB,CAAC;AAAE,QAAA,YAAA,EAAc,CAAC,MAAA,EAAQ,GAAGA,iBAAAA,EAAmB;AAAG,OAAA,CAAA;;;;;AAKtE,MAAA,YAAA,EAAc,CAAC;AAAEyF,QAAAA,KAAAA,EAAO,CAAC,MAAA,EAAQ,GAAGxF,gBAAAA,EAAkB;AAAG,OAAA,CAAA;;;;;AAKzD,MAAA,gBAAA,EAAkB,CAAC;AAAE,QAAA,WAAA,EAAa,CAAC,MAAA,EAAQ,GAAGA,gBAAAA,EAAkB;AAAG,OAAA,CAAA;;;;;AAKnE,MAAA,gBAAA,EAAkB,CAAC;AAAE,QAAA,WAAA,EAAa,CAAC,MAAA,EAAQ,GAAGA,gBAAAA,EAAkB;AAAG,OAAA,CAAA;;;;;AAKnEyF,MAAAA,CAAAA,EAAG,CAAC;AAAEA,QAAAA,CAAAA,EAAG,CAACtH,cAAAA,EAAgB,QAAA,EAAU,GAAG2B,aAAa;AAAG,OAAA,CAAA;;;;;AAKvD,MAAA,OAAA,EAAS,CACL;QACI,OAAA,EAAS;AACL3B,UAAAA,cAAAA;AACA,UAAA,QAAA;;AAEA,UAAA,MAAA;AACA,UAAA,GAAG2B,WAAAA;AAAa;OAEvB,CAAA;;;;;AAML,MAAA,OAAA,EAAS,CACL;QACI,OAAA,EAAS;AACL3B,UAAAA,cAAAA;AACA,UAAA,QAAA;AACA,UAAA,MAAA;;AAEA,UAAA,OAAA;;AAEA,UAAA;AAAEuH,YAAAA,MAAAA,EAAQ,CAACxH,eAAe;AAAC,WAAA;AAC3B,UAAA,GAAG4B,WAAAA;AAAa;OAEvB,CAAA;;;;;AAML6F,MAAAA,CAAAA,EAAG,CAAC;AAAEA,QAAAA,CAAAA,EAAG,CAAC,QAAA,EAAU,IAAA,EAAM,GAAG7F,aAAa;AAAG,OAAA,CAAA;;;;;AAK7C,MAAA,OAAA,EAAS,CAAC;AAAE,QAAA,OAAA,EAAS,CAAC,QAAA,EAAU,IAAA,EAAM,MAAA,EAAQ,GAAGA,aAAa;AAAG,OAAA,CAAA;;;;;AAKjE,MAAA,OAAA,EAAS,CAAC;AAAE,QAAA,OAAA,EAAS,CAAC,QAAA,EAAU,IAAA,EAAM,GAAGA,aAAa;AAAG,OAAA,CAAA;;;;;;;;AAUzD,MAAA,WAAA,EAAa,CACT;AAAEkC,QAAAA,IAAAA,EAAM,CAAC,MAAA,EAAQlE,SAAAA,EAAWhB,yBAAAA,EAA2Bd,iBAAiB;OAAG,CAAA;;;;;MAM/E,gBAAA,EAAkB,CAAC,eAAe,sBAAsB,CAAA;;;;;MAKxD,YAAA,EAAc,CAAC,UAAU,YAAY,CAAA;;;;;AAKrC,MAAA,aAAA,EAAe,CACX;QACI0F,IAAAA,EAAM,CAAC3D,eAAAA,EAAiBV,yBAAAA,EAA2BjB,iBAAiB;OACvE,CAAA;;;;;AAML,MAAA,cAAA,EAAgB,CACZ;QACI,cAAA,EAAgB,CACZ,iBAAA,EACA,iBAAA,EACA,WAAA,EACA,gBAAA,EACA,QAAA,EACA,eAAA,EACA,UAAA,EACA,gBAAA,EACA,gBAAA,EACAjB,SAAAA,EACAQ,gBAAgB;OAEvB,CAAA;;;;;AAML,MAAA,aAAA,EAAe,CACX;QAAE+F,IAAAA,EAAM,CAAC1E,6BAAAA,EAA+BV,qBAAAA,EAAuBuB,SAAS;OAAG,CAAA;;;;;AAM/E,MAAA,eAAA,EAAiB,CAAC;AAAE,QAAA,eAAA,EAAiB,CAAClC,gBAAgB;OAAG,CAAA;;;;;AAKzD,MAAA,YAAA,EAAc,CAAC,aAAa,CAAA;;;;;AAK5B,MAAA,aAAA,EAAe,CAAC,SAAS,CAAA;;;;;AAKzB,MAAA,kBAAA,EAAoB,CAAC,cAAc,CAAA;;;;;MAKnC,YAAA,EAAc,CAAC,eAAe,eAAe,CAAA;;;;;MAK7C,aAAA,EAAe,CAAC,qBAAqB,cAAc,CAAA;;;;;MAKnD,cAAA,EAAgB,CAAC,sBAAsB,mBAAmB,CAAA;;;;;AAK1DsG,MAAAA,QAAAA,EAAU,CAAC;QAAEA,QAAAA,EAAU,CAACjE,aAAAA,EAAepC,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;AAK/E,MAAA,YAAA,EAAc,CACV;AAAE,QAAA,YAAA,EAAc,CAACZ,QAAAA,EAAU,MAAA,EAAQa,mBAAAA,EAAqBM,iBAAiB;OAAG,CAAA;;;;;AAMhFyF,MAAAA,OAAAA,EAAS,CACL;QACIA,OAAAA,EAAS;;AAEL1D,UAAAA,YAAAA;AACA,UAAA,GAAGmB,uBAAAA;AAAyB;OAEnC,CAAA;;;;;AAML,MAAA,YAAA,EAAc,CAAC;QAAE,YAAA,EAAc,CAAC,MAAA,EAAQxD,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;AAKhF,MAAA,qBAAA,EAAuB,CAAC;QAAEiK,IAAAA,EAAM,CAAC,UAAU,SAAS;OAAG,CAAA;;;;;AAKvD,MAAA,iBAAA,EAAmB,CACf;AAAEA,QAAAA,IAAAA,EAAM,CAAC,MAAA,EAAQ,SAAA,EAAW,MAAA,EAAQhK,qBAAqBD,gBAAgB;OAAG,CAAA;;;;;AAMhF,MAAA,gBAAA,EAAkB,CAAC;AAAEqG,QAAAA,IAAAA,EAAM,CAAC,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS,SAAA,EAAW,SAAS,KAAK;AAAG,OAAA,CAAA;;;;;;AAMnF,MAAA,mBAAA,EAAqB,CAAC;AAAE6D,QAAAA,WAAAA,EAAa5F,UAAAA;OAAc,CAAA;;;;;AAKnD,MAAA,YAAA,EAAc,CAAC;AAAE+B,QAAAA,IAAAA,EAAM/B,UAAAA;OAAc,CAAA;;;;;AAKrC,MAAA,iBAAA,EAAmB,CAAC,WAAA,EAAa,UAAA,EAAY,cAAA,EAAgB,cAAc,CAAA;;;;;AAK3E,MAAA,uBAAA,EAAyB,CAAC;AAAE6F,QAAAA,UAAAA,EAAY,CAAC,GAAGnF,cAAAA,EAAc,EAAI,MAAM;AAAG,OAAA,CAAA;;;;;AAKvE,MAAA,2BAAA,EAA6B,CACzB;AACImF,QAAAA,UAAAA,EAAY,CACR/K,QAAAA,EACA,WAAA,EACA,MAAA,EACAa,qBACAI,iBAAiB;OAExB,CAAA;;;;;AAML,MAAA,uBAAA,EAAyB,CAAC;AAAE8J,QAAAA,UAAAA,EAAY7F,UAAAA;OAAc,CAAA;;;;;AAKtD,MAAA,kBAAA,EAAoB,CAChB;AAAE,QAAA,kBAAA,EAAoB,CAAClF,QAAAA,EAAU,MAAA,EAAQa,mBAAAA,EAAqBD,gBAAgB;OAAG,CAAA;;;;;AAMrF,MAAA,gBAAA,EAAkB,CAAC,WAAA,EAAa,WAAA,EAAa,YAAA,EAAc,aAAa,CAAA;;;;;MAKxE,eAAA,EAAiB,CAAC,UAAA,EAAY,eAAA,EAAiB,WAAW,CAAA;;;;;AAK1D,MAAA,WAAA,EAAa,CAAC;AAAEqG,QAAAA,IAAAA,EAAM,CAAC,MAAA,EAAQ,QAAA,EAAU,SAAA,EAAW,QAAQ;AAAG,OAAA,CAAA;;;;;AAK/D+D,MAAAA,MAAAA,EAAQ,CAAC;AAAEA,QAAAA,MAAAA,EAAQ3G,uBAAAA;OAA2B,CAAA;;;;;AAK9C,MAAA,gBAAA,EAAkB,CACd;QACI4G,KAAAA,EAAO,CACH,UAAA,EACA,KAAA,EACA,QAAA,EACA,QAAA,EACA,YACA,aAAA,EACA,KAAA,EACA,OAAA,EACApK,mBAAAA,EACAD,gBAAgB;OAEvB,CAAA;;;;;AAMLsK,MAAAA,UAAAA,EAAY,CACR;AAAEA,QAAAA,UAAAA,EAAY,CAAC,QAAA,EAAU,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,YAAY,cAAc;OAAG,CAAA;;;;;AAMvFC,MAAAA,KAAAA,EAAO,CAAC;AAAEA,QAAAA,KAAAA,EAAO,CAAC,QAAA,EAAU,OAAA,EAAS,KAAA,EAAO,MAAM;AAAG,OAAA,CAAA;;;;;AAKrDC,MAAAA,IAAAA,EAAM,CAAC;QAAEA,IAAAA,EAAM,CAAC,YAAA,EAAc,UAAA,EAAY,QAAQ;AAAG,OAAA,CAAA;;;;;AAKrDC,MAAAA,OAAAA,EAAS,CAAC;QAAEA,OAAAA,EAAS,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAM;AAAG,OAAA,CAAA;;;;;AAKjD5S,MAAAA,OAAAA,EAAS,CAAC;QAAEA,OAAAA,EAAS,CAAC,MAAA,EAAQoI,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;;;;AAUtE,MAAA,eAAA,EAAiB,CAAC;QAAE0K,EAAAA,EAAI,CAAC,OAAA,EAAS,OAAA,EAAS,QAAQ;AAAG,OAAA,CAAA;;;;;AAKtD,MAAA,SAAA,EAAW,CAAC;AAAE,QAAA,SAAA,EAAW,CAAC,QAAA,EAAU,SAAA,EAAW,SAAA,EAAW,MAAM;AAAG,OAAA,CAAA;;;;;AAKnE,MAAA,WAAA,EAAa,CAAC;QAAE,WAAA,EAAa,CAAC,QAAA,EAAU,SAAA,EAAW,SAAS;AAAG,OAAA,CAAA;;;;;AAK/D,MAAA,aAAA,EAAe,CAAC;AAAEA,QAAAA,EAAAA,EAAInG,eAAAA;OAAmB,CAAA;;;;;AAKzC,MAAA,WAAA,EAAa,CAAC;AAAEmG,QAAAA,EAAAA,EAAIjG,aAAAA;OAAiB,CAAA;;;;;AAKrC,MAAA,SAAA,EAAW,CAAC;AAAEiG,QAAAA,EAAAA,EAAI/F,WAAAA;OAAe,CAAA;;;;;AAKjC,MAAA,UAAA,EAAY,CACR;AACI+F,QAAAA,EAAAA,EAAI,CACA,MAAA,EACA;AACIC,UAAAA,MAAAA,EAAQ,CACJ;YAAEC,EAAAA,EAAI,CAAC,KAAK,IAAA,EAAM,GAAA,EAAK,MAAM,GAAA,EAAK,IAAA,EAAM,KAAK,IAAI;WAAC,EAClDrL,SAAAA,EACAU,qBACAD,gBAAgB,CAAA;UAEpB6K,MAAAA,EAAQ,CAAC,EAAA,EAAI5K,mBAAAA,EAAqBD,gBAAgB,CAAA;UAClD8K,KAAAA,EAAO,CAACvL,SAAAA,EAAWU,mBAAAA,EAAqBD,gBAAgB;AAC3D,SAAA,EACDwB,0BACAT,gBAAgB;OAEvB,CAAA;;;;;AAML,MAAA,UAAA,EAAY,CAAC;AAAE2J,QAAAA,EAAAA,EAAIpG,UAAAA;OAAc,CAAA;;;;;AAKjC,MAAA,mBAAA,EAAqB,CAAC;AAAEyG,QAAAA,IAAAA,EAAMlG,yBAAAA;OAA6B,CAAA;;;;;AAK3D,MAAA,kBAAA,EAAoB,CAAC;AAAEmG,QAAAA,GAAAA,EAAKnG,yBAAAA;OAA6B,CAAA;;;;;AAKzD,MAAA,iBAAA,EAAmB,CAAC;AAAE+F,QAAAA,EAAAA,EAAI/F,yBAAAA;OAA6B,CAAA;;;;;AAKvD,MAAA,eAAA,EAAiB,CAAC;AAAEkG,QAAAA,IAAAA,EAAMzG,UAAAA;OAAc,CAAA;;;;;AAKxC,MAAA,cAAA,EAAgB,CAAC;AAAE0G,QAAAA,GAAAA,EAAK1G,UAAAA;OAAc,CAAA;;;;;AAKtC,MAAA,aAAA,EAAe,CAAC;AAAEsG,QAAAA,EAAAA,EAAItG,UAAAA;OAAc,CAAA;;;;;;;;AAUpC2G,MAAAA,OAAAA,EAAS,CAAC;AAAEA,QAAAA,OAAAA,EAASnG,WAAAA;OAAe,CAAA;;;;;AAKpC,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,WAAAA;OAAe,CAAA;;;;;AAK5C,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,WAAAA;OAAe,CAAA;;;;;AAK5C,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,WAAAA;OAAe,CAAA;;;;;AAK5C,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,WAAAA;OAAe,CAAA;;;;;AAK5C,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,WAAAA;OAAe,CAAA;;;;;AAK5C,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,WAAAA;OAAe,CAAA;;;;;AAK5C,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,YAAA,EAAcA,WAAAA;OAAe,CAAA;;;;;AAK9C,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,YAAA,EAAcA,WAAAA;OAAe,CAAA;;;;;AAK9C,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,YAAA,EAAcA,WAAAA;OAAe,CAAA;;;;;AAK9C,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,YAAA,EAAcA,WAAAA;OAAe,CAAA;;;;;AAK9C,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,YAAA,EAAcA,WAAAA;OAAe,CAAA;;;;;AAK9C,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,YAAA,EAAcA,WAAAA;OAAe,CAAA;;;;;AAK9C,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,YAAA,EAAcA,WAAAA;OAAe,CAAA;;;;;AAK9C,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,YAAA,EAAcA,WAAAA;OAAe,CAAA;;;;;AAK9C,MAAA,UAAA,EAAY,CAAC;AAAEoG,QAAAA,MAAAA,EAAQnG,gBAAAA;OAAoB,CAAA;;;;;AAK3C,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,UAAA,EAAYA,gBAAAA;OAAoB,CAAA;;;;;AAKjD,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,UAAA,EAAYA,gBAAAA;OAAoB,CAAA;;;;;AAKjD,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,UAAA,EAAYA,gBAAAA;OAAoB,CAAA;;;;;AAKjD,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,UAAA,EAAYA,gBAAAA;OAAoB,CAAA;;;;;AAKjD,MAAA,aAAA,EAAe,CAAC;AAAE,QAAA,WAAA,EAAaA,gBAAAA;OAAoB,CAAA;;;;;AAKnD,MAAA,aAAA,EAAe,CAAC;AAAE,QAAA,WAAA,EAAaA,gBAAAA;OAAoB,CAAA;;;;;AAKnD,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,UAAA,EAAYA,gBAAAA;OAAoB,CAAA;;;;;AAKjD,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,UAAA,EAAYA,gBAAAA;OAAoB,CAAA;;;;;AAKjD,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,UAAA,EAAYA,gBAAAA;OAAoB,CAAA;;;;;AAKjD,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,UAAA,EAAYA,gBAAAA;OAAoB,CAAA;;;;;AAKjD,MAAA,UAAA,EAAY,CAAC;AAAE,QAAA,UAAA,EAAYA,gBAAAA;OAAoB,CAAA;;;;;AAK/C,MAAA,kBAAA,EAAoB,CAAC,kBAAkB,CAAA;;;;;AAKvC,MAAA,UAAA,EAAY,CAAC;AAAE,QAAA,UAAA,EAAYA,gBAAAA;OAAoB,CAAA;;;;;AAK/C,MAAA,kBAAA,EAAoB,CAAC,kBAAkB,CAAA;;;;;AAKvC,MAAA,cAAA,EAAgB,CAAC;AAAEmG,QAAAA,MAAAA,EAAQ,CAAC,GAAGlG,cAAAA,EAAc,EAAI,UAAU,MAAM;AAAG,OAAA,CAAA;;;;;AAKpE,MAAA,cAAA,EAAgB,CAAC;AAAEmG,QAAAA,MAAAA,EAAQ,CAAC,GAAGnG,cAAAA,EAAc,EAAI,UAAU,MAAM;AAAG,OAAA,CAAA;;;;;AAKpE,MAAA,cAAA,EAAgB,CAAC;AAAEkG,QAAAA,MAAAA,EAAQ5G,UAAAA;OAAc,CAAA;;;;;AAKzC,MAAA,gBAAA,EAAkB,CAAC;AAAE,QAAA,UAAA,EAAYA,UAAAA;OAAc,CAAA;;;;;AAK/C,MAAA,gBAAA,EAAkB,CAAC;AAAE,QAAA,UAAA,EAAYA,UAAAA;OAAc,CAAA;;;;;AAK/C,MAAA,gBAAA,EAAkB,CAAC;AAAE,QAAA,UAAA,EAAYA,UAAAA;OAAc,CAAA;;;;;AAK/C,MAAA,gBAAA,EAAkB,CAAC;AAAE,QAAA,UAAA,EAAYA,UAAAA;OAAc,CAAA;;;;;AAK/C,MAAA,iBAAA,EAAmB,CAAC;AAAE,QAAA,WAAA,EAAaA,UAAAA;OAAc,CAAA;;;;;AAKjD,MAAA,iBAAA,EAAmB,CAAC;AAAE,QAAA,WAAA,EAAaA,UAAAA;OAAc,CAAA;;;;;AAKjD,MAAA,gBAAA,EAAkB,CAAC;AAAE,QAAA,UAAA,EAAYA,UAAAA;OAAc,CAAA;;;;;AAK/C,MAAA,gBAAA,EAAkB,CAAC;AAAE,QAAA,UAAA,EAAYA,UAAAA;OAAc,CAAA;;;;;AAK/C,MAAA,gBAAA,EAAkB,CAAC;AAAE,QAAA,UAAA,EAAYA,UAAAA;OAAc,CAAA;;;;;AAK/C,MAAA,gBAAA,EAAkB,CAAC;AAAE,QAAA,UAAA,EAAYA,UAAAA;OAAc,CAAA;;;;;AAK/C,MAAA,cAAA,EAAgB,CAAC;AAAE6G,QAAAA,MAAAA,EAAQ7G,UAAAA;OAAc,CAAA;;;;;AAKzC,MAAA,eAAA,EAAiB,CAAC;AAAE8G,QAAAA,OAAAA,EAAS,CAAC,GAAGpG,cAAAA,EAAc,EAAI,QAAQ,QAAQ;AAAG,OAAA,CAAA;;;;;AAKtE,MAAA,gBAAA,EAAkB,CACd;QAAE,gBAAA,EAAkB,CAAC5F,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;OAAG,CAAA;;;;;AAM3E,MAAA,WAAA,EAAa,CACT;AAAEoL,QAAAA,OAAAA,EAAS,CAAC,EAAA,EAAIhM,QAAAA,EAAU+B,yBAAAA,EAA2Bd,iBAAiB;OAAG,CAAA;;;;;AAM7E,MAAA,eAAA,EAAiB,CAAC;AAAE+K,QAAAA,OAAAA,EAAS9G,UAAAA;OAAc,CAAA;;;;;;;;AAU3C6B,MAAAA,MAAAA,EAAQ,CACJ;QACIA,MAAAA,EAAQ;;AAEJ,UAAA,EAAA;AACA,UAAA,MAAA;AACAxD,UAAAA,WAAAA;AACAlB,UAAAA,yBAAAA;AACAR,UAAAA;AAAiB;OAExB,CAAA;;;;;AAML,MAAA,cAAA,EAAgB,CAAC;AAAEkF,QAAAA,MAAAA,EAAQ7B,UAAAA;OAAc,CAAA;;;;;AAKzC,MAAA,cAAA,EAAgB,CACZ;AACI,QAAA,cAAA,EAAgB,CACZ,MAAA,EACA1B,gBAAAA,EACAnB,yBAAAA,EACAR,iBAAiB;OAExB,CAAA;;;;;AAML,MAAA,oBAAA,EAAsB,CAAC;AAAE,QAAA,cAAA,EAAgBqD,UAAAA;OAAc,CAAA;;;;;AAKvD,MAAA,QAAA,EAAU,CAAC;AAAE+G,QAAAA,IAAAA,EAAMtG,gBAAAA;OAAoB,CAAA;;;;;;;AAOvC,MAAA,cAAA,EAAgB,CAAC,YAAY,CAAA;;;;;AAK7B,MAAA,YAAA,EAAc,CAAC;AAAEsG,QAAAA,IAAAA,EAAM/G,UAAAA;OAAc,CAAA;;;;;;;AAOrC,MAAA,eAAA,EAAiB,CAAC;QAAE,aAAA,EAAe,CAAClF,UAAUiB,iBAAiB;OAAG,CAAA;;;;;;;AAOlE,MAAA,mBAAA,EAAqB,CAAC;AAAE,QAAA,aAAA,EAAeiE,UAAAA;OAAc,CAAA;;;;;AAKrD,MAAA,cAAA,EAAgB,CAAC;AAAE,QAAA,YAAA,EAAcS,gBAAAA;OAAoB,CAAA;;;;;AAKrD,MAAA,kBAAA,EAAoB,CAAC;AAAE,QAAA,YAAA,EAAcT,UAAAA;OAAc,CAAA;;;;;AAKnD,MAAA,aAAA,EAAe,CACX;AACI,QAAA,aAAA,EAAe,CACX,MAAA,EACAzB,eAAAA,EACApB,yBAAAA,EACAR,iBAAiB;OAExB,CAAA;;;;;AAML,MAAA,mBAAA,EAAqB,CAAC;AAAE,QAAA,aAAA,EAAeqD,UAAAA;OAAc,CAAA;;;;;AAKrDgH,MAAAA,OAAAA,EAAS,CAAC;QAAEA,OAAAA,EAAS,CAAClM,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;AAKxE,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAa,CAAC,GAAGiF,cAAAA,EAAc,EAAI,eAAe,cAAc;AAAG,OAAA,CAAA;;;;;AAKnF,MAAA,UAAA,EAAY,CAAC;AAAE,QAAA,UAAA,EAAYA,cAAAA;OAAkB,CAAA;;;;;AAK7C,MAAA,WAAA,EAAa,CACT;AAAE,QAAA,WAAA,EAAa,CAAC,QAAA,EAAU,SAAA,EAAW,SAAA,EAAW,MAAA,EAAQ,UAAU,MAAM;AAAC,OAAA,EACzE,cAAc,CAAA;;;;;AAMlB,MAAA,gBAAA,EAAkB,CAAC;AAAEsG,QAAAA,IAAAA,EAAM,CAAC,KAAA,EAAO,UAAA,EAAY,WAAA,EAAa,SAAS;AAAG,OAAA,CAAA;;;;;AAKxE,MAAA,uBAAA,EAAyB,CAAC;AAAE,QAAA,aAAA,EAAe,CAACnM,QAAQ;OAAG,CAAA;AACvD,MAAA,4BAAA,EAA8B,CAAC;AAAE,QAAA,kBAAA,EAAoB8F,sBAAAA;OAA0B,CAAA;AAC/E,MAAA,0BAAA,EAA4B,CAAC;AAAE,QAAA,gBAAA,EAAkBA,sBAAAA;OAA0B,CAAA;AAC3E,MAAA,8BAAA,EAAgC,CAAC;AAAE,QAAA,kBAAA,EAAoBZ,UAAAA;OAAc,CAAA;AACrE,MAAA,4BAAA,EAA8B,CAAC;AAAE,QAAA,gBAAA,EAAkBA,UAAAA;OAAc,CAAA;AACjE,MAAA,uBAAA,EAAyB,CAAC;AAAE,QAAA,aAAA,EAAeY,sBAAAA;OAA0B,CAAA;AACrE,MAAA,qBAAA,EAAuB,CAAC;AAAE,QAAA,WAAA,EAAaA,sBAAAA;OAA0B,CAAA;AACjE,MAAA,yBAAA,EAA2B,CAAC;AAAE,QAAA,aAAA,EAAeZ,UAAAA;OAAc,CAAA;AAC3D,MAAA,uBAAA,EAAyB,CAAC;AAAE,QAAA,WAAA,EAAaA,UAAAA;OAAc,CAAA;AACvD,MAAA,uBAAA,EAAyB,CAAC;AAAE,QAAA,aAAA,EAAeY,sBAAAA;OAA0B,CAAA;AACrE,MAAA,qBAAA,EAAuB,CAAC;AAAE,QAAA,WAAA,EAAaA,sBAAAA;OAA0B,CAAA;AACjE,MAAA,yBAAA,EAA2B,CAAC;AAAE,QAAA,aAAA,EAAeZ,UAAAA;OAAc,CAAA;AAC3D,MAAA,uBAAA,EAAyB,CAAC;AAAE,QAAA,WAAA,EAAaA,UAAAA;OAAc,CAAA;AACvD,MAAA,uBAAA,EAAyB,CAAC;AAAE,QAAA,aAAA,EAAeY,sBAAAA;OAA0B,CAAA;AACrE,MAAA,qBAAA,EAAuB,CAAC;AAAE,QAAA,WAAA,EAAaA,sBAAAA;OAA0B,CAAA;AACjE,MAAA,yBAAA,EAA2B,CAAC;AAAE,QAAA,aAAA,EAAeZ,UAAAA;OAAc,CAAA;AAC3D,MAAA,uBAAA,EAAyB,CAAC;AAAE,QAAA,WAAA,EAAaA,UAAAA;OAAc,CAAA;AACvD,MAAA,uBAAA,EAAyB,CAAC;AAAE,QAAA,aAAA,EAAeY,sBAAAA;OAA0B,CAAA;AACrE,MAAA,qBAAA,EAAuB,CAAC;AAAE,QAAA,WAAA,EAAaA,sBAAAA;OAA0B,CAAA;AACjE,MAAA,yBAAA,EAA2B,CAAC;AAAE,QAAA,aAAA,EAAeZ,UAAAA;OAAc,CAAA;AAC3D,MAAA,uBAAA,EAAyB,CAAC;AAAE,QAAA,WAAA,EAAaA,UAAAA;OAAc,CAAA;AACvD,MAAA,uBAAA,EAAyB,CAAC;AAAE,QAAA,aAAA,EAAeY,sBAAAA;OAA0B,CAAA;AACrE,MAAA,qBAAA,EAAuB,CAAC;AAAE,QAAA,WAAA,EAAaA,sBAAAA;OAA0B,CAAA;AACjE,MAAA,yBAAA,EAA2B,CAAC;AAAE,QAAA,aAAA,EAAeZ,UAAAA;OAAc,CAAA;AAC3D,MAAA,uBAAA,EAAyB,CAAC;AAAE,QAAA,WAAA,EAAaA,UAAAA;OAAc,CAAA;AACvD,MAAA,uBAAA,EAAyB,CAAC;AAAE,QAAA,aAAA,EAAeY,sBAAAA;OAA0B,CAAA;AACrE,MAAA,qBAAA,EAAuB,CAAC;AAAE,QAAA,WAAA,EAAaA,sBAAAA;OAA0B,CAAA;AACjE,MAAA,yBAAA,EAA2B,CAAC;AAAE,QAAA,aAAA,EAAeZ,UAAAA;OAAc,CAAA;AAC3D,MAAA,uBAAA,EAAyB,CAAC;AAAE,QAAA,WAAA,EAAaA,UAAAA;OAAc,CAAA;AACvD,MAAA,mBAAA,EAAqB,CAAC;QAAE,aAAA,EAAe,CAACrE,qBAAqBD,gBAAgB;OAAG,CAAA;AAChF,MAAA,4BAAA,EAA8B,CAAC;AAAE,QAAA,kBAAA,EAAoBkF,sBAAAA;OAA0B,CAAA;AAC/E,MAAA,0BAAA,EAA4B,CAAC;AAAE,QAAA,gBAAA,EAAkBA,sBAAAA;OAA0B,CAAA;AAC3E,MAAA,8BAAA,EAAgC,CAAC;AAAE,QAAA,kBAAA,EAAoBZ,UAAAA;OAAc,CAAA;AACrE,MAAA,4BAAA,EAA8B,CAAC;AAAE,QAAA,gBAAA,EAAkBA,UAAAA;OAAc,CAAA;AACjE,MAAA,yBAAA,EAA2B,CAAC;QAAE,aAAA,EAAe,CAAC,UAAU,SAAS;OAAG,CAAA;AACpE,MAAA,wBAAA,EAA0B,CACtB;AAAE,QAAA,aAAA,EAAe,CAAC;UAAEkH,OAAAA,EAAS,CAAC,QAAQ,QAAQ,CAAA;UAAGC,QAAAA,EAAU,CAAC,QAAQ,QAAQ;SAAG;OAAG,CAAA;AAEtF,MAAA,uBAAA,EAAyB,CAAC;AAAE,QAAA,gBAAA,EAAkBpI,aAAAA;OAAiB,CAAA;AAC/D,MAAA,sBAAA,EAAwB,CAAC;AAAE,QAAA,YAAA,EAAc,CAACjE,QAAQ;OAAG,CAAA;AACrD,MAAA,2BAAA,EAA6B,CAAC;AAAE,QAAA,iBAAA,EAAmB8F,sBAAAA;OAA0B,CAAA;AAC7E,MAAA,yBAAA,EAA2B,CAAC;AAAE,QAAA,eAAA,EAAiBA,sBAAAA;OAA0B,CAAA;AACzE,MAAA,6BAAA,EAA+B,CAAC;AAAE,QAAA,iBAAA,EAAmBZ,UAAAA;OAAc,CAAA;AACnE,MAAA,2BAAA,EAA6B,CAAC;AAAE,QAAA,eAAA,EAAiBA,UAAAA;OAAc,CAAA;;;;;AAK/D,MAAA,WAAA,EAAa,CAAC;QAAEiH,IAAAA,EAAM,CAAC,OAAA,EAAS,WAAA,EAAa,OAAO;AAAG,OAAA,CAAA;;;;;AAKvD,MAAA,aAAA,EAAe,CACX;AAAE,QAAA,aAAA,EAAe,CAAC,QAAA,EAAU,SAAA,EAAW,SAAA,EAAW,MAAA,EAAQ,UAAU,MAAM;OAAG,CAAA;;;;;AAMjF,MAAA,eAAA,EAAiB,CAAC;AAAEA,QAAAA,IAAAA,EAAMhH,eAAAA;OAAmB,CAAA;;;;;AAK7C,MAAA,aAAA,EAAe,CAAC;AAAEgH,QAAAA,IAAAA,EAAM9G,aAAAA;OAAiB,CAAA;;;;;AAKzC,MAAA,WAAA,EAAa,CAAC;AAAE8G,QAAAA,IAAAA,EAAM5G,WAAAA;OAAe,CAAA;;;;;AAKrC,MAAA,WAAA,EAAa,CAAC;QAAE,WAAA,EAAa,CAAC,SAAS,WAAW;OAAG,CAAA;;;;;AAKrD,MAAA,YAAA,EAAc,CAAC;QAAE4G,IAAAA,EAAM,CAAC,MAAA,EAAQtL,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;;;;AAUxE0L,MAAAA,MAAAA,EAAQ,CACJ;QACIA,MAAAA,EAAQ;;AAEJ,UAAA,EAAA;AACA,UAAA,MAAA;AACAzL,UAAAA,mBAAAA;AACAD,UAAAA;AAAgB;OAEvB,CAAA;;;;;AAML0F,MAAAA,IAAAA,EAAM,CAAC;AAAEA,QAAAA,IAAAA,EAAMP,SAAAA;OAAa,CAAA;;;;;AAK5BwG,MAAAA,UAAAA,EAAY,CAAC;QAAEA,UAAAA,EAAY,CAACvM,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;AAK9E4L,MAAAA,QAAAA,EAAU,CAAC;QAAEA,QAAAA,EAAU,CAACxM,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;AAK1E,MAAA,aAAA,EAAe,CACX;QACI,aAAA,EAAe;;AAEX,UAAA,EAAA;AACA,UAAA,MAAA;AACA8C,UAAAA,eAAAA;AACArB,UAAAA,yBAAAA;AACAR,UAAAA;AAAiB;OAExB,CAAA;;;;;AAML,MAAA,mBAAA,EAAqB,CAAC;AAAE,QAAA,aAAA,EAAeqD,UAAAA;OAAc,CAAA;;;;;AAKrDuH,MAAAA,SAAAA,EAAW,CAAC;AAAEA,QAAAA,SAAAA,EAAW,CAAC,EAAA,EAAIzM,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;AAKhF,MAAA,YAAA,EAAc,CAAC;QAAE,YAAA,EAAc,CAACZ,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;AAKlF8L,MAAAA,MAAAA,EAAQ,CAAC;AAAEA,QAAAA,MAAAA,EAAQ,CAAC,EAAA,EAAI1M,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;AAK1E+L,MAAAA,QAAAA,EAAU,CAAC;QAAEA,QAAAA,EAAU,CAAC3M,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;AAK1EgM,MAAAA,KAAAA,EAAO,CAAC;AAAEA,QAAAA,KAAAA,EAAO,CAAC,EAAA,EAAI5M,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;AAKxE,MAAA,iBAAA,EAAmB,CACf;QACI,iBAAA,EAAmB;;AAEf,UAAA,EAAA;AACA,UAAA,MAAA;AACAC,UAAAA,mBAAAA;AACAD,UAAAA;AAAgB;OAEvB,CAAA;;;;;AAML,MAAA,eAAA,EAAiB,CAAC;AAAE,QAAA,eAAA,EAAiBmF,SAAAA;OAAa,CAAA;;;;;AAKlD,MAAA,qBAAA,EAAuB,CACnB;QAAE,qBAAA,EAAuB,CAAC/F,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;OAAG,CAAA;;;;;AAMhF,MAAA,mBAAA,EAAqB,CACjB;QAAE,mBAAA,EAAqB,CAACZ,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;OAAG,CAAA;;;;;AAM9E,MAAA,oBAAA,EAAsB,CAClB;AAAE,QAAA,oBAAA,EAAsB,CAAC,EAAA,EAAIZ,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;OAAG,CAAA;;;;;AAMnF,MAAA,qBAAA,EAAuB,CACnB;QAAE,qBAAA,EAAuB,CAACZ,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;OAAG,CAAA;;;;;AAMhF,MAAA,iBAAA,EAAmB,CACf;AAAE,QAAA,iBAAA,EAAmB,CAAC,EAAA,EAAIZ,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;OAAG,CAAA;;;;;AAMhF,MAAA,kBAAA,EAAoB,CAChB;QAAE,kBAAA,EAAoB,CAACZ,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;OAAG,CAAA;;;;;AAM7E,MAAA,mBAAA,EAAqB,CACjB;QAAE,mBAAA,EAAqB,CAACZ,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;OAAG,CAAA;;;;;AAM9E,MAAA,gBAAA,EAAkB,CACd;AAAE,QAAA,gBAAA,EAAkB,CAAC,EAAA,EAAIZ,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;OAAG,CAAA;;;;;;;;AAW/E,MAAA,iBAAA,EAAmB,CAAC;QAAEkL,MAAAA,EAAQ,CAAC,YAAY,UAAU;OAAG,CAAA;;;;;AAKxD,MAAA,gBAAA,EAAkB,CAAC;AAAE,QAAA,gBAAA,EAAkBzH,uBAAAA;OAA2B,CAAA;;;;;AAKlE,MAAA,kBAAA,EAAoB,CAAC;AAAE,QAAA,kBAAA,EAAoBA,uBAAAA;OAA2B,CAAA;;;;;AAKtE,MAAA,kBAAA,EAAoB,CAAC;AAAE,QAAA,kBAAA,EAAoBA,uBAAAA;OAA2B,CAAA;;;;;AAKtE,MAAA,cAAA,EAAgB,CAAC;QAAEwI,KAAAA,EAAO,CAAC,QAAQ,OAAO;OAAG,CAAA;;;;;AAK7CC,MAAAA,OAAAA,EAAS,CAAC;QAAEA,OAAAA,EAAS,CAAC,OAAO,QAAQ;OAAG,CAAA;;;;;;;;AAUxCC,MAAAA,UAAAA,EAAY,CACR;QACIA,UAAAA,EAAY,CACR,IACA,KAAA,EACA,QAAA,EACA,WACA,QAAA,EACA,WAAA,EACA,MAAA,EACAlM,mBAAAA,EACAD,gBAAgB;OAEvB,CAAA;;;;;AAML,MAAA,qBAAA,EAAuB,CAAC;QAAEmM,UAAAA,EAAY,CAAC,UAAU,UAAU;OAAG,CAAA;;;;;AAK9DC,MAAAA,QAAAA,EAAU,CAAC;AAAEA,QAAAA,QAAAA,EAAU,CAAChN,QAAAA,EAAU,SAAA,EAAWa,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;AAKrF8F,MAAAA,IAAAA,EAAM,CACF;AAAEA,QAAAA,IAAAA,EAAM,CAAC,QAAA,EAAU,SAAA,EAAW5C,SAAAA,EAAWjD,qBAAqBD,gBAAgB;OAAG,CAAA;;;;;AAMrFqM,MAAAA,KAAAA,EAAO,CAAC;QAAEA,KAAAA,EAAO,CAACjN,QAAAA,EAAUa,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;AAKpEwF,MAAAA,OAAAA,EAAS,CAAC;AAAEA,QAAAA,OAAAA,EAAS,CAAC,MAAA,EAAQrC,YAAAA,EAAclD,mBAAAA,EAAqBD,gBAAgB;AAAG,OAAA,CAAA;;;;;;;;AAUpFsM,MAAAA,QAAAA,EAAU,CAAC;QAAEA,QAAAA,EAAU,CAAC,UAAU,SAAS;OAAG,CAAA;;;;;AAK9CrG,MAAAA,WAAAA,EAAa,CACT;QAAEA,WAAAA,EAAa,CAACjD,gBAAAA,EAAkB/C,mBAAAA,EAAqBD,gBAAgB;OAAG,CAAA;;;;;AAM9E,MAAA,oBAAA,EAAsB,CAAC;AAAE,QAAA,oBAAA,EAAsBsD,0BAAAA;OAA8B,CAAA;;;;;AAK7EiJ,MAAAA,MAAAA,EAAQ,CAAC;AAAEA,QAAAA,MAAAA,EAAQnH,WAAAA;OAAe,CAAA;;;;;AAKlC,MAAA,UAAA,EAAY,CAAC;AAAE,QAAA,UAAA,EAAYA,WAAAA;OAAe,CAAA;;;;;AAK1C,MAAA,UAAA,EAAY,CAAC;AAAE,QAAA,UAAA,EAAYA,WAAAA;OAAe,CAAA;;;;;AAK1C,MAAA,UAAA,EAAY,CAAC;AAAE,QAAA,UAAA,EAAYA,WAAAA;OAAe,CAAA;;;;;AAK1CoH,MAAAA,KAAAA,EAAO,CAAC;AAAEA,QAAAA,KAAAA,EAAOnH,UAAAA;OAAc,CAAA;;;;;AAK/B,MAAA,SAAA,EAAW,CAAC;AAAE,QAAA,SAAA,EAAWA,UAAAA;OAAc,CAAA;;;;;AAKvC,MAAA,SAAA,EAAW,CAAC;AAAE,QAAA,SAAA,EAAWA,UAAAA;OAAc,CAAA;;;;;AAKvC,MAAA,SAAA,EAAW,CAAC;AAAE,QAAA,SAAA,EAAWA,UAAAA;OAAc,CAAA;;;;;AAKvC,MAAA,UAAA,EAAY,CAAC,UAAU,CAAA;;;;;AAKvBoH,MAAAA,IAAAA,EAAM,CAAC;AAAEA,QAAAA,IAAAA,EAAMnH,SAAAA;OAAa,CAAA;;;;;AAK5B,MAAA,QAAA,EAAU,CAAC;AAAE,QAAA,QAAA,EAAUA,SAAAA;OAAa,CAAA;;;;;AAKpC,MAAA,QAAA,EAAU,CAAC;AAAE,QAAA,QAAA,EAAUA,SAAAA;OAAa,CAAA;;;;;AAKpCoH,MAAAA,SAAAA,EAAW,CACP;AAAEA,QAAAA,SAAAA,EAAW,CAACzM,mBAAAA,EAAqBD,gBAAAA,EAAkB,EAAA,EAAI,MAAA,EAAQ,OAAO,KAAK;OAAG,CAAA;;;;;AAMpF,MAAA,kBAAA,EAAoB,CAAC;AAAE2M,QAAAA,MAAAA,EAAQrJ,0BAAAA;OAA8B,CAAA;;;;;AAK7D,MAAA,iBAAA,EAAmB,CAAC;QAAEoJ,SAAAA,EAAW,CAAC,MAAM,MAAM;OAAG,CAAA;;;;;AAKjDE,MAAAA,SAAAA,EAAW,CAAC;AAAEA,QAAAA,SAAAA,EAAWrH,cAAAA;OAAkB,CAAA;;;;;AAK3C,MAAA,aAAA,EAAe,CAAC;AAAE,QAAA,aAAA,EAAeA,cAAAA;OAAkB,CAAA;;;;;AAKnD,MAAA,aAAA,EAAe,CAAC;AAAE,QAAA,aAAA,EAAeA,cAAAA;OAAkB,CAAA;;;;;AAKnD,MAAA,aAAA,EAAe,CAAC;AAAE,QAAA,aAAA,EAAeA,cAAAA;OAAkB,CAAA;;;;;AAKnD,MAAA,gBAAA,EAAkB,CAAC,gBAAgB,CAAA;;;;;;;;AAUnCsH,MAAAA,MAAAA,EAAQ,CAAC;AAAEA,QAAAA,MAAAA,EAAQvI,UAAAA;OAAc,CAAA;;;;;AAKjCwI,MAAAA,UAAAA,EAAY,CAAC;QAAEA,UAAAA,EAAY,CAAC,QAAQ,MAAM;OAAG,CAAA;;;;;AAK7C,MAAA,aAAA,EAAe,CAAC;AAAEC,QAAAA,KAAAA,EAAOzI,UAAAA;OAAc,CAAA;;;;;AAKvC,MAAA,cAAA,EAAgB,CACZ;AAAE0I,QAAAA,MAAAA,EAAQ,CAAC,QAAA,EAAU,MAAA,EAAQ,OAAA,EAAS,YAAA,EAAc,aAAa,YAAY;OAAG,CAAA;;;;;AAMpFC,MAAAA,MAAAA,EAAQ,CACJ;AACIA,QAAAA,MAAAA,EAAQ,CACJ,MAAA,EACA,SAAA,EACA,SAAA,EACA,MAAA,EACA,QACA,MAAA,EACA,MAAA,EACA,aAAA,EACA,MAAA,EACA,gBACA,UAAA,EACA,MAAA,EACA,aACA,eAAA,EACA,OAAA,EACA,QACA,SAAA,EACA,MAAA,EACA,UAAA,EACA,YAAA,EACA,cACA,YAAA,EACA,UAAA,EACA,UAAA,EACA,UAAA,EACA,YACA,WAAA,EACA,WAAA,EACA,WAAA,EACA,WAAA,EACA,aACA,WAAA,EACA,aAAA,EACA,eACA,SAAA,EACA,UAAA,EACAhN,qBACAD,gBAAgB;OAEvB,CAAA;;;;;AAML,MAAA,cAAA,EAAgB,CAAC;QAAE,cAAA,EAAgB,CAAC,SAAS,SAAS;OAAG,CAAA;;;;;AAKzD,MAAA,gBAAA,EAAkB,CAAC;QAAE,gBAAA,EAAkB,CAAC,QAAQ,MAAM;OAAG,CAAA;;;;;AAKzDkN,MAAAA,MAAAA,EAAQ,CAAC;AAAEA,QAAAA,MAAAA,EAAQ,CAAC,MAAA,EAAQ,EAAA,EAAI,GAAA,EAAK,GAAG;AAAG,OAAA,CAAA;;;;;AAK3C,MAAA,iBAAA,EAAmB,CAAC;QAAEC,MAAAA,EAAQ,CAAC,QAAQ,QAAQ;OAAG,CAAA;;;;;AAKlD,MAAA,UAAA,EAAY,CAAC;AAAE,QAAA,UAAA,EAAY1J,uBAAAA;OAA2B,CAAA;;;;;AAKtD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,YAAA,EAAcA,uBAAAA;OAA2B,CAAA;;;;;AAK1D,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,YAAA,EAAcA,uBAAAA;OAA2B,CAAA;;;;;AAK1D,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,UAAA,EAAY,CAAC;AAAE,QAAA,UAAA,EAAYA,uBAAAA;OAA2B,CAAA;;;;;AAKtD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,YAAA,EAAcA,uBAAAA;OAA2B,CAAA;;;;;AAK1D,MAAA,YAAA,EAAc,CAAC;AAAE,QAAA,YAAA,EAAcA,uBAAAA;OAA2B,CAAA;;;;;AAK1D,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,WAAA,EAAa,CAAC;AAAE,QAAA,WAAA,EAAaA,uBAAAA;OAA2B,CAAA;;;;;AAKxD,MAAA,YAAA,EAAc,CAAC;AAAE2J,QAAAA,IAAAA,EAAM,CAAC,OAAA,EAAS,KAAA,EAAO,QAAA,EAAU,YAAY;AAAG,OAAA,CAAA;;;;;AAKjE,MAAA,WAAA,EAAa,CAAC;QAAEA,IAAAA,EAAM,CAAC,UAAU,QAAQ;OAAG,CAAA;;;;;AAK5C,MAAA,WAAA,EAAa,CAAC;AAAEA,QAAAA,IAAAA,EAAM,CAAC,MAAA,EAAQ,GAAA,EAAK,GAAA,EAAK,MAAM;AAAG,OAAA,CAAA;;;;;AAKlD,MAAA,iBAAA,EAAmB,CAAC;QAAEA,IAAAA,EAAM,CAAC,aAAa,WAAW;OAAG,CAAA;;;;;AAKxDC,MAAAA,KAAAA,EAAO,CAAC;QAAEA,KAAAA,EAAO,CAAC,MAAA,EAAQ,MAAA,EAAQ,cAAc;AAAG,OAAA,CAAA;;;;;AAKnD,MAAA,SAAA,EAAW,CAAC;QAAE,WAAA,EAAa,CAAC,GAAA,EAAK,MAAA,EAAQ,OAAO;AAAG,OAAA,CAAA;;;;;AAKnD,MAAA,SAAA,EAAW,CAAC;QAAE,WAAA,EAAa,CAAC,GAAA,EAAK,IAAA,EAAM,MAAM;AAAG,OAAA,CAAA;;;;;AAKhD,MAAA,UAAA,EAAY,CAAC,kBAAkB,CAAA;;;;;AAK/BC,MAAAA,MAAAA,EAAQ,CAAC;AAAEA,QAAAA,MAAAA,EAAQ,CAAC,MAAA,EAAQ,MAAA,EAAQ,KAAA,EAAO,MAAM;AAAG,OAAA,CAAA;;;;;AAKpD,MAAA,aAAA,EAAe,CACX;AACI,QAAA,aAAA,EAAe,CACX,MAAA,EACA,QAAA,EACA,UAAA,EACA,WAAA,EACArN,qBACAD,gBAAgB;OAEvB,CAAA;;;;;;;;AAWLuN,MAAAA,IAAAA,EAAM,CAAC;AAAEA,QAAAA,IAAAA,EAAM,CAAC,MAAA,EAAQ,GAAGjJ,UAAAA,EAAY;AAAG,OAAA,CAAA;;;;;AAK1C,MAAA,UAAA,EAAY,CACR;AACIkJ,QAAAA,MAAAA,EAAQ,CACJpO,QAAAA,EACA+B,yBAAAA,EACAd,iBAAAA,EACAE,iBAAiB;OAExB,CAAA;;;;;AAMLiN,MAAAA,MAAAA,EAAQ,CAAC;AAAEA,QAAAA,MAAAA,EAAQ,CAAC,MAAA,EAAQ,GAAGlJ,UAAAA,EAAY;AAAG,OAAA,CAAA;;;;;;;;AAU9C,MAAA,qBAAA,EAAuB,CAAC;QAAE,qBAAA,EAAuB,CAAC,QAAQ,MAAM;OAAG;AACtE,KAAA;IACDrO,sBAAAA,EAAwB;MACpB8Q,QAAAA,EAAU,CAAC,cAAc,YAAY,CAAA;MACrCC,UAAAA,EAAY,CAAC,gBAAgB,cAAc,CAAA;MAC3CC,KAAAA,EAAO,CACH,SAAA,EACA,SAAA,EACA,UAAA,EACA,UAAA,EACA,SACA,KAAA,EACA,KAAA,EACA,OAAA,EACA,QAAA,EACA,MAAM,CAAA;MAEV,SAAA,EAAW,CAAC,SAAS,MAAM,CAAA;MAC3B,SAAA,EAAW,CAAC,OAAO,QAAQ,CAAA;MAC3BU,IAAAA,EAAM,CAAC,OAAA,EAAS,MAAA,EAAQ,QAAQ,CAAA;MAChCM,GAAAA,EAAK,CAAC,SAAS,OAAO,CAAA;MACtBK,CAAAA,EAAG,CAAC,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAO,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;MAChEC,EAAAA,EAAI,CAAC,MAAM,IAAI,CAAA;MACfC,EAAAA,EAAI,CAAC,MAAM,IAAI,CAAA;MACfS,CAAAA,EAAG,CAAC,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAO,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;MAChEC,EAAAA,EAAI,CAAC,MAAM,IAAI,CAAA;MACfC,EAAAA,EAAI,CAAC,MAAM,IAAI,CAAA;MACfvE,IAAAA,EAAM,CAAC,KAAK,GAAG,CAAA;AACf,MAAA,WAAA,EAAa,CAAC,SAAS,CAAA;AACvB,MAAA,YAAA,EAAc,CACV,aAAA,EACA,kBAAA,EACA,YAAA,EACA,eACA,cAAc,CAAA;AAElB,MAAA,aAAA,EAAe,CAAC,YAAY,CAAA;AAC5B,MAAA,kBAAA,EAAoB,CAAC,YAAY,CAAA;AACjC,MAAA,YAAA,EAAc,CAAC,YAAY,CAAA;AAC3B,MAAA,aAAA,EAAe,CAAC,YAAY,CAAA;AAC5B,MAAA,cAAA,EAAgB,CAAC,YAAY,CAAA;MAC7B,YAAA,EAAc,CAAC,WAAW,UAAU,CAAA;AACpCqG,MAAAA,OAAAA,EAAS,CACL,WAAA,EACA,WAAA,EACA,WAAA,EACA,aACA,WAAA,EACA,WAAA,EACA,YAAA,EACA,YAAA,EACA,YAAA,EACA,YAAA,EACA,YAAA,EACA,YAAA,EACA,cACA,YAAY,CAAA;MAEhB,WAAA,EAAa,CAAC,cAAc,YAAY,CAAA;MACxC,WAAA,EAAa,CAAC,cAAc,YAAY,CAAA;MACxC,WAAA,EAAa,CAAC,cAAc,YAAY,CAAA;MACxC,WAAA,EAAa,CAAC,cAAc,YAAY,CAAA;MACxC,WAAA,EAAa,CAAC,cAAc,YAAY,CAAA;MACxC,WAAA,EAAa,CAAC,cAAc,YAAY,CAAA;MACxC,gBAAA,EAAkB,CAAC,oBAAoB,kBAAkB,CAAA;MACzD,UAAA,EAAY,CACR,YAAA,EACA,YAAA,EACA,YAAA,EACA,YAAA,EACA,eACA,aAAA,EACA,YAAA,EACA,YAAA,EACA,YAAA,EACA,YAAY,CAAA;MAEhB,YAAA,EAAc,CAAC,cAAc,YAAY,CAAA;MACzC,YAAA,EAAc,CAAC,cAAc,YAAY,CAAA;MACzC,cAAA,EAAgB,CACZ,gBAAA,EACA,gBAAA,EACA,gBAAA,EACA,gBAAA,EACA,mBACA,iBAAA,EACA,gBAAA,EACA,gBAAA,EACA,gBAAA,EACA,gBAAgB,CAAA;MAEpB,gBAAA,EAAkB,CAAC,kBAAkB,gBAAgB,CAAA;MACrD,gBAAA,EAAkB,CAAC,kBAAkB,gBAAgB,CAAA;MACrD2B,SAAAA,EAAW,CAAC,aAAA,EAAe,aAAA,EAAe,gBAAgB,CAAA;AAC1D,MAAA,gBAAA,EAAkB,CAAC,WAAA,EAAa,aAAA,EAAe,aAAA,EAAe,aAAa,CAAA;MAC3E,UAAA,EAAY,CACR,WAAA,EACA,WAAA,EACA,WAAA,EACA,WAAA,EACA,cACA,YAAA,EACA,WAAA,EACA,WAAA,EACA,WAAA,EACA,WAAW,CAAA;MAEf,WAAA,EAAa,CAAC,aAAa,WAAW,CAAA;MACtC,WAAA,EAAa,CAAC,aAAa,WAAW,CAAA;MACtC,UAAA,EAAY,CACR,WAAA,EACA,WAAA,EACA,WAAA,EACA,WAAA,EACA,cACA,YAAA,EACA,WAAA,EACA,WAAA,EACA,WAAA,EACA,WAAW,CAAA;MAEf,WAAA,EAAa,CAAC,aAAa,WAAW,CAAA;MACtC,WAAA,EAAa,CAAC,aAAa,WAAW,CAAA;MACtCS,KAAAA,EAAO,CAAC,SAAA,EAAW,SAAA,EAAW,UAAU,CAAA;AACxC,MAAA,SAAA,EAAW,CAAC,OAAO,CAAA;AACnB,MAAA,SAAA,EAAW,CAAC,OAAO,CAAA;AACnB,MAAA,UAAA,EAAY,CAAC,OAAO;AACvB,KAAA;IACDnX,8BAAAA,EAAgC;AAC5B,MAAA,WAAA,EAAa,CAAC,SAAS;AAC1B,KAAA;AACDwF,IAAAA,uBAAAA,EAAyB,CACrB,GAAA,EACA,IAAA,EACA,OAAA,EACA,UAAA,EACA,QAAA,EACA,iBAAA,EACA,MAAA,EACA,cAAA,EACA,YAAA,EACA,QAAA,EACA,aAAA,EACA,WAAW;;AAGvB,CAAA;ACv+Ea+R,IAAAA,OAAAA,uCAA8BzL,gBAAgB,CAAA;;;ACApD,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACKA,IAAM,SAAgC,CAAC;AAAA,EACrC,IAAA,GAAO,EAAA;AAAA,EACP,KAAA,GAAQ,SAAA;AAAA,EACR,OAAA,GAAU,SAAA;AAAA,EACV;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,WAAA,GAAc,KAAA,GAChB,CAAA,kBAAA,CAAA,GACA,OAAA,KAAY,YACZ,iCAAA,GACA,uCAAA;AAEJ,EAAA,MAAM,KAAA,GAAQ;AAAA,IACZ,OAAO,OAAO,IAAA,KAAS,QAAA,GAAW,CAAA,EAAG,IAAI,CAAA,EAAA,CAAA,GAAO,IAAA;AAAA,IAChD,QAAQ,OAAO,IAAA,KAAS,QAAA,GAAW,CAAA,EAAG,IAAI,CAAA,EAAA,CAAA,GAAO;AAAA,GACnD;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,+CAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA;AAAA;AAAA,GACF;AAEJ;ACNA,IAAM,YAAsC,CAAC;AAAA,EAC3C,KAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,uBACE0L,GAAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAW,CAAA,aAAA,EAAgB,aAAa,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,IAAA,IAAQ,GAAA,EAChE,QAAA,kBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,4BAAA;AAAA,MACN,QAAA,EAAS,UAAA;AAAA,MACT,OAAO,KAAA,IAAS,KAAA;AAAA,MAChB,QAAQ,MAAA,IAAU,IAAA;AAAA,MAClB,KAAA,EAAO;AAAA,QACL,cAAA,EAAgB,oBAAA;AAAA,QAChB,aAAA,EAAe,oBAAA;AAAA,QACf,QAAA,EAAU,SAAA;AAAA,QACV,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,OAAA,EAAQ,qBAAA;AAAA,MACR,UAAA,EAAW,8BAAA;AAAA,MAEX,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,MAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA,IAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAG,SAAA;AAAA,cACH,SAAA,EAAW,GAAA;AAAA,cACX,WAAA,EAAY,QAAA;AAAA,cACZ,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA,EAAU;AAAA,cAC7B,SAAA,EAAU,QAAA;AAAA,cACV,UAAA,EAAY,GAAA;AAAA,cAEZ,QAAA,EAAA;AAAA,gCAAAA,GAAAA,CAAC,UAAA,EAAA,EAAS,UAAA,EAAW,eAAA,EACnB,QAAA,kBAAAA,GAAAA,CAAC,aAAA,EAAA,EACC,QAAA,kBAAAA,GAAAA,CAAC,cAAA,EAAA,EAAa,IAAA,EAAK,sBAAA,EAAuB,GAC5C,CAAA,EACF,CAAA;AAAA,gCACAA,IAAC,cAAA,EAAA,EACC,QAAA,kBAAAA,IAAC,MAAA,EAAA,EAAK,CAAA,EAAE,SAAQ,CAAA,EAClB,CAAA;AAAA,gCACAA,IAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,KAAI,SAAA,EAAW,GAAA,EAAK,GAAE,sWAAA,EAAuW,CAAA;AAAA,gCAC5YA,IAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,KAAI,SAAA,EAAW,GAAA,EAAK,GAAE,+HAAA,EAAgI,CAAA;AAAA,gCACrKA,IAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,KAAI,SAAA,EAAW,GAAA,EAAK,GAAE,gFAAA,EAAiF,CAAA;AAAA,gCACtHA,IAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,KAAI,SAAA,EAAW,GAAA,EAAK,GAAE,mnBAAA,EAAonB,CAAA;AAAA,gCACzpBA,IAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,KAAI,SAAA,EAAW,GAAA,EAAK,GAAE,qXAAA,EAAsX,CAAA;AAAA,gCAC3ZA,IAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,KAAI,SAAA,EAAW,GAAA,EAAK,GAAE,kXAAA,EAAmX,CAAA;AAAA,gCACxZA,IAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,KAAI,SAAA,EAAW,GAAA,EAAK,GAAE,iQAAA,EAAkQ,CAAA;AAAA,gCACvSA,IAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,KAAI,SAAA,EAAW,GAAA,EAAK,GAAE,gGAAA,EAAiG,CAAA;AAAA,gCACtIA,IAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,KAAI,SAAA,EAAW,GAAA,EAAK,GAAE,+CAAA,EAAgD,CAAA;AAAA,gCACrFA,IAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,KAAI,SAAA,EAAW,GAAA,EAAK,GAAE,8LAAA,EAA+L,CAAA;AAAA,gCACpOA,IAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,KAAI,SAAA,EAAW,GAAA,EAAK,GAAE,yPAAA,EAA0P,CAAA;AAAA,gCAC/RA,IAAC,OAAA,EAAA,EAAM,OAAA,EAAQ,KAAI,SAAA,EAAW,GAAA,EAAK,GAAE,mOAAA,EAAoO;AAAA;AAAA;AAAA,WAC3Q;AAAA,0BACAA,GAAAA,CAAC,OAAA,EAAA,EAAM,IAAA,EAAK,UAAA,EAAW;AAAA,SAAA,EACzB,CAAA;AAAA,wBACAA,GAAAA,CAAC,OAAA,EAAA,EAAM,IAAA,EAAK,UAAA,EAAY,QAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAA,CAAA,EAOtB,CAAA;AAAA,wBACF,IAAA,CAAC,GAAA,EAAA,EAAE,EAAA,EAAG,eAAA,EACJ,QAAA,EAAA;AAAA,0BAAAA,GAAAA,CAAC,UAAA,EAAA,EAAS,EAAA,EAAG,0BAAA,EAA2B,CAAA;AAAA,0BACxC,IAAA,CAAC,GAAA,EAAA,EAAE,EAAA,EAAG,gBAAA,EACJ,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,GAAA,EAAA,EACC,QAAA,EAAA;AAAA,8BAAAA,GAAAA,CAAC,UAAK,CAAA,EAAG,MAAA,EAAQ,GAAG,OAAA,EAAS,SAAA,EAAU,cAAc,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,8BACjEA,IAAC,MAAA,EAAA,EAAK,CAAA,EAAG,SAAS,CAAA,EAAG,OAAA,EAAS,SAAA,EAAU,WAAA,EAAa,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,8BAC3DA,IAAC,MAAA,EAAA,EAAK,CAAA,EAAG,SAAS,CAAA,EAAG,MAAA,EAAQ,SAAA,EAAU,WAAA,EAAa,QAAA,EAAA,MAAA,EAAO;AAAA,aAAA,EAC7D,CAAA;AAAA,4BACAA,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,QAAO,CAAA,EAAE,iaAAA,EAAka,MAAK,SAAA,EAAU,CAAA;AAAA,4BAC1cA,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,QAAO,CAAA,EAAE,+aAAA,EAAgb,MAAK,SAAA,EAAU,CAAA;AAAA,4BACxdA,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,QAAO,CAAA,EAAE,wbAAA,EAAyb,MAAK,SAAA,EAAU,CAAA;AAAA,4BACjeA,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,QAAO,CAAA,EAAE,+aAAA,EAAgb,MAAK,SAAA,EAAU;AAAA,WAAA,EAC1d;AAAA,SAAA,EACF;AAAA;AAAA;AAAA,GACF,EACF,CAAA;AAEJ,CAAA;AAEA,IAAO,iBAAA,GAAQ,SAAA;ACxGf,SAAS,UAAA,CAAW,EAAE,OAAA,EAAQ,EAAoB;AAChD,EAAA,uBACEA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sFACb,QAAA,kBAAAC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wCAAA,EACb,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,iBAAA,EAAA,EAAU,KAAA,EAAO,GAAA,EAAK,CAAA;AAAA,oBACvBA,GAAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAM,EAAA,EAAI,CAAA;AAAA,IACjB,2BACCA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,uDACV,QAAA,EAAA,OAAA,EACH;AAAA,GAAA,EAEJ,CAAA,EACF,CAAA;AAEJ;ACfA,IAAM,WAAWE,uBAAA,CAAM,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBAClCF,IAAC,IAAA,EAAA,EAAG,SAAA,EAAW,GAAG,2DAAA,EAA6D,SAAS,GAAG,GAAA,EAAW,GAAG,OACtG,QAAA,EACH;AAEJ,CAAA;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AAEvB,IAAM,WAAWE,uBAAA,CAAM,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBAClCF,IAAC,IAAA,EAAA,EAAG,SAAA,EAAW,GAAG,oEAAA,EAAsE,SAAS,GAAG,GAAA,EAAW,GAAG,OAC/G,QAAA,EACH;AAEJ,CAAA;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AAEvB,IAAM,WAAWE,uBAAA,CAAM,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBAClCF,IAAC,IAAA,EAAA,EAAG,SAAA,EAAW,GAAG,0EAAA,EAA4E,SAAS,GAAG,GAAA,EAAW,GAAG,OACrH,QAAA,EACH;AAEJ,CAAA;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AAEvB,IAAM,WAAWE,uBAAA,CAAM,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBAClCF,IAAC,IAAA,EAAA,EAAG,SAAA,EAAW,GAAG,kEAAA,EAAoE,SAAS,GAAG,GAAA,EAAW,GAAG,OAC7G,QAAA,EACH;AAEJ,CAAA;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AAEvB,IAAM,WAAWE,uBAAA,CAAM,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBAClCF,IAAC,IAAA,EAAA,EAAG,SAAA,EAAW,GAAG,wDAAA,EAA0D,SAAS,GAAG,GAAA,EAAW,GAAG,OACnG,QAAA,EACH;AAEJ,CAAA;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AAEvB,IAAM,WAAWE,uBAAA,CAAM,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBAClCF,IAAC,IAAA,EAAA,EAAG,SAAA,EAAW,GAAG,uDAAA,EAAyD,SAAS,GAAG,GAAA,EAAW,GAAG,OAClG,QAAA,EACH;AAEJ,CAAA;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AAMvB,IAAM,QAAQE,uBAAA,CAAM,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBAClCF,IAAC,GAAA,EAAA,EAAE,SAAA,EAAW,GAAG,+DAAA,EAAiE,SAAS,GAAG,GAAA,EAAW,GAAG,OACzG,QAAA,EACH;AAEJ,CAAA;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;AAEpB,IAAM,QAAQE,uBAAA,CAAM,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBAClCF,IAAC,GAAA,EAAA,EAAE,SAAA,EAAW,GAAG,6DAAA,EAA+D,SAAS,GAAG,GAAA,EAAW,GAAG,OACvG,QAAA,EACH;AAEJ,CAAA;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;AAEpB,IAAM,QAAQE,uBAAA,CAAM,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBAClCF,IAAC,GAAA,EAAA,EAAE,SAAA,EAAW,GAAG,6EAAA,EAA+E,SAAS,GAAG,GAAA,EAAW,GAAG,OACvH,QAAA,EACH;AAEJ,CAAA;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;AC1EpB,IAAM,aAAwC,CAAC;AAAA,EAC7C,QAAA;AAAA,EACA,IAAA,GAAO,GAAA;AAAA,EACP,KAAA,GAAQ,gBAAA;AAAA,EACR,OAAA,GAAU,uCAAA;AAAA,EACV,SAAA;AAAA,EACA,SAAA,GAAY,cAAA;AAAA,EACZ;AACF,CAAA,KAAM;AACJ,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,kCAAA,EAAoC,SAAS,CAAA,EAC9D,QAAA,kBAAAC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EACZ,QAAA,EAAA;AAAA,IAAA,IAAA,oBAAQD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,QAAQ,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,IACpC,4BACCA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,QAAA;AAAA,QACL,GAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,IAAA;AAAA,QACP,MAAA,EAAQ,IAAA;AAAA,QACR,SAAA,EAAU;AAAA;AAAA,KACZ;AAAA,oBAEFA,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,yEACX,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,oBACAA,GAAAA,CAAC,KAAA,EAAA,EAAM,SAAA,EAAU,2BAA2B,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,IACnD,6BAAaA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAU,QAAA,EAAA,SAAA,EAAU;AAAA,GAAA,EACnD,CAAA,EACF,CAAA;AAEJ;AC3CA,SAAS,QAAA,CAAS,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACtE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,UAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA;AAAA,MAC5D,GAAG;AAAA;AAAA,GACN;AAEJ;ACEA,IAAM,eAA4C,CAAC;AAAA,EACjD,IAAA,GAAO,CAAA;AAAA,EACP,UAAA,GAAa,KAAA;AAAA,EACb,SAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,+CAAA,EAAiD,SAAS,CAAA;AAAA,MAExE,QAAA,kBAAAA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kCACZ,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,IAAA,EAAM,EAAE,GAAA,CAAI,CAACG,EAAAA,EAAG,CAAA,qBACpCF,IAAAA,CAAC,SAAY,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,YAAY,CAAA,EAC/D,QAAA,EAAA;AAAA,QAAA,UAAA,oBACCD,GAAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,+BAAA,EAAgC,CAAA;AAAA,wBAEtDC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EACb,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,mBAAA,EAAoB,CAAA;AAAA,0BACxCA,GAAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,mBAAA,EAAoB;AAAA,SAAA,EAC1C;AAAA,OAAA,EAAA,EAPQ,CAQV,CACD,CAAA,EACH;AAAA;AAAA,GACF;AAEJ;AC9BA,IAAM,aAAwC,CAAC;AAAA,EAC7C,KAAA,GAAQ,qBAAA;AAAA,EACR,OAAA,GAAU,mBAAA;AAAA,EACV;AACF,CAAA,KAAM;AACJ,EAAA,uBACEA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iDACb,QAAA,kBAAAC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EACb,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,uDAAA,EACX,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,oBACAA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sEACV,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,IACC,2BACCA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,OAAA;AAAA,QACT,SAAA,EAAU,4GAAA;AAAA,QACX,QAAA,EAAA;AAAA;AAAA;AAED,GAAA,EAEJ,CAAA,EACF,CAAA;AAEJ;;;ACzBO,IAAM,WAAA,GAAc,CAAC,MAAA,KAC1B,MAAA,CAAO,QAAQ,oBAAA,EAAsB,OAAO,EAAE,WAAA,EAAA;AAQzC,IAAM,WAAA,GAAc,CAAmB,MAAA,KAC5C,MAAA,CAAO,OAAA;AAAQ,EAAA,uBAAA;EAAyB,CAAC,KAAA,EAAO,IAAI,EAAA,KAClD,EAAA,GAAK,GAAG,WAAA,EAAA,GAAgB,GAAG,WAAA;AAC7B,CAAA;AAQK,IAAM,YAAA,GAAe,CAAmB,MAAA,KAAgC;AAC7E,EAAA,MAAM,SAAA,GAAY,YAAY,MAAM,CAAA;AAEpC,EAAA,OAAQ,SAAA,CAAU,OAAO,CAAC,CAAA,CAAE,aAAA,GAAgB,SAAA,CAAU,MAAM,CAAC,CAAA;AAC/D,CAAA;AAQO,IAAM,YAAA,GAAe,IAA2C,OAAA,KACrE,OAAA,CACG,OAAO,CAAC,SAAA,EAAW,OAAO,KAAA,KAAU;AACnC,EAAA,OACE,OAAA,CAAQ,SAAS,CAAA,IAChB,SAAA,CAAqB,IAAA,OAAW,EAAA,IACjC,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,KAAM,KAAA;AAEjC,CAAC,CAAA,CACA,IAAA,CAAK,GAAG,CAAA,CACR,IAAA,EAAA;AAgBE,IAAM,WAAA,GAAc,CAAC,KAAA,KAA+B;AACzD,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,IAAI,KAAK,UAAA,CAAW,OAAO,KAAK,IAAA,KAAS,MAAA,IAAU,SAAS,OAAA,EAAS;AACnE,MAAA,OAAO,IAAA;AACT,IAAA;AACF,EAAA;AACF,CAAA;;;ACxEA,IAAA,iBAAA,GAAe;EACb,KAAA,EAAO,4BAAA;EACP,KAAA,EAAO,EAAA;EACP,MAAA,EAAQ,EAAA;EACR,OAAA,EAAS,WAAA;EACT,IAAA,EAAM,MAAA;EACN,MAAA,EAAQ,cAAA;EACR,WAAA,EAAa,CAAA;EACb,aAAA,EAAe,OAAA;EACf,cAAA,EAAgB;AAClB,CAAA;;;ACcA,IAAM,IAAA,GAAO,UAAA;EACX,CACE;IACE,KAAA,GAAQ,cAAA;IACR,IAAA,GAAO,EAAA;IACP,WAAA,GAAc,CAAA;AACd,IAAA,mBAAA;IACA,SAAA,GAAY,EAAA;AACZ,IAAA,QAAA;AACA,IAAA,QAAA;IACA,GAAG;AAAA,GAAA,EAEL,GAAA,KAEA,aAAA;AACE,IAAA,KAAA;AACA,IAAA;AACE,MAAA,GAAA;MACA,GAAG,iBAAA;MACH,KAAA,EAAO,IAAA;MACP,MAAA,EAAQ,IAAA;MACR,MAAA,EAAQ,KAAA;AACR,MAAA,WAAA,EAAa,sBAAuB,MAAA,CAAO,WAAW,IAAI,EAAA,GAAM,MAAA,CAAO,IAAI,CAAA,GAAI,WAAA;MAC/E,SAAA,EAAW,YAAA,CAAa,UAAU,SAAS,CAAA;MAC3C,GAAI,CAAC,YAAY,CAAC,WAAA,CAAY,IAAI,CAAA,IAAK,EAAE,eAAe,MAAA,EAAA;MACxD,GAAG;AAAA,KAAA;AAEL,IAAA;MACE,GAAG,QAAA,CAAS,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM,aAAA,CAAc,GAAA,EAAK,KAAK,CAAC,CAAA;AAC3D,MAAA,GAAI,MAAM,OAAA,CAAQ,QAAQ,CAAA,GAAI,QAAA,GAAW,CAAC,QAAQ;AAAA;AACpD;AAEN,CAAA;;;AC7CA,IAAM,gBAAA,GAAmB,CAAC,QAAA,EAAkB,QAAA,KAAuB;AACjE,EAAA,MAAM,SAAA,GAAYI,UAAAA;AAAuC,IAAA,CAAC,EAAE,SAAA,EAAW,GAAG,OAAA,EAAS,GAAA,KACjFC,cAAc,IAAA,EAAM;AAClB,MAAA,GAAA;AACA,MAAA,QAAA;MACA,SAAA,EAAW,YAAA;AACT,QAAA,CAAA,OAAA,EAAU,WAAA,CAAY,YAAA,CAAa,QAAQ,CAAC,CAAC,CAAA,CAAA;AAC7C,QAAA,CAAA,OAAA,EAAU,QAAQ,CAAA,CAAA;AAClB,QAAA;AAAA,OAAA;MAEF,GAAG;KACJ;AAAA,GAAA;AAGH,EAAA,SAAA,CAAU,WAAA,GAAc,aAAa,QAAQ,CAAA;AAE7C,EAAA,OAAO,SAAA;AACT,CAAA;;;ACzBO,IAAM,UAAA,GAAuB,CAAC,CAAC,MAAA,EAAQ,EAAE,GAAG,iBAAA,EAAmB,GAAA,EAAK,QAAA,EAAU,CAAC,CAAA;AAatF,IAAM,KAAA,GAAQ,gBAAA,CAAiB,OAAA,EAAS,UAAU,CAAA;;;ACb3C,IAAMC,WAAAA,GAAuB,CAAC,CAAC,MAAA,EAAQ,EAAE,GAAG,cAAA,EAAgB,GAAA,EAAK,QAAA,EAAU,CAAC,CAAA;AAanF,IAAM,WAAA,GAAc,gBAAA,CAAiB,cAAA,EAAgBA,WAAU,CAAA;;;ACbxD,IAAMA,WAAAA,GAAuB;EAClC,CAAC,QAAA,EAAU,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,MAAM,CAAA,EAAG,IAAA,EAAM,GAAA,EAAK,QAAA,EAAU,CAAA;EACzD,CAAC,QAAA,EAAU,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,MAAM,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,QAAA,EAAU,CAAA;AACxD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,kDAAA,EAAoD,GAAA,EAAK,UAAU;AACnF,CAAA;AAaA,IAAM,UAAA,GAAa,gBAAA,CAAiB,aAAA,EAAeA,WAAU,CAAA;;;ACjBtD,IAAMA,WAAAA,GAAuB;AAClC,EAAA,CAAC,MAAA,EAAQ,EAAE,KAAA,EAAO,GAAA,EAAK,QAAQ,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,UAAU,CAAA;AAC5E,EAAA,CAAC,MAAA,EAAQ,EAAE,KAAA,EAAO,GAAA,EAAK,QAAQ,GAAA,EAAK,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,UAAU,CAAA;AAC7E,EAAA,CAAC,MAAA,EAAQ,EAAE,KAAA,EAAO,GAAA,EAAK,QAAQ,GAAA,EAAK,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,UAAU,CAAA;AAC9E,EAAA,CAAC,MAAA,EAAQ,EAAE,KAAA,EAAO,GAAA,EAAK,QAAQ,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,CAAA,EAAG,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,UAAU;AAC/E,CAAA;AAaA,IAAM,UAAA,GAAa,gBAAA,CAAiB,aAAA,EAAeA,WAAU,CAAA;;;AClBtD,IAAMA,WAAAA,GAAuB;AAClC,EAAA;AACE,IAAA,MAAA;AACA,IAAA;MACE,CAAA,EAAG,gHAAA;MACH,GAAA,EAAK;AAAA;AACP;AAEJ,CAAA;AAaA,IAAM,IAAA,GAAO,gBAAA,CAAiB,MAAA,EAAQA,WAAU,CAAA;;;ACrBzC,IAAMA,WAAAA,GAAuB;AAClC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,kBAAA,EAAoB,GAAA,EAAK,UAAU,CAAA;EACjD,CAAC,QAAA,EAAU,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,MAAM,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,QAAA,EAAU;AAC1D,CAAA;AAaA,IAAM,MAAA,GAAS,gBAAA,CAAiB,QAAA,EAAUA,WAAU,CAAA;;;AChB7C,IAAMA,WAAAA,GAAuB;EAClC,CAAC,QAAA,EAAU,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,MAAM,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,QAAA,EAAU,CAAA;AACxD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,SAAA,EAAW,GAAA,EAAK,UAAU,CAAA;AACxC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,UAAA,EAAY,GAAA,EAAK,UAAU,CAAA;AACzC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,sBAAA,EAAwB,GAAA,EAAK,UAAU,CAAA;AACrD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,wBAAA,EAA0B,GAAA,EAAK,UAAU,CAAA;AACvD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,SAAA,EAAW,GAAA,EAAK,UAAU,CAAA;AACxC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,UAAA,EAAY,GAAA,EAAK,UAAU,CAAA;AACzC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,uBAAA,EAAyB,GAAA,EAAK,UAAU,CAAA;AACtD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,uBAAA,EAAyB,GAAA,EAAK,UAAU;AACxD,CAAA;AAaA,IAAM,GAAA,GAAM,gBAAA,CAAiB,KAAA,EAAOA,WAAU,CAAA;;;ACvBvC,IAAMA,WAAAA,GAAuB;AAClC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,YAAA,EAAc,GAAA,EAAK,UAAU,CAAA;AAC3C,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,YAAA,EAAc,GAAA,EAAK,UAAU;AAC7C,CAAA;AAaA,IAAM,CAAA,GAAI,gBAAA,CAAiB,GAAA,EAAKA,WAAU,CAAA;ACTnC,SAAS,oBAAA,CACd,sBACA,eAAA,EACA,EAAE,2BAA2B,IAAA,EAAK,GAAI,EAAC,EACvC;AACA,EAAA,OAAO,SAAS,YAAY,KAAA,EAAU;AACpC,IAAA,oBAAA,GAAuB,KAAK,CAAA;AAE5B,IAAA,IAAI,wBAAA,KAA6B,KAAA,IAAS,CAAC,KAAA,CAAM,gBAAA,EAAkB;AACjE,MAAA,OAAO,kBAAkB,KAAK,CAAA;AAChC,IAAA;AACF,EAAA,CAAA;AACF;ACdA,SAAS,MAAA,CAAU,KAAqB,KAAA,EAAU;AAChD,EAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,IAAA,OAAO,IAAI,KAAK,CAAA;EAClB,CAAA,MAAA,IAAW,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,MAAA,EAAW;AAC5C,IAAA,GAAA,CAAI,OAAA,GAAU,KAAA;AAChB,EAAA;AACF;AAMA,SAAS,eAAkB,IAAA,EAA8C;AACvE,EAAA,OAAO,CAAC,IAAA,KAAS;AACf,IAAA,IAAI,UAAA,GAAa,KAAA;AACjB,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,KAAQ;AACjC,MAAA,MAAM,OAAA,GAAU,MAAA,CAAO,GAAA,EAAK,IAAI,CAAA;AAChC,MAAA,IAAI,CAAC,UAAA,IAAc,OAAO,OAAA,IAAW,UAAA,EAAY;AAC/C,QAAA,UAAA,GAAa,IAAA;AACf,MAAA;AACA,MAAA,OAAO,OAAA;IACT,CAAC,CAAA;AAMD,IAAA,IAAI,UAAA,EAAY;AACd,MAAA,OAAO,MAAM;AACX,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AACxC,UAAA,MAAM,OAAA,GAAU,SAAS,CAAC,CAAA;AAC1B,UAAA,IAAI,OAAO,WAAW,UAAA,EAAY;AAChC,YAAA,OAAA,EAAQ;UACV,CAAA,MAAO;AACL,YAAA,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,EAAG,IAAI,CAAA;AACtB,UAAA;AACF,QAAA;AACF,MAAA,CAAA;AACF,IAAA;AACF,EAAA,CAAA;AACF;AAMA,SAAS,mBAAsB,IAAA,EAA8C;AAE3E,EAAA,OAAaC,cAAA,CAAA,WAAA,CAAY,WAAA,CAAY,GAAG,IAAI,GAAG,IAAI,CAAA;AACrD;ACvDA,SAASC,cAAAA,CACP,mBACA,cAAA,EACA;AACA,EAAA,MAAM,OAAA,GAAgBC,6BAA4C,cAAc,CAAA;AAEhF,EAAA,MAAM,QAAA,GAAuE,CAAC,KAAA,KAAU;AACtF,IAAA,MAAM,EAAE,QAAA,EAAU,GAAG,OAAA,EAAQ,GAAI,KAAA;AAGjC,IAAA,MAAM,QAAcA,cAAA,CAAA,OAAA,CAAQ,MAAM,SAAS,MAAA,CAAO,MAAA,CAAO,OAAO,CAAC,CAAA;AACjE,IAAA,uBAAOT,GAAAA,CAAC,OAAA,CAAQ,UAAR,EAAiB,KAAA,EAAe,UAAS,CAAA;AACnD,EAAA,CAAA;AAEA,EAAA,QAAA,CAAS,cAAc,iBAAA,GAAoB,UAAA;AAE3C,EAAA,SAASU,aAAW,YAAA,EAAsB;AACxC,IAAA,MAAM,OAAA,GAAgBD,0BAAW,OAAO,CAAA;AACxC,IAAA,IAAI,SAAS,OAAO,OAAA;AACpB,IAAA,IAAI,cAAA,KAAmB,QAAW,OAAO,cAAA;AAEzC,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAA,EAAK,YAAY,CAAA,yBAAA,EAA4B,iBAAiB,CAAA,EAAA,CAAI,CAAA;AACpF,EAAA;AAEA,EAAA,OAAO,CAAC,UAAUC,YAAU,CAAA;AAC9B;AAaA,SAAS,kBAAA,CAAmB,SAAA,EAAmB,sBAAA,GAAwC,EAAC,EAAG;AACzF,EAAA,IAAI,kBAAyB,EAAC;AAM9B,EAAA,SAASF,eAAAA,CACP,mBACA,cAAA,EACA;AACA,IAAA,MAAM,WAAA,GAAoBC,6BAA4C,cAAc,CAAA;AACpF,IAAA,MAAM,QAAQ,eAAA,CAAgB,MAAA;AAC9B,IAAA,eAAA,GAAkB,CAAC,GAAG,eAAA,EAAiB,cAAc,CAAA;AAErD,IAAA,MAAM,QAAA,GAEF,CAAC,KAAA,KAAU;AACb,MAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,GAAG,SAAQ,GAAI,KAAA;AACxC,MAAA,MAAM,OAAA,GAAU,KAAA,GAAQ,SAAS,CAAA,GAAI,KAAK,CAAA,IAAK,WAAA;AAG/C,MAAA,MAAM,QAAcA,cAAA,CAAA,OAAA,CAAQ,MAAM,SAAS,MAAA,CAAO,MAAA,CAAO,OAAO,CAAC,CAAA;AACjE,MAAA,uBAAOT,GAAAA,CAAC,OAAA,CAAQ,UAAR,EAAiB,KAAA,EAAe,UAAS,CAAA;AACnD,IAAA,CAAA;AAEA,IAAA,QAAA,CAAS,cAAc,iBAAA,GAAoB,UAAA;AAE3C,IAAA,SAASU,YAAAA,CAAW,cAAsB,KAAA,EAA4C;AACpF,MAAA,MAAM,OAAA,GAAU,KAAA,GAAQ,SAAS,CAAA,GAAI,KAAK,CAAA,IAAK,WAAA;AAC/C,MAAA,MAAM,OAAA,GAAgBD,0BAAW,OAAO,CAAA;AACxC,MAAA,IAAI,SAAS,OAAO,OAAA;AACpB,MAAA,IAAI,cAAA,KAAmB,QAAW,OAAO,cAAA;AAEzC,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAA,EAAK,YAAY,CAAA,yBAAA,EAA4B,iBAAiB,CAAA,EAAA,CAAI,CAAA;AACpF,IAAA;AAEA,IAAA,OAAO,CAAC,UAAUC,YAAU,CAAA;AAC9B,EAAA;AAMA,EAAA,MAAM,cAA2B,MAAM;AACrC,IAAA,MAAM,aAAA,GAAgB,eAAA,CAAgB,GAAA,CAAI,CAAC,cAAA,KAAmB;AAC5D,MAAA,OAAaD,6BAAc,cAAc,CAAA;IAC3C,CAAC,CAAA;AACD,IAAA,OAAO,SAAS,SAAS,KAAA,EAAc;AACrC,MAAA,MAAM,QAAA,GAAW,KAAA,GAAQ,SAAS,CAAA,IAAK,aAAA;AACvC,MAAA,OAAaA,cAAA,CAAA,OAAA;AACX,QAAA,OAAO,EAAE,CAAC,CAAA,OAAA,EAAU,SAAS,CAAA,CAAE,GAAG,EAAE,GAAG,KAAA,EAAO,CAAC,SAAS,GAAG,UAAS,EAAE,CAAA;AACtE,QAAA,CAAC,OAAO,QAAQ;AAClB,OAAA;AACF,IAAA,CAAA;AACF,EAAA,CAAA;AAEA,EAAA,WAAA,CAAY,SAAA,GAAY,SAAA;AACxB,EAAA,OAAO,CAACD,eAAAA,EAAe,oBAAA,CAAqB,WAAA,EAAa,GAAG,sBAAsB,CAAC,CAAA;AACrF;AAMA,SAAS,wBAAwB,MAAA,EAAuB;AACtD,EAAA,MAAM,SAAA,GAAY,OAAO,CAAC,CAAA;AAC1B,EAAA,IAAI,MAAA,CAAO,MAAA,KAAW,CAAA,EAAG,OAAO,SAAA;AAEhC,EAAA,MAAM,cAA2B,MAAM;AACrC,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,GAAA,CAAI,CAACG,YAAAA,MAAiB;AAC9C,MAAA,QAAA,EAAUA,YAAAA,EAAY;AACtB,MAAA,SAAA,EAAWA,YAAAA,CAAY;KACzB,CAAE,CAAA;AAEF,IAAA,OAAO,SAAS,kBAAkB,cAAA,EAAgB;AAChD,MAAA,MAAM,UAAA,GAAa,WAAW,MAAA,CAAO,CAACC,aAAY,EAAE,QAAA,EAAU,WAAU,KAAM;AAI5E,QAAA,MAAM,UAAA,GAAa,SAAS,cAAc,CAAA;AAC1C,QAAA,MAAM,YAAA,GAAe,UAAA,CAAW,CAAA,OAAA,EAAU,SAAS,CAAA,CAAE,CAAA;AACrD,QAAA,OAAO,EAAE,GAAGA,WAAAA,EAAY,GAAG,YAAA,EAAa;AAC1C,MAAA,CAAA,EAAG,EAAE,CAAA;AAEL,MAAA,OAAaH,cAAA,CAAA,OAAA,CAAQ,OAAO,EAAE,CAAC,CAAA,OAAA,EAAU,SAAA,CAAU,SAAS,CAAA,CAAE,GAAG,UAAA,EAAW,CAAA,EAAI,CAAC,UAAU,CAAC,CAAA;AAC9F,IAAA,CAAA;AACF,EAAA,CAAA;AAEA,EAAA,WAAA,CAAY,YAAY,SAAA,CAAU,SAAA;AAClC,EAAA,OAAO,WAAA;AACT;AC1HA,IAAMI,gBAAAA,GAAkB,UAAA,EAAY,QAAA,GAAiBC,cAAA,CAAA,eAAA,GAAkB,MAAM;AAAC,CAAA;;;ACL9E,IAAM,UAAA,GAAcZ,eAAc,SAAA,CAAU,IAAA,GAAO,QAAA,EAAU,MAAM,MAAM,MAAA,CAAA;AACzE,IAAI,KAAA,GAAQ,CAAA;AAEZ,SAAS,MAAM,eAAA,EAAkC;AAC/C,EAAA,MAAM,CAAC,EAAA,EAAI,KAAK,CAAA,GAAUa,cAAA,CAAA,QAAA,CAA6B,YAAY,CAAA;AAEnE,EAAA,gBAAA,CAAgB,MAAM;AACpB,IAAsB,KAAA,CAAM,CAAC,YAAY,OAAA,IAAW,MAAA,CAAO,OAAO,CAAC,CAAA;EACrE,CAAA,EAAG,CAAC,eAAe,CAAC,CAAA;AACpB,EAAA,OAAO,eAAA,KAAoB,EAAA,GAAK,CAAA,MAAA,EAAS,EAAE,CAAA,CAAA,GAAK,EAAA,CAAA;AAClD;ACVA,IAAM,qBACHb,cAAAA,CAAc,sBAAA,CAAuB,MAAK,CAAE,QAAA,EAAU,CAAA,IAAK,gBAAA;AAYvD,SAAS,oBAAA,CAAwB;AACtC,EAAA,IAAA;AACA,EAAA,WAAA;AACA,EAAA,QAAA,GAAW,MAAM;AAAC,EAAA,CAAA;AAClB,EAAA;AACF,CAAA,EAAsD;AACpD,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAA,EAAqB,WAAW,IAAI,oBAAA,CAAqB;AAChF,IAAA,WAAA;AACA,IAAA;GACD,CAAA;AACD,EAAA,MAAM,eAAe,IAAA,KAAS,MAAA;AAC9B,EAAA,MAAM,KAAA,GAAQ,eAAe,IAAA,GAAO,gBAAA;AAMpC,EAA2C;AACzC,IAAA,MAAM,eAAA,GAAwBc,cAAA,CAAA,MAAA,CAAO,IAAA,KAAS,MAAS,CAAA;AACjD,IAAAA,yBAAU,MAAM;AACpB,MAAA,MAAM,gBAAgB,eAAA,CAAgB,OAAA;AACtC,MAAA,IAAI,kBAAkB,YAAA,EAAc;AAClC,QAAA,MAAM,IAAA,GAAO,gBAAgB,YAAA,GAAe,cAAA;AAC5C,QAAA,MAAM,EAAA,GAAK,eAAe,YAAA,GAAe,cAAA;AACzC,QAAA,OAAA,CAAQ,IAAA;AACN,UAAA,CAAA,EAAG,MAAM,CAAA,kBAAA,EAAqB,IAAI,CAAA,IAAA,EAAO,EAAE,CAAA,0KAAA;AAC7C,SAAA;AACF,MAAA;AACA,MAAA,eAAA,CAAgB,OAAA,GAAU,YAAA;IAC5B,CAAA,EAAG,CAAC,YAAA,EAAc,MAAM,CAAC,CAAA;AAC3B,EAAA;AAGA,EAAA,MAAM,QAAA,GAAiBA,cAAA,CAAA,WAAA;AACrB,IAAA,CAAC,SAAA,KAAc;AACb,MAAA,IAAI,YAAA,EAAc;AAChB,QAAA,MAAMvV,SAAQ,UAAA,CAAW,SAAS,CAAA,GAAI,SAAA,CAAU,IAAI,CAAA,GAAI,SAAA;AACxD,QAAA,IAAIA,WAAU,IAAA,EAAM;AAClB,UAAA,WAAA,CAAY,UAAUA,MAAK,CAAA;AAC7B,QAAA;MACF,CAAA,MAAO;AACL,QAAA,mBAAA,CAAoB,SAAS,CAAA;AAC/B,MAAA;AACF,IAAA,CAAA;IACA,CAAC,YAAA,EAAc,IAAA,EAAM,mBAAA,EAAqB,WAAW;AACvD,GAAA;AAEA,EAAA,OAAO,CAAC,OAAO,QAAQ,CAAA;AACzB;AAEA,SAAS,oBAAA,CAAwB;AAC/B,EAAA,WAAA;AACA,EAAA;AACF,CAAA,EAIE;AACA,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAUuV,wBAAS,WAAW,CAAA;AACpD,EAAA,MAAM,YAAA,GAAqBA,sBAAO,KAAK,CAAA;AAEvC,EAAA,MAAM,WAAA,GAAoBA,sBAAO,QAAQ,CAAA;AACzC,EAAA,kBAAA,CAAmB,MAAM;AACvB,IAAA,WAAA,CAAY,OAAA,GAAU,QAAA;EACxB,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEP,EAAAA,yBAAU,MAAM;AACpB,IAAA,IAAI,YAAA,CAAa,YAAY,KAAA,EAAO;AAClC,MAAA,WAAA,CAAY,UAAU,KAAK,CAAA;AAC3B,MAAA,YAAA,CAAa,OAAA,GAAU,KAAA;AACzB,IAAA;EACF,CAAA,EAAG,CAAC,KAAA,EAAO,YAAY,CAAC,CAAA;AAExB,EAAA,OAAO,CAAC,KAAA,EAAO,QAAA,EAAU,WAAW,CAAA;AACtC;AAEA,SAAS,WAAW,KAAA,EAAkD;AACpE,EAAA,OAAO,OAAO,KAAA,KAAU,UAAA;AAC1B;;ACpFkC,SAAS,WAAW,SAAA,EAAmB;AACvE,EAAA,MAAM,SAAA,mCAA4B,SAAS,CAAA;AAC3C,EAAA,MAAMC,MAAAA,GAAaC,cAAA,CAAA,UAAA,CAAmC,CAAC,KAAA,EAAO,YAAA,KAAiB;AAC7E,IAAA,MAAM,EAAE,QAAA,EAAU,GAAG,SAAA,EAAU,GAAI,KAAA;AACnC,IAAA,MAAM,aAAA,GAAsBA,cAAA,CAAA,QAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA;AACrD,IAAA,MAAM,SAAA,GAAY,aAAA,CAAc,IAAA,CAAK,WAAW,CAAA;AAEhD,IAAA,IAAI,SAAA,EAAW;AAEb,MAAA,MAAM,UAAA,GAAa,UAAU,KAAA,CAAM,QAAA;AAEnC,MAAA,MAAM,WAAA,GAAc,aAAA,CAAc,GAAA,CAAI,CAAC,KAAA,KAAU;AAC/C,QAAA,IAAI,UAAU,SAAA,EAAW;AAGvB,UAAA,IAAUA,cAAA,CAAA,QAAA,CAAS,MAAM,UAAU,CAAA,GAAI,GAAG,OAAaA,cAAA,CAAA,QAAA,CAAS,KAAK,IAAI,CAAA;AACzE,UAAA,OAAaA,cAAA,CAAA,cAAA,CAAe,UAAU,CAAA,GACjC,UAAA,CAAW,MAAwC,QAAA,GACpD,IAAA;QACN,CAAA,MAAO;AACL,UAAA,OAAO,KAAA;AACT,QAAA;MACF,CAAC,CAAA;AAED,MAAA,uBACElB,GAAAA,CAAC,SAAA,EAAA,EAAW,GAAG,SAAA,EAAW,KAAK,YAAA,EAC5B,QAAA,EAAMkB,cAAA,CAAA,cAAA,CAAe,UAAU,IACtBA,cAAA,CAAA,YAAA,CAAa,UAAA,EAAY,QAAW,WAAW,CAAA,GACrD,MACN,CAAA;AAEJ,IAAA;AAEA,IAAA,uBACElB,IAAC,SAAA,EAAA,EAAW,GAAG,SAAA,EAAW,GAAA,EAAK,YAAA,EAC5B,QAAA,EACH,CAAA;EAEJ,CAAC,CAAA;AAEDiB,EAAAA,MAAAA,CAAK,WAAA,GAAc,CAAA,EAAG,SAAS,CAAA,KAAA,CAAA;AAC/B,EAAA,OAAOA,MAAAA;AACT;;AAY2B,SAAS,gBAAgB,SAAA,EAAmB;AACrE,EAAA,MAAM,SAAA,GAAkBC,cAAA,CAAA,UAAA,CAAgC,CAAC,KAAA,EAAO,YAAA,KAAiB;AAC/E,IAAA,MAAM,EAAE,QAAA,EAAU,GAAG,SAAA,EAAU,GAAI,KAAA;AAEnC,IAAA,IAAUA,cAAA,CAAA,cAAA,CAAe,QAAQ,CAAA,EAAG;AAClC,MAAA,MAAM,WAAA,GAAc,cAAc,QAAQ,CAAA;AAC1C,MAAA,MAAMC,MAAAA,GAAQ,UAAA,CAAW,SAAA,EAAW,QAAA,CAAS,KAAiB,CAAA;AAE9D,MAAA,IAAI,QAAA,CAAS,SAAeD,cAAA,CAAA,QAAA,EAAU;AACpCC,QAAAA,MAAAA,CAAM,GAAA,GAAM,YAAA,GAAe,WAAA,CAAY,YAAA,EAAc,WAAW,CAAA,GAAI,WAAA;AACtE,MAAA;AACA,MAAA,OAAaD,cAAA,CAAA,YAAA,CAAa,UAAUC,MAAK,CAAA;AAC3C,IAAA;AAEA,IAAA,OAAaD,cAAA,CAAA,QAAA,CAAS,MAAM,QAAQ,CAAA,GAAI,IAAUA,cAAA,CAAA,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA,GAAI,IAAA;EAC1E,CAAC,CAAA;AAED,EAAA,SAAA,CAAU,WAAA,GAAc,GAAG,SAAS,CAAA,UAAA,CAAA;AACpC,EAAA,OAAO,SAAA;AACT;AAMA,IAAM,oBAAA,0BAA8B,iBAAiB,CAAA;AAyBrD,SAAS,YACP,KAAA,EAC+D;AAC/D,EAAA,OACQA,cAAA,CAAA,cAAA,CAAe,KAAK,CAAA,IAC1B,OAAO,KAAA,CAAM,IAAA,KAAS,UAAA,IACtB,WAAA,IAAe,KAAA,CAAM,IAAA,IACrB,KAAA,CAAM,IAAA,CAAK,SAAA,KAAc,oBAAA;AAE7B;AAEA,SAAS,UAAA,CAAW,WAAqB,UAAA,EAAsB;AAE7D,EAAA,MAAM,aAAA,GAAgB,EAAE,GAAG,UAAA,EAAW;AAEtC,EAAA,KAAA,MAAW,YAAY,UAAA,EAAY;AACjC,IAAA,MAAM,aAAA,GAAgB,UAAU,QAAQ,CAAA;AACxC,IAAA,MAAM,cAAA,GAAiB,WAAW,QAAQ,CAAA;AAE1C,IAAA,MAAM,SAAA,GAAY,UAAA,CAAW,IAAA,CAAK,QAAQ,CAAA;AAC1C,IAAA,IAAI,SAAA,EAAW;AAEb,MAAA,IAAI,iBAAiB,cAAA,EAAgB;AACnC,QAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,CAAA,GAAI,IAAA,KAAoB;AAChD,UAAA,MAAM,MAAA,GAAS,cAAA,CAAe,GAAG,IAAI,CAAA;AACrC,UAAA,aAAA,CAAc,GAAG,IAAI,CAAA;AACrB,UAAA,OAAO,MAAA;AACT,QAAA,CAAA;AACF,MAAA,CAAA,MAAA,IAES,aAAA,EAAe;AACtB,QAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,aAAA;AAC5B,MAAA;AACF,IAAA,CAAA,MAAA,IAES,aAAa,OAAA,EAAS;AAC7B,MAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,EAAE,GAAG,aAAA,EAAe,GAAG,cAAA,EAAe;AAClE,IAAA,CAAA,MAAA,IAAW,aAAa,WAAA,EAAa;AACnC,MAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,CAAC,aAAA,EAAe,cAAc,EAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AACpF,IAAA;AACF,EAAA;AAEA,EAAA,OAAO,EAAE,GAAG,SAAA,EAAW,GAAG,aAAA,EAAc;AAC1C;AAOA,SAAS,cAAc,OAAA,EAA6B;AAElD,EAAA,IAAI,SAAS,MAAA,CAAO,wBAAA,CAAyB,OAAA,CAAQ,KAAA,EAAO,KAAK,CAAA,EAAG,GAAA;AACpE,EAAA,IAAI,OAAA,GAAU,MAAA,IAAU,gBAAA,IAAoB,MAAA,IAAU,MAAA,CAAO,cAAA;AAC7D,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAQ,OAAA,CAAgB,GAAA;AAC1B,EAAA;AAGA,EAAA,MAAA,GAAS,MAAA,CAAO,wBAAA,CAAyB,OAAA,EAAS,KAAK,CAAA,EAAG,GAAA;AAC1D,EAAA,OAAA,GAAU,MAAA,IAAU,gBAAA,IAAoB,MAAA,IAAU,MAAA,CAAO,cAAA;AACzD,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAQ,QAAQ,KAAA,CAAuC,GAAA;AACzD,EAAA;AAGA,EAAA,OAAQ,OAAA,CAAQ,KAAA,CAAuC,GAAA,IAAQ,OAAA,CAAgB,GAAA;AACjF;AClLA,IAAM,KAAA,GAAQ;AACZ,EAAA,GAAA;AACA,EAAA,QAAA;AACA,EAAA,KAAA;AACA,EAAA,MAAA;AACA,EAAA,IAAA;AACA,EAAA,IAAA;AACA,EAAA,KAAA;AACA,EAAA,OAAA;AACA,EAAA,OAAA;AACA,EAAA,IAAA;AACA,EAAA,KAAA;AACA,EAAA,IAAA;AACA,EAAA,GAAA;AACA,EAAA,QAAA;AACA,EAAA,MAAA;AACA,EAAA,KAAA;AACA,EAAA;AACF,CAAA;AAcA,IAAM,SAAA,GAAY,KAAA,CAAM,MAAA,CAAO,CAAC,WAAW,IAAA,KAAS;AAClD,EAAA,MAAMD,KAAAA,GAAO,UAAA,CAAW,CAAA,UAAA,EAAa,IAAI,CAAA,CAAE,CAAA;AAC3C,EAAA,MAAMG,KAAAA,GAAaC,cAAA,CAAA,UAAA,CAAW,CAAC,KAAA,EAA2C,YAAA,KAAsB;AAC9F,IAAA,MAAM,EAAE,OAAA,EAAS,GAAG,cAAA,EAAe,GAAI,KAAA;AACvC,IAAA,MAAM,IAAA,GAAY,UAAUJ,KAAAA,GAAO,IAAA;AAEnC,IAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAChC,MAAA,MAAA,iBAAe,MAAA,CAAO,GAAA,CAAI,UAAU,CAAC,CAAA,GAAI,IAAA;AAC5C,IAAA;AAEA,IAAA,uBAAOjB,IAAC,IAAA,EAAA,EAAM,GAAG,cAAA,EAAgB,GAAA,EAAK,cAAc,CAAA;EACtD,CAAC,CAAA;AAED,EAAAoB,KAAAA,CAAK,WAAA,GAAc,CAAA,UAAA,EAAa,IAAI,CAAA,CAAA;AAEpC,EAAA,OAAO,EAAE,GAAG,SAAA,EAAW,CAAC,IAAI,GAAGA,KAAAA,EAAK;AACtC,CAAA,EAAG,EAAgB,CAAA;AA2CnB,SAAS,2BAAA,CAAmD,QAAqB,KAAA,EAAU;AACzF,EAAA,IAAI,QAAiB,QAAA,CAAA,SAAA,CAAU,MAAM,MAAA,CAAO,aAAA,CAAc,KAAK,CAAC,CAAA;AAClE;AC3FA,SAAS,eAAkD,QAAA,EAA4B;AACrF,EAAA,MAAM,WAAA,GAAoBE,sBAAO,QAAQ,CAAA;AAEnC,EAAAA,yBAAU,MAAM;AACpB,IAAA,WAAA,CAAY,OAAA,GAAU,QAAA;EACxB,CAAC,CAAA;AAGD,EAAA,OAAaA,cAAA,CAAA,OAAA,CAAQ,MAAO,CAAA,GAAI,IAAA,KAAS,WAAA,CAAY,UAAU,GAAG,IAAI,CAAA,EAAS,EAAE,CAAA;AACnF;ACTA,SAAS,gBAAA,CACP,mBAAA,EACA,aAAA,GAA0B,UAAA,EAAY,QAAA,EACtC;AACA,EAAA,MAAM,eAAA,GAAkB,eAAe,mBAAmB,CAAA;AAEpD,EAAAC,yBAAU,MAAM;AACpB,IAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAyB;AAC9C,MAAA,IAAI,KAAA,CAAM,QAAQ,QAAA,EAAU;AAC1B,QAAA,eAAA,CAAgB,KAAK,CAAA;AACvB,MAAA;AACF,IAAA,CAAA;AACA,IAAA,aAAA,CAAc,iBAAiB,SAAA,EAAW,aAAA,EAAe,EAAE,OAAA,EAAS,MAAM,CAAA;AAC1E,IAAA,OAAO,MAAM,cAAc,mBAAA,CAAoB,SAAA,EAAW,eAAe,EAAE,OAAA,EAAS,MAAM,CAAA;EAC5F,CAAA,EAAG,CAAC,eAAA,EAAiB,aAAa,CAAC,CAAA;AACrC;ACVA,IAAM,sBAAA,GAAyB,kBAAA;AAC/B,IAAM,cAAA,GAAiB,yBAAA;AACvB,IAAM,oBAAA,GAAuB,qCAAA;AAC7B,IAAM,aAAA,GAAgB,+BAAA;AAEtB,IAAI,yBAAA;AAEJ,IAAM,0BAAgCC,cAAA,CAAA,aAAA,CAAc;AAClD,EAAA,MAAA,sBAAY,GAAA,EAA6B;AACzC,EAAA,sCAAA,sBAA4C,GAAA,EAA6B;AACzE,EAAA,QAAA,sBAAc,GAAA;AAChB,CAAC,CAAA;AAsCD,IAAM,gBAAA,GAAyBA,cAAA,CAAA,UAAA;AAC7B,EAAA,CAAC,OAAO,YAAA,KAAiB;AACvB,IAAA,MAAM;MACJ,2BAAA,GAA8B,KAAA;AAC9B,MAAA,eAAA;AACA,MAAA,oBAAA;AACA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,SAAA;MACA,GAAG;KACL,GAAI,KAAA;AACJ,IAAA,MAAM,OAAA,GAAgBA,0BAAW,uBAAuB,CAAA;AACxD,IAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAUA,wBAAyC,IAAI,CAAA;AAC3E,IAAA,MAAM,aAAA,GAAgB,IAAA,EAAM,aAAA,IAAiB,UAAA,EAAY,QAAA;AACzD,IAAA,MAAM,GAAG,KAAK,CAAA,GAAUA,cAAA,CAAA,QAAA,CAAS,EAAE,CAAA;AACnC,IAAA,MAAM,eAAe,eAAA,CAAgB,YAAA,EAAc,CAACC,KAAAA,KAAS,OAAA,CAAQA,KAAI,CAAC,CAAA;AAC1E,IAAA,MAAM,MAAA,GAAS,KAAA,CAAM,IAAA,CAAK,OAAA,CAAQ,MAAM,CAAA;AACxC,IAAA,MAAM,CAAC,4CAA4C,CAAA,GAAI,CAAC,GAAG,OAAA,CAAQ,sCAAsC,CAAA,CAAE,KAAA,CAAM,EAAE,CAAA;AACnH,IAAA,MAAM,iDAAA,GAAoD,MAAA,CAAO,OAAA,CAAQ,4CAA6C,CAAA;AACtH,IAAA,MAAM,KAAA,GAAQ,IAAA,GAAO,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,GAAI,EAAA;AAC5C,IAAA,MAAM,2BAAA,GAA8B,OAAA,CAAQ,sCAAA,CAAuC,IAAA,GAAO,CAAA;AAC1F,IAAA,MAAM,yBAAyB,KAAA,IAAS,iDAAA;AAExC,IAAA,MAAM,kBAAA,GAAqB,qBAAA,CAAsB,CAAC,KAAA,KAAU;AAC1D,MAAA,MAAM,SAAS,KAAA,CAAM,MAAA;AACrB,MAAA,MAAM,qBAAA,GAAwB,CAAC,GAAG,OAAA,CAAQ,QAAQ,CAAA,CAAE,IAAA,CAAK,CAAC,MAAA,KAAW,MAAA,CAAO,QAAA,CAAS,MAAM,CAAC,CAAA;AAC5F,MAAA,IAAI,CAAC,0BAA0B,qBAAA,EAAuB;AACtD,MAAA,oBAAA,GAAuB,KAAK,CAAA;AAC5B,MAAA,iBAAA,GAAoB,KAAK,CAAA;AACzB,MAAA,IAAI,CAAC,KAAA,CAAM,gBAAA,EAAkB,SAAA,IAAY;AAC3C,IAAA,CAAA,EAAG,aAAa,CAAA;AAEhB,IAAA,MAAM,YAAA,GAAe,eAAA,CAAgB,CAAC,KAAA,KAAU;AAC9C,MAAA,MAAM,SAAS,KAAA,CAAM,MAAA;AACrB,MAAA,MAAM,eAAA,GAAkB,CAAC,GAAG,OAAA,CAAQ,QAAQ,CAAA,CAAE,IAAA,CAAK,CAAC,MAAA,KAAW,MAAA,CAAO,QAAA,CAAS,MAAM,CAAC,CAAA;AACtF,MAAA,IAAI,eAAA,EAAiB;AACrB,MAAA,cAAA,GAAiB,KAAK,CAAA;AACtB,MAAA,iBAAA,GAAoB,KAAK,CAAA;AACzB,MAAA,IAAI,CAAC,KAAA,CAAM,gBAAA,EAAkB,SAAA,IAAY;AAC3C,IAAA,CAAA,EAAG,aAAa,CAAA;AAEhB,IAAA,gBAAA,CAAiB,CAAC,KAAA,KAAU;AAC1B,MAAA,MAAM,cAAA,GAAiB,KAAA,KAAU,OAAA,CAAQ,MAAA,CAAO,IAAA,GAAO,CAAA;AACvD,MAAA,IAAI,CAAC,cAAA,EAAgB;AACrB,MAAA,eAAA,GAAkB,KAAK,CAAA;AACvB,MAAA,IAAI,CAAC,KAAA,CAAM,gBAAA,IAAoB,SAAA,EAAW;AACxC,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,SAAA,EAAU;AACZ,MAAA;AACF,IAAA,CAAA,EAAG,aAAa,CAAA;AAEV,IAAAD,yBAAU,MAAM;AACpB,MAAA,IAAI,CAAC,IAAA,EAAM;AACX,MAAA,IAAI,2BAAA,EAA6B;AAC/B,QAAA,IAAI,OAAA,CAAQ,sCAAA,CAAuC,IAAA,KAAS,CAAA,EAAG;AAC7D,UAAA,yBAAA,GAA4B,aAAA,CAAc,KAAK,KAAA,CAAM,aAAA;AACrD,UAAA,aAAA,CAAc,IAAA,CAAK,MAAM,aAAA,GAAgB,MAAA;AAC3C,QAAA;AACA,QAAA,OAAA,CAAQ,sCAAA,CAAuC,IAAI,IAAI,CAAA;AACzD,MAAA;AACA,MAAA,OAAA,CAAQ,MAAA,CAAO,IAAI,IAAI,CAAA;AACvB,MAAA,cAAA,EAAe;AACf,MAAA,OAAO,MAAM;AACX,QAAA,IACE,2BAAA,IACA,OAAA,CAAQ,sCAAA,CAAuC,IAAA,KAAS,CAAA,EACxD;AACA,UAAA,aAAA,CAAc,IAAA,CAAK,MAAM,aAAA,GAAgB,yBAAA;AAC3C,QAAA;AACF,MAAA,CAAA;AACF,IAAA,CAAA,EAAG,CAAC,IAAA,EAAM,aAAA,EAAe,2BAAA,EAA6B,OAAO,CAAC,CAAA;AAQxD,IAAAA,yBAAU,MAAM;AACpB,MAAA,OAAO,MAAM;AACX,QAAA,IAAI,CAAC,IAAA,EAAM;AACX,QAAA,OAAA,CAAQ,MAAA,CAAO,OAAO,IAAI,CAAA;AAC1B,QAAA,OAAA,CAAQ,sCAAA,CAAuC,OAAO,IAAI,CAAA;AAC1D,QAAA,cAAA,EAAe;AACjB,MAAA,CAAA;IACF,CAAA,EAAG,CAAC,IAAA,EAAM,OAAO,CAAC,CAAA;AAEZ,IAAAA,yBAAU,MAAM;AACpB,MAAA,MAAM,YAAA,GAAe,MAAM,KAAA,CAAM,EAAE,CAAA;AACnC,MAAA,QAAA,CAAS,gBAAA,CAAiB,gBAAgB,YAAY,CAAA;AACtD,MAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,cAAA,EAAgB,YAAY,CAAA;AACxE,IAAA,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,uBACExB,GAAAA;MAAC,SAAA,CAAU,GAAA;AAAV,MAAA;QACE,GAAG,UAAA;QACJ,GAAA,EAAK,YAAA;QACL,KAAA,EAAO;UACL,aAAA,EAAe,2BAAA,GACX,sBAAA,GACE,MAAA,GACA,MAAA,GACF,MAAA;AACJ,UAAA,GAAG,KAAA,CAAM;AACX,SAAA;AACA,QAAA,cAAA,EAAgB,oBAAA,CAAqB,KAAA,CAAM,cAAA,EAAgB,YAAA,CAAa,cAAc,CAAA;AACtF,QAAA,aAAA,EAAe,oBAAA,CAAqB,KAAA,CAAM,aAAA,EAAe,YAAA,CAAa,aAAa,CAAA;QACnF,oBAAA,EAAsB,oBAAA;UACpB,KAAA,CAAM,oBAAA;UACN,kBAAA,CAAmB;AACrB;AAAA;AACF,KAAA;AAEJ,EAAA;AACF,CAAA;AAEA,gBAAA,CAAiB,WAAA,GAAc,sBAAA;AAM/B,IAAM,WAAA,GAAc,wBAAA;AAKpB,IAAM,sBAAA,GAA+BwB,cAAA,CAAA,UAAA,CAGnC,CAAC,KAAA,EAAO,YAAA,KAAiB;AACzB,EAAA,MAAM,OAAA,GAAgBA,0BAAW,uBAAuB,CAAA;AACxD,EAAA,MAAM,GAAA,GAAYA,sBAAsC,IAAI,CAAA;AAC5D,EAAA,MAAM,YAAA,GAAe,eAAA,CAAgB,YAAA,EAAc,GAAG,CAAA;AAEhD,EAAAA,yBAAU,MAAM;AACpB,IAAA,MAAM,OAAO,GAAA,CAAI,OAAA;AACjB,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,OAAA,CAAQ,QAAA,CAAS,IAAI,IAAI,CAAA;AACzB,MAAA,OAAO,MAAM;AACX,QAAA,OAAA,CAAQ,QAAA,CAAS,OAAO,IAAI,CAAA;AAC9B,MAAA,CAAA;AACF,IAAA;EACF,CAAA,EAAG,CAAC,OAAA,CAAQ,QAAQ,CAAC,CAAA;AAErB,EAAA,uBAAOxB,IAAC,SAAA,CAAU,GAAA,EAAV,EAAe,GAAG,KAAA,EAAO,GAAA,EAAK,YAAA,EAAc,CAAA;AACtD,CAAC,CAAA;AAED,sBAAA,CAAuB,WAAA,GAAc,WAAA;AAYrC,SAAS,qBAAA,CACP,oBAAA,EACA,aAAA,GAA0B,UAAA,EAAY,QAAA,EACtC;AACA,EAAA,MAAM,wBAAA,GAA2B,eAAe,oBAAoB,CAAA;AACpE,EAAA,MAAM,2BAAA,GAAoCwB,sBAAO,KAAK,CAAA;AACtD,EAAA,MAAM,cAAA,GAAuBA,sBAAO,MAAM;EAAC,CAAC,CAAA;AAEtC,EAAAA,yBAAU,MAAM;AACpB,IAAA,MAAM,iBAAA,GAAoB,CAAC,KAAA,KAAwB;AACjD,MAAA,IAAI,KAAA,CAAM,MAAA,IAAU,CAAC,2BAAA,CAA4B,OAAA,EAAS;AAGxD,QAAA,IAASE,4CAAT,WAAoD;AAClD,UAAA,4BAAA;AACE,YAAA,oBAAA;AACA,YAAA,wBAAA;AACA,YAAA,WAAA;AACA,YAAA,EAAE,UAAU,IAAA;AACd,WAAA;AACF,QAAA,CAAA;AATA,QAAA,MAAM,WAAA,GAAc,EAAE,aAAA,EAAe,KAAA,EAAM;AAuB3C,QAAA,IAAI,KAAA,CAAM,gBAAgB,OAAA,EAAS;AACjC,UAAA,aAAA,CAAc,mBAAA,CAAoB,OAAA,EAAS,cAAA,CAAe,OAAO,CAAA;AACjE,UAAA,cAAA,CAAe,OAAA,GAAUA,yCAAAA;AACzB,UAAA,aAAA,CAAc,iBAAiB,OAAA,EAAS,cAAA,CAAe,SAAS,EAAE,IAAA,EAAM,MAAM,CAAA;QAChF,CAAA,MAAO;AACLA,UAAAA,yCAAAA,EAAyC;AAC3C,QAAA;MACF,CAAA,MAAO;AAGL,QAAA,aAAA,CAAc,mBAAA,CAAoB,OAAA,EAAS,cAAA,CAAe,OAAO,CAAA;AACnE,MAAA;AACA,MAAA,2BAAA,CAA4B,OAAA,GAAU,KAAA;AACxC,IAAA,CAAA;AAcA,IAAA,MAAM,OAAA,GAAU,MAAA,CAAO,UAAA,CAAW,MAAM;AACtC,MAAA,aAAA,CAAc,gBAAA,CAAiB,eAAe,iBAAiB,CAAA;AACjE,IAAA,CAAA,EAAG,CAAC,CAAA;AACJ,IAAA,OAAO,MAAM;AACX,MAAA,MAAA,CAAO,aAAa,OAAO,CAAA;AAC3B,MAAA,aAAA,CAAc,mBAAA,CAAoB,eAAe,iBAAiB,CAAA;AAClE,MAAA,aAAA,CAAc,mBAAA,CAAoB,OAAA,EAAS,cAAA,CAAe,OAAO,CAAA;AACnE,IAAA,CAAA;EACF,CAAA,EAAG,CAAC,aAAA,EAAe,wBAAwB,CAAC,CAAA;AAE5C,EAAA,OAAO;;IAEL,oBAAA,EAAsB,MAAO,4BAA4B,OAAA,GAAU;AACrE,GAAA;AACF;AAMA,SAAS,eAAA,CACP,cAAA,EACA,aAAA,GAA0B,UAAA,EAAY,QAAA,EACtC;AACA,EAAA,MAAM,kBAAA,GAAqB,eAAe,cAAc,CAAA;AACxD,EAAA,MAAM,yBAAA,GAAkCF,sBAAO,KAAK,CAAA;AAE9C,EAAAA,yBAAU,MAAM;AACpB,IAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAsB;AACzC,MAAA,IAAI,KAAA,CAAM,MAAA,IAAU,CAAC,yBAAA,CAA0B,OAAA,EAAS;AACtD,QAAA,MAAM,WAAA,GAAc,EAAE,aAAA,EAAe,KAAA,EAAM;AAC3C,QAAA,4BAAA,CAA6B,aAAA,EAAe,oBAAoB,WAAA,EAAa;UAC3E,QAAA,EAAU;SACX,CAAA;AACH,MAAA;AACF,IAAA,CAAA;AACA,IAAA,aAAA,CAAc,gBAAA,CAAiB,WAAW,WAAW,CAAA;AACrD,IAAA,OAAO,MAAM,aAAA,CAAc,mBAAA,CAAoB,SAAA,EAAW,WAAW,CAAA;EACvE,CAAA,EAAG,CAAC,aAAA,EAAe,kBAAkB,CAAC,CAAA;AAEtC,EAAA,OAAO;IACL,cAAA,EAAgB,MAAO,0BAA0B,OAAA,GAAU,IAAA;IAC3D,aAAA,EAAe,MAAO,0BAA0B,OAAA,GAAU;AAC5D,GAAA;AACF;AAEA,SAAS,cAAA,GAAiB;AACxB,EAAA,MAAM,KAAA,GAAQ,IAAI,WAAA,CAAY,cAAc,CAAA;AAC5C,EAAA,QAAA,CAAS,cAAc,KAAK,CAAA;AAC9B;AAEA,SAAS,6BACP,IAAA,EACA,OAAA,EACA,MAAA,EACA,EAAE,UAAS,EACX;AACA,EAAA,MAAM,MAAA,GAAS,OAAO,aAAA,CAAc,MAAA;AACpC,EAAA,MAAM,KAAA,GAAQ,IAAI,WAAA,CAAY,IAAA,EAAM,EAAE,SAAS,KAAA,EAAO,UAAA,EAAY,IAAA,EAAM,MAAA,EAAQ,CAAA;AAChF,EAAA,IAAI,OAAA,SAAgB,gBAAA,CAAiB,IAAA,EAAM,SAA0B,EAAE,IAAA,EAAM,MAAM,CAAA;AAEnF,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,2BAAA,CAA4B,QAAQ,KAAK,CAAA;EAC3C,CAAA,MAAO;AACL,IAAA,MAAA,CAAO,cAAc,KAAK,CAAA;AAC5B,EAAA;AACF;ACtVA,IAAM,kBAAA,GAAqB,6BAAA;AAC3B,IAAM,oBAAA,GAAuB,+BAAA;AAC7B,IAAM,aAAA,GAAgB,EAAE,OAAA,EAAS,KAAA,EAAO,YAAY,IAAA,EAAK;AAQzD,IAAM,gBAAA,GAAmB,YAAA;AAgCzB,IAAM,UAAA,GAAmBG,cAAA,CAAA,UAAA,CAA+C,CAAC,KAAA,EAAO,YAAA,KAAiB;AAC/F,EAAA,MAAM;IACJ,IAAA,GAAO,KAAA;IACP,OAAA,GAAU,KAAA;IACV,gBAAA,EAAkB,oBAAA;IAClB,kBAAA,EAAoB,sBAAA;IACpB,GAAG;GACL,GAAI,KAAA;AACJ,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAUA,wBAA6B,IAAI,CAAA;AACzE,EAAA,MAAM,gBAAA,GAAmB,eAAe,oBAAoB,CAAA;AAC5D,EAAA,MAAM,kBAAA,GAAqB,eAAe,sBAAsB,CAAA;AAChE,EAAA,MAAM,qBAAA,GAA8BA,sBAA2B,IAAI,CAAA;AACnE,EAAA,MAAM,eAAe,eAAA,CAAgB,YAAA,EAAc,CAAC,IAAA,KAAS,YAAA,CAAa,IAAI,CAAC,CAAA;AAE/E,EAAA,MAAM,aAAmBA,cAAA,CAAA,MAAA,CAAO;IAC9B,MAAA,EAAQ,KAAA;IACR,KAAA,GAAQ;AACN,MAAA,IAAA,CAAK,MAAA,GAAS,IAAA;AAChB,IAAA,CAAA;IACA,MAAA,GAAS;AACP,MAAA,IAAA,CAAK,MAAA,GAAS,KAAA;AAChB,IAAA;AACF,GAAC,CAAA,CAAE,OAAA;AAGG,EAAAA,yBAAU,MAAM;AACpB,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,IAASC,cAAAA,GAAT,SAAuB,KAAA,EAAmB;AACxC,QAAA,IAAI,UAAA,CAAW,MAAA,IAAU,CAAC,SAAA,EAAW;AACrC,QAAA,MAAM,SAAS,KAAA,CAAM,MAAA;AACrB,QAAA,IAAI,SAAA,CAAU,QAAA,CAAS,MAAM,CAAA,EAAG;AAC9B,UAAA,qBAAA,CAAsB,OAAA,GAAU,MAAA;QAClC,CAAA,MAAO;AACL,UAAA,KAAA,CAAM,qBAAA,CAAsB,OAAA,EAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AACvD,QAAA;MACF,CAAA,EAESC,eAAAA,GAAT,SAAwB,KAAA,EAAmB;AACzC,QAAA,IAAI,UAAA,CAAW,MAAA,IAAU,CAAC,SAAA,EAAW;AACrC,QAAA,MAAM,gBAAgB,KAAA,CAAM,aAAA;AAY5B,QAAA,IAAI,kBAAkB,IAAA,EAAM;AAI5B,QAAA,IAAI,CAAC,SAAA,CAAU,QAAA,CAAS,aAAa,CAAA,EAAG;AACtC,UAAA,KAAA,CAAM,qBAAA,CAAsB,OAAA,EAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AACvD,QAAA;MACF,CAAA,EAKSC,gBAAAA,GAAT,SAAyB,SAAA,EAA6B;AACpD,QAAA,MAAM,iBAAiB,QAAA,CAAS,aAAA;AAChC,QAAA,IAAI,cAAA,KAAmB,SAAS,IAAA,EAAM;AACtC,QAAA,KAAA,MAAW,YAAY,SAAA,EAAW;AAChC,UAAA,IAAI,QAAA,CAAS,YAAA,CAAa,MAAA,GAAS,CAAA,QAAS,SAAS,CAAA;AACvD,QAAA;AACF,MAAA,CAAA;AAEA,MAAA,QAAA,CAAS,gBAAA,CAAiB,WAAWF,cAAa,CAAA;AAClD,MAAA,QAAA,CAAS,gBAAA,CAAiB,YAAYC,eAAc,CAAA;AACpD,MAAA,MAAM,gBAAA,GAAmB,IAAI,gBAAA,CAAiBC,gBAAe,CAAA;AAC7D,MAAA,IAAI,SAAA,mBAA4B,OAAA,CAAQ,SAAA,EAAW,EAAE,SAAA,EAAW,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,CAAA;AAErF,MAAA,OAAO,MAAM;AACX,QAAA,QAAA,CAAS,mBAAA,CAAoB,WAAWF,cAAa,CAAA;AACrD,QAAA,QAAA,CAAS,mBAAA,CAAoB,YAAYC,eAAc,CAAA;AACvD,QAAA,gBAAA,CAAiB,UAAA,EAAW;AAC9B,MAAA,CAAA;AACF,IAAA;AACF,EAAA,CAAA,EAAG,CAAC,OAAA,EAAS,SAAA,EAAW,UAAA,CAAW,MAAM,CAAC,CAAA;AAEpC,EAAAF,yBAAU,MAAM;AACpB,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,gBAAA,CAAiB,IAAI,UAAU,CAAA;AAC/B,MAAA,MAAM,2BAA2B,QAAA,CAAS,aAAA;AAC1C,MAAA,MAAM,mBAAA,GAAsB,SAAA,CAAU,QAAA,CAAS,wBAAwB,CAAA;AAEvE,MAAA,IAAI,CAAC,mBAAA,EAAqB;AACxB,QAAA,MAAM,UAAA,GAAa,IAAI,WAAA,CAAY,kBAAA,EAAoB,aAAa,CAAA;AACpE,QAAA,SAAA,CAAU,gBAAA,CAAiB,oBAAoB,gBAAgB,CAAA;AAC/D,QAAA,SAAA,CAAU,cAAc,UAAU,CAAA;AAClC,QAAA,IAAI,CAAC,WAAW,gBAAA,EAAkB;AAChC,UAAA,UAAA,CAAW,WAAA,CAAY,sBAAsB,SAAS,CAAC,GAAG,EAAE,MAAA,EAAQ,MAAM,CAAA;AAC1E,UAAA,IAAI,QAAA,CAAS,kBAAkB,wBAAA,EAA0B;AACvD,YAAA,KAAA,CAAM,SAAS,CAAA;AACjB,UAAA;AACF,QAAA;AACF,MAAA;AAEA,MAAA,OAAO,MAAM;AACX,QAAA,SAAA,CAAU,mBAAA,CAAoB,oBAAoB,gBAAgB,CAAA;AAKlE,QAAA,UAAA,CAAW,MAAM;AACf,UAAA,MAAM,YAAA,GAAe,IAAI,WAAA,CAAY,oBAAA,EAAsB,aAAa,CAAA;AACxE,UAAA,SAAA,CAAU,gBAAA,CAAiB,sBAAsB,kBAAkB,CAAA;AACnE,UAAA,SAAA,CAAU,cAAc,YAAY,CAAA;AACpC,UAAA,IAAI,CAAC,aAAa,gBAAA,EAAkB;AAClC,YAAA,KAAA,CAAM,4BAA4B,QAAA,CAAS,IAAA,EAAM,EAAE,MAAA,EAAQ,MAAM,CAAA;AACnE,UAAA;AAEA,UAAA,SAAA,CAAU,mBAAA,CAAoB,sBAAsB,kBAAkB,CAAA;AAEtE,UAAA,gBAAA,CAAiB,OAAO,UAAU,CAAA;AACpC,QAAA,CAAA,EAAG,CAAC,CAAA;AACN,MAAA,CAAA;AACF,IAAA;AACF,EAAA,CAAA,EAAG,CAAC,SAAA,EAAW,gBAAA,EAAkB,kBAAA,EAAoB,UAAU,CAAC,CAAA;AAGhE,EAAA,MAAM,aAAA,GAAsBA,cAAA,CAAA,WAAA;AAC1B,IAAA,CAAC,KAAA,KAA+B;AAC9B,MAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,OAAA,EAAS;AACvB,MAAA,IAAI,WAAW,MAAA,EAAQ;AAEvB,MAAA,MAAM,QAAA,GAAW,KAAA,CAAM,GAAA,KAAQ,KAAA,IAAS,CAAC,KAAA,CAAM,MAAA,IAAU,CAAC,KAAA,CAAM,OAAA,IAAW,CAAC,KAAA,CAAM,OAAA;AAClF,MAAA,MAAM,iBAAiB,QAAA,CAAS,aAAA;AAEhC,MAAA,IAAI,YAAY,cAAA,EAAgB;AAC9B,QAAA,MAAMxJ,aAAY,KAAA,CAAM,aAAA;AACxB,QAAA,MAAM,CAAC,KAAA,EAAO,IAAI,CAAA,GAAI,iBAAiBA,UAAS,CAAA;AAChD,QAAA,MAAM,4BAA4B,KAAA,IAAS,IAAA;AAG3C,QAAA,IAAI,CAAC,yBAAA,EAA2B;AAC9B,UAAA,IAAI,cAAA,KAAmBA,UAAAA,EAAW,KAAA,CAAM,cAAA,EAAe;QACzD,CAAA,MAAO;AACL,UAAA,IAAI,CAAC,KAAA,CAAM,QAAA,IAAY,cAAA,KAAmB,IAAA,EAAM;AAC9C,YAAA,KAAA,CAAM,cAAA,EAAe;AACrB,YAAA,IAAI,MAAM,KAAA,CAAM,KAAA,EAAO,EAAE,MAAA,EAAQ,MAAM,CAAA;UACzC,CAAA,MAAA,IAAW,KAAA,CAAM,QAAA,IAAY,cAAA,KAAmB,KAAA,EAAO;AACrD,YAAA,KAAA,CAAM,cAAA,EAAe;AACrB,YAAA,IAAI,MAAM,KAAA,CAAM,IAAA,EAAM,EAAE,MAAA,EAAQ,MAAM,CAAA;AACxC,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA,CAAA;IACA,CAAC,IAAA,EAAM,OAAA,EAAS,UAAA,CAAW,MAAM;AACnC,GAAA;AAEA,EAAA,uBACE6H,GAAAA,CAAC,SAAA,CAAU,GAAA,EAAV,EAAc,QAAA,EAAU,EAAA,EAAK,GAAG,UAAA,EAAY,GAAA,EAAK,YAAA,EAAc,SAAA,EAAW,eAAe,CAAA;AAE9F,CAAC,CAAA;AAED,UAAA,CAAW,WAAA,GAAc,gBAAA;AAUzB,SAAS,WAAW,UAAA,EAA2B,EAAE,SAAS,KAAA,EAAM,GAAI,EAAC,EAAG;AACtE,EAAA,MAAM,2BAA2B,QAAA,CAAS,aAAA;AAC1C,EAAA,KAAA,MAAW,aAAa,UAAA,EAAY;AAClC,IAAA,KAAA,CAAM,SAAA,EAAW,EAAE,MAAA,EAAQ,CAAA;AAC3B,IAAA,IAAI,QAAA,CAAS,kBAAkB,wBAAA,EAA0B;AAC3D,EAAA;AACF;AAKA,SAAS,iBAAiB,SAAA,EAAwB;AAChD,EAAA,MAAM,UAAA,GAAa,sBAAsB,SAAS,CAAA;AAClD,EAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,UAAA,EAAY,SAAS,CAAA;AAC/C,EAAA,MAAM,IAAA,GAAO,WAAA,CAAY,UAAA,CAAW,OAAA,IAAW,SAAS,CAAA;AACxD,EAAA,OAAO,CAAC,OAAO,IAAI,CAAA;AACrB;AAYA,SAAS,sBAAsB,SAAA,EAAwB;AACrD,EAAA,MAAM,QAAuB,EAAC;AAC9B,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,gBAAA,CAAiB,SAAA,EAAW,WAAW,YAAA,EAAc;AAC3E,IAAA,UAAA,EAAY,CAAC,IAAA,KAAc;AACzB,MAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,OAAA,KAAY,OAAA,IAAW,KAAK,IAAA,KAAS,QAAA;AAChE,MAAA,IAAI,KAAK,QAAA,IAAY,IAAA,CAAK,MAAA,IAAU,aAAA,SAAsB,UAAA,CAAW,WAAA;AAIrE,MAAA,OAAO,IAAA,CAAK,QAAA,IAAY,CAAA,GAAI,UAAA,CAAW,gBAAgB,UAAA,CAAW,WAAA;AACpE,IAAA;GACD,CAAA;AACD,EAAA,OAAO,OAAO,QAAA,EAAS,EAAG,KAAA,CAAM,IAAA,CAAK,OAAO,WAA0B,CAAA;AAGtE,EAAA,OAAO,KAAA;AACT;AAMA,SAAS,WAAA,CAAY,UAAyB,SAAA,EAAwB;AACpE,EAAA,KAAA,MAAW,WAAW,QAAA,EAAU;AAE9B,IAAA,IAAI,CAAC,SAAS,OAAA,EAAS,EAAE,MAAM,SAAA,EAAW,GAAG,OAAO,OAAA;AACtD,EAAA;AACF;AAEA,SAAS,QAAA,CAAS,IAAA,EAAmB,EAAE,IAAA,EAAK,EAA2B;AACrE,EAAA,IAAI,gBAAA,CAAiB,IAAI,CAAA,CAAE,UAAA,KAAe,UAAU,OAAO,IAAA;AAC3D,EAAA,OAAO,IAAA,EAAM;AAEX,IAAA,IAAI,IAAA,KAAS,MAAA,IAAa,IAAA,KAAS,IAAA,EAAM,OAAO,KAAA;AAChD,IAAA,IAAI,gBAAA,CAAiB,IAAI,CAAA,CAAE,OAAA,KAAY,QAAQ,OAAO,IAAA;AACtD,IAAA,IAAA,GAAO,IAAA,CAAK,aAAA;AACd,EAAA;AACA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,kBAAkB,OAAA,EAAmE;AAC5F,EAAA,OAAO,OAAA,YAAmB,oBAAoB,QAAA,IAAY,OAAA;AAC5D;AAEA,SAAS,MAAM,OAAA,EAAkC,EAAE,SAAS,KAAA,EAAM,GAAI,EAAC,EAAG;AAExE,EAAA,IAAI,OAAA,IAAW,QAAQ,KAAA,EAAO;AAC5B,IAAA,MAAM,2BAA2B,QAAA,CAAS,aAAA;AAE1C,IAAA,OAAA,CAAQ,KAAA,CAAM,EAAE,aAAA,EAAe,IAAA,EAAM,CAAA;AAErC,IAAA,IAAI,OAAA,KAAY,wBAAA,IAA4B,iBAAA,CAAkB,OAAO,CAAA,IAAK,MAAA;AACxE,MAAA,OAAA,CAAQ,MAAA,EAAO;AACnB,EAAA;AACF;AAOA,IAAM,mBAAmB,sBAAA,EAAuB;AAEhD,SAAS,sBAAA,GAAyB;AAEhC,EAAA,IAAI,QAAyB,EAAC;AAE9B,EAAA,OAAO;AACL,IAAA,GAAA,CAAI,UAAA,EAA2B;AAE7B,MAAA,MAAM,gBAAA,GAAmB,MAAM,CAAC,CAAA;AAChC,MAAA,IAAI,eAAe,gBAAA,EAAkB;AACnC,QAAA,gBAAA,EAAkB,KAAA,EAAM;AAC1B,MAAA;AAEA,MAAA,KAAA,GAAQ,WAAA,CAAY,OAAO,UAAU,CAAA;AACrC,MAAA,KAAA,CAAM,QAAQ,UAAU,CAAA;AAC1B,IAAA,CAAA;AAEA,IAAA,MAAA,CAAO,UAAA,EAA2B;AAChC,MAAA,KAAA,GAAQ,WAAA,CAAY,OAAO,UAAU,CAAA;AACrC,MAAA,KAAA,CAAM,CAAC,GAAG,MAAA,EAAO;AACnB,IAAA;AACF,GAAA;AACF;AAEA,SAAS,WAAA,CAAe,OAAY,IAAA,EAAS;AAC3C,EAAA,MAAM,YAAA,GAAe,CAAC,GAAG,KAAK,CAAA;AAC9B,EAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,OAAA,CAAQ,IAAI,CAAA;AACvC,EAAA,IAAI,UAAU,EAAA,EAAI;AAChB,IAAA,YAAA,CAAa,MAAA,CAAO,OAAO,CAAC,CAAA;AAC9B,EAAA;AACA,EAAA,OAAO,YAAA;AACT;AAEA,SAAS,YAAY,KAAA,EAAsB;AACzC,EAAA,OAAO,MAAM,MAAA,CAAO,CAAC,IAAA,KAAS,IAAA,CAAK,YAAY,GAAG,CAAA;AACpD;AC7UA,IAAM,WAAA,GAAc,QAAA;AAWpB,IAAM,MAAA,GAAe+B,cAAA,CAAA,UAAA,CAAuC,CAAC,KAAA,EAAO,YAAA,KAAiB;AACnF,EAAA,MAAM,EAAE,SAAA,EAAW,aAAA,EAAe,GAAG,aAAY,GAAI,KAAA;AACrD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAUA,wBAAS,KAAK,CAAA;AAClD,EAAA,gBAAA,CAAgB,MAAM,UAAA,CAAW,IAAI,CAAA,EAAG,EAAE,CAAA;AAC1C,EAAA,MAAM,SAAA,GAAY,aAAA,IAAkB,OAAA,IAAW,UAAA,EAAY,QAAA,EAAU,IAAA;AACrE,EAAA,OAAO,SAAA,GACHC,iBAAAA,CAAS,YAAA,iBAAahC,IAAC,SAAA,CAAU,GAAA,EAAV,EAAe,GAAG,aAAa,GAAA,EAAK,YAAA,EAAc,CAAA,EAAI,SAAS,CAAA,GACtF,IAAA;AACN,CAAC,CAAA;AAED,MAAA,CAAO,WAAA,GAAc,WAAA;ACnBd,SAAS,eAAA,CACd,cACA,OAAA,EACA;AACA,EAAA,OAAaiC,cAAA,CAAA,UAAA,CAAW,CAAC,KAAA,EAAwB,KAAA,KAA4C;AAC3F,IAAA,MAAM,SAAA,GAAa,OAAA,CAAQ,KAAK,CAAA,CAAU,KAAK,CAAA;AAC/C,IAAA,OAAO,SAAA,IAAa,KAAA;AACtB,EAAA,CAAA,EAAG,YAAY,CAAA;AACjB;ACTA,IAAM,QAAA,GAAoC,CAAC,KAAA,KAAU;AACnD,EAAA,MAAM,EAAE,OAAA,EAAS,QAAA,EAAS,GAAI,KAAA;AAC9B,EAAA,MAAM,QAAA,GAAW,YAAY,OAAO,CAAA;AAEpC,EAAA,MAAM,KAAA,GACJ,OAAO,QAAA,KAAa,UAAA,GAChB,QAAA,CAAS,EAAE,OAAA,EAAS,QAAA,CAAS,SAAA,EAAW,CAAA,GAClCC,cAAA,CAAA,QAAA,CAAS,KAAK,QAAQ,CAAA;AAGlC,EAAA,MAAM,MAAM,eAAA,CAAgB,QAAA,CAAS,GAAA,EAAKC,cAAAA,CAAc,KAAK,CAAC,CAAA;AAC9D,EAAA,MAAM,UAAA,GAAa,OAAO,QAAA,KAAa,UAAA;AACvC,EAAA,OAAO,UAAA,IAAc,SAAS,SAAA,GAAkBD,cAAA,CAAA,YAAA,CAAa,OAAO,EAAE,GAAA,EAAK,CAAA,GAAI,IAAA;AACjF,CAAA;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AAMvB,SAAS,YAAY,OAAA,EAAkB;AACrC,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAUA,cAAA,CAAA,QAAA,EAAsB;AACpD,EAAA,MAAM,SAAA,GAAkBA,sBAAmC,IAAI,CAAA;AAC/D,EAAA,MAAM,cAAA,GAAuBA,sBAAO,OAAO,CAAA;AAC3C,EAAA,MAAM,oBAAA,GAA6BA,sBAAe,MAAM,CAAA;AACxD,EAAA,MAAM,YAAA,GAAe,UAAU,SAAA,GAAY,WAAA;AAC3C,EAAA,MAAM,CAAC,KAAA,EAAO,IAAI,CAAA,GAAI,gBAAgB,YAAA,EAAc;IAClD,OAAA,EAAS;MACP,OAAA,EAAS,WAAA;MACT,aAAA,EAAe;AACjB,KAAA;IACA,gBAAA,EAAkB;MAChB,KAAA,EAAO,SAAA;MACP,aAAA,EAAe;AACjB,KAAA;IACA,SAAA,EAAW;MACT,KAAA,EAAO;AACT;GACD,CAAA;AAEK,EAAAA,yBAAU,MAAM;AACpB,IAAA,MAAM,oBAAA,GAAuB,gBAAA,CAAiB,SAAA,CAAU,OAAO,CAAA;AAC/D,IAAA,oBAAA,CAAqB,OAAA,GAAU,KAAA,KAAU,SAAA,GAAY,oBAAA,GAAuB,MAAA;EAC9E,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,gBAAA,CAAgB,MAAM;AACpB,IAAA,MAAM,SAAS,SAAA,CAAU,OAAA;AACzB,IAAA,MAAM,aAAa,cAAA,CAAe,OAAA;AAClC,IAAA,MAAM,oBAAoB,UAAA,KAAe,OAAA;AAEzC,IAAA,IAAI,iBAAA,EAAmB;AACrB,MAAA,MAAM,oBAAoB,oBAAA,CAAqB,OAAA;AAC/C,MAAA,MAAM,oBAAA,GAAuB,iBAAiB,MAAM,CAAA;AAEpD,MAAA,IAAI,OAAA,EAAS;AACX,QAAA,IAAA,CAAK,OAAO,CAAA;AACd,MAAA,CAAA,MAAA,IAAW,oBAAA,KAAyB,MAAA,IAAU,MAAA,EAAQ,OAAA,KAAY,MAAA,EAAQ;AAGxE,QAAA,IAAA,CAAK,SAAS,CAAA;MAChB,CAAA,MAAO;AAOL,QAAA,MAAM,cAAc,iBAAA,KAAsB,oBAAA;AAE1C,QAAA,IAAI,cAAc,WAAA,EAAa;AAC7B,UAAA,IAAA,CAAK,eAAe,CAAA;QACtB,CAAA,MAAO;AACL,UAAA,IAAA,CAAK,SAAS,CAAA;AAChB,QAAA;AACF,MAAA;AAEA,MAAA,cAAA,CAAe,OAAA,GAAU,OAAA;AAC3B,IAAA;EACF,CAAA,EAAG,CAAC,OAAA,EAAS,IAAI,CAAC,CAAA;AAElB,EAAA,gBAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,IAAI,SAAA;AACJ,MAAA,MAAM,WAAA,GAAc,IAAA,CAAK,aAAA,CAAc,WAAA,IAAe,MAAA;AAMtD,MAAA,MAAM,kBAAA,GAAqB,CAAC,KAAA,KAA0B;AACpD,QAAA,MAAM,oBAAA,GAAuB,gBAAA,CAAiB,SAAA,CAAU,OAAO,CAAA;AAG/D,QAAA,MAAM,qBAAqB,oBAAA,CAAqB,QAAA,CAAS,IAAI,MAAA,CAAO,KAAA,CAAM,aAAa,CAAC,CAAA;AACxF,QAAA,IAAI,KAAA,CAAM,MAAA,KAAW,IAAA,IAAQ,kBAAA,EAAoB;AAW/C,UAAA,IAAA,CAAK,eAAe,CAAA;AACpB,UAAA,IAAI,CAAC,eAAe,OAAA,EAAS;AAC3B,YAAA,MAAM,eAAA,GAAkB,KAAK,KAAA,CAAM,iBAAA;AACnC,YAAA,IAAA,CAAK,MAAM,iBAAA,GAAoB,UAAA;AAK/B,YAAA,SAAA,GAAY,WAAA,CAAY,WAAW,MAAM;AACvC,cAAA,IAAI,IAAA,CAAK,KAAA,CAAM,iBAAA,KAAsB,UAAA,EAAY;AAC/C,gBAAA,IAAA,CAAK,MAAM,iBAAA,GAAoB,eAAA;AACjC,cAAA;YACF,CAAC,CAAA;AACH,UAAA;AACF,QAAA;AACF,MAAA,CAAA;AACA,MAAA,MAAM,oBAAA,GAAuB,CAAC,KAAA,KAA0B;AACtD,QAAA,IAAI,KAAA,CAAM,WAAW,IAAA,EAAM;AAEzB,UAAA,oBAAA,CAAqB,OAAA,GAAU,gBAAA,CAAiB,SAAA,CAAU,OAAO,CAAA;AACnE,QAAA;AACF,MAAA,CAAA;AACA,MAAA,IAAA,CAAK,gBAAA,CAAiB,kBAAkB,oBAAoB,CAAA;AAC5D,MAAA,IAAA,CAAK,gBAAA,CAAiB,mBAAmB,kBAAkB,CAAA;AAC3D,MAAA,IAAA,CAAK,gBAAA,CAAiB,gBAAgB,kBAAkB,CAAA;AACxD,MAAA,OAAO,MAAM;AACX,QAAA,WAAA,CAAY,aAAa,SAAS,CAAA;AAClC,QAAA,IAAA,CAAK,mBAAA,CAAoB,kBAAkB,oBAAoB,CAAA;AAC/D,QAAA,IAAA,CAAK,mBAAA,CAAoB,mBAAmB,kBAAkB,CAAA;AAC9D,QAAA,IAAA,CAAK,mBAAA,CAAoB,gBAAgB,kBAAkB,CAAA;AAC7D,MAAA,CAAA;IACF,CAAA,MAAO;AAGL,MAAA,IAAA,CAAK,eAAe,CAAA;AACtB,IAAA;EACF,CAAA,EAAG,CAAC,IAAA,EAAM,IAAI,CAAC,CAAA;AAEf,EAAA,OAAO;AACL,IAAA,SAAA,EAAW,CAAC,SAAA,EAAW,kBAAkB,CAAA,CAAE,SAAS,KAAK,CAAA;IACzD,GAAA,EAAWA,cAAA,CAAA,WAAA,CAAY,CAACT,KAAAA,KAAsB;AAC5C,MAAA,SAAA,CAAU,OAAA,GAAUA,KAAAA,GAAO,gBAAA,CAAiBA,KAAI,CAAA,GAAI,IAAA;AACpD,MAAA,OAAA,CAAQA,KAAI,CAAA;AACd,IAAA,CAAA,EAAG,EAAE;AACP,GAAA;AACF;AAIA,SAAS,iBAAiB,MAAA,EAAoC;AAC5D,EAAA,OAAO,QAAQ,aAAA,IAAiB,MAAA;AAClC;AAOA,SAASU,eAAc,OAAA,EAA2D;AAEhF,EAAA,IAAI,SAAS,MAAA,CAAO,wBAAA,CAAyB,OAAA,CAAQ,KAAA,EAAO,KAAK,CAAA,EAAG,GAAA;AACpE,EAAA,IAAI,OAAA,GAAU,MAAA,IAAU,gBAAA,IAAoB,MAAA,IAAU,MAAA,CAAO,cAAA;AAC7D,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAQ,OAAA,CAAgB,GAAA;AAC1B,EAAA;AAGA,EAAA,MAAA,GAAS,MAAA,CAAO,wBAAA,CAAyB,OAAA,EAAS,KAAK,CAAA,EAAG,GAAA;AAC1D,EAAA,OAAA,GAAU,MAAA,IAAU,gBAAA,IAAoB,MAAA,IAAU,MAAA,CAAO,cAAA;AACzD,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAO,QAAQ,KAAA,CAAM,GAAA;AACvB,EAAA;AAGA,EAAA,OAAO,OAAA,CAAQ,KAAA,CAAM,GAAA,IAAQ,OAAA,CAAgB,GAAA;AAC/C;AC5LA,IAAIC,MAAAA,GAAQ,CAAA;AAeZ,SAAS,cAAA,GAAiB;AAElB,EAAAC,yBAAU,MAAM;AACpB,IAAA,MAAM,UAAA,GAAa,QAAA,CAAS,gBAAA,CAAiB,0BAA0B,CAAA;AACvE,IAAA,QAAA,CAAS,KAAK,qBAAA,CAAsB,YAAA,EAAc,WAAW,CAAC,CAAA,IAAK,kBAAkB,CAAA;AACrF,IAAA,QAAA,CAAS,KAAK,qBAAA,CAAsB,WAAA,EAAa,WAAW,CAAC,CAAA,IAAK,kBAAkB,CAAA;AACpF,IAAAD,MAAAA,EAAAA;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,IAAIA,WAAU,CAAA,EAAG;AACf,QAAA,QAAA,CAAS,gBAAA,CAAiB,0BAA0B,CAAA,CAAE,OAAA,CAAQ,CAAC,IAAA,KAAS,IAAA,CAAK,QAAQ,CAAA;AACvF,MAAA;AACA,MAAAA,MAAAA,EAAAA;AACF,IAAA,CAAA;AACF,EAAA,CAAA,EAAG,EAAE,CAAA;AAEP;AAEA,SAAS,gBAAA,GAAmB;AAE1B,EAAA,MAAM,OAAA,GAAU,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA;AAC7C,EAAA,OAAA,CAAQ,YAAA,CAAa,0BAA0B,EAAE,CAAA;AACjD,EAAA,OAAA,CAAQ,QAAA,GAAW,CAAA;AACnB,EAAA,OAAA,CAAQ,MAAM,OAAA,GAAU,MAAA;AACxB,EAAA,OAAA,CAAQ,MAAM,OAAA,GAAU,GAAA;AACxB,EAAA,OAAA,CAAQ,MAAM,QAAA,GAAW,OAAA;AACzB,EAAA,OAAA,CAAQ,MAAM,aAAA,GAAgB,MAAA;AAC9B,EAAA,OAAO,OAAA;AACT;;;ACfO,IAAI,WAAW,WAAW;AAC/B,EAAA,QAAA,GAAW,MAAA,CAAO,MAAA,IAAU,SAASE,SAAAA,CAASrb,EAAAA,EAAG;AAC7C,IAAA,KAAA,IAAS,CAAA,EAAG,IAAI,CAAA,EAAG,CAAA,GAAI,UAAU,MAAA,EAAQ,CAAA,GAAI,GAAG,CAAA,EAAA,EAAK;AACjD,MAAA,CAAA,GAAI,UAAU,CAAC,CAAA;AACf,MAAA,KAAA,IAAS,CAAA,IAAK,CAAA,EAAG,IAAI,MAAA,CAAO,UAAU,cAAA,CAAe,IAAA,CAAK,CAAA,EAAG,CAAC,GAAGA,EAAAA,CAAE,CAAC,CAAA,GAAI,EAAE,CAAC,CAAA;AAAA,IAC/E;AACA,IAAA,OAAOA,EAAAA;AAAA,EACX,CAAA;AACA,EAAA,OAAO,QAAA,CAAS,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AACvC,CAAA;AAEO,SAAS,MAAA,CAAO,GAAG,CAAA,EAAG;AAC3B,EAAA,IAAIA,KAAI,EAAC;AACT,EAAA,KAAA,IAAS,CAAA,IAAK,CAAA,EAAG,IAAI,MAAA,CAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAK,CAAA,EAAG,CAAC,CAAA,IAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,GAAI,CAAA;AAC9E,IAAAA,EAAAA,CAAE,CAAC,CAAA,GAAI,CAAA,CAAE,CAAC,CAAA;AACd,EAAA,IAAI,CAAA,IAAK,IAAA,IAAQ,OAAO,MAAA,CAAO,qBAAA,KAA0B,UAAA;AACrD,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,CAAO,qBAAA,CAAsB,CAAC,CAAA,EAAG,CAAA,GAAI,CAAA,CAAE,MAAA,EAAQ,CAAA,EAAA,EAAK;AACpE,MAAA,IAAI,CAAA,CAAE,OAAA,CAAQ,CAAA,CAAE,CAAC,CAAC,CAAA,GAAI,CAAA,IAAK,MAAA,CAAO,SAAA,CAAU,oBAAA,CAAqB,IAAA,CAAK,CAAA,EAAG,CAAA,CAAE,CAAC,CAAC,CAAA;AACzE,QAAAA,EAAAA,CAAE,EAAE,CAAC,CAAC,IAAI,CAAA,CAAE,CAAA,CAAE,CAAC,CAAC,CAAA;AAAA,IACxB;AACJ,EAAA,OAAOA,EAAAA;AACT;AAiKO,SAAS,aAAA,CAAc,EAAA,EAAI,IAAA,EAAM,IAAA,EAAM;AAC5C,EAAoC,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,MAAA,EAAQ,EAAA,EAAI,CAAA,GAAI,GAAG,CAAA,EAAA,EAAK;AACjF,IAAA,IAAI,EAAA,IAAM,EAAE,CAAA,IAAK,IAAA,CAAA,EAAO;AACpB,MAAA,IAAI,CAAC,IAAI,EAAA,GAAK,KAAA,CAAM,UAAU,KAAA,CAAM,IAAA,CAAK,IAAA,EAAM,CAAA,EAAG,CAAC,CAAA;AACnD,MAAA,EAAA,CAAG,CAAC,CAAA,GAAI,IAAA,CAAK,CAAC,CAAA;AAAA,IAClB;AAAA,EACJ;AACA,EAAA,OAAO,EAAA,CAAG,OAAO,EAAA,IAAM,KAAA,CAAM,UAAU,KAAA,CAAM,IAAA,CAAK,IAAI,CAAC,CAAA;AACzD;;;AC7NO,IAAI,kBAAA,GAAqB,2BAAA;AACzB,IAAI,kBAAA,GAAqB,yBAAA;AACzB,IAAI,qBAAA,GAAwB,yBAAA;AAK5B,IAAI,sBAAA,GAAyB,gCAAA;;;ACM7B,SAAS,SAAA,CAAU,KAAK,KAAA,EAAO;AAClC,EAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC3B,IAAA,GAAA,CAAI,KAAK,CAAA;AAAA,EACb,WACS,GAAA,EAAK;AACV,IAAA,GAAA,CAAI,OAAA,GAAU,KAAA;AAAA,EAClB;AACA,EAAA,OAAO,GAAA;AACX;ACNO,SAASsb,eAAAA,CAAe,cAAc,QAAA,EAAU;AACnD,EAAA,IAAI,GAAA,GAAMC,SAAS,WAAY;AAAE,IAAA,OAAQ;AAAA;AAAA,MAErC,KAAA,EAAO,YAAA;AAAA;AAAA,MAEP,QAAA;AAAA;AAAA,MAEA,MAAA,EAAQ;AAAA,QACJ,IAAI,OAAA,GAAU;AACV,UAAA,OAAO,GAAA,CAAI,KAAA;AAAA,QACf,CAAA;AAAA,QACA,IAAI,QAAQ,KAAA,EAAO;AACf,UAAA,IAAI,OAAO,GAAA,CAAI,KAAA;AACf,UAAA,IAAI,SAAS,KAAA,EAAO;AAChB,YAAA,GAAA,CAAI,KAAA,GAAQ,KAAA;AACZ,YAAA,GAAA,CAAI,QAAA,CAAS,OAAO,IAAI,CAAA;AAAA,UAC5B;AAAA,QACJ;AAAA;AACJ,KACJ;AAAA,EAAI,CAAC,EAAE,CAAC,CAAA;AAER,EAAA,GAAA,CAAI,QAAA,GAAW,QAAA;AACf,EAAA,OAAO,GAAA,CAAI,MAAA;AACf;ACnCA,IAAI,yBAAA,GAA4B,OAAO,MAAA,KAAW,WAAA,GAAoBC,cAAA,CAAA,eAAA,GAAwBA,cAAA,CAAA,SAAA;AAC9F,IAAI,aAAA,uBAAoB,OAAA,EAAQ;AAezB,SAAS,YAAA,CAAa,MAAM,YAAA,EAAc;AAC7C,EAAA,IAAI,WAAA,GAAcF,eAAAA,CAA+B,IAAA,EAAM,SAAU,QAAA,EAAU;AACvE,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,SAAU,GAAA,EAAK;AAAE,MAAA,OAAO,SAAA,CAAU,KAAK,QAAQ,CAAA;AAAA,IAAG,CAAC,CAAA;AAAA,EAC3E,CAAC,CAAA;AAED,EAAA,yBAAA,CAA0B,WAAY;AAClC,IAAA,IAAI,QAAA,GAAW,aAAA,CAAc,GAAA,CAAI,WAAW,CAAA;AAC5C,IAAA,IAAI,QAAA,EAAU;AACV,MAAA,IAAI,UAAA,GAAa,IAAI,GAAA,CAAI,QAAQ,CAAA;AACjC,MAAA,IAAI,UAAA,GAAa,IAAI,GAAA,CAAI,IAAI,CAAA;AAC7B,MAAA,IAAI,YAAY,WAAA,CAAY,OAAA;AAC5B,MAAA,UAAA,CAAW,OAAA,CAAQ,SAAU,GAAA,EAAK;AAC9B,QAAA,IAAI,CAAC,UAAA,CAAW,GAAA,CAAI,GAAG,CAAA,EAAG;AACtB,UAAA,SAAA,CAAU,KAAK,IAAI,CAAA;AAAA,QACvB;AAAA,MACJ,CAAC,CAAA;AACD,MAAA,UAAA,CAAW,OAAA,CAAQ,SAAU,GAAA,EAAK;AAC9B,QAAA,IAAI,CAAC,UAAA,CAAW,GAAA,CAAI,GAAG,CAAA,EAAG;AACtB,UAAA,SAAA,CAAU,KAAK,SAAS,CAAA;AAAA,QAC5B;AAAA,MACJ,CAAC,CAAA;AAAA,IACL;AACA,IAAA,aAAA,CAAc,GAAA,CAAI,aAAa,IAAI,CAAA;AAAA,EACvC,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AACT,EAAA,OAAO,WAAA;AACX;;;AC3CA,SAAS,KAAK,CAAA,EAAG;AACb,EAAA,OAAO,CAAA;AACX;AACA,SAAS,iBAAA,CAAkB,UAAU,UAAA,EAAY;AAC7C,EAAA,IAAI,eAAe,MAAA,EAAQ;AAAE,IAAA,UAAA,GAAa,IAAA;AAAA,EAAM;AAChD,EAAA,IAAI,SAAS,EAAC;AACd,EAAA,IAAI,QAAA,GAAW,KAAA;AACf,EAAA,IAAI,MAAA,GAAS;AAAA,IACT,MAAM,WAAY;AACd,MAAA,IAAI,QAAA,EAAU;AACV,QAAA,MAAM,IAAI,MAAM,kGAAkG,CAAA;AAAA,MACtH;AACA,MAAA,IAAI,OAAO,MAAA,EAAQ;AACf,QAAA,OAAO,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA;AAAA,MACnC;AACA,MAAA,OAAO,QAAA;AAAA,IACX,CAAA;AAAA,IACA,SAAA,EAAW,SAAU,IAAA,EAAM;AACvB,MAAA,IAAI,IAAA,GAAO,UAAA,CAAW,IAAA,EAAM,QAAQ,CAAA;AACpC,MAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAChB,MAAA,OAAO,WAAY;AACf,QAAA,MAAA,GAAS,MAAA,CAAO,MAAA,CAAO,SAAUG,EAAAA,EAAG;AAAE,UAAA,OAAOA,EAAAA,KAAM,IAAA;AAAA,QAAM,CAAC,CAAA;AAAA,MAC9D,CAAA;AAAA,IACJ,CAAA;AAAA,IACA,gBAAA,EAAkB,SAAU,EAAA,EAAI;AAC5B,MAAA,QAAA,GAAW,IAAA;AACX,MAAA,OAAO,OAAO,MAAA,EAAQ;AAClB,QAAA,IAAI,GAAA,GAAM,MAAA;AACV,QAAA,MAAA,GAAS,EAAC;AACV,QAAA,GAAA,CAAI,QAAQ,EAAE,CAAA;AAAA,MAClB;AACA,MAAA,MAAA,GAAS;AAAA,QACL,IAAA,EAAM,SAAUA,EAAAA,EAAG;AAAE,UAAA,OAAO,GAAGA,EAAC,CAAA;AAAA,QAAG,CAAA;AAAA,QACnC,QAAQ,WAAY;AAAE,UAAA,OAAO,MAAA;AAAA,QAAQ;AAAA,OACzC;AAAA,IACJ,CAAA;AAAA,IACA,YAAA,EAAc,SAAU,EAAA,EAAI;AACxB,MAAA,QAAA,GAAW,IAAA;AACX,MAAA,IAAI,eAAe,EAAC;AACpB,MAAA,IAAI,OAAO,MAAA,EAAQ;AACf,QAAA,IAAI,GAAA,GAAM,MAAA;AACV,QAAA,MAAA,GAAS,EAAC;AACV,QAAA,GAAA,CAAI,QAAQ,EAAE,CAAA;AACd,QAAA,YAAA,GAAe,MAAA;AAAA,MACnB;AACA,MAAA,IAAI,eAAe,WAAY;AAC3B,QAAA,IAAIC,IAAAA,GAAM,YAAA;AACV,QAAA,YAAA,GAAe,EAAC;AAChB,QAAAA,IAAAA,CAAI,QAAQ,EAAE,CAAA;AAAA,MAClB,CAAA;AACA,MAAA,IAAI,QAAQ,WAAY;AAAE,QAAA,OAAO,OAAA,CAAQ,OAAA,EAAQ,CAAE,IAAA,CAAK,YAAY,CAAA;AAAA,MAAG,CAAA;AACvE,MAAA,KAAA,EAAM;AACN,MAAA,MAAA,GAAS;AAAA,QACL,IAAA,EAAM,SAAUD,EAAAA,EAAG;AACf,UAAA,YAAA,CAAa,KAAKA,EAAC,CAAA;AACnB,UAAA,KAAA,EAAM;AAAA,QACV,CAAA;AAAA,QACA,MAAA,EAAQ,SAAU,MAAA,EAAQ;AACtB,UAAA,YAAA,GAAe,YAAA,CAAa,OAAO,MAAM,CAAA;AACzC,UAAA,OAAO,MAAA;AAAA,QACX;AAAA,OACJ;AAAA,IACJ;AAAA,GACJ;AACA,EAAA,OAAO,MAAA;AACX;AAMO,SAAS,oBAAoB,OAAA,EAAS;AACzC,EAAA,IAAI,YAAY,MAAA,EAAQ;AAAE,IAAA,OAAA,GAAU,EAAC;AAAA,EAAG;AACxC,EAAA,IAAI,MAAA,GAAS,kBAAkB,IAAI,CAAA;AACnC,EAAA,MAAA,CAAO,OAAA,GAAU,SAAS,EAAE,KAAA,EAAO,MAAM,GAAA,EAAK,KAAA,IAAS,OAAO,CAAA;AAC9D,EAAA,OAAO,MAAA;AACX;AC3EA,IAAI,OAAA,GAAU,SAAU,EAAA,EAAI;AACxB,EAAA,IAAI,OAAA,GAAU,GAAG,OAAA,EAAS,IAAA,GAAO,OAAO,EAAA,EAAI,CAAC,SAAS,CAAC,CAAA;AACvD,EAAA,IAAI,CAAC,OAAA,EAAS;AACV,IAAA,MAAM,IAAI,MAAM,oEAAoE,CAAA;AAAA,EACxF;AACA,EAAA,IAAI,MAAA,GAAS,QAAQ,IAAA,EAAK;AAC1B,EAAA,IAAI,CAAC,MAAA,EAAQ;AACT,IAAA,MAAM,IAAI,MAAM,0BAA0B,CAAA;AAAA,EAC9C;AACA,EAAA,OAAaE,6BAAc,MAAA,EAAQ,QAAA,CAAS,EAAC,EAAG,IAAI,CAAC,CAAA;AACzD,CAAA;AACA,OAAA,CAAQ,eAAA,GAAkB,IAAA;AACnB,SAAS,aAAA,CAAc,QAAQ,QAAA,EAAU;AAC5C,EAAA,MAAA,CAAO,UAAU,QAAQ,CAAA;AACzB,EAAA,OAAO,OAAA;AACX;;;AChBO,IAAI,YAAY,mBAAA,EAAoB;;;ACI3C,IAAI,UAAU,WAAY;AACtB,EAAA;AACJ,CAAA;AAIA,IAAI,YAAA,GAAqBC,cAAA,CAAA,UAAA,CAAW,SAAU,KAAA,EAAO,SAAA,EAAW;AAC5D,EAAA,IAAI,GAAA,GAAYA,sBAAO,IAAI,CAAA;AAC3B,EAAA,IAAI,KAAWA,cAAA,CAAA,QAAA,CAAS;AAAA,IACpB,eAAA,EAAiB,OAAA;AAAA,IACjB,cAAA,EAAgB,OAAA;AAAA,IAChB,kBAAA,EAAoB;AAAA,GACvB,GAAG,SAAA,GAAY,EAAA,CAAG,CAAC,CAAA,EAAG,YAAA,GAAe,GAAG,CAAC,CAAA;AAC1C,EAAA,IAAI,YAAA,GAAe,KAAA,CAAM,YAAA,EAAc,QAAA,GAAW,KAAA,CAAM,QAAA,EAAU,SAAA,GAAY,KAAA,CAAM,SAAA,EAAW,eAAA,GAAkB,KAAA,CAAM,eAAA,EAAiB,OAAA,GAAU,KAAA,CAAM,OAAA,EAAS,MAAA,GAAS,KAAA,CAAM,MAAA,EAAQ,OAAA,GAAU,KAAA,CAAM,OAAA,EAAS,UAAA,GAAa,KAAA,CAAM,UAAA,EAAY,WAAA,GAAc,KAAA,CAAM,WAAA,EAAa,KAAA,GAAQ,KAAA,CAAM,KAAA,EAAO,cAAA,GAAiB,KAAA,CAAM,cAAA,EAAgB,EAAA,GAAK,KAAA,CAAM,EAAA,EAAI,SAAA,GAAY,EAAA,KAAO,MAAA,GAAS,KAAA,GAAQ,EAAA,EAAI,OAAA,GAAU,KAAA,CAAM,OAAA,EAAS,IAAA,GAAO,MAAA,CAAO,KAAA,EAAO,CAAC,cAAA,EAAgB,UAAA,EAAY,WAAA,EAAa,iBAAA,EAAmB,SAAA,EAAW,QAAA,EAAU,SAAA,EAAW,YAAA,EAAc,aAAA,EAAe,OAAA,EAAS,gBAAA,EAAkB,IAAA,EAAM,SAAS,CAAC,CAAA;AACvlB,EAAA,IAAIC,QAAAA,GAAU,OAAA;AACd,EAAA,IAAI,YAAA,GAAe,YAAA,CAAa,CAAC,GAAA,EAAK,SAAS,CAAC,CAAA;AAChD,EAAA,IAAI,iBAAiB,QAAA,CAAS,QAAA,CAAS,EAAC,EAAG,IAAI,GAAG,SAAS,CAAA;AAC3D,EAAA,OAAcD,cAAA,CAAA,aAAA;AAAA,IAAoBA,cAAA,CAAA,QAAA;AAAA,IAAU,IAAA;AAAA,IACxC,WAAkBA,cAAA,CAAA,aAAA,CAAcC,QAAAA,EAAS,EAAE,OAAA,EAAS,SAAA,EAAW,iBAAkC,MAAA,EAAgB,UAAA,EAAwB,aAA0B,KAAA,EAAc,YAAA,EAA4B,gBAAgB,CAAC,CAAC,gBAAgB,OAAA,EAAS,GAAA,EAAK,SAAkB,CAAA;AAAA,IAC/Q,YAAA,GAAsBD,cAAA,CAAA,YAAA,CAAmBA,cAAA,CAAA,QAAA,CAAS,IAAA,CAAK,QAAQ,CAAA,EAAG,QAAA,CAAS,QAAA,CAAS,EAAC,EAAG,cAAc,CAAA,EAAG,EAAE,GAAA,EAAK,YAAA,EAAc,CAAC,CAAA,GAAYA,cAAA,CAAA,aAAA,CAAc,SAAA,EAAW,QAAA,CAAS,EAAC,EAAG,cAAA,EAAgB,EAAE,SAAA,EAAsB,GAAA,EAAK,YAAA,EAAc,GAAG,QAAQ;AAAA,GAAE;AACjQ,CAAC,CAAA;AACD,YAAA,CAAa,YAAA,GAAe;AAAA,EACxB,OAAA,EAAS,IAAA;AAAA,EACT,eAAA,EAAiB,IAAA;AAAA,EACjB,KAAA,EAAO;AACX,CAAA;AACA,YAAA,CAAa,UAAA,GAAa;AAAA,EACtB,SAAA,EAAW,kBAAA;AAAA,EACX,SAAA,EAAW;AACf,CAAA;AC9BO,IAAI,WAAW,WAAY;AAI9B,EAAA,IAAI,OAAO,sBAAsB,WAAA,EAAa;AAC1C,IAAA,OAAO,iBAAA;AAAA,EACX;AACA,EAAA,OAAO,MAAA;AACX,CAAA;;;ACXA,SAAS,YAAA,GAAe;AACpB,EAAA,IAAI,CAAC,QAAA;AACD,IAAA,OAAO,IAAA;AACX,EAAA,IAAI,GAAA,GAAM,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AACxC,EAAA,GAAA,CAAI,IAAA,GAAO,UAAA;AACX,EAAA,IAAI,QAAQ,QAAA,EAAS;AACrB,EAAA,IAAI,KAAA,EAAO;AACP,IAAA,GAAA,CAAI,YAAA,CAAa,SAAS,KAAK,CAAA;AAAA,EACnC;AACA,EAAA,OAAO,GAAA;AACX;AACA,SAAS,YAAA,CAAa,KAAK,GAAA,EAAK;AAE5B,EAAA,IAAI,IAAI,UAAA,EAAY;AAEhB,IAAA,GAAA,CAAI,WAAW,OAAA,GAAU,GAAA;AAAA,EAC7B,CAAA,MACK;AACD,IAAA,GAAA,CAAI,WAAA,CAAY,QAAA,CAAS,cAAA,CAAe,GAAG,CAAC,CAAA;AAAA,EAChD;AACJ;AACA,SAAS,eAAe,GAAA,EAAK;AACzB,EAAA,IAAI,OAAO,QAAA,CAAS,IAAA,IAAQ,SAAS,oBAAA,CAAqB,MAAM,EAAE,CAAC,CAAA;AACnE,EAAA,IAAA,CAAK,YAAY,GAAG,CAAA;AACxB;AACO,IAAI,sBAAsB,WAAY;AACzC,EAAA,IAAI,OAAA,GAAU,CAAA;AACd,EAAA,IAAI,UAAA,GAAa,IAAA;AACjB,EAAA,OAAO;AAAA,IACH,GAAA,EAAK,SAAU,KAAA,EAAO;AAClB,MAAA,IAAI,WAAW,CAAA,EAAG;AACd,QAAA,IAAK,UAAA,GAAa,cAAa,EAAI;AAC/B,UAAA,YAAA,CAAa,YAAY,KAAK,CAAA;AAC9B,UAAA,cAAA,CAAe,UAAU,CAAA;AAAA,QAC7B;AAAA,MACJ;AACA,MAAA,OAAA,EAAA;AAAA,IACJ,CAAA;AAAA,IACA,QAAQ,WAAY;AAChB,MAAA,OAAA,EAAA;AACA,MAAA,IAAI,CAAC,WAAW,UAAA,EAAY;AACxB,QAAA,UAAA,CAAW,UAAA,IAAc,UAAA,CAAW,UAAA,CAAW,WAAA,CAAY,UAAU,CAAA;AACrE,QAAA,UAAA,GAAa,IAAA;AAAA,MACjB;AAAA,IACJ;AAAA,GACJ;AACJ,CAAA;;;ACpCO,IAAI,qBAAqB,WAAY;AACxC,EAAA,IAAI,QAAQ,mBAAA,EAAoB;AAChC,EAAA,OAAO,SAAU,QAAQ,SAAA,EAAW;AAChC,IAAME,yBAAU,WAAY;AACxB,MAAA,KAAA,CAAM,IAAI,MAAM,CAAA;AAChB,MAAA,OAAO,WAAY;AACf,QAAA,KAAA,CAAM,MAAA,EAAO;AAAA,MACjB,CAAA;AAAA,IACJ,CAAA,EAAG,CAAC,MAAA,IAAU,SAAS,CAAC,CAAA;AAAA,EAC5B,CAAA;AACJ,CAAA;;;ACdO,IAAI,iBAAiB,WAAY;AACpC,EAAA,IAAI,WAAW,kBAAA,EAAmB;AAClC,EAAA,IAAI,KAAA,GAAQ,SAAU,EAAA,EAAI;AACtB,IAAA,IAAI,MAAA,GAAS,EAAA,CAAG,MAAA,EAAQ,OAAA,GAAU,EAAA,CAAG,OAAA;AACrC,IAAA,QAAA,CAAS,QAAQ,OAAO,CAAA;AACxB,IAAA,OAAO,IAAA;AAAA,EACX,CAAA;AACA,EAAA,OAAO,KAAA;AACX,CAAA;;;ACfO,IAAI,OAAA,GAAU;AAAA,EACjB,IAAA,EAAM,CAAA;AAAA,EACN,GAAA,EAAK,CAAA;AAAA,EACL,KAAA,EAAO,CAAA;AAAA,EACP,GAAA,EAAK;AACT,CAAA;AACA,IAAI,KAAA,GAAQ,SAAUL,EAAAA,EAAG;AAAE,EAAA,OAAO,QAAA,CAASA,EAAAA,IAAK,EAAA,EAAI,EAAE,CAAA,IAAK,CAAA;AAAG,CAAA;AAC9D,IAAI,SAAA,GAAY,SAAU,OAAA,EAAS;AAC/B,EAAA,IAAI,EAAA,GAAK,MAAA,CAAO,gBAAA,CAAiB,QAAA,CAAS,IAAI,CAAA;AAC9C,EAAA,IAAI,IAAA,GAAO,EAAA,CAAG,OAAA,KAAY,SAAA,GAAY,gBAAgB,YAAY,CAAA;AAClE,EAAA,IAAI,GAAA,GAAM,EAAA,CAAG,OAAA,KAAY,SAAA,GAAY,eAAe,WAAW,CAAA;AAC/D,EAAA,IAAI,KAAA,GAAQ,EAAA,CAAG,OAAA,KAAY,SAAA,GAAY,iBAAiB,aAAa,CAAA;AACrE,EAAA,OAAO,CAAC,MAAM,IAAI,CAAA,EAAG,MAAM,GAAG,CAAA,EAAG,KAAA,CAAM,KAAK,CAAC,CAAA;AACjD,CAAA;AACO,IAAI,WAAA,GAAc,SAAU,OAAA,EAAS;AACxC,EAAA,IAAI,YAAY,MAAA,EAAQ;AAAE,IAAA,OAAA,GAAU,QAAA;AAAA,EAAU;AAC9C,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAC/B,IAAA,OAAO,OAAA;AAAA,EACX;AACA,EAAA,IAAI,OAAA,GAAU,UAAU,OAAO,CAAA;AAC/B,EAAA,IAAI,aAAA,GAAgB,SAAS,eAAA,CAAgB,WAAA;AAC7C,EAAA,IAAI,cAAc,MAAA,CAAO,UAAA;AACzB,EAAA,OAAO;AAAA,IACH,IAAA,EAAM,QAAQ,CAAC,CAAA;AAAA,IACf,GAAA,EAAK,QAAQ,CAAC,CAAA;AAAA,IACd,KAAA,EAAO,QAAQ,CAAC,CAAA;AAAA,IAChB,GAAA,EAAK,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,WAAA,GAAc,aAAA,GAAgB,OAAA,CAAQ,CAAC,CAAA,GAAI,OAAA,CAAQ,CAAC,CAAC;AAAA,GAC1E;AACJ,CAAA;;;ACxBA,IAAI,QAAQ,cAAA,EAAe;AACpB,IAAI,aAAA,GAAgB,oBAAA;AAI3B,IAAI,SAAA,GAAY,SAAU,EAAA,EAAI,aAAA,EAAe,SAAS,SAAA,EAAW;AAC7D,EAAA,IAAI,IAAA,GAAO,EAAA,CAAG,IAAA,EAAM,GAAA,GAAM,EAAA,CAAG,KAAK,KAAA,GAAQ,EAAA,CAAG,KAAA,EAAO,GAAA,GAAM,EAAA,CAAG,GAAA;AAC7D,EAAA,IAAI,YAAY,MAAA,EAAQ;AAAE,IAAA,OAAA,GAAU,QAAA;AAAA,EAAU;AAC9C,EAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,qBAAA,EAAuB,0BAA0B,CAAA,CAAE,OAAO,SAAA,EAAW,uBAAuB,CAAA,CAAE,MAAA,CAAO,GAAA,EAAK,KAAK,EAAE,MAAA,CAAO,SAAA,EAAW,iBAAiB,CAAA,CAAE,MAAA,CAAO,aAAA,EAAe,4BAA4B,CAAA,CAAE,MAAA,CAAO,SAAA,EAAW,4CAA4C,CAAA,CAAE,MAAA,CAAO;AAAA,IACnS,aAAA,IAAiB,qBAAA,CAAsB,MAAA,CAAO,SAAA,EAAW,GAAG,CAAA;AAAA,IAC5D,OAAA,KAAY,YACR,sBAAA,CAAuB,MAAA,CAAO,MAAM,wBAAwB,CAAA,CAAE,OAAO,GAAA,EAAK,0BAA0B,EAAE,MAAA,CAAO,KAAA,EAAO,gEAAgE,CAAA,CAAE,MAAA,CAAO,KAAK,KAAK,CAAA,CAAE,MAAA,CAAO,SAAA,EAAW,SAAS,CAAA;AAAA,IACxO,OAAA,KAAY,aAAa,iBAAA,CAAkB,MAAA,CAAO,KAAK,KAAK,CAAA,CAAE,MAAA,CAAO,SAAA,EAAW,GAAG;AAAA,GACvF,CACK,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,EAAE,CAAA,EAAG,gBAAgB,CAAA,CAAE,MAAA,CAAO,kBAAA,EAAoB,iBAAiB,EAAE,MAAA,CAAO,GAAA,EAAK,KAAK,CAAA,CAAE,MAAA,CAAO,SAAA,EAAW,iBAAiB,CAAA,CAAE,OAAO,kBAAA,EAAoB,wBAAwB,CAAA,CAAE,MAAA,CAAO,GAAA,EAAK,KAAK,CAAA,CAAE,MAAA,CAAO,WAAW,iBAAiB,CAAA,CAAE,MAAA,CAAO,kBAAA,EAAoB,IAAI,CAAA,CAAE,MAAA,CAAO,kBAAA,EAAoB,mBAAmB,CAAA,CAAE,MAAA,CAAO,SAAA,EAAW,iBAAiB,CAAA,CAAE,MAAA,CAAO,kBAAA,EAAoB,IAAI,EAAE,MAAA,CAAO,kBAAA,EAAoB,0BAA0B,CAAA,CAAE,MAAA,CAAO,SAAA,EAAW,qBAAqB,CAAA,CAAE,OAAO,aAAA,EAAe,WAAW,CAAA,CAAE,MAAA,CAAO,sBAAA,EAAwB,IAAI,CAAA,CAAE,MAAA,CAAO,KAAK,YAAY,CAAA;AAC/kB,CAAA;AACA,IAAI,uBAAuB,WAAY;AACnC,EAAA,IAAI,OAAA,GAAU,SAAS,QAAA,CAAS,IAAA,CAAK,aAAa,aAAa,CAAA,IAAK,KAAK,EAAE,CAAA;AAC3E,EAAA,OAAO,QAAA,CAAS,OAAO,CAAA,GAAI,OAAA,GAAU,CAAA;AACzC,CAAA;AACO,IAAI,mBAAmB,WAAY;AACtC,EAAMM,yBAAU,WAAY;AACxB,IAAA,QAAA,CAAS,KAAK,YAAA,CAAa,aAAA,EAAA,CAAgB,sBAAqB,GAAI,CAAA,EAAG,UAAU,CAAA;AACjF,IAAA,OAAO,WAAY;AACf,MAAA,IAAI,UAAA,GAAa,sBAAqB,GAAI,CAAA;AAC1C,MAAA,IAAI,cAAc,CAAA,EAAG;AACjB,QAAA,QAAA,CAAS,IAAA,CAAK,gBAAgB,aAAa,CAAA;AAAA,MAC/C,CAAA,MACK;AACD,QAAA,QAAA,CAAS,IAAA,CAAK,YAAA,CAAa,aAAA,EAAe,UAAA,CAAW,UAAU,CAAA;AAAA,MACnE;AAAA,IACJ,CAAA;AAAA,EACJ,CAAA,EAAG,EAAE,CAAA;AACT,CAAA;AAIO,IAAI,eAAA,GAAkB,SAAU,EAAA,EAAI;AACvC,EAAA,IAAI,UAAA,GAAa,EAAA,CAAG,UAAA,EAAY,WAAA,GAAc,EAAA,CAAG,WAAA,EAAa,EAAA,GAAK,EAAA,CAAG,OAAA,EAAS,OAAA,GAAU,EAAA,KAAO,MAAA,GAAS,QAAA,GAAW,EAAA;AACpH,EAAA,gBAAA,EAAiB;AAMjB,EAAA,IAAI,GAAA,GAAYA,uBAAQ,WAAY;AAAE,IAAA,OAAO,YAAY,OAAO,CAAA;AAAA,EAAG,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAC/E,EAAA,OAAaA,cAAA,CAAA,aAAA,CAAc,KAAA,EAAO,EAAE,MAAA,EAAQ,UAAU,GAAA,EAAK,CAAC,UAAA,EAAY,OAAA,EAAS,CAAC,WAAA,GAAc,YAAA,GAAe,EAAE,GAAG,CAAA;AACxH,CAAA;;;ACpDA,IAAI,gBAAA,GAAmB,KAAA;AACvB,IAAI,OAAO,WAAW,WAAA,EAAa;AAC/B,EAAA,IAAI;AACI,IAAA,OAAA,GAAU,MAAA,CAAO,cAAA,CAAe,EAAC,EAAG,SAAA,EAAW;AAAA,MAC/C,KAAK,WAAY;AACb,QAAA,gBAAA,GAAmB,IAAA;AACnB,QAAA,OAAO,IAAA;AAAA,MACX;AAAA,KACH,CAAA;AAED,IAAA,MAAA,CAAO,gBAAA,CAAiB,MAAA,EAAQ,OAAA,EAAS,OAAO,CAAA;AAEhD,IAAA,MAAA,CAAO,mBAAA,CAAoB,MAAA,EAAQ,OAAA,EAAS,OAAO,CAAA;AAAA,EACvD,SACO,GAAA,EAAK;AACR,IAAA,gBAAA,GAAmB,KAAA;AAAA,EACvB;AACJ;AAdY,IAAA,OAAA;AAeL,IAAI,UAAA,GAAa,gBAAA,GAAmB,EAAE,OAAA,EAAS,OAAM,GAAI,KAAA;;;AClBhE,IAAI,oBAAA,GAAuB,SAAU,IAAA,EAAM;AAEvC,EAAA,OAAO,KAAK,OAAA,KAAY,UAAA;AAC5B,CAAA;AACA,IAAI,oBAAA,GAAuB,SAAU,IAAA,EAAM,QAAA,EAAU;AACjD,EAAA,IAAI,EAAE,gBAAgB,OAAA,CAAA,EAAU;AAC5B,IAAA,OAAO,KAAA;AAAA,EACX;AACA,EAAA,IAAI,MAAA,GAAS,MAAA,CAAO,gBAAA,CAAiB,IAAI,CAAA;AACzC,EAAA;AAAA;AAAA,IAEA,MAAA,CAAO,QAAQ,CAAA,KAAM,QAAA;AAAA,IAEjB,EAAE,MAAA,CAAO,SAAA,KAAc,MAAA,CAAO,SAAA,IAAa,CAAC,oBAAA,CAAqB,IAAI,CAAA,IAAK,MAAA,CAAO,QAAQ,CAAA,KAAM,SAAA;AAAA;AACvG,CAAA;AACA,IAAI,uBAAA,GAA0B,SAAU,IAAA,EAAM;AAAE,EAAA,OAAO,oBAAA,CAAqB,MAAM,WAAW,CAAA;AAAG,CAAA;AAChG,IAAI,uBAAA,GAA0B,SAAU,IAAA,EAAM;AAAE,EAAA,OAAO,oBAAA,CAAqB,MAAM,WAAW,CAAA;AAAG,CAAA;AACzF,IAAI,uBAAA,GAA0B,SAAU,IAAA,EAAM,IAAA,EAAM;AACvD,EAAA,IAAI,gBAAgB,IAAA,CAAK,aAAA;AACzB,EAAA,IAAI,OAAA,GAAU,IAAA;AACd,EAAA,GAAG;AAEC,IAAA,IAAI,OAAO,UAAA,KAAe,WAAA,IAAe,OAAA,YAAmB,UAAA,EAAY;AACpE,MAAA,OAAA,GAAU,OAAA,CAAQ,IAAA;AAAA,IACtB;AACA,IAAA,IAAIC,aAAAA,GAAe,sBAAA,CAAuB,IAAA,EAAM,OAAO,CAAA;AACvD,IAAA,IAAIA,aAAAA,EAAc;AACd,MAAA,IAAI,EAAA,GAAK,kBAAA,CAAmB,IAAA,EAAM,OAAO,CAAA,EAAG,YAAA,GAAe,EAAA,CAAG,CAAC,CAAA,EAAG,YAAA,GAAe,EAAA,CAAG,CAAC,CAAA;AACrF,MAAA,IAAI,eAAe,YAAA,EAAc;AAC7B,QAAA,OAAO,IAAA;AAAA,MACX;AAAA,IACJ;AACA,IAAA,OAAA,GAAU,OAAA,CAAQ,UAAA;AAAA,EACtB,CAAA,QAAS,OAAA,IAAW,OAAA,KAAY,aAAA,CAAc,IAAA;AAC9C,EAAA,OAAO,KAAA;AACX,CAAA;AACA,IAAI,mBAAA,GAAsB,SAAU,EAAA,EAAI;AACpC,EAAA,IAAI,YAAY,EAAA,CAAG,SAAA,EAAW,eAAe,EAAA,CAAG,YAAA,EAAc,eAAe,EAAA,CAAG,YAAA;AAChF,EAAA,OAAO;AAAA,IACH,SAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACJ;AACJ,CAAA;AACA,IAAI,mBAAA,GAAsB,SAAU,EAAA,EAAI;AACpC,EAAA,IAAI,aAAa,EAAA,CAAG,UAAA,EAAY,cAAc,EAAA,CAAG,WAAA,EAAa,cAAc,EAAA,CAAG,WAAA;AAC/E,EAAA,OAAO;AAAA,IACH,UAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACJ;AACJ,CAAA;AACA,IAAI,sBAAA,GAAyB,SAAU,IAAA,EAAM,IAAA,EAAM;AAC/C,EAAA,OAAO,SAAS,GAAA,GAAM,uBAAA,CAAwB,IAAI,CAAA,GAAI,wBAAwB,IAAI,CAAA;AACtF,CAAA;AACA,IAAI,kBAAA,GAAqB,SAAU,IAAA,EAAM,IAAA,EAAM;AAC3C,EAAA,OAAO,SAAS,GAAA,GAAM,mBAAA,CAAoB,IAAI,CAAA,GAAI,oBAAoB,IAAI,CAAA;AAC9E,CAAA;AACA,IAAI,kBAAA,GAAqB,SAAU,IAAA,EAAM,SAAA,EAAW;AAMhD,EAAA,OAAO,IAAA,KAAS,GAAA,IAAO,SAAA,KAAc,KAAA,GAAQ,EAAA,GAAK,CAAA;AACtD,CAAA;AACO,IAAI,eAAe,SAAU,IAAA,EAAM,SAAA,EAAW,KAAA,EAAO,aAAa,YAAA,EAAc;AACnF,EAAA,IAAI,kBAAkB,kBAAA,CAAmB,IAAA,EAAM,OAAO,gBAAA,CAAiB,SAAS,EAAE,SAAS,CAAA;AAC3F,EAAA,IAAI,QAAQ,eAAA,GAAkB,WAAA;AAE9B,EAAA,IAAI,SAAS,KAAA,CAAM,MAAA;AACnB,EAAA,IAAI,YAAA,GAAe,SAAA,CAAU,QAAA,CAAS,MAAM,CAAA;AAC5C,EAAA,IAAI,kBAAA,GAAqB,KAAA;AACzB,EAAA,IAAI,kBAAkB,KAAA,GAAQ,CAAA;AAC9B,EAAA,IAAI,eAAA,GAAkB,CAAA;AACtB,EAAA,IAAI,kBAAA,GAAqB,CAAA;AACzB,EAAA,GAAG;AACC,IAAA,IAAI,CAAC,MAAA,EAAQ;AACT,MAAA;AAAA,IACJ;AACA,IAAA,IAAI,EAAA,GAAK,kBAAA,CAAmB,IAAA,EAAM,MAAM,GAAG,QAAA,GAAW,EAAA,CAAG,CAAC,CAAA,EAAG,WAAW,EAAA,CAAG,CAAC,CAAA,EAAG,QAAA,GAAW,GAAG,CAAC,CAAA;AAC9F,IAAA,IAAI,aAAA,GAAgB,QAAA,GAAW,QAAA,GAAW,eAAA,GAAkB,QAAA;AAC5D,IAAA,IAAI,YAAY,aAAA,EAAe;AAC3B,MAAA,IAAI,sBAAA,CAAuB,IAAA,EAAM,MAAM,CAAA,EAAG;AACtC,QAAA,eAAA,IAAmB,aAAA;AACnB,QAAA,kBAAA,IAAsB,QAAA;AAAA,MAC1B;AAAA,IACJ;AACA,IAAA,IAAI,WAAW,MAAA,CAAO,UAAA;AAGtB,IAAA,MAAA,GAAU,YAAY,QAAA,CAAS,QAAA,KAAa,IAAA,CAAK,sBAAA,GAAyB,SAAS,IAAA,GAAO,QAAA;AAAA,EAC9F,CAAA;AAAA;AAAA,IAEC,CAAC,YAAA,IAAgB,MAAA,KAAW,QAAA,CAAS,IAAA;AAAA,IAEjC,YAAA,KAAiB,SAAA,CAAU,QAAA,CAAS,MAAM,KAAK,SAAA,KAAc,MAAA;AAAA;AAElE,EAAA,IAAI,eAAA,KACkB,IAAA,CAAK,GAAA,CAAI,eAAe,IAAI,CAAA,IAAO,KAAyB,CAAA,EAAmB;AACjG,IAAA,kBAAA,GAAqB,IAAA;AAAA,EACzB,CAAA,MAAA,IACS,CAAC,eAAA,KACY,IAAA,CAAK,GAAA,CAAI,kBAAkB,CAAA,GAAI,CAAA,IAAO,KAA0B,CAAA,EAAsB;AACxG,IAAA,kBAAA,GAAqB,IAAA;AAAA,EACzB;AACA,EAAA,OAAO,kBAAA;AACX,CAAA;;;ACrGO,IAAI,UAAA,GAAa,SAAU,KAAA,EAAO;AACrC,EAAA,OAAO,oBAAoB,KAAA,GAAQ,CAAC,KAAA,CAAM,cAAA,CAAe,CAAC,CAAA,CAAE,OAAA,EAAS,KAAA,CAAM,cAAA,CAAe,CAAC,CAAA,CAAE,OAAO,CAAA,GAAI,CAAC,GAAG,CAAC,CAAA;AACjH,CAAA;AACO,IAAI,UAAA,GAAa,SAAU,KAAA,EAAO;AAAE,EAAA,OAAO,CAAC,KAAA,CAAM,MAAA,EAAQ,KAAA,CAAM,MAAM,CAAA;AAAG,CAAA;AAChF,IAAI,UAAA,GAAa,SAAU,GAAA,EAAK;AAC5B,EAAA,OAAO,GAAA,IAAO,SAAA,IAAa,GAAA,GAAM,GAAA,CAAI,OAAA,GAAU,GAAA;AACnD,CAAA;AACA,IAAI,YAAA,GAAe,SAAUP,EAAAA,EAAG,CAAA,EAAG;AAAE,EAAA,OAAOA,EAAAA,CAAE,CAAC,CAAA,KAAM,CAAA,CAAE,CAAC,KAAKA,EAAAA,CAAE,CAAC,CAAA,KAAM,CAAA,CAAE,CAAC,CAAA;AAAG,CAAA;AAC5E,IAAI,aAAA,GAAgB,SAAU,EAAA,EAAI;AAAE,EAAA,OAAO,4BAA4B,MAAA,CAAO,EAAA,EAAI,mDAAmD,CAAA,CAAE,MAAA,CAAO,IAAI,2BAA2B,CAAA;AAAG,CAAA;AAChL,IAAI,SAAA,GAAY,CAAA;AAChB,IAAI,YAAY,EAAC;AACV,SAAS,oBAAoB,KAAA,EAAO;AACvC,EAAA,IAAI,kBAAA,GAA2BQ,cAAA,CAAA,MAAA,CAAO,EAAE,CAAA;AACxC,EAAA,IAAI,aAAA,GAAsBA,cAAA,CAAA,MAAA,CAAO,CAAC,CAAA,EAAG,CAAC,CAAC,CAAA;AACvC,EAAA,IAAI,aAAmBA,cAAA,CAAA,MAAA,EAAO;AAC9B,EAAA,IAAI,EAAA,GAAWA,cAAA,CAAA,QAAA,CAAS,SAAA,EAAW,CAAA,CAAE,CAAC,CAAA;AACtC,EAAA,IAAIC,MAAAA,GAAcD,cAAA,CAAA,QAAA,CAAS,cAAc,CAAA,CAAE,CAAC,CAAA;AAC5C,EAAA,IAAI,SAAA,GAAkBA,sBAAO,KAAK,CAAA;AAClC,EAAMA,yBAAU,WAAY;AACxB,IAAA,SAAA,CAAU,OAAA,GAAU,KAAA;AAAA,EACxB,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AACV,EAAMA,yBAAU,WAAY;AACxB,IAAA,IAAI,MAAM,KAAA,EAAO;AACb,MAAA,QAAA,CAAS,KAAK,SAAA,CAAU,GAAA,CAAI,sBAAA,CAAuB,MAAA,CAAO,EAAE,CAAC,CAAA;AAC7D,MAAA,IAAI,UAAU,aAAA,CAAc,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,EAAA,CAAI,KAAA,CAAM,MAAA,IAAU,IAAI,GAAA,CAAI,UAAU,CAAO,CAAA,CAAE,OAAO,OAAO,CAAA;AAC/G,MAAA,OAAA,CAAQ,OAAA,CAAQ,SAAU,EAAA,EAAI;AAAE,QAAA,OAAO,GAAG,SAAA,CAAU,GAAA,CAAI,sBAAA,CAAuB,MAAA,CAAO,EAAE,CAAC,CAAA;AAAA,MAAG,CAAC,CAAA;AAC7F,MAAA,OAAO,WAAY;AACf,QAAA,QAAA,CAAS,KAAK,SAAA,CAAU,MAAA,CAAO,sBAAA,CAAuB,MAAA,CAAO,EAAE,CAAC,CAAA;AAChE,QAAA,OAAA,CAAQ,OAAA,CAAQ,SAAU,EAAA,EAAI;AAAE,UAAA,OAAO,GAAG,SAAA,CAAU,MAAA,CAAO,sBAAA,CAAuB,MAAA,CAAO,EAAE,CAAC,CAAA;AAAA,QAAG,CAAC,CAAA;AAAA,MACpG,CAAA;AAAA,IACJ;AACA,IAAA;AAAA,EACJ,CAAA,EAAG,CAAC,KAAA,CAAM,KAAA,EAAO,MAAM,OAAA,CAAQ,OAAA,EAAS,KAAA,CAAM,MAAM,CAAC,CAAA;AACrD,EAAA,IAAI,iBAAA,GAA0BA,cAAA,CAAA,WAAA,CAAY,SAAU,KAAA,EAAO,MAAA,EAAQ;AAC/D,IAAA,IAAK,SAAA,IAAa,KAAA,IAAS,KAAA,CAAM,OAAA,CAAQ,MAAA,KAAW,KAAO,KAAA,CAAM,IAAA,KAAS,OAAA,IAAW,KAAA,CAAM,OAAA,EAAU;AACjG,MAAA,OAAO,CAAC,UAAU,OAAA,CAAQ,cAAA;AAAA,IAC9B;AACA,IAAA,IAAI,KAAA,GAAQ,WAAW,KAAK,CAAA;AAC5B,IAAA,IAAI,aAAa,aAAA,CAAc,OAAA;AAC/B,IAAA,IAAI,MAAA,GAAS,YAAY,KAAA,GAAQ,KAAA,CAAM,SAAS,UAAA,CAAW,CAAC,CAAA,GAAI,KAAA,CAAM,CAAC,CAAA;AACvE,IAAA,IAAI,MAAA,GAAS,YAAY,KAAA,GAAQ,KAAA,CAAM,SAAS,UAAA,CAAW,CAAC,CAAA,GAAI,KAAA,CAAM,CAAC,CAAA;AACvE,IAAA,IAAI,WAAA;AACJ,IAAA,IAAI,SAAS,KAAA,CAAM,MAAA;AACnB,IAAA,IAAI,aAAA,GAAgB,KAAK,GAAA,CAAI,MAAM,IAAI,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA,GAAI,GAAA,GAAM,GAAA;AAEhE,IAAA,IAAI,aAAa,KAAA,IAAS,aAAA,KAAkB,GAAA,IAAO,MAAA,CAAO,SAAS,OAAA,EAAS;AACxE,MAAA,OAAO,KAAA;AAAA,IACX;AAEA,IAAA,IAAI,SAAA,GAAY,OAAO,YAAA,EAAa;AACpC,IAAA,IAAI,UAAA,GAAa,aAAa,SAAA,CAAU,UAAA;AACxC,IAAA,IAAI,sBAAsB,UAAA,GAAa,UAAA,KAAe,UAAU,UAAA,CAAW,QAAA,CAAS,MAAM,CAAA,GAAI,KAAA;AAC9F,IAAA,IAAI,mBAAA,EAAqB;AACrB,MAAA,OAAO,KAAA;AAAA,IACX;AACA,IAAA,IAAI,4BAAA,GAA+B,uBAAA,CAAwB,aAAA,EAAe,MAAM,CAAA;AAChF,IAAA,IAAI,CAAC,4BAAA,EAA8B;AAC/B,MAAA,OAAO,IAAA;AAAA,IACX;AACA,IAAA,IAAI,4BAAA,EAA8B;AAC9B,MAAA,WAAA,GAAc,aAAA;AAAA,IAClB,CAAA,MACK;AACD,MAAA,WAAA,GAAc,aAAA,KAAkB,MAAM,GAAA,GAAM,GAAA;AAC5C,MAAA,4BAAA,GAA+B,uBAAA,CAAwB,eAAe,MAAM,CAAA;AAAA,IAEhF;AACA,IAAA,IAAI,CAAC,4BAAA,EAA8B;AAC/B,MAAA,OAAO,KAAA;AAAA,IACX;AACA,IAAA,IAAI,CAAC,UAAA,CAAW,OAAA,IAAW,gBAAA,IAAoB,KAAA,KAAU,UAAU,MAAA,CAAA,EAAS;AACxE,MAAA,UAAA,CAAW,OAAA,GAAU,WAAA;AAAA,IACzB;AACA,IAAA,IAAI,CAAC,WAAA,EAAa;AACd,MAAA,OAAO,IAAA;AAAA,IACX;AACA,IAAA,IAAI,aAAA,GAAgB,WAAW,OAAA,IAAW,WAAA;AAC1C,IAAA,OAAO,YAAA,CAAa,eAAe,MAAA,EAAQ,KAAA,EAAO,kBAAkB,GAAA,GAAM,MAAA,GAAS,MAAY,CAAA;AAAA,EACnG,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,IAAI,aAAA,GAAsBA,cAAA,CAAA,WAAA,CAAY,SAAU,MAAA,EAAQ;AACpD,IAAA,IAAI,KAAA,GAAQ,MAAA;AACZ,IAAA,IAAI,CAAC,UAAU,MAAA,IAAU,SAAA,CAAU,UAAU,MAAA,GAAS,CAAC,MAAMC,MAAAA,EAAO;AAEhE,MAAA;AAAA,IACJ;AACA,IAAA,IAAI,QAAQ,QAAA,IAAY,KAAA,GAAQ,WAAW,KAAK,CAAA,GAAI,WAAW,KAAK,CAAA;AACpE,IAAA,IAAI,WAAA,GAAc,kBAAA,CAAmB,OAAA,CAAQ,MAAA,CAAO,SAAU,CAAA,EAAG;AAAE,MAAA,OAAO,CAAA,CAAE,IAAA,KAAS,KAAA,CAAM,IAAA,KAAS,EAAE,MAAA,KAAW,KAAA,CAAM,MAAA,IAAU,KAAA,CAAM,WAAW,CAAA,CAAE,YAAA,CAAA,IAAiB,YAAA,CAAa,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,IAAG,CAAC,EAAE,CAAC,CAAA;AAEvM,IAAA,IAAI,WAAA,IAAe,YAAY,MAAA,EAAQ;AACnC,MAAA,IAAI,MAAM,UAAA,EAAY;AAClB,QAAA,KAAA,CAAM,cAAA,EAAe;AAAA,MACzB;AACA,MAAA;AAAA,IACJ;AAEA,IAAA,IAAI,CAAC,WAAA,EAAa;AACd,MAAA,IAAI,UAAA,GAAA,CAAc,SAAA,CAAU,OAAA,CAAQ,MAAA,IAAU,EAAC,EAC1C,GAAA,CAAI,UAAU,CAAA,CACd,MAAA,CAAO,OAAO,CAAA,CACd,MAAA,CAAO,SAAU,IAAA,EAAM;AAAE,QAAA,OAAO,IAAA,CAAK,QAAA,CAAS,KAAA,CAAM,MAAM,CAAA;AAAA,MAAG,CAAC,CAAA;AACnE,MAAA,IAAI,UAAA,GAAa,UAAA,CAAW,MAAA,GAAS,CAAA,GAAI,iBAAA,CAAkB,KAAA,EAAO,UAAA,CAAW,CAAC,CAAC,CAAA,GAAI,CAAC,SAAA,CAAU,OAAA,CAAQ,WAAA;AACtG,MAAA,IAAI,UAAA,EAAY;AACZ,QAAA,IAAI,MAAM,UAAA,EAAY;AAClB,UAAA,KAAA,CAAM,cAAA,EAAe;AAAA,QACzB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,IAAI,eAAqBD,cAAA,CAAA,WAAA,CAAY,SAAU,IAAA,EAAM,KAAA,EAAO,QAAQ,MAAA,EAAQ;AACxE,IAAA,IAAI,KAAA,GAAQ,EAAE,IAAA,EAAY,KAAA,EAAc,QAAgB,MAAA,EAAgB,YAAA,EAAc,wBAAA,CAAyB,MAAM,CAAA,EAAE;AACvH,IAAA,kBAAA,CAAmB,OAAA,CAAQ,KAAK,KAAK,CAAA;AACrC,IAAA,UAAA,CAAW,WAAY;AACnB,MAAA,kBAAA,CAAmB,OAAA,GAAU,kBAAA,CAAmB,OAAA,CAAQ,MAAA,CAAO,SAAU,CAAA,EAAG;AAAE,QAAA,OAAO,CAAA,KAAM,KAAA;AAAA,MAAO,CAAC,CAAA;AAAA,IACvG,GAAG,CAAC,CAAA;AAAA,EACR,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,IAAI,gBAAA,GAAyBA,cAAA,CAAA,WAAA,CAAY,SAAU,KAAA,EAAO;AACtD,IAAA,aAAA,CAAc,OAAA,GAAU,WAAW,KAAK,CAAA;AACxC,IAAA,UAAA,CAAW,OAAA,GAAU,MAAA;AAAA,EACzB,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,IAAI,WAAA,GAAoBA,cAAA,CAAA,WAAA,CAAY,SAAU,KAAA,EAAO;AACjD,IAAA,YAAA,CAAa,KAAA,CAAM,IAAA,EAAM,UAAA,CAAW,KAAK,CAAA,EAAG,KAAA,CAAM,MAAA,EAAQ,iBAAA,CAAkB,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAC,CAAA;AAAA,EAC7G,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,IAAI,eAAA,GAAwBA,cAAA,CAAA,WAAA,CAAY,SAAU,KAAA,EAAO;AACrD,IAAA,YAAA,CAAa,KAAA,CAAM,IAAA,EAAM,UAAA,CAAW,KAAK,CAAA,EAAG,KAAA,CAAM,MAAA,EAAQ,iBAAA,CAAkB,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAC,CAAA;AAAA,EAC7G,CAAA,EAAG,EAAE,CAAA;AACL,EAAMA,yBAAU,WAAY;AACxB,IAAA,SAAA,CAAU,KAAKC,MAAK,CAAA;AACpB,IAAA,KAAA,CAAM,YAAA,CAAa;AAAA,MACf,eAAA,EAAiB,WAAA;AAAA,MACjB,cAAA,EAAgB,WAAA;AAAA,MAChB,kBAAA,EAAoB;AAAA,KACvB,CAAA;AACD,IAAA,QAAA,CAAS,gBAAA,CAAiB,OAAA,EAAS,aAAA,EAAe,UAAU,CAAA;AAC5D,IAAA,QAAA,CAAS,gBAAA,CAAiB,WAAA,EAAa,aAAA,EAAe,UAAU,CAAA;AAChE,IAAA,QAAA,CAAS,gBAAA,CAAiB,YAAA,EAAc,gBAAA,EAAkB,UAAU,CAAA;AACpE,IAAA,OAAO,WAAY;AACf,MAAA,SAAA,GAAY,SAAA,CAAU,MAAA,CAAO,SAAU,IAAA,EAAM;AAAE,QAAA,OAAO,IAAA,KAASA,MAAAA;AAAA,MAAO,CAAC,CAAA;AACvE,MAAA,QAAA,CAAS,mBAAA,CAAoB,OAAA,EAAS,aAAA,EAAe,UAAU,CAAA;AAC/D,MAAA,QAAA,CAAS,mBAAA,CAAoB,WAAA,EAAa,aAAA,EAAe,UAAU,CAAA;AACnE,MAAA,QAAA,CAAS,mBAAA,CAAoB,YAAA,EAAc,gBAAA,EAAkB,UAAU,CAAA;AAAA,IAC3E,CAAA;AAAA,EACJ,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,IAAI,eAAA,GAAkB,KAAA,CAAM,eAAA,EAAiB,KAAA,GAAQ,KAAA,CAAM,KAAA;AAC3D,EAAA,OAAcD,cAAA,CAAA,aAAA;AAAA,IAAoBA,cAAA,CAAA,QAAA;AAAA,IAAU,IAAA;AAAA,IACxC,KAAA,GAAcA,6BAAcC,MAAAA,EAAO,EAAE,QAAQ,aAAA,CAAc,EAAE,CAAA,EAAG,CAAA,GAAI,IAAA;AAAA,IACpE,eAAA,GAAwBD,cAAA,CAAA,aAAA,CAAc,eAAA,EAAiB,EAAE,UAAA,EAAY,KAAA,CAAM,UAAA,EAAY,OAAA,EAAS,KAAA,CAAM,OAAA,EAAS,CAAA,GAAI;AAAA,GAAI;AAC/H;AACA,SAAS,yBAAyB,IAAA,EAAM;AACpC,EAAA,IAAI,YAAA,GAAe,IAAA;AACnB,EAAA,OAAO,SAAS,IAAA,EAAM;AAClB,IAAA,IAAI,gBAAgB,UAAA,EAAY;AAC5B,MAAA,YAAA,GAAe,IAAA,CAAK,IAAA;AACpB,MAAA,IAAA,GAAO,IAAA,CAAK,IAAA;AAAA,IAChB;AACA,IAAA,IAAA,GAAO,IAAA,CAAK,UAAA;AAAA,EAChB;AACA,EAAA,OAAO,YAAA;AACX;;;AChKA,IAAO,eAAA,GAAQ,aAAA,CAAc,SAAA,EAAW,mBAAmB,CAAA;;;ACC3D,IAAI,iBAAA,GAA0BE,cAAA,CAAA,UAAA,CAAW,SAAU,KAAA,EAAO,GAAA,EAAK;AAAE,EAAA,OAAcA,cAAA,CAAA,aAAA,CAAc,YAAA,EAAc,QAAA,CAAS,EAAC,EAAG,KAAA,EAAO,EAAE,GAAA,EAAU,OAAA,EAAS,eAAA,EAAS,CAAC,CAAA;AAAI,CAAC,CAAA;AACnK,iBAAA,CAAkB,aAAa,YAAA,CAAa,UAAA;AAC5C,IAAO,mBAAA,GAAQ,iBAAA;;;ACNf,IAAI,gBAAA,GAAmB,SAAU,cAAA,EAAgB;AAC7C,EAAA,IAAI,OAAO,aAAa,WAAA,EAAa;AACjC,IAAA,OAAO,IAAA;AAAA,EACX;AACA,EAAA,IAAI,eAAe,KAAA,CAAM,OAAA,CAAQ,cAAc,CAAA,GAAI,cAAA,CAAe,CAAC,CAAA,GAAI,cAAA;AACvE,EAAA,OAAO,aAAa,aAAA,CAAc,IAAA;AACtC,CAAA;AACA,IAAI,UAAA,uBAAiB,OAAA,EAAQ;AAC7B,IAAI,iBAAA,uBAAwB,OAAA,EAAQ;AACpC,IAAI,YAAY,EAAC;AACjB,IAAI,SAAA,GAAY,CAAA;AAChB,IAAI,UAAA,GAAa,SAAU,IAAA,EAAM;AAC7B,EAAA,OAAO,IAAA,KAAS,IAAA,CAAK,IAAA,IAAQ,UAAA,CAAW,KAAK,UAAU,CAAA,CAAA;AAC3D,CAAA;AACA,IAAI,cAAA,GAAiB,SAAU,MAAA,EAAQ,OAAA,EAAS;AAC5C,EAAA,OAAO,OAAA,CACF,GAAA,CAAI,SAAU,MAAA,EAAQ;AACvB,IAAA,IAAI,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA,EAAG;AACzB,MAAA,OAAO,MAAA;AAAA,IACX;AACA,IAAA,IAAI,eAAA,GAAkB,WAAW,MAAM,CAAA;AACvC,IAAA,IAAI,eAAA,IAAmB,MAAA,CAAO,QAAA,CAAS,eAAe,CAAA,EAAG;AACrD,MAAA,OAAO,eAAA;AAAA,IACX;AACA,IAAA,OAAA,CAAQ,KAAA,CAAM,aAAA,EAAe,MAAA,EAAQ,yBAAA,EAA2B,QAAQ,iBAAiB,CAAA;AACzF,IAAA,OAAO,IAAA;AAAA,EACX,CAAC,CAAA,CACI,MAAA,CAAO,SAAUV,EAAAA,EAAG;AAAE,IAAA,OAAO,QAAQA,EAAC,CAAA;AAAA,EAAG,CAAC,CAAA;AACnD,CAAA;AASA,IAAI,sBAAA,GAAyB,SAAU,cAAA,EAAgB,UAAA,EAAY,YAAY,gBAAA,EAAkB;AAC7F,EAAA,IAAI,OAAA,GAAU,cAAA,CAAe,UAAA,EAAY,KAAA,CAAM,OAAA,CAAQ,cAAc,CAAA,GAAI,cAAA,GAAiB,CAAC,cAAc,CAAC,CAAA;AAC1G,EAAA,IAAI,CAAC,SAAA,CAAU,UAAU,CAAA,EAAG;AACxB,IAAA,SAAA,CAAU,UAAU,CAAA,mBAAI,IAAI,OAAA,EAAQ;AAAA,EACxC;AACA,EAAA,IAAI,aAAA,GAAgB,UAAU,UAAU,CAAA;AACxC,EAAA,IAAI,cAAc,EAAC;AACnB,EAAA,IAAI,cAAA,uBAAqB,GAAA,EAAI;AAC7B,EAAA,IAAI,cAAA,GAAiB,IAAI,GAAA,CAAI,OAAO,CAAA;AACpC,EAAA,IAAI,IAAA,GAAO,SAAU,EAAA,EAAI;AACrB,IAAA,IAAI,CAAC,EAAA,IAAM,cAAA,CAAe,GAAA,CAAI,EAAE,CAAA,EAAG;AAC/B,MAAA;AAAA,IACJ;AACA,IAAA,cAAA,CAAe,IAAI,EAAE,CAAA;AACrB,IAAA,IAAA,CAAK,GAAG,UAAU,CAAA;AAAA,EACtB,CAAA;AACA,EAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA;AACpB,EAAA,IAAI,IAAA,GAAO,SAAU,MAAA,EAAQ;AACzB,IAAA,IAAI,CAAC,MAAA,IAAU,cAAA,CAAe,GAAA,CAAI,MAAM,CAAA,EAAG;AACvC,MAAA;AAAA,IACJ;AACA,IAAA,KAAA,CAAM,UAAU,OAAA,CAAQ,IAAA,CAAK,MAAA,CAAO,QAAA,EAAU,SAAU,IAAA,EAAM;AAC1D,MAAA,IAAI,cAAA,CAAe,GAAA,CAAI,IAAI,CAAA,EAAG;AAC1B,QAAA,IAAA,CAAK,IAAI,CAAA;AAAA,MACb,CAAA,MACK;AACD,QAAA,IAAI;AACA,UAAA,IAAI,IAAA,GAAO,IAAA,CAAK,YAAA,CAAa,gBAAgB,CAAA;AAC7C,UAAA,IAAI,aAAA,GAAgB,IAAA,KAAS,IAAA,IAAQ,IAAA,KAAS,OAAA;AAC9C,UAAA,IAAI,YAAA,GAAA,CAAgB,UAAA,CAAW,GAAA,CAAI,IAAI,KAAK,CAAA,IAAK,CAAA;AACjD,UAAA,IAAI,WAAA,GAAA,CAAe,aAAA,CAAc,GAAA,CAAI,IAAI,KAAK,CAAA,IAAK,CAAA;AACnD,UAAA,UAAA,CAAW,GAAA,CAAI,MAAM,YAAY,CAAA;AACjC,UAAA,aAAA,CAAc,GAAA,CAAI,MAAM,WAAW,CAAA;AACnC,UAAA,WAAA,CAAY,KAAK,IAAI,CAAA;AACrB,UAAA,IAAI,YAAA,KAAiB,KAAK,aAAA,EAAe;AACrC,YAAA,iBAAA,CAAkB,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA,UACpC;AACA,UAAA,IAAI,gBAAgB,CAAA,EAAG;AACnB,YAAA,IAAA,CAAK,YAAA,CAAa,YAAY,MAAM,CAAA;AAAA,UACxC;AACA,UAAA,IAAI,CAAC,aAAA,EAAe;AAChB,YAAA,IAAA,CAAK,YAAA,CAAa,kBAAkB,MAAM,CAAA;AAAA,UAC9C;AAAA,QACJ,SACO,CAAA,EAAG;AACN,UAAA,OAAA,CAAQ,KAAA,CAAM,iCAAA,EAAmC,IAAA,EAAM,CAAC,CAAA;AAAA,QAC5D;AAAA,MACJ;AAAA,IACJ,CAAC,CAAA;AAAA,EACL,CAAA;AACA,EAAA,IAAA,CAAK,UAAU,CAAA;AACf,EAAA,cAAA,CAAe,KAAA,EAAM;AACrB,EAAA,SAAA,EAAA;AACA,EAAA,OAAO,WAAY;AACf,IAAA,WAAA,CAAY,OAAA,CAAQ,SAAU,IAAA,EAAM;AAChC,MAAA,IAAI,YAAA,GAAe,UAAA,CAAW,GAAA,CAAI,IAAI,CAAA,GAAI,CAAA;AAC1C,MAAA,IAAI,WAAA,GAAc,aAAA,CAAc,GAAA,CAAI,IAAI,CAAA,GAAI,CAAA;AAC5C,MAAA,UAAA,CAAW,GAAA,CAAI,MAAM,YAAY,CAAA;AACjC,MAAA,aAAA,CAAc,GAAA,CAAI,MAAM,WAAW,CAAA;AACnC,MAAA,IAAI,CAAC,YAAA,EAAc;AACf,QAAA,IAAI,CAAC,iBAAA,CAAkB,GAAA,CAAI,IAAI,CAAA,EAAG;AAC9B,UAAA,IAAA,CAAK,gBAAgB,gBAAgB,CAAA;AAAA,QACzC;AACA,QAAA,iBAAA,CAAkB,OAAO,IAAI,CAAA;AAAA,MACjC;AACA,MAAA,IAAI,CAAC,WAAA,EAAa;AACd,QAAA,IAAA,CAAK,gBAAgB,UAAU,CAAA;AAAA,MACnC;AAAA,IACJ,CAAC,CAAA;AACD,IAAA,SAAA,EAAA;AACA,IAAA,IAAI,CAAC,SAAA,EAAW;AAEZ,MAAA,UAAA,uBAAiB,OAAA,EAAQ;AACzB,MAAA,UAAA,uBAAiB,OAAA,EAAQ;AACzB,MAAA,iBAAA,uBAAwB,OAAA,EAAQ;AAChC,MAAA,SAAA,GAAY,EAAC;AAAA,IACjB;AAAA,EACJ,CAAA;AACJ,CAAA;AAQO,IAAI,UAAA,GAAa,SAAU,cAAA,EAAgB,UAAA,EAAY,UAAA,EAAY;AACtE,EAAA,IAAI,eAAe,MAAA,EAAQ;AAAE,IAAA,UAAA,GAAa,kBAAA;AAAA,EAAoB;AAC9D,EAAA,IAAI,OAAA,GAAU,KAAA,CAAM,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,cAAc,CAAA,GAAI,cAAA,GAAiB,CAAC,cAAc,CAAC,CAAA;AAC1F,EAAA,IAAI,gBAAA,GAAiC,gBAAA,CAAiB,cAAc,CAAA;AACpE,EAAA,IAAI,CAAC,gBAAA,EAAkB;AACnB,IAAA,OAAO,WAAY;AAAE,MAAA,OAAO,IAAA;AAAA,IAAM,CAAA;AAAA,EACtC;AAGA,EAAA,OAAA,CAAQ,IAAA,CAAK,MAAM,OAAA,EAAS,KAAA,CAAM,KAAK,gBAAA,CAAiB,gBAAA,CAAiB,qBAAqB,CAAC,CAAC,CAAA;AAChG,EAAA,OAAO,sBAAA,CAAuB,OAAA,EAAS,gBAAA,EAAkB,UAAA,EAAY,aAAa,CAAA;AACtF,CAAA;;AC3HkC,SAASW,YAAW,SAAA,EAAmB;AACvE,EAAA,MAAM,SAAA,mBAAYC,gBAAAA,CAAgB,SAAS,CAAA;AAC3C,EAAA,MAAMrC,MAAAA,GAAasC,cAAA,CAAA,UAAA,CAAmC,CAAC,KAAA,EAAO,YAAA,KAAiB;AAC7E,IAAA,MAAM,EAAE,QAAA,EAAU,GAAG,SAAA,EAAU,GAAI,KAAA;AACnC,IAAA,MAAM,aAAA,GAAsBA,cAAA,CAAA,QAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA;AACrD,IAAA,MAAM,SAAA,GAAY,aAAA,CAAc,IAAA,CAAKC,YAAW,CAAA;AAEhD,IAAA,IAAI,SAAA,EAAW;AAEb,MAAA,MAAM,UAAA,GAAa,UAAU,KAAA,CAAM,QAAA;AAEnC,MAAA,MAAM,WAAA,GAAc,aAAA,CAAc,GAAA,CAAI,CAAC,KAAA,KAAU;AAC/C,QAAA,IAAI,UAAU,SAAA,EAAW;AAGvB,UAAA,IAAUD,cAAA,CAAA,QAAA,CAAS,MAAM,UAAU,CAAA,GAAI,GAAG,OAAaA,cAAA,CAAA,QAAA,CAAS,KAAK,IAAI,CAAA;AACzE,UAAA,OAAaA,cAAA,CAAA,cAAA,CAAe,UAAU,CAAA,GACjC,UAAA,CAAW,MAAwC,QAAA,GACpD,IAAA;QACN,CAAA,MAAO;AACL,UAAA,OAAO,KAAA;AACT,QAAA;MACF,CAAC,CAAA;AAED,MAAA,uBACEvD,GAAAA,CAAC,SAAA,EAAA,EAAW,GAAG,SAAA,EAAW,KAAK,YAAA,EAC5B,QAAA,EAAMuD,cAAA,CAAA,cAAA,CAAe,UAAU,IACtBA,cAAA,CAAA,YAAA,CAAa,UAAA,EAAY,QAAW,WAAW,CAAA,GACrD,MACN,CAAA;AAEJ,IAAA;AAEA,IAAA,uBACEvD,IAAC,SAAA,EAAA,EAAW,GAAG,SAAA,EAAW,GAAA,EAAK,YAAA,EAC5B,QAAA,EACH,CAAA;EAEJ,CAAC,CAAA;AAEDiB,EAAAA,MAAAA,CAAK,WAAA,GAAc,CAAA,EAAG,SAAS,CAAA,KAAA,CAAA;AAC/B,EAAA,OAAOA,MAAAA;AACT;;AAY2B,SAASqC,iBAAgB,SAAA,EAAmB;AACrE,EAAA,MAAM,SAAA,GAAkBC,cAAA,CAAA,UAAA,CAAgC,CAAC,KAAA,EAAO,YAAA,KAAiB;AAC/E,IAAA,MAAM,EAAE,QAAA,EAAU,GAAG,SAAA,EAAU,GAAI,KAAA;AAEnC,IAAA,IAAUA,cAAA,CAAA,cAAA,CAAe,QAAQ,CAAA,EAAG;AAClC,MAAA,MAAM,WAAA,GAAcpB,eAAc,QAAQ,CAAA;AAC1C,MAAA,MAAMhB,MAAAA,GAAQsC,WAAAA,CAAW,SAAA,EAAW,QAAA,CAAS,KAAiB,CAAA;AAE9D,MAAA,IAAI,QAAA,CAAS,SAAeF,cAAA,CAAA,QAAA,EAAU;AACpCpC,QAAAA,MAAAA,CAAM,GAAA,GAAM,YAAA,GAAe,WAAA,CAAY,YAAA,EAAc,WAAW,CAAA,GAAI,WAAA;AACtE,MAAA;AACA,MAAA,OAAaoC,cAAA,CAAA,YAAA,CAAa,UAAUpC,MAAK,CAAA;AAC3C,IAAA;AAEA,IAAA,OAAaoC,cAAA,CAAA,QAAA,CAAS,MAAM,QAAQ,CAAA,GAAI,IAAUA,cAAA,CAAA,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA,GAAI,IAAA;EAC1E,CAAC,CAAA;AAED,EAAA,SAAA,CAAU,WAAA,GAAc,GAAG,SAAS,CAAA,UAAA,CAAA;AACpC,EAAA,OAAO,SAAA;AACT;AAMA,IAAMG,qBAAAA,0BAA8B,iBAAiB,CAAA;AAyBrD,SAASF,aACP,KAAA,EAC+D;AAC/D,EAAA,OACQD,cAAA,CAAA,cAAA,CAAe,KAAK,CAAA,IAC1B,OAAO,KAAA,CAAM,IAAA,KAAS,UAAA,IACtB,WAAA,IAAe,KAAA,CAAM,IAAA,IACrB,KAAA,CAAM,IAAA,CAAK,SAAA,KAAcG,qBAAAA;AAE7B;AAEA,SAASD,WAAAA,CAAW,WAAqB,UAAA,EAAsB;AAE7D,EAAA,MAAM,aAAA,GAAgB,EAAE,GAAG,UAAA,EAAW;AAEtC,EAAA,KAAA,MAAW,YAAY,UAAA,EAAY;AACjC,IAAA,MAAM,aAAA,GAAgB,UAAU,QAAQ,CAAA;AACxC,IAAA,MAAM,cAAA,GAAiB,WAAW,QAAQ,CAAA;AAE1C,IAAA,MAAM,SAAA,GAAY,UAAA,CAAW,IAAA,CAAK,QAAQ,CAAA;AAC1C,IAAA,IAAI,SAAA,EAAW;AAEb,MAAA,IAAI,iBAAiB,cAAA,EAAgB;AACnC,QAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,CAAA,GAAI,IAAA,KAAoB;AAChD,UAAA,MAAM,MAAA,GAAS,cAAA,CAAe,GAAG,IAAI,CAAA;AACrC,UAAA,aAAA,CAAc,GAAG,IAAI,CAAA;AACrB,UAAA,OAAO,MAAA;AACT,QAAA,CAAA;AACF,MAAA,CAAA,MAAA,IAES,aAAA,EAAe;AACtB,QAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,aAAA;AAC5B,MAAA;AACF,IAAA,CAAA,MAAA,IAES,aAAa,OAAA,EAAS;AAC7B,MAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,EAAE,GAAG,aAAA,EAAe,GAAG,cAAA,EAAe;AAClE,IAAA,CAAA,MAAA,IAAW,aAAa,WAAA,EAAa;AACnC,MAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,CAAC,aAAA,EAAe,cAAc,EAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AACpF,IAAA;AACF,EAAA;AAEA,EAAA,OAAO,EAAE,GAAG,SAAA,EAAW,GAAG,aAAA,EAAc;AAC1C;AAOA,SAAStB,eAAc,OAAA,EAA6B;AAElD,EAAA,IAAI,SAAS,MAAA,CAAO,wBAAA,CAAyB,OAAA,CAAQ,KAAA,EAAO,KAAK,CAAA,EAAG,GAAA;AACpE,EAAA,IAAI,OAAA,GAAU,MAAA,IAAU,gBAAA,IAAoB,MAAA,IAAU,MAAA,CAAO,cAAA;AAC7D,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAQ,OAAA,CAAgB,GAAA;AAC1B,EAAA;AAGA,EAAA,MAAA,GAAS,MAAA,CAAO,wBAAA,CAAyB,OAAA,EAAS,KAAK,CAAA,EAAG,GAAA;AAC1D,EAAA,OAAA,GAAU,MAAA,IAAU,gBAAA,IAAoB,MAAA,IAAU,MAAA,CAAO,cAAA;AACzD,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAQ,QAAQ,KAAA,CAAuC,GAAA;AACzD,EAAA;AAGA,EAAA,OAAQ,OAAA,CAAQ,KAAA,CAAuC,GAAA,IAAQ,OAAA,CAAgB,GAAA;AACjF;AChKA,IAAM,WAAA,GAAc,QAAA;AAGpB,IAAM,CAAC,mBAAsC,CAAA,GAAI,mBAAmB,WAAW,CAAA;AAc/E,IAAM,CAAC,cAAA,EAAgB,gBAAgB,CAAA,GAAI,oBAAwC,WAAW,CAAA;AAU9F,IAAM,MAAA,GAAgC,CAAC,KAAA,KAAoC;AACzE,EAAA,MAAM;AACJ,IAAA,aAAA;AACA,IAAA,QAAA;IACA,IAAA,EAAM,QAAA;AACN,IAAA,WAAA;AACA,IAAA,YAAA;IACA,KAAA,GAAQ;GACV,GAAI,KAAA;AACJ,EAAA,MAAM,UAAA,GAAmBwB,sBAA0B,IAAI,CAAA;AACvD,EAAA,MAAM,UAAA,GAAmBA,sBAA6B,IAAI,CAAA;AAC1D,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,oBAAA,CAAqB;IAC3C,IAAA,EAAM,QAAA;AACN,IAAA,WAAA,EAAa,WAAA,IAAe,KAAA;IAC5B,QAAA,EAAU,YAAA;IACV,MAAA,EAAQ;GACT,CAAA;AAED,EAAA,uBACE3D,GAAAA;AAAC,IAAA,cAAA;AAAA,IAAA;MACC,KAAA,EAAO,aAAA;AACP,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,SAAA,EAAW,KAAA,EAAM;AACjB,MAAA,OAAA,EAAS,KAAA,EAAM;AACf,MAAA,aAAA,EAAe,KAAA,EAAM;AACrB,MAAA,IAAA;MACA,YAAA,EAAc,OAAA;MACd,YAAA,EAAoB2D,cAAA,CAAA,WAAA,CAAY,MAAM,OAAA,CAAQ,CAAC,QAAA,KAAa,CAAC,QAAQ,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AACjF,MAAA,KAAA;AAEC,MAAA;AAAA;AACH,GAAA;AAEJ,CAAA;AAEA,MAAA,CAAO,WAAA,GAAc,WAAA;AAMrB,IAAM,YAAA,GAAe,eAAA;AAMrB,IAAM,aAAA,GAAsBA,cAAA,CAAA,UAAA;AAC1B,EAAA,CAAC,OAAwC,YAAA,KAAiB;AACxD,IAAA,MAAM,EAAE,aAAA,EAAe,GAAG,YAAA,EAAa,GAAI,KAAA;AAC3C,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,YAAA,EAAc,aAAa,CAAA;AAC5D,IAAA,MAAM,kBAAA,GAAqB,eAAA,CAAgB,YAAA,EAAc,OAAA,CAAQ,UAAU,CAAA;AAC3E,IAAA,uBACE3D,GAAAA;MAAC,SAAA,CAAU,MAAA;AAAV,MAAA;QACC,IAAA,EAAK,QAAA;QACL,eAAA,EAAc,QAAA;AACd,QAAA,eAAA,EAAe,OAAA,CAAQ,IAAA;AACvB,QAAA,eAAA,EAAe,OAAA,CAAQ,SAAA;QACvB,YAAA,EAAY,QAAA,CAAS,QAAQ,IAAI,CAAA;QAChC,GAAG,YAAA;QACJ,GAAA,EAAK,kBAAA;AACL,QAAA,OAAA,EAAS,oBAAA,CAAqB,KAAA,CAAM,OAAA,EAAS,OAAA,CAAQ,YAAY;AAAA;AACnE,KAAA;AAEJ,EAAA;AACF,CAAA;AAEA,aAAA,CAAc,WAAA,GAAc,YAAA;AAM5B,IAAM4D,YAAAA,GAAc,cAAA;AAGpB,IAAM,CAAC,cAAA,EAAgB,gBAAgB,CAAA,GAAI,oBAAwCA,YAAAA,EAAa;EAC9F,UAAA,EAAY;AACd,CAAC,CAAA;AAgBD,IAAM,YAAA,GAA4C,CAAC,KAAA,KAA0C;AAC3F,EAAA,MAAM,EAAE,aAAA,EAAe,UAAA,EAAY,QAAA,EAAU,WAAU,GAAI,KAAA;AAC3D,EAAA,MAAM,OAAA,GAAU,gBAAA,CAAiBA,YAAAA,EAAa,aAAa,CAAA;AAC3D,EAAA,uBACE5D,GAAAA,CAAC,cAAA,EAAA,EAAe,KAAA,EAAO,eAAe,UAAA,EACnC,QAAA,EAAM2D,cAAA,CAAA,QAAA,CAAS,GAAA,CAAI,UAAU,CAAC,KAAA,qBAC7B3D,GAAAA,CAAC,UAAA,EAAS,OAAA,EAAS,UAAA,IAAc,OAAA,CAAQ,MACvC,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAgB,OAAA,EAAO,IAAA,EAAC,SAAA,EACtB,QAAA,EAAA,OACH,CAAA,EACF,CACD,GACH,CAAA;AAEJ,CAAA;AAEA,YAAA,CAAa,WAAA,GAAc4D,YAAAA;AAM3B,IAAM,YAAA,GAAe,eAAA;AAWrB,IAAM,aAAA,GAAsBD,cAAA,CAAA,UAAA;AAC1B,EAAA,CAAC,OAAwC,YAAA,KAAiB;AACxD,IAAA,MAAM,aAAA,GAAgB,gBAAA,CAAiB,YAAA,EAAc,KAAA,CAAM,aAAa,CAAA;AACxE,IAAA,MAAM,EAAE,UAAA,GAAa,aAAA,CAAc,UAAA,EAAY,GAAG,cAAa,GAAI,KAAA;AACnE,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,YAAA,EAAc,KAAA,CAAM,aAAa,CAAA;AAClE,IAAA,OAAO,OAAA,CAAQ,wBACb3D,GAAAA,CAAC,UAAA,EAAS,OAAA,EAAS,UAAA,IAAc,OAAA,CAAQ,IAAA,EACvC,QAAA,kBAAAA,GAAAA,CAAC,iBAAA,EAAA,EAAmB,GAAG,YAAA,EAAc,KAAK,YAAA,EAAc,CAAA,EAC1D,CAAA,GACE,IAAA;AACN,EAAA;AACF,CAAA;AAEA,aAAA,CAAc,WAAA,GAAc,YAAA;AAM5B,IAAM,IAAA,GAAOqD,YAAW,4BAA4B,CAAA;AAEpD,IAAM,iBAAA,GAA0BM,cAAA,CAAA,UAAA;AAC9B,EAAA,CAAC,OAA4C,YAAA,KAAiB;AAC5D,IAAA,MAAM,EAAE,aAAA,EAAe,GAAG,YAAA,EAAa,GAAI,KAAA;AAC3C,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,YAAA,EAAc,aAAa,CAAA;AAC5D,IAAA;;;AAGE,sBAAA3D,GAAAA,CAAC,mBAAA,EAAA,EAAa,EAAA,EAAI,IAAA,EAAM,cAAA,EAAc,IAAA,EAAC,MAAA,EAAQ,CAAC,OAAA,CAAQ,UAAU,CAAA,EAChE,0BAAAA,GAAAA;QAAC,SAAA,CAAU,GAAA;AAAV,QAAA;UACC,YAAA,EAAY,QAAA,CAAS,QAAQ,IAAI,CAAA;UAChC,GAAG,YAAA;UACJ,GAAA,EAAK,YAAA;AAEL,UAAA,KAAA,EAAO,EAAE,aAAA,EAAe,MAAA,EAAQ,GAAG,aAAa,KAAA;AAAM;AACxD,OAAA,EACF;;AAEJ,EAAA;AACF,CAAA;AAMA,IAAM,YAAA,GAAe,eAAA;AAWrB,IAAM,aAAA,GAAsB2D,cAAA,CAAA,UAAA;AAC1B,EAAA,CAAC,OAAwC,YAAA,KAAiB;AACxD,IAAA,MAAM,aAAA,GAAgB,gBAAA,CAAiB,YAAA,EAAc,KAAA,CAAM,aAAa,CAAA;AACxE,IAAA,MAAM,EAAE,UAAA,GAAa,aAAA,CAAc,UAAA,EAAY,GAAG,cAAa,GAAI,KAAA;AACnE,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,YAAA,EAAc,KAAA,CAAM,aAAa,CAAA;AAClE,IAAA,uBACE3D,GAAAA,CAAC,QAAA,EAAA,EAAS,OAAA,EAAS,UAAA,IAAc,OAAA,CAAQ,IAAA,EACtC,QAAA,EAAA,OAAA,CAAQ,KAAA,mBACPA,IAAC,kBAAA,EAAA,EAAoB,GAAG,YAAA,EAAc,GAAA,EAAK,YAAA,EAAc,CAAA,mBAEzDA,GAAAA,CAAC,qBAAA,EAAA,EAAuB,GAAG,YAAA,EAAc,GAAA,EAAK,YAAA,EAAc,GAEhE,CAAA;AAEJ,EAAA;AACF,CAAA;AAEA,aAAA,CAAc,WAAA,GAAc,YAAA;AAQ5B,IAAM,kBAAA,GAA2B2D,cAAA,CAAA,UAAA;AAC/B,EAAA,CAAC,OAA4C,YAAA,KAAiB;AAC5D,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,YAAA,EAAc,KAAA,CAAM,aAAa,CAAA;AAClE,IAAA,MAAM,UAAA,GAAmBA,sBAAuB,IAAI,CAAA;AACpD,IAAA,MAAM,YAAA,GAAe,eAAA,CAAgB,YAAA,EAAc,OAAA,CAAQ,YAAY,UAAU,CAAA;AAG3E,IAAAA,yBAAU,MAAM;AACpB,MAAA,MAAM,UAAU,UAAA,CAAW,OAAA;AAC3B,MAAA,IAAI,OAAA,EAAS,OAAO,UAAA,CAAW,OAAO,CAAA;AACxC,IAAA,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,uBACE3D,GAAAA;AAAC,MAAA,iBAAA;AAAA,MAAA;QACE,GAAG,KAAA;QACJ,GAAA,EAAK,YAAA;AAGL,QAAA,SAAA,EAAW,OAAA,CAAQ,IAAA;QACnB,2BAAA,EAA2B,IAAA;AAC3B,QAAA,gBAAA,EAAkB,oBAAA,CAAqB,KAAA,CAAM,gBAAA,EAAkB,CAAC,KAAA,KAAU;AACxE,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA,OAAA,CAAQ,UAAA,CAAW,SAAS,KAAA,EAAM;QACpC,CAAC,CAAA;AACD,QAAA,oBAAA,EAAsB,oBAAA,CAAqB,KAAA,CAAM,oBAAA,EAAsB,CAAC,KAAA,KAAU;AAChF,UAAA,MAAM,aAAA,GAAgB,MAAM,MAAA,CAAO,aAAA;AACnC,UAAA,MAAM,aAAA,GAAgB,aAAA,CAAc,MAAA,KAAW,CAAA,IAAK,cAAc,OAAA,KAAY,IAAA;AAC9E,UAAA,MAAM,YAAA,GAAe,aAAA,CAAc,MAAA,KAAW,CAAA,IAAK,aAAA;AAInD,UAAA,IAAI,YAAA,QAAoB,cAAA,EAAe;QACzC,CAAC,CAAA;QAGD,cAAA,EAAgB,oBAAA;UAAqB,KAAA,CAAM,cAAA;UAAgB,CAAC,KAAA,KAC1D,MAAM,cAAA;AACR;AAAA;AACF,KAAA;AAEJ,EAAA;AACF,CAAA;AAIA,IAAM,qBAAA,GAA8B2D,cAAA,CAAA,UAAA;AAClC,EAAA,CAAC,OAA4C,YAAA,KAAiB;AAC5D,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,YAAA,EAAc,KAAA,CAAM,aAAa,CAAA;AAClE,IAAA,MAAM,uBAAA,GAAgCA,sBAAO,KAAK,CAAA;AAClD,IAAA,MAAM,wBAAA,GAAiCA,sBAAO,KAAK,CAAA;AAEnD,IAAA,uBACE3D,GAAAA;AAAC,MAAA,iBAAA;AAAA,MAAA;QACE,GAAG,KAAA;QACJ,GAAA,EAAK,YAAA;QACL,SAAA,EAAW,KAAA;QACX,2BAAA,EAA6B,KAAA;AAC7B,QAAA,gBAAA,EAAkB,CAAC,KAAA,KAAU;AAC3B,UAAA,KAAA,CAAM,mBAAmB,KAAK,CAAA;AAE9B,UAAA,IAAI,CAAC,MAAM,gBAAA,EAAkB;AAC3B,YAAA,IAAI,CAAC,uBAAA,CAAwB,OAAA,EAAS,OAAA,CAAQ,UAAA,CAAW,SAAS,KAAA,EAAM;AAExE,YAAA,KAAA,CAAM,cAAA,EAAe;AACvB,UAAA;AAEA,UAAA,uBAAA,CAAwB,OAAA,GAAU,KAAA;AAClC,UAAA,wBAAA,CAAyB,OAAA,GAAU,KAAA;AACrC,QAAA,CAAA;AACA,QAAA,iBAAA,EAAmB,CAAC,KAAA,KAAU;AAC5B,UAAA,KAAA,CAAM,oBAAoB,KAAK,CAAA;AAE/B,UAAA,IAAI,CAAC,MAAM,gBAAA,EAAkB;AAC3B,YAAA,uBAAA,CAAwB,OAAA,GAAU,IAAA;AAClC,YAAA,IAAI,KAAA,CAAM,MAAA,CAAO,aAAA,CAAc,IAAA,KAAS,aAAA,EAAe;AACrD,cAAA,wBAAA,CAAyB,OAAA,GAAU,IAAA;AACrC,YAAA;AACF,UAAA;AAKA,UAAA,MAAM,SAAS,KAAA,CAAM,MAAA;AACrB,UAAA,MAAM,eAAA,GAAkB,OAAA,CAAQ,UAAA,CAAW,OAAA,EAAS,SAAS,MAAM,CAAA;AACnE,UAAA,IAAI,eAAA,QAAuB,cAAA,EAAe;AAM1C,UAAA,IAAI,MAAM,MAAA,CAAO,aAAA,CAAc,IAAA,KAAS,SAAA,IAAa,yBAAyB,OAAA,EAAS;AACrF,YAAA,KAAA,CAAM,cAAA,EAAe;AACvB,UAAA;AACF,QAAA;AAAA;AACF,KAAA;AAEJ,EAAA;AACF,CAAA;AA4BA,IAAM,iBAAA,GAA0B2D,cAAA,CAAA,UAAA;AAC9B,EAAA,CAAC,OAA4C,YAAA,KAAiB;AAC5D,IAAA,MAAM,EAAE,aAAA,EAAe,SAAA,EAAW,iBAAiB,gBAAA,EAAkB,GAAG,cAAa,GAAI,KAAA;AACzF,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,YAAA,EAAc,aAAa,CAAA;AAC5D,IAAA,MAAM,UAAA,GAAmBA,sBAAuB,IAAI,CAAA;AACpD,IAAA,MAAM,YAAA,GAAe,eAAA,CAAgB,YAAA,EAAc,UAAU,CAAA;AAI7D,IAAA,cAAA,EAAe;AAEf,IAAA,uBACE1D,IAAAA,CAAA4D,QAAAA,EAAA,EACE,QAAA,EAAA;sBAAA7D,GAAAA;AAAC,QAAA,UAAA;AAAA,QAAA;UACC,OAAA,EAAO,IAAA;UACP,IAAA,EAAI,IAAA;UACJ,OAAA,EAAS,SAAA;UACT,gBAAA,EAAkB,eAAA;UAClB,kBAAA,EAAoB,gBAAA;AAEpB,UAAA,QAAA,kBAAAA,GAAAA;AAAC,YAAA,gBAAA;AAAA,YAAA;cACC,IAAA,EAAK,QAAA;AACL,cAAA,EAAA,EAAI,OAAA,CAAQ,SAAA;AACZ,cAAA,kBAAA,EAAkB,OAAA,CAAQ,aAAA;AAC1B,cAAA,iBAAA,EAAiB,OAAA,CAAQ,OAAA;cACzB,YAAA,EAAY,QAAA,CAAS,QAAQ,IAAI,CAAA;cAChC,GAAG,YAAA;cACJ,GAAA,EAAK,YAAA;cACL,SAAA,EAAW,MAAM,OAAA,CAAQ,YAAA,CAAa,KAAK;AAAA;AAC7C;AAAA;AACF,OAAA;sBAEEC,IAAAA,CAAA4D,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA7D,IAAC,YAAA,EAAA,EAAa,OAAA,EAAS,OAAA,CAAQ,SAAS,CAAA;AACxC,wBAAAA,IAAC,kBAAA,EAAA,EAAmB,YAAwB,aAAA,EAAe,OAAA,CAAQ,eAAe;AAAA,OAAA,EACpF;AAAA,KAAA,EAEJ,CAAA;AAEJ,EAAA;AACF,CAAA;AAMA,IAAM,UAAA,GAAa,aAAA;AAMnB,IAAM,WAAA,GAAoB2D,cAAA,CAAA,UAAA;AACxB,EAAA,CAAC,OAAsC,YAAA,KAAiB;AACtD,IAAA,MAAM,EAAE,aAAA,EAAe,GAAG,UAAA,EAAW,GAAI,KAAA;AACzC,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,UAAA,EAAY,aAAa,CAAA;AAC1D,IAAA,uBAAO3D,GAAAA,CAAC,SAAA,CAAU,EAAA,EAAV,EAAa,EAAA,EAAI,OAAA,CAAQ,OAAA,EAAU,GAAG,UAAA,EAAY,GAAA,EAAK,YAAA,EAAc,CAAA;AAC/E,EAAA;AACF,CAAA;AAEA,WAAA,CAAY,WAAA,GAAc,UAAA;AAM1B,IAAM,gBAAA,GAAmB,mBAAA;AAMzB,IAAM,iBAAA,GAA0B2D,cAAA,CAAA,UAAA;AAC9B,EAAA,CAAC,OAA4C,YAAA,KAAiB;AAC5D,IAAA,MAAM,EAAE,aAAA,EAAe,GAAG,gBAAA,EAAiB,GAAI,KAAA;AAC/C,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,gBAAA,EAAkB,aAAa,CAAA;AAChE,IAAA,uBAAO3D,GAAAA,CAAC,SAAA,CAAU,CAAA,EAAV,EAAY,EAAA,EAAI,OAAA,CAAQ,aAAA,EAAgB,GAAG,gBAAA,EAAkB,GAAA,EAAK,YAAA,EAAc,CAAA;AAC1F,EAAA;AACF,CAAA;AAEA,iBAAA,CAAkB,WAAA,GAAc,gBAAA;AAMhC,IAAM,UAAA,GAAa,aAAA;AAKnB,IAAM,WAAA,GAAoB2D,cAAA,CAAA,UAAA;AACxB,EAAA,CAAC,OAAsC,YAAA,KAAiB;AACtD,IAAA,MAAM,EAAE,aAAA,EAAe,GAAG,UAAA,EAAW,GAAI,KAAA;AACzC,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,UAAA,EAAY,aAAa,CAAA;AAC1D,IAAA,uBACE3D,GAAAA;MAAC,SAAA,CAAU,MAAA;AAAV,MAAA;QACC,IAAA,EAAK,QAAA;QACJ,GAAG,UAAA;QACJ,GAAA,EAAK,YAAA;AACL,QAAA,OAAA,EAAS,qBAAqB,KAAA,CAAM,OAAA,EAAS,MAAM,OAAA,CAAQ,YAAA,CAAa,KAAK,CAAC;AAAA;AAChF,KAAA;AAEJ,EAAA;AACF,CAAA;AAEA,WAAA,CAAY,WAAA,GAAc,UAAA;AAI1B,SAAS,SAAS,IAAA,EAAe;AAC/B,EAAA,OAAO,OAAO,MAAA,GAAS,QAAA;AACzB;AAEA,IAAM,kBAAA,GAAqB,oBAAA;AAE3B,IAAM,CAAC,eAAA,EAAiB,iBAAiB,CAAA,GAAI,eAAc,kBAAA,EAAoB;EAC7E,WAAA,EAAa,YAAA;EACb,SAAA,EAAW,UAAA;EACX,QAAA,EAAU;AACZ,CAAC,CAAA;AAID,IAAM,YAAA,GAA4C,CAAC,EAAE,OAAA,EAAQ,KAAM;AACjE,EAAA,MAAM,mBAAA,GAAsB,kBAAkB,kBAAkB,CAAA;AAEhE,EAAA,MAAM,UAAU,CAAA,EAAA,EAAK,mBAAA,CAAoB,WAAW,CAAA,gBAAA,EAAmB,oBAAoB,SAAS,CAAA;;AAE1E,0BAAA,EAAA,mBAAA,CAAoB,SAAS,CAAA;;AAEmB,0EAAA,EAAA,mBAAA,CAAoB,QAAQ,CAAA,CAAA;AAEhG,EAAA2D,yBAAU,MAAM;AACpB,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,MAAM,QAAA,GAAW,QAAA,CAAS,cAAA,CAAe,OAAO,CAAA;AAChD,MAAA,IAAI,CAAC,QAAA,EAAU,OAAA,CAAQ,KAAA,CAAM,OAAO,CAAA;AACtC,IAAA;EACF,CAAA,EAAG,CAAC,OAAA,EAAS,OAAO,CAAC,CAAA;AAErB,EAAA,OAAO,IAAA;AACT,CAAA;AAEA,IAAM,wBAAA,GAA2B,0BAAA;AAOjC,IAAM,kBAAA,GAAwD,CAAC,EAAE,UAAA,EAAY,eAAc,KAAM;AAC/F,EAAA,MAAM,yBAAA,GAA4B,kBAAkB,wBAAwB,CAAA;AAC5E,EAAA,MAAM,OAAA,GAAU,CAAA,0EAAA,EAA6E,yBAAA,CAA0B,WAAW,CAAA,EAAA,CAAA;AAE5H,EAAAA,yBAAU,MAAM;AACpB,IAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,OAAA,EAAS,YAAA,CAAa,kBAAkB,CAAA;AAEzE,IAAA,IAAI,iBAAiB,aAAA,EAAe;AAClC,MAAA,MAAM,cAAA,GAAiB,QAAA,CAAS,cAAA,CAAe,aAAa,CAAA;AAC5D,MAAA,IAAI,CAAC,cAAA,EAAgB,OAAA,CAAQ,IAAA,CAAK,OAAO,CAAA;AAC3C,IAAA;AACF,EAAA,CAAA,EAAG,CAAC,OAAA,EAAS,UAAA,EAAY,aAAa,CAAC,CAAA;AAEvC,EAAA,OAAO,IAAA;AACT,CAAA;AAEA,IAAM,IAAA,GAAO,MAAA;AACb,IAAM,OAAA,GAAU,aAAA;AAChB,IAAMG,OAAAA,GAAS,YAAA;AACf,IAAM,OAAA,GAAU,aAAA;AAChB,IAAM,OAAA,GAAU,aAAA;AAChB,IAAM,KAAA,GAAQ,WAAA;AACd,IAAM,WAAA,GAAc,iBAAA;AACpB,IAAM,KAAA,GAAQ,WAAA;ACriBd,SAASC,OAAAA,CAAO,EAAE,GAAG,KAAA,EAAM,EAAsD;AAC/E,EAAA,uBAAO/D,GAAAA,CAAiB,IAAA,EAAhB,EAAqB,WAAA,EAAU,QAAA,EAAU,GAAG,KAAA,EAAO,CAAA;AAC7D;AAEA,SAASgE,cAAAA,CAAc,EAAE,GAAG,KAAA,EAAM,EAAyD;AACzF,EAAA,uBAAOhE,GAAAA,CAAiB,OAAA,EAAhB,EAAwB,WAAA,EAAU,gBAAA,EAAkB,GAAG,KAAA,EAAO,CAAA;AACxE;AAEA,SAASiE,aAAAA,CAAa,EAAE,GAAG,KAAA,EAAM,EAAwD;AACvF,EAAA,uBAAOjE,GAAAA,CAAiB8D,OAAAA,EAAhB,EAAuB,WAAA,EAAU,eAAA,EAAiB,GAAG,KAAA,EAAO,CAAA;AACtE;AAMA,SAASI,cAAAA,CAAc;AAAA,EACrB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyD;AACvD,EAAA,uBACElE,GAAAA;AAAA,IAAiB,OAAA;AAAA,IAAhB;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,wJAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAASmE,cAAAA,CAAc;AAAA,EACrB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA,GAAkB,IAAA;AAAA,EAClB,GAAG;AACL,CAAA,EAAyF;AACvF,EAAA,uBACElE,IAAAA,CAACgE,aAAAA,EAAA,EAAa,aAAU,eAAA,EACtB,QAAA,EAAA;AAAA,oBAAAjE,GAAAA,CAACkE,gBAAA,EAAc,CAAA;AAAA,oBACfjE,IAAAA;AAAA,MAAiB,OAAA;AAAA,MAAhB;AAAA,QACC,WAAA,EAAU,gBAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,6WAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,UACA,mCACCA,IAAAA;AAAA,YAAiB,KAAA;AAAA,YAAhB;AAAA,cACC,WAAA,EAAU,cAAA;AAAA,cACV,SAAA,EAAU,mWAAA;AAAA,cAEV,QAAA,EAAA;AAAA,gCAAAD,IAAC,CAAA,EAAA,EAAM,CAAA;AAAA,gCACPA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,OAAA,EAAK;AAAA;AAAA;AAAA;AACjC;AAAA;AAAA;AAEJ,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC1E,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,eAAA,EAAgB,SAAA,EAAW,EAAA,CAAG,8CAAA,EAAgD,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAExH;AAQA,SAASoE,YAAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAuD;AAChG,EAAA,uBACEpE,GAAAA,CAAiB,KAAA,EAAhB,EAAsB,WAAA,EAAU,cAAA,EAAe,SAAA,EAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAE/H;AAEA,SAASqE,kBAAAA,CAAkB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA6D;AAC5G,EAAA,uBACErE,GAAAA,CAAiB,WAAA,EAAhB,EAA4B,WAAA,EAAU,oBAAA,EAAqB,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAEtI;AC5FA,SAAS,YAAY,IAAA,EAAM;AACzB,EAAA,IAAa,OAAO,QAAA,IAAY,WAAA,EAAa;AAC7C,EAAA,IAAI,OAAO,QAAA,CAAS,IAAA,IAAQ,SAAS,oBAAA,CAAqB,MAAM,EAAE,CAAC,CAAA;AACnE,EAAA,IAAI,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAC1C,EAAA,KAAA,CAAM,IAAA,GAAO,UAAA;AACb,EAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AACrB,EAAA,KAAA,CAAM,UAAA,GAAc,KAAA,CAAM,UAAA,CAAW,OAAA,GAAU,IAAA,GAAQ,MAAM,WAAA,CAAY,QAAA,CAAS,cAAA,CAAe,IAAI,CAAC,CAAA;AACzG;AAMA,IAAM,aAAA,GAAgBsE,wBAAe,aAAA,CAAc;AAAA,EAC/C,SAAA,EAAW;AAAA,IACP,OAAA,EAAS;AAAA,GACb;AAAA,EACA,UAAA,EAAY;AAAA,IACR,OAAA,EAAS;AAAA,GACb;AAAA,EACA,SAAS,MAAI;AAAA,EAAC,CAAA;AAAA,EACd,WAAW,MAAI;AAAA,EAAC,CAAA;AAAA,EAChB,QAAQ,MAAI;AAAA,EAAC,CAAA;AAAA,EACb,cAAc,MAAI;AAAA,EAAC,CAAA;AAAA,EACnB,oBAAoB,MAAI;AAAA,EAAC,CAAA;AAAA,EACzB,iBAAiB,MAAI;AAAA,EAAC,CAAA;AAAA,EACtB,QAAA,EAAU,MAAA;AAAA,EACV,WAAA,EAAa,KAAA;AAAA,EACb,MAAA,EAAQ,KAAA;AAAA,EACR,UAAA,EAAY,KAAA;AAAA,EACZ,cAAA,EAAgB;AAAA,IACZ,OAAA,EAAS;AAAA,GACb;AAAA,EACA,gBAAA,EAAkB,IAAA;AAAA,EAClB,UAAA,EAAY,IAAA;AAAA,EACZ,UAAA,EAAY,KAAA;AAAA,EACZ,KAAA,EAAO,KAAA;AAAA,EACP,UAAA,EAAY,KAAA;AAAA,EACZ,eAAA,EAAiB,IAAA;AAAA,EACjB,cAAc,MAAI;AAAA,EAAC,CAAA;AAAA,EACnB,oBAAoB,MAAI;AAAA,EAAC,CAAA;AAAA,EACzB,aAAa,MAAI;AAAA,EAAC,CAAA;AAAA,EAClB,SAAA,EAAW,QAAA;AAAA,EACX,aAAA,EAAe;AAAA,IACX,OAAA,EAAS;AAAA,GACb;AAAA,EACA,qBAAA,EAAuB,KAAA;AAAA,EACvB,yBAAA,EAA2B,IAAA;AAAA,EAC3B,YAAA,EAAc,KAAA;AAAA,EACd,SAAA,EAAW,IAAA;AAAA,EACX,SAAA,EAAW;AACf,CAAC,CAAA;AACD,IAAM,mBAAmB,MAAI;AACzB,EAAA,MAAM,OAAA,GAAUA,uBAAA,CAAe,UAAA,CAAW,aAAa,CAAA;AACvD,EAAA,IAAI,CAAC,OAAA,EAAS;AACV,IAAA,MAAM,IAAI,MAAM,oDAAoD,CAAA;AAAA,EACxE;AACA,EAAA,OAAO,OAAA;AACX,CAAA;AAEA,WAAA,CAAY,igKAAigK,CAAA;AAE7gK,SAAS,eAAA,GAAkB;AACvB,EAAA,MAAM,YAAY,SAAA,CAAU,SAAA;AAC5B,EAAA,OAAO,OAAO,WAAW,WAAA,KAAgB,SAAA,CAAU,KAAK,SAAS,CAAA,IAAK,QAAA,CAAS,IAAA,CAAK,SAAS,CAAA;AAAA,EAC7F,OAAA,CAAQ,KAAK,SAAS,CAAA,CAAA;AAE1B;AACA,SAAS,KAAA,GAAQ;AACb,EAAA,OAAO,aAAa,MAAM,CAAA;AAC9B;AACA,SAAS,QAAA,GAAW;AAChB,EAAA,OAAO,aAAa,SAAS,CAAA;AACjC;AACA,SAAS,QAAA,GAAW;AAChB,EAAA,OAAO,gCAAA,CAAiC,IAAA,CAAK,SAAA,CAAU,SAAS,CAAA;AACpE;AACA,SAAS,MAAA,GAAS;AACd,EAAA,OAAO,aAAa,OAAO,CAAA;AAAA,EAC3B,KAAA,EAAM,IAAK,SAAA,CAAU,cAAA,GAAiB,CAAA;AAC1C;AACA,SAAS,KAAA,GAAQ;AACb,EAAA,OAAO,QAAA,MAAc,MAAA,EAAO;AAChC;AACA,SAAS,aAAa,EAAA,EAAI;AACtB,EAAA,OAAO,OAAO,MAAA,KAAW,WAAA,IAAe,MAAA,CAAO,SAAA,IAAa,IAAA,GAAO,EAAA,CAAG,IAAA,CAAK,MAAA,CAAO,SAAA,CAAU,QAAQ,CAAA,GAAI,MAAA;AAC5G;AAGA,IAAM,eAAA,GAAkB,EAAA;AACxB,IAAMC,0BAAAA,GAA4B,OAAO,MAAA,KAAW,WAAA,GAAc1D,eAAAA,GAAkB2D,SAAAA;AACpF,SAAS,WAAW,SAAA,EAAW;AAC3B,EAAA,OAAO,IAAI,IAAA,KAAO;AACd,IAAA,KAAA,IAAS,YAAY,SAAA,EAAU;AAC3B,MAAA,IAAI,OAAO,aAAa,UAAA,EAAY;AAChC,QAAA,QAAA,CAAS,GAAG,IAAI,CAAA;AAAA,MACpB;AAAA,IACJ;AAAA,EACJ,CAAA;AACJ;AAEA,IAAM,cAAA,GAAiB,OAAO,QAAA,KAAa,WAAA,IAAe,MAAA,CAAO,cAAA;AACjE,SAAS,aAAa,IAAA,EAAM;AACxB,EAAA,IAAI,KAAA,GAAQ,MAAA,CAAO,gBAAA,CAAiB,IAAI,CAAA;AACxC,EAAA,OAAO,gBAAgB,IAAA,CAAK,KAAA,CAAM,WAAW,KAAA,CAAM,SAAA,GAAY,MAAM,SAAS,CAAA;AAClF;AACA,SAAS,gBAAgB,IAAA,EAAM;AAC3B,EAAA,IAAI,YAAA,CAAa,IAAI,CAAA,EAAG;AACpB,IAAA,IAAA,GAAO,IAAA,CAAK,aAAA;AAAA,EAChB;AACA,EAAA,OAAM,IAAA,IAAQ,CAAC,YAAA,CAAa,IAAI,CAAA,EAAE;AAC9B,IAAA,IAAA,GAAO,IAAA,CAAK,aAAA;AAAA,EAChB;AACA,EAAA,OAAO,IAAA,IAAQ,QAAA,CAAS,gBAAA,IAAoB,QAAA,CAAS,eAAA;AACzD;AAEA,IAAM,iBAAA,uBAAwB,GAAA,CAAI;AAAA,EAC9B,UAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA;AACJ,CAAC,CAAA;AAED,IAAI,kBAAA,GAAqB,CAAA;AACzB,IAAI,OAAA;AAKA,SAAS,gBAAA,CAAiB,OAAA,GAAU,EAAC,EAAG;AACxC,EAAA,IAAI,EAAE,YAAW,GAAI,OAAA;AACrB,EAAAD,2BAA0B,MAAI;AAC1B,IAAA,IAAI,UAAA,EAAY;AACZ,MAAA;AAAA,IACJ;AACA,IAAA,kBAAA,EAAA;AACA,IAAA,IAAI,uBAAuB,CAAA,EAAG;AAC1B,MAAA,IAAI,OAAM,EAAG;AACT,QAAA,OAAA,GAAU,yBAAA,EAA0B;AAAA,MACxC;AAAA,IACJ;AACA,IAAA,OAAO,MAAI;AACP,MAAA,kBAAA,EAAA;AACA,MAAA,IAAI,uBAAuB,CAAA,EAAG;AAC1B,QAAA,OAAA,IAAW,IAAA,GAAO,SAAS,OAAA,EAAQ;AAAA,MACvC;AAAA,IACJ,CAAA;AAAA,EACJ,CAAA,EAAG;AAAA,IACC;AAAA,GACH,CAAA;AACL;AA2BA,SAAS,yBAAA,GAA4B;AACjC,EAAA,IAAI,UAAA;AACJ,EAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,EAAA,IAAI,YAAA,GAAe,CAAC,CAAA,KAAI;AAEpB,IAAA,UAAA,GAAa,eAAA,CAAgB,EAAE,MAAM,CAAA;AACrC,IAAA,IAAI,UAAA,KAAe,QAAA,CAAS,eAAA,IAAmB,UAAA,KAAe,SAAS,IAAA,EAAM;AACzE,MAAA;AAAA,IACJ;AACA,IAAA,KAAA,GAAQ,CAAA,CAAE,cAAA,CAAe,CAAC,CAAA,CAAE,KAAA;AAAA,EAChC,CAAA;AACA,EAAA,IAAI,WAAA,GAAc,CAAC,CAAA,KAAI;AAEnB,IAAA,IAAI,CAAC,UAAA,IAAc,UAAA,KAAe,SAAS,eAAA,IAAmB,UAAA,KAAe,SAAS,IAAA,EAAM;AACxF,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA;AAAA,IACJ;AAKA,IAAA,IAAI,CAAA,GAAI,CAAA,CAAE,cAAA,CAAe,CAAC,CAAA,CAAE,KAAA;AAC5B,IAAA,IAAI,YAAY,UAAA,CAAW,SAAA;AAC3B,IAAA,IAAI,MAAA,GAAS,UAAA,CAAW,YAAA,GAAe,UAAA,CAAW,YAAA;AAClD,IAAA,IAAI,WAAW,CAAA,EAAG;AACd,MAAA;AAAA,IACJ;AACA,IAAA,IAAI,aAAa,CAAA,IAAK,CAAA,GAAI,SAAS,SAAA,IAAa,MAAA,IAAU,IAAI,KAAA,EAAO;AACjE,MAAA,CAAA,CAAE,cAAA,EAAe;AAAA,IACrB;AACA,IAAA,KAAA,GAAQ,CAAA;AAAA,EACZ,CAAA;AACA,EAAA,IAAI,UAAA,GAAa,CAAC,CAAA,KAAI;AAClB,IAAA,IAAI,SAAS,CAAA,CAAE,MAAA;AAEf,IAAA,IAAI,OAAA,CAAQ,MAAM,CAAA,IAAK,MAAA,KAAW,SAAS,aAAA,EAAe;AACtD,MAAA,CAAA,CAAE,cAAA,EAAe;AAIjB,MAAA,MAAA,CAAO,MAAM,SAAA,GAAY,qBAAA;AACzB,MAAA,MAAA,CAAO,KAAA,EAAM;AACb,MAAA,qBAAA,CAAsB,MAAI;AACtB,QAAA,MAAA,CAAO,MAAM,SAAA,GAAY,EAAA;AAAA,MAC7B,CAAC,CAAA;AAAA,IACL;AAAA,EACJ,CAAA;AACA,EAAA,IAAI,OAAA,GAAU,CAAC,CAAA,KAAI;AACf,IAAA,IAAI,SAAS,CAAA,CAAE,MAAA;AACf,IAAA,IAAI,OAAA,CAAQ,MAAM,CAAA,EAAG;AAKjB,MAAA,MAAA,CAAO,MAAM,SAAA,GAAY,qBAAA;AACzB,MAAA,qBAAA,CAAsB,MAAI;AACtB,QAAA,MAAA,CAAO,MAAM,SAAA,GAAY,EAAA;AAGzB,QAAA,IAAI,cAAA,EAAgB;AAChB,UAAA,IAAI,cAAA,CAAe,MAAA,GAAS,MAAA,CAAO,WAAA,EAAa;AAG5C,YAAA,qBAAA,CAAsB,MAAI;AACtB,cAAA,cAAA,CAAe,MAAM,CAAA;AAAA,YACzB,CAAC,CAAA;AAAA,UACL,CAAA,MAAO;AAGH,YAAA,cAAA,CAAe,gBAAA,CAAiB,QAAA,EAAU,MAAI,cAAA,CAAe,MAAM,CAAA,EAAG;AAAA,cAClE,IAAA,EAAM;AAAA,aACT,CAAA;AAAA,UACL;AAAA,QACJ;AAAA,MACJ,CAAC,CAAA;AAAA,IACL;AAAA,EACJ,CAAA;AACA,EAAA,IAAI,iBAAiB,MAAI;AAGrB,IAAA,MAAA,CAAO,QAAA,CAAS,GAAG,CAAC,CAAA;AAAA,EACxB,CAAA;AAIA,EAAA,IAAI,UAAU,MAAA,CAAO,WAAA;AACrB,EAAA,IAAI,UAAU,MAAA,CAAO,WAAA;AACrB,EAAA,IAAI,aAAA,GAAgB,OAAA,CAAQ,QAAA,CAAS,QAAA,CAAS,eAAA,EAAiB,cAAA,EAAgB,CAAA,EAAG,MAAA,CAAO,UAAA,GAAa,QAAA,CAAS,eAAA,CAAgB,WAAW,IAAI,CAAC,CAAA;AAE/I,EAAA,MAAA,CAAO,QAAA,CAAS,GAAG,CAAC,CAAA;AACpB,EAAA,IAAI,YAAA,GAAe,OAAA,CAAQ,QAAA,CAAS,QAAA,EAAU,cAAc,YAAA,EAAc;AAAA,IACtE,OAAA,EAAS,KAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACZ,CAAA,EAAG,QAAA,CAAS,QAAA,EAAU,aAAa,WAAA,EAAa;AAAA,IAC7C,OAAA,EAAS,KAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACZ,CAAA,EAAG,QAAA,CAAS,QAAA,EAAU,YAAY,UAAA,EAAY;AAAA,IAC3C,OAAA,EAAS,KAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACZ,CAAA,EAAG,QAAA,CAAS,QAAA,EAAU,OAAA,EAAS,OAAA,EAAS,IAAI,CAAA,EAAG,QAAA,CAAS,MAAA,EAAQ,QAAA,EAAU,cAAc,CAAC,CAAA;AAC1F,EAAA,OAAO,MAAI;AAEP,IAAA,aAAA,EAAc;AACd,IAAA,YAAA,EAAa;AACb,IAAA,MAAA,CAAO,QAAA,CAAS,SAAS,OAAO,CAAA;AAAA,EACpC,CAAA;AACJ;AAEA,SAAS,QAAA,CAAS,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO;AAGrC,EAAA,IAAI,GAAA,GAAM,OAAA,CAAQ,KAAA,CAAM,KAAK,CAAA;AAE7B,EAAA,OAAA,CAAQ,KAAA,CAAM,KAAK,CAAA,GAAI,KAAA;AACvB,EAAA,OAAO,MAAI;AAEP,IAAA,OAAA,CAAQ,KAAA,CAAM,KAAK,CAAA,GAAI,GAAA;AAAA,EAC3B,CAAA;AACJ;AAEA,SAAS,QAAA,CAAS,MAAA,EAAQ,KAAA,EAAO,OAAA,EAAS,OAAA,EAAS;AAE/C,EAAA,MAAA,CAAO,gBAAA,CAAiB,KAAA,EAAO,OAAA,EAAS,OAAO,CAAA;AAC/C,EAAA,OAAO,MAAI;AAEP,IAAA,MAAA,CAAO,mBAAA,CAAoB,KAAA,EAAO,OAAA,EAAS,OAAO,CAAA;AAAA,EACtD,CAAA;AACJ;AACA,SAAS,eAAe,MAAA,EAAQ;AAC5B,EAAA,IAAI,IAAA,GAAO,QAAA,CAAS,gBAAA,IAAoB,QAAA,CAAS,eAAA;AACjD,EAAA,OAAM,MAAA,IAAU,WAAW,IAAA,EAAK;AAE5B,IAAA,IAAI,UAAA,GAAa,gBAAgB,MAAM,CAAA;AACvC,IAAA,IAAI,eAAe,QAAA,CAAS,eAAA,IAAmB,eAAe,QAAA,CAAS,IAAA,IAAQ,eAAe,MAAA,EAAQ;AAClG,MAAA,IAAI,aAAA,GAAgB,UAAA,CAAW,qBAAA,EAAsB,CAAE,GAAA;AACvD,MAAA,IAAI,SAAA,GAAY,MAAA,CAAO,qBAAA,EAAsB,CAAE,GAAA;AAC/C,MAAA,IAAI,YAAA,GAAe,MAAA,CAAO,qBAAA,EAAsB,CAAE,MAAA;AAElD,MAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,qBAAA,EAAsB,CAAE,MAAA,GAAS,eAAA;AACnE,MAAA,IAAI,eAAe,cAAA,EAAgB;AAC/B,QAAA,UAAA,CAAW,aAAa,SAAA,GAAY,aAAA;AAAA,MACxC;AAAA,IACJ;AAEA,IAAA,MAAA,GAAS,UAAA,CAAW,aAAA;AAAA,EACxB;AACJ;AACA,SAAS,QAAQ,MAAA,EAAQ;AACrB,EAAA,OAAO,MAAA,YAAkB,gBAAA,IAAoB,CAAC,iBAAA,CAAkB,GAAA,CAAI,MAAA,CAAO,IAAI,CAAA,IAAK,MAAA,YAAkB,mBAAA,IAAuB,MAAA,YAAkB,WAAA,IAAe,MAAA,CAAO,iBAAA;AACzK;AAMI,SAASE,OAAAA,CAAO,KAAK,KAAA,EAAO;AAC5B,EAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC3B,IAAA,GAAA,CAAI,KAAK,CAAA;AAAA,EACb,CAAA,MAAA,IAAW,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,MAAA,EAAW;AAC1C,IAAA,GAAA,CAAI,OAAA,GAAU,KAAA;AAAA,EAClB;AACJ;AAII,SAASC,gBAAe,IAAA,EAAM;AAC9B,EAAA,OAAO,CAAC,SAAO,IAAA,CAAK,OAAA,CAAQ,CAAC,GAAA,KAAMD,OAAAA,CAAO,GAAA,EAAK,IAAI,CAAC,CAAA;AACxD;AAII,SAASE,oBAAmB,IAAA,EAAM;AAElC,EAAA,OAAaC,cAAA,CAAA,WAAA,CAAYF,YAAAA,CAAY,GAAG,IAAI,GAAG,IAAI,CAAA;AACvD;AAEA,IAAM,KAAA,uBAAY,OAAA,EAAQ;AAC1B,SAAS,GAAA,CAAI,EAAA,EAAI,MAAA,EAAQ,WAAA,GAAc,KAAA,EAAO;AAC1C,EAAA,IAAI,CAAC,EAAA,IAAM,EAAE,EAAA,YAAc,WAAA,CAAA,EAAc;AACzC,EAAA,IAAI,iBAAiB,EAAC;AACtB,EAAA,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAI;AAC3C,IAAA,IAAI,GAAA,CAAI,UAAA,CAAW,IAAI,CAAA,EAAG;AACtB,MAAA,EAAA,CAAG,KAAA,CAAM,WAAA,CAAY,GAAA,EAAK,KAAK,CAAA;AAC/B,MAAA;AAAA,IACJ;AACA,IAAA,cAAA,CAAe,GAAG,CAAA,GAAI,EAAA,CAAG,KAAA,CAAM,GAAG,CAAA;AAClC,IAAA,EAAA,CAAG,KAAA,CAAM,GAAG,CAAA,GAAI,KAAA;AAAA,EACpB,CAAC,CAAA;AACD,EAAA,IAAI,WAAA,EAAa;AACjB,EAAA,KAAA,CAAM,GAAA,CAAI,IAAI,cAAc,CAAA;AAChC;AACA,SAAS,KAAA,CAAM,IAAI,IAAA,EAAM;AACrB,EAAA,IAAI,CAAC,EAAA,IAAM,EAAE,EAAA,YAAc,WAAA,CAAA,EAAc;AACzC,EAAA,IAAI,cAAA,GAAiB,KAAA,CAAM,GAAA,CAAI,EAAE,CAAA;AACjC,EAAA,IAAI,CAAC,cAAA,EAAgB;AACjB,IAAA;AAAA,EACJ;AACA,EAAA;AACI,IAAA,EAAA,CAAG,KAAA,CAAM,IAAI,CAAA,GAAI,cAAA,CAAe,IAAI,CAAA;AAAA,EACxC;AACJ;AACA,IAAM,UAAA,GAAa,CAAC,SAAA,KAAY;AAC5B,EAAA,QAAO,SAAA;AAAU,IACb,KAAK,KAAA;AAAA,IACL,KAAK,QAAA;AACD,MAAA,OAAO,IAAA;AAAA,IACX,KAAK,MAAA;AAAA,IACL,KAAK,OAAA;AACD,MAAA,OAAO,KAAA;AAAA,IACX;AACI,MAAA,OAAO,SAAA;AAAA;AAEnB,CAAA;AACA,SAAS,YAAA,CAAa,SAAS,SAAA,EAAW;AACtC,EAAA,IAAI,CAAC,OAAA,EAAS;AACV,IAAA,OAAO,IAAA;AAAA,EACX;AACA,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,gBAAA,CAAiB,OAAO,CAAA;AAC7C,EAAA,MAAM,SAAA;AAAA;AAAA,IACN,KAAA,CAAM,SAAA,IAAa,KAAA,CAAM,eAAA,IAAmB,KAAA,CAAM;AAAA,GAAA;AAClD,EAAA,IAAI,GAAA,GAAM,SAAA,CAAU,KAAA,CAAM,oBAAoB,CAAA;AAC9C,EAAA,IAAI,GAAA,EAAK;AAEL,IAAA,OAAO,UAAA,CAAW,GAAA,CAAI,CAAC,CAAA,CAAE,KAAA,CAAM,IAAI,CAAA,CAAE,UAAA,CAAW,SAAS,CAAA,GAAI,EAAA,GAAK,EAAE,CAAC,CAAA;AAAA,EACzE;AAEA,EAAA,GAAA,GAAM,SAAA,CAAU,MAAM,kBAAkB,CAAA;AACxC,EAAA,OAAO,GAAA,GAAM,UAAA,CAAW,GAAA,CAAI,CAAC,EAAE,KAAA,CAAM,IAAI,CAAA,CAAE,UAAA,CAAW,SAAS,CAAA,GAAI,CAAA,GAAI,CAAC,CAAC,CAAA,GAAI,IAAA;AACjF;AACA,SAAS,YAAY,CAAA,EAAG;AACpB,EAAA,OAAO,CAAA,IAAK,IAAA,CAAK,GAAA,CAAI,CAAA,GAAI,CAAC,CAAA,GAAI,CAAA,CAAA;AAClC;AACA,SAAS,WAAA,CAAY,SAAS,KAAA,EAAO;AACjC,EAAA,IAAI,CAAC,OAAA,EAAS,OAAO,MAAI;AAAA,EAAC,CAAA;AAC1B,EAAA,MAAM,SAAA,GAAY,QAAQ,KAAA,CAAM,OAAA;AAChC,EAAA,MAAA,CAAO,MAAA,CAAO,OAAA,CAAQ,KAAA,EAAO,KAAK,CAAA;AAClC,EAAA,OAAO,MAAI;AACP,IAAA,OAAA,CAAQ,MAAM,OAAA,GAAU,SAAA;AAAA,EAC5B,CAAA;AACJ;AAGI,SAAS,SAAS,GAAA,EAAK;AACvB,EAAA,OAAO,IAAI,IAAA,KAAO;AACd,IAAA,KAAA,MAAW,MAAM,GAAA,EAAI;AACjB,MAAA,IAAI,OAAO,OAAO,UAAA,EAAY;AAE1B,QAAA,EAAA,CAAG,GAAG,IAAI,CAAA;AAAA,MACd;AAAA,IACJ;AAAA,EACJ,CAAA;AACJ;AAEA,IAAM,WAAA,GAAc;AAAA,EAChB,QAAA,EAAU,GAAA;AAAA,EACV,IAAA,EAAM;AAAA,IACF,IAAA;AAAA,IACA,IAAA;AAAA,IACA,CAAA;AAAA,IACA;AAAA;AAER,CAAA;AACA,IAAM,kBAAA,GAAqB,GAAA;AAC3B,IAAM,eAAA,GAAkB,IAAA;AACxB,IAAM,mBAAA,GAAsB,GAAA;AAC5B,IAAM,aAAA,GAAgB,CAAA;AACtB,IAAM,mBAAA,GAAsB,EAAA;AAC5B,IAAM,iBAAA,GAAoB,EAAA;AAC1B,IAAM,UAAA,GAAa,eAAA;AAGnB,SAASnC,gBAAe,QAAA,EAAU;AAC9B,EAAA,MAAM,WAAA,GAAc+B,uBAAA,CAAe,MAAA,CAAO,QAAQ,CAAA;AAClD,EAAAA,uBAAA,CAAe,UAAU,MAAI;AACzB,IAAA,WAAA,CAAY,OAAA,GAAU,QAAA;AAAA,EAC1B,CAAC,CAAA;AAED,EAAA,OAAOA,wBAAe,OAAA,CAAQ,MAAI,CAAA,GAAI,IAAA,KAAO,YAAY,OAAA,IAAW,IAAA,GAAO,MAAA,GAAS,WAAA,CAAY,QAAQ,IAAA,CAAK,WAAA,EAAa,GAAG,IAAI,CAAA,EAAG,EAAE,CAAA;AAC1I;AACA,SAASO,qBAAAA,CAAqB,EAAE,WAAA,EAAa,QAAA,EAAS,EAAG;AACrD,EAAA,MAAM,iBAAA,GAAoBP,uBAAA,CAAe,QAAA,CAAS,WAAW,CAAA;AAC7D,EAAA,MAAM,CAAC,KAAK,CAAA,GAAI,iBAAA;AAChB,EAAA,MAAM,YAAA,GAAeA,uBAAA,CAAe,MAAA,CAAO,KAAK,CAAA;AAChD,EAAA,MAAM,YAAA,GAAe/B,gBAAe,QAAQ,CAAA;AAC5C,EAAA+B,uBAAA,CAAe,UAAU,MAAI;AACzB,IAAA,IAAI,YAAA,CAAa,YAAY,KAAA,EAAO;AAChC,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAA,YAAA,CAAa,OAAA,GAAU,KAAA;AAAA,IAC3B;AAAA,EACJ,CAAA,EAAG;AAAA,IACC,KAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACH,CAAA;AACD,EAAA,OAAO,iBAAA;AACX;AACA,SAASQ,qBAAAA,CAAqB,EAAE,IAAA,EAAM,WAAA,EAAa,WAAW,MAAI;AAAC,CAAA,EAAE,EAAG;AACpE,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAID,qBAAAA,CAAqB;AAAA,IACjE,WAAA;AAAA,IACA;AAAA,GACH,CAAA;AACD,EAAA,MAAM,eAAe,IAAA,KAAS,MAAA;AAC9B,EAAA,MAAM,KAAA,GAAQ,eAAe,IAAA,GAAO,gBAAA;AACpC,EAAA,MAAM,YAAA,GAAetC,gBAAe,QAAQ,CAAA;AAC5C,EAAA,MAAM,QAAA,GAAW+B,uBAAA,CAAe,WAAA,CAAY,CAAC,SAAA,KAAY;AACrD,IAAA,IAAI,YAAA,EAAc;AACd,MAAA,MAAM,MAAA,GAAS,SAAA;AACf,MAAA,MAAM7Y,SAAQ,OAAO,SAAA,KAAc,UAAA,GAAa,MAAA,CAAO,IAAI,CAAA,GAAI,SAAA;AAC/D,MAAA,IAAIA,MAAAA,KAAU,IAAA,EAAM,YAAA,CAAaA,MAAK,CAAA;AAAA,IAC1C,CAAA,MAAO;AACH,MAAA,mBAAA,CAAoB,SAAS,CAAA;AAAA,IACjC;AAAA,EACJ,CAAA,EAAG;AAAA,IACC,YAAA;AAAA,IACA,IAAA;AAAA,IACA,mBAAA;AAAA,IACA;AAAA,GACH,CAAA;AACD,EAAA,OAAO;AAAA,IACH,KAAA;AAAA,IACA;AAAA,GACJ;AACJ;AAEA,SAAS,aAAA,CAAc,EAAE,mBAAA,EAAqB,sBAAA,EAAwB,UAAA,EAAY,SAAA,EAAW,UAAA,EAAY,aAAA,EAAe,iBAAA,EAAmB,SAAA,GAAY,QAAA,EAAU,SAAA,EAAW,uBAAsB,EAAG;AACjM,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAIqZ,qBAAAA,CAAqB;AAAA,IAC/D,IAAA,EAAM,mBAAA;AAAA,IACN,WAAA,EAAa,UAAA,IAAc,IAAA,GAAO,MAAA,GAAS,WAAW,CAAC,CAAA;AAAA,IACvD,QAAA,EAAU;AAAA,GACb,CAAA;AACD,EAAA,MAAM,CAAC,kBAAkB,mBAAmB,CAAA,GAAIR,wBAAe,QAAA,CAAS,OAAO,WAAW,WAAA,GAAc;AAAA,IACpG,YAAY,MAAA,CAAO,UAAA;AAAA,IACnB,aAAa,MAAA,CAAO;AAAA,MACpB,MAAS,CAAA;AACb,EAAAA,uBAAA,CAAe,UAAU,MAAI;AACzB,IAAA,SAAS,QAAA,GAAW;AAChB,MAAA,mBAAA,CAAoB;AAAA,QAChB,YAAY,MAAA,CAAO,UAAA;AAAA,QACnB,aAAa,MAAA,CAAO;AAAA,OACvB,CAAA;AAAA,IACL;AACA,IAAA,MAAA,CAAO,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AAC1C,IAAA,OAAO,MAAI,MAAA,CAAO,mBAAA,CAAoB,QAAA,EAAU,QAAQ,CAAA;AAAA,EAC5D,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,MAAM,eAAA,GAAkBA,uBAAA,CAAe,OAAA,CAAQ,MAAI,eAAA,MAAqB,UAAA,IAAc,IAAA,GAAO,MAAA,GAAS,UAAA,CAAW,UAAA,CAAW,MAAA,GAAS,CAAC,MAAM,IAAA,EAAM;AAAA,IAC9I,UAAA;AAAA,IACA;AAAA,GACH,CAAA;AACD,EAAA,MAAM,oBAAA,GAAuBA,uBAAA,CAAe,OAAA,CAAQ,MAAI;AACpD,IAAA,IAAI,qBAAA;AACJ,IAAA,OAAA,CAAQ,qBAAA,GAAwB,UAAA,IAAc,IAAA,GAAO,MAAA,GAAS,UAAA,CAAW,SAAA,CAAU,CAAC,SAAA,KAAY,SAAA,KAAc,eAAe,CAAA,KAAM,IAAA,GAAO,qBAAA,GAAwB,IAAA;AAAA,EACtK,CAAA,EAAG;AAAA,IACC,UAAA;AAAA,IACA;AAAA,GACH,CAAA;AACD,EAAA,MAAM,aAAa,UAAA,IAAc,UAAA,CAAW,MAAA,GAAS,CAAA,KAAM,iBAAiB,aAAA,KAAkB,CAAA,CAAA,IAAM,CAAC,MAAA,CAAO,MAAM,aAAa,CAAA,IAAK,WAAW,aAAa,CAAA,KAAM,mBAAmB,CAAC,UAAA;AACtL,EAAA,MAAM,gBAAA,GAAmBA,uBAAA,CAAe,OAAA,CAAQ,MAAI;AAChD,IAAA,MAAM,gBAAgB,SAAA,GAAY;AAAA,MAC9B,KAAA,EAAO,SAAA,CAAU,qBAAA,EAAsB,CAAE,KAAA;AAAA,MACzC,MAAA,EAAQ,SAAA,CAAU,qBAAA,EAAsB,CAAE;AAAA,KAC9C,GAAI,OAAO,MAAA,KAAW,WAAA,GAAc;AAAA,MAChC,OAAO,MAAA,CAAO,UAAA;AAAA,MACd,QAAQ,MAAA,CAAO;AAAA,KACnB,GAAI;AAAA,MACA,KAAA,EAAO,CAAA;AAAA,MACP,MAAA,EAAQ;AAAA,KACZ;AACA,IAAA,IAAI,eAAA;AACJ,IAAA,OAAA,CAAQ,kBAAkB,UAAA,IAAc,IAAA,GAAO,SAAS,UAAA,CAAW,GAAA,CAAI,CAAC,SAAA,KAAY;AAChF,MAAA,MAAM,IAAA,GAAO,OAAO,SAAA,KAAc,QAAA;AAClC,MAAA,IAAI,iBAAA,GAAoB,CAAA;AACxB,MAAA,IAAI,IAAA,EAAM;AACN,QAAA,iBAAA,GAAoB,QAAA,CAAS,WAAW,EAAE,CAAA;AAAA,MAC9C;AACA,MAAA,IAAI,UAAA,CAAW,SAAS,CAAA,EAAG;AACvB,QAAA,MAAM,SAAS,IAAA,GAAO,iBAAA,GAAoB,gBAAA,GAAmB,SAAA,GAAY,cAAc,MAAA,GAAS,CAAA;AAChG,QAAA,IAAI,gBAAA,EAAkB;AAClB,UAAA,OAAO,cAAc,QAAA,GAAW,aAAA,CAAc,SAAS,MAAA,GAAS,CAAC,cAAc,MAAA,GAAS,MAAA;AAAA,QAC5F;AACA,QAAA,OAAO,MAAA;AAAA,MACX;AACA,MAAA,MAAM,QAAQ,IAAA,GAAO,iBAAA,GAAoB,gBAAA,GAAmB,SAAA,GAAY,cAAc,KAAA,GAAQ,CAAA;AAC9F,MAAA,IAAI,gBAAA,EAAkB;AAClB,QAAA,OAAO,cAAc,OAAA,GAAU,aAAA,CAAc,QAAQ,KAAA,GAAQ,CAAC,cAAc,KAAA,GAAQ,KAAA;AAAA,MACxF;AACA,MAAA,OAAO,KAAA;AAAA,IACX,CAAC,CAAA,KAAM,IAAA,GAAO,eAAA,GAAkB,EAAC;AAAA,EACrC,CAAA,EAAG;AAAA,IACC,UAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACH,CAAA;AACD,EAAA,MAAM,qBAAA,GAAwBA,uBAAA,CAAe,OAAA,CAAQ,MAAI,oBAAA,KAAyB,IAAA,GAAO,gBAAA,IAAoB,IAAA,GAAO,MAAA,GAAS,gBAAA,CAAiB,oBAAoB,CAAA,GAAI,IAAA,EAAM;AAAA,IACxK,gBAAA;AAAA,IACA;AAAA,GACH,CAAA;AACD,EAAA,MAAM,WAAA,GAAcA,uBAAA,CAAe,WAAA,CAAY,CAAC,SAAA,KAAY;AACxD,IAAA,IAAI,2BAAA;AACJ,IAAA,MAAM,iBAAA,GAAA,CAAqB,2BAAA,GAA8B,gBAAA,IAAoB,IAAA,GAAO,MAAA,GAAS,gBAAA,CAAiB,SAAA,CAAU,CAAC,YAAA,KAAe,YAAA,KAAiB,SAAS,CAAA,KAAM,OAAO,2BAAA,GAA8B,IAAA;AAC7M,IAAA,iBAAA,CAAkB,iBAAiB,CAAA;AACnC,IAAA,GAAA,CAAI,UAAU,OAAA,EAAS;AAAA,MACnB,UAAA,EAAY,aAAa,WAAA,CAAY,QAAQ,kBAAkB,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,MACzF,SAAA,EAAW,WAAW,SAAS,CAAA,GAAI,kBAAkB,SAAS,CAAA,MAAA,CAAA,GAAW,eAAe,SAAS,CAAA,SAAA;AAAA,KACpG,CAAA;AACD,IAAA,IAAI,gBAAA,IAAoB,iBAAA,KAAsB,gBAAA,CAAiB,MAAA,GAAS,CAAA,IAAK,kBAAkB,MAAA,IAAa,iBAAA,KAAsB,aAAA,IAAiB,iBAAA,GAAoB,aAAA,EAAe;AAClL,MAAA,GAAA,CAAI,WAAW,OAAA,EAAS;AAAA,QACpB,UAAA,EAAY,WAAW,WAAA,CAAY,QAAQ,kBAAkB,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,QACvF,OAAA,EAAS;AAAA,OACZ,CAAA;AAAA,IACL,CAAA,MAAO;AACH,MAAA,GAAA,CAAI,WAAW,OAAA,EAAS;AAAA,QACpB,UAAA,EAAY,WAAW,WAAA,CAAY,QAAQ,kBAAkB,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,QACvF,OAAA,EAAS;AAAA,OACZ,CAAA;AAAA,IACL;AACA,IAAA,kBAAA,CAAmB,UAAA,IAAc,OAAO,MAAA,GAAS,UAAA,CAAW,KAAK,GAAA,CAAI,iBAAA,EAAmB,CAAC,CAAC,CAAC,CAAA;AAAA,EAC/F,CAAA,EAAG;AAAA,IACC,SAAA,CAAU,OAAA;AAAA,IACV,UAAA;AAAA,IACA,gBAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACH,CAAA;AACD,EAAAA,uBAAA,CAAe,UAAU,MAAI;AACzB,IAAA,IAAI,mBAAmB,mBAAA,EAAqB;AACxC,MAAA,IAAI,qBAAA;AACJ,MAAA,MAAM,QAAA,GAAA,CAAY,qBAAA,GAAwB,UAAA,IAAc,IAAA,GAAO,SAAS,UAAA,CAAW,SAAA,CAAU,CAAC,SAAA,KAAY,cAAc,mBAAA,IAAuB,SAAA,KAAc,eAAe,CAAA,KAAM,OAAO,qBAAA,GAAwB,EAAA;AACjN,MAAA,IAAI,oBAAoB,QAAA,KAAa,EAAA,IAAM,OAAO,gBAAA,CAAiB,QAAQ,MAAM,QAAA,EAAU;AACvF,QAAA,WAAA,CAAY,gBAAA,CAAiB,QAAQ,CAAC,CAAA;AAAA,MAC1C;AAAA,IACJ;AAAA,EACJ,CAAA,EAAG;AAAA,IACC,eAAA;AAAA,IACA,mBAAA;AAAA,IACA,UAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACH,CAAA;AACD,EAAA,SAAS,UAAU,EAAE,eAAA,EAAiB,WAAA,EAAa,QAAA,EAAU,aAAY,EAAG;AACxE,IAAA,IAAI,kBAAkB,MAAA,EAAW;AACjC,IAAA,MAAM,eAAA,GAAkB,SAAA,KAAc,QAAA,IAAY,SAAA,KAAc,OAAA,GAAA,CAAW,qBAAA,IAAyB,IAAA,GAAO,qBAAA,GAAwB,CAAA,IAAK,eAAA,GAAA,CAAmB,qBAAA,IAAyB,IAAA,GAAO,wBAAwB,CAAA,IAAK,eAAA;AACxN,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,aAAA,GAAgB,CAAA;AACpE,IAAA,MAAM,UAAU,oBAAA,KAAyB,CAAA;AACzC,IAAA,MAAM,eAAe,eAAA,GAAkB,CAAA;AACvC,IAAA,IAAI,kBAAA,EAAoB;AACpB,MAAA,GAAA,CAAI,WAAW,OAAA,EAAS;AAAA,QACpB,UAAA,EAAY,WAAW,WAAA,CAAY,QAAQ,kBAAkB,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,OAC1F,CAAA;AAAA,IACL;AACA,IAAA,IAAI,CAAC,qBAAA,IAAyB,QAAA,GAAW,CAAA,IAAK,CAAC,YAAA,EAAc;AACzD,MAAA,IAAI,aAAa,WAAA,EAAY;AAAA,WACxB,WAAA,CAAY,gBAAA,CAAiB,CAAC,CAAC,CAAA;AACpC,MAAA;AAAA,IACJ;AACA,IAAA,IAAI,CAAC,qBAAA,IAAyB,QAAA,GAAW,CAAA,IAAK,YAAA,IAAgB,oBAAoB,UAAA,EAAY;AAC1F,MAAA,WAAA,CAAY,gBAAA,CAAiB,UAAA,CAAW,MAAA,GAAS,CAAC,CAAC,CAAA;AACnD,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,gBAAA,GAAmB,oBAAoB,IAAA,GAAO,MAAA,GAAS,iBAAiB,MAAA,CAAO,CAAC,MAAM,IAAA,KAAO;AAC/F,MAAA,IAAI,OAAO,IAAA,KAAS,QAAA,IAAY,OAAO,IAAA,KAAS,UAAU,OAAO,IAAA;AACjE,MAAA,OAAO,IAAA,CAAK,GAAA,CAAI,IAAA,GAAO,eAAe,CAAA,GAAI,KAAK,GAAA,CAAI,IAAA,GAAO,eAAe,CAAA,GAAI,IAAA,GAAO,IAAA;AAAA,IACxF,CAAC,CAAA;AACD,IAAA,MAAM,MAAM,UAAA,CAAW,SAAS,CAAA,GAAI,MAAA,CAAO,cAAc,MAAA,CAAO,UAAA;AAChE,IAAA,IAAI,WAAW,kBAAA,IAAsB,IAAA,CAAK,IAAI,eAAe,CAAA,GAAI,MAAM,GAAA,EAAK;AACxE,MAAA,MAAM,aAAA,GAAgB,eAAe,CAAA,GAAI,EAAA;AAEzC,MAAA,IAAI,aAAA,GAAgB,CAAA,IAAK,eAAA,IAAmB,UAAA,EAAY;AACpD,QAAA,WAAA,CAAY,gBAAA,CAAiB,UAAA,CAAW,MAAA,GAAS,CAAC,CAAC,CAAA;AACnD,QAAA;AAAA,MACJ;AACA,MAAA,IAAI,OAAA,IAAW,aAAA,GAAgB,CAAA,IAAK,WAAA,EAAa;AAC7C,QAAA,WAAA,EAAY;AAAA,MAChB;AACA,MAAA,IAAI,yBAAyB,IAAA,EAAM;AACnC,MAAA,WAAA,CAAY,gBAAA,CAAiB,oBAAA,GAAuB,aAAa,CAAC,CAAA;AAClE,MAAA;AAAA,IACJ;AACA,IAAA,WAAA,CAAY,gBAAgB,CAAA;AAAA,EAChC;AACA,EAAA,SAAS,MAAA,CAAO,EAAE,eAAA,EAAgB,EAAG;AACjC,IAAA,IAAI,0BAA0B,IAAA,EAAM;AACpC,IAAA,MAAM,WAAW,SAAA,KAAc,QAAA,IAAY,cAAc,OAAA,GAAU,qBAAA,GAAwB,kBAAkB,qBAAA,GAAwB,eAAA;AAErI,IAAA,IAAA,CAAK,SAAA,KAAc,YAAY,SAAA,KAAc,OAAA,KAAY,WAAW,gBAAA,CAAiB,gBAAA,CAAiB,MAAA,GAAS,CAAC,CAAA,EAAG;AAC/G,MAAA;AAAA,IACJ;AACA,IAAA,IAAA,CAAK,SAAA,KAAc,SAAS,SAAA,KAAc,MAAA,KAAW,WAAW,gBAAA,CAAiB,gBAAA,CAAiB,MAAA,GAAS,CAAC,CAAA,EAAG;AAC3G,MAAA;AAAA,IACJ;AACA,IAAA,GAAA,CAAI,UAAU,OAAA,EAAS;AAAA,MACnB,SAAA,EAAW,WAAW,SAAS,CAAA,GAAI,kBAAkB,QAAQ,CAAA,MAAA,CAAA,GAAW,eAAe,QAAQ,CAAA,SAAA;AAAA,KAClG,CAAA;AAAA,EACL;AACA,EAAA,SAAS,oBAAA,CAAqB,oBAAoB,cAAA,EAAgB;AAC9D,IAAA,IAAI,CAAC,cAAc,OAAO,oBAAA,KAAyB,YAAY,CAAC,gBAAA,IAAoB,aAAA,KAAkB,MAAA,EAAW,OAAO,IAAA;AAExH,IAAA,MAAM,kBAAA,GAAqB,yBAAyB,aAAA,GAAgB,CAAA;AACpE,IAAA,MAAM,6BAA6B,oBAAA,IAAwB,aAAA;AAC3D,IAAA,IAAI,8BAA8B,cAAA,EAAgB;AAC9C,MAAA,OAAO,CAAA;AAAA,IACX;AAEA,IAAA,IAAI,kBAAA,IAAsB,CAAC,cAAA,EAAgB,OAAO,CAAA;AAClD,IAAA,IAAI,CAAC,UAAA,IAAc,CAAC,kBAAA,EAAoB,OAAO,IAAA;AAE/C,IAAA,MAAM,oBAAA,GAAuB,kBAAA,GAAqB,oBAAA,GAAuB,CAAA,GAAI,oBAAA,GAAuB,CAAA;AAEpG,IAAA,MAAM,iBAAA,GAAoB,kBAAA,GAAqB,gBAAA,CAAiB,oBAAoB,IAAI,gBAAA,CAAiB,oBAAA,GAAuB,CAAC,CAAA,GAAI,gBAAA,CAAiB,oBAAA,GAAuB,CAAC,CAAA,GAAI,iBAAiB,oBAAoB,CAAA;AACvN,IAAA,MAAM,iBAAA,GAAoB,kBAAA,GAAqB,IAAA,CAAK,GAAA,CAAI,iBAAiB,CAAA;AACzE,IAAA,IAAI,kBAAA,EAAoB;AACpB,MAAA,OAAO,CAAA,GAAI,iBAAA;AAAA,IACf,CAAA,MAAO;AACH,MAAA,OAAO,iBAAA;AAAA,IACX;AAAA,EACJ;AACA,EAAA,OAAO;AAAA,IACH,eAAA;AAAA,IACA,eAAA;AAAA,IACA,UAAA;AAAA,IACA,oBAAA;AAAA,IACA,kBAAA;AAAA,IACA,oBAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACJ;AACJ;AAEA,IAAM,IAAA,GAAO,MAAI,MAAI;AAAC,CAAA;AACtB,SAAS,kBAAA,GAAqB;AAC1B,EAAA,MAAM,EAAE,SAAA,EAAW,MAAA,EAAQ,uBAAuB,yBAAA,EAA2B,YAAA,KAAiB,gBAAA,EAAiB;AAC/G,EAAA,MAAM,YAAA,GAAeA,uBAAA,CAAe,MAAA,CAAO,IAAI,CAAA;AAC/C,EAAA,MAAM,sBAAA,GAAyBS,QAAQ,MAAI,QAAA,CAAS,KAAK,KAAA,CAAM,eAAA,EAAiB,EAAE,CAAA;AAClF,EAAA,SAAS,QAAA,GAAW;AAChB,IAAA,OAAA,CAAQ,MAAA,CAAO,UAAA,GAAa,iBAAA,IAAqB,MAAA,CAAO,UAAA;AAAA,EAC5D;AACA,EAAAT,uBAAA,CAAe,UAAU,MAAI;AACzB,IAAA,IAAI,UAAU,qBAAA,EAAuB;AACjC,MAAA,IAAI,YAAA,CAAa,OAAA,EAAS,YAAA,CAAa,YAAA,CAAa,OAAO,CAAA;AAC3D,MAAA,MAAM,UAAU,QAAA,CAAS,aAAA,CAAc,4BAA4B,CAAA,IAAK,QAAA,CAAS,cAAc,uBAAuB,CAAA;AACtH,MAAA,IAAI,CAAC,OAAA,EAAS;AACd,MAAA,KAAA,CAAM,yBAAA,IAA6B,CAAC,YAAA,GAAe,WAAA,CAAY,SAAS,IAAA,EAAM;AAAA,QAC1E,UAAA,EAAY;AAAA,OACf,CAAA,GAAI,IAAA,EAAM,WAAA,CAAY,OAAA,EAAS;AAAA,QAC5B,eAAA,EAAiB,UAAA,CAAW,SAAS,CAAA,GAAI,KAAA,GAAQ,MAAA;AAAA,QACjD,kBAAA,EAAoB,0BAAA;AAAA,QACpB,kBAAA,EAAoB,CAAA,EAAG,WAAA,CAAY,QAAQ,CAAA,CAAA,CAAA;AAAA,QAC3C,0BAA0B,CAAA,aAAA,EAAgB,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,OACvE,CAAC,CAAA;AACF,MAAA,MAAM,oBAAA,GAAuB,YAAY,OAAA,EAAS;AAAA,QAC9C,YAAA,EAAc,GAAG,aAAa,CAAA,EAAA,CAAA;AAAA,QAC9B,QAAA,EAAU,QAAA;AAAA,QACV,GAAG,UAAA,CAAW,SAAS,CAAA,GAAI;AAAA,UACvB,SAAA,EAAW,CAAA,MAAA,EAAS,QAAA,EAAU,CAAA,0DAAA;AAAA,SAClC,GAAI;AAAA,UACA,SAAA,EAAW,CAAA,MAAA,EAAS,QAAA,EAAU,CAAA,0DAAA;AAAA;AAClC,OACH,CAAA;AACD,MAAA,OAAO,MAAI;AACP,QAAA,oBAAA,EAAqB;AACrB,QAAA,YAAA,CAAa,OAAA,GAAU,MAAA,CAAO,UAAA,CAAW,MAAI;AACzC,UAAA,IAAI,sBAAA,EAAwB;AACxB,YAAA,QAAA,CAAS,IAAA,CAAK,MAAM,UAAA,GAAa,sBAAA;AAAA,UACrC,CAAA,MAAO;AACH,YAAA,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,cAAA,CAAe,YAAY,CAAA;AAAA,UACnD;AAAA,QACJ,CAAA,EAAG,WAAA,CAAY,QAAA,GAAW,GAAI,CAAA;AAAA,MAClC,CAAA;AAAA,IACJ;AAAA,EACJ,CAAA,EAAG;AAAA,IACC,MAAA;AAAA,IACA,qBAAA;AAAA,IACA;AAAA,GACH,CAAA;AACL;AAEA,IAAI,oBAAA,GAAuB,IAAA;AAQvB,SAAS,gBAAA,CAAiB,EAAE,MAAA,EAAQ,KAAA,EAAO,QAAQ,aAAA,EAAe,wBAAA,EAA0B,cAAa,EAAG;AAC5G,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,uBAAA,CAAe,QAAA,CAAS,MAAI,OAAO,MAAA,KAAW,WAAA,GAAc,MAAA,CAAO,QAAA,CAAS,OAAO,EAAE,CAAA;AACvH,EAAA,MAAM,SAAA,GAAYA,uBAAA,CAAe,MAAA,CAAO,CAAC,CAAA;AACzC,EAAA,MAAM,gBAAA,GAAmBA,uBAAA,CAAe,WAAA,CAAY,MAAI;AAEpD,IAAA,IAAI,CAAC,UAAS,EAAG;AAEjB,IAAA,IAAI,oBAAA,KAAyB,IAAA,IAAQ,MAAA,IAAU,CAAC,YAAA,EAAc;AAC1D,MAAA,oBAAA,GAAuB;AAAA,QACnB,QAAA,EAAU,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,QAAA;AAAA,QAC9B,GAAA,EAAK,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,GAAA;AAAA,QACzB,IAAA,EAAM,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,IAAA;AAAA,QAC1B,MAAA,EAAQ,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,MAAA;AAAA,QAC5B,KAAA,EAAO;AAAA,OACX;AAEA,MAAA,MAAM,EAAE,OAAA,EAAS,WAAA,EAAY,GAAI,MAAA;AACjC,MAAA,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,WAAA,CAAY,UAAA,EAAY,SAAS,WAAW,CAAA;AAChE,MAAA,MAAA,CAAO,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,KAAA,EAAO;AAAA,QAC/B,GAAA,EAAK,CAAA,EAAG,CAAC,SAAA,CAAU,OAAO,CAAA,EAAA,CAAA;AAAA,QAC1B,IAAA,EAAM,CAAA,EAAG,CAAC,OAAO,CAAA,EAAA,CAAA;AAAA,QACjB,KAAA,EAAO,KAAA;AAAA,QACP,MAAA,EAAQ;AAAA,OACX,CAAA;AACD,MAAA,MAAA,CAAO,UAAA,CAAW,MAAI,MAAA,CAAO,qBAAA,CAAsB,MAAI;AAE/C,QAAA,MAAM,eAAA,GAAkB,cAAc,MAAA,CAAO,WAAA;AAC7C,QAAA,IAAI,eAAA,IAAmB,SAAA,CAAU,OAAA,IAAW,WAAA,EAAa;AAErD,UAAA,QAAA,CAAS,KAAK,KAAA,CAAM,GAAA,GAAM,GAAG,EAAE,SAAA,CAAU,UAAU,eAAA,CAAgB,CAAA,EAAA,CAAA;AAAA,QACvE;AAAA,MACJ,CAAC,GAAG,GAAG,CAAA;AAAA,IACf;AAAA,EACJ,CAAA,EAAG;AAAA,IACC;AAAA,GACH,CAAA;AACD,EAAA,MAAM,sBAAA,GAAyBA,uBAAA,CAAe,WAAA,CAAY,MAAI;AAE1D,IAAA,IAAI,CAAC,UAAS,EAAG;AACjB,IAAA,IAAI,oBAAA,KAAyB,IAAA,IAAQ,CAAC,YAAA,EAAc;AAEhD,MAAA,MAAM,IAAI,CAAC,QAAA,CAAS,SAAS,IAAA,CAAK,KAAA,CAAM,KAAK,EAAE,CAAA;AAC/C,MAAA,MAAM5B,KAAI,CAAC,QAAA,CAAS,SAAS,IAAA,CAAK,KAAA,CAAM,MAAM,EAAE,CAAA;AAEhD,MAAA,MAAA,CAAO,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,KAAA,EAAO,oBAAoB,CAAA;AACvD,MAAA,MAAA,CAAO,sBAAsB,MAAI;AAC7B,QAAA,IAAI,wBAAA,IAA4B,SAAA,KAAc,MAAA,CAAO,QAAA,CAAS,IAAA,EAAM;AAChE,UAAA,YAAA,CAAa,MAAA,CAAO,SAAS,IAAI,CAAA;AACjC,UAAA;AAAA,QACJ;AACA,QAAA,MAAA,CAAO,QAAA,CAASA,IAAG,CAAC,CAAA;AAAA,MACxB,CAAC,CAAA;AACD,MAAA,oBAAA,GAAuB,IAAA;AAAA,IAC3B;AAAA,EACJ,CAAA,EAAG;AAAA,IACC;AAAA,GACH,CAAA;AACD,EAAA4B,uBAAA,CAAe,UAAU,MAAI;AACzB,IAAA,SAAS,QAAA,GAAW;AAChB,MAAA,SAAA,CAAU,UAAU,MAAA,CAAO,OAAA;AAAA,IAC/B;AACA,IAAA,QAAA,EAAS;AACT,IAAA,MAAA,CAAO,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AAC1C,IAAA,OAAO,MAAI;AACP,MAAA,MAAA,CAAO,mBAAA,CAAoB,UAAU,QAAQ,CAAA;AAAA,IACjD,CAAA;AAAA,EACJ,CAAA,EAAG,EAAE,CAAA;AACL,EAAAA,uBAAA,CAAe,UAAU,MAAI;AACzB,IAAA,IAAI,CAAC,KAAA,EAAO;AACZ,IAAA,OAAO,MAAI;AACP,MAAA,IAAI,OAAO,aAAa,WAAA,EAAa;AAErC,MAAA,MAAM,eAAA,GAAkB,CAAC,CAAC,QAAA,CAAS,cAAc,oBAAoB,CAAA;AACrE,MAAA,IAAI,eAAA,EAAiB;AACrB,MAAA,sBAAA,EAAuB;AAAA,IAC3B,CAAA;AAAA,EACJ,CAAA,EAAG;AAAA,IACC,KAAA;AAAA,IACA;AAAA,GACH,CAAA;AACD,EAAAA,uBAAA,CAAe,UAAU,MAAI;AACzB,IAAA,IAAI,MAAA,IAAU,CAAC,aAAA,EAAe;AAE9B,IAAA,IAAI,MAAA,EAAQ;AAER,MAAA,MAAM,YAAA,GAAe,MAAA,CAAO,UAAA,CAAW,4BAA4B,CAAA,CAAE,OAAA;AACrE,MAAA,CAAC,gBAAgB,gBAAA,EAAiB;AAClC,MAAA,IAAI,CAAC,KAAA,EAAO;AACR,QAAA,MAAA,CAAO,WAAW,MAAI;AAClB,UAAA,sBAAA,EAAuB;AAAA,QAC3B,GAAG,GAAG,CAAA;AAAA,MACV;AAAA,IACJ,CAAA,MAAO;AACH,MAAA,sBAAA,EAAuB;AAAA,IAC3B;AAAA,EACJ,CAAA,EAAG;AAAA,IACC,MAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACH,CAAA;AACD,EAAA,OAAO;AAAA,IACH;AAAA,GACJ;AACJ;AAEA,SAASU,KAAAA,CAAK,EAAE,IAAA,EAAM,QAAA,EAAU,YAAA,EAAc,UAAU,MAAA,EAAQ,UAAA,EAAY,SAAA,EAAW,aAAA,EAAe,UAAA,EAAY,qBAAA,GAAwB,OAAO,yBAAA,GAA4B,IAAA,EAAM,cAAA,GAAiB,eAAA,EAAiB,iBAAA,GAAoB,mBAAA,EAAqB,WAAA,GAAc,IAAA,EAAM,UAAA,GAAa,KAAA,EAAO,aAAA,GAAgB,UAAA,IAAc,UAAA,CAAW,MAAA,GAAS,GAAG,eAAA,EAAiB,mBAAA,EAAqB,kBAAA,EAAoB,sBAAA,EAAwB,KAAA,EAAO,KAAA,GAAQ,IAAA,EAAM,OAAA,EAAS,MAAA,EAAQ,YAAA,GAAe,KAAA,EAAO,SAAA,GAAY,QAAA,EAAU,WAAA,GAAc,OAAO,oBAAA,GAAuB,IAAA,EAAM,qBAAA,GAAwB,KAAA,EAAO,wBAAA,GAA2B,KAAA,EAAO,gBAAA,GAAmB,IAAA,EAAM,cAAA,EAAgB,SAAA,EAAW,SAAA,GAAY,KAAA,EAAM,EAAG;AACvrB,EAAA,IAAI,kBAAA,EAAoB,mBAAA;AACxB,EAAA,MAAM,CAAC,MAAA,GAAS,KAAA,EAAO,SAAS,IAAIF,qBAAAA,CAAqB;AAAA,IACrD,WAAA,EAAa,WAAA;AAAA,IACb,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,CAAC,CAAA,KAAI;AACX,MAAA,YAAA,IAAgB,IAAA,GAAO,MAAA,GAAS,YAAA,CAAa,CAAC,CAAA;AAC9C,MAAA,IAAI,CAAC,CAAA,IAAK,CAAC,MAAA,EAAQ;AACf,QAAA,sBAAA,EAAuB;AAAA,MAC3B;AACA,MAAA,UAAA,CAAW,MAAI;AACX,QAAA,cAAA,IAAkB,IAAA,GAAO,MAAA,GAAS,cAAA,CAAe,CAAC,CAAA;AAAA,MACtD,CAAA,EAAG,WAAA,CAAY,QAAA,GAAW,GAAI,CAAA;AAC9B,MAAA,IAAI,CAAA,IAAK,CAAC,KAAA,EAAO;AACb,QAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAC/B,UAAA,MAAA,CAAO,sBAAsB,MAAI;AAC7B,YAAA,QAAA,CAAS,IAAA,CAAK,MAAM,aAAA,GAAgB,MAAA;AAAA,UACxC,CAAC,CAAA;AAAA,QACL;AAAA,MACJ;AACA,MAAA,IAAI,CAAC,CAAA,EAAG;AAEJ,QAAA,QAAA,CAAS,IAAA,CAAK,MAAM,aAAA,GAAgB,MAAA;AAAA,MACxC;AAAA,IACJ;AAAA,GACH,CAAA;AACD,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIR,uBAAA,CAAe,SAAS,KAAK,CAAA;AACvE,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,uBAAA,CAAe,SAAS,KAAK,CAAA;AACjE,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIA,uBAAA,CAAe,SAAS,KAAK,CAAA;AACrE,EAAA,MAAM,UAAA,GAAaA,uBAAA,CAAe,MAAA,CAAO,IAAI,CAAA;AAC7C,EAAA,MAAM,QAAA,GAAWA,uBAAA,CAAe,MAAA,CAAO,IAAI,CAAA;AAC3C,EAAA,MAAM,aAAA,GAAgBA,uBAAA,CAAe,MAAA,CAAO,IAAI,CAAA;AAChD,EAAA,MAAM,WAAA,GAAcA,uBAAA,CAAe,MAAA,CAAO,IAAI,CAAA;AAC9C,EAAA,MAAM,qBAAA,GAAwBA,uBAAA,CAAe,MAAA,CAAO,IAAI,CAAA;AACxD,EAAA,MAAM,eAAA,GAAkBA,uBAAA,CAAe,MAAA,CAAO,KAAK,CAAA;AACnD,EAAA,MAAM,qBAAA,GAAwBA,uBAAA,CAAe,MAAA,CAAO,IAAI,CAAA;AACxD,EAAA,MAAM,YAAA,GAAeA,uBAAA,CAAe,MAAA,CAAO,CAAC,CAAA;AAC5C,EAAA,MAAM,cAAA,GAAiBA,uBAAA,CAAe,MAAA,CAAO,KAAK,CAAA;AAClD,EAAA,MAAM,aAAA,GAAgBA,uBAAA,CAAe,MAAA,CAAO,CAAC,WAAW,CAAA;AACxD,EAAA,MAAM,uBAAA,GAA0BA,uBAAA,CAAe,MAAA,CAAO,CAAC,CAAA;AACvD,EAAA,MAAM,SAAA,GAAYA,uBAAA,CAAe,MAAA,CAAO,IAAI,CAAA;AAC5C,EAAA,MAAM,eAAA,GAAkBA,uBAAA,CAAe,MAAA,CAAA,CAAA,CAAS,kBAAA,GAAqB,SAAA,CAAU,OAAA,KAAY,IAAA,GAAO,MAAA,GAAS,kBAAA,CAAmB,qBAAA,EAAsB,CAAE,MAAA,KAAW,CAAC,CAAA;AAClK,EAAA,MAAM,cAAA,GAAiBA,uBAAA,CAAe,MAAA,CAAA,CAAA,CAAS,mBAAA,GAAsB,SAAA,CAAU,OAAA,KAAY,IAAA,GAAO,MAAA,GAAS,mBAAA,CAAoB,qBAAA,EAAsB,CAAE,KAAA,KAAU,CAAC,CAAA;AAClK,EAAA,MAAM,mBAAA,GAAsBA,uBAAA,CAAe,MAAA,CAAO,CAAC,CAAA;AACnD,EAAA,MAAM,iBAAA,GAAoBA,uBAAA,CAAe,WAAA,CAAY,CAACW,qBAAAA,KAAuB;AAEzE,IAAA,IAAI,UAAA,IAAcA,0BAAyB,gBAAA,CAAiB,MAAA,GAAS,GAAG,QAAA,CAAS,OAAA,uBAAc,IAAA,EAAK;AAAA,EACxG,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,MAAM,EAAE,eAAA,EAAiB,oBAAA,EAAsB,kBAAA,EAAoB,SAAA,EAAW,mBAAA,EAAqB,gBAAA,EAAkB,MAAA,EAAQ,gBAAA,EAAkB,UAAA,EAAY,oBAAA,EAAsB,8BAAA,KAAmC,aAAA,CAAc;AAAA,IAC9N,UAAA;AAAA,IACA,mBAAA;AAAA,IACA,sBAAA;AAAA,IACA,SAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA,iBAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACH,CAAA;AACD,EAAA,gBAAA,CAAiB;AAAA,IACb,UAAA,EAAY,CAAC,MAAA,IAAU,UAAA,IAAc,CAAC,KAAA,IAAS,YAAA,IAAgB,CAAC,aAAA,IAAiB,CAAC,gBAAA,IAAoB,CAAC;AAAA,GAC1G,CAAA;AACD,EAAA,MAAM,EAAE,sBAAA,EAAuB,GAAI,gBAAA,CAAiB;AAAA,IAChD,MAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA,EAAQ,MAAA,IAAU,IAAA,GAAO,MAAA,GAAS,KAAA;AAAA,IAClC,aAAA;AAAA,IACA,wBAAA;AAAA,IACA;AAAA,GACH,CAAA;AACD,EAAA,SAAS,QAAA,GAAW;AAChB,IAAA,OAAA,CAAQ,MAAA,CAAO,UAAA,GAAa,iBAAA,IAAqB,MAAA,CAAO,UAAA;AAAA,EAC5D;AACA,EAAA,SAAS,QAAQ,KAAA,EAAO;AACpB,IAAA,IAAIC,mBAAAA,EAAoBC,oBAAAA;AACxB,IAAA,IAAI,CAAC,WAAA,IAAe,CAAC,UAAA,EAAY;AACjC,IAAA,IAAI,SAAA,CAAU,WAAW,CAAC,SAAA,CAAU,QAAQ,QAAA,CAAS,KAAA,CAAM,MAAM,CAAA,EAAG;AACpE,IAAA,eAAA,CAAgB,OAAA,GAAA,CAAA,CAAYD,sBAAqB,SAAA,CAAU,OAAA,KAAY,OAAO,MAAA,GAASA,mBAAAA,CAAmB,qBAAA,EAAsB,CAAE,MAAA,KAAW,CAAA;AAC7I,IAAA,cAAA,CAAe,OAAA,GAAA,CAAA,CAAYC,uBAAsB,SAAA,CAAU,OAAA,KAAY,OAAO,MAAA,GAASA,oBAAAA,CAAoB,qBAAA,EAAsB,CAAE,KAAA,KAAU,CAAA;AAC7I,IAAA,aAAA,CAAc,IAAI,CAAA;AAClB,IAAA,aAAA,CAAc,OAAA,uBAAc,IAAA,EAAK;AAEjC,IAAA,IAAI,OAAM,EAAG;AACT,MAAA,MAAA,CAAO,gBAAA,CAAiB,UAAA,EAAY,MAAI,eAAA,CAAgB,UAAU,KAAA,EAAO;AAAA,QACrE,IAAA,EAAM;AAAA,OACT,CAAA;AAAA,IACL;AAEA,IAAA,KAAA,CAAM,MAAA,CAAO,iBAAA,CAAkB,KAAA,CAAM,SAAS,CAAA;AAC9C,IAAA,YAAA,CAAa,UAAU,UAAA,CAAW,SAAS,CAAA,GAAI,KAAA,CAAM,QAAQ,KAAA,CAAM,KAAA;AAAA,EACvE;AACA,EAAA,SAAS,UAAA,CAAW,IAAI,qBAAA,EAAuB;AAC3C,IAAA,IAAI,oBAAA;AACJ,IAAA,IAAI,OAAA,GAAU,EAAA;AACd,IAAA,MAAM,eAAA,GAAA,CAAmB,uBAAuB,MAAA,CAAO,YAAA,OAAmB,IAAA,GAAO,MAAA,GAAS,qBAAqB,QAAA,EAAS;AACxH,IAAA,MAAM,cAAc,SAAA,CAAU,OAAA,GAAU,aAAa,SAAA,CAAU,OAAA,EAAS,SAAS,CAAA,GAAI,IAAA;AACrF,IAAA,MAAM,IAAA,uBAAW,IAAA,EAAK;AAEtB,IAAA,IAAI,OAAA,CAAQ,YAAY,QAAA,EAAU;AAC9B,MAAA,OAAO,KAAA;AAAA,IACX;AACA,IAAA,IAAI,QAAQ,YAAA,CAAa,mBAAmB,KAAK,OAAA,CAAQ,OAAA,CAAQ,qBAAqB,CAAA,EAAG;AACrF,MAAA,OAAO,KAAA;AAAA,IACX;AACA,IAAA,IAAI,SAAA,KAAc,OAAA,IAAW,SAAA,KAAc,MAAA,EAAQ;AAC/C,MAAA,OAAO,IAAA;AAAA,IACX;AAEA,IAAA,IAAI,QAAA,CAAS,WAAW,IAAA,CAAK,OAAA,KAAY,QAAA,CAAS,OAAA,CAAQ,OAAA,EAAQ,GAAI,GAAA,EAAK;AACvE,MAAA,OAAO,KAAA;AAAA,IACX;AACA,IAAA,IAAI,gBAAgB,IAAA,EAAM;AACtB,MAAA,IAAI,SAAA,KAAc,QAAA,GAAW,WAAA,GAAc,CAAA,GAAI,cAAc,CAAA,EAAG;AAC5D,QAAA,OAAO,IAAA;AAAA,MACX;AAAA,IACJ;AAEA,IAAA,IAAI,eAAA,IAAmB,eAAA,CAAgB,MAAA,GAAS,CAAA,EAAG;AAC/C,MAAA,OAAO,KAAA;AAAA,IACX;AAEA,IAAA,IAAI,qBAAA,CAAsB,OAAA,IAAW,IAAA,CAAK,OAAA,EAAQ,GAAI,qBAAA,CAAsB,OAAA,CAAQ,OAAA,EAAQ,GAAI,iBAAA,IAAqB,WAAA,KAAgB,CAAA,EAAG;AACpI,MAAA,qBAAA,CAAsB,OAAA,GAAU,IAAA;AAChC,MAAA,OAAO,KAAA;AAAA,IACX;AACA,IAAA,IAAI,qBAAA,EAAuB;AACvB,MAAA,qBAAA,CAAsB,OAAA,GAAU,IAAA;AAEhC,MAAA,OAAO,KAAA;AAAA,IACX;AAEA,IAAA,OAAM,OAAA,EAAQ;AAEV,MAAA,IAAI,OAAA,CAAQ,YAAA,GAAe,OAAA,CAAQ,YAAA,EAAc;AAC7C,QAAA,IAAI,OAAA,CAAQ,cAAc,CAAA,EAAG;AACzB,UAAA,qBAAA,CAAsB,OAAA,uBAAc,IAAA,EAAK;AAEzC,UAAA,OAAO,KAAA;AAAA,QACX;AACA,QAAA,IAAI,OAAA,CAAQ,YAAA,CAAa,MAAM,CAAA,KAAM,QAAA,EAAU;AAC3C,UAAA,OAAO,IAAA;AAAA,QACX;AAAA,MACJ;AAEA,MAAA,OAAA,GAAU,OAAA,CAAQ,UAAA;AAAA,IACtB;AAEA,IAAA,OAAO,IAAA;AAAA,EACX;AACA,EAAA,SAAS,OAAO,KAAA,EAAO;AACnB,IAAA,IAAI,CAAC,UAAU,OAAA,EAAS;AACpB,MAAA;AAAA,IACJ;AAEA,IAAA,IAAI,UAAA,EAAY;AACZ,MAAA,MAAM,mBAAA,GAAsB,SAAA,KAAc,QAAA,IAAY,SAAA,KAAc,UAAU,CAAA,GAAI,EAAA;AAClF,MAAA,MAAM,eAAA,GAAA,CAAmB,aAAa,OAAA,IAAW,UAAA,CAAW,SAAS,CAAA,GAAI,KAAA,CAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAA,IAAU,mBAAA;AACvG,MAAA,MAAM,wBAAwB,eAAA,GAAkB,CAAA;AAEhD,MAAA,MAAM,6BAAA,GAAgC,UAAA,IAAc,CAAC,WAAA,IAAe,CAAC,qBAAA;AAErE,MAAA,IAAI,6BAAA,IAAiC,yBAAyB,CAAA,EAAG;AAEjE,MAAA,MAAM,kBAAA,GAAqB,IAAA,CAAK,GAAA,CAAI,eAAe,CAAA;AACnD,MAAA,MAAM,OAAA,GAAU,QAAA,CAAS,aAAA,CAAc,4BAA4B,CAAA;AACnE,MAAA,MAAM,kBAAkB,SAAA,KAAc,QAAA,IAAY,cAAc,KAAA,GAAQ,eAAA,CAAgB,UAAU,cAAA,CAAe,OAAA;AAEjH,MAAA,IAAI,oBAAoB,kBAAA,GAAqB,eAAA;AAC7C,MAAA,MAAM,0BAAA,GAA6B,8BAAA,CAA+B,kBAAA,EAAoB,qBAAqB,CAAA;AAC3G,MAAA,IAAI,+BAA+B,IAAA,EAAM;AACrC,QAAA,iBAAA,GAAoB,0BAAA;AAAA,MACxB;AAEA,MAAA,IAAI,6BAAA,IAAiC,qBAAqB,CAAA,EAAG;AACzD,QAAA;AAAA,MACJ;AACA,MAAA,IAAI,CAAC,gBAAgB,OAAA,IAAW,CAAC,WAAW,KAAA,CAAM,MAAA,EAAQ,qBAAqB,CAAA,EAAG;AAClF,MAAA,SAAA,CAAU,OAAA,CAAQ,SAAA,CAAU,GAAA,CAAI,UAAU,CAAA;AAE1C,MAAA,eAAA,CAAgB,OAAA,GAAU,IAAA;AAC1B,MAAA,GAAA,CAAI,UAAU,OAAA,EAAS;AAAA,QACnB,UAAA,EAAY;AAAA,OACf,CAAA;AACD,MAAA,GAAA,CAAI,WAAW,OAAA,EAAS;AAAA,QACpB,UAAA,EAAY;AAAA,OACf,CAAA;AACD,MAAA,IAAI,UAAA,EAAY;AACZ,QAAA,gBAAA,CAAiB;AAAA,UACb;AAAA,SACH,CAAA;AAAA,MACL;AAEA,MAAA,IAAI,qBAAA,IAAyB,CAAC,UAAA,EAAY;AACtC,QAAA,MAAM,uBAAA,GAA0B,YAAY,eAAe,CAAA;AAC3D,QAAA,MAAM,iBAAiB,IAAA,CAAK,GAAA,CAAI,uBAAA,GAA0B,EAAA,EAAI,CAAC,CAAA,GAAI,mBAAA;AACnE,QAAA,GAAA,CAAI,UAAU,OAAA,EAAS;AAAA,UACnB,SAAA,EAAW,WAAW,SAAS,CAAA,GAAI,kBAAkB,cAAc,CAAA,MAAA,CAAA,GAAW,eAAe,cAAc,CAAA,SAAA;AAAA,SAC9G,CAAA;AACD,QAAA;AAAA,MACJ;AACA,MAAA,MAAM,eAAe,CAAA,GAAI,iBAAA;AACzB,MAAA,IAAI,UAAA,IAAc,aAAA,IAAiB,oBAAA,KAAyB,aAAA,GAAgB,CAAA,EAAG;AAC3E,QAAA,UAAA,IAAc,IAAA,GAAO,MAAA,GAAS,UAAA,CAAW,KAAA,EAAO,iBAAiB,CAAA;AACjE,QAAA,GAAA,CAAI,WAAW,OAAA,EAAS;AAAA,UACpB,OAAA,EAAS,GAAG,YAAY,CAAA,CAAA;AAAA,UACxB,UAAA,EAAY;AAAA,WACb,IAAI,CAAA;AAAA,MACX;AACA,MAAA,IAAI,OAAA,IAAW,UAAA,CAAW,OAAA,IAAW,qBAAA,EAAuB;AAExD,QAAA,MAAM,UAAA,GAAa,KAAK,GAAA,CAAI,QAAA,KAAa,iBAAA,IAAqB,CAAA,GAAI,QAAA,EAAS,CAAA,EAAI,CAAC,CAAA;AAChF,QAAA,MAAM,iBAAA,GAAoB,IAAI,iBAAA,GAAoB,CAAA;AAClD,QAAA,MAAM,iBAAiB,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,EAAA,GAAK,oBAAoB,EAAE,CAAA;AAC9D,QAAA,GAAA,CAAI,OAAA,EAAS;AAAA,UACT,YAAA,EAAc,GAAG,iBAAiB,CAAA,EAAA,CAAA;AAAA,UAClC,SAAA,EAAW,UAAA,CAAW,SAAS,CAAA,GAAI,CAAA,MAAA,EAAS,UAAU,CAAA,iBAAA,EAAoB,cAAc,CAAA,MAAA,CAAA,GAAW,CAAA,MAAA,EAAS,UAAU,CAAA,cAAA,EAAiB,cAAc,CAAA,SAAA,CAAA;AAAA,UACrJ,UAAA,EAAY;AAAA,WACb,IAAI,CAAA;AAAA,MACX;AACA,MAAA,IAAI,CAAC,UAAA,EAAY;AACb,QAAA,MAAM,iBAAiB,kBAAA,GAAqB,mBAAA;AAC5C,QAAA,GAAA,CAAI,UAAU,OAAA,EAAS;AAAA,UACnB,SAAA,EAAW,WAAW,SAAS,CAAA,GAAI,kBAAkB,cAAc,CAAA,MAAA,CAAA,GAAW,eAAe,cAAc,CAAA,SAAA;AAAA,SAC9G,CAAA;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AACA,EAAAb,uBAAA,CAAe,UAAU,MAAI;AACzB,IAAA,MAAA,CAAO,sBAAsB,MAAI;AAC7B,MAAA,aAAA,CAAc,OAAA,GAAU,IAAA;AAAA,IAC5B,CAAC,CAAA;AAAA,EACL,CAAA,EAAG,EAAE,CAAA;AACL,EAAAA,uBAAA,CAAe,UAAU,MAAI;AACzB,IAAA,IAAI,sBAAA;AACJ,IAAA,SAAS,sBAAA,GAAyB;AAC9B,MAAA,IAAI,CAAC,SAAA,CAAU,OAAA,IAAW,CAAC,gBAAA,EAAkB;AAC7C,MAAA,MAAM,iBAAiB,QAAA,CAAS,aAAA;AAChC,MAAA,IAAI,OAAA,CAAQ,cAAc,CAAA,IAAK,cAAA,CAAe,OAAA,EAAS;AACnD,QAAA,IAAIc,uBAAAA;AACJ,QAAA,MAAM,yBAAyBA,uBAAAA,GAAyB,MAAA,CAAO,mBAAmB,IAAA,GAAO,MAAA,GAASA,wBAAuB,MAAA,KAAW,CAAA;AACpI,QAAA,MAAM,cAAc,MAAA,CAAO,WAAA;AAE3B,QAAA,IAAI,kBAAkB,WAAA,GAAc,oBAAA;AACpC,QAAA,MAAM,YAAA,GAAe,SAAA,CAAU,OAAA,CAAQ,qBAAA,GAAwB,MAAA,IAAU,CAAA;AAEzE,QAAA,MAAM,YAAA,GAAe,eAAe,WAAA,GAAc,GAAA;AAClD,QAAA,IAAI,CAAC,oBAAoB,OAAA,EAAS;AAC9B,UAAA,mBAAA,CAAoB,OAAA,GAAU,YAAA;AAAA,QAClC;AACA,QAAA,MAAM,aAAA,GAAgB,SAAA,CAAU,OAAA,CAAQ,qBAAA,EAAsB,CAAE,GAAA;AAEhE,QAAA,IAAI,KAAK,GAAA,CAAI,uBAAA,CAAwB,OAAA,GAAU,eAAe,IAAI,EAAA,EAAI;AAClE,UAAA,cAAA,CAAe,OAAA,GAAU,CAAC,cAAA,CAAe,OAAA;AAAA,QAC7C;AACA,QAAA,IAAI,UAAA,IAAc,UAAA,CAAW,MAAA,GAAS,CAAA,IAAK,oBAAoB,oBAAA,EAAsB;AACjF,UAAA,MAAM,qBAAA,GAAwB,gBAAA,CAAiB,oBAAoB,CAAA,IAAK,CAAA;AACxE,UAAA,eAAA,IAAmB,qBAAA;AAAA,QACvB;AACA,QAAA,uBAAA,CAAwB,OAAA,GAAU,eAAA;AAElC,QAAA,IAAI,YAAA,GAAe,oBAAA,IAAwB,cAAA,CAAe,OAAA,EAAS;AAC/D,UAAA,MAAM,MAAA,GAAS,SAAA,CAAU,OAAA,CAAQ,qBAAA,EAAsB,CAAE,MAAA;AACzD,UAAA,IAAI,eAAA,GAAkB,MAAA;AACtB,UAAA,IAAI,SAAS,oBAAA,EAAsB;AAC/B,YAAA,eAAA,GAAkB,oBAAA,IAAwB,eAAe,aAAA,GAAgB,iBAAA,CAAA;AAAA,UAC7E;AAEA,UAAA,IAAI,KAAA,EAAO;AACP,YAAA,SAAA,CAAU,OAAA,CAAQ,MAAM,MAAA,GAAS,CAAA,EAAG,SAAS,IAAA,CAAK,GAAA,CAAI,eAAA,EAAiB,CAAC,CAAC,CAAA,EAAA,CAAA;AAAA,UAC7E,CAAA,MAAO;AACH,YAAA,SAAA,CAAU,OAAA,CAAQ,MAAM,MAAA,GAAS,CAAA,EAAG,KAAK,GAAA,CAAI,eAAA,EAAiB,oBAAA,GAAuB,aAAa,CAAC,CAAA,EAAA,CAAA;AAAA,UACvG;AAAA,QACJ,CAAA,MAAA,IAAW,CAAC,eAAA,EAAgB,EAAG;AAC3B,UAAA,SAAA,CAAU,OAAA,CAAQ,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG,oBAAoB,OAAO,CAAA,EAAA,CAAA;AAAA,QACnE;AACA,QAAA,IAAI,cAAc,UAAA,CAAW,MAAA,GAAS,CAAA,IAAK,CAAC,eAAe,OAAA,EAAS;AAChE,UAAA,SAAA,CAAU,OAAA,CAAQ,MAAM,MAAA,GAAS,CAAA,GAAA,CAAA;AAAA,QACrC,CAAA,MAAO;AAEH,UAAA,SAAA,CAAU,OAAA,CAAQ,MAAM,MAAA,GAAS,CAAA,EAAG,KAAK,GAAA,CAAI,eAAA,EAAiB,CAAC,CAAC,CAAA,EAAA,CAAA;AAAA,QACpE;AAAA,MACJ;AAAA,IACJ;AACA,IAAA,CAAC,sBAAA,GAAyB,OAAO,cAAA,KAAmB,IAAA,GAAO,SAAS,sBAAA,CAAuB,gBAAA,CAAiB,UAAU,sBAAsB,CAAA;AAC5I,IAAA,OAAO,MAAI;AACP,MAAA,IAAIA,uBAAAA;AACJ,MAAA,OAAA,CAAQA,uBAAAA,GAAyB,OAAO,cAAA,KAAmB,IAAA,GAAO,SAASA,uBAAAA,CAAuB,mBAAA,CAAoB,UAAU,sBAAsB,CAAA;AAAA,IAC1J,CAAA;AAAA,EACJ,CAAA,EAAG;AAAA,IACC,oBAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACH,CAAA;AACD,EAAA,SAAS,YAAY,UAAA,EAAY;AAC7B,IAAA,UAAA,EAAW;AACX,IAAA,OAAA,IAAW,IAAA,GAAO,SAAS,OAAA,EAAQ;AACnC,IAAA,IAAI,CAAC,UAAA,EAAY;AACb,MAAA,SAAA,CAAU,KAAK,CAAA;AAAA,IACnB;AACA,IAAA,UAAA,CAAW,MAAI;AACX,MAAA,IAAI,UAAA,EAAY;AACZ,QAAA,kBAAA,CAAmB,UAAA,CAAW,CAAC,CAAC,CAAA;AAAA,MACpC;AAAA,IACJ,CAAA,EAAG,WAAA,CAAY,QAAA,GAAW,GAAI,CAAA;AAAA,EAClC;AACA,EAAA,SAAS,WAAA,GAAc;AACnB,IAAA,IAAI,CAAC,UAAU,OAAA,EAAS;AACxB,IAAA,MAAM,OAAA,GAAU,QAAA,CAAS,aAAA,CAAc,4BAA4B,CAAA;AACnE,IAAA,MAAM,kBAAA,GAAqB,YAAA,CAAa,SAAA,CAAU,OAAA,EAAS,SAAS,CAAA;AACpE,IAAA,GAAA,CAAI,UAAU,OAAA,EAAS;AAAA,MACnB,SAAA,EAAW,sBAAA;AAAA,MACX,UAAA,EAAY,aAAa,WAAA,CAAY,QAAQ,kBAAkB,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,KAC5F,CAAA;AACD,IAAA,GAAA,CAAI,WAAW,OAAA,EAAS;AAAA,MACpB,UAAA,EAAY,WAAW,WAAA,CAAY,QAAQ,kBAAkB,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,MACvF,OAAA,EAAS;AAAA,KACZ,CAAA;AAED,IAAA,IAAI,qBAAA,IAAyB,kBAAA,IAAsB,kBAAA,GAAqB,CAAA,IAAK,MAAA,EAAQ;AACjF,MAAA,GAAA,CAAI,OAAA,EAAS;AAAA,QACT,YAAA,EAAc,GAAG,aAAa,CAAA,EAAA,CAAA;AAAA,QAC9B,QAAA,EAAU,QAAA;AAAA,QACV,GAAG,UAAA,CAAW,SAAS,CAAA,GAAI;AAAA,UACvB,SAAA,EAAW,CAAA,MAAA,EAAS,QAAA,EAAU,CAAA,0DAAA,CAAA;AAAA,UAC9B,eAAA,EAAiB;AAAA,SACrB,GAAI;AAAA,UACA,SAAA,EAAW,CAAA,MAAA,EAAS,QAAA,EAAU,CAAA,0DAAA,CAAA;AAAA,UAC9B,eAAA,EAAiB;AAAA,SACrB;AAAA,QACA,kBAAA,EAAoB,0BAAA;AAAA,QACpB,kBAAA,EAAoB,CAAA,EAAG,WAAA,CAAY,QAAQ,CAAA,CAAA,CAAA;AAAA,QAC3C,0BAA0B,CAAA,aAAA,EAAgB,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,SACrE,IAAI,CAAA;AAAA,IACX;AAAA,EACJ;AACA,EAAA,SAAS,UAAA,GAAa;AAClB,IAAA,IAAI,CAAC,UAAA,IAAc,CAAC,SAAA,CAAU,OAAA,EAAS;AACvC,IAAA,SAAA,CAAU,OAAA,CAAQ,SAAA,CAAU,MAAA,CAAO,UAAU,CAAA;AAC7C,IAAA,eAAA,CAAgB,OAAA,GAAU,KAAA;AAC1B,IAAA,aAAA,CAAc,KAAK,CAAA;AACnB,IAAA,WAAA,CAAY,OAAA,uBAAc,IAAA,EAAK;AAAA,EACnC;AACA,EAAA,SAAS,UAAU,KAAA,EAAO;AACtB,IAAA,IAAI,CAAC,UAAA,IAAc,CAAC,SAAA,CAAU,OAAA,EAAS;AACvC,IAAA,SAAA,CAAU,OAAA,CAAQ,SAAA,CAAU,MAAA,CAAO,UAAU,CAAA;AAC7C,IAAA,eAAA,CAAgB,OAAA,GAAU,KAAA;AAC1B,IAAA,aAAA,CAAc,KAAK,CAAA;AACnB,IAAA,WAAA,CAAY,OAAA,uBAAc,IAAA,EAAK;AAC/B,IAAA,MAAM,WAAA,GAAc,YAAA,CAAa,SAAA,CAAU,OAAA,EAAS,SAAS,CAAA;AAC7D,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,UAAA,CAAW,KAAA,CAAM,MAAA,EAAQ,KAAK,CAAA,IAAK,CAAC,WAAA,IAAe,MAAA,CAAO,KAAA,CAAM,WAAW,CAAA,EAAG;AAC7F,IAAA,IAAI,aAAA,CAAc,YAAY,IAAA,EAAM;AACpC,IAAA,MAAM,YAAY,WAAA,CAAY,OAAA,CAAQ,SAAQ,GAAI,aAAA,CAAc,QAAQ,OAAA,EAAQ;AAChF,IAAA,MAAM,SAAA,GAAY,aAAa,OAAA,IAAW,UAAA,CAAW,SAAS,CAAA,GAAI,KAAA,CAAM,QAAQ,KAAA,CAAM,KAAA,CAAA;AACtF,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,GAAA,CAAI,SAAS,CAAA,GAAI,SAAA;AACvC,IAAA,IAAI,WAAW,IAAA,EAAM;AAEjB,MAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,MAAA,UAAA,CAAW,MAAI;AACX,QAAA,eAAA,CAAgB,KAAK,CAAA;AAAA,MACzB,GAAG,GAAG,CAAA;AAAA,IACV;AACA,IAAA,IAAI,UAAA,EAAY;AACZ,MAAA,MAAM,mBAAA,GAAsB,SAAA,KAAc,QAAA,IAAY,SAAA,KAAc,UAAU,CAAA,GAAI,EAAA;AAClF,MAAA,mBAAA,CAAoB;AAAA,QAChB,iBAAiB,SAAA,GAAY,mBAAA;AAAA,QAC7B,WAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACH,CAAA;AACD,MAAA,aAAA,IAAiB,IAAA,GAAO,MAAA,GAAS,aAAA,CAAc,KAAA,EAAO,IAAI,CAAA;AAC1D,MAAA;AAAA,IACJ;AAEA,IAAA,IAAI,cAAc,QAAA,IAAY,SAAA,KAAc,UAAU,SAAA,GAAY,CAAA,GAAI,YAAY,CAAA,EAAG;AACjF,MAAA,WAAA,EAAY;AACZ,MAAA,aAAA,IAAiB,IAAA,GAAO,MAAA,GAAS,aAAA,CAAc,KAAA,EAAO,IAAI,CAAA;AAC1D,MAAA;AAAA,IACJ;AACA,IAAA,IAAI,WAAW,kBAAA,EAAoB;AAC/B,MAAA,WAAA,EAAY;AACZ,MAAA,aAAA,IAAiB,IAAA,GAAO,MAAA,GAAS,aAAA,CAAc,KAAA,EAAO,KAAK,CAAA;AAC3D,MAAA;AAAA,IACJ;AACA,IAAA,IAAI,+CAAA;AACJ,IAAA,MAAM,mBAAA,GAAsB,IAAA,CAAK,GAAA,CAAA,CAAK,+CAAA,GAAkD,SAAA,CAAU,OAAA,CAAQ,qBAAA,EAAsB,CAAE,MAAA,KAAW,IAAA,GAAO,+CAAA,GAAkD,CAAA,EAAG,OAAO,WAAW,CAAA;AAC3N,IAAA,IAAI,8CAAA;AACJ,IAAA,MAAM,kBAAA,GAAqB,IAAA,CAAK,GAAA,CAAA,CAAK,8CAAA,GAAiD,SAAA,CAAU,OAAA,CAAQ,qBAAA,EAAsB,CAAE,KAAA,KAAU,IAAA,GAAO,8CAAA,GAAiD,CAAA,EAAG,OAAO,UAAU,CAAA;AACtN,IAAA,MAAM,iBAAA,GAAoB,SAAA,KAAc,MAAA,IAAU,SAAA,KAAc,OAAA;AAChE,IAAA,IAAI,KAAK,GAAA,CAAI,WAAW,MAAM,iBAAA,GAAoB,kBAAA,GAAqB,uBAAuB,cAAA,EAAgB;AAC1G,MAAA,WAAA,EAAY;AACZ,MAAA,aAAA,IAAiB,IAAA,GAAO,MAAA,GAAS,aAAA,CAAc,KAAA,EAAO,KAAK,CAAA;AAC3D,MAAA;AAAA,IACJ;AACA,IAAA,aAAA,IAAiB,IAAA,GAAO,MAAA,GAAS,aAAA,CAAc,KAAA,EAAO,IAAI,CAAA;AAC1D,IAAA,WAAA,EAAY;AAAA,EAChB;AACA,EAAAd,uBAAA,CAAe,UAAU,MAAI;AAEzB,IAAA,IAAI,MAAA,EAAQ;AACR,MAAA,GAAA,CAAI,SAAS,eAAA,EAAiB;AAAA,QAC1B,cAAA,EAAgB;AAAA,OACnB,CAAA;AACD,MAAA,QAAA,CAAS,OAAA,uBAAc,IAAA,EAAK;AAAA,IAChC;AACA,IAAA,OAAO,MAAI;AACP,MAAA,KAAA,CAAM,QAAA,CAAS,iBAAiB,gBAAgB,CAAA;AAAA,IACpD,CAAA;AAAA,EACJ,CAAA,EAAG;AAAA,IACC;AAAA,GACH,CAAA;AACD,EAAA,SAAS,mBAAmB,CAAA,EAAG;AAC3B,IAAA,MAAM,QAAQ,CAAA,GAAA,CAAK,MAAA,CAAO,UAAA,GAAa,mBAAA,IAAuB,OAAO,UAAA,GAAa,CAAA;AAClF,IAAA,MAAM,gBAAA,GAAmB,CAAA,GAAI,CAAC,mBAAA,GAAsB,CAAA;AACpD,IAAA,IAAI,sBAAsB,OAAA,EAAS;AAC/B,MAAA,MAAA,CAAO,YAAA,CAAa,sBAAsB,OAAO,CAAA;AAAA,IACrD;AACA,IAAA,GAAA,CAAI,UAAU,OAAA,EAAS;AAAA,MACnB,UAAA,EAAY,aAAa,WAAA,CAAY,QAAQ,kBAAkB,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,MACzF,SAAA,EAAW,UAAA,CAAW,SAAS,CAAA,GAAI,CAAA,MAAA,EAAS,KAAK,CAAA,iBAAA,EAAoB,gBAAgB,CAAA,MAAA,CAAA,GAAW,CAAA,MAAA,EAAS,KAAK,CAAA,cAAA,EAAiB,gBAAgB,CAAA,SAAA;AAAA,KAClJ,CAAA;AACD,IAAA,IAAI,CAAC,CAAA,IAAK,SAAA,CAAU,OAAA,EAAS;AACzB,MAAA,qBAAA,CAAsB,OAAA,GAAU,WAAW,MAAI;AAC3C,QAAA,MAAM,cAAA,GAAiB,YAAA,CAAa,SAAA,CAAU,OAAA,EAAS,SAAS,CAAA;AAChE,QAAA,GAAA,CAAI,UAAU,OAAA,EAAS;AAAA,UACnB,UAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAW,WAAW,SAAS,CAAA,GAAI,kBAAkB,cAAc,CAAA,MAAA,CAAA,GAAW,eAAe,cAAc,CAAA,SAAA;AAAA,SAC9G,CAAA;AAAA,MACL,GAAG,GAAG,CAAA;AAAA,IACV;AAAA,EACJ;AACA,EAAA,SAAS,YAAA,CAAa,QAAQ,iBAAA,EAAmB;AAC7C,IAAA,IAAI,oBAAoB,CAAA,EAAG;AAC3B,IAAA,MAAM,YAAA,GAAA,CAAgB,MAAA,CAAO,UAAA,GAAa,mBAAA,IAAuB,MAAA,CAAO,UAAA;AACxE,IAAA,MAAM,QAAA,GAAW,YAAA,GAAe,iBAAA,IAAqB,CAAA,GAAI,YAAA,CAAA;AACzD,IAAA,MAAM,YAAA,GAAe,CAAC,mBAAA,GAAsB,iBAAA,GAAoB,mBAAA;AAChE,IAAA,GAAA,CAAI,UAAU,OAAA,EAAS;AAAA,MACnB,SAAA,EAAW,UAAA,CAAW,SAAS,CAAA,GAAI,CAAA,MAAA,EAAS,QAAQ,CAAA,iBAAA,EAAoB,YAAY,CAAA,MAAA,CAAA,GAAW,CAAA,MAAA,EAAS,QAAQ,CAAA,cAAA,EAAiB,YAAY,CAAA,SAAA,CAAA;AAAA,MAC7I,UAAA,EAAY;AAAA,KACf,CAAA;AAAA,EACL;AACA,EAAA,SAAS,eAAA,CAAgB,QAAQ,CAAA,EAAG;AAChC,IAAA,MAAM,MAAM,UAAA,CAAW,SAAS,CAAA,GAAI,MAAA,CAAO,cAAc,MAAA,CAAO,UAAA;AAChE,IAAA,MAAM,KAAA,GAAQ,CAAA,GAAA,CAAK,GAAA,GAAM,mBAAA,IAAuB,GAAA,GAAM,CAAA;AACtD,IAAA,MAAM,SAAA,GAAY,CAAA,GAAI,CAAC,mBAAA,GAAsB,CAAA;AAC7C,IAAA,IAAI,CAAA,EAAG;AACH,MAAA,GAAA,CAAI,UAAU,OAAA,EAAS;AAAA,QACnB,UAAA,EAAY,aAAa,WAAA,CAAY,QAAQ,kBAAkB,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,QACzF,SAAA,EAAW,UAAA,CAAW,SAAS,CAAA,GAAI,CAAA,MAAA,EAAS,KAAK,CAAA,iBAAA,EAAoB,SAAS,CAAA,MAAA,CAAA,GAAW,CAAA,MAAA,EAAS,KAAK,CAAA,cAAA,EAAiB,SAAS,CAAA,SAAA;AAAA,OACpI,CAAA;AAAA,IACL;AAAA,EACJ;AACA,EAAAA,uBAAA,CAAe,UAAU,MAAI;AACzB,IAAA,IAAI,CAAC,KAAA,EAAO;AAER,MAAA,MAAA,CAAO,sBAAsB,MAAI;AAC7B,QAAA,QAAA,CAAS,IAAA,CAAK,MAAM,aAAA,GAAgB,MAAA;AAAA,MACxC,CAAC,CAAA;AAAA,IACL;AAAA,EACJ,CAAA,EAAG;AAAA,IACC;AAAA,GACH,CAAA;AACD,EAAA,uBAAqBA,uBAAA,CAAe,cAA8B,IAAA,EAAM;AAAA,IACpE,WAAA;AAAA,IACA,YAAA,EAAc,CAAC,IAAA,KAAO;AAClB,MAAA,IAAI,CAAC,WAAA,IAAe,CAAC,IAAA,EAAM;AAC3B,MAAA,IAAI,IAAA,EAAM;AACN,QAAA,gBAAA,CAAiB,IAAI,CAAA;AAAA,MACzB,CAAA,MAAO;AACH,QAAA,WAAA,CAAY,IAAI,CAAA;AAAA,MACpB;AACA,MAAA,SAAA,CAAU,IAAI,CAAA;AAAA,IAClB,CAAA;AAAA,IACA,IAAA,EAAM;AAAA,GACV,kBAAiBA,uBAAA,CAAe,aAAA,CAAc,aAAA,CAAc,QAAA,EAAU;AAAA,IAClE,KAAA,EAAO;AAAA,MACH,eAAA;AAAA,MACA,UAAA;AAAA,MACA,kBAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA;AAAA,MACA,YAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,aAAA;AAAA,MACA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,YAAA;AAAA,MACA,kBAAA;AAAA,MACA,eAAA;AAAA,MACA,cAAA;AAAA,MACA,KAAA;AAAA,MACA,gBAAA;AAAA,MACA,oBAAA;AAAA,MACA,SAAA;AAAA,MACA,qBAAA;AAAA,MACA,yBAAA;AAAA,MACA,YAAA;AAAA,MACA,SAAA;AAAA,MACA;AAAA;AACJ,GACJ,EAAG,QAAQ,CAAC,CAAA;AAChB;AACA,IAAMe,QAAAA,2CAAuC,UAAA,CAAW,SAAS,EAAE,GAAG,IAAA,IAAQ,GAAA,EAAK;AAC/E,EAAA,MAAM,EAAE,YAAY,UAAA,EAAY,SAAA,EAAW,YAAY,MAAA,EAAQ,KAAA,EAAO,aAAA,EAAc,GAAI,gBAAA,EAAiB;AACzG,EAAA,MAAM,WAAA,GAAcV,gBAAAA,CAAgB,GAAA,EAAK,UAAU,CAAA;AACnD,EAAA,MAAM,aAAA,GAAgB,UAAA,IAAc,UAAA,CAAW,MAAA,GAAS,CAAA;AAExD,EAAA,IAAI,CAAC,KAAA,EAAO;AACR,IAAA,OAAO,IAAA;AAAA,EACX;AACA,EAAA,MAAM,YAAYL,uBAAA,CAAe,WAAA,CAAY,CAAC,KAAA,KAAQ,SAAA,CAAU,KAAK,CAAA,EAAG;AAAA,IACpE;AAAA,GACH,CAAA;AACD,EAAA,uBAAqBA,uBAAA,CAAe,cAA8B,OAAA,EAAS;AAAA,IACvE,SAAA;AAAA,IACA,GAAA,EAAK,WAAA;AAAA,IACL,mBAAA,EAAqB,EAAA;AAAA,IACrB,uBAAA,EAAyB,MAAA,IAAU,aAAA,GAAgB,MAAA,GAAS,OAAA;AAAA,IAC5D,+BAAA,EAAiC,MAAA,IAAU,UAAA,GAAa,MAAA,GAAS,OAAA;AAAA,IACjE,sBAAsB,aAAA,IAAiB,IAAA,GAAO,MAAA,GAAS,aAAA,CAAc,WAAW,MAAA,GAAS,OAAA;AAAA,IACzF,GAAG;AAAA,GACN,CAAA;AACL,CAAC,CAAA;AACDe,QAAAA,CAAQ,WAAA,GAAc,gBAAA;AACtB,IAAMC,QAAAA,mBAAwBhB,uBAAA,CAAe,UAAA,CAAW,SAAS,EAAE,oBAAA,EAAsB,KAAA,EAAO,eAAA,EAAiB,GAAG,IAAA,EAAK,EAAG,GAAA,EAAK;AAC7H,EAAA,MAAM,EAAE,SAAA,EAAW,OAAA,EAAS,SAAA,EAAW,MAAA,EAAQ,gBAAgB,gBAAA,EAAkB,oBAAA,EAAsB,KAAA,EAAO,MAAA,EAAQ,WAAW,UAAA,EAAY,SAAA,EAAW,YAAY,aAAA,EAAe,SAAA,KAAc,gBAAA,EAAiB;AAElN,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIA,uBAAA,CAAe,SAAS,KAAK,CAAA;AAC/E,EAAA,MAAM,WAAA,GAAcK,gBAAAA,CAAgB,GAAA,EAAK,SAAS,CAAA;AAClD,EAAA,MAAM,eAAA,GAAkBL,uBAAA,CAAe,MAAA,CAAO,IAAI,CAAA;AAClD,EAAA,MAAM,wBAAA,GAA2BA,uBAAA,CAAe,MAAA,CAAO,IAAI,CAAA;AAC3D,EAAA,MAAM,oBAAA,GAAuBA,uBAAA,CAAe,MAAA,CAAO,KAAK,CAAA;AACxD,EAAA,MAAM,aAAA,GAAgB,UAAA,IAAc,UAAA,CAAW,MAAA,GAAS,CAAA;AACxD,EAAA,kBAAA,EAAmB;AACnB,EAAA,MAAM,kBAAA,GAAqB,CAAC,KAAA,EAAOiB,UAAAA,EAAW,YAAY,CAAA,KAAI;AAC1D,IAAA,IAAI,oBAAA,CAAqB,SAAS,OAAO,IAAA;AACzC,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,CAAC,CAAA;AAC/B,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,CAAC,CAAA;AAC/B,IAAA,MAAM,WAAW,MAAA,GAAS,MAAA;AAC1B,IAAA,MAAM,OAAA,GAAU;AAAA,MACZ,QAAA;AAAA,MACA;AAAA,KACJ,CAAE,QAAA,CAASA,UAAS,CAAA,GAAI,CAAA,GAAI,EAAA;AAC5B,IAAA,IAAIA,UAAAA,KAAc,MAAA,IAAUA,UAAAA,KAAc,OAAA,EAAS;AAC/C,MAAA,MAAM,kBAAA,GAAqB,KAAA,CAAM,CAAA,GAAI,OAAA,GAAU,CAAA;AAC/C,MAAA,IAAI,CAAC,kBAAA,IAAsB,MAAA,IAAU,CAAA,IAAK,UAAU,SAAA,EAAW;AAC3D,QAAA,OAAO,QAAA;AAAA,MACX;AAAA,IACJ,CAAA,MAAO;AACH,MAAA,MAAM,kBAAA,GAAqB,KAAA,CAAM,CAAA,GAAI,OAAA,GAAU,CAAA;AAC/C,MAAA,IAAI,CAAC,kBAAA,IAAsB,MAAA,IAAU,CAAA,IAAK,UAAU,SAAA,EAAW;AAC3D,QAAA,OAAO,CAAC,QAAA;AAAA,MACZ;AAAA,IACJ;AACA,IAAA,oBAAA,CAAqB,OAAA,GAAU,IAAA;AAC/B,IAAA,OAAO,IAAA;AAAA,EACX,CAAA;AACA,EAAAjB,uBAAA,CAAe,UAAU,MAAI;AACzB,IAAA,IAAI,aAAA,EAAe;AACf,MAAA,MAAA,CAAO,sBAAsB,MAAI;AAC7B,QAAA,oBAAA,CAAqB,IAAI,CAAA;AAAA,MAC7B,CAAC,CAAA;AAAA,IACL;AAAA,EACJ,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,SAAS,kBAAkB,KAAA,EAAO;AAC9B,IAAA,eAAA,CAAgB,OAAA,GAAU,IAAA;AAC1B,IAAA,oBAAA,CAAqB,OAAA,GAAU,KAAA;AAC/B,IAAA,SAAA,CAAU,KAAK,CAAA;AAAA,EACnB;AACA,EAAA,uBAAqBA,uBAAA,CAAe,cAA8B,OAAA,EAAS;AAAA,IACvE,4BAAA,EAA8B,SAAA;AAAA,IAC9B,kBAAA,EAAoB,EAAA;AAAA,IACpB,+BAAA,EAAiC,oBAAoB,MAAA,GAAS,OAAA;AAAA,IAC9D,uBAAA,EAAyB,MAAA,IAAU,aAAA,GAAgB,MAAA,GAAS,OAAA;AAAA,IAC5D,4BAAA,EAA8B,YAAY,MAAA,GAAS,OAAA;AAAA,IACnD,sBAAsB,aAAA,IAAiB,IAAA,GAAO,MAAA,GAAS,aAAA,CAAc,WAAW,MAAA,GAAS,OAAA;AAAA,IACzF,GAAG,IAAA;AAAA,IACH,GAAA,EAAK,WAAA;AAAA,IACL,KAAA,EAAO,gBAAA,IAAoB,gBAAA,CAAiB,MAAA,GAAS,CAAA,GAAI;AAAA,MACrD,uBAAuB,CAAA,EAAG,gBAAA,CAAiB,wBAAwB,IAAA,GAAO,oBAAA,GAAuB,CAAC,CAAC,CAAA,EAAA,CAAA;AAAA,MACnG,GAAG;AAAA,KACP,GAAI,KAAA;AAAA,IACJ,aAAA,EAAe,CAAC,KAAA,KAAQ;AACpB,MAAA,IAAI,UAAA,EAAY;AAChB,MAAA,IAAA,CAAK,iBAAiB,IAAA,GAAO,MAAA,GAAS,KAAK,aAAA,CAAc,IAAA,CAAK,MAAM,KAAK,CAAA;AACzE,MAAA,eAAA,CAAgB,OAAA,GAAU;AAAA,QACtB,GAAG,KAAA,CAAM,KAAA;AAAA,QACT,GAAG,KAAA,CAAM;AAAA,OACb;AACA,MAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,IACjB,CAAA;AAAA,IACA,eAAA,EAAiB,CAAC,CAAA,KAAI;AAClB,MAAA,eAAA,IAAmB,IAAA,GAAO,MAAA,GAAS,eAAA,CAAgB,CAAC,CAAA;AACpD,MAAA,IAAI,CAAC,SAAA,EAAW;AACZ,QAAA,CAAA,CAAE,cAAA,EAAe;AAAA,MACrB;AAAA,IACJ,CAAA;AAAA,IACA,oBAAA,EAAsB,CAAC,CAAA,KAAI;AACvB,MAAA,oBAAA,IAAwB,IAAA,GAAO,MAAA,GAAS,oBAAA,CAAqB,CAAC,CAAA;AAC9D,MAAA,IAAI,CAAC,KAAA,IAAS,CAAA,CAAE,gBAAA,EAAkB;AAC9B,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA;AAAA,MACJ;AACA,MAAA,IAAI,eAAe,OAAA,EAAS;AACxB,QAAA,cAAA,CAAe,OAAA,GAAU,KAAA;AAAA,MAC7B;AAAA,IACJ,CAAA;AAAA,IACA,cAAA,EAAgB,CAAC,CAAA,KAAI;AACjB,MAAA,IAAI,CAAC,KAAA,EAAO;AACR,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA;AAAA,MACJ;AAAA,IACJ,CAAA;AAAA,IACA,aAAA,EAAe,CAAC,KAAA,KAAQ;AACpB,MAAA,wBAAA,CAAyB,OAAA,GAAU,KAAA;AACnC,MAAA,IAAI,UAAA,EAAY;AAChB,MAAA,IAAA,CAAK,iBAAiB,IAAA,GAAO,MAAA,GAAS,KAAK,aAAA,CAAc,IAAA,CAAK,MAAM,KAAK,CAAA;AACzE,MAAA,IAAI,CAAC,gBAAgB,OAAA,EAAS;AAC9B,MAAA,MAAM,SAAA,GAAY,KAAA,CAAM,KAAA,GAAQ,eAAA,CAAgB,OAAA,CAAQ,CAAA;AACxD,MAAA,MAAM,SAAA,GAAY,KAAA,CAAM,KAAA,GAAQ,eAAA,CAAgB,OAAA,CAAQ,CAAA;AACxD,MAAA,MAAM,mBAAA,GAAsB,KAAA,CAAM,WAAA,KAAgB,OAAA,GAAU,EAAA,GAAK,CAAA;AACjE,MAAA,MAAM,KAAA,GAAQ;AAAA,QACV,CAAA,EAAG,SAAA;AAAA,QACH,CAAA,EAAG;AAAA,OACP;AACA,MAAA,MAAM,gBAAA,GAAmB,kBAAA,CAAmB,KAAA,EAAO,SAAA,EAAW,mBAAmB,CAAA;AACjF,MAAA,IAAI,gBAAA,SAAyB,KAAK,CAAA;AAAA,WAAA,IACzB,IAAA,CAAK,IAAI,SAAS,CAAA,GAAI,uBAAuB,IAAA,CAAK,GAAA,CAAI,SAAS,CAAA,GAAI,mBAAA,EAAqB;AAC7F,QAAA,eAAA,CAAgB,OAAA,GAAU,IAAA;AAAA,MAC9B;AAAA,IACJ,CAAA;AAAA,IACA,WAAA,EAAa,CAAC,KAAA,KAAQ;AAClB,MAAA,IAAA,CAAK,eAAe,IAAA,GAAO,MAAA,GAAS,KAAK,WAAA,CAAY,IAAA,CAAK,MAAM,KAAK,CAAA;AACrE,MAAA,eAAA,CAAgB,OAAA,GAAU,IAAA;AAC1B,MAAA,oBAAA,CAAqB,OAAA,GAAU,KAAA;AAC/B,MAAA,SAAA,CAAU,KAAK,CAAA;AAAA,IACnB,CAAA;AAAA,IACA,YAAA,EAAc,CAAC,KAAA,KAAQ;AACnB,MAAA,IAAA,CAAK,gBAAgB,IAAA,GAAO,MAAA,GAAS,KAAK,YAAA,CAAa,IAAA,CAAK,MAAM,KAAK,CAAA;AACvE,MAAA,iBAAA,CAAkB,yBAAyB,OAAO,CAAA;AAAA,IACtD,CAAA;AAAA,IACA,aAAA,EAAe,CAAC,KAAA,KAAQ;AACpB,MAAA,IAAA,CAAK,iBAAiB,IAAA,GAAO,MAAA,GAAS,KAAK,aAAA,CAAc,IAAA,CAAK,MAAM,KAAK,CAAA;AACzE,MAAA,IAAI,yBAAyB,OAAA,EAAS;AAClC,QAAA,iBAAA,CAAkB,yBAAyB,OAAO,CAAA;AAAA,MACtD;AAAA,IACJ;AAAA,GACH,CAAA;AACL,CAAC,CAAA;AACDgB,QAAAA,CAAQ,WAAA,GAAc,gBAAA;AACtB,IAAM,yBAAA,GAA4B,GAAA;AAClC,IAAM,kBAAA,GAAqB,GAAA;AAC3B,IAAM,MAAA,mBAAuBhB,uBAAA,CAAe,UAAA,CAAW,SAAS,EAAE,YAAA,GAAe,KAAA,EAAO,QAAA,EAAU,GAAG,IAAA,EAAK,EAAG,GAAA,EAAK;AAC9G,EAAA,MAAM,EAAE,WAAA,EAAa,UAAA,EAAY,UAAA,EAAY,eAAA,EAAiB,kBAAA,EAAoB,WAAA,EAAa,UAAA,EAAY,MAAA,EAAQ,OAAA,EAAS,MAAA,EAAO,GAAI,gBAAA,EAAiB;AACxJ,EAAA,MAAM,iBAAA,GAAoBA,uBAAA,CAAe,MAAA,CAAO,IAAI,CAAA;AACpD,EAAA,MAAM,0BAAA,GAA6BA,uBAAA,CAAe,MAAA,CAAO,KAAK,CAAA;AAC9D,EAAA,SAAS,gBAAA,GAAmB;AAExB,IAAA,IAAI,2BAA2B,OAAA,EAAS;AACpC,MAAA,uBAAA,EAAwB;AACxB,MAAA;AAAA,IACJ;AACA,IAAA,MAAA,CAAO,WAAW,MAAI;AAClB,MAAA,qBAAA,EAAsB;AAAA,IAC1B,GAAG,kBAAkB,CAAA;AAAA,EACzB;AACA,EAAA,SAAS,qBAAA,GAAwB;AAE7B,IAAA,IAAI,UAAA,IAAc,YAAA,IAAgB,0BAAA,CAA2B,OAAA,EAAS;AAClE,MAAA,uBAAA,EAAwB;AACxB,MAAA;AAAA,IACJ;AAEA,IAAA,uBAAA,EAAwB;AACxB,IAAA,IAAI,CAAC,UAAA,IAAc,UAAA,CAAW,MAAA,KAAW,CAAA,EAAG;AACxC,MAAA,IAAI,CAAC,WAAA,EAAa;AACd,QAAA,WAAA,EAAY;AAAA,MAChB;AACA,MAAA;AAAA,IACJ;AACA,IAAA,MAAM,eAAA,GAAkB,eAAA,KAAoB,UAAA,CAAW,UAAA,CAAW,SAAS,CAAC,CAAA;AAC5E,IAAA,IAAI,mBAAmB,WAAA,EAAa;AAChC,MAAA,WAAA,EAAY;AACZ,MAAA;AAAA,IACJ;AACA,IAAA,MAAM,mBAAmB,UAAA,CAAW,SAAA,CAAU,CAAC,KAAA,KAAQ,UAAU,eAAe,CAAA;AAChF,IAAA,IAAI,qBAAqB,EAAA,EAAI;AAC7B,IAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,gBAAA,GAAmB,CAAC,CAAA;AACrD,IAAA,kBAAA,CAAmB,aAAa,CAAA;AAAA,EACpC;AACA,EAAA,SAAS,sBAAA,GAAyB;AAC9B,IAAA,iBAAA,CAAkB,OAAA,GAAU,MAAA,CAAO,UAAA,CAAW,MAAI;AAE9C,MAAA,0BAAA,CAA2B,OAAA,GAAU,IAAA;AAAA,IACzC,GAAG,yBAAyB,CAAA;AAAA,EAChC;AACA,EAAA,SAAS,uBAAA,GAA0B;AAC/B,IAAA,IAAI,kBAAkB,OAAA,EAAS;AAC3B,MAAA,MAAA,CAAO,YAAA,CAAa,kBAAkB,OAAO,CAAA;AAAA,IACjD;AACA,IAAA,0BAAA,CAA2B,OAAA,GAAU,KAAA;AAAA,EACzC;AACA,EAAA,uBAAqBA,uBAAA,CAAe,cAAc,KAAA,EAAO;AAAA,IACrD,OAAA,EAAS,gBAAA;AAAA,IACT,eAAA,EAAiB,uBAAA;AAAA,IACjB,aAAA,EAAe,CAAC,CAAA,KAAI;AAChB,MAAA,IAAI,UAAA,UAAoB,CAAC,CAAA;AACzB,MAAA,sBAAA,EAAuB;AAAA,IAC3B,CAAA;AAAA,IACA,aAAA,EAAe,CAAC,CAAA,KAAI;AAChB,MAAA,IAAI,UAAA,SAAmB,CAAC,CAAA;AAAA,IAC5B,CAAA;AAAA;AAAA,IAEA,GAAA;AAAA,IACA,0BAAA,EAA4B,SAAS,MAAA,GAAS,OAAA;AAAA,IAC9C,kBAAA,EAAoB,EAAA;AAAA,IACpB,aAAA,EAAe,MAAA;AAAA,IACf,GAAG;AAAA,GACP,kBAAiBA,uBAAA,CAAe,aAAA,CAAc,MAAA,EAAQ;AAAA,IAClD,0BAAA,EAA4B,EAAA;AAAA,IAC5B,aAAA,EAAe;AAAA,GACnB,EAAG,QAAQ,CAAC,CAAA;AAChB,CAAC,CAAA;AACD,MAAA,CAAO,WAAA,GAAc,eAAA;AA0BrB,SAASR,QAAO,KAAA,EAAO;AACnB,EAAA,MAAM,UAAU,gBAAA,EAAiB;AACjC,EAAA,MAAM,EAAE,SAAA,GAAY,OAAA,CAAQ,SAAA,EAAW,GAAG,aAAY,GAAI,KAAA;AAC1D,EAAA,uBAAqBQ,uBAAA,CAAe,cAA8BR,OAAAA,EAAQ;AAAA,IACtE,SAAA;AAAA,IACA,GAAG;AAAA,GACN,CAAA;AACL;AACA,IAAM,MAAA,GAAS;AAAA,EACX,IAAA,EAAAkB,KAAAA;AAAA,EAEA,OAAA,EAAAM,QAAAA;AAAA,EACA,OAAA,EAAAD,QAAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA,EAAAvB,OAAAA;AAAA,EAEA,KAAA;AAAA,EACA,KAAA;AAAA,EACA;AACJ,CAAA;AC9mDA,SAAS0B,OAAAA,CAAO,EAAE,GAAG,KAAA,EAAM,EAAsD;AAC/E,EAAA,uBAAOxF,IAAC,MAAA,CAAgB,IAAA,EAAhB,EAAqB,WAAA,EAAU,QAAA,EAAU,GAAG,KAAA,EAAO,CAAA;AAC7D;AAEA,SAAS,aAAA,CAAc,EAAE,GAAG,KAAA,EAAM,EAAyD;AACzF,EAAA,uBAAOA,IAAC,MAAA,CAAgB,OAAA,EAAhB,EAAwB,WAAA,EAAU,gBAAA,EAAkB,GAAG,KAAA,EAAO,CAAA;AACxE;AAEA,SAAS,YAAA,CAAa,EAAE,GAAG,KAAA,EAAM,EAAwD;AACvF,EAAA,uBAAOA,IAAC,MAAA,CAAgB,MAAA,EAAhB,EAAuB,WAAA,EAAU,eAAA,EAAiB,GAAG,KAAA,EAAO,CAAA;AACtE;AAEA,SAAS,WAAA,CAAY,EAAE,GAAG,KAAA,EAAM,EAAuD;AACrF,EAAA,uBAAOA,IAAC,MAAA,CAAgB,KAAA,EAAhB,EAAsB,WAAA,EAAU,cAAA,EAAgB,GAAG,KAAA,EAAO,CAAA;AACpE;AAEA,SAAS,aAAA,CAAc,EAAE,SAAA,EAAW,GAAG,OAAM,EAAyD;AACpG,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA,CAAgB,OAAA;AAAA,IAAhB;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,wJAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,cAAc,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,OAAM,EAAyD;AAC9G,EAAA,uBACEC,IAAAA,CAAC,YAAA,EAAA,EAAa,WAAA,EAAU,eAAA,EACtB,QAAA,EAAA;AAAA,oBAAAD,IAAC,aAAA,EAAA,EAAc,CAAA;AAAA,oBACfC,IAAAA;AAAA,MAAC,MAAA,CAAgB,OAAA;AAAA,MAAhB;AAAA,QACC,WAAA,EAAU,gBAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,oEAAA;AAAA,UACA,gQAAA;AAAA,UACA,wOAAA;AAAA,UACA,6NAAA;AAAA,UACA,uNAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mIAAA,EAAoI,CAAA;AAAA,UAClJ;AAAA;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC1E,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,eAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,0LAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAMA,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAuD;AAChG,EAAA,uBAAOA,GAAAA,CAAC,MAAA,CAAgB,KAAA,EAAhB,EAAsB,WAAA,EAAU,cAAA,EAAe,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAC/H;AAEA,SAAS,iBAAA,CAAkB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA6D;AAC5G,EAAA,uBAAOA,GAAAA,CAAC,MAAA,CAAgB,WAAA,EAAhB,EAA4B,WAAA,EAAU,oBAAA,EAAqB,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAC3I;ACvDA,IAAM,iBAAA,GAAoB,GAAA;AAE1B,SAAS,WAAA,GAAuB;AAC9B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIwC,SAA8B,MAAS,CAAA;AAEvE,EAAAgC,UAAU,MAAM;AACd,IAAA,MAAM,MAAM,MAAA,CAAO,UAAA,CAAW,CAAA,YAAA,EAAe,iBAAA,GAAoB,CAAC,CAAA,GAAA,CAAK,CAAA;AACvE,IAAA,MAAM,QAAA,GAAW,MAAM,WAAA,CAAY,GAAA,CAAI,OAAO,CAAA;AAC9C,IAAA,GAAA,CAAI,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AACvC,IAAA,WAAA,CAAY,IAAI,OAAO,CAAA;AACvB,IAAA,OAAO,MAAM,GAAA,CAAI,mBAAA,CAAoB,QAAA,EAAU,QAAQ,CAAA;AAAA,EACzD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,CAAC,CAAC,QAAA;AACX;AA8BA,IAAM,cAA0C,CAAC;AAAA,EAC/C,KAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA,GAAiB,KAAA;AAAA,EACjB,IAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA,GAAkB,IAAA;AAAA,EAClB,oBAAA,GAAuB,KAAA;AAAA,EACvB,UAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,WAAW,WAAA,EAAY;AAG7B,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIhC,SAAS,KAAK,CAAA;AACtD,EAAA,MAAM,eAAe,IAAA,KAAS,MAAA;AAC9B,EAAA,MAAM,UAAA,GAAa,eAAe,IAAA,GAAO,YAAA;AAEzC,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,YAAA,GAAe,KAAK,CAAA;AAAA,IACtB,CAAA,MAAO;AACL,MAAA,eAAA,CAAgB,KAAK,CAAA;AAAA,IACvB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,gBAAA,GAAmB,CAAC,OAAA,KAAqB;AAC7C,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,YAAA,GAAe,OAAO,CAAA;AAAA,IACxB,CAAA,MAAO;AACL,MAAA,eAAA,CAAgB,OAAO,CAAA;AAAA,IACzB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,WAAA,mBACJxC,GAAAA,CAAC,UAAA,EAAA,EAAW,MAAM,EAAA,EAAI,SAAA,EAAU,kBAAA,EAAmB,aAAA,EAAY,MAAA,EAAO,CAAA;AAIxE,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,uBACEC,IAAAA,CAACuF,OAAAA,EAAA,EAAO,IAAA,EAAM,UAAA,EAAY,cAAc,gBAAA,EACrC,QAAA,EAAA;AAAA,MAAA,OAAA,oBACCxF,GAAAA,CAAC,aAAA,EAAA,EAAc,OAAA,EAAS,gBAAiB,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,sBAEnDC,IAAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,sEAAA;AAAA,YACA;AAAA,WACF;AAAA,UAEC,QAAA,EAAA;AAAA,YAAA,eAAA,mBACCA,IAAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,8DAAA,EACtB,QAAA,EAAA;AAAA,8BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,gCAAAD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8EAAA,EACZ,wBAAc,WAAA,EACjB,CAAA;AAAA,gCAEAC,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,kCAAAD,GAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,oEAAA,EACpB,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,kCACAA,GAAAA;AAAA,oBAAC,iBAAA;AAAA,oBAAA;AAAA,sBACC,SAAA,EACE,uBAAuB,mBAAA,GAAsB,QAAA;AAAA,sBAG9C,QAAA,EAAA,WAAA,IAAe;AAAA;AAAA;AAClB,iBAAA,EACF;AAAA,eAAA,EACF,CAAA;AAAA,8BAEAA,GAAAA,CAAC,WAAA,EAAA,EAAY,OAAA,EAAO,MAClB,QAAA,kBAAAA,GAAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,0KAAA;AAAA,kBACV,YAAA,EAAW,OAAA;AAAA,kBAEX,0BAAAA,GAAAA,CAAC,CAAA,EAAA,EAAE,IAAA,EAAM,EAAA,EAAI,eAAY,MAAA,EAAO;AAAA;AAAA,eAClC,EACF;AAAA,aAAA,EACF,oBAEAA,GAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,UAAU,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,YAGxC,OAAO,QAAA,KAAa,UAAA,GACnB,QAAA,CAAS,UAAU,oBAEnBA,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,6DAAA;AAAA,kBACA;AAAA,iBACF;AAAA,gBAEC;AAAA;AAAA,aACH;AAAA,YAGD;AAAA;AAAA;AAAA;AACH,KAAA,EACF,CAAA;AAAA,EAEJ;AAGA,EAAA,uBACEC,IAAAA,CAAC8D,OAAAA,EAAA,EAAO,IAAA,EAAM,UAAA,EAAY,cAAc,gBAAA,EACrC,QAAA,EAAA;AAAA,IAAA,OAAA,oBACC/D,GAAAA,CAACgE,cAAAA,EAAA,EAAc,OAAA,EAAS,gBAAiB,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,oBAEnD/D,IAAAA;AAAA,MAACkE,cAAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,wEAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,eAAA,EAAiB,KAAA;AAAA,QAEhB,QAAA,EAAA;AAAA,UAAA,eAAA,mBACClE,IAAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,8DAAA,EACtB,QAAA,EAAA;AAAA,4BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,8BAAAD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qEAAA,EACZ,wCACCA,GAAAA;AAAA,gBAAC,UAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EAAM,EAAA;AAAA,kBACN,SAAA,EAAU,kBAAA;AAAA,kBACV,aAAA,EAAY;AAAA;AAAA,eACd,EAEJ,CAAA;AAAA,8BAEAC,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,gCAAAD,GAAAA,CAACoE,YAAAA,EAAA,EAAY,SAAA,EAAU,sEACpB,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,gCACApE,GAAAA;AAAA,kBAACqE,kBAAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EACE,uBAAuB,mBAAA,GAAsB,QAAA;AAAA,oBAG9C,QAAA,EAAA,WAAA,IAAe;AAAA;AAAA;AAClB,eAAA,EACF;AAAA,aAAA,EACF,CAAA;AAAA,4BAEArE,GAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAS,UAAA;AAAA,gBACT,SAAA,EAAU,iKAAA;AAAA,gBACV,YAAA,EAAW,OAAA;AAAA,gBAEX,0BAAAA,GAAAA,CAAC,CAAA,EAAA,EAAE,IAAA,EAAM,EAAA,EAAI,eAAY,MAAA,EAAO;AAAA;AAAA;AAClC,WAAA,EACF,oBAEAA,GAAAA,CAACoE,cAAA,EAAY,SAAA,EAAU,UAAU,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UAGxC,OAAO,QAAA,KAAa,UAAA,GACnB,QAAA,CAAS,UAAU,oBAEnBpE,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,6DAAA;AAAA,gBACA;AAAA,eACF;AAAA,cAEC;AAAA;AAAA,WACH;AAAA,UAGD;AAAA;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAEJ;AC9OA,IAAM,eAAA,mBAAkB,MAAA,CAAO,GAAA,CAAI,YAAY,CAAA;AAY/C,IAAM,MAAqCE,cAAAA,CAAc,OAAA,CAAQ,IAAA,EAAK,CAAE,UAAU,CAAA;AAMlF,SAAS,cAAc,KAAA,EAA+C;AACpE,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,QAAQ,MAAA,IAAU,KAAA;AAClE;AAEA,SAAS,gBAAgB,OAAA,EAAuD;AAC9E,EAAA,OACE,OAAA,IAAW,IAAA,IACX,OAAO,OAAA,KAAY,YACnB,UAAA,IAAc,OAAA,IACd,OAAA,CAAQ,QAAA,KAAa,eAAA,IACrB,UAAA,IAAc,OAAA,IACd,aAAA,CAAc,QAAQ,QAAQ,CAAA;AAElC;;AAEkC,SAASmD,YAAW,SAAA,EAAmB;AACvE,EAAA,MAAM,SAAA,mBAAYC,gBAAAA,CAAgB,SAAS,CAAA;AAC3C,EAAA,MAAMrC,MAAAA,GAAawE,cAAA,CAAA,UAAA,CAAmC,CAAC,KAAA,EAAO,YAAA,KAAiB;AAC7E,IAAA,IAAI,EAAE,QAAA,EAAU,GAAG,SAAA,EAAU,GAAI,KAAA;AACjC,IAAA,IAAI,eAAA,CAAgB,QAAQ,CAAA,IAAK,OAAO,QAAQ,UAAA,EAAY;AAC1D,MAAA,QAAA,GAAW,GAAA,CAAI,SAAS,QAAQ,CAAA;AAClC,IAAA;AACA,IAAA,MAAM,aAAA,GAAsBA,cAAA,CAAA,QAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA;AACrD,IAAA,MAAM,SAAA,GAAY,aAAA,CAAc,IAAA,CAAKjC,YAAW,CAAA;AAEhD,IAAA,IAAI,SAAA,EAAW;AAEb,MAAA,MAAM,UAAA,GAAa,UAAU,KAAA,CAAM,QAAA;AAEnC,MAAA,MAAM,WAAA,GAAc,aAAA,CAAc,GAAA,CAAI,CAAC,KAAA,KAAU;AAC/C,QAAA,IAAI,UAAU,SAAA,EAAW;AAGvB,UAAA,IAAUiC,cAAA,CAAA,QAAA,CAAS,MAAM,UAAU,CAAA,GAAI,GAAG,OAAaA,cAAA,CAAA,QAAA,CAAS,KAAK,IAAI,CAAA;AACzE,UAAA,OAAaA,cAAA,CAAA,cAAA,CAAe,UAAU,CAAA,GACjC,UAAA,CAAW,MAAwC,QAAA,GACpD,IAAA;QACN,CAAA,MAAO;AACL,UAAA,OAAO,KAAA;AACT,QAAA;MACF,CAAC,CAAA;AAED,MAAA,uBACEzF,GAAAA,CAAC,SAAA,EAAA,EAAW,GAAG,SAAA,EAAW,KAAK,YAAA,EAC5B,QAAA,EAAMyF,cAAA,CAAA,cAAA,CAAe,UAAU,IACtBA,cAAA,CAAA,YAAA,CAAa,UAAA,EAAY,QAAW,WAAW,CAAA,GACrD,MACN,CAAA;AAEJ,IAAA;AAEA,IAAA,uBACEzF,IAAC,SAAA,EAAA,EAAW,GAAG,SAAA,EAAW,GAAA,EAAK,YAAA,EAC5B,QAAA,EACH,CAAA;EAEJ,CAAC,CAAA;AAEDiB,EAAAA,MAAAA,CAAK,WAAA,GAAc,CAAA,EAAG,SAAS,CAAA,KAAA,CAAA;AAC/B,EAAA,OAAOA,MAAAA;AACT;AAEA,IAAMA,KAAAA,mBAAOoC,WAAAA,CAAW,MAAM,CAAA;;AAUH,SAASC,iBAAgB,SAAA,EAAmB;AACrE,EAAA,MAAM,SAAA,GAAkBmC,cAAA,CAAA,UAAA,CAAgC,CAAC,KAAA,EAAO,YAAA,KAAiB;AAC/E,IAAA,IAAI,EAAE,QAAA,EAAU,GAAG,SAAA,EAAU,GAAI,KAAA;AACjC,IAAA,IAAI,eAAA,CAAgB,QAAQ,CAAA,IAAK,OAAO,QAAQ,UAAA,EAAY;AAC1D,MAAA,QAAA,GAAW,GAAA,CAAI,SAAS,QAAQ,CAAA;AAClC,IAAA;AAEA,IAAA,IAAUA,cAAA,CAAA,cAAA,CAAe,QAAQ,CAAA,EAAG;AAClC,MAAA,MAAM,WAAA,GAActD,eAAc,QAAQ,CAAA;AAC1C,MAAA,MAAMhB,MAAAA,GAAQsC,WAAAA,CAAW,SAAA,EAAW,QAAA,CAAS,KAAiB,CAAA;AAE9D,MAAA,IAAI,QAAA,CAAS,SAAegC,cAAA,CAAA,QAAA,EAAU;AACpCtE,QAAAA,MAAAA,CAAM,GAAA,GAAM,YAAA,GAAe,WAAA,CAAY,YAAA,EAAc,WAAW,CAAA,GAAI,WAAA;AACtE,MAAA;AACA,MAAA,OAAasE,cAAA,CAAA,YAAA,CAAa,UAAUtE,MAAK,CAAA;AAC3C,IAAA;AAEA,IAAA,OAAasE,cAAA,CAAA,QAAA,CAAS,MAAM,QAAQ,CAAA,GAAI,IAAUA,cAAA,CAAA,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA,GAAI,IAAA;EAC1E,CAAC,CAAA;AAED,EAAA,SAAA,CAAU,WAAA,GAAc,GAAG,SAAS,CAAA,UAAA,CAAA;AACpC,EAAA,OAAO,SAAA;AACT;AAMA,IAAM/B,qBAAAA,0BAA8B,iBAAiB,CAAA;AAyBrD,SAASF,aACP,KAAA,EAC+D;AAC/D,EAAA,OACQiC,cAAA,CAAA,cAAA,CAAe,KAAK,CAAA,IAC1B,OAAO,KAAA,CAAM,IAAA,KAAS,UAAA,IACtB,WAAA,IAAe,KAAA,CAAM,IAAA,IACrB,KAAA,CAAM,IAAA,CAAK,SAAA,KAAc/B,qBAAAA;AAE7B;AAEA,SAASD,WAAAA,CAAW,WAAqB,UAAA,EAAsB;AAE7D,EAAA,MAAM,aAAA,GAAgB,EAAE,GAAG,UAAA,EAAW;AAEtC,EAAA,KAAA,MAAW,YAAY,UAAA,EAAY;AACjC,IAAA,MAAM,aAAA,GAAgB,UAAU,QAAQ,CAAA;AACxC,IAAA,MAAM,cAAA,GAAiB,WAAW,QAAQ,CAAA;AAE1C,IAAA,MAAM,SAAA,GAAY,UAAA,CAAW,IAAA,CAAK,QAAQ,CAAA;AAC1C,IAAA,IAAI,SAAA,EAAW;AAEb,MAAA,IAAI,iBAAiB,cAAA,EAAgB;AACnC,QAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,CAAA,GAAI,IAAA,KAAoB;AAChD,UAAA,MAAM,MAAA,GAAS,cAAA,CAAe,GAAG,IAAI,CAAA;AACrC,UAAA,aAAA,CAAc,GAAG,IAAI,CAAA;AACrB,UAAA,OAAO,MAAA;AACT,QAAA,CAAA;AACF,MAAA,CAAA,MAAA,IAES,aAAA,EAAe;AACtB,QAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,aAAA;AAC5B,MAAA;AACF,IAAA,CAAA,MAAA,IAES,aAAa,OAAA,EAAS;AAC7B,MAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,EAAE,GAAG,aAAA,EAAe,GAAG,cAAA,EAAe;AAClE,IAAA,CAAA,MAAA,IAAW,aAAa,WAAA,EAAa;AACnC,MAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,CAAC,aAAA,EAAe,cAAc,EAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AACpF,IAAA;AACF,EAAA;AAEA,EAAA,OAAO,EAAE,GAAG,SAAA,EAAW,GAAG,aAAA,EAAc;AAC1C;AAOA,SAAStB,eAAc,OAAA,EAA6B;AAElD,EAAA,IAAI,SAAS,MAAA,CAAO,wBAAA,CAAyB,OAAA,CAAQ,KAAA,EAAO,KAAK,CAAA,EAAG,GAAA;AACpE,EAAA,IAAI,OAAA,GAAU,MAAA,IAAU,gBAAA,IAAoB,MAAA,IAAU,MAAA,CAAO,cAAA;AAC7D,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAQ,OAAA,CAAgB,GAAA;AAC1B,EAAA;AAGA,EAAA,MAAA,GAAS,MAAA,CAAO,wBAAA,CAAyB,OAAA,EAAS,KAAK,CAAA,EAAG,GAAA;AAC1D,EAAA,OAAA,GAAU,MAAA,IAAU,gBAAA,IAAoB,MAAA,IAAU,MAAA,CAAO,cAAA;AACzD,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAQ,QAAQ,KAAA,CAAuC,GAAA;AACzD,EAAA;AAGA,EAAA,OAAQ,OAAA,CAAQ,KAAA,CAAuC,GAAA,IAAQ,OAAA,CAAgB,GAAA;AACjF;;;AC5MA,IAAM,aAAA,GAAgB,CAAC,KAAA,KAAQ,OAAO,KAAA,KAAU,SAAA,GAAY,CAAA,EAAG,KAAK,CAAA,CAAA,GAAK,KAAA,KAAU,CAAA,GAAI,GAAA,GAAM,KAAA;AACtF,IAAM,EAAA,GAAK,IAAA;AACX,IAAM,GAAA,GAAM,CAAC,IAAA,EAAM,MAAA,KAAS,CAAC,KAAA,KAAQ;AACpC,EAAA,IAAI,wBAAA;AACJ,EAAA,IAAA,CAAK,MAAA,KAAW,IAAA,IAAQ,MAAA,KAAW,MAAA,GAAS,MAAA,GAAS,OAAO,QAAA,KAAa,IAAA,EAAM,OAAO,EAAA,CAAG,IAAA,EAAM,KAAA,KAAU,QAAQ,KAAA,KAAU,MAAA,GAAS,MAAA,GAAS,KAAA,CAAM,KAAA,EAAO,KAAA,KAAU,QAAQ,KAAA,KAAU,MAAA,GAAS,MAAA,GAAS,KAAA,CAAM,SAAS,CAAA;AACvN,EAAA,MAAM,EAAE,QAAA,EAAU,eAAA,EAAgB,GAAI,MAAA;AACtC,EAAA,MAAM,uBAAuB,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,OAAA,KAAU;AAC9D,IAAA,MAAM,cAAc,KAAA,KAAU,IAAA,IAAQ,UAAU,MAAA,GAAS,MAAA,GAAS,MAAM,OAAO,CAAA;AAC/E,IAAA,MAAM,qBAAqB,eAAA,KAAoB,IAAA,IAAQ,oBAAoB,MAAA,GAAS,MAAA,GAAS,gBAAgB,OAAO,CAAA;AACpH,IAAA,IAAI,WAAA,KAAgB,MAAM,OAAO,IAAA;AACjC,IAAA,MAAM,UAAA,GAAa,aAAA,CAAc,WAAW,CAAA,IAAK,cAAc,kBAAkB,CAAA;AACjF,IAAA,OAAO,QAAA,CAAS,OAAO,CAAA,CAAE,UAAU,CAAA;AAAA,EACvC,CAAC,CAAA;AACD,EAAA,MAAM,qBAAA,GAAwB,SAAS,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,CAAE,MAAA,CAAO,CAAC,GAAA,EAAK,KAAA,KAAQ;AAC9E,IAAA,IAAI,CAAC,GAAA,EAAK,KAAK,CAAA,GAAI,KAAA;AACnB,IAAA,IAAI,UAAU,MAAA,EAAW;AACrB,MAAA,OAAO,GAAA;AAAA,IACX;AACA,IAAA,GAAA,CAAI,GAAG,CAAA,GAAI,KAAA;AACX,IAAA,OAAO,GAAA;AAAA,EACX,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,MAAM,+BAA+B,MAAA,KAAW,IAAA,IAAQ,MAAA,KAAW,MAAA,GAAS,UAAU,wBAAA,GAA2B,MAAA,CAAO,gBAAA,MAAsB,IAAA,IAAQ,6BAA6B,MAAA,GAAS,MAAA,GAAS,yBAAyB,MAAA,CAAO,CAAC,KAAK,KAAA,KAAQ;AAC/O,IAAA,IAAI,EAAE,KAAA,EAAO,OAAA,EAAS,WAAW,WAAA,EAAa,GAAG,wBAAuB,GAAI,KAAA;AAC5E,IAAA,OAAO,OAAO,OAAA,CAAQ,sBAAsB,CAAA,CAAE,KAAA,CAAM,CAACuD,MAAAA,KAAQ;AACzD,MAAA,IAAI,CAAC,GAAA,EAAK,KAAK,CAAA,GAAIA,MAAAA;AACnB,MAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,MAAM,QAAA,CAAS;AAAA,QACzC,GAAG,eAAA;AAAA,QACH,GAAG;AAAA,OACP,CAAE,GAAG,CAAC,CAAA,GAAK;AAAA,QACP,GAAG,eAAA;AAAA,QACH,GAAG;AAAA,OACP,CAAG,GAAG,CAAA,KAAM,KAAA;AAAA,IAChB,CAAC,CAAA,GAAI;AAAA,MACD,GAAG,GAAA;AAAA,MACH,OAAA;AAAA,MACA;AAAA,KACJ,GAAI,GAAA;AAAA,EACR,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,OAAO,GAAG,IAAA,EAAM,oBAAA,EAAsB,4BAAA,EAA8B,KAAA,KAAU,QAAQ,KAAA,KAAU,MAAA,GAAS,MAAA,GAAS,KAAA,CAAM,OAAO,KAAA,KAAU,IAAA,IAAQ,UAAU,MAAA,GAAS,MAAA,GAAS,MAAM,SAAS,CAAA;AAChM,CAAA;ACjDJ,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB,yVAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,uEAAA;AAAA,QACT,WAAA,EACE,6JAAA;AAAA,QACF,OAAA,EACE,qJAAA;AAAA,QACF,SAAA,EAAW,gEAAA;AAAA,QACX,KAAA,EAAO,yCAAA;AAAA,QACP,IAAA,EAAM;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,gCAAA;AAAA,QACT,EAAA,EAAI,+CAAA;AAAA,QACJ,EAAA,EAAI,sCAAA;AAAA,QACJ,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB,EAAE,OAAA,EAAS,SAAA,EAAW,MAAM,SAAA;AAAU;AAE3D,CAAA;AAEA,SAAS,MAAA,CAAO;AAAA,EACd,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,GAAG;AACL,CAAA,EAC+D;AAC7D,EAAA,MAAM,IAAA,GAAO,UAAUzE,KAAAA,GAAO,QAAA;AAC9B,EAAA,uBACEjB,GAAAA,CAAC,IAAA,EAAA,EAAK,WAAA,EAAU,QAAA,EAAS,WAAW,EAAA,CAAG,cAAA,CAAe,EAAE,OAAA,EAAS,MAAM,SAAA,EAAW,CAAC,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAErG;ACjCA,IAAM,UAAA,GAAa,CAAC,EAAE,OAAA,EAAQ,KAAuB;AACnD,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,OAAA,KAAY,MAAM,MAAA,CAAO,QAAQ,IAAA,EAAK,CAAA;AAAA,MAC/C,OAAA,EAAQ,SAAA;AAAA,MACR,SAAA,EAAU,sDAAA;AAAA,MACX,QAAA,EAAA;AAAA;AAAA,GAED;AAEJ;ACnBqC,IAAI,CAAA,GAAE,CAAC,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,KAAI;AAAC,EAAA,IAAI,IAAE,QAAA,CAAS,eAAA,EAAgB,CAAA,GAAE,CAAC,SAAQ,MAAM,CAAA;AAAE,EAAA,SAAS,EAAE,CAAA,EAAE;AAAC,IAAA,CAAC,KAAA,CAAM,QAAQ,CAAC,CAAA,GAAE,IAAE,CAAC,CAAC,CAAA,EAAG,OAAA,CAAQ,CAAA,CAAA,KAAG;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,KAAI,OAAA,EAAQ,CAAA,GAAE,CAAA,IAAG,CAAA,GAAE,CAAA,CAAE,GAAA,CAAI,CAAA,CAAA,KAAG,CAAA,CAAE,CAAC,CAAA,IAAG,CAAC,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,IAAG,CAAA,CAAE,UAAU,MAAA,CAAO,GAAG,CAAC,CAAA,EAAE,CAAA,CAAE,UAAU,GAAA,CAAI,CAAA,IAAG,EAAE,CAAC,CAAA,GAAE,EAAE,CAAC,CAAA,GAAE,CAAC,CAAA,IAAG,CAAA,CAAE,YAAA,CAAa,CAAA,EAAE,CAAC,CAAA;AAAA,IAAC,CAAC,CAAA,EAAE,CAAA,CAAE,CAAC,CAAA;AAAA,EAAC;AAAC,EAAA,SAAS,EAAE,CAAA,EAAE;AAAC,IAAA,CAAA,IAAG,EAAE,QAAA,CAAS,CAAC,CAAA,KAAI,CAAA,CAAE,MAAM,WAAA,GAAY,CAAA,CAAA;AAAA,EAAE;AAAC,EAAA,SAAS,CAAA,GAAG;AAAC,IAAA,OAAO,MAAA,CAAO,UAAA,CAAW,8BAA8B,CAAA,CAAE,UAAQ,MAAA,GAAO,OAAA;AAAA,EAAO;AAAC,EAAA,IAAG,CAAA,IAAI,CAAC,CAAA;AAAA,OAAO,IAAG;AAAC,IAAA,IAAI,CAAA,GAAE,YAAA,CAAa,OAAA,CAAQ,CAAC,CAAA,IAAG,CAAA,EAAE,CAAA,GAAE,CAAA,IAAG,CAAA,KAAI,QAAA,GAAS,CAAA,EAAE,GAAE,CAAA;AAAE,IAAA,CAAA,CAAE,CAAC,CAAA;AAAA,EAAC,SAAO,CAAA,EAAE;AAAA,EAAC;AAAC,CAAA;AAAE,IAAqF,CAAA,GAAI/Y,6BAAc,MAAM,CAAA;AAA7G,IAA+G,CAAA,GAAE,EAAC,QAAA,EAAS,CAAA,CAAA,KAAG;AAAC,CAAA,EAAE,MAAA,EAAO,EAAC,EAAC;AAA1I,IAA4I,IAAE,MAAI;AAAC,EAAA,IAAI,CAAA;AAAE,EAAA,OAAA,CAAO,CAAA,GAAIA,cAAA,CAAA,UAAA,CAAW,CAAC,CAAA,KAAI,OAAK,CAAA,GAAE,CAAA;AAAC,CAAA;AAAkoDA,cAAA,CAAA,IAAA,CAAK,CAAC,EAAC,WAAA,EAAY,GAAE,UAAA,EAAW,CAAA,EAAE,SAAA,EAAU,CAAA,EAAE,YAAA,EAAa,CAAA,EAAE,mBAAkB,CAAA,EAAE,YAAA,EAAa,CAAA,EAAE,KAAA,EAAM,CAAA,EAAE,MAAA,EAAO,GAAE,KAAA,EAAM,CAAA,EAAE,WAAA,EAAY,CAAA,EAAC,KAAI;AAAC,EAAA,IAAI,IAAE,IAAA,CAAK,SAAA,CAAU,CAAC,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAC,CAAA,CAAE,KAAA,CAAM,GAAE,EAAE,CAAA;AAAE,EAAA,OAASA,cAAA,CAAA,aAAA,CAAc,QAAA,EAAS,EAAC,GAAG,CAAA,EAAE,0BAAyB,IAAA,EAAG,KAAA,EAAM,OAAO,MAAA,IAAQ,WAAA,GAAY,CAAA,GAAE,IAAG,uBAAA,EAAwB,EAAC,MAAA,EAAO,CAAA,CAAA,EAAI,CAAA,CAAE,QAAA,EAAU,CAAA,EAAA,EAAK,CAAC,CAAA,CAAA,CAAA,EAAG,EAAE,CAAA;AAAC,CAAC;ACc7rF,IAAM,gBAAgB,CAAC;AAAA,EACrB,OAAA,GAAU,OAAA;AAAA,EACV,IAAA,GAAO,IAAA;AAAA,EACP,SAAA,GAAY;AACd,CAAA,KAA0B;AACxB,EAAA,MAAM,EAAE,QAAA,EAAU,aAAA,EAAc,GAAI,CAAA,EAAS;AAC7C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIiZ,uBAAAA,CAAM,SAAS,KAAK,CAAA;AAElD,EAAAA,uBAAAA,CAAM,UAAU,MAAM;AACpB,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,QAAA,CAAS,aAAA,KAAkB,MAAA,GAAS,OAAA,GAAU,MAAM,CAAA;AAAA,EACtD,CAAA;AAEA,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,uBACED,IAAAA,CAAC,MAAA,EAAA,EAAO,OAAA,EAAkB,MAAY,SAAA,EACpC,QAAA,EAAA;AAAA,sBAAAD,GAAAA,CAAC,GAAA,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,eAAY,MAAA,EAAO,CAAA;AAAA,sBAClCA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,cAAA,EAAY;AAAA,KAAA,EACxC,CAAA;AAAA,EAEJ;AAEA,EAAA,MAAM,SAAS,aAAA,KAAkB,MAAA;AAEjC,EAAA,uBACEC,IAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,SAAA,EAAW,GAAG,SAAS,CAAA,SAAA,CAAA;AAAA,MACvB,OAAA,EAAS,WAAA;AAAA,MAER,QAAA,EAAA;AAAA,QAAA,MAAA,mBACCD,GAAAA,CAAC,GAAA,EAAA,EAAI,MAAM,EAAA,EAAI,KAAA,EAAM,WAAU,aAAA,EAAY,MAAA,EAAO,CAAA,mBAElDA,IAAC,IAAA,EAAA,EAAK,IAAA,EAAM,IAAI,KAAA,EAAM,SAAA,EAAU,eAAY,MAAA,EAAO,CAAA;AAAA,wBAErDA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,cAAA,EAAY;AAAA;AAAA;AAAA,GACxC;AAEJ;AC5BA,IAAM,eAAe,CAAC;AAAA,EACpB,MAAA,GAAS,KAAA;AAAA,EACT,IAAA,GAAO,EAAA;AAAA,EACP,aAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,QAAA,GAAW,KAAA;AAAA,EACX,gBAAA,GAAmB,IAAA;AAAA,EACnB,SAAA,GAAY,EAAA;AAAA,EACZ,IAAA;AAAA,EACA,QAAA,GAAW,MAAA;AAAA,EACX;AACF,CAAA,KAAyB;AACvB,EAAA,MAAM,cAAA,GAAiB,gCACrBA,GAAAA;AAAA,IAAC2F,KAAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,aAAA;AAAA,MACL,GAAA,EAAK,QAAA;AAAA,MACL,IAAA,EAAI,IAAA;AAAA,MACJ,QAAA,EAAQ,IAAA;AAAA,MACR,KAAA,EAAO,GAAG,IAAI,CAAA,EAAA,CAAA;AAAA,MACd,SAAA,EAAU;AAAA;AAAA,sBAGZ3F,GAAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,IAAA,GAAO,IAAA,GAAO,CAAA,GAAI,EAAA;AAAA,MACxB,KAAA,EAAM,SAAA;AAAA,MACN,aAAA,EAAY;AAAA;AAAA,GACd;AAGF,EAAA,MAAM,iCACJC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,yDAAA;AAAA,MACV,KAAA,EAAO,EAAE,KAAA,EAAO,IAAA,EAAM,QAAQ,IAAA,EAAK;AAAA,MAElC,QAAA,EAAA;AAAA,QAAA,cAAA;AAAA,QAGA,8BACCD,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,gFAAA;AAAA,YACV,KAAA,EAAO,EAAE,KAAA,EAAO,EAAA,EAAI,QAAQ,EAAA;AAAG;AAAA,SACjC;AAAA,QAID,4BACCA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,2EAAA;AAAA,YACV,KAAA,EAAO;AAAA,cACL,OAAO,IAAA,GAAO,IAAA;AAAA,cACd,QAAQ,IAAA,GAAO,IAAA;AAAA,cACf,QAAA,EAAU,MAAA;AAAA,cACV,SAAA,EAAW;AAAA;AACb;AAAA;AACF;AAAA;AAAA,GAEJ;AAGF,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,wDAAA;AAAA,QACA,gBAAgB,eAAA,GAAkB,eAAA;AAAA,QAClC,gBAAA,IAAoB,iBAAA;AAAA,QACpB;AAAA,OACF;AAAA,MACA,KAAA,EAAO,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAO,IAAA,EAAK;AAAA,MAElC,mCACCA,GAAAA;AAAA,QAAC4F,IAAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,IAAA,KAAS,MAAA,GAAS,CAAA,SAAA,EAAY,MAAM,CAAA,CAAA,GAAK,GAAA,CAAA;AAAA,UAC/C,SAAA,EAAU,qBAAA;AAAA,UAET,QAAA,EAAA;AAAA;AAAA,OACH,mBAEA5F,GAAAA,CAAC,KAAA,EAAA,EAAK,QAAA,EAAA,cAAA,EAAe;AAAA;AAAA,GAEzB;AAEJ;AC1GA,SAAS,MAAM,EAAE,SAAA,EAAW,IAAA,EAAM,GAAG,OAAM,EAAkC;AAC3E,EAAA,uBACEA,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,WAAA,EAAU,OAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,mZAAA;AAAA,QACA,kCAAA;AAAA,QACA,wGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;ACbA,IAAM6F,MAAAA,GAAQ;AACZ,EAAA,GAAA;AACA,EAAA,QAAA;AACA,EAAA,KAAA;AACA,EAAA,MAAA;AACA,EAAA,IAAA;AACA,EAAA,IAAA;AACA,EAAA,KAAA;AACA,EAAA,OAAA;AACA,EAAA,OAAA;AACA,EAAA,IAAA;AACA,EAAA,KAAA;AACA,EAAA,IAAA;AACA,EAAA,GAAA;AACA,EAAA,QAAA;AACA,EAAA,MAAA;AACA,EAAA,KAAA;AACA,EAAA;AACF,CAAA;AAcA,IAAMC,UAAAA,GAAYD,MAAAA,CAAM,MAAA,CAAO,CAAC,WAAW,IAAA,KAAS;AAClD,EAAA,MAAM5E,KAAAA,GAAOoC,WAAAA,CAAW,CAAA,UAAA,EAAa,IAAI,CAAA,CAAE,CAAA;AAC3C,EAAA,MAAMjC,KAAAA,GAAa2E,cAAA,CAAA,UAAA,CAAW,CAAC,KAAA,EAA2C,YAAA,KAAsB;AAC9F,IAAA,MAAM,EAAE,OAAA,EAAS,GAAG,cAAA,EAAe,GAAI,KAAA;AACvC,IAAA,MAAM,IAAA,GAAY,UAAU9E,KAAAA,GAAO,IAAA;AAEnC,IAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAChC,MAAA,MAAA,iBAAe,MAAA,CAAO,GAAA,CAAI,UAAU,CAAC,CAAA,GAAI,IAAA;AAC5C,IAAA;AAEA,IAAA,uBAAOjB,IAAC,IAAA,EAAA,EAAM,GAAG,cAAA,EAAgB,GAAA,EAAK,cAAc,CAAA;EACtD,CAAC,CAAA;AAED,EAAAoB,KAAAA,CAAK,WAAA,GAAc,CAAA,UAAA,EAAa,IAAI,CAAA,CAAA;AAEpC,EAAA,OAAO,EAAE,GAAG,SAAA,EAAW,CAAC,IAAI,GAAGA,KAAAA,EAAK;AACtC,CAAA,EAAG,EAAgB,CAAA;AC7CnB,IAAM,IAAA,GAAO,OAAA;AAMb,IAAM,KAAA,GAAc4E,cAAA,CAAA,UAAA,CAAqC,CAAC,KAAA,EAAO,YAAA,KAAiB;AAChF,EAAA,uBACEhG,GAAAA;IAAC8F,UAAAA,CAAU,KAAA;AAAV,IAAA;MACE,GAAG,KAAA;MACJ,GAAA,EAAK,YAAA;AACL,MAAA,WAAA,EAAa,CAAC,KAAA,KAAU;AAEtB,QAAA,MAAM,SAAS,KAAA,CAAM,MAAA;AACrB,QAAA,IAAI,MAAA,CAAO,OAAA,CAAQ,iCAAiC,CAAA,EAAG;AAEvD,QAAA,KAAA,CAAM,cAAc,KAAK,CAAA;AAEzB,QAAA,IAAI,CAAC,KAAA,CAAM,gBAAA,IAAoB,MAAM,MAAA,GAAS,CAAA,QAAS,cAAA,EAAe;AACxE,MAAA;AAAA;AACF,GAAA;AAEJ,CAAC,CAAA;AAED,KAAA,CAAM,WAAA,GAAc,IAAA;AAIpB,IAAMd,KAAAA,GAAO,KAAA;AC7Bb,SAASiB,MAAAA,CAAM;AAAA,EACb,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqD;AACnD,EAAA,uBACEjG,GAAAA;AAAA,IAAgBgF,KAAAA;AAAA,IAAf;AAAA,MACC,WAAA,EAAU,OAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,0PAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;ACiBA,IAAM,kBAAkD,CAAC;AAAA,EACvD,SAAA,EAAW,YAAA;AAAA,EACX,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,WAAA,GAAc,kBAAA;AAAA,EACd,KAAA;AAAA,EACA,KAAA,GAAQ,SAAA;AAAA,EACR,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,SAAA,GAAY;AACd,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIxC,SAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAIA,SAAyB,IAAI,CAAA;AAC3E,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,SAAS,EAAE,CAAA;AAC/C,EAAA,MAAM,GAAA,GAAM0D,OAAuB,IAAI,CAAA;AAGvC,EAAA,MAAM,SAAA,GAAYnB,QAAQ,MAAM;AAC9B,IAAA,MAAM,SAAS,YAAA,CAAa,MAAA;AAAA,MAC1B,CAAC,CAAA,EAAG,GAAA,EAAK,IAAA,KACP,GAAA,KAAQ,IAAA,CAAK,SAAA,CAAU,CAACrC,EAAAA,KAAMA,EAAAA,CAAE,WAAA,KAAgB,CAAA,CAAE,WAAW;AAAA,KACjE;AACA,IAAA,IAAI,CAAC,UAAA,CAAW,IAAA,EAAK,EAAG,OAAO,MAAA;AAC/B,IAAA,OAAO,MAAA,CAAO,MAAA;AAAA,MAAO,CAAC,MACpB,CAAA,CAAE,WAAA,CAAY,aAAY,CAAE,QAAA,CAAS,UAAA,CAAW,WAAA,EAAa;AAAA,KAC/D;AAAA,EACF,CAAA,EAAG,CAAC,YAAA,EAAc,UAAU,CAAC,CAAA;AAG7B,EAAA8B,UAAU,MAAM;AACd,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,MAAM,QAAQ,SAAA,CAAU,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,gBAAgB,KAAK,CAAA;AAC3D,MAAA,kBAAA,CAAmB,SAAS,IAAI,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,KAAA,EAAO,SAAS,CAAC,CAAA;AAGrB,EAAAA,UAAU,MAAM;AACd,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,MAAM,kBAAA,GAAqB,CAAC,CAAA,KAAkB;AAC5C,MAAA,IAAI,GAAA,CAAI,WAAW,CAAC,GAAA,CAAI,QAAQ,QAAA,CAAS,CAAA,CAAE,MAAc,CAAA,EAAG;AAC1D,QAAA,SAAA,CAAU,KAAK,CAAA;AAAA,MACjB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,KAAA,GAAQ,WAAW,MAAM;AAC7B,MAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,kBAAkB,CAAA;AAAA,IAC3D,GAAG,CAAC,CAAA;AACJ,IAAA,OAAO,MAAM;AACX,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAA,QAAA,CAAS,mBAAA,CAAoB,aAAa,kBAAkB,CAAA;AAAA,IAC9D,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,MAAM,mBAAA,GAAsB,CAAC,OAAA,KAAqB;AAChD,IAAA,kBAAA,CAAmB,OAAO,CAAA;AAC1B,IAAA,IAAI,QAAA,IAAY,SAAA,EAAW,QAAA,CAAS,SAAA,EAAW,QAAQ,WAAW,CAAA;AAClE,IAAA,QAAA,GAAW,QAAQ,WAAW,CAAA;AAC9B,IAAA,aAAA,CAAc,EAAE,CAAA;AAChB,IAAA,SAAA,CAAU,KAAK,CAAA;AAAA,EACjB,CAAA;AAEA,EAAA,uBACEvE,KAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,iBAAA,EAAmB,SAAS,GAAG,GAAA,EAC/C,QAAA,EAAA;AAAA,IAAA,KAAA,oBACCA,IAAAA,CAACgG,MAAAA,EAAA,EAAM,OAAA,EAAS,SAAA,EAAW,WAAU,gCAAA,EAClC,QAAA,EAAA;AAAA,MAAA,KAAA;AAAA,MACA,4BAAYjG,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qBAAoB,QAAA,EAAA,GAAA,EAAC;AAAA,KAAA,EACpD,CAAA;AAAA,oBAGFC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,IAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAK,UAAA;AAAA,UACL,eAAA,EAAe,MAAA;AAAA,UACf,QAAA;AAAA,UACA,SAAA,EAAU,yCAAA;AAAA,UACV,SAAS,MAAM;AACb,YAAA,IAAI,QAAA,EAAU;AACd,YAAA,SAAA,CAAU,CAAC,IAAA,KAAS,CAAC,IAAI,CAAA;AACzB,YAAA,IAAI,MAAA,gBAAsB,EAAE,CAAA;AAAA,UAC9B,CAAA;AAAA,UAEC,QAAA,EAAA;AAAA,YAAA,eAAA,mBACCD,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBACb,QAAA,EAAA,eAAA,CAAgB,IAAA,GACb,CAAA,EAAG,eAAA,CAAgB,IAAI,CAAA,CAAA,EAAI,gBAAgB,WAAW,CAAA,CAAA,GACtD,gBAAgB,WAAA,EACtB,CAAA,mBAEAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qBAAA,EAAuB,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,4BAErDA,GAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,kCAAA,EAAmC;AAAA;AAAA;AAAA,OAC5D;AAAA,MAEC,MAAA,oBACCC,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yGAAA,EAEb,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACb,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAU,gEAAA,EAAiE,CAAA;AAAA,0BACnFA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,MAAA;AAAA,cACL,WAAA,EAAY,qBAAA;AAAA,cACZ,KAAA,EAAO,UAAA;AAAA,cACP,UAAU,CAAC,CAAA,KAAM,aAAA,CAAc,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,cAC7C,SAAA,EAAU,YAAA;AAAA,cACV,SAAA,EAAS;AAAA;AAAA;AACX,SAAA,EACF,CAAA;AAAA,wBAGAA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BACZ,QAAA,EAAA,SAAA,CAAU,MAAA,KAAW,oBACpBA,GAAAA,CAAC,SAAI,SAAA,EAAU,wCAAA,EAAyC,gCAExD,CAAA,GAEA,SAAA,CAAU,IAAI,CAAC,OAAA,EAAS,0BACtBC,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAU,yGAAA;AAAA,YACV,WAAA,EAAa,CAAC,CAAA,KAAM;AAClB,cAAA,CAAA,CAAE,cAAA,EAAe;AACjB,cAAA,mBAAA,CAAoB,OAAO,CAAA;AAAA,YAC7B,CAAA;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EACb,kBAAQ,IAAA,GACL,CAAA,EAAG,OAAA,CAAQ,IAAI,CAAA,CAAA,EAAI,OAAA,CAAQ,WAAW,CAAA,CAAA,GACtC,QAAQ,WAAA,EACd,CAAA;AAAA,cACC,eAAA,EAAiB,gBAAgB,OAAA,CAAQ,WAAA,oBACxCA,GAAAA,CAAC,KAAA,EAAA,EAAM,WAAU,0BAAA,EAA2B;AAAA;AAAA,WAAA;AAAA,UAbzC,CAAA,EAAG,OAAA,CAAQ,WAAW,CAAA,CAAA,EAAI,KAAK,CAAA;AAAA,SAgBvC,CAAA,EAEL;AAAA,OAAA,EACF;AAAA,KAAA,EAEJ,CAAA;AAAA,IAEC,yBAASA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,6BAA6B,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EAC5D,CAAA;AAEJ","file":"index.mjs","sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * Concatenates two arrays faster than the array spread operator.\n */\nexport const concatArrays = <T, U>(\n array1: readonly T[],\n array2: readonly U[],\n): readonly (T | U)[] => {\n // Pre-allocate for better V8 optimization\n const combinedArray: (T | U)[] = new Array(array1.length + array2.length)\n for (let i = 0; i < array1.length; i++) {\n combinedArray[i] = array1[i]!\n }\n for (let i = 0; i < array2.length; i++) {\n combinedArray[array1.length + i] = array2[i]!\n }\n return combinedArray\n}\n","import {\n AnyClassGroupIds,\n AnyConfig,\n AnyThemeGroupIds,\n ClassGroup,\n ClassValidator,\n Config,\n ThemeGetter,\n ThemeObject,\n} from './types'\nimport { concatArrays } from './utils'\n\nexport interface ClassPartObject {\n nextPart: Map<string, ClassPartObject>\n validators: ClassValidatorObject[] | null\n classGroupId: AnyClassGroupIds | undefined // Always define optional props for consistent shape\n}\n\ninterface ClassValidatorObject {\n classGroupId: AnyClassGroupIds\n validator: ClassValidator\n}\n\n// Factory function ensures consistent object shapes\nconst createClassValidatorObject = (\n classGroupId: AnyClassGroupIds,\n validator: ClassValidator,\n): ClassValidatorObject => ({\n classGroupId,\n validator,\n})\n\n// Factory ensures consistent ClassPartObject shape\nconst createClassPartObject = (\n nextPart: Map<string, ClassPartObject> = new Map(),\n validators: ClassValidatorObject[] | null = null,\n classGroupId?: AnyClassGroupIds,\n): ClassPartObject => ({\n nextPart,\n validators,\n classGroupId,\n})\n\nconst CLASS_PART_SEPARATOR = '-'\n\nconst EMPTY_CONFLICTS: readonly AnyClassGroupIds[] = []\n// I use two dots here because one dot is used as prefix for class groups in plugins\nconst ARBITRARY_PROPERTY_PREFIX = 'arbitrary..'\n\nexport const createClassGroupUtils = (config: AnyConfig) => {\n const classMap = createClassMap(config)\n const { conflictingClassGroups, conflictingClassGroupModifiers } = config\n\n const getClassGroupId = (className: string) => {\n if (className.startsWith('[') && className.endsWith(']')) {\n return getGroupIdForArbitraryProperty(className)\n }\n\n const classParts = className.split(CLASS_PART_SEPARATOR)\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and skip it.\n const startIndex = classParts[0] === '' && classParts.length > 1 ? 1 : 0\n return getGroupRecursive(classParts, startIndex, classMap)\n }\n\n const getConflictingClassGroupIds = (\n classGroupId: AnyClassGroupIds,\n hasPostfixModifier: boolean,\n ): readonly AnyClassGroupIds[] => {\n if (hasPostfixModifier) {\n const modifierConflicts = conflictingClassGroupModifiers[classGroupId]\n const baseConflicts = conflictingClassGroups[classGroupId]\n\n if (modifierConflicts) {\n if (baseConflicts) {\n // Merge base conflicts with modifier conflicts\n return concatArrays(baseConflicts, modifierConflicts)\n }\n // Only modifier conflicts\n return modifierConflicts\n }\n // Fall back to without postfix if no modifier conflicts\n return baseConflicts || EMPTY_CONFLICTS\n }\n\n return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS\n }\n\n return {\n getClassGroupId,\n getConflictingClassGroupIds,\n }\n}\n\nconst getGroupRecursive = (\n classParts: string[],\n startIndex: number,\n classPartObject: ClassPartObject,\n): AnyClassGroupIds | undefined => {\n const classPathsLength = classParts.length - startIndex\n if (classPathsLength === 0) {\n return classPartObject.classGroupId\n }\n\n const currentClassPart = classParts[startIndex]!\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart)\n\n if (nextClassPartObject) {\n const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject)\n if (result) return result\n }\n\n const validators = classPartObject.validators\n if (validators === null) {\n return undefined\n }\n\n // Build classRest string efficiently by joining from startIndex onwards\n const classRest =\n startIndex === 0\n ? classParts.join(CLASS_PART_SEPARATOR)\n : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR)\n const validatorsLength = validators.length\n\n for (let i = 0; i < validatorsLength; i++) {\n const validatorObj = validators[i]!\n if (validatorObj.validator(classRest)) {\n return validatorObj.classGroupId\n }\n }\n\n return undefined\n}\n\n/**\n * Get the class group ID for an arbitrary property.\n *\n * @param className - The class name to get the group ID for. Is expected to be string starting with `[` and ending with `]`.\n */\nconst getGroupIdForArbitraryProperty = (className: string): AnyClassGroupIds | undefined =>\n className.slice(1, -1).indexOf(':') === -1\n ? undefined\n : (() => {\n const content = className.slice(1, -1)\n const colonIndex = content.indexOf(':')\n const property = content.slice(0, colonIndex)\n return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined\n })()\n\n/**\n * Exported for testing only\n */\nexport const createClassMap = (config: Config<AnyClassGroupIds, AnyThemeGroupIds>) => {\n const { theme, classGroups } = config\n return processClassGroups(classGroups, theme)\n}\n\n// Split into separate functions to maintain monomorphic call sites\nconst processClassGroups = (\n classGroups: Record<AnyClassGroupIds, ClassGroup<AnyThemeGroupIds>>,\n theme: ThemeObject<AnyThemeGroupIds>,\n): ClassPartObject => {\n const classMap = createClassPartObject()\n\n for (const classGroupId in classGroups) {\n const group = classGroups[classGroupId]!\n processClassesRecursively(group, classMap, classGroupId, theme)\n }\n\n return classMap\n}\n\nconst processClassesRecursively = (\n classGroup: ClassGroup<AnyThemeGroupIds>,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n const len = classGroup.length\n for (let i = 0; i < len; i++) {\n const classDefinition = classGroup[i]!\n processClassDefinition(classDefinition, classPartObject, classGroupId, theme)\n }\n}\n\n// Split into separate functions for each type to maintain monomorphic call sites\nconst processClassDefinition = (\n classDefinition: ClassGroup<AnyThemeGroupIds>[number],\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n if (typeof classDefinition === 'string') {\n processStringDefinition(classDefinition, classPartObject, classGroupId)\n return\n }\n\n if (typeof classDefinition === 'function') {\n processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme)\n return\n }\n\n processObjectDefinition(\n classDefinition as Record<string, ClassGroup<AnyThemeGroupIds>>,\n classPartObject,\n classGroupId,\n theme,\n )\n}\n\nconst processStringDefinition = (\n classDefinition: string,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n) => {\n const classPartObjectToEdit =\n classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition)\n classPartObjectToEdit.classGroupId = classGroupId\n}\n\nconst processFunctionDefinition = (\n classDefinition: Function,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme)\n return\n }\n\n if (classPartObject.validators === null) {\n classPartObject.validators = []\n }\n classPartObject.validators.push(\n createClassValidatorObject(classGroupId, classDefinition as ClassValidator),\n )\n}\n\nconst processObjectDefinition = (\n classDefinition: Record<string, ClassGroup<AnyThemeGroupIds>>,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n const entries = Object.entries(classDefinition)\n const len = entries.length\n for (let i = 0; i < len; i++) {\n const [key, value] = entries[i]!\n processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme)\n }\n}\n\nconst getPart = (classPartObject: ClassPartObject, path: string): ClassPartObject => {\n let current = classPartObject\n const parts = path.split(CLASS_PART_SEPARATOR)\n const len = parts.length\n\n for (let i = 0; i < len; i++) {\n const part = parts[i]!\n\n let next = current.nextPart.get(part)\n if (!next) {\n next = createClassPartObject()\n current.nextPart.set(part, next)\n }\n current = next\n }\n\n return current\n}\n\n// Type guard maintains monomorphic check\nconst isThemeGetter = (func: Function): func is ThemeGetter =>\n 'isThemeGetter' in func && (func as ThemeGetter).isThemeGetter === true\n","// Export is needed because TypeScript complains about an error otherwise:\n// Error: …/tailwind-merge/src/config-utils.ts(8,17): semantic error TS4058: Return type of exported function has or is using name 'LruCache' from external module \"…/tailwind-merge/src/lru-cache\" but cannot be named.\nexport interface LruCache<Key extends string, Value> {\n get(key: Key): Value | undefined\n set(key: Key, value: Value): void\n}\n\n// LRU cache implementation using plain objects for simplicity\nexport const createLruCache = <Key extends string, Value>(\n maxCacheSize: number,\n): LruCache<Key, Value> => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {},\n }\n }\n\n let cacheSize = 0\n let cache: Record<Key, Value> = Object.create(null)\n let previousCache: Record<Key, Value> = Object.create(null)\n\n const update = (key: Key, value: Value) => {\n cache[key] = value\n cacheSize++\n\n if (cacheSize > maxCacheSize) {\n cacheSize = 0\n previousCache = cache\n cache = Object.create(null)\n }\n }\n\n return {\n get(key) {\n let value = cache[key]\n\n if (value !== undefined) {\n return value\n }\n if ((value = previousCache[key]) !== undefined) {\n update(key, value)\n return value\n }\n },\n set(key, value) {\n if (key in cache) {\n cache[key] = value\n } else {\n update(key, value)\n }\n },\n }\n}\n","import { AnyConfig, ParsedClassName } from './types'\n\nexport const IMPORTANT_MODIFIER = '!'\n\nconst MODIFIER_SEPARATOR = ':'\nconst EMPTY_MODIFIERS: string[] = []\n\n// Pre-allocated result object shape for consistency\nconst createResultObject = (\n modifiers: string[],\n hasImportantModifier: boolean,\n baseClassName: string,\n maybePostfixModifierPosition?: number,\n isExternal?: boolean,\n): ParsedClassName => ({\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n isExternal,\n})\n\nexport const createParseClassName = (config: AnyConfig) => {\n const { prefix, experimentalParseClassName } = config\n\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = (className: string): ParsedClassName => {\n // Use simple array with push for better performance\n const modifiers: string[] = []\n\n let bracketDepth = 0\n let parenDepth = 0\n let modifierStart = 0\n let postfixModifierPosition: number | undefined\n\n const len = className.length\n for (let index = 0; index < len; index++) {\n const currentCharacter = className[index]!\n\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index))\n modifierStart = index + 1\n continue\n }\n\n if (currentCharacter === '/') {\n postfixModifierPosition = index\n continue\n }\n }\n\n if (currentCharacter === '[') bracketDepth++\n else if (currentCharacter === ']') bracketDepth--\n else if (currentCharacter === '(') parenDepth++\n else if (currentCharacter === ')') parenDepth--\n }\n\n const baseClassNameWithImportantModifier =\n modifiers.length === 0 ? className : className.slice(modifierStart)\n\n // Inline important modifier check\n let baseClassName = baseClassNameWithImportantModifier\n let hasImportantModifier = false\n\n if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(0, -1)\n hasImportantModifier = true\n } else if (\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)\n ) {\n baseClassName = baseClassNameWithImportantModifier.slice(1)\n hasImportantModifier = true\n }\n\n const maybePostfixModifierPosition =\n postfixModifierPosition && postfixModifierPosition > modifierStart\n ? postfixModifierPosition - modifierStart\n : undefined\n\n return createResultObject(\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n )\n }\n\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR\n const parseClassNameOriginal = parseClassName\n parseClassName = (className: string) =>\n className.startsWith(fullPrefix)\n ? parseClassNameOriginal(className.slice(fullPrefix.length))\n : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true)\n }\n\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName\n parseClassName = (className: string) =>\n experimentalParseClassName({ className, parseClassName: parseClassNameOriginal })\n }\n\n return parseClassName\n}\n","import { AnyConfig } from './types'\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nexport const createSortModifiers = (config: AnyConfig) => {\n // Pre-compute weights for all known modifiers for O(1) comparison\n const modifierWeights = new Map<string, number>()\n\n // Assign weights to sensitive modifiers (highest priority, but preserve order)\n config.orderSensitiveModifiers.forEach((mod, index) => {\n modifierWeights.set(mod, 1000000 + index) // High weights for sensitive mods\n })\n\n return (modifiers: readonly string[]): string[] => {\n const result: string[] = []\n let currentSegment: string[] = []\n\n // Process modifiers in one pass\n for (let i = 0; i < modifiers.length; i++) {\n const modifier = modifiers[i]!\n\n // Check if modifier is sensitive (starts with '[' or in orderSensitiveModifiers)\n const isArbitrary = modifier[0] === '['\n const isOrderSensitive = modifierWeights.has(modifier)\n\n if (isArbitrary || isOrderSensitive) {\n // Sort and flush current segment alphabetically\n if (currentSegment.length > 0) {\n currentSegment.sort()\n result.push(...currentSegment)\n currentSegment = []\n }\n result.push(modifier)\n } else {\n // Regular modifier - add to current segment for batch sorting\n currentSegment.push(modifier)\n }\n }\n\n // Sort and add any remaining segment items\n if (currentSegment.length > 0) {\n currentSegment.sort()\n result.push(...currentSegment)\n }\n\n return result\n }\n}\n","import { createClassGroupUtils } from './class-group-utils'\nimport { createLruCache } from './lru-cache'\nimport { createParseClassName } from './parse-class-name'\nimport { createSortModifiers } from './sort-modifiers'\nimport { AnyConfig } from './types'\n\nexport type ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport const createConfigUtils = (config: AnyConfig) => ({\n cache: createLruCache<string, string>(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config),\n})\n","import { ConfigUtils } from './config-utils'\nimport { IMPORTANT_MODIFIER } from './parse-class-name'\n\nconst SPLIT_CLASSES_REGEX = /\\s+/\n\nexport const mergeClassList = (classList: string, configUtils: ConfigUtils) => {\n const { parseClassName, getClassGroupId, getConflictingClassGroupIds, sortModifiers } =\n configUtils\n\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict: string[] = []\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX)\n\n let result = ''\n\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index]!\n\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n } = parseClassName(originalClassName)\n\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n let hasPostfixModifier = !!maybePostfixModifierPosition\n let classGroupId = getClassGroupId(\n hasPostfixModifier\n ? baseClassName.substring(0, maybePostfixModifierPosition)\n : baseClassName,\n )\n\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n classGroupId = getClassGroupId(baseClassName)\n\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n hasPostfixModifier = false\n }\n\n // Fast path: skip sorting for empty or single modifier\n const variantModifier =\n modifiers.length === 0\n ? ''\n : modifiers.length === 1\n ? modifiers[0]!\n : sortModifiers(modifiers).join(':')\n\n const modifierId = hasImportantModifier\n ? variantModifier + IMPORTANT_MODIFIER\n : variantModifier\n\n const classId = modifierId + classGroupId\n\n if (classGroupsInConflict.indexOf(classId) > -1) {\n // Tailwind class omitted due to conflict\n continue\n }\n\n classGroupsInConflict.push(classId)\n\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier)\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i]!\n classGroupsInConflict.push(modifierId + group)\n }\n\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n }\n\n return result\n}\n","/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\n\nexport type ClassNameValue = ClassNameArray | string | null | undefined | 0 | 0n | false\ntype ClassNameArray = ClassNameValue[]\n\nexport const twJoin = (...classLists: ClassNameValue[]): string => {\n let index = 0\n let argument: ClassNameValue\n let resolvedValue: string\n let string = ''\n\n while (index < classLists.length) {\n if ((argument = classLists[index++])) {\n if ((resolvedValue = toValue(argument))) {\n string && (string += ' ')\n string += resolvedValue\n }\n }\n }\n return string\n}\n\nconst toValue = (mix: ClassNameArray | string): string => {\n // Fast path for strings\n if (typeof mix === 'string') {\n return mix\n }\n\n let resolvedValue: string\n let string = ''\n\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if ((resolvedValue = toValue(mix[k] as ClassNameArray | string))) {\n string && (string += ' ')\n string += resolvedValue\n }\n }\n }\n\n return string\n}\n","import { createConfigUtils } from './config-utils'\nimport { mergeClassList } from './merge-classlist'\nimport { ClassNameValue, twJoin } from './tw-join'\nimport { AnyConfig } from './types'\n\ntype CreateConfigFirst = () => AnyConfig\ntype CreateConfigSubsequent = (config: AnyConfig) => AnyConfig\ntype TailwindMerge = (...classLists: ClassNameValue[]) => string\ntype ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport const createTailwindMerge = (\n createConfigFirst: CreateConfigFirst,\n ...createConfigRest: CreateConfigSubsequent[]\n): TailwindMerge => {\n let configUtils: ConfigUtils\n let cacheGet: ConfigUtils['cache']['get']\n let cacheSet: ConfigUtils['cache']['set']\n let functionToCall: (classList: string) => string\n\n const initTailwindMerge = (classList: string) => {\n const config = createConfigRest.reduce(\n (previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig),\n createConfigFirst() as AnyConfig,\n )\n\n configUtils = createConfigUtils(config)\n cacheGet = configUtils.cache.get\n cacheSet = configUtils.cache.set\n functionToCall = tailwindMerge\n\n return tailwindMerge(classList)\n }\n\n const tailwindMerge = (classList: string) => {\n const cachedResult = cacheGet(classList)\n\n if (cachedResult) {\n return cachedResult\n }\n\n const result = mergeClassList(classList, configUtils)\n cacheSet(classList, result)\n\n return result\n }\n\n functionToCall = initTailwindMerge\n\n return (...args: ClassNameValue[]) => functionToCall(twJoin(...args))\n}\n","import { DefaultThemeGroupIds, NoInfer, ThemeGetter, ThemeObject } from './types'\n\nconst fallbackThemeArr: ThemeObject<DefaultThemeGroupIds>[DefaultThemeGroupIds] = []\n\nexport const fromTheme = <\n AdditionalThemeGroupIds extends string = never,\n DefaultThemeGroupIdsInner extends string = DefaultThemeGroupIds,\n>(\n key: NoInfer<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>,\n): ThemeGetter => {\n const themeGetter = (theme: ThemeObject<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>) =>\n theme[key] || fallbackThemeArr\n\n themeGetter.isThemeGetter = true as const\n\n return themeGetter\n}\n","const arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i\nconst fractionRegex = /^\\d+(?:\\.\\d+)?\\/\\d+(?:\\.\\d+)?$/\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/\nconst lengthUnitRegex =\n /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/\nconst imageRegex =\n /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/\n\nexport const isFraction = (value: string) => fractionRegex.test(value)\n\nexport const isNumber = (value: string) => !!value && !Number.isNaN(Number(value))\n\nexport const isInteger = (value: string) => !!value && Number.isInteger(Number(value))\n\nexport const isPercent = (value: string) => value.endsWith('%') && isNumber(value.slice(0, -1))\n\nexport const isTshirtSize = (value: string) => tshirtUnitRegex.test(value)\n\nexport const isAny = () => true\n\nconst isLengthOnly = (value: string) =>\n // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n // For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\n lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)\n\nconst isNever = () => false\n\nconst isShadow = (value: string) => shadowRegex.test(value)\n\nconst isImage = (value: string) => imageRegex.test(value)\n\nexport const isAnyNonArbitrary = (value: string) =>\n !isArbitraryValue(value) && !isArbitraryVariable(value)\n\nexport const isArbitrarySize = (value: string) => getIsArbitraryValue(value, isLabelSize, isNever)\n\nexport const isArbitraryValue = (value: string) => arbitraryValueRegex.test(value)\n\nexport const isArbitraryLength = (value: string) =>\n getIsArbitraryValue(value, isLabelLength, isLengthOnly)\n\nexport const isArbitraryNumber = (value: string) =>\n getIsArbitraryValue(value, isLabelNumber, isNumber)\n\nexport const isArbitraryWeight = (value: string) => getIsArbitraryValue(value, isLabelWeight, isAny)\n\nexport const isArbitraryFamilyName = (value: string) =>\n getIsArbitraryValue(value, isLabelFamilyName, isNever)\n\nexport const isArbitraryPosition = (value: string) =>\n getIsArbitraryValue(value, isLabelPosition, isNever)\n\nexport const isArbitraryImage = (value: string) => getIsArbitraryValue(value, isLabelImage, isImage)\n\nexport const isArbitraryShadow = (value: string) =>\n getIsArbitraryValue(value, isLabelShadow, isShadow)\n\nexport const isArbitraryVariable = (value: string) => arbitraryVariableRegex.test(value)\n\nexport const isArbitraryVariableLength = (value: string) =>\n getIsArbitraryVariable(value, isLabelLength)\n\nexport const isArbitraryVariableFamilyName = (value: string) =>\n getIsArbitraryVariable(value, isLabelFamilyName)\n\nexport const isArbitraryVariablePosition = (value: string) =>\n getIsArbitraryVariable(value, isLabelPosition)\n\nexport const isArbitraryVariableSize = (value: string) => getIsArbitraryVariable(value, isLabelSize)\n\nexport const isArbitraryVariableImage = (value: string) =>\n getIsArbitraryVariable(value, isLabelImage)\n\nexport const isArbitraryVariableShadow = (value: string) =>\n getIsArbitraryVariable(value, isLabelShadow, true)\n\nexport const isArbitraryVariableWeight = (value: string) =>\n getIsArbitraryVariable(value, isLabelWeight, true)\n\n// Helpers\n\nconst getIsArbitraryValue = (\n value: string,\n testLabel: (label: string) => boolean,\n testValue: (value: string) => boolean,\n) => {\n const result = arbitraryValueRegex.exec(value)\n\n if (result) {\n if (result[1]) {\n return testLabel(result[1])\n }\n\n return testValue(result[2]!)\n }\n\n return false\n}\n\nconst getIsArbitraryVariable = (\n value: string,\n testLabel: (label: string) => boolean,\n shouldMatchNoLabel = false,\n) => {\n const result = arbitraryVariableRegex.exec(value)\n\n if (result) {\n if (result[1]) {\n return testLabel(result[1])\n }\n return shouldMatchNoLabel\n }\n\n return false\n}\n\n// Labels\n\nconst isLabelPosition = (label: string) => label === 'position' || label === 'percentage'\n\nconst isLabelImage = (label: string) => label === 'image' || label === 'url'\n\nconst isLabelSize = (label: string) => label === 'length' || label === 'size' || label === 'bg-size'\n\nconst isLabelLength = (label: string) => label === 'length'\n\nconst isLabelNumber = (label: string) => label === 'number'\n\nconst isLabelFamilyName = (label: string) => label === 'family-name'\n\nconst isLabelWeight = (label: string) => label === 'number' || label === 'weight'\n\nconst isLabelShadow = (label: string) => label === 'shadow'\n","import { fromTheme } from './from-theme'\nimport { Config, DefaultClassGroupIds, DefaultThemeGroupIds } from './types'\nimport {\n isAny,\n isAnyNonArbitrary,\n isArbitraryFamilyName,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isArbitraryVariableWeight,\n isArbitraryWeight,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize,\n} from './validators'\n\nexport const getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n\n const themeColor = fromTheme('color')\n const themeFont = fromTheme('font')\n const themeText = fromTheme('text')\n const themeFontWeight = fromTheme('font-weight')\n const themeTracking = fromTheme('tracking')\n const themeLeading = fromTheme('leading')\n const themeBreakpoint = fromTheme('breakpoint')\n const themeContainer = fromTheme('container')\n const themeSpacing = fromTheme('spacing')\n const themeRadius = fromTheme('radius')\n const themeShadow = fromTheme('shadow')\n const themeInsetShadow = fromTheme('inset-shadow')\n const themeTextShadow = fromTheme('text-shadow')\n const themeDropShadow = fromTheme('drop-shadow')\n const themeBlur = fromTheme('blur')\n const themePerspective = fromTheme('perspective')\n const themeAspect = fromTheme('aspect')\n const themeEase = fromTheme('ease')\n const themeAnimate = fromTheme('animate')\n\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n\n const scaleBreak = () =>\n ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'] as const\n const scalePosition = () =>\n [\n 'center',\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top',\n 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top',\n 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom',\n 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom',\n ] as const\n const scalePositionWithArbitrary = () =>\n [...scalePosition(), isArbitraryVariable, isArbitraryValue] as const\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'] as const\n const scaleOverscroll = () => ['auto', 'contain', 'none'] as const\n const scaleUnambiguousSpacing = () =>\n [isArbitraryVariable, isArbitraryValue, themeSpacing] as const\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()] as const\n const scaleGridTemplateColsRows = () =>\n [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue] as const\n const scaleGridColRowStartAndEnd = () =>\n [\n 'auto',\n { span: ['full', isInteger, isArbitraryVariable, isArbitraryValue] },\n isInteger,\n isArbitraryVariable,\n isArbitraryValue,\n ] as const\n const scaleGridColRowStartOrEnd = () =>\n [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] as const\n const scaleGridAutoColsRows = () =>\n ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue] as const\n const scaleAlignPrimaryAxis = () =>\n [\n 'start',\n 'end',\n 'center',\n 'between',\n 'around',\n 'evenly',\n 'stretch',\n 'baseline',\n 'center-safe',\n 'end-safe',\n ] as const\n const scaleAlignSecondaryAxis = () =>\n ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'] as const\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()] as const\n const scaleSizing = () =>\n [\n isFraction,\n 'auto',\n 'full',\n 'dvw',\n 'dvh',\n 'lvw',\n 'lvh',\n 'svw',\n 'svh',\n 'min',\n 'max',\n 'fit',\n ...scaleUnambiguousSpacing(),\n ] as const\n const scaleSizingInline = () =>\n [\n isFraction,\n 'screen',\n 'full',\n 'dvw',\n 'lvw',\n 'svw',\n 'min',\n 'max',\n 'fit',\n ...scaleUnambiguousSpacing(),\n ] as const\n const scaleSizingBlock = () =>\n [\n isFraction,\n 'screen',\n 'full',\n 'lh',\n 'dvh',\n 'lvh',\n 'svh',\n 'min',\n 'max',\n 'fit',\n ...scaleUnambiguousSpacing(),\n ] as const\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue] as const\n const scaleBgPosition = () =>\n [\n ...scalePosition(),\n isArbitraryVariablePosition,\n isArbitraryPosition,\n { position: [isArbitraryVariable, isArbitraryValue] },\n ] as const\n const scaleBgRepeat = () => ['no-repeat', { repeat: ['', 'x', 'y', 'space', 'round'] }] as const\n const scaleBgSize = () =>\n [\n 'auto',\n 'cover',\n 'contain',\n isArbitraryVariableSize,\n isArbitrarySize,\n { size: [isArbitraryVariable, isArbitraryValue] },\n ] as const\n const scaleGradientStopPosition = () =>\n [isPercent, isArbitraryVariableLength, isArbitraryLength] as const\n const scaleRadius = () =>\n [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n 'full',\n themeRadius,\n isArbitraryVariable,\n isArbitraryValue,\n ] as const\n const scaleBorderWidth = () =>\n ['', isNumber, isArbitraryVariableLength, isArbitraryLength] as const\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'] as const\n const scaleBlendMode = () =>\n [\n 'normal',\n 'multiply',\n 'screen',\n 'overlay',\n 'darken',\n 'lighten',\n 'color-dodge',\n 'color-burn',\n 'hard-light',\n 'soft-light',\n 'difference',\n 'exclusion',\n 'hue',\n 'saturation',\n 'color',\n 'luminosity',\n ] as const\n const scaleMaskImagePosition = () =>\n [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition] as const\n const scaleBlur = () =>\n [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n themeBlur,\n isArbitraryVariable,\n isArbitraryValue,\n ] as const\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue] as const\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue] as const\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue] as const\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()] as const\n\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': [\n 'thin',\n 'extralight',\n 'light',\n 'normal',\n 'medium',\n 'semibold',\n 'bold',\n 'extrabold',\n 'black',\n ],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest'],\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [\n {\n aspect: [\n 'auto',\n 'square',\n isFraction,\n isArbitraryValue,\n isArbitraryVariable,\n themeAspect,\n ],\n },\n ],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [\n { columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer] },\n ],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{ 'break-after': scaleBreak() }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{ 'break-before': scaleBreak() }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{ 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column'] }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{ 'box-decoration': ['slice', 'clone'] }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{ box: ['border', 'content'] }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: [\n 'block',\n 'inline-block',\n 'inline',\n 'flex',\n 'inline-flex',\n 'table',\n 'inline-table',\n 'table-caption',\n 'table-cell',\n 'table-column',\n 'table-column-group',\n 'table-footer-group',\n 'table-header-group',\n 'table-row-group',\n 'table-row',\n 'flow-root',\n 'grid',\n 'inline-grid',\n 'contents',\n 'list-item',\n 'hidden',\n ],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{ float: ['right', 'left', 'none', 'start', 'end'] }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{ clear: ['left', 'right', 'both', 'none', 'start', 'end'] }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{ object: ['contain', 'cover', 'fill', 'none', 'scale-down'] }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{ object: scalePositionWithArbitrary() }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{ overflow: scaleOverflow() }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{ 'overflow-x': scaleOverflow() }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{ 'overflow-y': scaleOverflow() }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{ overscroll: scaleOverscroll() }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{ 'overscroll-x': scaleOverscroll() }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{ 'overscroll-y': scaleOverscroll() }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Inset\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{ inset: scaleInset() }],\n /**\n * Inset Inline\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{ 'inset-x': scaleInset() }],\n /**\n * Inset Block\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{ 'inset-y': scaleInset() }],\n /**\n * Inset Inline Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n * @todo class group will be renamed to `inset-s` in next major release\n */\n start: [\n {\n 'inset-s': scaleInset(),\n /**\n * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-s-*` utilities.\n * @see https://github.com/tailwindlabs/tailwindcss/pull/19613\n */\n start: scaleInset(),\n },\n ],\n /**\n * Inset Inline End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n * @todo class group will be renamed to `inset-e` in next major release\n */\n end: [\n {\n 'inset-e': scaleInset(),\n /**\n * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-e-*` utilities.\n * @see https://github.com/tailwindlabs/tailwindcss/pull/19613\n */\n end: scaleInset(),\n },\n ],\n /**\n * Inset Block Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-bs': [{ 'inset-bs': scaleInset() }],\n /**\n * Inset Block End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-be': [{ 'inset-be': scaleInset() }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{ top: scaleInset() }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{ right: scaleInset() }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{ bottom: scaleInset() }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{ left: scaleInset() }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{ z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] }],\n\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [\n {\n basis: [\n isFraction,\n 'full',\n 'auto',\n themeContainer,\n ...scaleUnambiguousSpacing(),\n ],\n },\n ],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{ flex: ['row', 'row-reverse', 'col', 'col-reverse'] }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{ flex: ['nowrap', 'wrap', 'wrap-reverse'] }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{ flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue] }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{ grow: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{ shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [\n {\n order: [\n isInteger,\n 'first',\n 'last',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{ 'grid-cols': scaleGridTemplateColsRows() }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{ col: scaleGridColRowStartAndEnd() }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{ 'col-start': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{ 'col-end': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{ 'grid-rows': scaleGridTemplateColsRows() }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{ row: scaleGridColRowStartAndEnd() }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{ 'row-start': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{ 'row-end': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{ 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense'] }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{ 'auto-cols': scaleGridAutoColsRows() }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{ 'auto-rows': scaleGridAutoColsRows() }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{ gap: scaleUnambiguousSpacing() }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{ 'gap-x': scaleUnambiguousSpacing() }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{ 'gap-y': scaleUnambiguousSpacing() }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{ justify: [...scaleAlignPrimaryAxis(), 'normal'] }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{ 'justify-items': [...scaleAlignSecondaryAxis(), 'normal'] }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{ 'justify-self': ['auto', ...scaleAlignSecondaryAxis()] }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{ content: ['normal', ...scaleAlignPrimaryAxis()] }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{ items: [...scaleAlignSecondaryAxis(), { baseline: ['', 'last'] }] }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [\n { self: ['auto', ...scaleAlignSecondaryAxis(), { baseline: ['', 'last'] }] },\n ],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{ 'place-content': scaleAlignPrimaryAxis() }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{ 'place-items': [...scaleAlignSecondaryAxis(), 'baseline'] }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{ 'place-self': ['auto', ...scaleAlignSecondaryAxis()] }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{ p: scaleUnambiguousSpacing() }],\n /**\n * Padding Inline\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{ px: scaleUnambiguousSpacing() }],\n /**\n * Padding Block\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{ py: scaleUnambiguousSpacing() }],\n /**\n * Padding Inline Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{ ps: scaleUnambiguousSpacing() }],\n /**\n * Padding Inline End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{ pe: scaleUnambiguousSpacing() }],\n /**\n * Padding Block Start\n * @see https://tailwindcss.com/docs/padding\n */\n pbs: [{ pbs: scaleUnambiguousSpacing() }],\n /**\n * Padding Block End\n * @see https://tailwindcss.com/docs/padding\n */\n pbe: [{ pbe: scaleUnambiguousSpacing() }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{ pt: scaleUnambiguousSpacing() }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{ pr: scaleUnambiguousSpacing() }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{ pb: scaleUnambiguousSpacing() }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{ pl: scaleUnambiguousSpacing() }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{ m: scaleMargin() }],\n /**\n * Margin Inline\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{ mx: scaleMargin() }],\n /**\n * Margin Block\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{ my: scaleMargin() }],\n /**\n * Margin Inline Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{ ms: scaleMargin() }],\n /**\n * Margin Inline End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{ me: scaleMargin() }],\n /**\n * Margin Block Start\n * @see https://tailwindcss.com/docs/margin\n */\n mbs: [{ mbs: scaleMargin() }],\n /**\n * Margin Block End\n * @see https://tailwindcss.com/docs/margin\n */\n mbe: [{ mbe: scaleMargin() }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{ mt: scaleMargin() }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{ mr: scaleMargin() }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{ mb: scaleMargin() }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{ ml: scaleMargin() }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{ 'space-x': scaleUnambiguousSpacing() }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{ 'space-y': scaleUnambiguousSpacing() }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n\n // --------------\n // --- Sizing ---\n // --------------\n\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{ size: scaleSizing() }],\n /**\n * Inline Size\n * @see https://tailwindcss.com/docs/width\n */\n 'inline-size': [{ inline: ['auto', ...scaleSizingInline()] }],\n /**\n * Min-Inline Size\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-inline-size': [{ 'min-inline': ['auto', ...scaleSizingInline()] }],\n /**\n * Max-Inline Size\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-inline-size': [{ 'max-inline': ['none', ...scaleSizingInline()] }],\n /**\n * Block Size\n * @see https://tailwindcss.com/docs/height\n */\n 'block-size': [{ block: ['auto', ...scaleSizingBlock()] }],\n /**\n * Min-Block Size\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-block-size': [{ 'min-block': ['auto', ...scaleSizingBlock()] }],\n /**\n * Max-Block Size\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-block-size': [{ 'max-block': ['none', ...scaleSizingBlock()] }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{ w: [themeContainer, 'screen', ...scaleSizing()] }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [\n {\n 'min-w': [\n themeContainer,\n 'screen',\n /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none',\n ...scaleSizing(),\n ],\n },\n ],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [\n {\n 'max-w': [\n themeContainer,\n 'screen',\n 'none',\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose',\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n { screen: [themeBreakpoint] },\n ...scaleSizing(),\n ],\n },\n ],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{ h: ['screen', 'lh', ...scaleSizing()] }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{ 'min-h': ['screen', 'lh', 'none', ...scaleSizing()] }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{ 'max-h': ['screen', 'lh', ...scaleSizing()] }],\n\n // ------------------\n // --- Typography ---\n // ------------------\n\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [\n { text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength] },\n ],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [\n {\n font: [themeFontWeight, isArbitraryVariableWeight, isArbitraryWeight],\n },\n ],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [\n {\n 'font-stretch': [\n 'ultra-condensed',\n 'extra-condensed',\n 'condensed',\n 'semi-condensed',\n 'normal',\n 'semi-expanded',\n 'expanded',\n 'extra-expanded',\n 'ultra-expanded',\n isPercent,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [\n { font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, themeFont] },\n ],\n /**\n * Font Feature Settings\n * @see https://tailwindcss.com/docs/font-feature-settings\n */\n 'font-features': [{ 'font-features': [isArbitraryValue] }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{ tracking: [themeTracking, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [\n { 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber] },\n ],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [\n {\n leading: [\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading,\n ...scaleUnambiguousSpacing(),\n ],\n },\n ],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{ 'list-image': ['none', isArbitraryVariable, isArbitraryValue] }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{ list: ['inside', 'outside'] }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [\n { list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{ text: ['left', 'center', 'right', 'justify', 'start', 'end'] }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{ placeholder: scaleColor() }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{ text: scaleColor() }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{ decoration: [...scaleLineStyle(), 'wavy'] }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [\n {\n decoration: [\n isNumber,\n 'from-font',\n 'auto',\n isArbitraryVariable,\n isArbitraryLength,\n ],\n },\n ],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{ decoration: scaleColor() }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [\n { 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{ text: ['wrap', 'nowrap', 'balance', 'pretty'] }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{ indent: scaleUnambiguousSpacing() }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [\n {\n align: [\n 'baseline',\n 'top',\n 'middle',\n 'bottom',\n 'text-top',\n 'text-bottom',\n 'sub',\n 'super',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [\n { whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces'] },\n ],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{ break: ['normal', 'words', 'all', 'keep'] }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{ wrap: ['break-word', 'anywhere', 'normal'] }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{ hyphens: ['none', 'manual', 'auto'] }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{ content: ['none', isArbitraryVariable, isArbitraryValue] }],\n\n // -------------------\n // --- Backgrounds ---\n // -------------------\n\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{ bg: ['fixed', 'local', 'scroll'] }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{ 'bg-clip': ['border', 'padding', 'content', 'text'] }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{ 'bg-origin': ['border', 'padding', 'content'] }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{ bg: scaleBgPosition() }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{ bg: scaleBgRepeat() }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{ bg: scaleBgSize() }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [\n {\n bg: [\n 'none',\n {\n linear: [\n { to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl'] },\n isInteger,\n isArbitraryVariable,\n isArbitraryValue,\n ],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue],\n },\n isArbitraryVariableImage,\n isArbitraryImage,\n ],\n },\n ],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{ bg: scaleColor() }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{ from: scaleGradientStopPosition() }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{ via: scaleGradientStopPosition() }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{ to: scaleGradientStopPosition() }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{ from: scaleColor() }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{ via: scaleColor() }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{ to: scaleColor() }],\n\n // ---------------\n // --- Borders ---\n // ---------------\n\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{ rounded: scaleRadius() }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{ 'rounded-s': scaleRadius() }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{ 'rounded-e': scaleRadius() }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{ 'rounded-t': scaleRadius() }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{ 'rounded-r': scaleRadius() }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{ 'rounded-b': scaleRadius() }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{ 'rounded-l': scaleRadius() }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{ 'rounded-ss': scaleRadius() }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{ 'rounded-se': scaleRadius() }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{ 'rounded-ee': scaleRadius() }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{ 'rounded-es': scaleRadius() }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{ 'rounded-tl': scaleRadius() }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{ 'rounded-tr': scaleRadius() }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{ 'rounded-br': scaleRadius() }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{ 'rounded-bl': scaleRadius() }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{ border: scaleBorderWidth() }],\n /**\n * Border Width Inline\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{ 'border-x': scaleBorderWidth() }],\n /**\n * Border Width Block\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{ 'border-y': scaleBorderWidth() }],\n /**\n * Border Width Inline Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{ 'border-s': scaleBorderWidth() }],\n /**\n * Border Width Inline End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{ 'border-e': scaleBorderWidth() }],\n /**\n * Border Width Block Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-bs': [{ 'border-bs': scaleBorderWidth() }],\n /**\n * Border Width Block End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-be': [{ 'border-be': scaleBorderWidth() }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{ 'border-t': scaleBorderWidth() }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{ 'border-r': scaleBorderWidth() }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{ 'border-b': scaleBorderWidth() }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{ 'border-l': scaleBorderWidth() }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{ 'divide-x': scaleBorderWidth() }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{ 'divide-y': scaleBorderWidth() }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{ border: [...scaleLineStyle(), 'hidden', 'none'] }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{ divide: [...scaleLineStyle(), 'hidden', 'none'] }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{ border: scaleColor() }],\n /**\n * Border Color Inline\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{ 'border-x': scaleColor() }],\n /**\n * Border Color Block\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{ 'border-y': scaleColor() }],\n /**\n * Border Color Inline Start\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{ 'border-s': scaleColor() }],\n /**\n * Border Color Inline End\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{ 'border-e': scaleColor() }],\n /**\n * Border Color Block Start\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-bs': [{ 'border-bs': scaleColor() }],\n /**\n * Border Color Block End\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-be': [{ 'border-be': scaleColor() }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{ 'border-t': scaleColor() }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{ 'border-r': scaleColor() }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{ 'border-b': scaleColor() }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{ 'border-l': scaleColor() }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{ divide: scaleColor() }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{ outline: [...scaleLineStyle(), 'none', 'hidden'] }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [\n { 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [\n { outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength] },\n ],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{ outline: scaleColor() }],\n\n // ---------------\n // --- Effects ---\n // ---------------\n\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [\n {\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n themeShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{ shadow: scaleColor() }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [\n {\n 'inset-shadow': [\n 'none',\n themeInsetShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{ 'inset-shadow': scaleColor() }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{ ring: scaleBorderWidth() }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{ ring: scaleColor() }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{ 'ring-offset': [isNumber, isArbitraryLength] }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{ 'ring-offset': scaleColor() }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{ 'inset-ring': scaleBorderWidth() }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{ 'inset-ring': scaleColor() }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [\n {\n 'text-shadow': [\n 'none',\n themeTextShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{ 'text-shadow': scaleColor() }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{ opacity: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{ 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter'] }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{ 'bg-blend': scaleBlendMode() }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [\n { 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] },\n 'mask-no-clip',\n ],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{ mask: ['add', 'subtract', 'intersect', 'exclude'] }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{ 'mask-linear': [isNumber] }],\n 'mask-image-linear-from-pos': [{ 'mask-linear-from': scaleMaskImagePosition() }],\n 'mask-image-linear-to-pos': [{ 'mask-linear-to': scaleMaskImagePosition() }],\n 'mask-image-linear-from-color': [{ 'mask-linear-from': scaleColor() }],\n 'mask-image-linear-to-color': [{ 'mask-linear-to': scaleColor() }],\n 'mask-image-t-from-pos': [{ 'mask-t-from': scaleMaskImagePosition() }],\n 'mask-image-t-to-pos': [{ 'mask-t-to': scaleMaskImagePosition() }],\n 'mask-image-t-from-color': [{ 'mask-t-from': scaleColor() }],\n 'mask-image-t-to-color': [{ 'mask-t-to': scaleColor() }],\n 'mask-image-r-from-pos': [{ 'mask-r-from': scaleMaskImagePosition() }],\n 'mask-image-r-to-pos': [{ 'mask-r-to': scaleMaskImagePosition() }],\n 'mask-image-r-from-color': [{ 'mask-r-from': scaleColor() }],\n 'mask-image-r-to-color': [{ 'mask-r-to': scaleColor() }],\n 'mask-image-b-from-pos': [{ 'mask-b-from': scaleMaskImagePosition() }],\n 'mask-image-b-to-pos': [{ 'mask-b-to': scaleMaskImagePosition() }],\n 'mask-image-b-from-color': [{ 'mask-b-from': scaleColor() }],\n 'mask-image-b-to-color': [{ 'mask-b-to': scaleColor() }],\n 'mask-image-l-from-pos': [{ 'mask-l-from': scaleMaskImagePosition() }],\n 'mask-image-l-to-pos': [{ 'mask-l-to': scaleMaskImagePosition() }],\n 'mask-image-l-from-color': [{ 'mask-l-from': scaleColor() }],\n 'mask-image-l-to-color': [{ 'mask-l-to': scaleColor() }],\n 'mask-image-x-from-pos': [{ 'mask-x-from': scaleMaskImagePosition() }],\n 'mask-image-x-to-pos': [{ 'mask-x-to': scaleMaskImagePosition() }],\n 'mask-image-x-from-color': [{ 'mask-x-from': scaleColor() }],\n 'mask-image-x-to-color': [{ 'mask-x-to': scaleColor() }],\n 'mask-image-y-from-pos': [{ 'mask-y-from': scaleMaskImagePosition() }],\n 'mask-image-y-to-pos': [{ 'mask-y-to': scaleMaskImagePosition() }],\n 'mask-image-y-from-color': [{ 'mask-y-from': scaleColor() }],\n 'mask-image-y-to-color': [{ 'mask-y-to': scaleColor() }],\n 'mask-image-radial': [{ 'mask-radial': [isArbitraryVariable, isArbitraryValue] }],\n 'mask-image-radial-from-pos': [{ 'mask-radial-from': scaleMaskImagePosition() }],\n 'mask-image-radial-to-pos': [{ 'mask-radial-to': scaleMaskImagePosition() }],\n 'mask-image-radial-from-color': [{ 'mask-radial-from': scaleColor() }],\n 'mask-image-radial-to-color': [{ 'mask-radial-to': scaleColor() }],\n 'mask-image-radial-shape': [{ 'mask-radial': ['circle', 'ellipse'] }],\n 'mask-image-radial-size': [\n { 'mask-radial': [{ closest: ['side', 'corner'], farthest: ['side', 'corner'] }] },\n ],\n 'mask-image-radial-pos': [{ 'mask-radial-at': scalePosition() }],\n 'mask-image-conic-pos': [{ 'mask-conic': [isNumber] }],\n 'mask-image-conic-from-pos': [{ 'mask-conic-from': scaleMaskImagePosition() }],\n 'mask-image-conic-to-pos': [{ 'mask-conic-to': scaleMaskImagePosition() }],\n 'mask-image-conic-from-color': [{ 'mask-conic-from': scaleColor() }],\n 'mask-image-conic-to-color': [{ 'mask-conic-to': scaleColor() }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{ mask: ['alpha', 'luminance', 'match'] }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [\n { 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] },\n ],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{ mask: scaleBgPosition() }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{ mask: scaleBgRepeat() }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{ mask: scaleBgSize() }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{ 'mask-type': ['alpha', 'luminance'] }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{ mask: ['none', isArbitraryVariable, isArbitraryValue] }],\n\n // ---------------\n // --- Filters ---\n // ---------------\n\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [\n {\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{ blur: scaleBlur() }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{ brightness: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{ contrast: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [\n {\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n themeDropShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{ 'drop-shadow': scaleColor() }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{ grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{ 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{ invert: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{ saturate: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{ sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [\n {\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{ 'backdrop-blur': scaleBlur() }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [\n { 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [\n { 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [\n { 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [\n { 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [\n { 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [\n { 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [\n { 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [\n { 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n\n // --------------\n // --- Tables ---\n // --------------\n\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{ border: ['collapse', 'separate'] }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{ 'border-spacing': scaleUnambiguousSpacing() }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{ 'border-spacing-x': scaleUnambiguousSpacing() }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{ 'border-spacing-y': scaleUnambiguousSpacing() }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{ table: ['auto', 'fixed'] }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{ caption: ['top', 'bottom'] }],\n\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [\n {\n transition: [\n '',\n 'all',\n 'colors',\n 'opacity',\n 'shadow',\n 'transform',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{ transition: ['normal', 'discrete'] }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{ duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue] }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [\n { ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{ delay: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{ animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue] }],\n\n // ------------------\n // --- Transforms ---\n // ------------------\n\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{ backface: ['hidden', 'visible'] }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [\n { perspective: [themePerspective, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{ 'perspective-origin': scalePositionWithArbitrary() }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{ rotate: scaleRotate() }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{ 'rotate-x': scaleRotate() }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{ 'rotate-y': scaleRotate() }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{ 'rotate-z': scaleRotate() }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{ scale: scaleScale() }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{ 'scale-x': scaleScale() }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{ 'scale-y': scaleScale() }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{ 'scale-z': scaleScale() }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{ skew: scaleSkew() }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{ 'skew-x': scaleSkew() }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{ 'skew-y': scaleSkew() }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [\n { transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu'] },\n ],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{ origin: scalePositionWithArbitrary() }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{ transform: ['3d', 'flat'] }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{ translate: scaleTranslate() }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{ 'translate-x': scaleTranslate() }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{ 'translate-y': scaleTranslate() }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{ 'translate-z': scaleTranslate() }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{ accent: scaleColor() }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{ appearance: ['none', 'auto'] }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{ caret: scaleColor() }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [\n { scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light'] },\n ],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [\n {\n cursor: [\n 'auto',\n 'default',\n 'pointer',\n 'wait',\n 'text',\n 'move',\n 'help',\n 'not-allowed',\n 'none',\n 'context-menu',\n 'progress',\n 'cell',\n 'crosshair',\n 'vertical-text',\n 'alias',\n 'copy',\n 'no-drop',\n 'grab',\n 'grabbing',\n 'all-scroll',\n 'col-resize',\n 'row-resize',\n 'n-resize',\n 'e-resize',\n 's-resize',\n 'w-resize',\n 'ne-resize',\n 'nw-resize',\n 'se-resize',\n 'sw-resize',\n 'ew-resize',\n 'ns-resize',\n 'nesw-resize',\n 'nwse-resize',\n 'zoom-in',\n 'zoom-out',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{ 'field-sizing': ['fixed', 'content'] }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{ 'pointer-events': ['auto', 'none'] }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{ resize: ['none', '', 'y', 'x'] }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{ scroll: ['auto', 'smooth'] }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{ 'scroll-m': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Inline\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{ 'scroll-mx': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Block\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{ 'scroll-my': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Inline Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{ 'scroll-ms': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Inline End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{ 'scroll-me': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Block Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mbs': [{ 'scroll-mbs': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Block End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mbe': [{ 'scroll-mbe': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{ 'scroll-mt': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{ 'scroll-mr': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{ 'scroll-mb': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{ 'scroll-ml': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{ 'scroll-p': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Inline\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{ 'scroll-px': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Block\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{ 'scroll-py': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Inline Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{ 'scroll-ps': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Inline End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{ 'scroll-pe': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Block Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pbs': [{ 'scroll-pbs': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Block End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pbe': [{ 'scroll-pbe': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{ 'scroll-pt': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{ 'scroll-pr': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{ 'scroll-pb': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{ 'scroll-pl': scaleUnambiguousSpacing() }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{ snap: ['start', 'end', 'center', 'align-none'] }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{ snap: ['normal', 'always'] }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{ snap: ['none', 'x', 'y', 'both'] }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{ snap: ['mandatory', 'proximity'] }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{ touch: ['auto', 'none', 'manipulation'] }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{ 'touch-pan': ['x', 'left', 'right'] }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{ 'touch-pan': ['y', 'up', 'down'] }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{ select: ['none', 'text', 'all', 'auto'] }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [\n {\n 'will-change': [\n 'auto',\n 'scroll',\n 'contents',\n 'transform',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n\n // -----------\n // --- SVG ---\n // -----------\n\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{ fill: ['none', ...scaleColor()] }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [\n {\n stroke: [\n isNumber,\n isArbitraryVariableLength,\n isArbitraryLength,\n isArbitraryNumber,\n ],\n },\n ],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{ stroke: ['none', ...scaleColor()] }],\n\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{ 'forced-color-adjust': ['auto', 'none'] }],\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: [\n 'inset-x',\n 'inset-y',\n 'inset-bs',\n 'inset-be',\n 'start',\n 'end',\n 'top',\n 'right',\n 'bottom',\n 'left',\n ],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pbs', 'pbe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mbs', 'mbe', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': [\n 'fvn-ordinal',\n 'fvn-slashed-zero',\n 'fvn-figure',\n 'fvn-spacing',\n 'fvn-fraction',\n ],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: [\n 'rounded-s',\n 'rounded-e',\n 'rounded-t',\n 'rounded-r',\n 'rounded-b',\n 'rounded-l',\n 'rounded-ss',\n 'rounded-se',\n 'rounded-ee',\n 'rounded-es',\n 'rounded-tl',\n 'rounded-tr',\n 'rounded-br',\n 'rounded-bl',\n ],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': [\n 'border-w-x',\n 'border-w-y',\n 'border-w-s',\n 'border-w-e',\n 'border-w-bs',\n 'border-w-be',\n 'border-w-t',\n 'border-w-r',\n 'border-w-b',\n 'border-w-l',\n ],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': [\n 'border-color-x',\n 'border-color-y',\n 'border-color-s',\n 'border-color-e',\n 'border-color-bs',\n 'border-color-be',\n 'border-color-t',\n 'border-color-r',\n 'border-color-b',\n 'border-color-l',\n ],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': [\n 'scroll-mx',\n 'scroll-my',\n 'scroll-ms',\n 'scroll-me',\n 'scroll-mbs',\n 'scroll-mbe',\n 'scroll-mt',\n 'scroll-mr',\n 'scroll-mb',\n 'scroll-ml',\n ],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': [\n 'scroll-px',\n 'scroll-py',\n 'scroll-ps',\n 'scroll-pe',\n 'scroll-pbs',\n 'scroll-pbe',\n 'scroll-pt',\n 'scroll-pr',\n 'scroll-pb',\n 'scroll-pl',\n ],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch'],\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading'],\n },\n orderSensitiveModifiers: [\n '*',\n '**',\n 'after',\n 'backdrop',\n 'before',\n 'details-content',\n 'file',\n 'first-letter',\n 'first-line',\n 'marker',\n 'placeholder',\n 'selection',\n ],\n } as const satisfies Config<DefaultClassGroupIds, DefaultThemeGroupIds>\n}\n","import { createTailwindMerge } from './create-tailwind-merge'\nimport { getDefaultConfig } from './default-config'\n\nexport const twMerge = createTailwindMerge(getDefaultConfig)\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import React from \"react\";\nimport { cn } from \"../utils/cn\";\n\ntype LoaderProps = {\n size?: number | string;\n color?: string;\n variant?: \"primary\" | \"secondary\";\n className?: string;\n};\n\nconst Loader: React.FC<LoaderProps> = ({\n size = 25,\n color = \"#4cbc13\",\n variant = \"primary\",\n className,\n}) => {\n const borderColor = color\n ? `border-t-[#4cbc13]`\n : variant === \"primary\"\n ? \"border-t-white border-green-700\"\n : \"border-t-green-500 border-neutral-300\";\n\n const style = {\n width: typeof size === \"number\" ? `${size}px` : size,\n height: typeof size === \"number\" ? `${size}px` : size,\n };\n\n return (\n <span\n className={cn(\n \"z-40 border-3 rounded-full animate-spin block\",\n borderColor,\n className\n )}\n style={style}\n />\n );\n};\n\nexport { Loader };\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable @typescript-eslint/no-namespace */\n// @ts-nocheck\nimport Link from \"next/link\";\nimport React from \"react\";\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n font: React.SVGProps<SVGElement>;\n fontFace: React.SVGProps<SVGElement>;\n fontFaceSrc: React.SVGProps<SVGElement>;\n fontFaceName: React.SVGProps<SVGElement>;\n missingGlyph: React.SVGProps<SVGElement>;\n glyph: React.SVGProps<SVGElement>;\n }\n }\n}\n\nexport interface BrandLogoProps {\n width?: string | number;\n height?: string | number;\n /** href for the wrapping link. Defaults to \"/\" */\n link?: string;\n className?: string;\n}\n\n/**\n * The Circular Net full wordmark (SVG).\n * Requires `next/link` — use inside a Next.js app.\n */\nconst BrandLogo: React.FC<BrandLogoProps> = ({\n width,\n height,\n link,\n className,\n}) => {\n return (\n <Link className={`inline-block ${className ?? \"\"}`} href={link || \"/\"}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlSpace=\"preserve\"\n width={width || \"150\"}\n height={height || \"70\"}\n style={{\n shapeRendering: \"geometricPrecision\",\n textRendering: \"geometricPrecision\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n }}\n viewBox=\"0 0 4606.47 1711.22\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n >\n <defs>\n <font\n id=\"FontID0\"\n horizAdvX={642}\n fontVariant=\"normal\"\n style={{ fillRule: \"nonzero\" }}\n fontStyle=\"normal\"\n fontWeight={400}\n >\n <fontFace fontFamily=\"Coolvetica Rg\">\n <fontFaceSrc>\n <fontFaceName name=\"CoolveticaRg-Regular\" />\n </fontFaceSrc>\n </fontFace>\n <missingGlyph>\n <path d=\"M0 0z\" />\n </missingGlyph>\n <glyph unicode=\"C\" horizAdvX={612} d=\"M469 228c-19.0006,-82.9999 -68.9996,-129.999 -150.999,-129.999 -108.001,0 -162.002,86.9997 -162.002,233.999 0,145 54.0005,234.001 169.001,234.001 66.0001,0 124.999,-45.0004 144,-120.001l138.999 0c-12.9999,134.001 -118,240.001 -284,240.001 -190.001,0 -308.999,-137 -308.999,-362.001 0,-228 132.999,-347 307,-347 153.999,0 258,99.9997 285.999,251l-138.999 0z\" />\n <glyph unicode=\"N\" horizAdvX={590} d=\"M563.999 0l0 664.001 -129.999 0 0 -427.001 -264 427.001 -146.999 0 0 -664.001 128.999 0 0 445.999 284.001 -445.999 127.999 0z\" />\n <glyph unicode=\"T\" horizAdvX={554} d=\"M342.999 0l0 548 201.003 0 0 115.999 -540 0 0 -115.999 199.998 0 0 -548 139 0z\" />\n <glyph unicode=\"a\" horizAdvX={485} d=\"M324 186.999c-1.00038,-57.9987 -50.9994,-106.999 -118,-106.999 -41.0006,0 -63.0006,18.0002 -63.0006,54.9992 0,42.001 24.0008,63.0006 98.0006,77.0009 47.9999,9.00009 71.0003,15.9994 84.0003,28.9994l-1.00038 -54.0005zm131 -186.999l0 311c0,124 -53.9988,194 -210,194 -158,0 -214,-71.0003 -216,-173.001l121.001 0c5.99894,44.0001 29.9997,73.0011 89.0005,73.0011 50.9994,0 82.9999,-19.0006 82.9999,-51.0011 0,-33.9996 -18.0002,-46.9995 -82.9999,-55.9996 -131.001,-18.0002 -226.001,-33.9996 -226.001,-176 0,-80.0004 51.9998,-135 164.001,-135 66.0001,0 118,23.0004 149,57 0.998709,-15.0007 3.99985,-32.0005 7.99971,-44.0001l120.999 0z\" />\n <glyph unicode=\"c\" horizAdvX={480} d=\"M338 177.999c-5.00023,-52.9985 -45.0004,-81.9995 -95.9998,-81.9995 -51.0011,0 -95.9998,51.9998 -95.9998,159 0,106.999 44.9988,141.999 99.9997,141.999 49.0003,0 85.9993,-29.9997 93.0003,-80.9991l131 0c-7.99971,116.001 -94.9994,189 -223,189 -138.001,0 -230.001,-77.0009 -230.001,-252.999 0,-176 92,-265.001 226.001,-265.001 118.999,0 211.999,76.9993 225.999,190.999l-131 0z\" />\n <glyph unicode=\"e\" horizAdvX={502} d=\"M149 294c5.00023,67.9992 47.9999,107.999 99.9997,107.999 51.0011,0 99.001,-35 101,-107.999l-201 0zm335.001 -81.9995c0,194.999 -80.0004,293 -231.001,293 -150.999,0 -237.999,-98.0006 -237.999,-250 0,-178.001 81.9995,-268 245.998,-268 105.002,0 186.001,57 216,158l-133.999 0c-9.00009,-33.9996 -46.0008,-55.0009 -88.0001,-55.0009 -64.001,0 -106,48.0016 -110,122.001l339 0z\" />\n <glyph unicode=\"h\" horizAdvX={503} d=\"M472 0l0 348.002c0,97.9983 -70.0022,156.998 -171.001,156.998 -66.0008,0 -126.001,-32.9987 -145,-77.0004l0 244 -129.999 0 0 -671.998 129.999 0 0 282.001c0,66.0008 35.9989,119.997 101.002,119.997 58.9992,0 83.9985,-22.9969 83.9985,-96.9971l0 -305.001 131 0z\" />\n <glyph unicode=\"i\" horizAdvX={191} d=\"M159 0l0 492 -130.001 0 0 -492 130.001 0zm0 550.999l0 121.001 -130.001 0 0 -121.001 130.001 0z\" />\n <glyph unicode=\"l\" horizAdvX={185} d=\"M155.999 0l0 672 -129.999 0 0 -672 129.999 0z\" />\n <glyph unicode=\"r\" horizAdvX={321} d=\"M155.999 0l0 256.001c0,79 39.0015,119 119,119 12.0012,0 24.0008,-1.00038 36.0003,-3.00114l0 133.001 -16.9998 0c-53.0001,0 -103.001,-6.00062 -146,-72.0007l0 59.0008 -122 0 0 -492 129.999 0z\" />\n <glyph unicode=\"t\" horizAdvX={453} d=\"M304.999 195.999c0,-60.9998 -23.9991,-95.9998 -75.9989,-95.9998 -53.0001,0 -75.0002,36.0003 -75.0002,98.0006l0 202 272 0 0 92 -272 0 0 133.001 -128 0 0 -440.001c0,-106 57,-198 201,-198 139.001,0 199.001,93.0003 199.001,197l0 140 -121.001 0 0 -128z\" />\n <glyph unicode=\"u\" horizAdvX={500} d=\"M469 0l0 492 -129.001 0 0 -284c0,-65.0014 -35,-112.001 -100.998,-112.001 -55.0009,0 -83.0015,29.9997 -83.0015,92l0 304.001 -129.999 0 0 -324c0,-108.001 68.9996,-181 167,-181 67.9992,0 119,25.9999 153,81.9995l0 -68.9996 123 0z\" />\n </font>\n <style type=\"text/css\" />\n </defs>\n <style type=\"text/css\">{`\n @font-face { font-family:\"Coolvetica\";font-variant:normal;font-style:normal;font-weight:normal;src:url(\"#FontID0\") format(svg)}\n .fil1 {fill:#2F61C4}\n .fil0 {fill:#3B3A3A}\n .fil2 {fill:#4CBC13}\n .fnt1 {font-weight:normal;font-size:431.52px;font-family:'Coolvetica'}\n .fnt0 {font-weight:normal;font-size:872.5px;font-family:'Coolvetica'}\n `}</style>\n <g id=\"Layer_x0020_1\">\n <metadata id=\"CorelCorpID_0Corel-Layer\" />\n <g id=\"_2066693523904\">\n <g>\n <text x={1937.5} y={1009.24} className=\"fil0 fnt0 \">{\"Circular \"}</text>\n <text x={1937.49} y={1689.88} className=\"fil0 fnt0\">{\"Net\"}</text>\n <text x={1937.49} y={299.99} className=\"fil0 fnt1\">{\"The \"}</text>\n </g>\n <path className=\"fil1\" d=\"M126.14 0c69.68,0 126.15,56.47 126.15,126.15 0,69.67 -56.47,126.14 -126.15,126.14 -69.67,0 -126.14,-56.47 -126.14,-126.14 0,-69.68 56.47,-126.15 126.14,-126.15zm-64.12 764.65c-31.4,0 -56.86,-25.45 -56.86,-56.85l0 -235.52c0,-31.4 25.46,-56.86 56.86,-56.86 194.36,0 353.37,-159.02 353.37,-353.39l0 -0.03c0,-31.4 25.46,-56.85 56.86,-56.85l235.56 0c31.4,0 56.85,25.46 56.85,56.85 0,386.46 -316.19,702.64 -702.64,702.64z\" fill=\"#2F61C4\" />\n <path className=\"fil2\" d=\"M472.24 1706.08l235.58 0c31.4,0 56.84,-25.44 56.84,-56.84l0 -0.04c0,-386.45 -316.2,-702.66 -702.66,-702.66 -31.4,0 -56.84,25.46 -56.84,56.85l0 235.57c0,31.4 25.45,56.85 56.84,56.85l0.03 0c194.36,0 353.36,159.02 353.36,353.37l0 0.05c0,31.4 25.45,56.84 56.84,56.84zm-346.1 -247.14c69.68,0 126.15,56.47 126.15,126.15 0,69.67 -56.47,126.14 -126.15,126.14 -69.67,0 -126.14,-56.47 -126.14,-126.14 0,-69.68 56.47,-126.15 126.14,-126.15z\" fill=\"#2ABC13\" />\n <path className=\"fil1\" d=\"M1295.81 1649.2c0,-194.36 159.03,-353.39 353.39,-353.39 31.4,0 56.84,-25.45 56.84,-56.85l0 -235.57c0,-31.4 -25.44,-56.85 -56.84,-56.85l-0.03 0c-386.44,0 -702.62,316.19 -702.62,702.63l0 0.06c0,31.4 25.44,56.84 56.84,56.84l235.58 0c31.39,0 56.84,-25.44 56.84,-56.84l0 -0.04zm289.26 -190.27c69.68,0 126.15,56.47 126.15,126.15 0,69.67 -56.47,126.14 -126.15,126.14 -69.67,0 -126.14,-56.47 -126.14,-126.14 0,-69.68 56.47,-126.15 126.14,-126.15z\" fill=\"#2F61C4\" />\n <path className=\"fil2\" d=\"M1649.19 415.43c-194.37,0 -353.38,-159.02 -353.38,-353.37l0 -0.05c0,-31.4 -25.45,-56.85 -56.86,-56.85l-235.54 0c-31.4,0 -56.86,25.46 -56.86,56.85 0,386.46 316.19,702.64 702.64,702.64 31.39,0 56.85,-25.45 56.85,-56.85l0 -235.51c0,-31.4 -25.46,-56.86 -56.85,-56.86zm-64.12 -415.43c69.68,0 126.15,56.47 126.15,126.15 0,69.67 -56.47,126.14 -126.15,126.14 -69.67,0 -126.14,-56.47 -126.14,-126.14 0,-69.68 56.47,-126.15 126.14,-126.15z\" fill=\"#2ABC13\" />\n </g>\n </g>\n </svg>\n </Link>\n );\n};\n\nexport default BrandLogo;\n","import React from \"react\";\nimport { Loader } from \"./loader\";\nimport BrandLogo from \"../brand/BrandLogo\";\n\ninterface PageLoaderProps {\n message?: string;\n}\n\nfunction PageLoader({ message }: PageLoaderProps) {\n return (\n <div className=\"min-h-[100vh] w-full flex items-center justify-center bg-gray-100 dark:bg-gray-900\">\n <div className=\"flex flex-col items-center space-y-2.5\">\n <BrandLogo width={110} />\n <Loader size={32} />\n {message && (\n <p className=\"text-base max-w-lg text-gray-600 dark:text-gray-300\">\n {message}\n </p>\n )}\n </div>\n </div>\n );\n}\n\nexport { PageLoader };\n","import React from \"react\";\nimport { cn } from \"../utils/cn\";\n\nexport interface HeadingProps extends React.InputHTMLAttributes<HTMLHeadingElement> {\n children?: React.ReactNode;\n}\n\nconst Heading1 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h1 className={cn(\"text-3xl font-[700] font-onest text-black dark:text-white\", className)} ref={ref} {...props}>\n {children}\n </h1>\n )\n);\nHeading1.displayName = \"Heading1\";\n\nconst Heading2 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h2 className={cn(\"text-[26px] font-[600] font-onest text-black dark:text-neutral-100\", className)} ref={ref} {...props}>\n {children}\n </h2>\n )\n);\nHeading2.displayName = \"Heading2\";\n\nconst Heading3 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h3 className={cn(\"text-2xl font-semibold font-onest text-neutral-900 dark:text-neutral-200\", className)} ref={ref} {...props}>\n {children}\n </h3>\n )\n);\nHeading3.displayName = \"Heading3\";\n\nconst Heading4 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h4 className={cn(\"text-[22px] font-semibold text-neutral-800 dark:text-neutral-200\", className)} ref={ref} {...props}>\n {children}\n </h4>\n )\n);\nHeading4.displayName = \"Heading4\";\n\nconst Heading5 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h5 className={cn(\"text-lg font-semibold text-black dark:text-neutral-300\", className)} ref={ref} {...props}>\n {children}\n </h5>\n )\n);\nHeading5.displayName = \"Heading5\";\n\nconst Heading6 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h6 className={cn(\"text-base font-[500] text-black dark:text-neutral-300\", className)} ref={ref} {...props}>\n {children}\n </h6>\n )\n);\nHeading6.displayName = \"Heading6\";\n\nexport interface BodyProps extends React.InputHTMLAttributes<HTMLParagraphElement> {\n children?: React.ReactNode;\n}\n\nconst Body1 = React.forwardRef<HTMLParagraphElement, BodyProps>(\n ({ className, children, ...props }, ref) => (\n <p className={cn(\"text-[18px] text-neutral-700 dark:text-neutral-400 font-golos\", className)} ref={ref} {...props}>\n {children}\n </p>\n )\n);\nBody1.displayName = \"Body1\";\n\nconst Body2 = React.forwardRef<HTMLParagraphElement, BodyProps>(\n ({ className, children, ...props }, ref) => (\n <p className={cn(\"text-base text-neutral-700 dark:text-neutral-400 font-golos\", className)} ref={ref} {...props}>\n {children}\n </p>\n )\n);\nBody2.displayName = \"Body2\";\n\nconst Body3 = React.forwardRef<HTMLParagraphElement, BodyProps>(\n ({ className, children, ...props }, ref) => (\n <p className={cn(\"text-sm lg:leading-[22px] text-neutral-600 dark:text-neutral-400 font-golos\", className)} ref={ref} {...props}>\n {children}\n </p>\n )\n);\nBody3.displayName = \"Body3\";\n\nexport { Heading1, Heading2, Heading3, Heading4, Heading5, Heading6, Body1, Body2, Body3 };\n","// @ts-nocheck\nimport React from \"react\";\nimport Image from \"next/image\";\nimport { Body2 } from \"../ui/typography\";\nimport { cn } from \"../utils/cn\";\n\ninterface EmptyStateProps {\n title?: string;\n message?: string;\n imageSrc?: string;\n size?: number;\n component?: React.ReactNode;\n className?: string;\n icon?: React.ReactNode;\n}\n\nconst EmptyState: React.FC<EmptyStateProps> = ({\n imageSrc,\n size = 200,\n title = \"No Data Found!\",\n message = \"Check back later to see more content.\",\n component,\n className = \"min-h-[60vh]\",\n icon,\n}) => {\n return (\n <div className={cn(\"flex items-center justify-center\", className)}>\n <div className=\"text-center\">\n {icon && <div className=\"mb-4\">{icon}</div>}\n {imageSrc && (\n <Image\n src={imageSrc}\n alt=\"Empty State\"\n width={size}\n height={size}\n className=\"mx-auto mb-4\"\n />\n )}\n <h1 className=\"text-[1.325rem] md:text-[1.45rem] text-black font-onest font-semibold\">\n {title}\n </h1>\n <Body2 className=\"max-w-xs text-[#646464]\">{message}</Body2>\n {component && <div className=\"mt-2.5\">{component}</div>}\n </div>\n </div>\n );\n};\n\nexport { EmptyState };\n","import * as React from \"react\";\nimport { cn } from \"../utils/cn\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"bg-accent animate-pulse rounded-md\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","import React from \"react\";\nimport { cn } from \"../utils/cn\";\nimport { Skeleton } from \"../ui/skeleton\";\n\ninterface LoadingStateProps {\n /** Number of skeleton rows to render */\n rows?: number;\n /** Show a circular skeleton avatar before each row */\n showAvatar?: boolean;\n className?: string;\n rowClassName?: string;\n}\n\nconst LoadingState: React.FC<LoadingStateProps> = ({\n rows = 5,\n showAvatar = false,\n className,\n rowClassName,\n}) => {\n return (\n <div\n className={cn(\"min-h-[60vh] flex items-center justify-center\", className)}\n >\n <div className=\"w-full max-w-md space-y-3 px-4\">\n {Array.from({ length: rows }).map((_, i) => (\n <div key={i} className={cn(\"flex items-center gap-3\", rowClassName)}>\n {showAvatar && (\n <Skeleton className=\"size-10 shrink-0 rounded-full\" />\n )}\n <div className=\"flex-1 space-y-2\">\n <Skeleton className=\"h-4 w-3/4 rounded\" />\n <Skeleton className=\"h-3 w-1/2 rounded\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nexport { LoadingState };\n","import React from \"react\";\n\ninterface ErrorStateProps {\n title?: string;\n message?: string;\n onRetry?: () => void;\n}\n\nconst ErrorState: React.FC<ErrorStateProps> = ({\n title = \"Error Fetching Data\",\n message = \"An error occurred\",\n onRetry,\n}) => {\n return (\n <div className=\"min-h-[60vh] flex items-center justify-center\">\n <div className=\"text-center\">\n <h3 className=\"text-[1.45rem] font-onest font-[600] text-primary-500\">\n {title}\n </h3>\n <p className=\"text-[#646464] font-golosText font-[500] text-[.9rem] line-clamp-3\">\n {message}\n </p>\n {onRetry && (\n <button\n onClick={onRetry}\n className=\"rounded-md h-[2.75rem] min-w-[7rem] px-6 bg-primary-500 text-white text-[.9rem] font-onest font-[600] mt-5\"\n >\n Refetch\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport { ErrorState };\n","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = <T extends string>(string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n\n/**\n * Is empty string\n *\n * @param {unknown} value\n * @returns {boolean} Whether the value is an empty string\n */\nexport const isEmptyString = (value: unknown): boolean => value === '';\n\n/**\n * Check if a component has an accessibility prop\n *\n * @param {object} props\n * @returns {boolean} Whether the component has an accessibility prop\n */\nexport const hasA11yProp = (props: Record<string, any>) => {\n for (const prop in props) {\n if (prop.startsWith('aria-') || prop === 'role' || prop === 'title') {\n return true;\n }\n }\n};\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses, hasA11yProp } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) =>\n createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...(!children && !hasA11yProp(rest) && { 'aria-hidden': 'true' }),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n ),\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className,\n ),\n ...props,\n }),\n );\n\n Component.displayName = toPascalCase(iconName);\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]];\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('check', __iconNode);\n\nexport default Check;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm6 9 6 6 6-6', key: 'qrunsl' }]];\n\n/**\n * @component @name ChevronDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronDown = createLucideIcon('chevron-down', __iconNode);\n\nexport default ChevronDown;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['circle', { cx: '12', cy: '10', r: '3', key: 'ilqhr7' }],\n ['path', { d: 'M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662', key: '154egf' }],\n];\n\n/**\n * @component @name CircleUser\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-user\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleUser = createLucideIcon('circle-user', __iconNode);\n\nexport default CircleUser;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '7', height: '7', x: '3', y: '3', rx: '1', key: '1g98yp' }],\n ['rect', { width: '7', height: '7', x: '14', y: '3', rx: '1', key: '6d4xhi' }],\n ['rect', { width: '7', height: '7', x: '14', y: '14', rx: '1', key: 'nxv5o0' }],\n ['rect', { width: '7', height: '7', x: '3', y: '14', rx: '1', key: '1bb6yr' }],\n];\n\n/**\n * @component @name LayoutGrid\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/layout-grid\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst LayoutGrid = createLucideIcon('layout-grid', __iconNode);\n\nexport default LayoutGrid;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401',\n key: 'kfwtm',\n },\n ],\n];\n\n/**\n * @component @name Moon\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/moon\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Moon = createLucideIcon('moon', __iconNode);\n\nexport default Moon;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm21 21-4.34-4.34', key: '14j7rj' }],\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n];\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('search', __iconNode);\n\nexport default Search;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '4', key: '4exip2' }],\n ['path', { d: 'M12 2v2', key: 'tus03m' }],\n ['path', { d: 'M12 20v2', key: '1lh1kg' }],\n ['path', { d: 'm4.93 4.93 1.41 1.41', key: '149t6j' }],\n ['path', { d: 'm17.66 17.66 1.41 1.41', key: 'ptbguv' }],\n ['path', { d: 'M2 12h2', key: '1t8f8n' }],\n ['path', { d: 'M20 12h2', key: '1q8mjw' }],\n ['path', { d: 'm6.34 17.66-1.41 1.41', key: '1m8zz5' }],\n ['path', { d: 'm19.07 4.93-1.41 1.41', key: '1shlcs' }],\n];\n\n/**\n * @component @name Sun\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/sun\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Sun = createLucideIcon('sun', __iconNode);\n\nexport default Sun;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n];\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('x', __iconNode);\n\nexport default X;\n","/* eslint-disable no-restricted-properties */\n\n/* eslint-disable no-restricted-globals */\nexport const canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n/* eslint-enable no-restricted-globals */\n\nexport function composeEventHandlers<E extends { defaultPrevented: boolean }>(\n originalEventHandler?: (event: E) => void,\n ourEventHandler?: (event: E) => void,\n { checkForDefaultPrevented = true } = {}\n) {\n return function handleEvent(event: E) {\n originalEventHandler?.(event);\n\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\n\nexport function getOwnerWindow(element: Node | null | undefined) {\n if (!canUseDOM) {\n throw new Error('Cannot access window outside of the DOM');\n }\n // eslint-disable-next-line no-restricted-globals\n return element?.ownerDocument?.defaultView ?? window;\n}\n\nexport function getOwnerDocument(element: Node | null | undefined) {\n if (!canUseDOM) {\n throw new Error('Cannot access document outside of the DOM');\n }\n // eslint-disable-next-line no-restricted-globals\n return element?.ownerDocument ?? document;\n}\n\n/**\n * Lifted from https://github.com/ariakit/ariakit/blob/main/packages/ariakit-core/src/utils/dom.ts#L37\n * MIT License, Copyright (c) AriaKit.\n */\nexport function getActiveElement(\n node: Node | null | undefined,\n activeDescendant = false\n): HTMLElement | null {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n // `activeElement` might be an empty object if we're interacting with elements\n // inside of an iframe.\n return null;\n }\n\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n\n if (activeDescendant) {\n const id = activeElement.getAttribute('aria-activedescendant');\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n\n return activeElement as HTMLElement | null;\n}\n\nexport function isFrame(element: Element): element is HTMLIFrameElement {\n return element.tagName === 'IFRAME';\n}\n","import * as React from 'react';\n\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef<T>(ref: PossibleRef<T>, value: T) {\n if (typeof ref === 'function') {\n return ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == 'function') {\n hasCleanup = true;\n }\n return cleanup;\n });\n\n // React <19 will log an error to the console if a callback ref returns a\n // value. We don't use ref cleanups internally so this will only happen if a\n // user's ref callback returns a value, which we only expect if they are\n // using the cleanup functionality added in React 19.\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == 'function') {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nexport { composeRefs, useComposedRefs };\n","import * as React from 'react';\n\nfunction createContext<ContextValueType extends object | null>(\n rootComponentName: string,\n defaultContext?: ContextValueType\n) {\n const Context = React.createContext<ContextValueType | undefined>(defaultContext);\n\n const Provider: React.FC<ContextValueType & { children: React.ReactNode }> = (props) => {\n const { children, ...context } = props;\n // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = React.useMemo(() => context, Object.values(context)) as ContextValueType;\n return <Context.Provider value={value}>{children}</Context.Provider>;\n };\n\n Provider.displayName = rootComponentName + 'Provider';\n\n function useContext(consumerName: string) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext;\n // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n\n return [Provider, useContext] as const;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * createContextScope\n * -----------------------------------------------------------------------------------------------*/\n\ntype Scope<C = any> = { [scopeName: string]: React.Context<C>[] } | undefined;\ntype ScopeHook = (scope: Scope) => { [__scopeProp: string]: Scope };\ninterface CreateScope {\n scopeName: string;\n (): ScopeHook;\n}\n\nfunction createContextScope(scopeName: string, createContextScopeDeps: CreateScope[] = []) {\n let defaultContexts: any[] = [];\n\n /* -----------------------------------------------------------------------------------------------\n * createContext\n * ---------------------------------------------------------------------------------------------*/\n\n function createContext<ContextValueType extends object | null>(\n rootComponentName: string,\n defaultContext?: ContextValueType\n ) {\n const BaseContext = React.createContext<ContextValueType | undefined>(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n\n const Provider: React.FC<\n ContextValueType & { scope: Scope<ContextValueType>; children: React.ReactNode }\n > = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = React.useMemo(() => context, Object.values(context)) as ContextValueType;\n return <Context.Provider value={value}>{children}</Context.Provider>;\n };\n\n Provider.displayName = rootComponentName + 'Provider';\n\n function useContext(consumerName: string, scope: Scope<ContextValueType | undefined>) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext;\n // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n\n return [Provider, useContext] as const;\n }\n\n /* -----------------------------------------------------------------------------------------------\n * createScope\n * ---------------------------------------------------------------------------------------------*/\n\n const createScope: CreateScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope: Scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n\n createScope.scopeName = scopeName;\n return [createContext, composeContextScopes(createScope, ...createContextScopeDeps)] as const;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * composeContextScopes\n * -----------------------------------------------------------------------------------------------*/\n\nfunction composeContextScopes(...scopes: CreateScope[]) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n\n const createScope: CreateScope = () => {\n const scopeHooks = scopes.map((createScope) => ({\n useScope: createScope(),\n scopeName: createScope.scopeName,\n }));\n\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes, { useScope, scopeName }) => {\n // We are calling a hook inside a callback which React warns against to avoid inconsistent\n // renders, however, scoping doesn't have render side effects so we ignore the rule.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes, ...currentScope };\n }, {});\n\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport { createContext, createContextScope };\nexport type { CreateScope, Scope };\n","import * as React from 'react';\n\n/**\n * On the server, React emits a warning when calling `useLayoutEffect`.\n * This is because neither `useLayoutEffect` nor `useEffect` run on the server.\n * We use this safe version which suppresses the warning by replacing it with a noop on the server.\n *\n * See: https://reactjs.org/docs/hooks-reference.html#uselayouteffect\n */\nconst useLayoutEffect = globalThis?.document ? React.useLayoutEffect : () => {};\n\nexport { useLayoutEffect };\n","import * as React from 'react';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n// We spaces with `.trim().toString()` to prevent bundlers from trying to `import { useId } from 'react';`\nconst useReactId = (React as any)[' useId '.trim().toString()] || (() => undefined);\nlet count = 0;\n\nfunction useId(deterministicId?: string): string {\n const [id, setId] = React.useState<string | undefined>(useReactId());\n // React versions older than 18 will have client-side ids only.\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : '');\n}\n\nexport { useId };\n","import * as React from 'react';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n// Prevent bundlers from trying to optimize the import\nconst useInsertionEffect: typeof useLayoutEffect =\n (React as any)[' useInsertionEffect '.trim().toString()] || useLayoutEffect;\n\ntype ChangeHandler<T> = (state: T) => void;\ntype SetStateFn<T> = React.Dispatch<React.SetStateAction<T>>;\n\ninterface UseControllableStateParams<T> {\n prop?: T | undefined;\n defaultProp: T;\n onChange?: ChangeHandler<T>;\n caller?: string;\n}\n\nexport function useControllableState<T>({\n prop,\n defaultProp,\n onChange = () => {},\n caller,\n}: UseControllableStateParams<T>): [T, SetStateFn<T>] {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange,\n });\n const isControlled = prop !== undefined;\n const value = isControlled ? prop : uncontrolledProp;\n\n // OK to disable conditionally calling hooks here because they will always run\n // consistently in the same environment. Bundlers should be able to remove the\n // code block entirely in production.\n /* eslint-disable react-hooks/rules-of-hooks */\n if (process.env.NODE_ENV !== 'production') {\n const isControlledRef = React.useRef(prop !== undefined);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? 'controlled' : 'uncontrolled';\n const to = isControlled ? 'controlled' : 'uncontrolled';\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n /* eslint-enable react-hooks/rules-of-hooks */\n\n const setValue = React.useCallback<SetStateFn<T>>(\n (nextValue) => {\n if (isControlled) {\n const value = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value !== prop) {\n onChangeRef.current?.(value);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n\n return [value, setValue];\n}\n\nfunction useUncontrolledState<T>({\n defaultProp,\n onChange,\n}: Omit<UseControllableStateParams<T>, 'prop'>): [\n Value: T,\n setValue: React.Dispatch<React.SetStateAction<T>>,\n OnChangeRef: React.RefObject<ChangeHandler<T> | undefined>,\n] {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n\n return [value, setValue, onChangeRef];\n}\n\nfunction isFunction(value: unknown): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n","import * as React from 'react';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotProps extends React.HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlot(ownerName: string) {\n const SlotClone = createSlotClone(ownerName);\n const Slot = React.forwardRef<HTMLElement, SlotProps>((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n\n if (slottable) {\n // the new element to render is the one passed as a child of `Slottable`\n const newElement = slottable.props.children;\n\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n // because the new element will be the one rendered, we are only interested\n // in grabbing its children (`newElement.props.children`)\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement)\n ? (newElement.props as { children: React.ReactNode }).children\n : null;\n } else {\n return child;\n }\n });\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {React.isValidElement(newElement)\n ? React.cloneElement(newElement, undefined, newChildren)\n : null}\n </SlotClone>\n );\n }\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {children}\n </SlotClone>\n );\n });\n\n Slot.displayName = `${ownerName}.Slot`;\n return Slot;\n}\n\nconst Slot = createSlot('Slot');\n\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotCloneProps {\n children: React.ReactNode;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ function createSlotClone(ownerName: string) {\n const SlotClone = React.forwardRef<any, SlotCloneProps>((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props = mergeProps(slotProps, children.props as AnyProps);\n // do not pass ref to React.Fragment for React 19 compatibility\n if (children.type !== React.Fragment) {\n props.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props);\n }\n\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLOTTABLE_IDENTIFIER = Symbol('radix.slottable');\n\ninterface SlottableProps {\n children: React.ReactNode;\n}\n\ninterface SlottableComponent extends React.FC<SlottableProps> {\n __radixId: symbol;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlottable(ownerName: string) {\n const Slottable: SlottableComponent = ({ children }) => {\n return <>{children}</>;\n };\n Slottable.displayName = `${ownerName}.Slottable`;\n Slottable.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable;\n}\n\nconst Slottable = createSlottable('Slottable');\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype AnyProps = Record<string, any>;\n\nfunction isSlottable(\n child: React.ReactNode\n): child is React.ReactElement<SlottableProps, typeof Slottable> {\n return (\n React.isValidElement(child) &&\n typeof child.type === 'function' &&\n '__radixId' in child.type &&\n child.type.__radixId === SLOTTABLE_IDENTIFIER\n );\n}\n\nfunction mergeProps(slotProps: AnyProps, childProps: AnyProps) {\n // all child props should override\n const overrideProps = { ...childProps };\n\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n // if the handler exists on both, we compose them\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args: unknown[]) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n }\n // but if it exists only on the slot, we use only this one\n else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n }\n // if it's `style`, we merge them\n else if (propName === 'style') {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === 'className') {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(' ');\n }\n }\n\n return { ...slotProps, ...overrideProps };\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get;\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element as any).ref;\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get;\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element.props as { ref?: React.Ref<unknown> }).ref;\n }\n\n // Not DEV\n return (element.props as { ref?: React.Ref<unknown> }).ref || (element as any).ref;\n}\n\nexport {\n Slot,\n Slottable,\n //\n Slot as Root,\n};\nexport type { SlotProps };\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createSlot } from '@radix-ui/react-slot';\n\nconst NODES = [\n 'a',\n 'button',\n 'div',\n 'form',\n 'h2',\n 'h3',\n 'img',\n 'input',\n 'label',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'select',\n 'span',\n 'svg',\n 'ul',\n] as const;\n\ntype Primitives = { [E in (typeof NODES)[number]]: PrimitiveForwardRefComponent<E> };\ntype PrimitivePropsWithRef<E extends React.ElementType> = React.ComponentPropsWithRef<E> & {\n asChild?: boolean;\n};\n\ninterface PrimitiveForwardRefComponent<E extends React.ElementType>\n extends React.ForwardRefExoticComponent<PrimitivePropsWithRef<E>> {}\n\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/\n\nconst Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props: PrimitivePropsWithRef<typeof node>, forwardedRef: any) => {\n const { asChild, ...primitiveProps } = props;\n const Comp: any = asChild ? Slot : node;\n\n if (typeof window !== 'undefined') {\n (window as any)[Symbol.for('radix-ui')] = true;\n }\n\n return <Comp {...primitiveProps} ref={forwardedRef} />;\n });\n\n Node.displayName = `Primitive.${node}`;\n\n return { ...primitive, [node]: Node };\n}, {} as Primitives);\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not necessary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */\n\nfunction dispatchDiscreteCustomEvent<E extends CustomEvent>(target: E['target'], event: E) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Primitive;\n\nexport {\n Primitive,\n //\n Root,\n //\n dispatchDiscreteCustomEvent,\n};\nexport type { PrimitivePropsWithRef };\n","import * as React from 'react';\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */\nfunction useCallbackRef<T extends (...args: any[]) => any>(callback: T | undefined): T {\n const callbackRef = React.useRef(callback);\n\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n\n // https://github.com/facebook/react/issues/19240\n return React.useMemo(() => ((...args) => callbackRef.current?.(...args)) as T, []);\n}\n\nexport { useCallbackRef };\n","import * as React from 'react';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\n\n/**\n * Listens for when the escape key is down\n */\nfunction useEscapeKeydown(\n onEscapeKeyDownProp?: (event: KeyboardEvent) => void,\n ownerDocument: Document = globalThis?.document\n) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener('keydown', handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener('keydown', handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\n\nexport { useEscapeKeydown };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { Primitive, dispatchDiscreteCustomEvent } from '@radix-ui/react-primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useEscapeKeydown } from '@radix-ui/react-use-escape-keydown';\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayer\n * -----------------------------------------------------------------------------------------------*/\n\nconst DISMISSABLE_LAYER_NAME = 'DismissableLayer';\nconst CONTEXT_UPDATE = 'dismissableLayer.update';\nconst POINTER_DOWN_OUTSIDE = 'dismissableLayer.pointerDownOutside';\nconst FOCUS_OUTSIDE = 'dismissableLayer.focusOutside';\n\nlet originalBodyPointerEvents: string;\n\nconst DismissableLayerContext = React.createContext({\n layers: new Set<DismissableLayerElement>(),\n layersWithOutsidePointerEventsDisabled: new Set<DismissableLayerElement>(),\n branches: new Set<DismissableLayerBranchElement>(),\n});\n\ntype DismissableLayerElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface DismissableLayerProps extends PrimitiveDivProps {\n /**\n * When `true`, hover/focus/click interactions will be disabled on elements outside\n * the `DismissableLayer`. Users will need to click twice on outside elements to\n * interact with them: once to close the `DismissableLayer`, and again to trigger the element.\n */\n disableOutsidePointerEvents?: boolean;\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void;\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void;\n /**\n * Event handler called when the focus moves outside of the `DismissableLayer`.\n * Can be prevented.\n */\n onFocusOutside?: (event: FocusOutsideEvent) => void;\n /**\n * Event handler called when an interaction happens outside the `DismissableLayer`.\n * Specifically, when a `pointerdown` event happens outside or focus moves outside of it.\n * Can be prevented.\n */\n onInteractOutside?: (event: PointerDownOutsideEvent | FocusOutsideEvent) => void;\n /**\n * Handler called when the `DismissableLayer` should be dismissed\n */\n onDismiss?: () => void;\n}\n\nconst DismissableLayer = React.forwardRef<DismissableLayerElement, DismissableLayerProps>(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState<DismissableLayerElement | null>(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node) => setNode(node));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1); // prettier-ignore\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled!); // prettier-ignore\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target as HTMLElement;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n\n const focusOutside = useFocusOutside((event) => {\n const target = event.target as HTMLElement;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = 'none';\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (\n disableOutsidePointerEvents &&\n context.layersWithOutsidePointerEventsDisabled.size === 1\n ) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n\n /**\n * We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect\n * because a change to `disableOutsidePointerEvents` would remove this layer from the stack\n * and add it to the end again so the layering order wouldn't be _creation order_.\n * We only want them to be removed from context stacks when unmounted.\n */\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n\n return (\n <Primitive.div\n {...layerProps}\n ref={composedRefs}\n style={{\n pointerEvents: isBodyPointerEventsDisabled\n ? isPointerEventsEnabled\n ? 'auto'\n : 'none'\n : undefined,\n ...props.style,\n }}\n onFocusCapture={composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture)}\n onBlurCapture={composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture)}\n onPointerDownCapture={composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )}\n />\n );\n }\n);\n\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayerBranch\n * -----------------------------------------------------------------------------------------------*/\n\nconst BRANCH_NAME = 'DismissableLayerBranch';\n\ntype DismissableLayerBranchElement = React.ComponentRef<typeof Primitive.div>;\ninterface DismissableLayerBranchProps extends PrimitiveDivProps {}\n\nconst DismissableLayerBranch = React.forwardRef<\n DismissableLayerBranchElement,\n DismissableLayerBranchProps\n>((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef<DismissableLayerBranchElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n\n return <Primitive.div {...props} ref={composedRefs} />;\n});\n\nDismissableLayerBranch.displayName = BRANCH_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PointerDownOutsideEvent = CustomEvent<{ originalEvent: PointerEvent }>;\ntype FocusOutsideEvent = CustomEvent<{ originalEvent: FocusEvent }>;\n\n/**\n * Listens for `pointerdown` outside a react subtree. We use `pointerdown` rather than `pointerup`\n * to mimic layer dismissing behaviour present in OS.\n * Returns props to pass to the node we want to check for outside events.\n */\nfunction usePointerDownOutside(\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void,\n ownerDocument: Document = globalThis?.document\n) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside) as EventListener;\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {});\n\n React.useEffect(() => {\n const handlePointerDown = (event: PointerEvent) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n\n function handleAndDispatchPointerDownOutsideEvent() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n }\n\n /**\n * On touch devices, we need to wait for a click event because browsers implement\n * a ~350ms delay between the time the user stops touching the display and when the\n * browser executres events. We need to ensure we don't reactivate pointer-events within\n * this timeframe otherwise the browser may execute events that should have been prevented.\n *\n * Additionally, this also lets us deal automatically with cancellations when a click event\n * isn't raised because the page was considered scrolled/drag-scrolled, long-pressed, etc.\n *\n * This is why we also continuously remove the previous listener, because we cannot be\n * certain that it was raised, and therefore cleaned-up.\n */\n if (event.pointerType === 'touch') {\n ownerDocument.removeEventListener('click', handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;\n ownerDocument.addEventListener('click', handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent();\n }\n } else {\n // We need to remove the event listener in case the outside click has been canceled.\n // See: https://github.com/radix-ui/primitives/issues/2171\n ownerDocument.removeEventListener('click', handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n /**\n * if this hook executes in a component that mounts via a `pointerdown` event, the event\n * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid\n * this by delaying the event listener registration on the document.\n * This is not React specific, but rather how the DOM works, ie:\n * ```\n * button.addEventListener('pointerdown', () => {\n * console.log('I will log');\n * document.addEventListener('pointerdown', () => {\n * console.log('I will also log');\n * })\n * });\n */\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener('pointerdown', handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener('pointerdown', handlePointerDown);\n ownerDocument.removeEventListener('click', handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => (isPointerInsideReactTreeRef.current = true),\n };\n}\n\n/**\n * Listens for when focus happens outside a react subtree.\n * Returns props to pass to the root (node) of the subtree we want to check.\n */\nfunction useFocusOutside(\n onFocusOutside?: (event: FocusOutsideEvent) => void,\n ownerDocument: Document = globalThis?.document\n) {\n const handleFocusOutside = useCallbackRef(onFocusOutside) as EventListener;\n const isFocusInsideReactTreeRef = React.useRef(false);\n\n React.useEffect(() => {\n const handleFocus = (event: FocusEvent) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false,\n });\n }\n };\n ownerDocument.addEventListener('focusin', handleFocus);\n return () => ownerDocument.removeEventListener('focusin', handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n\n return {\n onFocusCapture: () => (isFocusInsideReactTreeRef.current = true),\n onBlurCapture: () => (isFocusInsideReactTreeRef.current = false),\n };\n}\n\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\n\nfunction handleAndDispatchCustomEvent<E extends CustomEvent, OriginalEvent extends Event>(\n name: string,\n handler: ((event: E) => void) | undefined,\n detail: { originalEvent: OriginalEvent } & (E extends CustomEvent<infer D> ? D : never),\n { discrete }: { discrete: boolean }\n) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler as EventListener, { once: true });\n\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\n\nconst Root = DismissableLayer;\nconst Branch = DismissableLayerBranch;\n\nexport {\n DismissableLayer,\n DismissableLayerBranch,\n //\n Root,\n Branch,\n};\nexport type { DismissableLayerProps };\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\n\nconst AUTOFOCUS_ON_MOUNT = 'focusScope.autoFocusOnMount';\nconst AUTOFOCUS_ON_UNMOUNT = 'focusScope.autoFocusOnUnmount';\nconst EVENT_OPTIONS = { bubbles: false, cancelable: true };\n\ntype FocusableTarget = HTMLElement | { focus(): void };\n\n/* -------------------------------------------------------------------------------------------------\n * FocusScope\n * -----------------------------------------------------------------------------------------------*/\n\nconst FOCUS_SCOPE_NAME = 'FocusScope';\n\ntype FocusScopeElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface FocusScopeProps extends PrimitiveDivProps {\n /**\n * When `true`, tabbing from last item will focus first tabbable\n * and shift+tab from first item will focus last tababble.\n * @defaultValue false\n */\n loop?: boolean;\n\n /**\n * When `true`, focus cannot escape the focus scope via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapped?: boolean;\n\n /**\n * Event handler called when auto-focusing on mount.\n * Can be prevented.\n */\n onMountAutoFocus?: (event: Event) => void;\n\n /**\n * Event handler called when auto-focusing on unmount.\n * Can be prevented.\n */\n onUnmountAutoFocus?: (event: Event) => void;\n}\n\nconst FocusScope = React.forwardRef<FocusScopeElement, FocusScopeProps>((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState<HTMLElement | null>(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef<HTMLElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n },\n }).current;\n\n // Takes care of trapping focus if focus is moved outside programmatically for example\n React.useEffect(() => {\n if (trapped) {\n function handleFocusIn(event: FocusEvent) {\n if (focusScope.paused || !container) return;\n const target = event.target as HTMLElement | null;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n\n // A `focusout` event with a `null` `relatedTarget` will happen in at least two cases:\n //\n // 1. When the user switches app/tabs/windows/the browser itself loses focus.\n // 2. In Google Chrome, when the focused element is removed from the DOM.\n //\n // We let the browser do its thing here because:\n //\n // 1. The browser already keeps a memory of what's focused for when the page gets refocused.\n // 2. In Google Chrome, if we try to focus the deleted focused element (as per below), it\n // throws the CPU to 100%, so we avoid doing anything for this reason here too.\n if (relatedTarget === null) return;\n\n // If the focus has moved to an actual legitimate element (`relatedTarget !== null`)\n // that is outside the container, we move focus to the last valid focused element inside.\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }\n\n // When the focused element gets removed from the DOM, browsers move focus\n // back to the document.body. In this case, we move focus to the container\n // to keep focus trapped correctly.\n function handleMutations(mutations: MutationRecord[]) {\n const focusedElement = document.activeElement as HTMLElement | null;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n }\n\n document.addEventListener('focusin', handleFocusIn);\n document.addEventListener('focusout', handleFocusOut);\n const mutationObserver = new MutationObserver(handleMutations);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n\n return () => {\n document.removeEventListener('focusin', handleFocusIn);\n document.removeEventListener('focusout', handleFocusOut);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement as HTMLElement | null;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n\n // We hit a react bug (fixed in v17) with focusing in unmount.\n // We need to delay the focus a little to get around it for now.\n // See: https://github.com/facebook/react/issues/17894\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n // we need to remove the listener after we `dispatchEvent`\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n\n // Takes care of looping focus (when tabbing whilst at the edges)\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n\n const isTabKey = event.key === 'Tab' && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement as HTMLElement | null;\n\n if (isTabKey && focusedElement) {\n const container = event.currentTarget as HTMLElement;\n const [first, last] = getTabbableEdges(container);\n const hasTabbableElementsInside = first && last;\n\n // we can only wrap focus if we have tabbable edges\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n\n return (\n <Primitive.div tabIndex={-1} {...scopeProps} ref={composedRefs} onKeyDown={handleKeyDown} />\n );\n});\n\nFocusScope.displayName = FOCUS_SCOPE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Attempts focusing the first element in a list of candidates.\n * Stops when focus has actually moved.\n */\nfunction focusFirst(candidates: HTMLElement[], { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\n\n/**\n * Returns the first and last tabbable elements inside a container.\n */\nfunction getTabbableEdges(container: HTMLElement) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last] as const;\n}\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nfunction getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n\n/**\n * Returns the first visible element in a list.\n * NOTE: Only checks visibility up to the `container`.\n */\nfunction findVisible(elements: HTMLElement[], container: HTMLElement) {\n for (const element of elements) {\n // we stop checking if it's hidden at the `container` level (excluding)\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\n\nfunction isHidden(node: HTMLElement, { upTo }: { upTo?: HTMLElement }) {\n if (getComputedStyle(node).visibility === 'hidden') return true;\n while (node) {\n // we stop at `upTo` (excluding it)\n if (upTo !== undefined && node === upTo) return false;\n if (getComputedStyle(node).display === 'none') return true;\n node = node.parentElement as HTMLElement;\n }\n return false;\n}\n\nfunction isSelectableInput(element: any): element is FocusableTarget & { select: () => void } {\n return element instanceof HTMLInputElement && 'select' in element;\n}\n\nfunction focus(element?: FocusableTarget | null, { select = false } = {}) {\n // only focus if that element is focusable\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n // NOTE: we prevent scrolling on focus, to minimize jarring transitions for users\n element.focus({ preventScroll: true });\n // only select if its not the same element, it supports selection and we need to select\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\n\n/* -------------------------------------------------------------------------------------------------\n * FocusScope stack\n * -----------------------------------------------------------------------------------------------*/\n\ntype FocusScopeAPI = { paused: boolean; pause(): void; resume(): void };\nconst focusScopesStack = createFocusScopesStack();\n\nfunction createFocusScopesStack() {\n /** A stack of focus scopes, with the active one at the top */\n let stack: FocusScopeAPI[] = [];\n\n return {\n add(focusScope: FocusScopeAPI) {\n // pause the currently active focus scope (at the top of the stack)\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n // remove in case it already exists (because we'll re-add it at the top of the stack)\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n\n remove(focusScope: FocusScopeAPI) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n },\n };\n}\n\nfunction arrayRemove<T>(array: T[], item: T) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\n\nfunction removeLinks(items: HTMLElement[]) {\n return items.filter((item) => item.tagName !== 'A');\n}\n\nconst Root = FocusScope;\n\nexport {\n FocusScope,\n //\n Root,\n};\nexport type { FocusScopeProps };\n","import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n/* -------------------------------------------------------------------------------------------------\n * Portal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'Portal';\n\ntype PortalElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface PortalProps extends PrimitiveDivProps {\n /**\n * An optional container where the portaled content should be appended.\n */\n container?: Element | DocumentFragment | null;\n}\n\nconst Portal = React.forwardRef<PortalElement, PortalProps>((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || (mounted && globalThis?.document?.body);\n return container\n ? ReactDOM.createPortal(<Primitive.div {...portalProps} ref={forwardedRef} />, container)\n : null;\n});\n\nPortal.displayName = PORTAL_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Portal;\n\nexport {\n Portal,\n //\n Root,\n};\nexport type { PortalProps };\n","import * as React from 'react';\n\ntype Machine<S> = { [k: string]: { [k: string]: S } };\ntype MachineState<T> = keyof T;\ntype MachineEvent<T> = keyof UnionToIntersection<T[keyof T]>;\n\n// 🤯 https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer R) => any\n ? R\n : never;\n\nexport function useStateMachine<M>(\n initialState: MachineState<M>,\n machine: M & Machine<MachineState<M>>\n) {\n return React.useReducer((state: MachineState<M>, event: MachineEvent<M>): MachineState<M> => {\n const nextState = (machine[state] as any)[event];\n return nextState ?? state;\n }, initialState);\n}\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useStateMachine } from './use-state-machine';\n\ninterface PresenceProps {\n children: React.ReactElement | ((props: { present: boolean }) => React.ReactElement);\n present: boolean;\n}\n\nconst Presence: React.FC<PresenceProps> = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n\n const child = (\n typeof children === 'function'\n ? children({ present: presence.isPresent })\n : React.Children.only(children)\n ) as React.ReactElement<{ ref?: React.Ref<HTMLElement> }>;\n\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === 'function';\n return forceMount || presence.isPresent ? React.cloneElement(child, { ref }) : null;\n};\n\nPresence.displayName = 'Presence';\n\n/* -------------------------------------------------------------------------------------------------\n * usePresence\n * -----------------------------------------------------------------------------------------------*/\n\nfunction usePresence(present: boolean) {\n const [node, setNode] = React.useState<HTMLElement>();\n const stylesRef = React.useRef<CSSStyleDeclaration | null>(null);\n const prevPresentRef = React.useRef(present);\n const prevAnimationNameRef = React.useRef<string>('none');\n const initialState = present ? 'mounted' : 'unmounted';\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended',\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted',\n },\n unmounted: {\n MOUNT: 'mounted',\n },\n });\n\n React.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === 'mounted' ? currentAnimationName : 'none';\n }, [state]);\n\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n\n if (present) {\n send('MOUNT');\n } else if (currentAnimationName === 'none' || styles?.display === 'none') {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly\n send('UNMOUNT');\n } else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currentAnimationName;\n\n if (wasPresent && isAnimating) {\n send('ANIMATION_OUT');\n } else {\n send('UNMOUNT');\n }\n }\n\n prevPresentRef.current = present;\n }\n }, [present, send]);\n\n useLayoutEffect(() => {\n if (node) {\n let timeoutId: number;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n // The event.animationName is unescaped for CSS syntax,\n // so we need to escape it to compare with the animationName computed from the style.\n const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));\n if (event.target === node && isCurrentAnimation) {\n // With React 18 concurrency this update is applied a frame after the\n // animation ends, creating a flash of visible content. By setting the\n // animation fill mode to \"forwards\", we force the node to keep the\n // styles of the last keyframe, removing the flash.\n //\n // Previously we flushed the update via ReactDom.flushSync, but with\n // exit animations this resulted in the node being removed from the\n // DOM before the synthetic animationEnd event was dispatched, meaning\n // user-provided event handlers would not be called.\n // https://github.com/radix-ui/primitives/pull/1849\n send('ANIMATION_END');\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = 'forwards';\n // Reset the style after the node had time to unmount (for cases\n // where the component chooses not to unmount). Doing this any\n // sooner than `setTimeout` (e.g. with `requestAnimationFrame`)\n // still causes a flash.\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === 'forwards') {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event: AnimationEvent) => {\n if (event.target === node) {\n // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener('animationstart', handleAnimationStart);\n node.addEventListener('animationcancel', handleAnimationEnd);\n node.addEventListener('animationend', handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener('animationstart', handleAnimationStart);\n node.removeEventListener('animationcancel', handleAnimationEnd);\n node.removeEventListener('animationend', handleAnimationEnd);\n };\n } else {\n // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n send('ANIMATION_END');\n }\n }, [node, send]);\n\n return {\n isPresent: ['mounted', 'unmountSuspended'].includes(state),\n ref: React.useCallback((node: HTMLElement) => {\n stylesRef.current = node ? getComputedStyle(node) : null;\n setNode(node);\n }, []),\n };\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getAnimationName(styles: CSSStyleDeclaration | null) {\n return styles?.animationName || 'none';\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement<{ ref?: React.Ref<unknown> }>) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get;\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element as any).ref;\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get;\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref;\n}\n\nconst Root = Presence;\n\nexport {\n Presence,\n //\n Root,\n};\nexport type { PresenceProps };\n","import * as React from 'react';\n\n/** Number of components which have requested interest to have focus guards */\nlet count = 0;\n\ninterface FocusGuardsProps {\n children?: React.ReactNode;\n}\n\nfunction FocusGuards(props: FocusGuardsProps) {\n useFocusGuards();\n return props.children;\n}\n\n/**\n * Injects a pair of focus guards at the edges of the whole DOM tree\n * to ensure `focusin` & `focusout` events can be caught consistently.\n */\nfunction useFocusGuards() {\n /* eslint-disable no-restricted-globals */\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll('[data-radix-focus-guard]');\n document.body.insertAdjacentElement('afterbegin', edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement('beforeend', edgeGuards[1] ?? createFocusGuard());\n count++;\n\n return () => {\n if (count === 1) {\n document.querySelectorAll('[data-radix-focus-guard]').forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n /* eslint-enable no-restricted-globals */\n}\n\nfunction createFocusGuard() {\n // eslint-disable-next-line no-restricted-globals\n const element = document.createElement('span');\n element.setAttribute('data-radix-focus-guard', '');\n element.tabIndex = 0;\n element.style.outline = 'none';\n element.style.opacity = '0';\n element.style.position = 'fixed';\n element.style.pointerEvents = 'none';\n return element;\n}\n\nexport {\n FocusGuards,\n //\n FocusGuards as Root,\n //\n useFocusGuards,\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return <div ref={domRef}>...</div>\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noRelative = props.noRelative, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noRelative\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noRelative: noRelative, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\nexport var lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nexport var useLockAttribute = function () {\n React.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of <Style\n */\n var gap = React.useMemo(function () { return getGapWidth(gapMode); }, [gapMode]);\n return React.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? '!important' : '') });\n};\n","var passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nexport var nonPassive = passiveSupported ? { passive: false } : false;\n","var alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n if (!(node instanceof Element)) {\n return false;\n }\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nexport var locationCouldBeScrolled = function (axis, node) {\n var ownerDocument = node.ownerDocument;\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];\n if (scrollHeight > clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n if (!target) {\n break;\n }\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n var parent_1 = target.parentNode;\n // we will \"bubble\" from ShadowDom in case we are, or just to the parent in normal case\n // this is the same logic used in focus-lock\n target = (parent_1 && parent_1.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? parent_1.host : parent_1);\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(styleSingleton)[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n // allow drag selection (iOS); check if selection's anchorNode is the same as target or contains target\n var selection = window.getSelection();\n var anchorNode = selection && selection.anchorNode;\n var isTouchingSelection = anchorNode ? anchorNode === target || anchorNode.contains(target) : false;\n if (isTouchingSelection) {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { noRelative: props.noRelative, gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide aria-live elements - https://github.com/theKashey/aria-hidden/issues/10\n // and script elements, as they have no impact on accessibility.\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live], script')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","import * as React from 'react';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotProps extends React.HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlot(ownerName: string) {\n const SlotClone = createSlotClone(ownerName);\n const Slot = React.forwardRef<HTMLElement, SlotProps>((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n\n if (slottable) {\n // the new element to render is the one passed as a child of `Slottable`\n const newElement = slottable.props.children;\n\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n // because the new element will be the one rendered, we are only interested\n // in grabbing its children (`newElement.props.children`)\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement)\n ? (newElement.props as { children: React.ReactNode }).children\n : null;\n } else {\n return child;\n }\n });\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {React.isValidElement(newElement)\n ? React.cloneElement(newElement, undefined, newChildren)\n : null}\n </SlotClone>\n );\n }\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {children}\n </SlotClone>\n );\n });\n\n Slot.displayName = `${ownerName}.Slot`;\n return Slot;\n}\n\nconst Slot = createSlot('Slot');\n\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotCloneProps {\n children: React.ReactNode;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ function createSlotClone(ownerName: string) {\n const SlotClone = React.forwardRef<any, SlotCloneProps>((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props = mergeProps(slotProps, children.props as AnyProps);\n // do not pass ref to React.Fragment for React 19 compatibility\n if (children.type !== React.Fragment) {\n props.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props);\n }\n\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLOTTABLE_IDENTIFIER = Symbol('radix.slottable');\n\ninterface SlottableProps {\n children: React.ReactNode;\n}\n\ninterface SlottableComponent extends React.FC<SlottableProps> {\n __radixId: symbol;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlottable(ownerName: string) {\n const Slottable: SlottableComponent = ({ children }) => {\n return <>{children}</>;\n };\n Slottable.displayName = `${ownerName}.Slottable`;\n Slottable.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable;\n}\n\nconst Slottable = createSlottable('Slottable');\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype AnyProps = Record<string, any>;\n\nfunction isSlottable(\n child: React.ReactNode\n): child is React.ReactElement<SlottableProps, typeof Slottable> {\n return (\n React.isValidElement(child) &&\n typeof child.type === 'function' &&\n '__radixId' in child.type &&\n child.type.__radixId === SLOTTABLE_IDENTIFIER\n );\n}\n\nfunction mergeProps(slotProps: AnyProps, childProps: AnyProps) {\n // all child props should override\n const overrideProps = { ...childProps };\n\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n // if the handler exists on both, we compose them\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args: unknown[]) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n }\n // but if it exists only on the slot, we use only this one\n else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n }\n // if it's `style`, we merge them\n else if (propName === 'style') {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === 'className') {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(' ');\n }\n }\n\n return { ...slotProps, ...overrideProps };\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get;\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element as any).ref;\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get;\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element.props as { ref?: React.Ref<unknown> }).ref;\n }\n\n // Not DEV\n return (element.props as { ref?: React.Ref<unknown> }).ref || (element as any).ref;\n}\n\nexport {\n Slot,\n Slottable,\n //\n Slot as Root,\n};\nexport type { SlotProps };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContext, createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\nimport { createSlot } from '@radix-ui/react-slot';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst DIALOG_NAME = 'Dialog';\n\ntype ScopedProps<P> = P & { __scopeDialog?: Scope };\nconst [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\n\ntype DialogContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement | null>;\n contentRef: React.RefObject<DialogContentElement | null>;\n contentId: string;\n titleId: string;\n descriptionId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n};\n\nconst [DialogProvider, useDialogContext] = createDialogContext<DialogContextValue>(DIALOG_NAME);\n\ninterface DialogProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n}\n\nconst Dialog: React.FC<DialogProps> = (props: ScopedProps<DialogProps>) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true,\n } = props;\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const contentRef = React.useRef<DialogContentElement>(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DIALOG_NAME,\n });\n\n return (\n <DialogProvider\n scope={__scopeDialog}\n triggerRef={triggerRef}\n contentRef={contentRef}\n contentId={useId()}\n titleId={useId()}\n descriptionId={useId()}\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n modal={modal}\n >\n {children}\n </DialogProvider>\n );\n};\n\nDialog.displayName = DIALOG_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DialogTrigger';\n\ntype DialogTriggerElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface DialogTriggerProps extends PrimitiveButtonProps {}\n\nconst DialogTrigger = React.forwardRef<DialogTriggerElement, DialogTriggerProps>(\n (props: ScopedProps<DialogTriggerProps>, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return (\n <Primitive.button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onClick={composeEventHandlers(props.onClick, context.onOpenToggle)}\n />\n );\n }\n);\n\nDialogTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'DialogPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createDialogContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface DialogPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogPortal: React.FC<DialogPortalProps> = (props: ScopedProps<DialogPortalProps>) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return (\n <PortalProvider scope={__scopeDialog} forceMount={forceMount}>\n {React.Children.map(children, (child) => (\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {child}\n </PortalPrimitive>\n </Presence>\n ))}\n </PortalProvider>\n );\n};\n\nDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'DialogOverlay';\n\ntype DialogOverlayElement = DialogOverlayImplElement;\ninterface DialogOverlayProps extends DialogOverlayImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogOverlay = React.forwardRef<DialogOverlayElement, DialogOverlayProps>(\n (props: ScopedProps<DialogOverlayProps>, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? (\n <Presence present={forceMount || context.open}>\n <DialogOverlayImpl {...overlayProps} ref={forwardedRef} />\n </Presence>\n ) : null;\n }\n);\n\nDialogOverlay.displayName = OVERLAY_NAME;\n\ntype DialogOverlayImplElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface DialogOverlayImplProps extends PrimitiveDivProps {}\n\nconst Slot = createSlot('DialogOverlay.RemoveScroll');\n\nconst DialogOverlayImpl = React.forwardRef<DialogOverlayImplElement, DialogOverlayImplProps>(\n (props: ScopedProps<DialogOverlayImplProps>, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n <RemoveScroll as={Slot} allowPinchZoom shards={[context.contentRef]}>\n <Primitive.div\n data-state={getState(context.open)}\n {...overlayProps}\n ref={forwardedRef}\n // We re-enable pointer-events prevented by `Dialog.Content` to allow scrolling the overlay.\n style={{ pointerEvents: 'auto', ...overlayProps.style }}\n />\n </RemoveScroll>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DialogContent';\n\ntype DialogContentElement = DialogContentTypeElement;\ninterface DialogContentProps extends DialogContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogContent = React.forwardRef<DialogContentElement, DialogContentProps>(\n (props: ScopedProps<DialogContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <DialogContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <DialogContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nDialogContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentTypeElement = DialogContentImplElement;\ninterface DialogContentTypeProps\n extends Omit<DialogContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {}\n\nconst DialogContentModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n <DialogContentImpl\n {...props}\n ref={composedRefs}\n // we make sure focus isn't trapped once `DialogContent` has been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault();\n })}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) =>\n event.preventDefault()\n )}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst DialogContentNonModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n\n return (\n <DialogContentImpl\n {...props}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === 'pointerdown') {\n hasPointerDownOutsideRef.current = true;\n }\n }\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (event.detail.originalEvent.type === 'focusin' && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentImplElement = React.ComponentRef<typeof DismissableLayer>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype FocusScopeProps = React.ComponentPropsWithoutRef<typeof FocusScope>;\ninterface DialogContentImplProps extends Omit<DismissableLayerProps, 'onDismiss'> {\n /**\n * When `true`, focus cannot escape the `Content` via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst DialogContentImpl = React.forwardRef<DialogContentImplElement, DialogContentImplProps>(\n (props: ScopedProps<DialogContentImplProps>, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n\n // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (because of the `Portal`)\n useFocusGuards();\n\n return (\n <>\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n role=\"dialog\"\n id={context.contentId}\n aria-describedby={context.descriptionId}\n aria-labelledby={context.titleId}\n data-state={getState(context.open)}\n {...contentProps}\n ref={composedRefs}\n onDismiss={() => context.onOpenChange(false)}\n />\n </FocusScope>\n {process.env.NODE_ENV !== 'production' && (\n <>\n <TitleWarning titleId={context.titleId} />\n <DescriptionWarning contentRef={contentRef} descriptionId={context.descriptionId} />\n </>\n )}\n </>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'DialogTitle';\n\ntype DialogTitleElement = React.ComponentRef<typeof Primitive.h2>;\ntype PrimitiveHeading2Props = React.ComponentPropsWithoutRef<typeof Primitive.h2>;\ninterface DialogTitleProps extends PrimitiveHeading2Props {}\n\nconst DialogTitle = React.forwardRef<DialogTitleElement, DialogTitleProps>(\n (props: ScopedProps<DialogTitleProps>, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return <Primitive.h2 id={context.titleId} {...titleProps} ref={forwardedRef} />;\n }\n);\n\nDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'DialogDescription';\n\ntype DialogDescriptionElement = React.ComponentRef<typeof Primitive.p>;\ntype PrimitiveParagraphProps = React.ComponentPropsWithoutRef<typeof Primitive.p>;\ninterface DialogDescriptionProps extends PrimitiveParagraphProps {}\n\nconst DialogDescription = React.forwardRef<DialogDescriptionElement, DialogDescriptionProps>(\n (props: ScopedProps<DialogDescriptionProps>, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return <Primitive.p id={context.descriptionId} {...descriptionProps} ref={forwardedRef} />;\n }\n);\n\nDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'DialogClose';\n\ntype DialogCloseElement = React.ComponentRef<typeof Primitive.button>;\ninterface DialogCloseProps extends PrimitiveButtonProps {}\n\nconst DialogClose = React.forwardRef<DialogCloseElement, DialogCloseProps>(\n (props: ScopedProps<DialogCloseProps>, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\n />\n );\n }\n);\n\nDialogClose.displayName = CLOSE_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst TITLE_WARNING_NAME = 'DialogTitleWarning';\n\nconst [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: 'dialog',\n});\n\ntype TitleWarningProps = { titleId?: string };\n\nconst TitleWarning: React.FC<TitleWarningProps> = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n\n return null;\n};\n\nconst DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject<DialogContentElement | null>;\n descriptionId?: string;\n};\n\nconst DescriptionWarning: React.FC<DescriptionWarningProps> = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute('aria-describedby');\n // if we have an id and the user hasn't set aria-describedby={undefined}\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n\n return null;\n};\n\nconst Root = Dialog;\nconst Trigger = DialogTrigger;\nconst Portal = DialogPortal;\nconst Overlay = DialogOverlay;\nconst Content = DialogContent;\nconst Title = DialogTitle;\nconst Description = DialogDescription;\nconst Close = DialogClose;\n\nexport {\n createDialogScope,\n //\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogContent,\n DialogTitle,\n DialogDescription,\n DialogClose,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Title,\n Description,\n Close,\n //\n WarningProvider,\n};\nexport type {\n DialogProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { XIcon } from \"lucide-react\";\nimport { cn } from \"../utils/cn\";\n\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & { showCloseButton?: boolean }) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"dialog-header\" className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)} {...props} />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"dialog-footer\" className={cn(\"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\", className)} {...props} />\n );\n}\n\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title data-slot=\"dialog-title\" className={cn(\"text-lg leading-none font-semibold\", className)} {...props} />\n );\n}\n\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description data-slot=\"dialog-description\" className={cn(\"text-muted-foreground text-sm\", className)} {...props} />\n );\n}\n\nexport {\n Dialog, DialogClose, DialogContent, DialogDescription,\n DialogFooter, DialogHeader, DialogOverlay, DialogPortal,\n DialogTitle, DialogTrigger,\n};\n","'use client';\nfunction __insertCSS(code) {\n if (!code || typeof document == 'undefined') return\n let head = document.head || document.getElementsByTagName('head')[0]\n let style = document.createElement('style')\n style.type = 'text/css'\n head.appendChild(style)\n ;style.styleSheet ? (style.styleSheet.cssText = code) : style.appendChild(document.createTextNode(code))\n}\n\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport * as React from 'react';\nimport React__default, { useLayoutEffect, useEffect, useMemo } from 'react';\n\nconst DrawerContext = React__default.createContext({\n drawerRef: {\n current: null\n },\n overlayRef: {\n current: null\n },\n onPress: ()=>{},\n onRelease: ()=>{},\n onDrag: ()=>{},\n onNestedDrag: ()=>{},\n onNestedOpenChange: ()=>{},\n onNestedRelease: ()=>{},\n openProp: undefined,\n dismissible: false,\n isOpen: false,\n isDragging: false,\n keyboardIsOpen: {\n current: false\n },\n snapPointsOffset: null,\n snapPoints: null,\n handleOnly: false,\n modal: false,\n shouldFade: false,\n activeSnapPoint: null,\n onOpenChange: ()=>{},\n setActiveSnapPoint: ()=>{},\n closeDrawer: ()=>{},\n direction: 'bottom',\n shouldAnimate: {\n current: true\n },\n shouldScaleBackground: false,\n setBackgroundColorOnScale: true,\n noBodyStyles: false,\n container: null,\n autoFocus: false\n});\nconst useDrawerContext = ()=>{\n const context = React__default.useContext(DrawerContext);\n if (!context) {\n throw new Error('useDrawerContext must be used within a Drawer.Root');\n }\n return context;\n};\n\n__insertCSS(\"[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1);animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform,100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform,100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true])::after{content:'';position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not(\\n[data-state=closed]\\n){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@media (pointer:fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,var(--initial-transform,100%),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform,100%),0)}}@keyframes slideFromTop{from{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}}@keyframes slideFromLeft{from{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}}@keyframes slideFromRight{from{transform:translate3d(var(--initial-transform,100%),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform,100%),0,0)}}\");\n\nfunction isMobileFirefox() {\n const userAgent = navigator.userAgent;\n return typeof window !== 'undefined' && (/Firefox/.test(userAgent) && /Mobile/.test(userAgent) || // Android Firefox\n /FxiOS/.test(userAgent) // iOS Firefox\n );\n}\nfunction isMac() {\n return testPlatform(/^Mac/);\n}\nfunction isIPhone() {\n return testPlatform(/^iPhone/);\n}\nfunction isSafari() {\n return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n}\nfunction isIPad() {\n return testPlatform(/^iPad/) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n isMac() && navigator.maxTouchPoints > 1;\n}\nfunction isIOS() {\n return isIPhone() || isIPad();\n}\nfunction testPlatform(re) {\n return typeof window !== 'undefined' && window.navigator != null ? re.test(window.navigator.platform) : undefined;\n}\n\n// This code comes from https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/overlays/src/usePreventScroll.ts\nconst KEYBOARD_BUFFER = 24;\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\nfunction chain$1(...callbacks) {\n return (...args)=>{\n for (let callback of callbacks){\n if (typeof callback === 'function') {\n callback(...args);\n }\n }\n };\n}\n// @ts-ignore\nconst visualViewport = typeof document !== 'undefined' && window.visualViewport;\nfunction isScrollable(node) {\n let style = window.getComputedStyle(node);\n return /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n}\nfunction getScrollParent(node) {\n if (isScrollable(node)) {\n node = node.parentElement;\n }\n while(node && !isScrollable(node)){\n node = node.parentElement;\n }\n return node || document.scrollingElement || document.documentElement;\n}\n// HTML input types that do not cause the software keyboard to appear.\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n// The number of active usePreventScroll calls. Used to determine whether to revert back to the original page style/scroll position\nlet preventScrollCount = 0;\nlet restore;\n/**\n * Prevents scrolling on the document body on mount, and\n * restores it on unmount. Also ensures that content does not\n * shift due to the scrollbars disappearing.\n */ function usePreventScroll(options = {}) {\n let { isDisabled } = options;\n useIsomorphicLayoutEffect(()=>{\n if (isDisabled) {\n return;\n }\n preventScrollCount++;\n if (preventScrollCount === 1) {\n if (isIOS()) {\n restore = preventScrollMobileSafari();\n }\n }\n return ()=>{\n preventScrollCount--;\n if (preventScrollCount === 0) {\n restore == null ? void 0 : restore();\n }\n };\n }, [\n isDisabled\n ]);\n}\n// Mobile Safari is a whole different beast. Even with overflow: hidden,\n// it still scrolls the page in many situations:\n//\n// 1. When the bottom toolbar and address bar are collapsed, page scrolling is always allowed.\n// 2. When the keyboard is visible, the viewport does not resize. Instead, the keyboard covers part of\n// it, so it becomes scrollable.\n// 3. When tapping on an input, the page always scrolls so that the input is centered in the visual viewport.\n// This may cause even fixed position elements to scroll off the screen.\n// 4. When using the next/previous buttons in the keyboard to navigate between inputs, the whole page always\n// scrolls, even if the input is inside a nested scrollable element that could be scrolled instead.\n//\n// In order to work around these cases, and prevent scrolling without jankiness, we do a few things:\n//\n// 1. Prevent default on `touchmove` events that are not in a scrollable element. This prevents touch scrolling\n// on the window.\n// 2. Prevent default on `touchmove` events inside a scrollable element when the scroll position is at the\n// top or bottom. This avoids the whole page scrolling instead, but does prevent overscrolling.\n// 3. Prevent default on `touchend` events on input elements and handle focusing the element ourselves.\n// 4. When focusing an input, apply a transform to trick Safari into thinking the input is at the top\n// of the page, which prevents it from scrolling the page. After the input is focused, scroll the element\n// into view ourselves, without scrolling the whole page.\n// 5. Offset the body by the scroll position using a negative margin and scroll to the top. This should appear the\n// same visually, but makes the actual scroll position always zero. This is required to make all of the\n// above work or Safari will still try to scroll the page when focusing an input.\n// 6. As a last resort, handle window scroll events, and scroll back to the top. This can happen when attempting\n// to navigate to an input with the next/previous buttons that's outside a modal.\nfunction preventScrollMobileSafari() {\n let scrollable;\n let lastY = 0;\n let onTouchStart = (e)=>{\n // Store the nearest scrollable parent element from the element that the user touched.\n scrollable = getScrollParent(e.target);\n if (scrollable === document.documentElement && scrollable === document.body) {\n return;\n }\n lastY = e.changedTouches[0].pageY;\n };\n let onTouchMove = (e)=>{\n // Prevent scrolling the window.\n if (!scrollable || scrollable === document.documentElement || scrollable === document.body) {\n e.preventDefault();\n return;\n }\n // Prevent scrolling up when at the top and scrolling down when at the bottom\n // of a nested scrollable area, otherwise mobile Safari will start scrolling\n // the window instead. Unfortunately, this disables bounce scrolling when at\n // the top but it's the best we can do.\n let y = e.changedTouches[0].pageY;\n let scrollTop = scrollable.scrollTop;\n let bottom = scrollable.scrollHeight - scrollable.clientHeight;\n if (bottom === 0) {\n return;\n }\n if (scrollTop <= 0 && y > lastY || scrollTop >= bottom && y < lastY) {\n e.preventDefault();\n }\n lastY = y;\n };\n let onTouchEnd = (e)=>{\n let target = e.target;\n // Apply this change if we're not already focused on the target element\n if (isInput(target) && target !== document.activeElement) {\n e.preventDefault();\n // Apply a transform to trick Safari into thinking the input is at the top of the page\n // so it doesn't try to scroll it into view. When tapping on an input, this needs to\n // be done before the \"focus\" event, so we have to focus the element ourselves.\n target.style.transform = 'translateY(-2000px)';\n target.focus();\n requestAnimationFrame(()=>{\n target.style.transform = '';\n });\n }\n };\n let onFocus = (e)=>{\n let target = e.target;\n if (isInput(target)) {\n // Transform also needs to be applied in the focus event in cases where focus moves\n // other than tapping on an input directly, e.g. the next/previous buttons in the\n // software keyboard. In these cases, it seems applying the transform in the focus event\n // is good enough, whereas when tapping an input, it must be done before the focus event. 🤷♂️\n target.style.transform = 'translateY(-2000px)';\n requestAnimationFrame(()=>{\n target.style.transform = '';\n // This will have prevented the browser from scrolling the focused element into view,\n // so we need to do this ourselves in a way that doesn't cause the whole page to scroll.\n if (visualViewport) {\n if (visualViewport.height < window.innerHeight) {\n // If the keyboard is already visible, do this after one additional frame\n // to wait for the transform to be removed.\n requestAnimationFrame(()=>{\n scrollIntoView(target);\n });\n } else {\n // Otherwise, wait for the visual viewport to resize before scrolling so we can\n // measure the correct position to scroll to.\n visualViewport.addEventListener('resize', ()=>scrollIntoView(target), {\n once: true\n });\n }\n }\n });\n }\n };\n let onWindowScroll = ()=>{\n // Last resort. If the window scrolled, scroll it back to the top.\n // It should always be at the top because the body will have a negative margin (see below).\n window.scrollTo(0, 0);\n };\n // Record the original scroll position so we can restore it.\n // Then apply a negative margin to the body to offset it by the scroll position. This will\n // enable us to scroll the window to the top, which is required for the rest of this to work.\n let scrollX = window.pageXOffset;\n let scrollY = window.pageYOffset;\n let restoreStyles = chain$1(setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`));\n // Scroll to the top. The negative margin on the body will make this appear the same.\n window.scrollTo(0, 0);\n let removeEvents = chain$1(addEvent(document, 'touchstart', onTouchStart, {\n passive: false,\n capture: true\n }), addEvent(document, 'touchmove', onTouchMove, {\n passive: false,\n capture: true\n }), addEvent(document, 'touchend', onTouchEnd, {\n passive: false,\n capture: true\n }), addEvent(document, 'focus', onFocus, true), addEvent(window, 'scroll', onWindowScroll));\n return ()=>{\n // Restore styles and scroll the page back to where it was.\n restoreStyles();\n removeEvents();\n window.scrollTo(scrollX, scrollY);\n };\n}\n// Sets a CSS property on an element, and returns a function to revert it to the previous value.\nfunction setStyle(element, style, value) {\n // https://github.com/microsoft/TypeScript/issues/17827#issuecomment-391663310\n // @ts-ignore\n let cur = element.style[style];\n // @ts-ignore\n element.style[style] = value;\n return ()=>{\n // @ts-ignore\n element.style[style] = cur;\n };\n}\n// Adds an event listener to an element, and returns a function to remove it.\nfunction addEvent(target, event, handler, options) {\n // @ts-ignore\n target.addEventListener(event, handler, options);\n return ()=>{\n // @ts-ignore\n target.removeEventListener(event, handler, options);\n };\n}\nfunction scrollIntoView(target) {\n let root = document.scrollingElement || document.documentElement;\n while(target && target !== root){\n // Find the parent scrollable element and adjust the scroll position if the target is not already in view.\n let scrollable = getScrollParent(target);\n if (scrollable !== document.documentElement && scrollable !== document.body && scrollable !== target) {\n let scrollableTop = scrollable.getBoundingClientRect().top;\n let targetTop = target.getBoundingClientRect().top;\n let targetBottom = target.getBoundingClientRect().bottom;\n // Buffer is needed for some edge cases\n const keyboardHeight = scrollable.getBoundingClientRect().bottom + KEYBOARD_BUFFER;\n if (targetBottom > keyboardHeight) {\n scrollable.scrollTop += targetTop - scrollableTop;\n }\n }\n // @ts-ignore\n target = scrollable.parentElement;\n }\n}\nfunction isInput(target) {\n return target instanceof HTMLInputElement && !nonTextInputTypes.has(target.type) || target instanceof HTMLTextAreaElement || target instanceof HTMLElement && target.isContentEditable;\n}\n\n// This code comes from https://github.com/radix-ui/primitives/tree/main/packages/react/compose-refs\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */ function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */ function composeRefs(...refs) {\n return (node)=>refs.forEach((ref)=>setRef(ref, node));\n}\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */ function useComposedRefs(...refs) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nconst cache = new WeakMap();\nfunction set(el, styles, ignoreCache = false) {\n if (!el || !(el instanceof HTMLElement)) return;\n let originalStyles = {};\n Object.entries(styles).forEach(([key, value])=>{\n if (key.startsWith('--')) {\n el.style.setProperty(key, value);\n return;\n }\n originalStyles[key] = el.style[key];\n el.style[key] = value;\n });\n if (ignoreCache) return;\n cache.set(el, originalStyles);\n}\nfunction reset(el, prop) {\n if (!el || !(el instanceof HTMLElement)) return;\n let originalStyles = cache.get(el);\n if (!originalStyles) {\n return;\n }\n {\n el.style[prop] = originalStyles[prop];\n }\n}\nconst isVertical = (direction)=>{\n switch(direction){\n case 'top':\n case 'bottom':\n return true;\n case 'left':\n case 'right':\n return false;\n default:\n return direction;\n }\n};\nfunction getTranslate(element, direction) {\n if (!element) {\n return null;\n }\n const style = window.getComputedStyle(element);\n const transform = // @ts-ignore\n style.transform || style.webkitTransform || style.mozTransform;\n let mat = transform.match(/^matrix3d\\((.+)\\)$/);\n if (mat) {\n // https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix3d\n return parseFloat(mat[1].split(', ')[isVertical(direction) ? 13 : 12]);\n }\n // https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix\n mat = transform.match(/^matrix\\((.+)\\)$/);\n return mat ? parseFloat(mat[1].split(', ')[isVertical(direction) ? 5 : 4]) : null;\n}\nfunction dampenValue(v) {\n return 8 * (Math.log(v + 1) - 2);\n}\nfunction assignStyle(element, style) {\n if (!element) return ()=>{};\n const prevStyle = element.style.cssText;\n Object.assign(element.style, style);\n return ()=>{\n element.style.cssText = prevStyle;\n };\n}\n/**\n * Receives functions as arguments and returns a new function that calls all.\n */ function chain(...fns) {\n return (...args)=>{\n for (const fn of fns){\n if (typeof fn === 'function') {\n // @ts-ignore\n fn(...args);\n }\n }\n };\n}\n\nconst TRANSITIONS = {\n DURATION: 0.5,\n EASE: [\n 0.32,\n 0.72,\n 0,\n 1\n ]\n};\nconst VELOCITY_THRESHOLD = 0.4;\nconst CLOSE_THRESHOLD = 0.25;\nconst SCROLL_LOCK_TIMEOUT = 100;\nconst BORDER_RADIUS = 8;\nconst NESTED_DISPLACEMENT = 16;\nconst WINDOW_TOP_OFFSET = 26;\nconst DRAG_CLASS = 'vaul-dragging';\n\n// This code comes from https://github.com/radix-ui/primitives/blob/main/packages/react/use-controllable-state/src/useControllableState.tsx\nfunction useCallbackRef(callback) {\n const callbackRef = React__default.useRef(callback);\n React__default.useEffect(()=>{\n callbackRef.current = callback;\n });\n // https://github.com/facebook/react/issues/19240\n return React__default.useMemo(()=>(...args)=>callbackRef.current == null ? void 0 : callbackRef.current.call(callbackRef, ...args), []);\n}\nfunction useUncontrolledState({ defaultProp, onChange }) {\n const uncontrolledState = React__default.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React__default.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React__default.useEffect(()=>{\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [\n value,\n prevValueRef,\n handleChange\n ]);\n return uncontrolledState;\n}\nfunction useControllableState({ prop, defaultProp, onChange = ()=>{} }) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== undefined;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React__default.useCallback((nextValue)=>{\n if (isControlled) {\n const setter = nextValue;\n const value = typeof nextValue === 'function' ? setter(prop) : nextValue;\n if (value !== prop) handleChange(value);\n } else {\n setUncontrolledProp(nextValue);\n }\n }, [\n isControlled,\n prop,\n setUncontrolledProp,\n handleChange\n ]);\n return [\n value,\n setValue\n ];\n}\n\nfunction useSnapPoints({ activeSnapPointProp, setActiveSnapPointProp, snapPoints, drawerRef, overlayRef, fadeFromIndex, onSnapPointChange, direction = 'bottom', container, snapToSequentialPoint }) {\n const [activeSnapPoint, setActiveSnapPoint] = useControllableState({\n prop: activeSnapPointProp,\n defaultProp: snapPoints == null ? void 0 : snapPoints[0],\n onChange: setActiveSnapPointProp\n });\n const [windowDimensions, setWindowDimensions] = React__default.useState(typeof window !== 'undefined' ? {\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight\n } : undefined);\n React__default.useEffect(()=>{\n function onResize() {\n setWindowDimensions({\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight\n });\n }\n window.addEventListener('resize', onResize);\n return ()=>window.removeEventListener('resize', onResize);\n }, []);\n const isLastSnapPoint = React__default.useMemo(()=>activeSnapPoint === (snapPoints == null ? void 0 : snapPoints[snapPoints.length - 1]) || null, [\n snapPoints,\n activeSnapPoint\n ]);\n const activeSnapPointIndex = React__default.useMemo(()=>{\n var _snapPoints_findIndex;\n return (_snapPoints_findIndex = snapPoints == null ? void 0 : snapPoints.findIndex((snapPoint)=>snapPoint === activeSnapPoint)) != null ? _snapPoints_findIndex : null;\n }, [\n snapPoints,\n activeSnapPoint\n ]);\n const shouldFade = snapPoints && snapPoints.length > 0 && (fadeFromIndex || fadeFromIndex === 0) && !Number.isNaN(fadeFromIndex) && snapPoints[fadeFromIndex] === activeSnapPoint || !snapPoints;\n const snapPointsOffset = React__default.useMemo(()=>{\n const containerSize = container ? {\n width: container.getBoundingClientRect().width,\n height: container.getBoundingClientRect().height\n } : typeof window !== 'undefined' ? {\n width: window.innerWidth,\n height: window.innerHeight\n } : {\n width: 0,\n height: 0\n };\n var _snapPoints_map;\n return (_snapPoints_map = snapPoints == null ? void 0 : snapPoints.map((snapPoint)=>{\n const isPx = typeof snapPoint === 'string';\n let snapPointAsNumber = 0;\n if (isPx) {\n snapPointAsNumber = parseInt(snapPoint, 10);\n }\n if (isVertical(direction)) {\n const height = isPx ? snapPointAsNumber : windowDimensions ? snapPoint * containerSize.height : 0;\n if (windowDimensions) {\n return direction === 'bottom' ? containerSize.height - height : -containerSize.height + height;\n }\n return height;\n }\n const width = isPx ? snapPointAsNumber : windowDimensions ? snapPoint * containerSize.width : 0;\n if (windowDimensions) {\n return direction === 'right' ? containerSize.width - width : -containerSize.width + width;\n }\n return width;\n })) != null ? _snapPoints_map : [];\n }, [\n snapPoints,\n windowDimensions,\n container\n ]);\n const activeSnapPointOffset = React__default.useMemo(()=>activeSnapPointIndex !== null ? snapPointsOffset == null ? void 0 : snapPointsOffset[activeSnapPointIndex] : null, [\n snapPointsOffset,\n activeSnapPointIndex\n ]);\n const snapToPoint = React__default.useCallback((dimension)=>{\n var _snapPointsOffset_findIndex;\n const newSnapPointIndex = (_snapPointsOffset_findIndex = snapPointsOffset == null ? void 0 : snapPointsOffset.findIndex((snapPointDim)=>snapPointDim === dimension)) != null ? _snapPointsOffset_findIndex : null;\n onSnapPointChange(newSnapPointIndex);\n set(drawerRef.current, {\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n transform: isVertical(direction) ? `translate3d(0, ${dimension}px, 0)` : `translate3d(${dimension}px, 0, 0)`\n });\n if (snapPointsOffset && newSnapPointIndex !== snapPointsOffset.length - 1 && fadeFromIndex !== undefined && newSnapPointIndex !== fadeFromIndex && newSnapPointIndex < fadeFromIndex) {\n set(overlayRef.current, {\n transition: `opacity ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n opacity: '0'\n });\n } else {\n set(overlayRef.current, {\n transition: `opacity ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n opacity: '1'\n });\n }\n setActiveSnapPoint(snapPoints == null ? void 0 : snapPoints[Math.max(newSnapPointIndex, 0)]);\n }, [\n drawerRef.current,\n snapPoints,\n snapPointsOffset,\n fadeFromIndex,\n overlayRef,\n setActiveSnapPoint\n ]);\n React__default.useEffect(()=>{\n if (activeSnapPoint || activeSnapPointProp) {\n var _snapPoints_findIndex;\n const newIndex = (_snapPoints_findIndex = snapPoints == null ? void 0 : snapPoints.findIndex((snapPoint)=>snapPoint === activeSnapPointProp || snapPoint === activeSnapPoint)) != null ? _snapPoints_findIndex : -1;\n if (snapPointsOffset && newIndex !== -1 && typeof snapPointsOffset[newIndex] === 'number') {\n snapToPoint(snapPointsOffset[newIndex]);\n }\n }\n }, [\n activeSnapPoint,\n activeSnapPointProp,\n snapPoints,\n snapPointsOffset,\n snapToPoint\n ]);\n function onRelease({ draggedDistance, closeDrawer, velocity, dismissible }) {\n if (fadeFromIndex === undefined) return;\n const currentPosition = direction === 'bottom' || direction === 'right' ? (activeSnapPointOffset != null ? activeSnapPointOffset : 0) - draggedDistance : (activeSnapPointOffset != null ? activeSnapPointOffset : 0) + draggedDistance;\n const isOverlaySnapPoint = activeSnapPointIndex === fadeFromIndex - 1;\n const isFirst = activeSnapPointIndex === 0;\n const hasDraggedUp = draggedDistance > 0;\n if (isOverlaySnapPoint) {\n set(overlayRef.current, {\n transition: `opacity ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`\n });\n }\n if (!snapToSequentialPoint && velocity > 2 && !hasDraggedUp) {\n if (dismissible) closeDrawer();\n else snapToPoint(snapPointsOffset[0]); // snap to initial point\n return;\n }\n if (!snapToSequentialPoint && velocity > 2 && hasDraggedUp && snapPointsOffset && snapPoints) {\n snapToPoint(snapPointsOffset[snapPoints.length - 1]);\n return;\n }\n // Find the closest snap point to the current position\n const closestSnapPoint = snapPointsOffset == null ? void 0 : snapPointsOffset.reduce((prev, curr)=>{\n if (typeof prev !== 'number' || typeof curr !== 'number') return prev;\n return Math.abs(curr - currentPosition) < Math.abs(prev - currentPosition) ? curr : prev;\n });\n const dim = isVertical(direction) ? window.innerHeight : window.innerWidth;\n if (velocity > VELOCITY_THRESHOLD && Math.abs(draggedDistance) < dim * 0.4) {\n const dragDirection = hasDraggedUp ? 1 : -1; // 1 = up, -1 = down\n // Don't do anything if we swipe upwards while being on the last snap point\n if (dragDirection > 0 && isLastSnapPoint && snapPoints) {\n snapToPoint(snapPointsOffset[snapPoints.length - 1]);\n return;\n }\n if (isFirst && dragDirection < 0 && dismissible) {\n closeDrawer();\n }\n if (activeSnapPointIndex === null) return;\n snapToPoint(snapPointsOffset[activeSnapPointIndex + dragDirection]);\n return;\n }\n snapToPoint(closestSnapPoint);\n }\n function onDrag({ draggedDistance }) {\n if (activeSnapPointOffset === null) return;\n const newValue = direction === 'bottom' || direction === 'right' ? activeSnapPointOffset - draggedDistance : activeSnapPointOffset + draggedDistance;\n // Don't do anything if we exceed the last(biggest) snap point\n if ((direction === 'bottom' || direction === 'right') && newValue < snapPointsOffset[snapPointsOffset.length - 1]) {\n return;\n }\n if ((direction === 'top' || direction === 'left') && newValue > snapPointsOffset[snapPointsOffset.length - 1]) {\n return;\n }\n set(drawerRef.current, {\n transform: isVertical(direction) ? `translate3d(0, ${newValue}px, 0)` : `translate3d(${newValue}px, 0, 0)`\n });\n }\n function getPercentageDragged(absDraggedDistance, isDraggingDown) {\n if (!snapPoints || typeof activeSnapPointIndex !== 'number' || !snapPointsOffset || fadeFromIndex === undefined) return null;\n // If this is true we are dragging to a snap point that is supposed to have an overlay\n const isOverlaySnapPoint = activeSnapPointIndex === fadeFromIndex - 1;\n const isOverlaySnapPointOrHigher = activeSnapPointIndex >= fadeFromIndex;\n if (isOverlaySnapPointOrHigher && isDraggingDown) {\n return 0;\n }\n // Don't animate, but still use this one if we are dragging away from the overlaySnapPoint\n if (isOverlaySnapPoint && !isDraggingDown) return 1;\n if (!shouldFade && !isOverlaySnapPoint) return null;\n // Either fadeFrom index or the one before\n const targetSnapPointIndex = isOverlaySnapPoint ? activeSnapPointIndex + 1 : activeSnapPointIndex - 1;\n // Get the distance from overlaySnapPoint to the one before or vice-versa to calculate the opacity percentage accordingly\n const snapPointDistance = isOverlaySnapPoint ? snapPointsOffset[targetSnapPointIndex] - snapPointsOffset[targetSnapPointIndex - 1] : snapPointsOffset[targetSnapPointIndex + 1] - snapPointsOffset[targetSnapPointIndex];\n const percentageDragged = absDraggedDistance / Math.abs(snapPointDistance);\n if (isOverlaySnapPoint) {\n return 1 - percentageDragged;\n } else {\n return percentageDragged;\n }\n }\n return {\n isLastSnapPoint,\n activeSnapPoint,\n shouldFade,\n getPercentageDragged,\n setActiveSnapPoint,\n activeSnapPointIndex,\n onRelease,\n onDrag,\n snapPointsOffset\n };\n}\n\nconst noop = ()=>()=>{};\nfunction useScaleBackground() {\n const { direction, isOpen, shouldScaleBackground, setBackgroundColorOnScale, noBodyStyles } = useDrawerContext();\n const timeoutIdRef = React__default.useRef(null);\n const initialBackgroundColor = useMemo(()=>document.body.style.backgroundColor, []);\n function getScale() {\n return (window.innerWidth - WINDOW_TOP_OFFSET) / window.innerWidth;\n }\n React__default.useEffect(()=>{\n if (isOpen && shouldScaleBackground) {\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n const wrapper = document.querySelector('[data-vaul-drawer-wrapper]') || document.querySelector('[vaul-drawer-wrapper]');\n if (!wrapper) return;\n chain(setBackgroundColorOnScale && !noBodyStyles ? assignStyle(document.body, {\n background: 'black'\n }) : noop, assignStyle(wrapper, {\n transformOrigin: isVertical(direction) ? 'top' : 'left',\n transitionProperty: 'transform, border-radius',\n transitionDuration: `${TRANSITIONS.DURATION}s`,\n transitionTimingFunction: `cubic-bezier(${TRANSITIONS.EASE.join(',')})`\n }));\n const wrapperStylesCleanup = assignStyle(wrapper, {\n borderRadius: `${BORDER_RADIUS}px`,\n overflow: 'hidden',\n ...isVertical(direction) ? {\n transform: `scale(${getScale()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`\n } : {\n transform: `scale(${getScale()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`\n }\n });\n return ()=>{\n wrapperStylesCleanup();\n timeoutIdRef.current = window.setTimeout(()=>{\n if (initialBackgroundColor) {\n document.body.style.background = initialBackgroundColor;\n } else {\n document.body.style.removeProperty('background');\n }\n }, TRANSITIONS.DURATION * 1000);\n };\n }\n }, [\n isOpen,\n shouldScaleBackground,\n initialBackgroundColor\n ]);\n}\n\nlet previousBodyPosition = null;\n/**\n * This hook is necessary to prevent buggy behavior on iOS devices (need to test on Android).\n * I won't get into too much detail about what bugs it solves, but so far I've found that setting the body to `position: fixed` is the most reliable way to prevent those bugs.\n * Issues that this hook solves:\n * https://github.com/emilkowalski/vaul/issues/435\n * https://github.com/emilkowalski/vaul/issues/433\n * And more that I discovered, but were just not reported.\n */ function usePositionFixed({ isOpen, modal, nested, hasBeenOpened, preventScrollRestoration, noBodyStyles }) {\n const [activeUrl, setActiveUrl] = React__default.useState(()=>typeof window !== 'undefined' ? window.location.href : '');\n const scrollPos = React__default.useRef(0);\n const setPositionFixed = React__default.useCallback(()=>{\n // All browsers on iOS will return true here.\n if (!isSafari()) return;\n // If previousBodyPosition is already set, don't set it again.\n if (previousBodyPosition === null && isOpen && !noBodyStyles) {\n previousBodyPosition = {\n position: document.body.style.position,\n top: document.body.style.top,\n left: document.body.style.left,\n height: document.body.style.height,\n right: 'unset'\n };\n // Update the dom inside an animation frame\n const { scrollX, innerHeight } = window;\n document.body.style.setProperty('position', 'fixed', 'important');\n Object.assign(document.body.style, {\n top: `${-scrollPos.current}px`,\n left: `${-scrollX}px`,\n right: '0px',\n height: 'auto'\n });\n window.setTimeout(()=>window.requestAnimationFrame(()=>{\n // Attempt to check if the bottom bar appeared due to the position change\n const bottomBarHeight = innerHeight - window.innerHeight;\n if (bottomBarHeight && scrollPos.current >= innerHeight) {\n // Move the content further up so that the bottom bar doesn't hide it\n document.body.style.top = `${-(scrollPos.current + bottomBarHeight)}px`;\n }\n }), 300);\n }\n }, [\n isOpen\n ]);\n const restorePositionSetting = React__default.useCallback(()=>{\n // All browsers on iOS will return true here.\n if (!isSafari()) return;\n if (previousBodyPosition !== null && !noBodyStyles) {\n // Convert the position from \"px\" to Int\n const y = -parseInt(document.body.style.top, 10);\n const x = -parseInt(document.body.style.left, 10);\n // Restore styles\n Object.assign(document.body.style, previousBodyPosition);\n window.requestAnimationFrame(()=>{\n if (preventScrollRestoration && activeUrl !== window.location.href) {\n setActiveUrl(window.location.href);\n return;\n }\n window.scrollTo(x, y);\n });\n previousBodyPosition = null;\n }\n }, [\n activeUrl\n ]);\n React__default.useEffect(()=>{\n function onScroll() {\n scrollPos.current = window.scrollY;\n }\n onScroll();\n window.addEventListener('scroll', onScroll);\n return ()=>{\n window.removeEventListener('scroll', onScroll);\n };\n }, []);\n React__default.useEffect(()=>{\n if (!modal) return;\n return ()=>{\n if (typeof document === 'undefined') return;\n // Another drawer is opened, safe to ignore the execution\n const hasDrawerOpened = !!document.querySelector('[data-vaul-drawer]');\n if (hasDrawerOpened) return;\n restorePositionSetting();\n };\n }, [\n modal,\n restorePositionSetting\n ]);\n React__default.useEffect(()=>{\n if (nested || !hasBeenOpened) return;\n // This is needed to force Safari toolbar to show **before** the drawer starts animating to prevent a gnarly shift from happening\n if (isOpen) {\n // avoid for standalone mode (PWA)\n const isStandalone = window.matchMedia('(display-mode: standalone)').matches;\n !isStandalone && setPositionFixed();\n if (!modal) {\n window.setTimeout(()=>{\n restorePositionSetting();\n }, 500);\n }\n } else {\n restorePositionSetting();\n }\n }, [\n isOpen,\n hasBeenOpened,\n activeUrl,\n modal,\n nested,\n setPositionFixed,\n restorePositionSetting\n ]);\n return {\n restorePositionSetting\n };\n}\n\nfunction Root({ open: openProp, onOpenChange, children, onDrag: onDragProp, onRelease: onReleaseProp, snapPoints, shouldScaleBackground = false, setBackgroundColorOnScale = true, closeThreshold = CLOSE_THRESHOLD, scrollLockTimeout = SCROLL_LOCK_TIMEOUT, dismissible = true, handleOnly = false, fadeFromIndex = snapPoints && snapPoints.length - 1, activeSnapPoint: activeSnapPointProp, setActiveSnapPoint: setActiveSnapPointProp, fixed, modal = true, onClose, nested, noBodyStyles = false, direction = 'bottom', defaultOpen = false, disablePreventScroll = true, snapToSequentialPoint = false, preventScrollRestoration = false, repositionInputs = true, onAnimationEnd, container, autoFocus = false }) {\n var _drawerRef_current, _drawerRef_current1;\n const [isOpen = false, setIsOpen] = useControllableState({\n defaultProp: defaultOpen,\n prop: openProp,\n onChange: (o)=>{\n onOpenChange == null ? void 0 : onOpenChange(o);\n if (!o && !nested) {\n restorePositionSetting();\n }\n setTimeout(()=>{\n onAnimationEnd == null ? void 0 : onAnimationEnd(o);\n }, TRANSITIONS.DURATION * 1000);\n if (o && !modal) {\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(()=>{\n document.body.style.pointerEvents = 'auto';\n });\n }\n }\n if (!o) {\n // This will be removed when the exit animation ends (`500ms`)\n document.body.style.pointerEvents = 'auto';\n }\n }\n });\n const [hasBeenOpened, setHasBeenOpened] = React__default.useState(false);\n const [isDragging, setIsDragging] = React__default.useState(false);\n const [justReleased, setJustReleased] = React__default.useState(false);\n const overlayRef = React__default.useRef(null);\n const openTime = React__default.useRef(null);\n const dragStartTime = React__default.useRef(null);\n const dragEndTime = React__default.useRef(null);\n const lastTimeDragPrevented = React__default.useRef(null);\n const isAllowedToDrag = React__default.useRef(false);\n const nestedOpenChangeTimer = React__default.useRef(null);\n const pointerStart = React__default.useRef(0);\n const keyboardIsOpen = React__default.useRef(false);\n const shouldAnimate = React__default.useRef(!defaultOpen);\n const previousDiffFromInitial = React__default.useRef(0);\n const drawerRef = React__default.useRef(null);\n const drawerHeightRef = React__default.useRef(((_drawerRef_current = drawerRef.current) == null ? void 0 : _drawerRef_current.getBoundingClientRect().height) || 0);\n const drawerWidthRef = React__default.useRef(((_drawerRef_current1 = drawerRef.current) == null ? void 0 : _drawerRef_current1.getBoundingClientRect().width) || 0);\n const initialDrawerHeight = React__default.useRef(0);\n const onSnapPointChange = React__default.useCallback((activeSnapPointIndex)=>{\n // Change openTime ref when we reach the last snap point to prevent dragging for 500ms incase it's scrollable.\n if (snapPoints && activeSnapPointIndex === snapPointsOffset.length - 1) openTime.current = new Date();\n }, []);\n const { activeSnapPoint, activeSnapPointIndex, setActiveSnapPoint, onRelease: onReleaseSnapPoints, snapPointsOffset, onDrag: onDragSnapPoints, shouldFade, getPercentageDragged: getSnapPointsPercentageDragged } = useSnapPoints({\n snapPoints,\n activeSnapPointProp,\n setActiveSnapPointProp,\n drawerRef,\n fadeFromIndex,\n overlayRef,\n onSnapPointChange,\n direction,\n container,\n snapToSequentialPoint\n });\n usePreventScroll({\n isDisabled: !isOpen || isDragging || !modal || justReleased || !hasBeenOpened || !repositionInputs || !disablePreventScroll\n });\n const { restorePositionSetting } = usePositionFixed({\n isOpen,\n modal,\n nested: nested != null ? nested : false,\n hasBeenOpened,\n preventScrollRestoration,\n noBodyStyles\n });\n function getScale() {\n return (window.innerWidth - WINDOW_TOP_OFFSET) / window.innerWidth;\n }\n function onPress(event) {\n var _drawerRef_current, _drawerRef_current1;\n if (!dismissible && !snapPoints) return;\n if (drawerRef.current && !drawerRef.current.contains(event.target)) return;\n drawerHeightRef.current = ((_drawerRef_current = drawerRef.current) == null ? void 0 : _drawerRef_current.getBoundingClientRect().height) || 0;\n drawerWidthRef.current = ((_drawerRef_current1 = drawerRef.current) == null ? void 0 : _drawerRef_current1.getBoundingClientRect().width) || 0;\n setIsDragging(true);\n dragStartTime.current = new Date();\n // iOS doesn't trigger mouseUp after scrolling so we need to listen to touched in order to disallow dragging\n if (isIOS()) {\n window.addEventListener('touchend', ()=>isAllowedToDrag.current = false, {\n once: true\n });\n }\n // Ensure we maintain correct pointer capture even when going outside of the drawer\n event.target.setPointerCapture(event.pointerId);\n pointerStart.current = isVertical(direction) ? event.pageY : event.pageX;\n }\n function shouldDrag(el, isDraggingInDirection) {\n var _window_getSelection;\n let element = el;\n const highlightedText = (_window_getSelection = window.getSelection()) == null ? void 0 : _window_getSelection.toString();\n const swipeAmount = drawerRef.current ? getTranslate(drawerRef.current, direction) : null;\n const date = new Date();\n // Fixes https://github.com/emilkowalski/vaul/issues/483\n if (element.tagName === 'SELECT') {\n return false;\n }\n if (element.hasAttribute('data-vaul-no-drag') || element.closest('[data-vaul-no-drag]')) {\n return false;\n }\n if (direction === 'right' || direction === 'left') {\n return true;\n }\n // Allow scrolling when animating\n if (openTime.current && date.getTime() - openTime.current.getTime() < 500) {\n return false;\n }\n if (swipeAmount !== null) {\n if (direction === 'bottom' ? swipeAmount > 0 : swipeAmount < 0) {\n return true;\n }\n }\n // Don't drag if there's highlighted text\n if (highlightedText && highlightedText.length > 0) {\n return false;\n }\n // Disallow dragging if drawer was scrolled within `scrollLockTimeout`\n if (lastTimeDragPrevented.current && date.getTime() - lastTimeDragPrevented.current.getTime() < scrollLockTimeout && swipeAmount === 0) {\n lastTimeDragPrevented.current = date;\n return false;\n }\n if (isDraggingInDirection) {\n lastTimeDragPrevented.current = date;\n // We are dragging down so we should allow scrolling\n return false;\n }\n // Keep climbing up the DOM tree as long as there's a parent\n while(element){\n // Check if the element is scrollable\n if (element.scrollHeight > element.clientHeight) {\n if (element.scrollTop !== 0) {\n lastTimeDragPrevented.current = new Date();\n // The element is scrollable and not scrolled to the top, so don't drag\n return false;\n }\n if (element.getAttribute('role') === 'dialog') {\n return true;\n }\n }\n // Move up to the parent element\n element = element.parentNode;\n }\n // No scrollable parents not scrolled to the top found, so drag\n return true;\n }\n function onDrag(event) {\n if (!drawerRef.current) {\n return;\n }\n // We need to know how much of the drawer has been dragged in percentages so that we can transform background accordingly\n if (isDragging) {\n const directionMultiplier = direction === 'bottom' || direction === 'right' ? 1 : -1;\n const draggedDistance = (pointerStart.current - (isVertical(direction) ? event.pageY : event.pageX)) * directionMultiplier;\n const isDraggingInDirection = draggedDistance > 0;\n // Pre condition for disallowing dragging in the close direction.\n const noCloseSnapPointsPreCondition = snapPoints && !dismissible && !isDraggingInDirection;\n // Disallow dragging down to close when first snap point is the active one and dismissible prop is set to false.\n if (noCloseSnapPointsPreCondition && activeSnapPointIndex === 0) return;\n // We need to capture last time when drag with scroll was triggered and have a timeout between\n const absDraggedDistance = Math.abs(draggedDistance);\n const wrapper = document.querySelector('[data-vaul-drawer-wrapper]');\n const drawerDimension = direction === 'bottom' || direction === 'top' ? drawerHeightRef.current : drawerWidthRef.current;\n // Calculate the percentage dragged, where 1 is the closed position\n let percentageDragged = absDraggedDistance / drawerDimension;\n const snapPointPercentageDragged = getSnapPointsPercentageDragged(absDraggedDistance, isDraggingInDirection);\n if (snapPointPercentageDragged !== null) {\n percentageDragged = snapPointPercentageDragged;\n }\n // Disallow close dragging beyond the smallest snap point.\n if (noCloseSnapPointsPreCondition && percentageDragged >= 1) {\n return;\n }\n if (!isAllowedToDrag.current && !shouldDrag(event.target, isDraggingInDirection)) return;\n drawerRef.current.classList.add(DRAG_CLASS);\n // If shouldDrag gave true once after pressing down on the drawer, we set isAllowedToDrag to true and it will remain true until we let go, there's no reason to disable dragging mid way, ever, and that's the solution to it\n isAllowedToDrag.current = true;\n set(drawerRef.current, {\n transition: 'none'\n });\n set(overlayRef.current, {\n transition: 'none'\n });\n if (snapPoints) {\n onDragSnapPoints({\n draggedDistance\n });\n }\n // Run this only if snapPoints are not defined or if we are at the last snap point (highest one)\n if (isDraggingInDirection && !snapPoints) {\n const dampenedDraggedDistance = dampenValue(draggedDistance);\n const translateValue = Math.min(dampenedDraggedDistance * -1, 0) * directionMultiplier;\n set(drawerRef.current, {\n transform: isVertical(direction) ? `translate3d(0, ${translateValue}px, 0)` : `translate3d(${translateValue}px, 0, 0)`\n });\n return;\n }\n const opacityValue = 1 - percentageDragged;\n if (shouldFade || fadeFromIndex && activeSnapPointIndex === fadeFromIndex - 1) {\n onDragProp == null ? void 0 : onDragProp(event, percentageDragged);\n set(overlayRef.current, {\n opacity: `${opacityValue}`,\n transition: 'none'\n }, true);\n }\n if (wrapper && overlayRef.current && shouldScaleBackground) {\n // Calculate percentageDragged as a fraction (0 to 1)\n const scaleValue = Math.min(getScale() + percentageDragged * (1 - getScale()), 1);\n const borderRadiusValue = 8 - percentageDragged * 8;\n const translateValue = Math.max(0, 14 - percentageDragged * 14);\n set(wrapper, {\n borderRadius: `${borderRadiusValue}px`,\n transform: isVertical(direction) ? `scale(${scaleValue}) translate3d(0, ${translateValue}px, 0)` : `scale(${scaleValue}) translate3d(${translateValue}px, 0, 0)`,\n transition: 'none'\n }, true);\n }\n if (!snapPoints) {\n const translateValue = absDraggedDistance * directionMultiplier;\n set(drawerRef.current, {\n transform: isVertical(direction) ? `translate3d(0, ${translateValue}px, 0)` : `translate3d(${translateValue}px, 0, 0)`\n });\n }\n }\n }\n React__default.useEffect(()=>{\n window.requestAnimationFrame(()=>{\n shouldAnimate.current = true;\n });\n }, []);\n React__default.useEffect(()=>{\n var _window_visualViewport;\n function onVisualViewportChange() {\n if (!drawerRef.current || !repositionInputs) return;\n const focusedElement = document.activeElement;\n if (isInput(focusedElement) || keyboardIsOpen.current) {\n var _window_visualViewport;\n const visualViewportHeight = ((_window_visualViewport = window.visualViewport) == null ? void 0 : _window_visualViewport.height) || 0;\n const totalHeight = window.innerHeight;\n // This is the height of the keyboard\n let diffFromInitial = totalHeight - visualViewportHeight;\n const drawerHeight = drawerRef.current.getBoundingClientRect().height || 0;\n // Adjust drawer height only if it's tall enough\n const isTallEnough = drawerHeight > totalHeight * 0.8;\n if (!initialDrawerHeight.current) {\n initialDrawerHeight.current = drawerHeight;\n }\n const offsetFromTop = drawerRef.current.getBoundingClientRect().top;\n // visualViewport height may change due to somq e subtle changes to the keyboard. Checking if the height changed by 60 or more will make sure that they keyboard really changed its open state.\n if (Math.abs(previousDiffFromInitial.current - diffFromInitial) > 60) {\n keyboardIsOpen.current = !keyboardIsOpen.current;\n }\n if (snapPoints && snapPoints.length > 0 && snapPointsOffset && activeSnapPointIndex) {\n const activeSnapPointHeight = snapPointsOffset[activeSnapPointIndex] || 0;\n diffFromInitial += activeSnapPointHeight;\n }\n previousDiffFromInitial.current = diffFromInitial;\n // We don't have to change the height if the input is in view, when we are here we are in the opened keyboard state so we can correctly check if the input is in view\n if (drawerHeight > visualViewportHeight || keyboardIsOpen.current) {\n const height = drawerRef.current.getBoundingClientRect().height;\n let newDrawerHeight = height;\n if (height > visualViewportHeight) {\n newDrawerHeight = visualViewportHeight - (isTallEnough ? offsetFromTop : WINDOW_TOP_OFFSET);\n }\n // When fixed, don't move the drawer upwards if there's space, but rather only change it's height so it's fully scrollable when the keyboard is open\n if (fixed) {\n drawerRef.current.style.height = `${height - Math.max(diffFromInitial, 0)}px`;\n } else {\n drawerRef.current.style.height = `${Math.max(newDrawerHeight, visualViewportHeight - offsetFromTop)}px`;\n }\n } else if (!isMobileFirefox()) {\n drawerRef.current.style.height = `${initialDrawerHeight.current}px`;\n }\n if (snapPoints && snapPoints.length > 0 && !keyboardIsOpen.current) {\n drawerRef.current.style.bottom = `0px`;\n } else {\n // Negative bottom value would never make sense\n drawerRef.current.style.bottom = `${Math.max(diffFromInitial, 0)}px`;\n }\n }\n }\n (_window_visualViewport = window.visualViewport) == null ? void 0 : _window_visualViewport.addEventListener('resize', onVisualViewportChange);\n return ()=>{\n var _window_visualViewport;\n return (_window_visualViewport = window.visualViewport) == null ? void 0 : _window_visualViewport.removeEventListener('resize', onVisualViewportChange);\n };\n }, [\n activeSnapPointIndex,\n snapPoints,\n snapPointsOffset\n ]);\n function closeDrawer(fromWithin) {\n cancelDrag();\n onClose == null ? void 0 : onClose();\n if (!fromWithin) {\n setIsOpen(false);\n }\n setTimeout(()=>{\n if (snapPoints) {\n setActiveSnapPoint(snapPoints[0]);\n }\n }, TRANSITIONS.DURATION * 1000); // seconds to ms\n }\n function resetDrawer() {\n if (!drawerRef.current) return;\n const wrapper = document.querySelector('[data-vaul-drawer-wrapper]');\n const currentSwipeAmount = getTranslate(drawerRef.current, direction);\n set(drawerRef.current, {\n transform: 'translate3d(0, 0, 0)',\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`\n });\n set(overlayRef.current, {\n transition: `opacity ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n opacity: '1'\n });\n // Don't reset background if swiped upwards\n if (shouldScaleBackground && currentSwipeAmount && currentSwipeAmount > 0 && isOpen) {\n set(wrapper, {\n borderRadius: `${BORDER_RADIUS}px`,\n overflow: 'hidden',\n ...isVertical(direction) ? {\n transform: `scale(${getScale()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,\n transformOrigin: 'top'\n } : {\n transform: `scale(${getScale()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,\n transformOrigin: 'left'\n },\n transitionProperty: 'transform, border-radius',\n transitionDuration: `${TRANSITIONS.DURATION}s`,\n transitionTimingFunction: `cubic-bezier(${TRANSITIONS.EASE.join(',')})`\n }, true);\n }\n }\n function cancelDrag() {\n if (!isDragging || !drawerRef.current) return;\n drawerRef.current.classList.remove(DRAG_CLASS);\n isAllowedToDrag.current = false;\n setIsDragging(false);\n dragEndTime.current = new Date();\n }\n function onRelease(event) {\n if (!isDragging || !drawerRef.current) return;\n drawerRef.current.classList.remove(DRAG_CLASS);\n isAllowedToDrag.current = false;\n setIsDragging(false);\n dragEndTime.current = new Date();\n const swipeAmount = getTranslate(drawerRef.current, direction);\n if (!event || !shouldDrag(event.target, false) || !swipeAmount || Number.isNaN(swipeAmount)) return;\n if (dragStartTime.current === null) return;\n const timeTaken = dragEndTime.current.getTime() - dragStartTime.current.getTime();\n const distMoved = pointerStart.current - (isVertical(direction) ? event.pageY : event.pageX);\n const velocity = Math.abs(distMoved) / timeTaken;\n if (velocity > 0.05) {\n // `justReleased` is needed to prevent the drawer from focusing on an input when the drag ends, as it's not the intent most of the time.\n setJustReleased(true);\n setTimeout(()=>{\n setJustReleased(false);\n }, 200);\n }\n if (snapPoints) {\n const directionMultiplier = direction === 'bottom' || direction === 'right' ? 1 : -1;\n onReleaseSnapPoints({\n draggedDistance: distMoved * directionMultiplier,\n closeDrawer,\n velocity,\n dismissible\n });\n onReleaseProp == null ? void 0 : onReleaseProp(event, true);\n return;\n }\n // Moved upwards, don't do anything\n if (direction === 'bottom' || direction === 'right' ? distMoved > 0 : distMoved < 0) {\n resetDrawer();\n onReleaseProp == null ? void 0 : onReleaseProp(event, true);\n return;\n }\n if (velocity > VELOCITY_THRESHOLD) {\n closeDrawer();\n onReleaseProp == null ? void 0 : onReleaseProp(event, false);\n return;\n }\n var _drawerRef_current_getBoundingClientRect_height;\n const visibleDrawerHeight = Math.min((_drawerRef_current_getBoundingClientRect_height = drawerRef.current.getBoundingClientRect().height) != null ? _drawerRef_current_getBoundingClientRect_height : 0, window.innerHeight);\n var _drawerRef_current_getBoundingClientRect_width;\n const visibleDrawerWidth = Math.min((_drawerRef_current_getBoundingClientRect_width = drawerRef.current.getBoundingClientRect().width) != null ? _drawerRef_current_getBoundingClientRect_width : 0, window.innerWidth);\n const isHorizontalSwipe = direction === 'left' || direction === 'right';\n if (Math.abs(swipeAmount) >= (isHorizontalSwipe ? visibleDrawerWidth : visibleDrawerHeight) * closeThreshold) {\n closeDrawer();\n onReleaseProp == null ? void 0 : onReleaseProp(event, false);\n return;\n }\n onReleaseProp == null ? void 0 : onReleaseProp(event, true);\n resetDrawer();\n }\n React__default.useEffect(()=>{\n // Trigger enter animation without using CSS animation\n if (isOpen) {\n set(document.documentElement, {\n scrollBehavior: 'auto'\n });\n openTime.current = new Date();\n }\n return ()=>{\n reset(document.documentElement, 'scrollBehavior');\n };\n }, [\n isOpen\n ]);\n function onNestedOpenChange(o) {\n const scale = o ? (window.innerWidth - NESTED_DISPLACEMENT) / window.innerWidth : 1;\n const initialTranslate = o ? -NESTED_DISPLACEMENT : 0;\n if (nestedOpenChangeTimer.current) {\n window.clearTimeout(nestedOpenChangeTimer.current);\n }\n set(drawerRef.current, {\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n transform: isVertical(direction) ? `scale(${scale}) translate3d(0, ${initialTranslate}px, 0)` : `scale(${scale}) translate3d(${initialTranslate}px, 0, 0)`\n });\n if (!o && drawerRef.current) {\n nestedOpenChangeTimer.current = setTimeout(()=>{\n const translateValue = getTranslate(drawerRef.current, direction);\n set(drawerRef.current, {\n transition: 'none',\n transform: isVertical(direction) ? `translate3d(0, ${translateValue}px, 0)` : `translate3d(${translateValue}px, 0, 0)`\n });\n }, 500);\n }\n }\n function onNestedDrag(_event, percentageDragged) {\n if (percentageDragged < 0) return;\n const initialScale = (window.innerWidth - NESTED_DISPLACEMENT) / window.innerWidth;\n const newScale = initialScale + percentageDragged * (1 - initialScale);\n const newTranslate = -NESTED_DISPLACEMENT + percentageDragged * NESTED_DISPLACEMENT;\n set(drawerRef.current, {\n transform: isVertical(direction) ? `scale(${newScale}) translate3d(0, ${newTranslate}px, 0)` : `scale(${newScale}) translate3d(${newTranslate}px, 0, 0)`,\n transition: 'none'\n });\n }\n function onNestedRelease(_event, o) {\n const dim = isVertical(direction) ? window.innerHeight : window.innerWidth;\n const scale = o ? (dim - NESTED_DISPLACEMENT) / dim : 1;\n const translate = o ? -NESTED_DISPLACEMENT : 0;\n if (o) {\n set(drawerRef.current, {\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n transform: isVertical(direction) ? `scale(${scale}) translate3d(0, ${translate}px, 0)` : `scale(${scale}) translate3d(${translate}px, 0, 0)`\n });\n }\n }\n React__default.useEffect(()=>{\n if (!modal) {\n // Need to do this manually unfortunately\n window.requestAnimationFrame(()=>{\n document.body.style.pointerEvents = 'auto';\n });\n }\n }, [\n modal\n ]);\n return /*#__PURE__*/ React__default.createElement(DialogPrimitive.Root, {\n defaultOpen: defaultOpen,\n onOpenChange: (open)=>{\n if (!dismissible && !open) return;\n if (open) {\n setHasBeenOpened(true);\n } else {\n closeDrawer(true);\n }\n setIsOpen(open);\n },\n open: isOpen\n }, /*#__PURE__*/ React__default.createElement(DrawerContext.Provider, {\n value: {\n activeSnapPoint,\n snapPoints,\n setActiveSnapPoint,\n drawerRef,\n overlayRef,\n onOpenChange,\n onPress,\n onRelease,\n onDrag,\n dismissible,\n shouldAnimate,\n handleOnly,\n isOpen,\n isDragging,\n shouldFade,\n closeDrawer,\n onNestedDrag,\n onNestedOpenChange,\n onNestedRelease,\n keyboardIsOpen,\n modal,\n snapPointsOffset,\n activeSnapPointIndex,\n direction,\n shouldScaleBackground,\n setBackgroundColorOnScale,\n noBodyStyles,\n container,\n autoFocus\n }\n }, children));\n}\nconst Overlay = /*#__PURE__*/ React__default.forwardRef(function({ ...rest }, ref) {\n const { overlayRef, snapPoints, onRelease, shouldFade, isOpen, modal, shouldAnimate } = useDrawerContext();\n const composedRef = useComposedRefs(ref, overlayRef);\n const hasSnapPoints = snapPoints && snapPoints.length > 0;\n // Overlay is the component that is locking scroll, removing it will unlock the scroll without having to dig into Radix's Dialog library\n if (!modal) {\n return null;\n }\n const onMouseUp = React__default.useCallback((event)=>onRelease(event), [\n onRelease\n ]);\n return /*#__PURE__*/ React__default.createElement(DialogPrimitive.Overlay, {\n onMouseUp: onMouseUp,\n ref: composedRef,\n \"data-vaul-overlay\": \"\",\n \"data-vaul-snap-points\": isOpen && hasSnapPoints ? 'true' : 'false',\n \"data-vaul-snap-points-overlay\": isOpen && shouldFade ? 'true' : 'false',\n \"data-vaul-animate\": (shouldAnimate == null ? void 0 : shouldAnimate.current) ? 'true' : 'false',\n ...rest\n });\n});\nOverlay.displayName = 'Drawer.Overlay';\nconst Content = /*#__PURE__*/ React__default.forwardRef(function({ onPointerDownOutside, style, onOpenAutoFocus, ...rest }, ref) {\n const { drawerRef, onPress, onRelease, onDrag, keyboardIsOpen, snapPointsOffset, activeSnapPointIndex, modal, isOpen, direction, snapPoints, container, handleOnly, shouldAnimate, autoFocus } = useDrawerContext();\n // Needed to use transition instead of animations\n const [delayedSnapPoints, setDelayedSnapPoints] = React__default.useState(false);\n const composedRef = useComposedRefs(ref, drawerRef);\n const pointerStartRef = React__default.useRef(null);\n const lastKnownPointerEventRef = React__default.useRef(null);\n const wasBeyondThePointRef = React__default.useRef(false);\n const hasSnapPoints = snapPoints && snapPoints.length > 0;\n useScaleBackground();\n const isDeltaInDirection = (delta, direction, threshold = 0)=>{\n if (wasBeyondThePointRef.current) return true;\n const deltaY = Math.abs(delta.y);\n const deltaX = Math.abs(delta.x);\n const isDeltaX = deltaX > deltaY;\n const dFactor = [\n 'bottom',\n 'right'\n ].includes(direction) ? 1 : -1;\n if (direction === 'left' || direction === 'right') {\n const isReverseDirection = delta.x * dFactor < 0;\n if (!isReverseDirection && deltaX >= 0 && deltaX <= threshold) {\n return isDeltaX;\n }\n } else {\n const isReverseDirection = delta.y * dFactor < 0;\n if (!isReverseDirection && deltaY >= 0 && deltaY <= threshold) {\n return !isDeltaX;\n }\n }\n wasBeyondThePointRef.current = true;\n return true;\n };\n React__default.useEffect(()=>{\n if (hasSnapPoints) {\n window.requestAnimationFrame(()=>{\n setDelayedSnapPoints(true);\n });\n }\n }, []);\n function handleOnPointerUp(event) {\n pointerStartRef.current = null;\n wasBeyondThePointRef.current = false;\n onRelease(event);\n }\n return /*#__PURE__*/ React__default.createElement(DialogPrimitive.Content, {\n \"data-vaul-drawer-direction\": direction,\n \"data-vaul-drawer\": \"\",\n \"data-vaul-delayed-snap-points\": delayedSnapPoints ? 'true' : 'false',\n \"data-vaul-snap-points\": isOpen && hasSnapPoints ? 'true' : 'false',\n \"data-vaul-custom-container\": container ? 'true' : 'false',\n \"data-vaul-animate\": (shouldAnimate == null ? void 0 : shouldAnimate.current) ? 'true' : 'false',\n ...rest,\n ref: composedRef,\n style: snapPointsOffset && snapPointsOffset.length > 0 ? {\n '--snap-point-height': `${snapPointsOffset[activeSnapPointIndex != null ? activeSnapPointIndex : 0]}px`,\n ...style\n } : style,\n onPointerDown: (event)=>{\n if (handleOnly) return;\n rest.onPointerDown == null ? void 0 : rest.onPointerDown.call(rest, event);\n pointerStartRef.current = {\n x: event.pageX,\n y: event.pageY\n };\n onPress(event);\n },\n onOpenAutoFocus: (e)=>{\n onOpenAutoFocus == null ? void 0 : onOpenAutoFocus(e);\n if (!autoFocus) {\n e.preventDefault();\n }\n },\n onPointerDownOutside: (e)=>{\n onPointerDownOutside == null ? void 0 : onPointerDownOutside(e);\n if (!modal || e.defaultPrevented) {\n e.preventDefault();\n return;\n }\n if (keyboardIsOpen.current) {\n keyboardIsOpen.current = false;\n }\n },\n onFocusOutside: (e)=>{\n if (!modal) {\n e.preventDefault();\n return;\n }\n },\n onPointerMove: (event)=>{\n lastKnownPointerEventRef.current = event;\n if (handleOnly) return;\n rest.onPointerMove == null ? void 0 : rest.onPointerMove.call(rest, event);\n if (!pointerStartRef.current) return;\n const yPosition = event.pageY - pointerStartRef.current.y;\n const xPosition = event.pageX - pointerStartRef.current.x;\n const swipeStartThreshold = event.pointerType === 'touch' ? 10 : 2;\n const delta = {\n x: xPosition,\n y: yPosition\n };\n const isAllowedToSwipe = isDeltaInDirection(delta, direction, swipeStartThreshold);\n if (isAllowedToSwipe) onDrag(event);\n else if (Math.abs(xPosition) > swipeStartThreshold || Math.abs(yPosition) > swipeStartThreshold) {\n pointerStartRef.current = null;\n }\n },\n onPointerUp: (event)=>{\n rest.onPointerUp == null ? void 0 : rest.onPointerUp.call(rest, event);\n pointerStartRef.current = null;\n wasBeyondThePointRef.current = false;\n onRelease(event);\n },\n onPointerOut: (event)=>{\n rest.onPointerOut == null ? void 0 : rest.onPointerOut.call(rest, event);\n handleOnPointerUp(lastKnownPointerEventRef.current);\n },\n onContextMenu: (event)=>{\n rest.onContextMenu == null ? void 0 : rest.onContextMenu.call(rest, event);\n if (lastKnownPointerEventRef.current) {\n handleOnPointerUp(lastKnownPointerEventRef.current);\n }\n }\n });\n});\nContent.displayName = 'Drawer.Content';\nconst LONG_HANDLE_PRESS_TIMEOUT = 250;\nconst DOUBLE_TAP_TIMEOUT = 120;\nconst Handle = /*#__PURE__*/ React__default.forwardRef(function({ preventCycle = false, children, ...rest }, ref) {\n const { closeDrawer, isDragging, snapPoints, activeSnapPoint, setActiveSnapPoint, dismissible, handleOnly, isOpen, onPress, onDrag } = useDrawerContext();\n const closeTimeoutIdRef = React__default.useRef(null);\n const shouldCancelInteractionRef = React__default.useRef(false);\n function handleStartCycle() {\n // Stop if this is the second click of a double click\n if (shouldCancelInteractionRef.current) {\n handleCancelInteraction();\n return;\n }\n window.setTimeout(()=>{\n handleCycleSnapPoints();\n }, DOUBLE_TAP_TIMEOUT);\n }\n function handleCycleSnapPoints() {\n // Prevent accidental taps while resizing drawer\n if (isDragging || preventCycle || shouldCancelInteractionRef.current) {\n handleCancelInteraction();\n return;\n }\n // Make sure to clear the timeout id if the user releases the handle before the cancel timeout\n handleCancelInteraction();\n if (!snapPoints || snapPoints.length === 0) {\n if (!dismissible) {\n closeDrawer();\n }\n return;\n }\n const isLastSnapPoint = activeSnapPoint === snapPoints[snapPoints.length - 1];\n if (isLastSnapPoint && dismissible) {\n closeDrawer();\n return;\n }\n const currentSnapIndex = snapPoints.findIndex((point)=>point === activeSnapPoint);\n if (currentSnapIndex === -1) return; // activeSnapPoint not found in snapPoints\n const nextSnapPoint = snapPoints[currentSnapIndex + 1];\n setActiveSnapPoint(nextSnapPoint);\n }\n function handleStartInteraction() {\n closeTimeoutIdRef.current = window.setTimeout(()=>{\n // Cancel click interaction on a long press\n shouldCancelInteractionRef.current = true;\n }, LONG_HANDLE_PRESS_TIMEOUT);\n }\n function handleCancelInteraction() {\n if (closeTimeoutIdRef.current) {\n window.clearTimeout(closeTimeoutIdRef.current);\n }\n shouldCancelInteractionRef.current = false;\n }\n return /*#__PURE__*/ React__default.createElement(\"div\", {\n onClick: handleStartCycle,\n onPointerCancel: handleCancelInteraction,\n onPointerDown: (e)=>{\n if (handleOnly) onPress(e);\n handleStartInteraction();\n },\n onPointerMove: (e)=>{\n if (handleOnly) onDrag(e);\n },\n // onPointerUp is already handled by the content component\n ref: ref,\n \"data-vaul-drawer-visible\": isOpen ? 'true' : 'false',\n \"data-vaul-handle\": \"\",\n \"aria-hidden\": \"true\",\n ...rest\n }, /*#__PURE__*/ React__default.createElement(\"span\", {\n \"data-vaul-handle-hitarea\": \"\",\n \"aria-hidden\": \"true\"\n }, children));\n});\nHandle.displayName = 'Drawer.Handle';\nfunction NestedRoot({ onDrag, onOpenChange, open: nestedIsOpen, ...rest }) {\n const { onNestedDrag, onNestedOpenChange, onNestedRelease } = useDrawerContext();\n if (!onNestedDrag) {\n throw new Error('Drawer.NestedRoot must be placed in another drawer');\n }\n return /*#__PURE__*/ React__default.createElement(Root, {\n nested: true,\n open: nestedIsOpen,\n onClose: ()=>{\n onNestedOpenChange(false);\n },\n onDrag: (e, p)=>{\n onNestedDrag(e, p);\n onDrag == null ? void 0 : onDrag(e, p);\n },\n onOpenChange: (o)=>{\n if (o) {\n onNestedOpenChange(o);\n }\n onOpenChange == null ? void 0 : onOpenChange(o);\n },\n onRelease: onNestedRelease,\n ...rest\n });\n}\nfunction Portal(props) {\n const context = useDrawerContext();\n const { container = context.container, ...portalProps } = props;\n return /*#__PURE__*/ React__default.createElement(DialogPrimitive.Portal, {\n container: container,\n ...portalProps\n });\n}\nconst Drawer = {\n Root,\n NestedRoot,\n Content,\n Overlay,\n Trigger: DialogPrimitive.Trigger,\n Portal,\n Handle,\n Close: DialogPrimitive.Close,\n Title: DialogPrimitive.Title,\n Description: DialogPrimitive.Description\n};\n\nexport { Content, Drawer, Handle, NestedRoot, Overlay, Portal, Root };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport { cn } from \"../utils/cn\";\n\nfunction Drawer({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />;\n}\n\nfunction DrawerTrigger({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />;\n}\n\nfunction DrawerPortal({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />;\n}\n\nfunction DrawerClose({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />;\n}\n\nfunction DrawerOverlay({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n data-slot=\"drawer-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerContent({ className, children, ...props }: React.ComponentProps<typeof DrawerPrimitive.Content>) {\n return (\n <DrawerPortal data-slot=\"drawer-portal\">\n <DrawerOverlay />\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n \"group/drawer-content bg-background fixed z-50 flex h-auto flex-col\",\n \"data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b\",\n \"data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg\",\n \"data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm\",\n \"data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm\",\n className\n )}\n {...props}\n >\n <div className=\"bg-muted mx-auto my-2.5 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n );\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n \"flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"drawer-footer\" className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)} {...props} />;\n}\n\nfunction DrawerTitle({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return <DrawerPrimitive.Title data-slot=\"drawer-title\" className={cn(\"text-foreground font-semibold\", className)} {...props} />;\n}\n\nfunction DrawerDescription({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return <DrawerPrimitive.Description data-slot=\"drawer-description\" className={cn(\"text-muted-foreground text-sm\", className)} {...props} />;\n}\n\nexport {\n Drawer, DrawerPortal, DrawerOverlay, DrawerTrigger, DrawerClose,\n DrawerContent, DrawerHeader, DrawerFooter, DrawerTitle, DrawerDescription,\n};\n","\"use client\";\n\nimport React, { ReactNode, useEffect, useState } from \"react\";\nimport { X, LayoutGrid } from \"lucide-react\";\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n DialogDescription,\n} from \"../ui/dialog\";\nimport {\n Drawer,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n DrawerDescription,\n DrawerClose,\n} from \"../ui/drawer\";\nimport { cn } from \"../utils/cn\";\n\n// ---------------------------------------------------------------------------\n// useIsMobile — inline hook (no external dependency)\n// ---------------------------------------------------------------------------\nconst MOBILE_BREAKPOINT = 768;\n\nfunction useIsMobile(): boolean {\n const [isMobile, setIsMobile] = useState<boolean | undefined>(undefined);\n\n useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => setIsMobile(mql.matches);\n mql.addEventListener(\"change\", onChange);\n setIsMobile(mql.matches);\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return !!isMobile;\n}\n\n// ---------------------------------------------------------------------------\n// CustomModal props\n// ---------------------------------------------------------------------------\nexport interface CustomModalProps {\n title: string;\n children: ReactNode | ((closeModal: () => void) => ReactNode);\n\n trigger?: ReactNode;\n triggerAsChild?: boolean;\n description?: string;\n\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n\n className?: string;\n contentClassName?: string;\n\n showModalHeader?: boolean;\n showModalDescription?: boolean;\n /** Override the default icon shown in the modal header */\n customIcon?: ReactNode;\n\n footer?: ReactNode;\n}\n\n// ---------------------------------------------------------------------------\n// CustomModal component\n// ---------------------------------------------------------------------------\nconst CustomModal: React.FC<CustomModalProps> = ({\n title,\n children,\n description,\n trigger,\n triggerAsChild = false,\n open,\n onOpenChange,\n className,\n contentClassName,\n showModalHeader = true,\n showModalDescription = false,\n customIcon,\n footer,\n}) => {\n const isMobile = useIsMobile();\n\n // Controlled vs uncontrolled\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = open !== undefined;\n const dialogOpen = isControlled ? open : internalOpen;\n\n const closeModal = () => {\n if (isControlled) {\n onOpenChange?.(false);\n } else {\n setInternalOpen(false);\n }\n };\n\n const handleOpenChange = (newOpen: boolean) => {\n if (isControlled) {\n onOpenChange?.(newOpen);\n } else {\n setInternalOpen(newOpen);\n }\n };\n\n const DefaultIcon = (\n <LayoutGrid size={20} className=\"text-primary-600\" aria-hidden=\"true\" />\n );\n\n // ── Mobile: Drawer ──────────────────────────────────────────────────────\n if (isMobile) {\n return (\n <Drawer open={dialogOpen} onOpenChange={handleOpenChange}>\n {trigger && (\n <DrawerTrigger asChild={triggerAsChild}>{trigger}</DrawerTrigger>\n )}\n <DrawerContent\n className={cn(\n \"w-full max-h-[95vh] overflow-hidden rounded-t-xl px-0 pb-6 space-y-4\",\n className\n )}\n >\n {showModalHeader ? (\n <DrawerHeader className=\"flex flex-row items-center justify-between px-4 py-0 md:px-8\">\n <div className=\"flex items-center gap-x-3\">\n <div className=\"size-11 shrink-0 rounded-full bg-primary-50 flex items-center justify-center\">\n {customIcon ?? DefaultIcon}\n </div>\n\n <div>\n <DrawerTitle className=\"text-[20px] font-semibold text-primary-600 font-onest line-clamp-1\">\n {title}\n </DrawerTitle>\n <DrawerDescription\n className={\n showModalDescription ? \"-mt-0.5 text-left\" : \"hidden\"\n }\n >\n {description || \"Modal description\"}\n </DrawerDescription>\n </div>\n </div>\n\n <DrawerClose asChild>\n <button\n className=\"size-10 shrink-0 rounded-full text-neutral-400 hover:bg-primary-50 hover:text-primary-600 transition-colors cursor-pointer flex items-center justify-center outline-none\"\n aria-label=\"Close\"\n >\n <X size={20} aria-hidden=\"true\" />\n </button>\n </DrawerClose>\n </DrawerHeader>\n ) : (\n <DrawerTitle className=\"hidden\">{title}</DrawerTitle>\n )}\n\n {typeof children === \"function\" ? (\n children(closeModal)\n ) : (\n <div\n className={cn(\n \"max-h-[70vh] overflow-y-auto px-4 md:px-8 pb-4 no-scrollbar\",\n contentClassName\n )}\n >\n {children}\n </div>\n )}\n\n {footer}\n </DrawerContent>\n </Drawer>\n );\n }\n\n // ── Desktop: Dialog ──────────────────────────────────────────────────────\n return (\n <Dialog open={dialogOpen} onOpenChange={handleOpenChange}>\n {trigger && (\n <DialogTrigger asChild={triggerAsChild}>{trigger}</DialogTrigger>\n )}\n <DialogContent\n className={cn(\n \"w-full max-w-2xl min-h-64 max-h-[80vh] overflow-hidden rounded-xl px-0\",\n className\n )}\n showCloseButton={false}\n >\n {showModalHeader ? (\n <DialogHeader className=\"flex flex-row items-center justify-between px-4 md:px-8 h-14\">\n <div className=\"flex items-center gap-x-3\">\n <div className=\"size-12 rounded-full bg-primary-50 flex items-center justify-center\">\n {customIcon ?? (\n <LayoutGrid\n size={26}\n className=\"text-primary-600\"\n aria-hidden=\"true\"\n />\n )}\n </div>\n\n <div>\n <DialogTitle className=\"text-[22px] font-semibold text-primary-600 font-onest line-clamp-1\">\n {title}\n </DialogTitle>\n <DialogDescription\n className={\n showModalDescription ? \"-mt-0.5 text-left\" : \"hidden\"\n }\n >\n {description || \"Modal description\"}\n </DialogDescription>\n </div>\n </div>\n\n <button\n onClick={closeModal}\n className=\"size-10 rounded-full text-neutral-400 hover:bg-primary-50 hover:text-primary-600 transition-colors cursor-pointer flex items-center justify-center outline-none\"\n aria-label=\"Close\"\n >\n <X size={20} aria-hidden=\"true\" />\n </button>\n </DialogHeader>\n ) : (\n <DialogTitle className=\"hidden\">{title}</DialogTitle>\n )}\n\n {typeof children === \"function\" ? (\n children(closeModal)\n ) : (\n <div\n className={cn(\n \"max-h-[70vh] overflow-y-auto px-4 md:px-8 pb-4 no-scrollbar\",\n contentClassName\n )}\n >\n {children}\n </div>\n )}\n\n {footer}\n </DialogContent>\n </Dialog>\n );\n};\n\nexport { CustomModal, useIsMobile };\n","import * as React from 'react';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\n\ndeclare module 'react' {\n interface ReactElement {\n $$typeof?: symbol | string;\n }\n}\n\nconst REACT_LAZY_TYPE = Symbol.for('react.lazy');\n\ninterface LazyReactElement extends React.ReactElement {\n $$typeof: typeof REACT_LAZY_TYPE;\n _payload: PromiseLike<Exclude<React.ReactNode, PromiseLike<any>>>;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/\n\nexport type Usable<T> = PromiseLike<T> | React.Context<T>;\nconst use: typeof React.use | undefined = (React as any)[' use '.trim().toString()];\n\ninterface SlotProps extends React.HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n}\n\nfunction isPromiseLike(value: unknown): value is PromiseLike<unknown> {\n return typeof value === 'object' && value !== null && 'then' in value;\n}\n\nfunction isLazyComponent(element: React.ReactNode): element is LazyReactElement {\n return (\n element != null &&\n typeof element === 'object' &&\n '$$typeof' in element &&\n element.$$typeof === REACT_LAZY_TYPE &&\n '_payload' in element &&\n isPromiseLike(element._payload)\n );\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlot(ownerName: string) {\n const SlotClone = createSlotClone(ownerName);\n const Slot = React.forwardRef<HTMLElement, SlotProps>((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === 'function') {\n children = use(children._payload);\n }\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n\n if (slottable) {\n // the new element to render is the one passed as a child of `Slottable`\n const newElement = slottable.props.children;\n\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n // because the new element will be the one rendered, we are only interested\n // in grabbing its children (`newElement.props.children`)\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement)\n ? (newElement.props as { children: React.ReactNode }).children\n : null;\n } else {\n return child;\n }\n });\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {React.isValidElement(newElement)\n ? React.cloneElement(newElement, undefined, newChildren)\n : null}\n </SlotClone>\n );\n }\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {children}\n </SlotClone>\n );\n });\n\n Slot.displayName = `${ownerName}.Slot`;\n return Slot;\n}\n\nconst Slot = createSlot('Slot');\n\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotCloneProps {\n children: React.ReactNode;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ function createSlotClone(ownerName: string) {\n const SlotClone = React.forwardRef<any, SlotCloneProps>((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === 'function') {\n children = use(children._payload);\n }\n\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props = mergeProps(slotProps, children.props as AnyProps);\n // do not pass ref to React.Fragment for React 19 compatibility\n if (children.type !== React.Fragment) {\n props.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props);\n }\n\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLOTTABLE_IDENTIFIER = Symbol('radix.slottable');\n\ninterface SlottableProps {\n children: React.ReactNode;\n}\n\ninterface SlottableComponent extends React.FC<SlottableProps> {\n __radixId: symbol;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlottable(ownerName: string) {\n const Slottable: SlottableComponent = ({ children }) => {\n return <>{children}</>;\n };\n Slottable.displayName = `${ownerName}.Slottable`;\n Slottable.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable;\n}\n\nconst Slottable = createSlottable('Slottable');\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype AnyProps = Record<string, any>;\n\nfunction isSlottable(\n child: React.ReactNode,\n): child is React.ReactElement<SlottableProps, typeof Slottable> {\n return (\n React.isValidElement(child) &&\n typeof child.type === 'function' &&\n '__radixId' in child.type &&\n child.type.__radixId === SLOTTABLE_IDENTIFIER\n );\n}\n\nfunction mergeProps(slotProps: AnyProps, childProps: AnyProps) {\n // all child props should override\n const overrideProps = { ...childProps };\n\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n // if the handler exists on both, we compose them\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args: unknown[]) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n }\n // but if it exists only on the slot, we use only this one\n else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n }\n // if it's `style`, we merge them\n else if (propName === 'style') {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === 'className') {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(' ');\n }\n }\n\n return { ...slotProps, ...overrideProps };\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get;\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element as any).ref;\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get;\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element.props as { ref?: React.Ref<unknown> }).ref;\n }\n\n // Not DEV\n return (element.props as { ref?: React.Ref<unknown> }).ref || (element as any).ref;\n}\n\nexport {\n Slot,\n Slottable,\n //\n Slot as Root,\n};\nexport type { SlotProps };\n","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../utils/cn\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-90 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer\",\n {\n variants: {\n variant: {\n default: \"bg-primary-500 text-primary-foreground shadow-xs hover:bg-primary-700\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border border-primary-500 text-primary-500 bg-background shadow-xs hover:bg-primary-50/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary: \"bg-primary-50 text-primary-500 shadow-xs hover:bg-secondary/80\",\n ghost: \"hover:bg-primary-50/50 text-primary-500\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-12 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-12 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: { variant: \"default\", size: \"default\" },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp data-slot=\"button\" className={cn(buttonVariants({ variant, size, className }))} {...props} />\n );\n}\n\nexport { Button, buttonVariants };\n","\"use client\";\n\nimport React from \"react\";\nimport { Button } from \"../ui/button\";\n\ntype BackButtonProps = {\n onClick?: () => void;\n};\n\nconst BackButton = ({ onClick }: BackButtonProps) => {\n return (\n <Button\n onClick={onClick || (() => window.history.back())}\n variant=\"default\"\n className=\"text-[15px] font-medium font-onest min-w-[9rem] h-12\"\n >\n Go Back\n </Button>\n );\n};\n\nexport { BackButton };\n","\"use client\";import*as t from\"react\";var M=(e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=[\"light\",\"dark\"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y===\"class\",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia(\"(prefers-color-scheme: dark)\").matches?\"dark\":\"light\"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n===\"system\"?c():n;p(y)}catch(n){}};var b=[\"light\",\"dark\"],I=\"(prefers-color-scheme: dark)\",O=typeof window==\"undefined\",x=t.createContext(void 0),U={setTheme:e=>{},themes:[]},z=()=>{var e;return(e=t.useContext(x))!=null?e:U},J=e=>t.useContext(x)?t.createElement(t.Fragment,null,e.children):t.createElement(V,{...e}),N=[\"light\",\"dark\"],V=({forcedTheme:e,disableTransitionOnChange:i=!1,enableSystem:s=!0,enableColorScheme:u=!0,storageKey:m=\"theme\",themes:a=N,defaultTheme:l=s?\"system\":\"light\",attribute:h=\"data-theme\",value:d,children:w,nonce:p,scriptProps:R})=>{let[c,n]=t.useState(()=>H(m,l)),[T,y]=t.useState(()=>c===\"system\"?E():c),k=d?Object.values(d):a,S=t.useCallback(o=>{let r=o;if(!r)return;o===\"system\"&&s&&(r=E());let v=d?d[r]:r,C=i?W(p):null,P=document.documentElement,L=g=>{g===\"class\"?(P.classList.remove(...k),v&&P.classList.add(v)):g.startsWith(\"data-\")&&(v?P.setAttribute(g,v):P.removeAttribute(g))};if(Array.isArray(h)?h.forEach(L):L(h),u){let g=b.includes(l)?l:null,D=b.includes(r)?r:g;P.style.colorScheme=D}C==null||C()},[p]),f=t.useCallback(o=>{let r=typeof o==\"function\"?o(c):o;n(r);try{localStorage.setItem(m,r)}catch(v){}},[c]),A=t.useCallback(o=>{let r=E(o);y(r),c===\"system\"&&s&&!e&&S(\"system\")},[c,e]);t.useEffect(()=>{let o=window.matchMedia(I);return o.addListener(A),A(o),()=>o.removeListener(A)},[A]),t.useEffect(()=>{let o=r=>{r.key===m&&(r.newValue?n(r.newValue):f(l))};return window.addEventListener(\"storage\",o),()=>window.removeEventListener(\"storage\",o)},[f]),t.useEffect(()=>{S(e!=null?e:c)},[e,c]);let Q=t.useMemo(()=>({theme:c,setTheme:f,forcedTheme:e,resolvedTheme:c===\"system\"?T:c,themes:s?[...a,\"system\"]:a,systemTheme:s?T:void 0}),[c,f,e,T,s,a]);return t.createElement(x.Provider,{value:Q},t.createElement(_,{forcedTheme:e,storageKey:m,attribute:h,enableSystem:s,enableColorScheme:u,defaultTheme:l,value:d,themes:a,nonce:p,scriptProps:R}),w)},_=t.memo(({forcedTheme:e,storageKey:i,attribute:s,enableSystem:u,enableColorScheme:m,defaultTheme:a,value:l,themes:h,nonce:d,scriptProps:w})=>{let p=JSON.stringify([s,i,a,e,h,l,u,m]).slice(1,-1);return t.createElement(\"script\",{...w,suppressHydrationWarning:!0,nonce:typeof window==\"undefined\"?d:\"\",dangerouslySetInnerHTML:{__html:`(${M.toString()})(${p})`}})}),H=(e,i)=>{if(O)return;let s;try{s=localStorage.getItem(e)||void 0}catch(u){}return s||i},W=e=>{let i=document.createElement(\"style\");return e&&i.setAttribute(\"nonce\",e),i.appendChild(document.createTextNode(\"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\")),document.head.appendChild(i),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(i)},1)}},E=e=>(e||(e=window.matchMedia(I)),e.matches?\"dark\":\"light\");export{J as ThemeProvider,z as useTheme};\n","// @ts-nocheck\n\"use client\";\n\nimport React from \"react\";\nimport { useTheme } from \"next-themes\";\nimport { Sun, Moon } from \"lucide-react\";\nimport { Button } from \"../ui/button\";\n\ninterface ThemeSwitcherProps {\n variant?: \"default\" | \"outline\" | \"ghost\" | \"secondary\";\n size?: \"default\" | \"sm\" | \"lg\" | \"icon\";\n className?: string;\n}\n\nconst ThemeSwitcher = ({\n variant = \"ghost\",\n size = \"lg\",\n className = \"\",\n}: ThemeSwitcherProps) => {\n const { setTheme, resolvedTheme } = useTheme();\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n setMounted(true);\n }, []);\n\n const toggleTheme = () => {\n setTheme(resolvedTheme === \"dark\" ? \"light\" : \"dark\");\n };\n\n if (!mounted) {\n return (\n <Button variant={variant} size={size} className={className}>\n <Sun size={18} aria-hidden=\"true\" />\n <span className=\"sr-only\">Toggle theme</span>\n </Button>\n );\n }\n\n const isDark = resolvedTheme === \"dark\";\n\n return (\n <Button\n variant={variant}\n size={size}\n className={`${className} relative`}\n onClick={toggleTheme}\n >\n {isDark ? (\n <Sun size={24} color=\"#4cbc13\" aria-hidden=\"true\" />\n ) : (\n <Moon size={24} color=\"#4cbc13\" aria-hidden=\"true\" />\n )}\n <span className=\"sr-only\">Toggle theme</span>\n </Button>\n );\n};\n\nexport { ThemeSwitcher };\n","// @ts-nocheck\nimport React from \"react\";\nimport Image from \"next/image\";\nimport Link from \"next/link\";\nimport { UserCircle } from \"lucide-react\";\nimport { cn } from \"../utils/cn\";\n\ntype ProfileImageProps = {\n /** Render the avatar wrapped in a next/link */\n asLink?: boolean;\n /** Avatar diameter in px */\n size?: number;\n className?: string;\n /** Full URL to the profile picture */\n profilePicUrl?: string;\n /** Show a verified badge indicator */\n isVerified?: boolean;\n /** Show an online presence indicator */\n isOnline?: boolean;\n isOverflowHidden?: boolean;\n /** href for the link when asLink=true (defaults to \"/profile/{userId}\") */\n link?: string;\n /** Used for the image alt text */\n userName?: string;\n /** Used to build the default link (/profile/{userId}) */\n userId?: string;\n};\n\nconst ProfileImage = ({\n asLink = false,\n size = 40,\n profilePicUrl,\n isVerified = false,\n isOnline = false,\n isOverflowHidden = true,\n className = \"\",\n link,\n userName = \"User\",\n userId,\n}: ProfileImageProps) => {\n const ImageComponent = profilePicUrl ? (\n <Image\n src={profilePicUrl}\n alt={userName}\n fill\n priority\n sizes={`${size}px`}\n className=\"rounded-full object-cover h-full w-full\"\n />\n ) : (\n <UserCircle\n size={size ? size / 2 : 20}\n color=\"#4cbc13\"\n aria-hidden=\"true\"\n />\n );\n\n const ProfileContent = (\n <div\n className=\"relative w-full h-full flex items-center justify-center\"\n style={{ width: size, height: size }}\n >\n {ImageComponent}\n\n {/* Verified badge */}\n {isVerified && (\n <div\n className=\"absolute -top-0.5 -right-0.5 bg-primary-500 border-2 border-white rounded-full\"\n style={{ width: 14, height: 14 }}\n />\n )}\n\n {/* Online indicator */}\n {isOnline && (\n <div\n className=\"absolute bottom-0 right-0 bg-green-500 border-2 border-white rounded-full\"\n style={{\n width: size * 0.25,\n height: size * 0.25,\n minWidth: \"10px\",\n minHeight: \"10px\",\n }}\n />\n )}\n </div>\n );\n\n return (\n <div\n className={cn(\n \"relative rounded-full flex items-center justify-center\",\n profilePicUrl ? \"bg-primary-50\" : \"bg-neutral-50\",\n isOverflowHidden && \"overflow-hidden\",\n className\n )}\n style={{ height: size, width: size }}\n >\n {asLink ? (\n <Link\n href={link || (userId ? `/profile/${userId}` : \"#\")}\n className=\"block w-full h-full\"\n >\n {ProfileContent}\n </Link>\n ) : (\n <div>{ProfileContent}</div>\n )}\n </div>\n );\n};\n\nexport { ProfileImage };\n","import * as React from \"react\";\nimport { cn } from \"../utils/cn\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:text-foreground placeholder:text-neutral-200/70 selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-neutral-100/60 flex h-12 w-full min-w-0 rounded-md border-[1px] bg-transparent px-3 py-1 text-base transition-[color,box-shadow] outline-none file:hidden disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-base cursor-pointer font-golos\",\n \"focus-visible:border-primary-600\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createSlot } from '@radix-ui/react-slot';\n\nconst NODES = [\n 'a',\n 'button',\n 'div',\n 'form',\n 'h2',\n 'h3',\n 'img',\n 'input',\n 'label',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'select',\n 'span',\n 'svg',\n 'ul',\n] as const;\n\ntype Primitives = { [E in (typeof NODES)[number]]: PrimitiveForwardRefComponent<E> };\ntype PrimitivePropsWithRef<E extends React.ElementType> = React.ComponentPropsWithRef<E> & {\n asChild?: boolean;\n};\n\ninterface PrimitiveForwardRefComponent<E extends React.ElementType>\n extends React.ForwardRefExoticComponent<PrimitivePropsWithRef<E>> {}\n\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/\n\nconst Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props: PrimitivePropsWithRef<typeof node>, forwardedRef: any) => {\n const { asChild, ...primitiveProps } = props;\n const Comp: any = asChild ? Slot : node;\n\n if (typeof window !== 'undefined') {\n (window as any)[Symbol.for('radix-ui')] = true;\n }\n\n return <Comp {...primitiveProps} ref={forwardedRef} />;\n });\n\n Node.displayName = `Primitive.${node}`;\n\n return { ...primitive, [node]: Node };\n}, {} as Primitives);\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not necessary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */\n\nfunction dispatchDiscreteCustomEvent<E extends CustomEvent>(target: E['target'], event: E) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Primitive;\n\nexport {\n Primitive,\n //\n Root,\n //\n dispatchDiscreteCustomEvent,\n};\nexport type { PrimitivePropsWithRef };\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * Label\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAME = 'Label';\n\ntype LabelElement = React.ComponentRef<typeof Primitive.label>;\ntype PrimitiveLabelProps = React.ComponentPropsWithoutRef<typeof Primitive.label>;\ninterface LabelProps extends PrimitiveLabelProps {}\n\nconst Label = React.forwardRef<LabelElement, LabelProps>((props, forwardedRef) => {\n return (\n <Primitive.label\n {...props}\n ref={forwardedRef}\n onMouseDown={(event) => {\n // only prevent text selection if clicking inside the label itself\n const target = event.target as HTMLElement;\n if (target.closest('button, input, select, textarea')) return;\n\n props.onMouseDown?.(event);\n // prevent text selection when double clicking label\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }}\n />\n );\n});\n\nLabel.displayName = NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Label;\n\nexport {\n Label,\n //\n Root,\n};\nexport type { LabelProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cn } from \"../utils/cn\";\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-[14px] leading-none font-normal font-onest text-neutral-400 pl-1 select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","\"use client\";\n\nimport React, { useState, useEffect, useRef, useMemo } from \"react\";\nimport { ChevronDown, Check, Search } from \"lucide-react\";\nimport { Button } from \"../ui/button\";\nimport { Input } from \"../ui/input\";\nimport { Label } from \"../ui/label\";\nimport { cn } from \"../utils/cn\";\n\n// ---------------------------------------------------------------------------\n// Country type — consumers provide their own data\n// ---------------------------------------------------------------------------\nexport interface Country {\n countryCode: string;\n countryName: string;\n /** Optional — phone dial code, e.g. \"+1\" */\n dialCode?: string;\n /** Optional — emoji flag */\n flag?: string;\n}\n\nexport interface CountrySelectorProps {\n /** Array of country objects to display */\n countries: Country[];\n value?: string;\n onChange?: (countryCode: string) => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setValue?: (field: string, value: any) => void;\n fieldName?: string;\n placeholder?: string;\n error?: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n className?: string;\n}\n\nconst CountrySelector: React.FC<CountrySelectorProps> = ({\n countries: rawCountries,\n value,\n onChange,\n setValue,\n fieldName = \"\",\n placeholder = \"Select a country\",\n error,\n label = \"Country\",\n required = false,\n disabled = false,\n className = \"\",\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [selectedCountry, setSelectedCountry] = useState<Country | null>(null);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const ref = useRef<HTMLDivElement>(null);\n\n // Deduplicate by countryCode\n const countries = useMemo(() => {\n const unique = rawCountries.filter(\n (c, idx, self) =>\n idx === self.findIndex((x) => x.countryCode === c.countryCode)\n );\n if (!searchTerm.trim()) return unique;\n return unique.filter((c) =>\n c.countryName.toLowerCase().includes(searchTerm.toLowerCase())\n );\n }, [rawCountries, searchTerm]);\n\n // Sync external value\n useEffect(() => {\n if (value) {\n const found = countries.find((c) => c.countryCode === value);\n setSelectedCountry(found || null);\n }\n }, [value, countries]);\n\n // Close on outside click\n useEffect(() => {\n if (!isOpen) return;\n const handleClickOutside = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setIsOpen(false);\n }\n };\n // Small delay to prevent immediate close on mobile\n const timer = setTimeout(() => {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }, 0);\n return () => {\n clearTimeout(timer);\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [isOpen]);\n\n const handleCountrySelect = (country: Country) => {\n setSelectedCountry(country);\n if (setValue && fieldName) setValue(fieldName, country.countryCode);\n onChange?.(country.countryCode);\n setSearchTerm(\"\");\n setIsOpen(false);\n };\n\n return (\n <div className={cn(\"relative w-full\", className)} ref={ref}>\n {label && (\n <Label htmlFor={fieldName} className=\"mb-2 block text-sm font-medium\">\n {label}\n {required && <span className=\"text-red-500 ml-1\">*</span>}\n </Label>\n )}\n\n <div className=\"relative\">\n <Button\n type=\"button\"\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={isOpen}\n disabled={disabled}\n className=\"w-full justify-between h-11 font-normal\"\n onClick={() => {\n if (disabled) return;\n setIsOpen((prev) => !prev);\n if (isOpen) setSearchTerm(\"\");\n }}\n >\n {selectedCountry ? (\n <span className=\"truncate text-black\">\n {selectedCountry.flag\n ? `${selectedCountry.flag} ${selectedCountry.countryName}`\n : selectedCountry.countryName}\n </span>\n ) : (\n <span className=\"text-neutral-200/70\">{placeholder}</span>\n )}\n <ChevronDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n\n {isOpen && (\n <div className=\"absolute z-50 w-full mt-1 bg-white border border-gray-200 rounded-md shadow-lg max-h-72 overflow-hidden\">\n {/* Search */}\n <div className=\"relative border-b\">\n <Search className=\"absolute left-4 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400\" />\n <Input\n type=\"text\"\n placeholder=\"Search countries...\"\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n className=\"pl-10 h-11\"\n autoFocus\n />\n </div>\n\n {/* List */}\n <div className=\"overflow-y-auto max-h-60\">\n {countries.length === 0 ? (\n <div className=\"py-6 text-center text-sm text-gray-500\">\n No countries found\n </div>\n ) : (\n countries.map((country, index) => (\n <div\n key={`${country.countryCode}-${index}`}\n className=\"relative flex items-center justify-between px-4 py-3 cursor-pointer hover:bg-gray-100 transition-colors\"\n onMouseDown={(e) => {\n e.preventDefault();\n handleCountrySelect(country);\n }}\n >\n <span className=\"text-sm\">\n {country.flag\n ? `${country.flag} ${country.countryName}`\n : country.countryName}\n </span>\n {selectedCountry?.countryCode === country.countryCode && (\n <Check className=\"h-4 w-4 text-primary-500\" />\n )}\n </div>\n ))\n )}\n </div>\n </div>\n )}\n </div>\n\n {error && <p className=\"mt-1 text-sm text-red-500\">{error}</p>}\n </div>\n );\n};\n\nexport { CountrySelector };\n"]}
|