@emekaugbanu/trigr 0.4.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.
Files changed (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +384 -0
  3. package/dist/animations-DhYFMdig.d.mts +63 -0
  4. package/dist/animations-DhYFMdig.d.ts +63 -0
  5. package/dist/block/animations.cjs +2 -0
  6. package/dist/block/animations.cjs.map +1 -0
  7. package/dist/block/animations.d.mts +13 -0
  8. package/dist/block/animations.d.ts +13 -0
  9. package/dist/block/animations.js +2 -0
  10. package/dist/block/animations.js.map +1 -0
  11. package/dist/block/index.cjs +11 -0
  12. package/dist/block/index.cjs.map +1 -0
  13. package/dist/block/index.d.mts +22 -0
  14. package/dist/block/index.d.ts +22 -0
  15. package/dist/block/index.js +11 -0
  16. package/dist/block/index.js.map +1 -0
  17. package/dist/list/animations.cjs +2 -0
  18. package/dist/list/animations.cjs.map +1 -0
  19. package/dist/list/animations.d.mts +13 -0
  20. package/dist/list/animations.d.ts +13 -0
  21. package/dist/list/animations.js +2 -0
  22. package/dist/list/animations.js.map +1 -0
  23. package/dist/list/index.cjs +2 -0
  24. package/dist/list/index.cjs.map +1 -0
  25. package/dist/list/index.d.mts +10 -0
  26. package/dist/list/index.d.ts +10 -0
  27. package/dist/list/index.js +2 -0
  28. package/dist/list/index.js.map +1 -0
  29. package/dist/paragraph/animations.cjs +2 -0
  30. package/dist/paragraph/animations.cjs.map +1 -0
  31. package/dist/paragraph/animations.d.mts +2 -0
  32. package/dist/paragraph/animations.d.ts +2 -0
  33. package/dist/paragraph/animations.js +2 -0
  34. package/dist/paragraph/animations.js.map +1 -0
  35. package/dist/paragraph/index.cjs +3 -0
  36. package/dist/paragraph/index.cjs.map +1 -0
  37. package/dist/paragraph/index.d.mts +10 -0
  38. package/dist/paragraph/index.d.ts +10 -0
  39. package/dist/paragraph/index.js +3 -0
  40. package/dist/paragraph/index.js.map +1 -0
  41. package/dist/text/animations.cjs +2 -0
  42. package/dist/text/animations.cjs.map +1 -0
  43. package/dist/text/animations.d.mts +12 -0
  44. package/dist/text/animations.d.ts +12 -0
  45. package/dist/text/animations.js +2 -0
  46. package/dist/text/animations.js.map +1 -0
  47. package/dist/text/index.cjs +3 -0
  48. package/dist/text/index.cjs.map +1 -0
  49. package/dist/text/index.d.mts +10 -0
  50. package/dist/text/index.d.ts +10 -0
  51. package/dist/text/index.js +3 -0
  52. package/dist/text/index.js.map +1 -0
  53. package/dist/types-BuLn_v48.d.mts +59 -0
  54. package/dist/types-BuLn_v48.d.ts +59 -0
  55. package/dist/types-BuzDNWZT.d.mts +62 -0
  56. package/dist/types-BuzDNWZT.d.ts +62 -0
  57. package/dist/types-C3sFNX1j.d.mts +77 -0
  58. package/dist/types-C3sFNX1j.d.ts +77 -0
  59. package/package.json +98 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/text/animations.ts","../../src/text/useValueChange.ts","../../src/text/index.tsx"],"names":["EASE_IN","EASE_OUT","EASE_IN_OUT","SPRING","SMOOTH","fadeOut","fadeIn","neutralOut","neutralIn","presets","useValueChange","value","prevRef","useRef","changed","prev","warned","_measureProbe","getMeasureProbe","validDuration","fallback","colorWithAlpha","color","alpha","m","applyInitialState","el","keyframes","first","applyFinalState","last","hadOpacity","hadFilter","rebaseKeyframes","options","distance","scale","blur","kf","t","f","_","val","runAnimation","preset","mode","oldText","newText","highlightColor","presetOptions","hlRunId","beginAnimationRun","def","anim","baseFrames","rebased","prefersReducedMotion","reducedKeyframes","isActiveAnimationRun","_a","_b","out","runPropertyAnimation","properties","from","to","property","pair","cancelElementAnimations","animation","next","runId","getScrollRoot","parent","style","scrollObserverOptions","threshold","root","rootHeight","clamped","inset","resolveInlineJustify","textAlign","measureInlineText","text","probe","rect","prepareStableTextSwap","computed","oldSize","newSize","currentRect","previousMinWidth","width","justifyContent","previous","savedText","keeper","oldEl","newEl","cleanup","reserveStableTextSize","currentWidth","splitGraphemes","Segmenter","segmenter","segment","restoreSplitRevealState","e","textFromNode","node","props","findTextHost","elementChildren","c","appendRollingCharSlots","slotHeightEm","inners","fragment","chars","char","outer","inner","appendCharSpans","initStyle","spans","i","span","animateSplitReveal","duration","onAnimationEnd","visibleColor","fontSize","lineHeight","halfShift","textSize","lineW","lineH","savedWidth","shadow","line","makeHalf","placement","half","top","bottom","childAnimations","finished","animateSplitSlide","splitAt","leftText","rightText","left","right","animateBigBang","canvasW","canvasH","dpr","canvas","ctx","drawCtx","off","octx","data","density","points","y","x","step","sampled","cx","cy","particles","point","angle","speed","frameId","total","start","frame","now","elapsed","particle","dist","animateScatterAssemble","progress","settle","animatePixelRain","animateVortex","radiusBase","radius","timeProgress","spin","dx","dy","animateDominoFall","row","states","reported","complete","allDone","index","state","animatePendulum","animateCenterBurst","textRect","centerX","offsets","xStates","yStates","opacityStates","spring","target","k","damping","xDone","yDone","animateGravityBounce","done","animateScrollFanIn","nextWidth","prevMinWidthPx","settledMinWidth","center","rotateX","childDuration","remaining","child","animateTextRotate","prevValue","nextValue","_c","makeRow","oldRow","newRow","oldChars","newChars","exitDuration","entryStagger","entryDuration","entryStart","totalDuration","doneOne","animateGooeyMorph","uid","justifyItems","buffer","stableWidth","stableHeight","svg","defs","filter","cm","wrap","oldSpan","newSpan","setMorph","fraction","g","newBlur","oldBlur","animateRandomLetterSwap","order","slots","slot","primary","secondary","stagger","charIndex","orderIndex","delay","animateTextEffect","words","word","animateStaggerText","wordIndex","wordEl","clip","animateTextMorph","baseDuration","oldChar","newChar","same","widthAnim","singleAnimations","changeAnimations","AnimateText","forwardRef","triggersProp","trigger","baseAnimation","scrollAnimation","highlightColorProp","highlightMode","highlightHold","exitAnimation","show","unmountOnExit","easing","repeat","once","as","className","onClick","onEnter","onExit","onHoverStart","onHoverEnd","onAnimationEndProp","children","forwardedRef","_d","ref","animRef","propertyAnimRef","rafRef","timerRef","runFallbackRef","runIdRef","runningRef","queueRef","currentRun","setCurrentRun","useState","phase","setPhase","exitAnimRef","exitKeyRef","watchedValue","useMemo","watchedCurrent","capturedPrevRef","shouldObserveOnce","triggerConfigs","tc","s","triggerSources","hasTrigger","useCallback","source","activeTrigger","activeConfig","scrollConfig","scrollThreshold","startRun","requestRun","finishRun","animate","useImperativeHandle","scrollTriggeredRef","useEffect","observer","entry","key","exitPreset","motionDuration","onExitEnd","exitFrames","handleClick","event","handleMouseEnter","handleMouseLeave","useLayoutEffect","_e","_f","_g","_h","_i","_j","current","reduced","safeDuration","effectivePrev","changeFn","singleFn","tick","startTime","result","n","staggerGap","charDur","host","finalText","trackAnim","old","outDuration","inDuration","lineDuration","textWidth","item","glitched","clean","previousPosition","previousOverflow","curtainColor","curtain","numChars","measure","origDisplay","textSpan","cursor","revealAnim","showCursor","firstCharTime","showTimer","cursorBlink","finish","r","computedColor","shadows","totalMs","finalChars","randomizeThisFrame","stepMs","resolveAt","lineThickness","drawTime","crossfadeTime","inDelay","hlEl","hlColor","hlDuration","setPersist","clearBg","hold","fadeAnim","eraseAnim","createElement","Animate","text_default"],"mappings":"iGAEO,IAAMA,EAAAA,CAAU,gCAAA,CACVC,EAAAA,CAAW,8BAAA,CACXC,EAAAA,CAAc,gCAAA,CACdC,EAAAA,CAAS,mCAAA,CAEf,IAAMC,GAAS,gCAAA,CAEhBC,EAAAA,CAAsB,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,kBAAA,CAAoB,OAAQ,WAAY,CAAC,CAAA,CAC1JC,EAAAA,CAAqB,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,UAAW,iBAAA,CAAmB,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,gBAAiB,MAAA,CAAQ,WAAY,CAAC,CAAA,CACxJC,EAAAA,CAAyB,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,UAAA,CAAY,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,aAAA,CAAe,MAAA,CAAQ,aAAc,CAAC,CAAA,CACrJC,EAAAA,CAAwB,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,aAAA,CAAe,MAAA,CAAQ,aAAc,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,UAAA,CAAY,MAAA,CAAQ,WAAY,CAAC,CAAA,CAE7IC,EAAAA,CAAwD,CACnE,QAAA,CAAU,CACR,GAAA,CAAK,CACH,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAA,CAC9D,CAAE,OAAA,CAAS,GAAA,CAAM,UAAW,eAAA,CAAiB,MAAA,CAAQ,WAAA,CAAa,MAAA,CAAQ,GAAK,CAAA,CAC/E,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,qBAAA,CAAuB,MAAA,CAAQ,aAAc,CACxE,CAAA,CACA,EAAA,CAAI,CACF,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,oBAAA,CAAsB,MAAA,CAAQ,WAAY,CAAA,CACnE,CAAE,OAAA,CAAS,EAAA,CAAK,SAAA,CAAW,oBAAA,CAAsB,MAAA,CAAQ,cAAA,CAAgB,MAAA,CAAQ,GAAK,CAAA,CACtF,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAChE,CACF,CAAA,CACA,KAAA,CAAO,CACL,GAAA,CAAKF,EAAAA,CACL,EAAA,CAAIC,EACN,CAAA,CACA,OAAA,CAAS,CACP,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,UAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,oBAAqB,MAAA,CAAQ,aAAc,CAAC,CAAA,CAC5I,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,kBAAA,CAAoB,MAAA,CAAQ,aAAc,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAC,CAC5I,CAAA,CACA,SAAA,CAAW,CACT,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,kBAAA,CAAoB,MAAA,CAAQ,aAAc,CAAC,CAAA,CAC3I,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,mBAAA,CAAqB,MAAA,CAAQ,aAAc,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,gBAAiB,MAAA,CAAQ,WAAY,CAAC,CAC7I,CAAA,CACA,SAAA,CAAW,CACT,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,EACN,CAAA,CACA,IAAA,CAAM,CACJ,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,UAAW,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,aAAA,CAAe,MAAA,CAAQ,EAAI,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,aAAA,CAAe,MAAA,CAAQ,GAAK,EAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,UAAW,CAAC,CAAA,CACjM,EAAA,CAAI,EACN,CAAA,CACA,IAAA,CAAM,CACJ,GAAA,CAAK,CAAC,CAAE,QAAS,CAAA,CAAG,MAAA,CAAQ,WAAA,CAAa,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,EAAG,MAAA,CAAQ,WAAA,CAAa,SAAA,CAAW,kBAAmB,CAAC,CAAA,CACzI,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAA,CAAa,SAAA,CAAW,iBAAkB,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAA,CAAa,SAAA,CAAW,eAAgB,CAAC,CACzI,EACA,OAAA,CAAS,CACP,GAAA,CAAKH,EAAAA,CACL,EAAA,CAAIC,EACN,CAAA,CACA,QAAA,CAAU,CACR,GAAA,CAAKD,EAAAA,CACL,EAAA,CAAIC,EACN,CAAA,CACA,MAAA,CAAQ,CACN,IAAKD,EAAAA,CACL,EAAA,CAAIC,EACN,CAAA,CACA,OAAA,CAAS,CACP,GAAA,CAAKD,EAAAA,CACL,EAAA,CAAIC,EACN,CAAA,CACA,YAAA,CAAc,CACZ,GAAA,CAAK,CAAC,CAAE,QAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,mBAAA,CAAqB,MAAA,CAAQ,WAAY,CAAC,CAAA,CAC1I,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,kBAAA,CAAoB,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAC,CAC1I,EACA,UAAA,CAAY,CACV,GAAA,CAAKD,EAAAA,CACL,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,mBAAA,CAAqB,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,iBAAA,CAAmB,MAAA,CAAQ,WAAA,CAAa,MAAA,CAAQ,GAAK,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAC,CAC5N,EACA,MAAA,CAAQ,CACN,GAAA,CAAKA,EAAAA,CACL,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,kBAAA,CAAoB,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,UAAW,iBAAA,CAAmB,MAAA,CAAQ,WAAA,CAAa,MAAA,CAAQ,GAAK,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAC,CAC3N,CAAA,CACA,WAAY,CACV,GAAA,CAAKA,EAAAA,CACL,EAAA,CAAIC,EACN,CAAA,CACA,UAAA,CAAY,CACV,IAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,EAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,mBAAA,CAAqB,MAAA,CAAQ,aAAc,CAAC,CAAA,CAC5I,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,kBAAA,CAAoB,OAAQ,aAAc,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAC,CAC5I,CAAA,CACA,OAAA,CAAS,CACP,GAAA,CAAKD,EAAAA,CACL,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,8BAAA,CAAgC,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,wBAAA,CAA0B,MAAA,CAAQ,WAAY,CAAC,CAC/J,CAAA,CACA,UAAA,CAAY,CACV,GAAA,CAAKA,EAAAA,CACL,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,UAAW,eAAgB,CAAC,CAC7F,CAAA,CACA,MAAA,CAAQ,CACN,GAAA,CAAKA,EAAAA,CACL,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,6BAAA,CAA+B,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,wBAAA,CAA0B,MAAA,CAAQ,WAAY,CAAC,CAC9J,CAAA,CACA,MAAA,CAAQ,CACN,GAAA,CAAKA,EAAAA,CACL,EAAA,CAAI,CACF,CAAE,SAAA,CAAW,eAAA,CAAiB,OAAA,CAAS,CAAE,CAAA,CACzC,CAAE,SAAA,CAAW,kBAAA,CAAoB,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,GAAK,CAAA,CAC1D,CAAE,SAAA,CAAW,iBAAA,CAAmB,QAAS,CAAA,CAAG,MAAA,CAAQ,GAAK,CAAA,CACzD,CAAE,SAAA,CAAW,kBAAA,CAAoB,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,GAAK,CAAA,CAC1D,CAAE,SAAA,CAAW,iBAAA,CAAmB,OAAA,CAAS,EAAG,MAAA,CAAQ,GAAK,CAAA,CACzD,CAAE,SAAA,CAAW,eAAA,CAAiB,OAAA,CAAS,CAAE,CAC3C,CACF,CAAA,CACA,KAAA,CAAO,CACL,GAAA,CAAKA,EAAAA,CACL,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,6BAAA,CAA+B,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,8BAAA,CAAgC,MAAA,CAAQ,WAAA,CAAa,MAAA,CAAQ,GAAK,EAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,wBAAA,CAA0B,MAAA,CAAQ,WAAY,CAAC,CAC5P,CAAA,CACA,KAAA,CAAO,CACL,GAAA,CAAKA,EAAAA,CACL,EAAA,CAAI,CACF,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,aAAc,CAAA,CACvC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,mBAAA,CAAqB,MAAA,CAAQ,GAAK,CAAA,CAC3D,CAAE,OAAA,CAAS,CAAA,CAAG,UAAW,mBAAA,CAAqB,MAAA,CAAQ,GAAK,CAAA,CAC3D,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,mBAAA,CAAqB,MAAA,CAAQ,GAAK,CAAA,CAC3D,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,aAAc,CACzC,CACF,CAAA,CACA,QAAA,CAAU,CACR,GAAA,CAAKA,EAAAA,CACL,EAAA,CAAIC,EACN,CAAA,CACA,IAAA,CAAM,CACJ,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,UAAW,kCAAmC,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,oCAAqC,CAAC,CAAA,CACpI,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,mCAAoC,EAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,kCAAmC,CAAC,CACpI,CAAA,CACA,OAAQ,CACN,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,UAAA,CAAY,OAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,YAAA,CAAc,MAAA,CAAQ,WAAY,CAAC,CAAA,CAC9H,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,UAAW,aAAA,CAAe,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,cAAe,MAAA,CAAQ,WAAA,CAAa,MAAA,CAAQ,EAAI,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,UAAW,aAAA,CAAe,MAAA,CAAQ,WAAA,CAAa,MAAA,CAAQ,GAAK,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,UAAA,CAAY,MAAA,CAAQ,WAAY,CAAC,CACzR,CAAA,CACA,MAAO,CACL,GAAA,CAAKD,EAAAA,CACL,EAAA,CAAI,CACF,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CACzC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,kBAAA,CAAoB,OAAQ,GAAA,CAAM,MAAA,CAAQ,gCAAiC,CAAA,CACpG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,iBAAA,CAAmB,MAAA,CAAQ,GAAA,CAAM,MAAA,CAAQ,gCAAiC,CAAA,CACnG,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,kBAAA,CAAoB,MAAA,CAAQ,GAAA,CAAM,MAAA,CAAQ,gCAAiC,CAAA,CACpG,CAAE,QAAS,CAAA,CAAG,SAAA,CAAW,iBAAA,CAAmB,MAAA,CAAQ,GAAA,CAAM,MAAA,CAAQ,gCAAiC,CAAA,CACnG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAC3C,CACF,CAAA,CACA,KAAA,CAAO,CACL,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,UAAW,EAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,aAAc,CAAC,CAAA,CACrF,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,UAAW,CAAA,CAAG,CAAE,QAAS,CAAA,CAAG,SAAA,CAAW,aAAA,CAAe,MAAA,CAAQ,GAAK,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,aAAA,CAAe,MAAA,CAAQ,GAAK,CAAA,CAAG,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,UAAW,CAAC,CACnM,CAAA,CACA,KAAA,CAAO,CACL,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,EAAA,CAAK,SAAA,CAAW,gBAAiB,MAAA,CAAQ,EAAI,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAC,CACxJ,CAAA,CACA,IAAA,CAAM,CACJ,GAAA,CAAKA,EAAAA,CACL,EAAA,CAAIC,EACN,CAAA,CACA,IAAA,CAAM,CACJ,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,UAAA,CAAY,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,UAAW,aAAA,CAAe,MAAA,CAAQ,WAAY,CAAC,CAAA,CAC/H,EAAA,CAAI,CAAC,CAAE,QAAS,CAAA,CAAG,SAAA,CAAW,aAAA,CAAe,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,YAAA,CAAc,MAAA,CAAQ,WAAA,CAAa,MAAA,CAAQ,GAAK,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,UAAA,CAAY,MAAA,CAAQ,WAAY,CAAC,CAC5M,EACA,KAAA,CAAO,CACL,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,WAAY,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,YAAA,CAAc,OAAQ,WAAY,CAAC,CAAA,CAC9H,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,YAAA,CAAc,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,UAAW,aAAA,CAAe,MAAA,CAAQ,WAAA,CAAa,MAAA,CAAQ,GAAK,CAAA,CAAG,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,UAAA,CAAY,MAAA,CAAQ,WAAY,CAAC,CAC5M,CAAA,CACA,MAAA,CAAQ,CACN,GAAA,CAAKD,EAAAA,CACL,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,mBAAA,CAAqB,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,kBAAmB,MAAA,CAAQ,WAAA,CAAa,MAAA,CAAQ,GAAK,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAC,CAC5N,CAAA,CACA,MAAA,CAAQ,CACN,GAAA,CAAKA,EAAAA,CACL,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,kBAAA,CAAoB,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,gBAAiB,MAAA,CAAQ,WAAY,CAAC,CAC1I,CAAA,CACA,QAAA,CAAU,CACR,GAAA,CAAKE,GACL,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,cAAA,CAAgB,MAAA,CAAQ,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,cAAA,CAAgB,MAAA,CAAQ,WAAA,CAAa,MAAA,CAAQ,GAAK,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,WAAA,CAAa,OAAQ,WAAY,CAAC,CAChN,CAAA,CACA,SAAA,CAAW,CACT,GAAA,CAAKA,EAAAA,CACL,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,WAAY,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,cAAe,CAAC,CACxF,CAAA,CACA,SAAA,CAAW,CACT,GAAA,CAAKF,EAAAA,CACL,EAAA,CAAI,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,UAAW,aAAc,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,aAAA,CAAe,MAAA,CAAQ,GAAK,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,UAAW,CAAC,CAC9I,EACA,aAAA,CAAe,CACb,GAAA,CAAKA,EAAAA,CACL,EAAA,CAAIC,EACN,CAAA,CACA,QAAA,CAAU,CACR,GAAA,CAAKD,EAAAA,CACL,EAAA,CAAIC,EACN,CAAA,CACA,MAAA,CAAQ,CACN,IAAKD,EAAAA,CACL,EAAA,CAAIC,EACN,CAAA,CACA,WAAA,CAAa,CACX,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,EACN,CAAA,CACA,UAAA,CAAY,CACV,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,GAAI,EACN,CAAA,CACA,OAAA,CAAS,CACP,GAAA,CAAK,CAAC,CAAE,QAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,EACN,CAAA,CACA,eAAA,CAAiB,CACf,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,EACN,CAAA,CACA,SAAA,CAAW,CACT,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,EACN,CAAA,CACA,UAAA,CAAY,CACV,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,EACN,CAAA,CACA,MAAA,CAAQ,CACN,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,EACN,CAAA,CACA,QAAA,CAAU,CACR,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,EACN,CAAA,CACA,YAAa,CACX,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,EAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,EACN,CAAA,CACA,aAAA,CAAe,CACb,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,EACN,CAAA,CACA,WAAA,CAAa,CACX,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,EACN,CAAA,CACA,UAAA,CAAY,CACV,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,EACN,CAAA,CACA,UAAA,CAAY,CACV,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,EACN,EACA,gBAAA,CAAkB,CAChB,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAC,EAC5F,EAAA,CAAI,EACN,CAAA,CACA,UAAA,CAAY,CACV,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,EACN,CAAA,CACA,YAAa,CACX,GAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,EAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAC,CAAA,CAC5F,EAAA,CAAI,EACN,CAAA,CACA,aAAA,CAAe,CACb,GAAA,CAAK,CACH,CAAE,eAAgB,UAAA,CAAY,kBAAA,CAAoB,SAAA,CAAW,gBAAA,CAAkB,WAAA,CAAa,eAAA,CAAiB,6CAAA,CAA+C,OAAA,CAAS,CAAE,CAAA,CACvK,CAAE,cAAA,CAAgB,UAAA,CAAY,kBAAA,CAAoB,SAAA,CAAW,gBAAA,CAAkB,WAAA,CAAa,gBAAiB,6CAAA,CAA+C,OAAA,CAAS,CAAE,CACzK,CAAA,CACA,EAAA,CAAI,CACF,CAAE,cAAA,CAAgB,QAAA,CAAU,kBAAA,CAAoB,SAAA,CAAW,gBAAA,CAAkB,WAAA,CAAa,eAAA,CAAiB,6CAAA,CAA+C,QAAS,CAAE,CAAA,CACrK,CAAE,cAAA,CAAgB,UAAA,CAAY,kBAAA,CAAoB,SAAA,CAAW,gBAAA,CAAkB,YAAa,eAAA,CAAiB,6CAAA,CAA+C,OAAA,CAAS,CAAE,CACzK,CACF,CAAA,CACA,cAAA,CAAgB,CACd,GAAA,CAAK,CACH,CAAE,cAAA,CAAgB,UAAA,CAAY,kBAAA,CAAoB,SAAA,CAAW,gBAAA,CAAkB,WAAA,CAAa,eAAA,CAAiB,6CAAA,CAA+C,OAAA,CAAS,CAAE,CAAA,CACvK,CAAE,cAAA,CAAgB,SAAU,kBAAA,CAAoB,WAAA,CAAa,gBAAA,CAAkB,WAAA,CAAa,eAAA,CAAiB,6CAAA,CAA+C,OAAA,CAAS,CAAE,CACzK,CAAA,CACA,EAAA,CAAI,CACF,CAAE,cAAA,CAAgB,QAAA,CAAU,kBAAA,CAAoB,UAAW,gBAAA,CAAkB,WAAA,CAAa,eAAA,CAAiB,6CAAA,CAA+C,OAAA,CAAS,CAAE,CAAA,CACrK,CAAE,cAAA,CAAgB,UAAA,CAAY,kBAAA,CAAoB,SAAA,CAAW,gBAAA,CAAkB,WAAA,CAAa,eAAA,CAAiB,6CAAA,CAA+C,QAAS,CAAE,CACzK,CACF,CAAA,CACA,WAAA,CAAa,CACX,GAAA,CAAK,GACL,EAAA,CAAI,CACF,CAAE,SAAA,CAAW,aAAA,CAAe,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAY,CAAA,CAC5D,CAAE,SAAA,CAAW,YAAA,CAAc,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAA,CAAa,MAAA,CAAQ,GAAK,CAAA,CACzE,CAAE,SAAA,CAAW,aAAA,CAAe,OAAA,CAAS,CAAA,CAAG,OAAQ,WAAA,CAAa,MAAA,CAAQ,GAAK,CAAA,CAC1E,CAAE,SAAA,CAAW,UAAA,CAAY,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAY,CAC3D,CACF,CAAA,CACA,eAAA,CAAiB,CACf,IAAK,CACH,CAAE,MAAA,CAAQ,2BAAA,CAA6B,OAAA,CAAS,CAAE,CAAA,CAClD,CAAE,MAAA,CAAQ,gCAAA,CAAkC,OAAA,CAAS,GAAK,CAC5D,CAAA,CACA,EAAA,CAAI,CACF,CAAE,MAAA,CAAQ,+BAAA,CAAiC,OAAA,CAAS,GAAK,CAAA,CACzD,CAAE,MAAA,CAAQ,+BAAA,CAAiC,QAAS,CAAE,CAAA,CACtD,CAAE,MAAA,CAAQ,2BAAA,CAA6B,OAAA,CAAS,CAAE,CACpD,CACF,CAAA,CACA,aAAA,CAAe,CACb,GAAA,CAAK,EAAC,CACN,EAAA,CAAI,CACF,CAAE,MAAA,CAAQ,iBAAA,CAAmB,OAAA,CAAS,EAAI,CAAA,CAC1C,CAAE,MAAA,CAAQ,kBAAmB,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,EAAI,CAAA,CACrD,CAAE,MAAA,CAAQ,eAAA,CAAiB,OAAA,CAAS,CAAE,CACxC,CACF,CAAA,CAEA,SAAA,CAAW,CACT,GAAA,CAAK,CACH,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAA,CAC9D,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,mBAAA,CAAqB,MAAA,CAAQ,WAAY,CACpE,EACA,EAAA,CAAI,CACF,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,mBAAA,CAAqB,MAAA,CAAQ,WAAY,CAAA,CAClE,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAChE,CACF,CAAA,CACA,WAAA,CAAa,CACX,GAAA,CAAK,CACH,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAA,CAC9D,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,kBAAA,CAAoB,MAAA,CAAQ,WAAY,CACnE,CAAA,CACA,EAAA,CAAI,CACF,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,kBAAA,CAAoB,MAAA,CAAQ,WAAY,CAAA,CACjE,CAAE,QAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAChE,CACF,CAAA,CAEA,UAAA,CAAY,CACV,GAAA,CAAK,CACH,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,gBAAiB,MAAA,CAAQ,WAAY,CAAA,CAC9D,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,mBAAA,CAAqB,OAAQ,aAAc,CACtE,CAAA,CACA,EAAA,CAAI,CACF,CAAE,OAAA,CAAS,CAAA,CAAG,UAAW,mBAAA,CAAqB,MAAA,CAAQ,aAAc,CAAA,CACpE,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAChE,CACF,CAAA,CACA,YAAA,CAAc,CACZ,IAAK,CACH,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAA,CAC9D,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,kBAAA,CAAoB,MAAA,CAAQ,aAAc,CACrE,CAAA,CACA,EAAA,CAAI,CACF,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,kBAAA,CAAoB,MAAA,CAAQ,aAAc,CAAA,CACnE,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,OAAQ,WAAY,CAChE,CACF,CAAA,CACA,YAAA,CAAc,CACZ,GAAA,CAAK,CACH,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAA,CAC9D,CAAE,QAAS,CAAA,CAAG,SAAA,CAAW,mBAAA,CAAqB,MAAA,CAAQ,aAAc,CACtE,CAAA,CACA,EAAA,CAAI,CACF,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,mBAAA,CAAqB,MAAA,CAAQ,aAAc,EACpE,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAChE,CACF,CAAA,CACA,aAAA,CAAe,CACb,GAAA,CAAK,CACH,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAA,CAC9D,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,kBAAA,CAAoB,MAAA,CAAQ,aAAc,CACrE,CAAA,CACA,EAAA,CAAI,CACF,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,kBAAA,CAAoB,MAAA,CAAQ,aAAc,CAAA,CACnE,CAAE,QAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAChE,CACF,CAAA,CAEA,SAAU,CACR,GAAA,CAAK,CACH,CAAE,SAAA,CAAW,UAAA,CAAY,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAY,CAAA,CACzD,CAAE,SAAA,CAAW,aAAA,CAAe,OAAA,CAAS,CAAA,CAAG,OAAQ,WAAY,CAC9D,CAAA,CACA,EAAA,CAAI,CACF,CAAE,SAAA,CAAW,aAAA,CAAe,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAY,CAAA,CAC5D,CAAE,SAAA,CAAW,aAAA,CAAe,QAAS,CAAA,CAAG,MAAA,CAAQ,WAAA,CAAa,MAAA,CAAQ,GAAK,CAAA,CAC1E,CAAE,SAAA,CAAW,UAAA,CAAY,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAY,CAC3D,CACF,CAAA,CACA,OAAQ,CACN,GAAA,CAAK,CACH,CAAE,SAAA,CAAW,UAAA,CAAY,OAAA,CAAS,CAAA,CAAG,OAAQ,WAAY,CAAA,CACzD,CAAE,SAAA,CAAW,aAAA,CAAe,OAAA,CAAS,GAAA,CAAM,MAAA,CAAQ,YAAa,MAAA,CAAQ,GAAK,CAAA,CAC7E,CAAE,SAAA,CAAW,aAAA,CAAe,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAY,CAC9D,CAAA,CACA,EAAA,CAAI,CACF,CAAE,SAAA,CAAW,cAAe,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAY,CAAA,CAC5D,CAAE,SAAA,CAAW,aAAA,CAAe,QAAS,CAAA,CAAG,MAAA,CAAQ,WAAA,CAAa,MAAA,CAAQ,GAAK,CAAA,CAC1E,CAAE,SAAA,CAAW,WAAY,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAY,CAC3D,CACF,CAAA,CAEA,OAAA,CAAS,CACP,GAAA,CAAK,CACH,CAAE,MAAA,CAAQ,SAAA,CAAW,OAAA,CAAS,CAAE,EAChC,CAAE,MAAA,CAAQ,WAAA,CAAa,OAAA,CAAS,CAAE,CACpC,CAAA,CACA,EAAA,CAAI,CACF,CAAE,MAAA,CAAQ,WAAA,CAAa,OAAA,CAAS,CAAE,CAAA,CAClC,CAAE,MAAA,CAAQ,UAAW,OAAA,CAAS,CAAE,CAClC,CACF,CAAA,CACA,OAAA,CAAS,CACP,GAAA,CAAK,CACH,CAAE,QAAA,CAAU,gBAAA,CAAkB,OAAA,CAAS,CAAE,CAAA,CACzC,CAAE,SAAU,mBAAA,CAAqB,OAAA,CAAS,CAAE,CAC9C,CAAA,CACA,EAAA,CAAI,CACF,CAAE,QAAA,CAAU,mBAAA,CAAqB,OAAA,CAAS,CAAE,CAAA,CAC5C,CAAE,QAAA,CAAU,gBAAA,CAAkB,QAAS,CAAE,CAC3C,CACF,CAAA,CAEA,SAAA,CAAW,CACT,GAAA,CAAK,CACH,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAA,CAAa,mBAAA,CAAqB,cAAe,CAAA,CACnG,CAAE,OAAA,CAAS,GAAA,CAAM,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAA,CAAa,oBAAqB,cAAA,CAAgB,MAAA,CAAQ,GAAK,CAAA,CACpH,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,mBAAoB,MAAA,CAAQ,WAAA,CAAa,mBAAA,CAAqB,cAAe,CACxG,CAAA,CACA,EAAA,CAAIA,EACN,CAAA,CACA,OAAA,CAAS,CACP,GAAA,CAAK,CACH,CAAE,OAAA,CAAS,CAAA,CAAG,SAAU,gBAAA,CAAkB,SAAA,CAAW,eAAgB,CAAA,CACrE,CAAE,OAAA,CAAS,CAAA,CAAG,QAAA,CAAU,mBAAA,CAAqB,SAAA,CAAW,eAAgB,CAC1E,CAAA,CACA,EAAA,CAAI,CACF,CAAE,QAAS,CAAA,CAAG,QAAA,CAAU,mBAAA,CAAqB,SAAA,CAAW,eAAgB,CAAA,CACxE,CAAE,OAAA,CAAS,CAAA,CAAG,QAAA,CAAU,gBAAA,CAAkB,SAAA,CAAW,eAAgB,CACvE,CACF,CAAA,CACA,YAAa,CACX,GAAA,CAAK,CACH,CAAE,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAA,CAAa,UAAW,eAAgB,CAAA,CAC9D,CAAE,OAAA,CAAS,GAAA,CAAM,MAAA,CAAQ,WAAA,CAAa,SAAA,CAAW,mBAAoB,MAAA,CAAQ,GAAK,CAAA,CAClF,CAAE,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAA,CAAa,SAAA,CAAW,kBAAmB,CACnE,CAAA,CACA,EAAA,CAAIA,EACN,CACF,CAAA,CC3bO,SAASI,EAAAA,CAAeC,CAAAA,CAAoC,CACjE,IAAMC,CAAAA,CAAUC,YAAAA,CAAoC,MAAS,CAAA,CACvDC,CAAAA,CAAUF,CAAAA,CAAQ,OAAA,GAAY,MAAA,EAAaA,EAAQ,OAAA,GAAYD,CAAAA,CAC/DI,CAAAA,CAAOH,CAAAA,CAAQ,OAAA,CACrB,OAAAA,CAAAA,CAAQ,OAAA,CAAUD,CAAAA,CACX,CAAE,OAAA,CAAAG,CAAAA,CAAS,IAAA,CAAAC,CAAAA,CAAM,OAAA,CAASJ,CAAM,CACzC,CCFA,IAAMK,EAAAA,CAAS,IAAI,GAAA,CACfC,EAAAA,CAAwC,IAAA,CAK5C,SAASC,IAAmC,CAC1C,OAAKD,EAAAA,GACHA,EAAAA,CAAgB,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC7CA,GAAc,KAAA,CAAM,QAAA,CAAW,UAAA,CAC/BA,EAAAA,CAAc,KAAA,CAAM,UAAA,CAAa,QAAA,CACjCA,EAAAA,CAAc,KAAA,CAAM,aAAA,CAAgB,MAAA,CACpCA,EAAAA,CAAc,KAAA,CAAM,UAAA,CAAa,KAAA,CACjCA,EAAAA,CAAc,MAAM,OAAA,CAAU,cAAA,CAAA,CAEzBA,EACT,CAEA,SAASE,EAAAA,CAAcR,CAAAA,CAAgBS,CAAAA,CAAW,IAAa,CAC7D,IAAM,CAAA,CAAI,MAAA,CAAOT,CAAK,CAAA,CACtB,OAAO,MAAA,CAAO,SAAS,CAAC,CAAA,EAAK,CAAA,CAAI,CAAA,CAAI,CAAA,CAAIS,CAC3C,CAEA,SAASC,EAAAA,CAAeC,CAAAA,CAAeC,CAAAA,CAAuB,CAC5D,IAAMC,CAAAA,CAAIF,CAAAA,CAAM,KAAA,CAAM,iCAAiC,CAAA,CACvD,OAAIE,CAAAA,CAAU,CAAA,KAAA,EAAQA,CAAAA,CAAE,CAAC,CAAC,CAAA,EAAA,EAAKA,EAAE,CAAC,CAAC,CAAA,EAAA,EAAKA,CAAAA,CAAE,CAAC,CAAC,CAAA,EAAA,EAAKD,CAAK,IAC/C,CAAA,cAAA,EAAiBA,CAAK,CAAA,CAAA,CAC/B,CAEA,SAASE,EAAAA,CAAkBC,CAAAA,CAAiBC,CAAAA,CAAuB,CACjE,IAAMC,CAAAA,CAAQD,CAAAA,CAAU,CAAC,CAAA,CACpBC,CAAAA,GACAA,CAAAA,CAAc,UAAY,MAAA,GAAWF,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAU,MAAA,CAAQE,CAAAA,CAAc,OAAO,CAAA,CAAA,CACrFA,CAAAA,CAAc,SAAA,GAAc,MAAA,GAAWF,CAAAA,CAAG,KAAA,CAAM,SAAA,CAAY,MAAA,CAAQE,CAAAA,CAAc,SAAS,CAAA,CAAA,CAC3FA,CAAAA,CAAc,MAAA,GAAW,MAAA,GAAWF,CAAAA,CAAG,KAAA,CAAM,MAAA,CAAS,MAAA,CAAQE,CAAAA,CAAc,MAAM,CAAA,CAAA,CAClFA,CAAAA,CAAc,eAAA,GAAoB,MAAA,GAAWF,CAAAA,CAAG,KAAA,CAAM,gBAAkB,MAAA,CAAQE,CAAAA,CAAc,eAAe,CAAA,CAAA,CAC7GA,CAAAA,CAAc,cAAA,GAAmB,MAAA,GAAWF,CAAAA,CAAG,MAAM,cAAA,CAAiB,MAAA,CAAQE,CAAAA,CAAc,cAAc,CAAA,CAAA,CAC1GA,CAAAA,CAAc,kBAAA,GAAuB,MAAA,GAAWF,EAAG,KAAA,CAAM,kBAAA,CAAqB,MAAA,CAAQE,CAAAA,CAAc,kBAAkB,CAAA,CAAA,CACtHA,CAAAA,CAAc,gBAAA,GAAqB,MAAA,GAAWF,CAAAA,CAAG,KAAA,CAAM,gBAAA,CAAmB,MAAA,CAAQE,CAAAA,CAAc,gBAAgB,CAAA,CAAA,EACvH,CAEA,SAASC,EAAAA,CAAgBH,CAAAA,CAAiBC,CAAAA,CAAuB,CAC/D,IAAMC,CAAAA,CAAQD,CAAAA,CAAU,CAAC,CAAA,CACnBG,CAAAA,CAAOH,CAAAA,CAAUA,CAAAA,CAAU,MAAA,CAAS,CAAC,CAAA,CAC3C,GAAI,CAACG,CAAAA,CAAM,OACX,IAAMC,CAAAA,CAAcH,CAAAA,CAAc,OAAA,GAAY,MAAA,CACxCI,CAAAA,CAAaJ,CAAAA,CAAc,MAAA,GAAW,MAAA,CACvCE,CAAAA,CAAa,OAAA,GAAY,MAAA,CAC5BJ,CAAAA,CAAG,MAAM,OAAA,CAAU,MAAA,CAAQI,CAAAA,CAAa,OAAO,CAAA,CACtCC,CAAAA,GACTL,CAAAA,CAAG,KAAA,CAAM,QAAU,GAAA,CAAA,CAEhBI,CAAAA,CAAa,SAAA,GAAc,MAAA,GAAWJ,CAAAA,CAAG,KAAA,CAAM,SAAA,CAAY,MAAA,CAAQI,EAAa,SAAS,CAAA,CAAA,CACzFA,CAAAA,CAAa,MAAA,GAAW,MAAA,CAC3BJ,CAAAA,CAAG,KAAA,CAAM,MAAA,CAAS,MAAA,CAAQI,CAAAA,CAAa,MAAM,CAAA,CACpCE,CAAAA,GACTN,CAAAA,CAAG,KAAA,CAAM,MAAA,CAAS,aAEfI,CAAAA,CAAa,eAAA,GAAoB,MAAA,GAAWJ,CAAAA,CAAG,KAAA,CAAM,eAAA,CAAkB,MAAA,CAAQI,CAAAA,CAAa,eAAe,CAAA,CAAA,CAC3GA,CAAAA,CAAa,cAAA,GAAmB,MAAA,GAAWJ,CAAAA,CAAG,KAAA,CAAM,cAAA,CAAiB,OAAQI,CAAAA,CAAa,cAAc,CAAA,CAAA,CACxGA,CAAAA,CAAa,kBAAA,GAAuB,MAAA,GAAWJ,CAAAA,CAAG,KAAA,CAAM,kBAAA,CAAqB,MAAA,CAAQI,CAAAA,CAAa,kBAAkB,CAAA,CAAA,CACpHA,CAAAA,CAAa,gBAAA,GAAqB,MAAA,GAAWJ,EAAG,KAAA,CAAM,gBAAA,CAAmB,MAAA,CAAQI,CAAAA,CAAa,gBAAgB,CAAA,EACrH,CAEA,SAASG,GAAgBN,CAAAA,CAAuBO,CAAAA,CAAyC,CACvF,GAAI,CAACA,CAAAA,CAAS,OAAOP,CAAAA,CACrB,GAAM,CAAE,QAAA,CAAAQ,CAAAA,CAAU,KAAA,CAAAC,CAAAA,CAAO,IAAA,CAAAC,CAAK,CAAA,CAAIH,CAAAA,CAClC,OAAOP,CAAAA,CAAU,GAAA,CAAIW,CAAAA,EAAM,CACzB,IAAIC,CAAAA,CAAKD,EAAW,SAAA,CAChBE,CAAAA,CAAKF,CAAAA,CAAW,MAAA,CACpB,OAAIH,CAAAA,GAAa,MAAA,EAAaI,CAAAA,GAC5BA,EAAIA,CAAAA,CAAE,OAAA,CAAQ,uCAAA,CAAyC,CAACE,CAAAA,CAAGC,CAAAA,GACzD,CAAA,WAAA,EAAc,IAAA,CAAK,MAAM,MAAA,CAAOA,CAAG,CAAA,EAAKP,CAAAA,CAAW,EAAA,CAAG,CAAC,CAAA,GAAA,CAAK,CAAA,CAC9DI,CAAAA,CAAIA,CAAAA,CAAE,OAAA,CAAQ,uCAAA,CAAyC,CAACE,CAAAA,CAAGC,CAAAA,GACzD,CAAA,WAAA,EAAc,KAAK,KAAA,CAAM,MAAA,CAAOA,CAAG,CAAA,EAAKP,CAAAA,CAAW,EAAA,CAAG,CAAC,CAAA,GAAA,CAAK,GAE5DC,CAAAA,GAAU,MAAA,EAAaG,CAAAA,GACzBA,CAAAA,CAAIA,CAAAA,CAAE,OAAA,CAAQ,uCAAA,CAAyC,CAAA,MAAA,EAASH,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAEtEC,CAAAA,GAAS,MAAA,EAAaG,CAAAA,GACxBA,CAAAA,CAAIA,CAAAA,CAAE,OAAA,CAAQ,kBAAA,CAAoB,CAAA,KAAA,EAAQH,CAAI,CAAA,GAAA,CAAK,CAAA,CAAA,CAE9C,CAAE,GAAGC,CAAAA,CAAI,UAAWC,CAAAA,CAAG,MAAA,CAAQC,CAAE,CAC1C,CAAC,CACH,CAEA,SAASG,EAAAA,CACPjB,CAAAA,CACAkB,CAAAA,CACAV,CAAAA,CACAW,CAAAA,CAA4B,QAAA,CAC5BC,CAAAA,CACAC,CAAAA,CACAC,EACAC,CAAAA,CACW,CACX,IAAMC,CAAAA,CAAUC,CAAAA,CAAkBzB,CAAE,CAAA,CACpCA,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,kEAAA,CAEtB,IAAM0B,CAAAA,CAAM3C,EAAAA,CAAQmC,CAAM,CAAA,CAC1B,GAAI,CAACQ,CAAAA,CAAK,CACJ,OAAA,CAAQ,GAAA,CAAI,QAAA,GAAa,aAAA,EAAiB,CAACpC,GAAO,GAAA,CAAI4B,CAAM,CAAA,GAC9D5B,EAAAA,CAAO,GAAA,CAAI4B,CAAM,CAAA,CACjB,OAAA,CAAQ,KACN,CAAA,kCAAA,EAAqCA,CAAM,CAAA,oBAAA,EAAuB,MAAA,CAAO,IAAA,CAAKnC,EAAO,CAAA,CAAE,IAAA,CAAK,IAAI,CAAC,CAAA,CACnG,CAAA,CAAA,CAEF,IAAM4C,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CAAQ,EAAC,CAAGQ,CAAO,CAAA,CACnC,OAAAmB,CAAAA,CAAK,gBAAA,CAAiB,QAAA,CAAU,IAAM,CAAE3B,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,OAAO,CAAC,CAAA,CACtE2B,CAAAA,CAAK,iBAAiB,QAAA,CAAU,IAAM,CAAE3B,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,OAAO,CAAC,CAAA,CAC/D2B,CACT,CACA,IAAMC,CAAAA,CAAaT,CAAAA,GAAS,QAAA,CACxB,CAAC,GAAGO,CAAAA,CAAI,GAAA,CAAK,GAAGA,CAAAA,CAAI,EAAE,CAAA,CACrBA,CAAAA,CAAI,EAAA,CAAG,OAAS,CAAC,GAAGA,CAAAA,CAAI,EAAE,CAAA,CAAI,CAAC,GAAGA,CAAAA,CAAI,GAAG,CAAA,CACxCG,CAAAA,CAAUtB,EAAAA,CAAgBqB,CAAAA,CAAYL,CAAa,CAAA,CACnDtB,CAAAA,CAAY6B,EAAAA,EAAqB,CAAIC,EAAAA,CAAiBF,CAAO,CAAA,CAAIA,CAAAA,CACvE9B,EAAAA,CAAkBC,CAAAA,CAAIC,CAAS,EAC/B,IAAM0B,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CAAQC,CAAAA,CAAW,CAAE,GAAGO,CAAAA,CAAS,IAAA,CAAM,UAAW,CAAC,CAAA,CACnE,OAAAmB,CAAAA,CAAK,gBAAA,CAAiB,QAAA,CAAU,IAAM,CACpCxB,EAAAA,CAAgBH,CAAAA,CAAIC,CAAS,CAAA,CACzB+B,CAAAA,CAAqBhC,CAAAA,CAAIwB,CAAO,CAAA,GAAGxB,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,MAAA,EAC/D,CAAC,CAAA,CACD2B,CAAAA,CAAK,iBAAiB,QAAA,CAAU,IAAM,CACpCxB,EAAAA,CAAgBH,CAAAA,CAAIC,CAAS,CAAA,CACzB+B,CAAAA,CAAqBhC,EAAIwB,CAAO,CAAA,GAAGxB,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,MAAA,EAC/D,CAAC,CAAA,CACM2B,CACT,CAEA,SAASG,EAAAA,EAAgC,CAxIzC,IAAAG,CAAAA,CAAAC,CAAAA,CAyIE,OAAI,OAAO,MAAA,EAAW,WAAA,CAAoB,KAAA,CAAA,CACnCA,CAAAA,CAAAA,CAAAD,CAAAA,CAAA,MAAA,CAAO,UAAA,GAAP,YAAAA,CAAAA,CAAA,IAAA,CAAA,MAAA,CAAoB,kCAAA,CAAA,CAAoC,OAAA,GAAxD,IAAA,CAAAC,CAAAA,CAAmE,KAC5E,CAEA,SAASH,EAAAA,CAAiB9B,CAAAA,CAAmC,CA7I7D,IAAAgC,CAAAA,CA8IE,IAAM7B,CAAAA,CAAOH,CAAAA,CAAUA,EAAU,MAAA,CAAS,CAAC,CAAA,CACrCkC,CAAAA,CAA+B,EAAC,CACtC,IAAA,IAAWvB,CAAAA,IAAMX,CAAAA,CACfkC,CAAAA,CAAI,OAAA,CAAA,CAAWF,CAAAA,CAAArB,CAAAA,CAAW,OAAA,GAAX,IAAA,CAAAqB,CAAAA,CAAsB,EAEvC,OAAI7B,CAAAA,GACGA,CAAAA,CAAa,eAAA,GAAiB+B,CAAAA,CAAI,eAAA,CAAmB/B,CAAAA,CAAa,eAAA,CAAA,CAClEA,EAAa,cAAA,GAAgB+B,CAAAA,CAAI,cAAA,CAAkB/B,CAAAA,CAAa,cAAA,CAAA,CAChEA,CAAAA,CAAa,kBAAA,GAAoB+B,CAAAA,CAAI,mBAAsB/B,CAAAA,CAAa,kBAAA,CAAA,CACxEA,CAAAA,CAAa,gBAAA,GAAkB+B,CAAAA,CAAI,gBAAA,CAAoB/B,CAAAA,CAAa,gBAAA,CAAA,CAAA,CAEpE,CAAC+B,CAAe,CACzB,CAEA,SAASC,EAAAA,CACPpC,CAAAA,CACAqC,CAAAA,CACA7B,EACkB,CAClB,GAAI,CAAC6B,CAAAA,EAAc,MAAA,CAAO,IAAA,CAAKA,CAAU,CAAA,CAAE,MAAA,GAAW,CAAA,CAAG,OAAO,IAAA,CAChE,IAAMC,CAAAA,CAAiB,EAAC,CAClBC,EAAe,EAAC,CACtB,IAAA,GAAW,CAACC,CAAAA,CAAUC,CAAI,CAAA,GAAK,MAAA,CAAO,OAAA,CAAQJ,CAAU,CAAA,CACtDC,CAAAA,CAAKE,CAA0B,CAAA,CAAIC,CAAAA,CAAK,CAAC,EACzCF,CAAAA,CAAGC,CAA0B,CAAA,CAAIC,CAAAA,CAAK,CAAC,CAAA,CAGzC,IAAA,GAAW,CAACD,EAAUvD,CAAK,CAAA,GAAK,MAAA,CAAO,OAAA,CAAQqD,CAAI,CAAA,CAC/CtC,CAAAA,CAAG,KAAA,CAAcwC,CAAQ,CAAA,CAAIvD,CAAAA,CAEjC,IAAM0C,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CAAQ,CAACsC,CAAAA,CAAMC,CAAE,CAAA,CAAG,CAAE,GAAG/B,CAAAA,CAAS,IAAA,CAAM,UAAW,CAAC,EACpE,OAAAmB,CAAAA,CAAK,gBAAA,CAAiB,QAAA,CAAU,IAAM,CACpC,IAAA,GAAW,CAACa,CAAAA,CAAUC,CAAI,CAAA,GAAK,MAAA,CAAO,OAAA,CAAQJ,CAAU,CAAA,CACpDrC,CAAAA,CAAG,MAAcwC,CAAQ,CAAA,CAAI,MAAA,CAAOC,CAAAA,CAAK,CAAC,CAAC,EAEjD,CAAC,CAAA,CACDd,CAAAA,CAAK,gBAAA,CAAiB,QAAA,CAAU,IAAM,CACpC,IAAA,GAAW,CAACa,EAAUvD,CAAK,CAAA,GAAK,MAAA,CAAO,OAAA,CAAQqD,CAAI,CAAA,CAC/CtC,CAAAA,CAAG,KAAA,CAAcwC,CAAQ,CAAA,CAAIvD,EAEnC,CAAC,CAAA,CACM0C,CACT,CAMA,SAASe,EAAAA,CAAwB1C,EAAiB,CAChDA,CAAAA,CAAG,aAAA,CAAc,CAAE,OAAA,CAAS,IAAK,CAAC,CAAA,CAAE,OAAA,CAAS2C,CAAAA,EAAcA,CAAAA,CAAU,MAAA,EAAQ,EAC/E,CAEA,SAASlB,EAAkBzB,CAAAA,CAAyB,CAlMpD,IAAAiC,CAAAA,CAmME,IAAMW,CAAAA,CAAO,MAAA,CAAA,CAAQ,MAAA,CAAO,QAAA,CAAA,CAASX,CAAAA,CAAAjC,CAAAA,CAAG,OAAA,CAAQ,UAAA,GAAX,IAAA,CAAAiC,CAAAA,CAAyB,GAAA,CAAK,EAAE,CAAA,EAAK,CAAA,EAAK,CAAC,CAAA,CAChF,OAAAjC,CAAAA,CAAG,OAAA,CAAQ,UAAA,CAAa4C,CAAAA,CACjBA,CACT,CAEA,SAASZ,CAAAA,CAAqBhC,CAAAA,CAAiB6C,CAAAA,CAAwB,CACrE,OAAO7C,CAAAA,CAAG,OAAA,CAAQ,UAAA,GAAe6C,CACnC,CAEA,SAASC,EAAAA,CAAc9C,CAAAA,CAAqC,CAC1D,IAAI+C,CAAAA,CAAS/C,CAAAA,CAAG,aAAA,CAChB,KAAO+C,CAAAA,EAAUA,CAAAA,GAAW,QAAA,CAAS,MAAQA,CAAAA,GAAW,QAAA,CAAS,eAAA,EAAiB,CAChF,IAAMC,CAAAA,CAAQ,gBAAA,CAAiBD,CAAM,CAAA,CACrC,GAAI,uBAAA,CAAwB,IAAA,CAAK,CAAA,EAAGC,CAAAA,CAAM,SAAS,CAAA,EAAGA,EAAM,QAAQ,CAAA,CAAE,CAAA,EAAKD,CAAAA,CAAO,YAAA,CAAeA,CAAAA,CAAO,YAAA,CACtG,OAAOA,EAETA,CAAAA,CAASA,CAAAA,CAAO,cAClB,CACA,OAAO,IACT,CAEA,SAASE,GAAsBjD,CAAAA,CAAiBkD,CAAAA,CAA6C,CAxN7F,IAAAjB,CAAAA,CAyNE,IAAMkB,CAAAA,CAAOL,EAAAA,CAAc9C,CAAE,CAAA,CACvBoD,CAAAA,CAAAA,CAAanB,CAAAA,CAAAkB,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,CAAM,YAAA,GAAN,KAAAlB,CAAAA,CAAsB,MAAA,CAAO,WAAA,CAC1CoB,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAI,GAAA,CAAM,IAAA,CAAK,IAAI,GAAA,CAAMH,CAAS,CAAC,CAAA,CAClDI,CAAAA,CAAQ,IAAA,CAAK,KAAA,CAAMF,CAAAA,CAAa,KAAK,GAAA,CAAI,GAAA,CAAMC,CAAAA,CAAU,CAAC,CAAC,CAAA,CACjE,OAAO,CACL,IAAA,CAAAF,CAAAA,CACA,UAAA,CAAY,CAAA,CAAA,EAAIG,CAAK,CAAA,QAAA,EAAWA,CAAK,CAAA,MAAA,CAAA,CACrC,UAAW,CACb,CACF,CAEA,SAASC,EAAAA,CAAqBC,CAAAA,CAAyD,CACrF,OAAIA,CAAAA,GAAc,QAAA,CAAiB,QAAA,CAC/BA,CAAAA,GAAc,OAAA,EAAWA,CAAAA,GAAc,KAAA,CAAc,UAAA,CAClD,YACT,CAEA,SAASC,EAAAA,CAAkBzD,CAAAA,CAAiB0D,CAAAA,CAAiD,CAC3F,IAAMC,CAAAA,CAAQnE,EAAAA,EAAgB,CAC9BmE,CAAAA,CAAM,WAAA,CAAcD,CAAAA,EAAQ,MAAA,CAC5BC,CAAAA,CAAM,KAAA,CAAM,WAAa,gBAAA,CAAiB3D,CAAE,CAAA,CAAE,UAAA,GAAe,QAAA,CAAW,KAAA,CAAQ,gBAAA,CAAiBA,CAAE,EAAE,UAAA,CACrGA,CAAAA,CAAG,WAAA,CAAY2D,CAAK,CAAA,CACpB,IAAMC,CAAAA,CAAOD,CAAAA,CAAM,uBAAsB,CACzC,OAAAA,CAAAA,CAAM,MAAA,EAAO,CACN,CAAE,KAAA,CAAOC,CAAAA,CAAK,KAAA,CAAO,MAAA,CAAQA,CAAAA,CAAK,MAAO,CAClD,CAEA,SAASC,EAAAA,CAAsB7D,EAAiBoB,CAAAA,CAAiBC,CAAAA,CAAiBwB,CAAAA,CAAgB,CApPlG,IAAAZ,CAAAA,CAqPE,IAAM6B,CAAAA,CAAW,gBAAA,CAAiB9D,CAAE,CAAA,CAC9B+D,CAAAA,CAAUN,EAAAA,CAAkBzD,CAAAA,CAAIoB,CAAO,CAAA,CACvC4C,EAAUP,EAAAA,CAAkBzD,CAAAA,CAAIqB,CAAO,CAAA,CACvC4C,CAAAA,CAAcjE,CAAAA,CAAG,qBAAA,EAAsB,CACvCkE,CAAAA,CAAmB,MAAA,CAAO,UAAA,CAAWlE,CAAAA,CAAG,KAAA,CAAM,QAAA,EAAY,GAAG,CAAA,CAC7DmE,EAAQ,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,GAAA,CAAIJ,CAAAA,CAAQ,KAAA,CAAOC,CAAAA,CAAQ,KAAA,CAAOC,EAAY,KAAA,CAAOC,CAAgB,CAAC,CAAA,CAC7FE,CAAAA,CAAiBb,EAAAA,CAAqBO,CAAAA,CAAS,SAAS,EACxDO,CAAAA,CAAW,CACf,QAAA,CAAUrE,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,OAAA,CAASA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,UAAA,CAAYA,CAAAA,CAAG,MAAM,UACvB,CAAA,CAEAA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAU,cAAA,CACnBA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,SAAW,CAAA,EAAGmE,CAAK,CAAA,EAAA,CAAA,CAItBG,CAAYrC,CAAAA,CAAAjC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAiC,CAAAA,CAAkB,GACpCjC,CAAAA,CAAG,WAAA,CAAc,EAAA,CACjB,IAAMuE,CAAAA,CAAS,SAAS,aAAA,CAAc,MAAM,CAAA,CAC5CA,CAAAA,CAAO,WAAA,CAAcnD,CAAAA,EAAW,MAAA,CAChCmD,CAAAA,CAAO,MAAM,OAAA,CAAU,GAAA,CACvBA,CAAAA,CAAO,KAAA,CAAM,aAAA,CAAgB,MAAA,CAC7BvE,CAAAA,CAAG,WAAA,CAAYuE,CAAM,CAAA,CAErB,IAAMC,CAAAA,CAAQ,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC3CA,CAAAA,CAAM,WAAA,CAAcpD,CAAAA,CACpBoD,CAAAA,CAAM,KAAA,CAAM,OAAA,CAAU,aAAA,CACtBA,CAAAA,CAAM,KAAA,CAAM,WAAa,QAAA,CACzBA,CAAAA,CAAM,KAAA,CAAM,cAAA,CAAiBJ,CAAAA,CAC7BI,CAAAA,CAAM,KAAA,CAAM,UAAA,CAAa,MACzBA,CAAAA,CAAM,KAAA,CAAM,QAAA,CAAW,UAAA,CACvBA,CAAAA,CAAM,KAAA,CAAM,IAAA,CAAO,GAAA,CACnBA,EAAM,KAAA,CAAM,GAAA,CAAM,GAAA,CAClBA,CAAAA,CAAM,KAAA,CAAM,KAAA,CAAQ,MAAA,CACpBA,CAAAA,CAAM,KAAA,CAAM,MAAA,CAAS,MAAA,CACrBA,CAAAA,CAAM,KAAA,CAAM,UAAA,CAAaV,CAAAA,CAAS,UAAA,CAElC,IAAMW,CAAAA,CAAQ,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC3CA,CAAAA,CAAM,WAAA,CAAcpD,CAAAA,CACpBoD,EAAM,KAAA,CAAM,OAAA,CAAU,aAAA,CACtBA,CAAAA,CAAM,KAAA,CAAM,UAAA,CAAa,QAAA,CACzBA,CAAAA,CAAM,MAAM,cAAA,CAAiBL,CAAAA,CAC7BK,CAAAA,CAAM,KAAA,CAAM,UAAA,CAAa,KAAA,CACzBA,CAAAA,CAAM,KAAA,CAAM,QAAA,CAAW,UAAA,CACvBA,CAAAA,CAAM,KAAA,CAAM,IAAA,CAAO,GAAA,CACnBA,CAAAA,CAAM,KAAA,CAAM,IAAM,GAAA,CAClBA,CAAAA,CAAM,KAAA,CAAM,KAAA,CAAQ,MAAA,CACpBA,CAAAA,CAAM,KAAA,CAAM,MAAA,CAAS,MAAA,CACrBA,CAAAA,CAAM,KAAA,CAAM,UAAA,CAAaX,CAAAA,CAAS,UAAA,CAElC9D,CAAAA,CAAG,WAAA,CAAYwE,CAAK,CAAA,CACpBxE,CAAAA,CAAG,WAAA,CAAYyE,CAAK,CAAA,CAEpB,SAASC,CAAAA,EAAU,CACb7B,CAAAA,EAAS,CAACb,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GAC5C7C,CAAAA,CAAG,KAAA,CAAM,SAAWqE,CAAAA,CAAS,QAAA,CAC7BrE,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAUqE,CAAAA,CAAS,OAAA,CAC5BrE,CAAAA,CAAG,MAAM,QAAA,CAAWqE,CAAAA,CAAS,QAAA,CAC7BrE,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAaqE,CAAAA,CAAS,UAAA,CAC/BrE,EAAG,WAAA,CAAcqB,CAAAA,EACnB,CAEA,OAAO,CAAE,KAAA,CAAAmD,CAAAA,CAAO,KAAA,CAAAC,CAAAA,CAAO,OAAA,CAAAC,CAAQ,CACjC,CAEA,SAASC,EAAAA,CAAsB3E,CAAAA,CAAiBoB,EAAiBC,CAAAA,CAAiB,CAChF,IAAM0C,CAAAA,CAAUN,EAAAA,CAAkBzD,CAAAA,CAAIoB,CAAO,CAAA,CACvC4C,CAAAA,CAAUP,EAAAA,CAAkBzD,CAAAA,CAAIqB,CAAO,CAAA,CACvCuD,CAAAA,CAAe5E,CAAAA,CAAG,qBAAA,GAAwB,KAAA,CAC1CmE,CAAAA,CAAQ,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,GAAA,CAAIJ,CAAAA,CAAQ,KAAA,CAAOC,CAAAA,CAAQ,KAAA,CAAOY,CAAY,CAAC,CAAA,CACxET,CAAAA,CAAQ,CAAA,GACVnE,CAAAA,CAAG,MAAM,QAAA,CAAW,CAAA,EAAGmE,CAAK,CAAA,EAAA,CAAA,EAEhC,CAgBA,SAASU,EAAAA,CAAenB,CAAAA,CAAc,CAIpC,IAAMoB,CAAAA,CAAa,IAAA,CAAqD,SAAA,CACxE,GAAIA,CAAAA,CAAW,CACb,IAAMC,EAAY,IAAID,CAAAA,CAAU,IAAA,CAAM,CAAE,WAAA,CAAa,UAAW,CAAC,CAAA,CACjE,OAAO,KAAA,CAAM,IAAA,CAAKC,CAAAA,CAAU,OAAA,CAAQrB,CAAI,CAAA,CAAG,CAAC,CAAE,OAAA,CAAAsB,CAAQ,CAAA,GAAMA,CAAO,CACrE,CACA,OAAO,KAAA,CAAM,IAAA,CAAKtB,CAAI,CACxB,CAEA,SAASuB,EAAAA,CAAwBjF,CAAAA,CAAiB,CAChD,IAAMqE,CAAAA,CAAWrE,CAAAA,CAAG,OAAA,CAAQ,wBAAA,CAC5B,GAAKqE,CAAAA,CACL,CAAA,GAAI,CACF,MAAA,CAAO,MAAA,CAAOrE,CAAAA,CAAG,KAAA,CAAO,IAAA,CAAK,KAAA,CAAMqE,CAAQ,CAAC,EAC9C,CAAA,MAAQa,CAAAA,CAAA,CACNlF,CAAAA,CAAG,KAAA,CAAM,KAAA,CAAQ,EAAA,CACjBA,CAAAA,CAAG,MAAM,UAAA,CAAa,EAAA,CACtBA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,GACtB,CACA,OAAOA,EAAG,OAAA,CAAQ,yBAAA,CACpB,CAEA,SAASmF,EAAAA,CAAaC,CAAAA,CAA+B,CACnD,GAAIA,CAAAA,EAAS,IAAA,EAA8B,OAAOA,CAAAA,EAAS,SAAA,CAAW,OAAO,EAAA,CAC7E,GAAI,OAAOA,CAAAA,EAAS,QAAA,EAAY,OAAOA,CAAAA,EAAS,QAAA,CAAU,OAAO,MAAA,CAAOA,CAAI,EAC5E,GAAI,KAAA,CAAM,OAAA,CAAQA,CAAI,CAAA,CAAG,OAAOA,CAAAA,CAAK,GAAA,CAAID,EAAY,CAAA,CAAE,IAAA,CAAK,EAAE,CAAA,CAC9D,GAAI,OAAOC,CAAAA,EAAS,QAAA,EAAY,OAAA,GAAWA,CAAAA,CAAM,CAC/C,IAAMC,CAAAA,CAASD,CAAAA,CAA4D,KAAA,CAC3E,OAAOD,GAAaE,CAAAA,CAAM,QAAQ,CACpC,CACA,OAAO,EACT,CAEA,SAASC,GAAatF,CAAAA,CAA8B,CAClD,IAAMuF,CAAAA,CAAkB,KAAA,CAAM,IAAA,CAAKvF,CAAAA,CAAG,QAAQ,EAAE,MAAA,CAC7CwF,CAAAA,EAAwBA,CAAAA,YAAa,WACxC,CAAA,CACA,OAAID,CAAAA,CAAgB,MAAA,GAAW,CAAA,CAAUA,CAAAA,CAAgB,CAAC,CAAA,CACnDvF,CACT,CAEA,SAASyF,EAAAA,CAAuBzF,EAAiB0D,CAAAA,CAAcgC,CAAAA,CAAe,IAAA,CAAqB,CACjG,IAAMC,CAAAA,CAAwB,EAAC,CAC/B3F,CAAAA,CAAG,WAAA,CAAc,EAAA,CACjB,IAAM4F,CAAAA,CAAW,QAAA,CAAS,sBAAA,EAAuB,CAC3CC,EAAQhB,EAAAA,CAAenB,CAAI,CAAA,CACjC,IAAA,IAAWoC,CAAAA,IAAQD,CAAAA,CACjB,GAAIC,CAAAA,GAAS,GAAA,CACXF,CAAAA,CAAS,WAAA,CAAY,QAAA,CAAS,cAAA,CAAe,GAAG,CAAC,CAAA,CAAA,KAC5C,CACL,IAAMG,CAAAA,CAAQ,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC3CA,CAAAA,CAAM,KAAA,CAAM,QAAU,aAAA,CACtBA,CAAAA,CAAM,KAAA,CAAM,UAAA,CAAa,YAAA,CACzBA,CAAAA,CAAM,KAAA,CAAM,QAAA,CAAW,SACvBA,CAAAA,CAAM,KAAA,CAAM,MAAA,CAAS,CAAA,EAAGL,CAAY,CAAA,EAAA,CAAA,CACpCK,CAAAA,CAAM,KAAA,CAAM,UAAA,CAAa,CAAA,EAAGL,CAAY,CAAA,CAAA,CACxCK,CAAAA,CAAM,KAAA,CAAM,aAAA,CAAgB,KAAA,CAC5B,IAAMC,CAAAA,CAAQ,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC3CA,CAAAA,CAAM,WAAA,CAAcF,CAAAA,CACpBE,CAAAA,CAAM,KAAA,CAAM,OAAA,CAAU,OAAA,CACtBA,CAAAA,CAAM,KAAA,CAAM,UAAA,CAAa,MAAA,CACzBA,EAAM,KAAA,CAAM,UAAA,CAAa,oBAAA,CACzBD,CAAAA,CAAM,WAAA,CAAYC,CAAK,CAAA,CACvBJ,CAAAA,CAAS,WAAA,CAAYG,CAAK,CAAA,CAC1BJ,CAAAA,CAAO,IAAA,CAAKK,CAAK,EACnB,CAEF,OAAAhG,CAAAA,CAAG,WAAA,CAAY4F,CAAQ,CAAA,CAChBD,CACT,CAEA,SAASM,EAAAA,CACPjG,EACA0D,CAAAA,CACAwC,CAAAA,CACe,CACf,IAAMC,CAAAA,CAAuB,EAAC,CAC9BnG,CAAAA,CAAG,YAAc,EAAA,CACjB,IAAM4F,CAAAA,CAAW,QAAA,CAAS,sBAAA,EAAuB,CAC3CC,CAAAA,CAAQhB,EAAAA,CAAenB,CAAI,CAAA,CACjC,IAAA,IAAS0C,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIP,CAAAA,CAAM,MAAA,CAAQO,IAAK,CACrC,IAAMN,CAAAA,CAAOD,CAAAA,CAAMO,CAAC,CAAA,CACpB,GAAIN,CAAAA,GAAS,GAAA,CACXF,CAAAA,CAAS,WAAA,CAAY,QAAA,CAAS,cAAA,CAAe,GAAG,CAAC,CAAA,CAAA,KAC5C,CACL,IAAMS,CAAAA,CAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC1CA,CAAAA,CAAK,WAAA,CAAcP,CAAAA,CACnBO,CAAAA,CAAK,KAAA,CAAM,OAAA,CAAU,cAAA,CACrBH,CAAAA,EAAA,IAAA,EAAAA,CAAAA,CAAYG,EAAMP,CAAAA,CAAMM,CAAAA,CAAAA,CACxBR,CAAAA,CAAS,WAAA,CAAYS,CAAI,CAAA,CACzBF,CAAAA,CAAM,IAAA,CAAKE,CAAI,EACjB,CACF,CACA,OAAArG,CAAAA,CAAG,WAAA,CAAY4F,CAAQ,CAAA,CAChBO,CACT,CAEA,SAASG,EAAAA,CACPtG,CAAAA,CACAf,CAAAA,CACAsH,CAAAA,CACAC,CAAAA,CACA,CA5bF,IAAAvE,CAAAA,CA6bEgD,EAAAA,CAAwBjF,CAAE,CAAA,CAC1BA,CAAAA,CAAG,aAAA,CAAc,CAAE,QAAS,IAAK,CAAC,CAAA,CAAE,OAAA,CAAS2C,CAAAA,EAAcA,CAAAA,CAAU,MAAA,EAAQ,EAE7E,IAAMe,CAAAA,CAAOzE,CAAAA,GAAU,MAAA,CAAA,CAAYgD,CAAAA,CAAAjC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAiC,EAAkB,EAAA,CAAK,MAAA,CAAOhD,CAAK,CAAA,CACtE,GAAI,CAACyE,CAAAA,CAAM,OAEX,IAAMb,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAGlC,GADgB8B,EAAAA,EAAqB,CACxB,CACX,IAAMH,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CACd,CAAC,CAAE,OAAA,CAAS,CAAE,EAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,QAAA,CAAUuG,CAAAA,CAAW,EAAG,MAAA,CAAQ9H,EAAAA,CAAQ,IAAA,CAAM,UAAW,CAC7D,CAAA,CACA,OAAAkD,CAAAA,CAAK,QAAA,CAAW,IAAM,CACfK,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC2D,CAAAA,EAAA,MAAAA,CAAAA,EAAAA,EACF,CAAA,CACA7E,CAAAA,CAAK,QAAA,CAAW,IAAM,CAAC,CAAA,CAChBA,CACT,CAEA,IAAMmC,CAAAA,CAAW,gBAAA,CAAiB9D,CAAE,CAAA,CAC9ByG,CAAAA,CAAe3C,CAAAA,CAAS,OAAS,MAAA,CACjC4C,CAAAA,CAAW,MAAA,CAAO,UAAA,CAAW5C,CAAAA,CAAS,QAAQ,CAAA,EAAK,EAAA,CACnD6C,CAAAA,CAAa,MAAA,CAAO,UAAA,CAAW7C,CAAAA,CAAS,UAAU,CAAA,EAAK4C,CAAAA,CAAW,GAAA,EAAO,GACzEE,CAAAA,CAAYD,CAAAA,CAAa,CAAA,CACzBE,CAAAA,CAAWpD,EAAAA,CAAkBzD,CAAAA,CAAI0D,CAAI,CAAA,CACrCoD,EAAQ,IAAA,CAAK,IAAA,CAAKD,CAAAA,CAAS,KAAA,CAAQ,GAAI,CAAA,CACvCE,CAAAA,CAAQ,IAAA,CAAK,IAAI,CAAA,CAAG,IAAA,CAAK,KAAA,CAAML,CAAAA,CAAW,GAAI,CAAC,CAAA,CAE/CrC,CAAAA,CAAW,CACf,QAAA,CAAUrE,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,OAAA,CAASA,CAAAA,CAAG,KAAA,CAAM,QAClB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,KAAA,CAAOA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAChB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UAAA,CACrB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,WAAYA,CAAAA,CAAG,KAAA,CAAM,UACvB,CAAA,CACAA,CAAAA,CAAG,OAAA,CAAQ,wBAAA,CAA2B,IAAA,CAAK,SAAA,CAAUqE,CAAQ,CAAA,CAE7D,IAAM2C,CAAAA,CAAa,IAAA,CAAK,IAAA,CAAKhH,CAAAA,CAAG,uBAAsB,CAAE,KAAK,CAAA,CAC7DA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,CAAAA,CAAG,MAAM,OAAA,CAAU,cAAA,CACnBA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,MAAQ,aAAA,CACjBA,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,CAAA,MAAA,EAASyG,CAAY,CAAA,CAAA,CAC3CzG,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,CAAA,EAAGgH,CAAU,CAAA,EAAA,CAAA,CACjChH,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,qBACtBA,CAAAA,CAAG,SAAA,CAAY,EAAA,CAEf,IAAMiH,CAAAA,CAAS,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC5CA,CAAAA,CAAO,WAAA,CAAcvD,CAAAA,CACrBuD,CAAAA,CAAO,KAAA,CAAM,UAAA,CAAa,QAAA,CAC1BA,EAAO,KAAA,CAAM,OAAA,CAAU,OAAA,CAEvB,IAAMC,CAAAA,CAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC1C,MAAA,CAAO,MAAA,CAAOA,CAAAA,CAAK,KAAA,CAAO,CACxB,QAAA,CAAU,UAAA,CACV,MAAO,CAAA,EAAGJ,CAAK,CAAA,EAAA,CAAA,CACf,MAAA,CAAQ,CAAA,EAAGC,CAAK,CAAA,EAAA,CAAA,CAChB,IAAA,CAAM,IACN,GAAA,CAAK,CAAA,EAAG,IAAA,CAAK,KAAA,CAAA,CAAOJ,CAAAA,CAAaI,CAAAA,EAAS,CAAC,CAAC,KAC5C,UAAA,CAAYN,CAAAA,CACZ,YAAA,CAAc,OAAA,CACd,aAAA,CAAe,MAAA,CACf,UAAA,CAAY,WACd,CAAC,CAAA,CAED,SAASU,CAAAA,CAASC,CAAAA,CAA6B,CAC7C,IAAMC,CAAAA,CAAO,SAAS,aAAA,CAAc,MAAM,CAAA,CACpCrB,CAAAA,CAAQ,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC3C,OAAAA,CAAAA,CAAM,WAAA,CAActC,CAAAA,CACpB,MAAA,CAAO,MAAA,CAAO2D,CAAAA,CAAK,KAAA,CAAO,CACxB,SAAU,UAAA,CACV,IAAA,CAAM,GAAA,CACN,KAAA,CAAO,MAAA,CACP,MAAA,CAAQ,KAAA,CACR,QAAA,CAAU,QAAA,CACV,aAAA,CAAe,MAAA,CACf,UAAA,CAAY,oBAAA,CACZ,GAAA,CAAKD,CAAAA,GAAc,KAAA,CAAQ,IAAM,EAAA,CACjC,MAAA,CAAQA,CAAAA,GAAc,QAAA,CAAW,GAAA,CAAM,EACzC,CAAC,CAAA,CACD,OAAO,MAAA,CAAOpB,CAAAA,CAAM,KAAA,CAAO,CACzB,OAAA,CAAS,OAAA,CACT,KAAA,CAAOS,CAAAA,CACP,WAAY,oBAAA,CACZ,SAAA,CAAWW,CAAAA,GAAc,KAAA,CAAQ,CAAA,WAAA,EAAcR,CAAS,CAAA,GAAA,CAAA,CAAQ,CAAA,WAAA,EAAc,CAACA,CAAS,CAAA,GAAA,CAC1F,CAAC,CAAA,CACDS,CAAAA,CAAK,WAAA,CAAYrB,CAAK,EACf,CAAE,IAAA,CAAAqB,CAAAA,CAAM,KAAA,CAAArB,CAAM,CACvB,CAEA,IAAMsB,CAAAA,CAAMH,CAAAA,CAAS,KAAK,CAAA,CACpBI,CAAAA,CAASJ,CAAAA,CAAS,QAAQ,CAAA,CAChCnH,EAAG,MAAA,CAAOiH,CAAAA,CAAQC,CAAAA,CAAMI,CAAAA,CAAI,IAAA,CAAMC,CAAAA,CAAO,IAAI,CAAA,CAE7C,IAAMC,CAAAA,CAA+B,EAAC,CAEtCA,CAAAA,CAAgB,IAAA,CAAKN,CAAAA,CAAK,OAAA,CACxB,CAAC,CAAE,SAAA,CAAW,CAAA,YAAA,EAAeJ,CAAK,CAAA,GAAA,CAAM,CAAA,CAAG,CAAE,SAAA,CAAW,cAAcD,CAAAA,CAAS,KAAK,CAAA,GAAA,CAAM,CAAC,CAAA,CAC3F,CAAE,QAAA,CAAUN,CAAAA,CAAW,IAAM,MAAA,CAAQ/H,EAAAA,CAAa,IAAA,CAAM,UAAW,CACrE,CAAC,CAAA,CAEDgJ,CAAAA,CAAgB,IAAA,CAAKF,CAAAA,CAAI,KAAA,CAAM,OAAA,CAC7B,CACE,CAAE,SAAA,CAAW,CAAA,WAAA,EAAcV,CAAS,CAAA,GAAA,CAAM,CAAA,CAC1C,CAAE,SAAA,CAAW,eAAgB,CAC/B,CAAA,CACA,CAAE,QAAA,CAAUL,CAAAA,CAAW,GAAA,CAAM,KAAA,CAAOA,CAAAA,CAAW,GAAA,CAAM,MAAA,CAAQhI,EAAAA,CAAU,KAAM,UAAW,CAC1F,CAAC,CAAA,CAED,IAAMoD,CAAAA,CAAO4F,CAAAA,CAAO,KAAA,CAAM,OAAA,CACxB,CACE,CAAE,SAAA,CAAW,CAAA,WAAA,EAAc,CAACX,CAAS,CAAA,GAAA,CAAM,EAC3C,CAAE,SAAA,CAAW,CAAA,WAAA,EAAc,CAACA,CAAS,CAAA,GAAA,CAAM,CAC7C,CAAA,CACA,CAAE,QAAA,CAAUL,CAAAA,CAAW,GAAA,CAAM,KAAA,CAAOA,CAAAA,CAAW,GAAA,CAAM,MAAA,CAAQhI,EAAAA,CAAU,KAAM,UAAW,CAC1F,CAAA,CACAiJ,CAAAA,CAAgB,IAAA,CAAK7F,CAAI,CAAA,CAEzB,IAAI8F,CAAAA,CAAW,KAAA,CAEf,SAAS/C,CAAAA,EAAU,CACb+C,CAAAA,GACJA,CAAAA,CAAW,IAAA,CACXD,EAAgB,OAAA,CAAS7E,CAAAA,EAAc,CACjCA,CAAAA,CAAU,SAAA,GAAc,MAAA,EAAQA,CAAAA,CAAU,MAAA,GAChD,CAAC,CAAA,CACIX,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC,MAAA,CAAO,OAAO7C,CAAAA,CAAG,KAAA,CAAOqE,CAAQ,CAAA,CAChCrE,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CACjB,OAAO1D,CAAAA,CAAG,OAAA,CAAQ,wBAAA,CAAA,EACpB,CAEA,OAAA2B,CAAAA,CAAK,QAAA,CAAW,IAAM,CACpB+C,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,CAAA,CACA7E,CAAAA,CAAK,QAAA,CAAW+C,EAET/C,CACT,CAEA,SAAS+F,EAAAA,CACP1H,CAAAA,CACAf,CAAAA,CACAsH,CAAAA,CACAC,CAAAA,CACA,CAplBF,IAAAvE,CAAAA,CAqlBE,IAAMyB,CAAAA,CAAOzE,CAAAA,GAAU,MAAA,CAAA,CAAYgD,CAAAA,CAAAjC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAiC,CAAAA,CAAkB,EAAA,CAAK,MAAA,CAAOhD,CAAK,CAAA,CACtE,GAAI,CAACyE,CAAAA,CAAM,OAEX,IAAMb,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAGlC,GADgB8B,EAAAA,EAAqB,CACxB,CACX,IAAMH,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CACd,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,QAAA,CAAUuG,CAAAA,CAAW,CAAA,CAAG,MAAA,CAAQjI,EAAAA,CAAS,IAAA,CAAM,UAAW,CAC9D,CAAA,CACA,OAAAqD,CAAAA,CAAK,QAAA,CAAW,IAAM,CACfK,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC2D,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,EACF,CAAA,CACA7E,CAAAA,CAAK,QAAA,CAAW,IAAM,CAAC,CAAA,CAChBA,CACT,CAEA,IAAMgG,CAAAA,CAAU,IAAA,CAAK,IAAA,CAAKjE,CAAAA,CAAK,MAAA,CAAS,CAAC,CAAA,CACnCkE,CAAAA,CAAWlE,CAAAA,CAAK,KAAA,CAAM,CAAA,CAAGiE,CAAO,EAChCE,CAAAA,CAAYnE,CAAAA,CAAK,KAAA,CAAMiE,CAAO,CAAA,CAC9BtD,CAAAA,CAAW,CACf,OAAA,CAASrE,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,UAAA,CAAYA,EAAG,KAAA,CAAM,UAAA,CACrB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UACvB,CAAA,CAEMgH,CAAAA,CAAa,IAAA,CAAK,IAAA,CAAKhH,CAAAA,CAAG,qBAAA,GAAwB,KAAK,CAAA,CAC7DA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAU,aAAA,CACnBA,CAAAA,CAAG,KAAA,CAAM,SAAW,UAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,KAAA,CACtBA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,GAAGgH,CAAU,CAAA,EAAA,CAAA,CACjChH,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,oBAAA,CACtBA,CAAAA,CAAG,SAAA,CAAY,EAAA,CAEf,IAAM8H,CAAAA,CAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CACpCC,CAAAA,CAAQ,SAAS,aAAA,CAAc,MAAM,CAAA,CAC3CD,CAAAA,CAAK,WAAA,CAAcF,CAAAA,CACnBG,CAAAA,CAAM,WAAA,CAAcF,CAAAA,CACpB,MAAA,CAAO,MAAA,CAAOC,CAAAA,CAAK,KAAA,CAAO,CAAE,OAAA,CAAS,cAAA,CAAgB,WAAY,oBAAqB,CAAC,CAAA,CACvF,MAAA,CAAO,MAAA,CAAOC,CAAAA,CAAM,KAAA,CAAO,CAAE,OAAA,CAAS,cAAA,CAAgB,UAAA,CAAY,oBAAqB,CAAC,CAAA,CACxF/H,CAAAA,CAAG,MAAA,CAAO8H,EAAMC,CAAK,CAAA,CAErBD,CAAAA,CAAK,OAAA,CACH,CACE,CAAE,OAAA,CAAS,CAAA,CAAG,UAAW,mBAAoB,CAAA,CAC7C,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAC3C,EACA,CAAE,QAAA,CAAAvB,CAAAA,CAAU,MAAA,CAAQ9H,EAAAA,CAAQ,IAAA,CAAM,UAAW,CAC/C,CAAA,CAEA,IAAMkD,CAAAA,CAAOoG,CAAAA,CAAM,OAAA,CACjB,CACE,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,kBAAmB,CAAA,CAC5C,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAC3C,CAAA,CACA,CAAE,QAAA,CAAAxB,CAAAA,CAAU,MAAA,CAAQ9H,EAAAA,CAAQ,IAAA,CAAM,UAAW,CAC/C,CAAA,CAEA,OAAAkD,CAAAA,CAAK,QAAA,CAAW,IAAM,CACfK,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC,MAAA,CAAO,MAAA,CAAO7C,CAAAA,CAAG,KAAA,CAAOqE,CAAQ,EAChCrE,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CACjB8C,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,EACF,CAAA,CACA7E,CAAAA,CAAK,SAAW,IAAM,CACfK,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC,MAAA,CAAO,MAAA,CAAO7C,EAAG,KAAA,CAAOqE,CAAQ,CAAA,CAChCrE,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,EACnB,CAAA,CAEO/B,CACT,CAEA,SAASqG,EAAAA,CACPhI,CAAAA,CACAf,CAAAA,CACAsH,CAAAA,CACAC,CAAAA,CACA,CAvqBF,IAAAvE,CAAAA,CAwqBE,IAAMY,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5B0D,CAAAA,CAAOzE,CAAAA,GAAU,QAAYgD,CAAAA,CAAAjC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAiC,CAAAA,CAAkB,EAAA,CAAK,MAAA,CAAOhD,CAAK,EACtE,GAAI,CAACyE,CAAAA,CAAM,OAEX,GAAI5B,EAAAA,EAAqB,CAAG,CAC1B,IAAMH,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CACd,CAAC,CAAE,OAAA,CAAS,CAAE,EAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,QAAA,CAAUuG,CAAAA,CAAW,EAAG,MAAA,CAAQjI,EAAAA,CAAS,IAAA,CAAM,UAAW,CAC9D,CAAA,CACA,OAAAqD,CAAAA,CAAK,SAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACf7E,CACT,CAEA3B,CAAAA,CAAG,KAAA,CAAM,KAAA,CAAQ,EAAA,CACjB,IAAM8D,CAAAA,CAAW,gBAAA,CAAiB9D,CAAE,CAAA,CAC9B6G,CAAAA,CAAWpD,GAAkBzD,CAAAA,CAAI0D,CAAI,CAAA,CACrCgD,CAAAA,CAAW,MAAA,CAAO,UAAA,CAAW5C,CAAAA,CAAS,QAAQ,CAAA,EAAK,EAAA,CACnDmE,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAI,GAAA,CAAK,IAAA,CAAK,IAAA,CAAKpB,EAAS,KAAA,CAAQH,CAAAA,CAAW,GAAG,CAAC,CAAA,CAClEwB,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAIxB,CAAAA,CAAW,GAAA,CAAK,IAAA,CAAK,IAAA,CAAKG,CAAAA,CAAS,MAAA,CAASH,CAAAA,CAAW,GAAG,CAAC,CAAA,CAC9E9G,CAAAA,CAAQkE,CAAAA,CAAS,KAAA,EAAS,oBAAA,CAC1BO,CAAAA,CAAW,CACf,QAAA,CAAUrE,EAAG,KAAA,CAAM,QAAA,CACnB,OAAA,CAASA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,QAAA,CAAUA,CAAAA,CAAG,MAAM,QAAA,CACnB,KAAA,CAAOA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAChB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UACvB,CAAA,CAEAA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,QAAU,cAAA,CACnBA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,SAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAAQ,aAAA,CACjBA,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,oBAAA,CAEtB,IAAMmI,CAAAA,CAAM,IAAA,CAAK,IAAI,MAAA,CAAO,gBAAA,EAAoB,CAAA,CAAG,CAAC,CAAA,CAC9CC,CAAAA,CAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA,CAC9CA,CAAAA,CAAO,KAAA,CAAQ,IAAA,CAAK,KAAA,CAAMH,CAAAA,CAAUE,CAAG,EACvCC,CAAAA,CAAO,MAAA,CAAS,IAAA,CAAK,KAAA,CAAMF,CAAAA,CAAUC,CAAG,CAAA,CACxCC,CAAAA,CAAO,MAAM,QAAA,CAAW,UAAA,CACxBA,CAAAA,CAAO,KAAA,CAAM,IAAA,CAAO,KAAA,CACpBA,CAAAA,CAAO,KAAA,CAAM,IAAM,KAAA,CACnBA,CAAAA,CAAO,KAAA,CAAM,SAAA,CAAY,uBAAA,CACzBA,CAAAA,CAAO,KAAA,CAAM,KAAA,CAAQ,CAAA,EAAGH,CAAO,CAAA,EAAA,CAAA,CAC/BG,CAAAA,CAAO,KAAA,CAAM,MAAA,CAAS,CAAA,EAAGF,CAAO,KAChCE,CAAAA,CAAO,KAAA,CAAM,aAAA,CAAgB,MAAA,CAC7BA,CAAAA,CAAO,KAAA,CAAM,MAAA,CAAS,GAAA,CACtB,IAAMC,CAAAA,CAAMD,CAAAA,CAAO,UAAA,CAAW,IAAI,CAAA,CAClC,GAAI,CAACC,EAAK,CACRrI,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CACjB,MACF,CACA,IAAM4E,CAAAA,CAAUD,CAAAA,CAChBC,CAAAA,CAAQ,KAAA,CAAMH,CAAAA,CAAKA,CAAG,CAAA,CACtBnI,CAAAA,CAAG,WAAA,CAAYoI,CAAM,CAAA,CAErB,IAAMG,CAAAA,CAAM,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA,CAC3CA,CAAAA,CAAI,MAAQN,CAAAA,CACZM,CAAAA,CAAI,MAAA,CAASL,CAAAA,CACb,IAAMM,CAAAA,CAAOD,CAAAA,CAAI,UAAA,CAAW,IAAI,CAAA,CAChC,GAAI,CAACC,CAAAA,CAAM,CACTxI,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CACjB,MACF,CACA8E,CAAAA,CAAK,IAAA,CAAO1E,CAAAA,CAAS,IAAA,EAAQ,CAAA,IAAA,EAAO4C,CAAQ,gBAC5C8B,CAAAA,CAAK,SAAA,CAAY,QAAA,CACjBA,CAAAA,CAAK,YAAA,CAAe,QAAA,CACpBA,CAAAA,CAAK,SAAA,CAAY,OACjBA,CAAAA,CAAK,QAAA,CAAS9E,CAAAA,CAAMuE,CAAAA,CAAU,CAAA,CAAGC,CAAAA,CAAU,CAAC,CAAA,CAE5C,GAAM,CAAE,IAAA,CAAAO,CAAK,CAAA,CAAID,CAAAA,CAAK,YAAA,CAAa,CAAA,CAAG,CAAA,CAAGP,CAAAA,CAASC,CAAO,CAAA,CACnDQ,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAI,CAAA,CAAG,IAAA,CAAK,MAAMhC,CAAAA,CAAW,EAAE,CAAC,CAAA,CAC/CiC,CAAAA,CAAqC,EAAC,CAC5C,IAAA,IAASC,EAAI,CAAA,CAAGA,CAAAA,CAAIV,CAAAA,CAASU,CAAAA,EAAKF,CAAAA,CAChC,IAAA,IAASG,CAAAA,CAAI,CAAA,CAAGA,EAAIZ,CAAAA,CAASY,CAAAA,EAAKH,CAAAA,CAC5BD,CAAAA,CAAAA,CAAMG,CAAAA,CAAIX,CAAAA,CAAUY,CAAAA,EAAK,CAAA,CAAI,CAAC,CAAA,CAAI,GAAA,EAAKF,CAAAA,CAAO,IAAA,CAAK,CAAE,CAAA,CAAAE,CAAAA,CAAG,EAAAD,CAAE,CAAC,CAAA,CAGnE,GAAID,CAAAA,CAAO,MAAA,GAAW,CAAA,CAAG,CACvB3I,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CACjB,MACF,CAGA,IAAMoF,CAAAA,CAAO,IAAA,CAAK,IAAI,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKH,CAAAA,CAAO,MAAA,CADrB,GAC0C,CAAC,CAAA,CAC1DI,CAAAA,CAAUJ,CAAAA,CAAO,MAAA,CAAO,CAAC5H,CAAAA,CAAGqF,CAAAA,GAAMA,CAAAA,CAAI0C,CAAAA,GAAS,CAAC,CAAA,CAChDE,CAAAA,CAAKf,CAAAA,CAAU,CAAA,CACfgB,CAAAA,CAAKf,CAAAA,CAAU,CAAA,CACfgB,CAAAA,CAAYH,EAAQ,GAAA,CAAKI,CAAAA,EAAU,CACvC,IAAMC,CAAAA,CAAQ,IAAA,CAAK,MAAA,EAAO,CAAI,KAAK,EAAA,CAAK,CAAA,CAClCC,CAAAA,CAAQ,CAAA,CAAI,IAAA,CAAK,MAAA,EAAO,CAAI,EAAA,CAClC,OAAO,CACL,CAAA,CAAGL,CAAAA,CACH,CAAA,CAAGC,CAAAA,CACH,EAAA,CAAI,IAAA,CAAK,IAAIG,CAAK,CAAA,CAAIC,CAAAA,CACtB,EAAA,CAAI,IAAA,CAAK,GAAA,CAAID,CAAK,CAAA,CAAIC,CAAAA,CACtB,EAAA,CAAIF,CAAAA,CAAM,CAAA,CACV,EAAA,CAAIA,CAAAA,CAAM,CACZ,CACF,CAAC,CAAA,CAEGG,CAAAA,CAAU,CAAA,CACV7B,CAAAA,CAAW,KAAA,CACT8B,CAAAA,CAAQ,IAAA,CAAK,GAAA,CAAI,IAAA,CAAMhD,CAAQ,CAAA,CAC/BiD,CAAAA,CAAQ,WAAA,CAAY,GAAA,EAAI,CACxB7H,CAAAA,CAAO3B,EAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAUuJ,CAAAA,CAAO,IAAA,CAAM,UAAW,CAAC,EAE/F,SAAS7E,EAAAA,EAAU,CACb+C,CAAAA,GACJA,CAAAA,CAAW,IAAA,CACX,oBAAA,CAAqB6B,CAAO,CAAA,CACvBtH,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC,MAAA,CAAO,MAAA,CAAO7C,CAAAA,CAAG,MAAOqE,CAAQ,CAAA,CAChCrE,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CAAAA,EACnB,CAEA,SAAS+F,CAAAA,CAAMC,CAAAA,CAAa,CAC1B,GAAIjC,CAAAA,EAAY,CAACzF,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,EAAG,OAClD,IAAM8G,CAAAA,CAAUD,CAAAA,CAAMF,CAAAA,CACtBlB,CAAAA,CAAQ,SAAA,CAAU,CAAA,CAAG,CAAA,CAAGL,CAAAA,CAASC,CAAO,CAAA,CACxCgB,CAAAA,CAAU,OAAA,CAASU,CAAAA,EAAa,CAC9BA,EAAS,EAAA,EAAA,CAAOA,CAAAA,CAAS,EAAA,CAAKA,CAAAA,CAAS,CAAA,EAAK,IAAA,CAC5CA,CAAAA,CAAS,EAAA,EAAM,IACfA,CAAAA,CAAS,CAAA,EAAKA,CAAAA,CAAS,EAAA,CACvBA,CAAAA,CAAS,EAAA,EAAA,CAAOA,CAAAA,CAAS,EAAA,CAAKA,EAAS,CAAA,EAAK,IAAA,CAC5CA,CAAAA,CAAS,EAAA,EAAM,GAAA,CACfA,CAAAA,CAAS,CAAA,EAAKA,CAAAA,CAAS,EAAA,CACvB,IAAMC,EAAAA,CAAO,IAAA,CAAK,KAAA,CAAMD,CAAAA,CAAS,CAAA,CAAIA,CAAAA,CAAS,GAAIA,CAAAA,CAAS,CAAA,CAAIA,CAAAA,CAAS,EAAE,CAAA,CACpE/J,CAAAA,CAAQ,IAAA,CAAK,GAAA,CAAI,IAAM,GAAA,CAAA,CAAQ,CAAA,CAAI,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGgK,EAAAA,CAAO,GAAG,CAAA,EAAK,GAAI,CAAA,CACxEvB,CAAAA,CAAQ,WAAA,CAAczI,CAAAA,CACtByI,CAAAA,CAAQ,SAAA,CAAY1I,CAAAA,CACpB0I,CAAAA,CAAQ,SAAA,EAAU,CAClBA,CAAAA,CAAQ,GAAA,CAAIsB,CAAAA,CAAS,CAAA,CAAGA,CAAAA,CAAS,CAAA,CAAG,KAAK,GAAA,CAAI,CAAA,CAAGlB,CAAAA,CAAU,GAAI,CAAA,CAAG,CAAA,CAAG,IAAA,CAAK,EAAA,CAAK,CAAC,CAAA,CAC/EJ,CAAAA,CAAQ,IAAA,GACV,CAAC,CAAA,CACDA,CAAAA,CAAQ,WAAA,CAAc,EAClB,CAACb,CAAAA,EAAYzF,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,EAAK8G,CAAAA,CAAUJ,CAAAA,GAAOD,CAAAA,CAAU,qBAAA,CAAsBG,CAAK,CAAA,EAC5G,CAEA,OAAAA,CAAAA,CAAMD,CAAK,EACX7H,CAAAA,CAAK,QAAA,CAAW,IAAM,CACpB+C,EAAAA,EAAQ,CACR8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,CAAA,CACA7E,CAAAA,CAAK,QAAA,CAAW+C,EAAAA,CACT/C,CACT,CAEA,SAASmI,GACP9J,CAAAA,CACAf,CAAAA,CACAsH,CAAAA,CACAC,CAAAA,CACA,CAh0BF,IAAAvE,EAAAA,CAi0BE,IAAMY,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5B0D,CAAAA,CAAOzE,CAAAA,GAAU,MAAA,CAAA,CAAYgD,EAAAA,CAAAjC,EAAG,WAAA,GAAH,IAAA,CAAAiC,EAAAA,CAAkB,EAAA,CAAK,MAAA,CAAOhD,CAAK,CAAA,CACtE,GAAI,CAACyE,CAAAA,CAAM,OAEX,GAAI5B,EAAAA,EAAqB,CAAG,CAC1B,IAAMH,CAAAA,CAAO3B,EAAG,OAAA,CACd,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,QAAA,CAAUuG,CAAAA,CAAW,CAAA,CAAG,MAAA,CAAQjI,GAAS,IAAA,CAAM,UAAW,CAC9D,CAAA,CACA,OAAAqD,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACf7E,CACT,CAEA3B,CAAAA,CAAG,KAAA,CAAM,KAAA,CAAQ,GACjB,IAAM8D,CAAAA,CAAW,gBAAA,CAAiB9D,CAAE,CAAA,CAC9B6G,CAAAA,CAAWpD,EAAAA,CAAkBzD,CAAAA,CAAI0D,CAAI,CAAA,CACrCgD,CAAAA,CAAW,MAAA,CAAO,UAAA,CAAW5C,CAAAA,CAAS,QAAQ,CAAA,EAAK,GACnDmE,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAI,GAAA,CAAK,IAAA,CAAK,IAAA,CAAKpB,CAAAA,CAAS,KAAA,CAAQH,EAAW,GAAG,CAAC,CAAA,CAClEwB,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAIxB,CAAAA,CAAW,GAAA,CAAK,KAAK,IAAA,CAAKG,CAAAA,CAAS,MAAA,CAASH,CAAAA,CAAW,GAAG,CAAC,CAAA,CAC9E9G,CAAAA,CAAQkE,CAAAA,CAAS,KAAA,EAAS,oBAAA,CAC1BO,CAAAA,CAAW,CACf,QAAA,CAAUrE,CAAAA,CAAG,KAAA,CAAM,SACnB,OAAA,CAASA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,KAAA,CAAOA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAChB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UACvB,EAEAA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAU,cAAA,CACnBA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,SAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAAQ,aAAA,CACjBA,EAAG,KAAA,CAAM,UAAA,CAAa,oBAAA,CAEtB,IAAMmI,CAAAA,CAAM,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,kBAAoB,CAAA,CAAG,CAAC,CAAA,CAC9CC,CAAAA,CAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA,CAC9CA,EAAO,KAAA,CAAQ,IAAA,CAAK,KAAA,CAAMH,CAAAA,CAAUE,CAAG,CAAA,CACvCC,CAAAA,CAAO,MAAA,CAAS,IAAA,CAAK,KAAA,CAAMF,CAAAA,CAAUC,CAAG,CAAA,CACxCC,CAAAA,CAAO,KAAA,CAAM,QAAA,CAAW,WACxBA,CAAAA,CAAO,KAAA,CAAM,IAAA,CAAO,KAAA,CACpBA,CAAAA,CAAO,KAAA,CAAM,GAAA,CAAM,KAAA,CACnBA,EAAO,KAAA,CAAM,SAAA,CAAY,uBAAA,CACzBA,CAAAA,CAAO,KAAA,CAAM,KAAA,CAAQ,CAAA,EAAGH,CAAO,KAC/BG,CAAAA,CAAO,KAAA,CAAM,MAAA,CAAS,CAAA,EAAGF,CAAO,CAAA,EAAA,CAAA,CAChCE,CAAAA,CAAO,KAAA,CAAM,aAAA,CAAgB,MAAA,CAC7BA,CAAAA,CAAO,KAAA,CAAM,MAAA,CAAS,GAAA,CACtB,IAAMC,CAAAA,CAAMD,EAAO,UAAA,CAAW,IAAI,CAAA,CAClC,GAAI,CAACC,CAAAA,CAAK,CACRrI,CAAAA,CAAG,YAAc0D,CAAAA,CACjB,MACF,CACA,IAAM4E,CAAAA,CAAUD,CAAAA,CAChBC,CAAAA,CAAQ,KAAA,CAAMH,EAAKA,CAAG,CAAA,CACtBnI,CAAAA,CAAG,WAAA,CAAYoI,CAAM,CAAA,CAErB,IAAMG,CAAAA,CAAM,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA,CAC3CA,CAAAA,CAAI,KAAA,CAAQN,CAAAA,CACZM,CAAAA,CAAI,OAASL,CAAAA,CACb,IAAMM,CAAAA,CAAOD,CAAAA,CAAI,UAAA,CAAW,IAAI,CAAA,CAChC,GAAI,CAACC,CAAAA,CAAM,CACTxI,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CACjB,MACF,CACA8E,EAAK,IAAA,CAAO1E,CAAAA,CAAS,IAAA,EAAQ,CAAA,IAAA,EAAO4C,CAAQ,CAAA,aAAA,CAAA,CAC5C8B,CAAAA,CAAK,SAAA,CAAY,QAAA,CACjBA,CAAAA,CAAK,YAAA,CAAe,QAAA,CACpBA,CAAAA,CAAK,SAAA,CAAY,MAAA,CACjBA,CAAAA,CAAK,SAAS9E,CAAAA,CAAMuE,CAAAA,CAAU,CAAA,CAAGC,CAAAA,CAAU,CAAC,CAAA,CAE5C,GAAM,CAAE,KAAAO,CAAK,CAAA,CAAID,CAAAA,CAAK,YAAA,CAAa,CAAA,CAAG,CAAA,CAAGP,CAAAA,CAASC,CAAO,EACnDQ,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAI,CAAA,CAAG,IAAA,CAAK,KAAA,CAAMhC,CAAAA,CAAW,EAAE,CAAC,CAAA,CAC/CiC,CAAAA,CAAqC,EAAC,CAC5C,IAAA,IAASC,CAAAA,CAAI,CAAA,CAAGA,EAAIV,CAAAA,CAASU,CAAAA,EAAKF,CAAAA,CAChC,IAAA,IAASG,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIZ,CAAAA,CAASY,CAAAA,EAAKH,CAAAA,CAC5BD,CAAAA,CAAAA,CAAMG,CAAAA,CAAIX,CAAAA,CAAUY,CAAAA,EAAK,CAAA,CAAI,CAAC,EAAI,GAAA,EAAKF,CAAAA,CAAO,IAAA,CAAK,CAAE,CAAA,CAAAE,CAAAA,CAAG,CAAA,CAAAD,CAAE,CAAC,CAAA,CAGnE,GAAID,CAAAA,CAAO,MAAA,GAAW,CAAA,CAAG,CACvB3I,CAAAA,CAAG,YAAc0D,CAAAA,CACjB,MACF,CAGA,IAAMoF,CAAAA,CAAO,IAAA,CAAK,GAAA,CAAI,CAAA,CAAG,KAAK,IAAA,CAAKH,CAAAA,CAAO,MAAA,CADrB,GAC0C,CAAC,CAAA,CAE1DO,CAAAA,CADUP,CAAAA,CAAO,OAAO,CAAC5H,CAAAA,CAAGqF,CAAAA,GAAMA,CAAAA,CAAI0C,CAAAA,GAAS,CAAC,CAAA,CAC5B,GAAA,CAAKK,CAAAA,GAAW,CACxC,CAAA,CAAG,IAAA,CAAK,MAAA,EAAO,CAAIlB,CAAAA,CACnB,CAAA,CAAG,KAAK,MAAA,EAAO,CAAIC,CAAAA,CACnB,EAAA,CAAI,CAAA,CACJ,EAAA,CAAI,CAAA,CACJ,EAAA,CAAIiB,CAAAA,CAAM,CAAA,CACV,EAAA,CAAIA,CAAAA,CAAM,CAAA,CACV,KAAA,CAAO,IAAA,CAAK,MAAA,GAAW,IAAA,CAAK,GAAA,CAAI,GAAA,CAAK5C,CAAAA,CAAW,GAAI,CACtD,CAAA,CAAE,CAAA,CAEE+C,CAAAA,CAAU,CAAA,CACV7B,CAAAA,CAAW,KAAA,CACT8B,CAAAA,CAAQ,IAAA,CAAK,GAAA,CAAI,IAAA,CAAMhD,CAAQ,CAAA,CAC/BiD,CAAAA,CAAQ,WAAA,CAAY,GAAA,EAAI,CACxB7H,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,EAAG,CAAE,QAAA,CAAUuJ,CAAAA,CAAO,IAAA,CAAM,UAAW,CAAC,CAAA,CAE/F,SAAS7E,CAAAA,EAAU,CACb+C,CAAAA,GACJA,CAAAA,CAAW,IAAA,CACX,oBAAA,CAAqB6B,CAAO,CAAA,CACvBtH,EAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC,MAAA,CAAO,MAAA,CAAO7C,CAAAA,CAAG,KAAA,CAAOqE,CAAQ,EAChCrE,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CAAAA,EACnB,CAEA,SAAS+F,CAAAA,CAAMC,CAAAA,CAAa,CAC1B,GAAIjC,CAAAA,EAAY,CAACzF,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,CAAG,OAClD,IAAM8G,CAAAA,CAAUD,CAAAA,CAAMF,CAAAA,CAChBO,CAAAA,CAAW,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGJ,CAAAA,CAAUJ,CAAK,CAAA,CAC5CjB,CAAAA,CAAQ,SAAA,CAAU,CAAA,CAAG,CAAA,CAAGL,CAAAA,CAASC,CAAO,CAAA,CACxCgB,EAAU,OAAA,CAASU,CAAAA,EAAa,CAC9B,GAAID,CAAAA,CAAUC,CAAAA,CAAS,KAAA,CAAO,OAC9BA,EAAS,EAAA,EAAA,CAAOA,CAAAA,CAAS,EAAA,CAAKA,CAAAA,CAAS,CAAA,EAAK,IAAA,CAC5CA,CAAAA,CAAS,EAAA,EAAM,EAAA,CACfA,CAAAA,CAAS,CAAA,EAAKA,CAAAA,CAAS,EAAA,CACvBA,CAAAA,CAAS,EAAA,EAAA,CAAOA,CAAAA,CAAS,GAAKA,CAAAA,CAAS,CAAA,EAAK,IAAA,CAC5CA,CAAAA,CAAS,EAAA,EAAM,EAAA,CACfA,CAAAA,CAAS,CAAA,EAAKA,CAAAA,CAAS,EAAA,CACvB,IAAMC,CAAAA,CAAO,IAAA,CAAK,KAAA,CAAMD,CAAAA,CAAS,CAAA,CAAIA,EAAS,EAAA,CAAIA,CAAAA,CAAS,CAAA,CAAIA,CAAAA,CAAS,EAAE,CAAA,CACpEI,EAAAA,CAAS,CAAA,CAAI,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGH,CAAAA,CAAO,GAAG,CAAA,CACzCvB,CAAAA,CAAQ,WAAA,CAAc,KAAK,GAAA,CAAI,GAAA,CAAM,GAAA,CAAOyB,CAAAA,CAAW,GAAA,CAAOC,EAAAA,CAAS,GAAI,CAAA,CAC3E1B,EAAQ,SAAA,CAAY1I,CAAAA,CACpB0I,CAAAA,CAAQ,SAAA,EAAU,CAClBA,CAAAA,CAAQ,GAAA,CAAIsB,CAAAA,CAAS,EAAGA,CAAAA,CAAS,CAAA,CAAG,IAAA,CAAK,GAAA,CAAI,GAAA,CAAKlB,CAAAA,CAAU,GAAI,CAAA,CAAG,CAAA,CAAG,IAAA,CAAK,EAAA,CAAK,CAAC,CAAA,CACjFJ,CAAAA,CAAQ,IAAA,GACV,CAAC,CAAA,CACDA,CAAAA,CAAQ,WAAA,CAAc,CAAA,CAClB,CAACb,CAAAA,EAAYzF,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,EAAK8G,CAAAA,CAAUJ,CAAAA,GAAOD,CAAAA,CAAU,qBAAA,CAAsBG,CAAK,CAAA,EAC5G,CAEA,OAAAA,CAAAA,CAAMD,CAAK,CAAA,CACX7H,CAAAA,CAAK,QAAA,CAAW,IAAM,CACpB+C,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,CAAA,CACA7E,CAAAA,CAAK,QAAA,CAAW+C,EACT/C,CACT,CAEA,SAASsI,EAAAA,CACPjK,CAAAA,CACAf,CAAAA,CACAsH,CAAAA,CACAC,CAAAA,CACA,CAt9BF,IAAAvE,EAAAA,CAu9BE,IAAMY,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5B0D,CAAAA,CAAOzE,IAAU,MAAA,CAAA,CAAYgD,EAAAA,CAAAjC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAiC,EAAAA,CAAkB,EAAA,CAAK,MAAA,CAAOhD,CAAK,CAAA,CACtE,GAAI,CAACyE,CAAAA,CAAM,OAEX,GAAI5B,EAAAA,GAAwB,CAC1B,IAAMH,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CACd,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,SAAUuG,CAAAA,CAAW,CAAA,CAAG,MAAA,CAAQjI,EAAAA,CAAS,IAAA,CAAM,UAAW,CAC9D,CAAA,CACA,OAAAqD,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACf7E,CACT,CAEA3B,CAAAA,CAAG,KAAA,CAAM,KAAA,CAAQ,EAAA,CACjB,IAAM8D,CAAAA,CAAW,gBAAA,CAAiB9D,CAAE,EAC9B6G,CAAAA,CAAWpD,EAAAA,CAAkBzD,CAAAA,CAAI0D,CAAI,CAAA,CACrCgD,CAAAA,CAAW,MAAA,CAAO,UAAA,CAAW5C,EAAS,QAAQ,CAAA,EAAK,EAAA,CACnDmE,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAI,GAAA,CAAK,IAAA,CAAK,IAAA,CAAKpB,CAAAA,CAAS,KAAA,CAAQH,CAAAA,CAAW,GAAG,CAAC,CAAA,CAClEwB,CAAAA,CAAU,KAAK,GAAA,CAAIxB,CAAAA,CAAW,GAAA,CAAK,IAAA,CAAK,IAAA,CAAKG,CAAAA,CAAS,MAAA,CAASH,CAAAA,CAAW,GAAG,CAAC,CAAA,CAC9E9G,CAAAA,CAAQkE,CAAAA,CAAS,KAAA,EAAS,oBAAA,CAC1BO,CAAAA,CAAW,CACf,SAAUrE,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,OAAA,CAASA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,KAAA,CAAOA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAChB,UAAA,CAAYA,EAAG,KAAA,CAAM,UACvB,CAAA,CAEAA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,CAAAA,CAAG,MAAM,OAAA,CAAU,cAAA,CACnBA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,SAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,MAAQ,aAAA,CACjBA,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,oBAAA,CAEtB,IAAMmI,CAAAA,CAAM,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,gBAAA,EAAoB,CAAA,CAAG,CAAC,CAAA,CAC9CC,CAAAA,CAAS,QAAA,CAAS,cAAc,QAAQ,CAAA,CAC9CA,CAAAA,CAAO,KAAA,CAAQ,IAAA,CAAK,KAAA,CAAMH,CAAAA,CAAUE,CAAG,CAAA,CACvCC,CAAAA,CAAO,MAAA,CAAS,IAAA,CAAK,KAAA,CAAMF,CAAAA,CAAUC,CAAG,CAAA,CACxCC,EAAO,KAAA,CAAM,QAAA,CAAW,UAAA,CACxBA,CAAAA,CAAO,KAAA,CAAM,IAAA,CAAO,KAAA,CACpBA,CAAAA,CAAO,KAAA,CAAM,GAAA,CAAM,KAAA,CACnBA,CAAAA,CAAO,KAAA,CAAM,SAAA,CAAY,uBAAA,CACzBA,CAAAA,CAAO,MAAM,KAAA,CAAQ,CAAA,EAAGH,CAAO,CAAA,EAAA,CAAA,CAC/BG,CAAAA,CAAO,KAAA,CAAM,MAAA,CAAS,CAAA,EAAGF,CAAO,CAAA,EAAA,CAAA,CAChCE,CAAAA,CAAO,KAAA,CAAM,aAAA,CAAgB,MAAA,CAC7BA,CAAAA,CAAO,KAAA,CAAM,MAAA,CAAS,IACtB,IAAMC,CAAAA,CAAMD,CAAAA,CAAO,UAAA,CAAW,IAAI,CAAA,CAClC,GAAI,CAACC,CAAAA,CAAK,CACRrI,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CACjB,MACF,CACA,IAAM4E,EAAUD,CAAAA,CAChBC,CAAAA,CAAQ,KAAA,CAAMH,CAAAA,CAAKA,CAAG,CAAA,CACtBnI,CAAAA,CAAG,WAAA,CAAYoI,CAAM,CAAA,CAErB,IAAMG,CAAAA,CAAM,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA,CAC3CA,EAAI,KAAA,CAAQN,CAAAA,CACZM,CAAAA,CAAI,MAAA,CAASL,CAAAA,CACb,IAAMM,CAAAA,CAAOD,CAAAA,CAAI,UAAA,CAAW,IAAI,CAAA,CAChC,GAAI,CAACC,CAAAA,CAAM,CACTxI,CAAAA,CAAG,YAAc0D,CAAAA,CACjB,MACF,CACA8E,CAAAA,CAAK,IAAA,CAAO1E,CAAAA,CAAS,IAAA,EAAQ,CAAA,IAAA,EAAO4C,CAAQ,CAAA,aAAA,CAAA,CAC5C8B,CAAAA,CAAK,SAAA,CAAY,QAAA,CACjBA,CAAAA,CAAK,YAAA,CAAe,QAAA,CACpBA,CAAAA,CAAK,UAAY,MAAA,CACjBA,CAAAA,CAAK,QAAA,CAAS9E,CAAAA,CAAMuE,CAAAA,CAAU,CAAA,CAAGC,CAAAA,CAAU,CAAC,CAAA,CAE5C,GAAM,CAAE,IAAA,CAAAO,CAAK,CAAA,CAAID,CAAAA,CAAK,YAAA,CAAa,EAAG,CAAA,CAAGP,CAAAA,CAASC,CAAO,CAAA,CACnDQ,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAI,CAAA,CAAG,IAAA,CAAK,KAAA,CAAMhC,CAAAA,CAAW,EAAE,CAAC,CAAA,CAC/CiC,CAAAA,CAAqC,GAC3C,IAAA,IAASC,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIV,CAAAA,CAASU,CAAAA,EAAKF,CAAAA,CAChC,IAAA,IAASG,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIZ,CAAAA,CAASY,CAAAA,EAAKH,CAAAA,CAC5BD,CAAAA,CAAAA,CAAMG,CAAAA,CAAIX,EAAUY,CAAAA,EAAK,CAAA,CAAI,CAAC,CAAA,CAAI,GAAA,EAAKF,CAAAA,CAAO,IAAA,CAAK,CAAE,EAAAE,CAAAA,CAAG,CAAA,CAAAD,CAAE,CAAC,CAAA,CAGnE,GAAID,CAAAA,CAAO,MAAA,GAAW,EAAG,CACvB3I,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CACjB,MACF,CAGA,IAAMoF,CAAAA,CAAO,IAAA,CAAK,GAAA,CAAI,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKH,CAAAA,CAAO,MAAA,CADrB,GAC0C,CAAC,CAAA,CAE1DO,CAAAA,CADUP,CAAAA,CAAO,MAAA,CAAO,CAAC5H,CAAAA,CAAGqF,CAAAA,GAAMA,CAAAA,CAAI0C,IAAS,CAAC,CAAA,CAC5B,GAAA,CAAKK,CAAAA,GAAW,CACxC,CAAA,CAAGA,CAAAA,CAAM,CAAA,CAAA,CAAK,KAAK,MAAA,EAAO,CAAI,EAAA,EAAOzC,CAAAA,CAAW,EAAA,CAChD,CAAA,CAAG,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGyC,CAAAA,CAAM,CAAA,CAAIzC,CAAAA,EAAY,EAAA,CAAM,IAAA,CAAK,MAAA,EAAO,CAAI,IAAI,CAAA,CAC/D,EAAA,CAAA,CAAK,IAAA,CAAK,MAAA,EAAO,CAAI,EAAA,EAAO,GAAA,CAC5B,EAAA,CAAI,IAAM,IAAA,CAAK,MAAA,EAAO,CAAI,GAAA,CAC1B,EAAA,CAAIyC,CAAAA,CAAM,CAAA,CACV,EAAA,CAAIA,EAAM,CACZ,CAAA,CAAE,CAAA,CAEEG,CAAAA,CAAU,CAAA,CACV7B,CAAAA,CAAW,KAAA,CACT8B,CAAAA,CAAQ,IAAA,CAAK,GAAA,CAAI,IAAA,CAAMhD,CAAQ,CAAA,CAC/BiD,CAAAA,CAAQ,WAAA,CAAY,GAAA,GACpB7H,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAUuJ,CAAAA,CAAO,KAAM,UAAW,CAAC,CAAA,CAE/F,SAAS7E,CAAAA,EAAU,CACb+C,CAAAA,GACJA,CAAAA,CAAW,IAAA,CACX,oBAAA,CAAqB6B,CAAO,CAAA,CACvBtH,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC,OAAO,MAAA,CAAO7C,CAAAA,CAAG,KAAA,CAAOqE,CAAQ,CAAA,CAChCrE,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CAAAA,EACnB,CAEA,SAAS+F,CAAAA,CAAMC,CAAAA,CAAa,CAC1B,GAAIjC,CAAAA,EAAY,CAACzF,CAAAA,CAAqBhC,EAAI6C,CAAK,CAAA,CAAG,OAClD,IAAM8G,CAAAA,CAAUD,CAAAA,CAAMF,CAAAA,CAChBO,CAAAA,CAAW,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGJ,CAAAA,CAAUJ,CAAK,CAAA,CAC5CjB,CAAAA,CAAQ,SAAA,CAAU,EAAG,CAAA,CAAGL,CAAAA,CAASC,CAAO,CAAA,CACxCgB,CAAAA,CAAU,OAAA,CAASU,CAAAA,EAAa,CAC9BA,CAAAA,CAAS,EAAA,EAAM,GAAA,EAAQ,CAAA,CAAIG,CAAAA,CAAAA,CAC3BH,CAAAA,CAAS,EAAA,EAAA,CAAOA,CAAAA,CAAS,GAAKA,CAAAA,CAAS,CAAA,EAAK,IAAA,CAC5CA,CAAAA,CAAS,EAAA,EAAM,GAAA,CACfA,CAAAA,CAAS,CAAA,EAAKA,CAAAA,CAAS,EAAA,CACvBA,CAAAA,CAAS,EAAA,EAAA,CAAOA,CAAAA,CAAS,EAAA,CAAKA,CAAAA,CAAS,CAAA,EAAK,KAC5CA,CAAAA,CAAS,EAAA,EAAM,GAAA,CACfA,CAAAA,CAAS,CAAA,EAAKA,CAAAA,CAAS,EAAA,CACvB,IAAMC,EAAO,IAAA,CAAK,KAAA,CAAMD,CAAAA,CAAS,CAAA,CAAIA,CAAAA,CAAS,EAAA,CAAIA,CAAAA,CAAS,CAAA,CAAIA,EAAS,EAAE,CAAA,CACpE/J,EAAAA,CAAQ,IAAA,CAAK,GAAA,CAAI,GAAA,CAAM,GAAA,CAAOkK,CAAAA,CAAW,GAAA,CAAA,CAAQ,CAAA,CAAI,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGF,CAAAA,CAAO,GAAG,CAAA,EAAK,EAAG,CAAA,CACzFvB,CAAAA,CAAQ,WAAA,CAAczI,EAAAA,CACtByI,CAAAA,CAAQ,SAAA,CAAY1I,CAAAA,CACpB0I,CAAAA,CAAQ,SAAA,EAAU,CAClBA,CAAAA,CAAQ,GAAA,CAAIsB,CAAAA,CAAS,CAAA,CAAGA,CAAAA,CAAS,CAAA,CAAG,KAAK,GAAA,CAAI,GAAA,CAAKlB,CAAAA,CAAU,GAAI,CAAA,CAAG,CAAA,CAAG,IAAA,CAAK,EAAA,CAAK,CAAC,CAAA,CACjFJ,CAAAA,CAAQ,IAAA,GACV,CAAC,CAAA,CACDA,CAAAA,CAAQ,YAAc,CAAA,CAClB,CAACb,CAAAA,EAAYzF,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,EAAK8G,CAAAA,CAAUJ,IAAOD,CAAAA,CAAU,qBAAA,CAAsBG,CAAK,CAAA,EAC5G,CAEA,OAAAA,CAAAA,CAAMD,CAAK,EACX7H,CAAAA,CAAK,QAAA,CAAW,IAAM,CACpB+C,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,CAAA,CACA7E,CAAAA,CAAK,QAAA,CAAW+C,CAAAA,CACT/C,CACT,CAEA,SAASuI,GACPlK,CAAAA,CACAf,CAAAA,CACAsH,CAAAA,CACAC,CAAAA,CACA,CA3mCF,IAAAvE,CAAAA,CA4mCE,IAAMY,EAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5B0D,CAAAA,CAAOzE,CAAAA,GAAU,MAAA,CAAA,CAAYgD,CAAAA,CAAAjC,CAAAA,CAAG,cAAH,IAAA,CAAAiC,CAAAA,CAAkB,EAAA,CAAK,MAAA,CAAOhD,CAAK,CAAA,CACtE,GAAI,CAACyE,CAAAA,CAAM,OAEX,GAAI5B,EAAAA,EAAqB,CAAG,CAC1B,IAAMH,CAAAA,CAAO3B,EAAG,OAAA,CACd,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,QAAA,CAAUuG,CAAAA,CAAW,CAAA,CAAG,MAAA,CAAQjI,EAAAA,CAAS,KAAM,UAAW,CAC9D,CAAA,CACA,OAAAqD,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACf7E,CACT,CAEA3B,CAAAA,CAAG,KAAA,CAAM,KAAA,CAAQ,EAAA,CACjB,IAAM8D,CAAAA,CAAW,gBAAA,CAAiB9D,CAAE,CAAA,CAC9B6G,CAAAA,CAAWpD,EAAAA,CAAkBzD,CAAAA,CAAI0D,CAAI,CAAA,CACrCgD,CAAAA,CAAW,MAAA,CAAO,UAAA,CAAW5C,CAAAA,CAAS,QAAQ,CAAA,EAAK,EAAA,CACnDmE,EAAU,IAAA,CAAK,GAAA,CAAI,GAAA,CAAK,IAAA,CAAK,IAAA,CAAKpB,CAAAA,CAAS,KAAA,CAAQH,CAAAA,CAAW,GAAG,CAAC,CAAA,CAClEwB,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAIxB,CAAAA,CAAW,GAAA,CAAK,KAAK,IAAA,CAAKG,CAAAA,CAAS,MAAA,CAASH,CAAAA,CAAW,GAAG,CAAC,CAAA,CAC9E9G,CAAAA,CAAQkE,EAAS,KAAA,EAAS,oBAAA,CAC1BO,CAAAA,CAAW,CACf,QAAA,CAAUrE,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,QAASA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,KAAA,CAAOA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAChB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UACvB,CAAA,CAEAA,EAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAU,cAAA,CACnBA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,SAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAAQ,aAAA,CACjBA,CAAAA,CAAG,MAAM,UAAA,CAAa,oBAAA,CAEtB,IAAMmI,CAAAA,CAAM,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,gBAAA,EAAoB,CAAA,CAAG,CAAC,CAAA,CAC9CC,CAAAA,CAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA,CAC9CA,EAAO,KAAA,CAAQ,IAAA,CAAK,KAAA,CAAMH,CAAAA,CAAUE,CAAG,CAAA,CACvCC,CAAAA,CAAO,MAAA,CAAS,KAAK,KAAA,CAAMF,CAAAA,CAAUC,CAAG,CAAA,CACxCC,CAAAA,CAAO,KAAA,CAAM,QAAA,CAAW,UAAA,CACxBA,EAAO,KAAA,CAAM,IAAA,CAAO,KAAA,CACpBA,CAAAA,CAAO,KAAA,CAAM,GAAA,CAAM,KAAA,CACnBA,CAAAA,CAAO,KAAA,CAAM,SAAA,CAAY,uBAAA,CACzBA,CAAAA,CAAO,KAAA,CAAM,KAAA,CAAQ,CAAA,EAAGH,CAAO,KAC/BG,CAAAA,CAAO,KAAA,CAAM,MAAA,CAAS,CAAA,EAAGF,CAAO,CAAA,EAAA,CAAA,CAChCE,CAAAA,CAAO,KAAA,CAAM,aAAA,CAAgB,MAAA,CAC7BA,CAAAA,CAAO,KAAA,CAAM,MAAA,CAAS,GAAA,CACtB,IAAMC,CAAAA,CAAMD,EAAO,UAAA,CAAW,IAAI,CAAA,CAClC,GAAI,CAACC,CAAAA,CAAK,CACRrI,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CACjB,MACF,CACA,IAAM4E,CAAAA,CAAUD,CAAAA,CAChBC,CAAAA,CAAQ,MAAMH,CAAAA,CAAKA,CAAG,CAAA,CACtBnI,CAAAA,CAAG,WAAA,CAAYoI,CAAM,CAAA,CAErB,IAAMG,EAAM,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA,CAC3CA,CAAAA,CAAI,KAAA,CAAQN,CAAAA,CACZM,CAAAA,CAAI,OAASL,CAAAA,CACb,IAAMM,CAAAA,CAAOD,CAAAA,CAAI,UAAA,CAAW,IAAI,CAAA,CAChC,GAAI,CAACC,CAAAA,CAAM,CACTxI,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CACjB,MACF,CACA8E,EAAK,IAAA,CAAO1E,CAAAA,CAAS,IAAA,EAAQ,CAAA,IAAA,EAAO4C,CAAQ,CAAA,aAAA,CAAA,CAC5C8B,CAAAA,CAAK,SAAA,CAAY,SACjBA,CAAAA,CAAK,YAAA,CAAe,QAAA,CACpBA,CAAAA,CAAK,SAAA,CAAY,MAAA,CACjBA,CAAAA,CAAK,QAAA,CAAS9E,EAAMuE,CAAAA,CAAU,CAAA,CAAGC,CAAAA,CAAU,CAAC,CAAA,CAE5C,GAAM,CAAE,IAAA,CAAAO,CAAK,CAAA,CAAID,CAAAA,CAAK,YAAA,CAAa,CAAA,CAAG,CAAA,CAAGP,CAAAA,CAASC,CAAO,EACnDQ,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAI,CAAA,CAAG,IAAA,CAAK,KAAA,CAAMhC,CAAAA,CAAW,EAAE,CAAC,CAAA,CAC/CiC,CAAAA,CAAqC,EAAC,CAC5C,IAAA,IAASC,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIV,EAASU,CAAAA,EAAKF,CAAAA,CAChC,IAAA,IAASG,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIZ,CAAAA,CAASY,CAAAA,EAAKH,CAAAA,CAC5BD,CAAAA,CAAAA,CAAMG,CAAAA,CAAIX,CAAAA,CAAUY,CAAAA,EAAK,CAAA,CAAI,CAAC,CAAA,CAAI,KAAKF,CAAAA,CAAO,IAAA,CAAK,CAAE,CAAA,CAAAE,CAAAA,CAAG,CAAA,CAAAD,CAAE,CAAC,CAAA,CAGnE,GAAID,CAAAA,CAAO,MAAA,GAAW,CAAA,CAAG,CACvB3I,CAAAA,CAAG,WAAA,CAAc0D,EACjB,MACF,CAGA,IAAMoF,CAAAA,CAAO,IAAA,CAAK,GAAA,CAAI,CAAA,CAAG,IAAA,CAAK,IAAA,CAAKH,CAAAA,CAAO,MAAA,CADrB,GAC0C,CAAC,CAAA,CAC1DI,CAAAA,CAAUJ,CAAAA,CAAO,OAAO,CAAC5H,CAAAA,CAAGqF,CAAAA,GAAMA,CAAAA,CAAI0C,CAAAA,GAAS,CAAC,CAAA,CAChDE,CAAAA,CAAKf,EAAU,CAAA,CACfgB,CAAAA,CAAKf,CAAAA,CAAU,CAAA,CACfiC,CAAAA,CAAa,IAAA,CAAK,GAAA,CAAIlC,CAAAA,CAASC,CAAO,CAAA,CAAI,GAAA,CAC1CgB,CAAAA,CAAYH,CAAAA,CAAQ,GAAA,CAAKI,CAAAA,EAAU,CACvC,IAAMC,CAAAA,CAAQ,IAAA,CAAK,MAAA,EAAO,CAAI,IAAA,CAAK,EAAA,CAAK,CAAA,CAClCgB,EAAAA,CAASD,GAAc,GAAA,CAAO,IAAA,CAAK,MAAA,EAAO,CAAI,GAAA,CAAA,CACpD,OAAO,CACL,CAAA,CAAGnB,CAAAA,CAAK,IAAA,CAAK,GAAA,CAAII,CAAK,CAAA,CAAIgB,EAAAA,CAC1B,CAAA,CAAGnB,CAAAA,CAAK,KAAK,GAAA,CAAIG,CAAK,CAAA,CAAIgB,EAAAA,CAC1B,EAAA,CAAI,CAAC,IAAA,CAAK,GAAA,CAAIhB,CAAK,CAAA,CAAI,GAAA,CACvB,EAAA,CAAI,IAAA,CAAK,GAAA,CAAIA,CAAK,CAAA,CAAI,IACtB,EAAA,CAAID,CAAAA,CAAM,CAAA,CACV,EAAA,CAAIA,CAAAA,CAAM,CACZ,CACF,CAAC,EAEGG,CAAAA,CAAU,CAAA,CACV7B,CAAAA,CAAW,KAAA,CACT8B,CAAAA,CAAQ,IAAA,CAAK,GAAA,CAAI,IAAA,CAAMhD,CAAQ,CAAA,CAC/BiD,CAAAA,CAAQ,WAAA,CAAY,GAAA,EAAI,CACxB7H,EAAAA,CAAO3B,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAUuJ,CAAAA,CAAO,IAAA,CAAM,UAAW,CAAC,CAAA,CAE/F,SAAS7E,CAAAA,EAAU,CACb+C,CAAAA,GACJA,CAAAA,CAAW,IAAA,CACX,oBAAA,CAAqB6B,CAAO,EACvBtH,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC,MAAA,CAAO,MAAA,CAAO7C,CAAAA,CAAG,KAAA,CAAOqE,CAAQ,CAAA,CAChCrE,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CAAAA,EACnB,CAEA,SAAS+F,CAAAA,CAAMC,EAAa,CAC1B,GAAIjC,CAAAA,EAAY,CAACzF,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,CAAG,OAClD,IAAM8G,CAAAA,CAAUD,CAAAA,CAAMF,CAAAA,CAChBa,EAAAA,CAAe,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGV,EAAUJ,CAAK,CAAA,CAChDjB,CAAAA,CAAQ,SAAA,CAAU,CAAA,CAAG,CAAA,CAAGL,CAAAA,CAASC,CAAO,CAAA,CACxCgB,CAAAA,CAAU,OAAA,CAASU,CAAAA,EAAa,CAC9B,IAAMU,EAAAA,CAAAA,CAAQ,CAAA,CAAID,IAAgB,GAAA,CAC5BE,EAAAA,CAAKX,CAAAA,CAAS,CAAA,CAAIZ,CAAAA,CAClBwB,EAAAA,CAAKZ,CAAAA,CAAS,CAAA,CAAIX,EACxBW,CAAAA,CAAS,EAAA,EAAM,CAACY,EAAAA,CAAKF,EAAAA,CAAO,GAAA,CAC5BV,CAAAA,CAAS,EAAA,EAAMW,GAAKD,EAAAA,CAAO,GAAA,CAC3BV,CAAAA,CAAS,EAAA,EAAA,CAAOA,CAAAA,CAAS,EAAA,CAAKA,CAAAA,CAAS,CAAA,EAAK,IAAA,CAC5CA,CAAAA,CAAS,EAAA,EAAM,GAAA,CACfA,CAAAA,CAAS,CAAA,EAAKA,CAAAA,CAAS,EAAA,CACvBA,EAAS,EAAA,EAAA,CAAOA,CAAAA,CAAS,EAAA,CAAKA,CAAAA,CAAS,CAAA,EAAK,IAAA,CAC5CA,CAAAA,CAAS,EAAA,EAAM,IACfA,CAAAA,CAAS,CAAA,EAAKA,CAAAA,CAAS,EAAA,CACvB,IAAMG,EAAAA,CAAW,CAAA,CAAI,IAAA,CAAK,IAAI,CAAA,CAAG,IAAA,CAAK,KAAA,CAAMH,CAAAA,CAAS,CAAA,CAAIA,CAAAA,CAAS,EAAA,CAAIA,CAAAA,CAAS,CAAA,CAAIA,CAAAA,CAAS,EAAE,CAAA,CAAI,GAAG,CAAA,CACrGtB,CAAAA,CAAQ,WAAA,CAAc,KAAK,GAAA,CAAI,GAAA,CAAM,GAAA,CAAO+B,EAAAA,CAAe,GAAA,CAAON,EAAAA,CAAW,GAAI,CAAA,CACjFzB,CAAAA,CAAQ,SAAA,CAAY1I,CAAAA,CACpB0I,CAAAA,CAAQ,SAAA,EAAU,CAClBA,CAAAA,CAAQ,GAAA,CAAIsB,EAAS,CAAA,CAAGA,CAAAA,CAAS,CAAA,CAAG,IAAA,CAAK,GAAA,CAAI,GAAA,CAAKlB,CAAAA,CAAU,GAAI,CAAA,CAAG,CAAA,CAAG,IAAA,CAAK,EAAA,CAAK,CAAC,CAAA,CACjFJ,CAAAA,CAAQ,IAAA,GACV,CAAC,CAAA,CACDA,CAAAA,CAAQ,WAAA,CAAc,CAAA,CAClB,CAACb,CAAAA,EAAYzF,CAAAA,CAAqBhC,EAAI6C,CAAK,CAAA,EAAK8G,CAAAA,CAAUJ,CAAAA,GAAOD,CAAAA,CAAU,qBAAA,CAAsBG,CAAK,CAAA,EAC5G,CAEA,OAAAA,CAAAA,CAAMD,CAAK,CAAA,CACX7H,EAAAA,CAAK,QAAA,CAAW,IAAM,CACpB+C,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,CAAA,CACA7E,EAAAA,CAAK,QAAA,CAAW+C,EACT/C,EACT,CAEA,SAAS8I,EAAAA,CACPzK,CAAAA,CACAf,CAAAA,CACAsH,CAAAA,CACAC,CAAAA,CACA,CA1wCF,IAAAvE,CAAAA,CAAAC,CAAAA,CA2wCE,IAAMwB,CAAAA,CAAOzE,CAAAA,GAAU,MAAA,CAAA,CAAYgD,EAAAjC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAiC,CAAAA,CAAkB,EAAA,CAAK,MAAA,CAAOhD,CAAK,CAAA,CACtE,GAAI,CAACyE,CAAAA,CAAM,OACX,IAAMb,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,EAElC,GAAI8B,EAAAA,EAAqB,CAAG,CAC1B,IAAMH,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CACd,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,EAC/B,CAAE,QAAA,CAAUuG,CAAAA,CAAW,CAAA,CAAG,MAAA,CAAQjI,EAAAA,CAAS,IAAA,CAAM,UAAW,CAC9D,CAAA,CACA,OAAAqD,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,IACf7E,CACT,CAEA,IAAM0C,CAAAA,CAAW,CACf,OAAA,CAASrE,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,SACnB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UAAA,CACrB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UACvB,CAAA,CACM8D,CAAAA,CAAW,gBAAA,CAAiB9D,CAAE,CAAA,CAC9BoE,CAAAA,CAAiBb,EAAAA,CAAqBO,CAAAA,CAAS,SAAS,CAAA,CAE9D9D,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAU,cAAA,CACnBA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,WACpBA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,UAAA,CACtBA,EAAG,KAAA,CAAM,UAAA,CAAa,oBAAA,CAChBsE,CAAYpC,CAAAA,CAAAlC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAkC,CAAAA,CAAkB,GACpClC,CAAAA,CAAG,WAAA,CAAc,EAAA,CACjB,IAAMuE,CAAAA,CAAS,SAAS,aAAA,CAAc,MAAM,CAAA,CAC5CA,CAAAA,CAAO,WAAA,CAAcb,CAAAA,EAAQ,MAAA,CAC7Ba,CAAAA,CAAO,MAAM,OAAA,CAAU,GAAA,CACvBA,CAAAA,CAAO,KAAA,CAAM,aAAA,CAAgB,MAAA,CAC7BvE,CAAAA,CAAG,WAAA,CAAYuE,CAAM,CAAA,CAErB,IAAMmG,CAAAA,CAAM,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CACzCA,CAAAA,CAAI,KAAA,CAAM,OAAA,CAAU,MAAA,CACpBA,CAAAA,CAAI,KAAA,CAAM,cAAA,CAAiBtG,CAAAA,CAC3BsG,CAAAA,CAAI,MAAM,UAAA,CAAa,KAAA,CACvBA,CAAAA,CAAI,KAAA,CAAM,SAAA,CAAY5G,CAAAA,CAAS,SAAA,CAC/B4G,CAAAA,CAAI,MAAM,UAAA,CAAa,UAAA,CACvBA,CAAAA,CAAI,KAAA,CAAM,QAAA,CAAW,UAAA,CACrBA,CAAAA,CAAI,KAAA,CAAM,MAAQ,GAAA,CAClB1K,CAAAA,CAAG,WAAA,CAAY0K,CAAG,CAAA,CAElB,IAAM7E,CAAAA,CAAQ,KAAA,CAAM,IAAA,CAAKnC,CAAI,CAAA,CAAE,GAAA,CAAKoC,CAAAA,EAAS,CAC3C,IAAMO,CAAAA,CAAO,SAAS,aAAA,CAAc,MAAM,CAAA,CAC1C,OAAAA,CAAAA,CAAK,WAAA,CAAcP,CAAAA,CACnBO,CAAAA,CAAK,KAAA,CAAM,OAAA,CAAU,cAAA,CACrBA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,KAAA,CACxBA,CAAAA,CAAK,MAAM,eAAA,CAAkB,UAAA,CAC7BA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,WAAA,CACxBqE,CAAAA,CAAI,WAAA,CAAYrE,CAAI,CAAA,CACbA,CACT,CAAC,CAAA,CAEKsE,CAAAA,CAAS9E,CAAAA,CAAM,GAAA,CAAI,KAAO,CAAE,KAAA,CAAO,CAAA,CAAG,QAAA,CAAU,CAAA,CAAG,MAAA,CAAQ,KAAA,CAAO,IAAA,CAAM,KAAM,CAAA,CAAE,CAAA,CAClF8E,CAAAA,CAAO,CAAC,CAAA,GAAGA,CAAAA,CAAO,CAAC,CAAA,CAAE,OAAS,IAAA,CAAA,CAElC,IAAIrB,CAAAA,CAAU,CAAA,CACV7B,CAAAA,CAAW,KAAA,CACXmD,CAAAA,CAAW,KAAA,CACTrB,CAAAA,CAAQ,IAAA,CAAK,GAAA,CAAIhD,CAAAA,CAAUV,CAAAA,CAAM,MAAA,CAAS,EAAA,CAAK,GAAG,EAClD2D,CAAAA,CAAQ,WAAA,CAAY,GAAA,EAAI,CACxB7H,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,EAAG,CAAE,QAAA,CAAUuJ,CAAAA,CAAO,IAAA,CAAM,UAAW,CAAC,CAAA,CAE/F,SAAS7E,CAAAA,EAAU,CACZ1C,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC,oBAAA,CAAqByG,CAAO,EACxB,CAAA7B,CAAAA,GACJA,CAAAA,CAAW,IAAA,CACX,MAAA,CAAO,MAAA,CAAOzH,CAAAA,CAAG,KAAA,CAAOqE,CAAQ,CAAA,CAChCrE,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CAAAA,EACnB,CAEA,SAASmH,CAAAA,EAAW,CAClBnG,GAAQ,CACJ,CAAAkG,CAAAA,GACJA,CAAAA,CAAW,IAAA,CACXpE,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,EACF,CAEA,SAASiD,CAAAA,CAAMC,CAAAA,CAAa,CAC1B,IAAIoB,CAAAA,CAAU,IAAA,CACRnB,EAAUD,CAAAA,CAAMF,CAAAA,CACtB3D,CAAAA,CAAM,OAAA,CAAQ,CAACC,CAAAA,CAAMiF,CAAAA,GAAU,CAC7B,IAAMC,CAAAA,CAAQL,CAAAA,CAAOI,CAAK,CAAA,CAC1B,GAAI,CAACC,CAAAA,CAAM,QAAUA,CAAAA,CAAM,IAAA,CAAM,CAC1BA,CAAAA,CAAM,IAAA,GAAMF,CAAAA,CAAU,KAAA,CAAA,CAC3B,MACF,CAEAE,CAAAA,CAAM,QAAA,EAAA,CAAa,EAAA,CAAKA,CAAAA,CAAM,KAAA,EAAS,IAAA,CACvCA,CAAAA,CAAM,UAAY,GAAA,CAClBA,CAAAA,CAAM,KAAA,EAASA,CAAAA,CAAM,QAAA,CAEjBA,CAAAA,CAAM,KAAA,CAAQ,EAAA,EAAML,EAAOI,CAAAA,CAAQ,CAAC,CAAA,EAAK,CAACJ,CAAAA,CAAOI,CAAAA,CAAQ,CAAC,CAAA,CAAE,SAC9DJ,CAAAA,CAAOI,CAAAA,CAAQ,CAAC,CAAA,CAAE,MAAA,CAAS,IAAA,CAAA,CAGzBC,CAAAA,CAAM,KAAA,EAAS,EAAA,EACjBA,CAAAA,CAAM,KAAA,CAAQ,EAAA,CACdA,CAAAA,CAAM,QAAA,CAAW,CAAA,CACjBA,CAAAA,CAAM,KAAO,IAAA,EAEbF,CAAAA,CAAU,KAAA,CAGZhF,CAAAA,CAAK,KAAA,CAAM,SAAA,CAAY,CAAA,QAAA,EAAWkF,CAAAA,CAAM,KAAK,CAAA,IAAA,EAC/C,CAAC,CAAA,CAEG,CAACF,CAAAA,EAAWnB,CAAAA,CAAUJ,CAAAA,CACxBD,CAAAA,CAAU,sBAAsBG,CAAK,CAAA,CAErCoB,CAAAA,GAEJ,CAEA,OAAAvB,CAAAA,CAAU,qBAAA,CAAsBG,CAAK,CAAA,CACrC9H,CAAAA,CAAK,QAAA,CAAWkJ,CAAAA,CAChBlJ,CAAAA,CAAK,QAAA,CAAW+C,CAAAA,CACT/C,CACT,CAEA,SAASsJ,EAAAA,CACPjL,CAAAA,CACAf,CAAAA,CACAsH,CAAAA,CACAC,CAAAA,CACA,CA74CF,IAAAvE,CAAAA,CAAAC,CAAAA,CA84CE,IAAMwB,CAAAA,CAAOzE,CAAAA,GAAU,MAAA,CAAA,CAAYgD,CAAAA,CAAAjC,CAAAA,CAAG,cAAH,IAAA,CAAAiC,CAAAA,CAAkB,EAAA,CAAK,MAAA,CAAOhD,CAAK,CAAA,CACtE,GAAI,CAACyE,CAAAA,CAAM,OACX,IAAMb,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAElC,GAAI8B,IAAqB,CAAG,CAC1B,IAAMH,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CACd,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,QAAA,CAAUuG,CAAAA,CAAW,CAAA,CAAG,MAAA,CAAQjI,EAAAA,CAAS,IAAA,CAAM,UAAW,CAC9D,CAAA,CACA,OAAAqD,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACf7E,CACT,CAEA,IAAM0C,CAAAA,CAAW,CACf,OAAA,CAASrE,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,WAAYA,CAAAA,CAAG,KAAA,CAAM,UAAA,CACrB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UACvB,CAAA,CACM8D,EAAW,gBAAA,CAAiB9D,CAAE,CAAA,CAC9BoE,CAAAA,CAAiBb,EAAAA,CAAqBO,CAAAA,CAAS,SAAS,CAAA,CAE9D9D,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAU,cAAA,CACnBA,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,UAAA,CACtBA,EAAG,KAAA,CAAM,UAAA,CAAa,oBAAA,CAChBsE,CAAYpC,CAAAA,CAAAlC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAkC,CAAAA,CAAkB,GACpClC,CAAAA,CAAG,WAAA,CAAc,EAAA,CACjB,IAAMuE,CAAAA,CAAS,SAAS,aAAA,CAAc,MAAM,CAAA,CAC5CA,CAAAA,CAAO,WAAA,CAAcb,CAAAA,EAAQ,MAAA,CAC7Ba,CAAAA,CAAO,KAAA,CAAM,OAAA,CAAU,GAAA,CACvBA,CAAAA,CAAO,KAAA,CAAM,aAAA,CAAgB,MAAA,CAC7BvE,CAAAA,CAAG,YAAYuE,CAAM,CAAA,CAErB,IAAMmG,CAAAA,CAAM,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CACzCA,EAAI,KAAA,CAAM,OAAA,CAAU,MAAA,CACpBA,CAAAA,CAAI,KAAA,CAAM,KAAA,CAAQ,MAAA,CAClBA,CAAAA,CAAI,MAAM,cAAA,CAAiBtG,CAAAA,CAC3BsG,CAAAA,CAAI,KAAA,CAAM,UAAA,CAAa,KAAA,CACvBA,CAAAA,CAAI,KAAA,CAAM,SAAA,CAAY5G,CAAAA,CAAS,SAAA,CAC/B4G,CAAAA,CAAI,KAAA,CAAM,QAAA,CAAW,UAAA,CACrBA,CAAAA,CAAI,MAAM,KAAA,CAAQ,GAAA,CAClB1K,CAAAA,CAAG,WAAA,CAAY0K,CAAG,CAAA,CAElB,IAAM7E,CAAAA,CAAQ,KAAA,CAAM,IAAA,CAAKnC,CAAI,CAAA,CAAE,GAAA,CAAKoC,CAAAA,EAAS,CAC3C,IAAMO,EAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC1C,OAAAA,CAAAA,CAAK,WAAA,CAAcP,CAAAA,CACnBO,CAAAA,CAAK,KAAA,CAAM,OAAA,CAAU,cAAA,CACrBA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,KAAA,CACxBA,EAAK,KAAA,CAAM,eAAA,CAAkB,UAAA,CAC7BA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,WAAA,CACxBqE,CAAAA,CAAI,YAAYrE,CAAI,CAAA,CACbA,CACT,CAAC,CAAA,CAEKsE,CAAAA,CAAS9E,CAAAA,CAAM,GAAA,CAAI,CAAC9E,CAAAA,CAAGgK,CAAAA,IAAW,CACtC,QAAA,CAAA,CAAWA,CAAAA,CAAQ,CAAA,GAAM,CAAA,CAAI,CAAA,CAAI,EAAA,GAAO,EAAA,CAAKA,CAAAA,CAAQ,GAAA,CAAA,CACrD,QAAA,CAAU,CACZ,CAAA,CAAE,CAAA,CAEEzB,EAAU,CAAA,CACV7B,CAAAA,CAAW,KAAA,CACXmD,CAAAA,CAAW,KAAA,CACTrB,CAAAA,CAAQ,IAAA,CAAK,GAAA,CAAIhD,EAAUV,CAAAA,CAAM,MAAA,CAAS,EAAA,CAAK,GAAG,CAAA,CAClD2D,CAAAA,CAAQ,WAAA,CAAY,GAAA,GACpB7H,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAUuJ,CAAAA,CAAO,KAAM,UAAW,CAAC,CAAA,CAE/F,SAAS7E,CAAAA,EAAU,CACZ1C,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC,oBAAA,CAAqByG,CAAO,CAAA,CACxB,CAAA7B,CAAAA,GACJA,CAAAA,CAAW,IAAA,CACX,OAAO,MAAA,CAAOzH,CAAAA,CAAG,KAAA,CAAOqE,CAAQ,CAAA,CAChCrE,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CAAAA,EACnB,CAEA,SAASmH,CAAAA,EAAW,CAClBnG,CAAAA,EAAQ,CACJ,CAAAkG,CAAAA,GACJA,EAAW,IAAA,CACXpE,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,EACF,CAEA,SAASiD,CAAAA,CAAMC,CAAAA,CAAa,CAC1B,IAAMC,CAAAA,CAAUD,CAAAA,CAAMF,CAAAA,CAClBsB,CAAAA,CAAU,IAAA,CACdjF,CAAAA,CAAM,QAAQ,CAACC,CAAAA,CAAMiF,CAAAA,GAAU,CAC7B,GAAIpB,CAAAA,CAAUoB,CAAAA,CAAQ,EAAA,CAAI,CACxBD,CAAAA,CAAU,KAAA,CACV,MACF,CACA,IAAME,CAAAA,CAAQL,CAAAA,CAAOI,CAAK,CAAA,CAC1BC,CAAAA,CAAM,QAAA,EAAA,CAAa,CAAA,CAAIA,CAAAA,CAAM,QAAA,EAAY,IAAA,CACzCA,CAAAA,CAAM,UAAY,IAAA,CAClBA,CAAAA,CAAM,QAAA,EAAYA,CAAAA,CAAM,QAAA,CACxBlF,CAAAA,CAAK,KAAA,CAAM,SAAA,CAAY,WAAWkF,CAAAA,CAAM,QAAQ,CAAA,IAAA,CAAA,CAC5C,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAM,QAAQ,CAAA,CAAI,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAM,QAAQ,CAAA,EAAK,GAAA,GAAMF,CAAAA,CAAU,KAAA,EAC7E,CAAC,CAAA,CAEG,CAACA,CAAAA,EAAWnB,CAAAA,CAAUJ,CAAAA,CACxBD,CAAAA,CAAU,qBAAA,CAAsBG,CAAK,CAAA,CAErCoB,CAAAA,GAEJ,CAEA,OAAAvB,CAAAA,CAAU,qBAAA,CAAsBG,CAAK,EACrC9H,CAAAA,CAAK,QAAA,CAAWkJ,CAAAA,CAChBlJ,CAAAA,CAAK,QAAA,CAAW+C,CAAAA,CACT/C,CACT,CAEA,SAASuJ,EAAAA,CACPlL,CAAAA,CACAf,CAAAA,CACAsH,CAAAA,CACAC,CAAAA,CACA,CAjgDF,IAAAvE,EAAAC,CAAAA,CAkgDE,IAAMwB,CAAAA,CAAOzE,CAAAA,GAAU,MAAA,CAAA,CAAYgD,CAAAA,CAAAjC,CAAAA,CAAG,WAAA,GAAH,KAAAiC,CAAAA,CAAkB,EAAA,CAAK,MAAA,CAAOhD,CAAK,CAAA,CACtE,GAAI,CAACyE,CAAAA,CAAM,OACX,IAAMb,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAElC,GAAI8B,EAAAA,EAAqB,CAAG,CAC1B,IAAMH,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CACd,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,QAAA,CAAUuG,CAAAA,CAAW,CAAA,CAAG,MAAA,CAAQjI,EAAAA,CAAS,IAAA,CAAM,UAAW,CAC9D,CAAA,CACA,OAAAqD,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACf7E,CACT,CAEA,IAAM0C,CAAAA,CAAW,CACf,OAAA,CAASrE,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,QAAA,CAAUA,EAAG,KAAA,CAAM,QAAA,CACnB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UAAA,CACrB,UAAA,CAAYA,CAAAA,CAAG,MAAM,UACvB,CAAA,CACM8D,CAAAA,CAAW,gBAAA,CAAiB9D,CAAE,CAAA,CAC9BoE,CAAAA,CAAiBb,EAAAA,CAAqBO,EAAS,SAAS,CAAA,CAE9D9D,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAU,cAAA,CACnBA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,UAAA,CACtBA,CAAAA,CAAG,KAAA,CAAM,WAAa,oBAAA,CAChBsE,CAAYpC,CAAAA,CAAAlC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAkC,CAAAA,CAAkB,GACpClC,CAAAA,CAAG,WAAA,CAAc,EAAA,CACjB,IAAMuE,CAAAA,CAAS,QAAA,CAAS,aAAA,CAAc,MAAM,EAC5CA,CAAAA,CAAO,WAAA,CAAcb,CAAAA,EAAQ,MAAA,CAC7Ba,CAAAA,CAAO,KAAA,CAAM,OAAA,CAAU,GAAA,CACvBA,CAAAA,CAAO,KAAA,CAAM,aAAA,CAAgB,MAAA,CAC7BvE,CAAAA,CAAG,WAAA,CAAYuE,CAAM,CAAA,CAErB,IAAMmG,CAAAA,CAAM,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CACzCA,CAAAA,CAAI,KAAA,CAAM,OAAA,CAAU,OACpBA,CAAAA,CAAI,KAAA,CAAM,cAAA,CAAiBtG,CAAAA,CAC3BsG,CAAAA,CAAI,KAAA,CAAM,UAAA,CAAa,KAAA,CACvBA,EAAI,KAAA,CAAM,SAAA,CAAY5G,CAAAA,CAAS,SAAA,CAC/B4G,CAAAA,CAAI,KAAA,CAAM,QAAA,CAAW,UAAA,CACrBA,CAAAA,CAAI,KAAA,CAAM,KAAA,CAAQ,GAAA,CAClB1K,CAAAA,CAAG,WAAA,CAAY0K,CAAG,CAAA,CAElB,IAAM7E,CAAAA,CAAQ,KAAA,CAAM,IAAA,CAAKnC,CAAI,CAAA,CAAE,GAAA,CAAKoC,CAAAA,EAAS,CAC3C,IAAMO,CAAAA,CAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC1C,OAAAA,CAAAA,CAAK,YAAcP,CAAAA,CACnBO,CAAAA,CAAK,KAAA,CAAM,OAAA,CAAU,cAAA,CACrBA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,KAAA,CACxBA,CAAAA,CAAK,KAAA,CAAM,OAAA,CAAU,GAAA,CACrBA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,qBACxBqE,CAAAA,CAAI,WAAA,CAAYrE,CAAI,CAAA,CACbA,CACT,CAAC,CAAA,CAEK8E,CAAAA,CAAWnL,EAAG,qBAAA,EAAsB,CACpCoL,CAAAA,CAAUD,CAAAA,CAAS,IAAA,CAAOA,CAAAA,CAAS,KAAA,CAAQ,CAAA,CAC3CE,EAAUxF,CAAAA,CAAM,GAAA,CAAKC,CAAAA,EAAS,CAClC,IAAMlC,CAAAA,CAAOkC,CAAAA,CAAK,qBAAA,EAAsB,CACxC,OAAOlC,CAAAA,CAAK,IAAA,CAAOA,CAAAA,CAAK,KAAA,CAAQ,CAAA,CAAIwH,CACtC,CAAC,CAAA,CACKE,CAAAA,CAAUzF,CAAAA,CAAM,GAAA,CAAI,CAAC9E,CAAAA,CAAGgK,CAAAA,IAAW,CAAE,QAAA,CAAU,CAACM,CAAAA,CAAQN,CAAK,CAAA,CAAG,QAAA,CAAU,CAAE,CAAA,CAAE,EAC9EQ,CAAAA,CAAU1F,CAAAA,CAAM,GAAA,CAAI,KAAO,CAAE,QAAA,CAAA,CAAW,IAAA,CAAK,MAAA,EAAO,CAAI,EAAA,EAAO,EAAA,CAAI,QAAA,CAAU,CAAE,CAAA,CAAE,CAAA,CACjF2F,CAAAA,CAAgB3F,EAAM,GAAA,CAAI,KAAO,CAAE,QAAA,CAAU,CAAA,CAAG,QAAA,CAAU,CAAE,CAAA,CAAE,EAEhEyD,CAAAA,CAAU,CAAA,CACV7B,CAAAA,CAAW,KAAA,CACXmD,CAAAA,CAAW,KAAA,CACTrB,CAAAA,CAAQ,IAAA,CAAK,IAAIhD,CAAAA,CAAU,GAAG,CAAA,CAC9BiD,CAAAA,CAAQ,WAAA,CAAY,GAAA,EAAI,CACxB7H,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,QAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAUuJ,CAAAA,CAAO,IAAA,CAAM,UAAW,CAAC,CAAA,CAE/F,SAAS7E,CAAAA,EAAU,CACZ1C,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,IACnC,oBAAA,CAAqByG,CAAO,CAAA,CACxB,CAAA7B,CAAAA,GACJA,CAAAA,CAAW,IAAA,CACX,MAAA,CAAO,MAAA,CAAOzH,CAAAA,CAAG,KAAA,CAAOqE,CAAQ,CAAA,CAChCrE,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CAAAA,EACnB,CAEA,SAASmH,CAAAA,EAAW,CAClBnG,CAAAA,EAAQ,CACJ,CAAAkG,CAAAA,GACJA,CAAAA,CAAW,KACXpE,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,EACF,CAEA,SAASiF,CAAAA,CAAOT,CAAAA,CAA+CU,CAAAA,CAAgBC,GAAWC,CAAAA,CAAiB,CACzG,OAAAZ,CAAAA,CAAM,QAAA,EAAA,CAAaU,CAAAA,CAASV,CAAAA,CAAM,QAAA,EAAYW,EAAAA,CAC9CX,CAAAA,CAAM,QAAA,EAAYY,CAAAA,CAClBZ,CAAAA,CAAM,QAAA,EAAYA,CAAAA,CAAM,QAAA,CACjB,KAAK,GAAA,CAAIA,CAAAA,CAAM,QAAQ,CAAA,CAAI,IAAA,CAAK,GAAA,CAAIU,CAAAA,CAASV,CAAAA,CAAM,QAAQ,CAAA,CAAI,GACxE,CAEA,SAASvB,CAAAA,CAAMC,CAAAA,CAAa,CAC1B,IAAMC,EAAUD,CAAAA,CAAMF,CAAAA,CAClBsB,EAAAA,CAAU,IAAA,CACdjF,CAAAA,CAAM,OAAA,CAAQ,CAACC,CAAAA,CAAMiF,CAAAA,GAAU,CAC7B,IAAMc,CAAAA,CAAQJ,CAAAA,CAAOH,CAAAA,CAAQP,CAAK,CAAA,CAAG,EAAG,GAAA,CAAM,EAAG,CAAA,CAC3Ce,CAAAA,CAAQL,CAAAA,CAAOF,CAAAA,CAAQR,CAAK,CAAA,CAAG,EAAG,GAAA,CAAM,GAAI,CAAA,CAClDU,CAAAA,CAAOD,CAAAA,CAAcT,CAAK,CAAA,CAAG,CAAA,CAAG,IAAM,GAAI,CAAA,CAC1CjF,CAAAA,CAAK,KAAA,CAAM,SAAA,CAAY,CAAA,UAAA,EAAawF,CAAAA,CAAQP,CAAK,CAAA,CAAE,QAAQ,CAAA,IAAA,EAAOQ,CAAAA,CAAQR,CAAK,CAAA,CAAE,QAAQ,CAAA,GAAA,CAAA,CACzFjF,EAAK,KAAA,CAAM,OAAA,CAAU,MAAA,CAAO,IAAA,CAAK,GAAA,CAAI,CAAA,CAAG,IAAA,CAAK,GAAA,CAAI,CAAA,CAAG0F,CAAAA,CAAcT,CAAK,CAAA,CAAE,QAAQ,CAAC,CAAC,CAAA,CAAA,CAC/E,CAACc,CAAAA,EAAS,CAACC,CAAAA,IAAOhB,EAAAA,CAAU,KAAA,EAClC,CAAC,CAAA,CAEG,CAACA,EAAAA,EAAWnB,CAAAA,CAAUJ,CAAAA,CACxBD,CAAAA,CAAU,qBAAA,CAAsBG,CAAK,CAAA,CAErCoB,CAAAA,GAEJ,CAEA,OAAAvB,CAAAA,CAAU,qBAAA,CAAsBG,CAAK,CAAA,CACrC9H,CAAAA,CAAK,QAAA,CAAWkJ,EAChBlJ,CAAAA,CAAK,QAAA,CAAW+C,CAAAA,CACT/C,CACT,CAEA,SAASoK,EAAAA,CACP/L,CAAAA,CACAf,EACAsH,CAAAA,CACAC,CAAAA,CACA,CA9nDF,IAAAvE,CAAAA,CAAAC,CAAAA,CA+nDE,IAAMwB,CAAAA,CAAOzE,CAAAA,GAAU,MAAA,CAAA,CAAYgD,CAAAA,CAAAjC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAiC,CAAAA,CAAkB,EAAA,CAAK,OAAOhD,CAAK,CAAA,CACtE,GAAI,CAACyE,CAAAA,CAAM,OACX,IAAMb,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAElC,GAAI8B,EAAAA,EAAqB,CAAG,CAC1B,IAAMH,EAAO3B,CAAAA,CAAG,OAAA,CACd,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,QAAA,CAAUuG,CAAAA,CAAW,CAAA,CAAG,OAAQjI,EAAAA,CAAS,IAAA,CAAM,UAAW,CAC9D,CAAA,CACA,OAAAqD,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACf7E,CACT,CAEA,IAAM0C,CAAAA,CAAW,CACf,QAASrE,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UACvB,CAAA,CACM8D,CAAAA,CAAW,gBAAA,CAAiB9D,CAAE,CAAA,CAChBA,CAAAA,CAAG,qBAAA,EAAsB,KACvCoE,CAAAA,CAAiBb,EAAAA,CAAqBO,CAAAA,CAAS,SAAS,EAE9D9D,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAU,cAAA,CACnBA,EAAG,KAAA,CAAM,UAAA,CAAa,oBAAA,CAChBsE,CAAYpC,CAAAA,CAAAlC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAkC,CAAAA,CAAkB,GACpClC,CAAAA,CAAG,WAAA,CAAc,EAAA,CACjB,IAAMuE,CAAAA,CAAS,SAAS,aAAA,CAAc,MAAM,CAAA,CAC5CA,CAAAA,CAAO,WAAA,CAAcb,CAAAA,EAAQ,MAAA,CAC7Ba,CAAAA,CAAO,MAAM,OAAA,CAAU,GAAA,CACvBA,CAAAA,CAAO,KAAA,CAAM,aAAA,CAAgB,MAAA,CAC7BvE,CAAAA,CAAG,WAAA,CAAYuE,CAAM,CAAA,CAErB,IAAMmG,CAAAA,CAAM,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CACzCA,CAAAA,CAAI,KAAA,CAAM,OAAA,CAAU,MAAA,CACpBA,CAAAA,CAAI,KAAA,CAAM,cAAA,CAAiBtG,CAAAA,CAC3BsG,CAAAA,CAAI,MAAM,UAAA,CAAa,KAAA,CACvBA,CAAAA,CAAI,KAAA,CAAM,SAAA,CAAY5G,CAAAA,CAAS,SAAA,CAC/B4G,CAAAA,CAAI,KAAA,CAAM,UAAA,CAAa,UAAA,CACvBA,CAAAA,CAAI,KAAA,CAAM,QAAA,CAAW,UAAA,CACrBA,CAAAA,CAAI,MAAM,KAAA,CAAQ,GAAA,CAClB1K,CAAAA,CAAG,WAAA,CAAY0K,CAAG,CAAA,CAElB,IAAM7E,CAAAA,CAAQ,KAAA,CAAM,IAAA,CAAKnC,CAAI,CAAA,CAAE,GAAA,CAAKoC,CAAAA,EAAS,CAC3C,IAAMO,EAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC1C,OAAAA,CAAAA,CAAK,WAAA,CAAcP,CAAAA,CACnBO,EAAK,KAAA,CAAM,OAAA,CAAU,cAAA,CACrBA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,KAAA,CACxBA,CAAAA,CAAK,MAAM,OAAA,CAAU,GAAA,CACrBA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,oBAAA,CACxBqE,CAAAA,CAAI,WAAA,CAAYrE,CAAI,CAAA,CACbA,CACT,CAAC,CAAA,CAEKsE,CAAAA,CAAS9E,CAAAA,CAAM,GAAA,CAAI,CAAC9E,CAAAA,CAAGgK,CAAAA,IAAW,CACtC,QAAA,CAAU,EAAE,EAAA,CAAKA,CAAAA,CAAQ,EAAA,CAAA,CACzB,QAAA,CAAU,CAAA,CACV,OAAA,CAAS,KAAA,CACT,OAAA,CAAS,CAAA,CACT,eAAA,CAAiB,CACnB,EAAE,CAAA,CAEEzB,CAAAA,CAAU,CAAA,CACV7B,CAAAA,CAAW,KAAA,CACXmD,CAAAA,CAAW,KAAA,CACTrB,CAAAA,CAAQ,IAAA,CAAK,GAAA,CAAIhD,CAAAA,CAAUV,CAAAA,CAAM,MAAA,CAAS,EAAA,CAAK,GAAG,CAAA,CAClD2D,EAAQ,WAAA,CAAY,GAAA,EAAI,CACxB7H,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,QAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,SAAUuJ,CAAAA,CAAO,IAAA,CAAM,UAAW,CAAC,CAAA,CAE/F,SAAS7E,CAAAA,EAAU,CACZ1C,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC,oBAAA,CAAqByG,CAAO,CAAA,CACxB,CAAA7B,IACJA,CAAAA,CAAW,IAAA,CACX,MAAA,CAAO,MAAA,CAAOzH,CAAAA,CAAG,KAAA,CAAOqE,CAAQ,CAAA,CAChCrE,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CAAAA,EACnB,CAEA,SAASmH,CAAAA,EAAW,CAClBnG,CAAAA,GACI,CAAAkG,CAAAA,GACJA,CAAAA,CAAW,IAAA,CACXpE,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,EACF,CAEA,SAASiD,CAAAA,CAAMC,CAAAA,CAAa,CAC1B,IAAMC,CAAAA,CAAUD,CAAAA,CAAMF,CAAAA,CAClBwC,EAAO,IAAA,CACXnG,CAAAA,CAAM,OAAA,CAAQ,CAACC,CAAAA,CAAMiF,CAAAA,GAAU,CAC7B,GAAIpB,EAAUoB,CAAAA,CAAQ,EAAA,CAAI,CACxBiB,CAAAA,CAAO,KAAA,CACP,MACF,CAEA,IAAMhB,EAAQL,CAAAA,CAAOI,CAAK,CAAA,CACrBC,CAAAA,CAAM,OAAA,GACTA,CAAAA,CAAM,QAAA,EAAY,EAAA,CAClBA,CAAAA,CAAM,QAAA,EAAYA,CAAAA,CAAM,QAAA,CACpBA,CAAAA,CAAM,QAAA,EAAY,CAAA,EACpBA,CAAAA,CAAM,SAAW,CAAA,CACjBA,CAAAA,CAAM,QAAA,EAAY,KAAA,CACd,IAAA,CAAK,GAAA,CAAIA,CAAAA,CAAM,QAAQ,CAAA,CAAI,CAAA,EAC7BA,CAAAA,CAAM,QAAA,CAAW,CAAA,CACjBA,CAAAA,CAAM,OAAA,CAAU,IAAA,EAEhBgB,EAAO,KAAA,EAGTA,CAAAA,CAAO,KAAA,CAAA,CAIXhB,CAAAA,CAAM,eAAA,EAAA,CAAoB,CAAA,CAAIA,CAAAA,CAAM,OAAA,EAAW,GAAA,CAC/CA,CAAAA,CAAM,eAAA,EAAmB,GAAA,CACzBA,CAAAA,CAAM,OAAA,EAAWA,CAAAA,CAAM,eAAA,CACvBlF,EAAK,KAAA,CAAM,SAAA,CAAY,CAAA,WAAA,EAAckF,CAAAA,CAAM,QAAQ,CAAA,GAAA,CAAA,CACnDlF,CAAAA,CAAK,KAAA,CAAM,QAAU,MAAA,CAAO,IAAA,CAAK,GAAA,CAAI,CAAA,CAAG,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGkF,CAAAA,CAAM,OAAO,CAAC,CAAC,EACrE,CAAC,CAAA,CAEG,CAACgB,CAAAA,EAAQrC,CAAAA,CAAUJ,CAAAA,CACrBD,CAAAA,CAAU,qBAAA,CAAsBG,CAAK,CAAA,CAErCoB,CAAAA,GAEJ,CAEA,OAAAvB,CAAAA,CAAU,qBAAA,CAAsBG,CAAK,CAAA,CACrC9H,CAAAA,CAAK,QAAA,CAAWkJ,CAAAA,CAChBlJ,CAAAA,CAAK,SAAW+C,CAAAA,CACT/C,CACT,CAEA,SAASsK,EAAAA,CACPjM,CAAAA,CACAf,CAAAA,CACAsH,CAAAA,CACAC,EACA,CAxwDF,IAAAvE,CAAAA,CAywDE,IAAMyB,CAAAA,CAAOzE,CAAAA,GAAU,MAAA,CAAA,CAAYgD,CAAAA,CAAAjC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAiC,CAAAA,CAAkB,EAAA,CAAK,MAAA,CAAOhD,CAAK,CAAA,CACtE,GAAI,CAACyE,CAAAA,CAAM,OACX,IAAMb,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAElC,GAAI8B,EAAAA,EAAqB,CAAG,CAC1B,IAAMH,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CACd,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,QAAA,CAAUuG,CAAAA,CAAW,CAAA,CAAG,MAAA,CAAQjI,EAAAA,CAAS,IAAA,CAAM,UAAW,CAC9D,CAAA,CACA,OAAAqD,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACf7E,CACT,CAEA,IAAM0C,CAAAA,CAAW,CACf,OAAA,CAASrE,CAAAA,CAAG,KAAA,CAAM,QAClB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UAAA,CACrB,WAAA,CAAaA,CAAAA,CAAG,KAAA,CAAM,WAAA,CACtB,KAAA,CAAOA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAChB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,WAAYA,CAAAA,CAAG,KAAA,CAAM,UACvB,CAAA,CACM8D,CAAAA,CAAW,gBAAA,CAAiB9D,CAAE,CAAA,CAC9BoE,EAAiBb,EAAAA,CAAqBO,CAAAA,CAAS,SAAS,CAAA,CACxDG,CAAAA,CAAcjE,CAAAA,CAAG,qBAAA,EAAsB,CACvCkM,EAAY,IAAA,CAAK,IAAA,CAAKzI,EAAAA,CAAkBzD,CAAAA,CAAI0D,CAAI,CAAA,CAAE,KAAK,CAAA,CACvDyI,CAAAA,CAAiB,MAAA,CAAO,UAAA,CAAW9H,CAAAA,CAAS,QAAA,EAAY,GAAG,CAAA,CAC3D+H,CAAAA,CAAkB,KAAK,IAAA,CAAK,IAAA,CAAK,GAAA,CAAID,CAAAA,CAAgBlI,CAAAA,CAAY,KAAA,CAAOiI,CAAS,CAAC,CAAA,CAExFlM,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAU,cAAA,CACnBA,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,WACtBA,CAAAA,CAAG,KAAA,CAAM,WAAA,CAAc,OAAA,CACvBA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAAQ,CAAA,EAAG,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,GAAA,CAAIiE,CAAAA,CAAY,KAAA,CAAOiI,CAAS,CAAC,CAAC,CAAA,EAAA,CAAA,CACrElM,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,CAAA,EAAGoM,CAAe,CAAA,EAAA,CAAA,CACtCpM,CAAAA,CAAG,MAAM,UAAA,CAAa,oBAAA,CACtBA,CAAAA,CAAG,SAAA,CAAY,EAAA,CAEf,IAAM6F,CAAAA,CAAQ,KAAA,CAAM,KAAKnC,CAAI,CAAA,CACvBgH,CAAAA,CAAM,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CACzCA,CAAAA,CAAI,KAAA,CAAM,OAAA,CAAU,MAAA,CACpBA,CAAAA,CAAI,KAAA,CAAM,KAAA,CAAQ,MAAA,CAClBA,CAAAA,CAAI,MAAM,cAAA,CAAiBtG,CAAAA,CAC3BsG,CAAAA,CAAI,KAAA,CAAM,UAAA,CAAa,KAAA,CACvBA,CAAAA,CAAI,KAAA,CAAM,SAAA,CAAY5G,CAAAA,CAAS,SAAA,CAC/B9D,CAAAA,CAAG,WAAA,CAAY0K,CAAG,CAAA,CAClB,IAAM2B,EAAS,IAAA,CAAK,KAAA,CAAMxG,CAAAA,CAAM,MAAA,CAAS,CAAC,CAAA,CACpCM,CAAAA,CAAQN,CAAAA,CAAM,GAAA,CAAI,CAACC,CAAAA,CAAMiF,CAAAA,GAAU,CACvC,IAAM1E,CAAAA,CAAO,QAAA,CAAS,cAAc,MAAM,CAAA,CACpC5F,CAAAA,CAAWsK,CAAAA,CAAQsB,CAAAA,CACnBxD,CAAAA,CAAI,IAAA,CAAK,GAAA,CAAI,KAAM,IAAA,CAAK,GAAA,CAAI,GAAA,CAAKpI,CAAAA,CAAW,EAAE,CAAC,CAAA,CAC/C6L,CAAAA,CAAU,KAAK,GAAA,CAAI,GAAA,CAAK,IAAA,CAAK,GAAA,CAAI,EAAA,CAAI7L,CAAAA,CAAW,EAAE,CAAC,CAAA,CACzD,OAAA4F,CAAAA,CAAK,WAAA,CAAcP,CAAAA,CACnBO,CAAAA,CAAK,KAAA,CAAM,OAAA,CAAU,eACrBA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,KAAA,CACxBA,CAAAA,CAAK,KAAA,CAAM,KAAA,CAAQ,cAAA,CACnBA,EAAK,KAAA,CAAM,UAAA,CAAa,oBAAA,CACxBA,CAAAA,CAAK,KAAA,CAAM,eAAA,CAAkB,QAAA,CAC7BA,CAAAA,CAAK,MAAM,SAAA,CAAY,CAAA,WAAA,EAAcwC,CAAC,CAAA,YAAA,EAAeyD,CAAO,CAAA,IAAA,CAAA,CAC5DjG,CAAAA,CAAK,KAAA,CAAM,OAAA,CAAU,GAAA,CACrBqE,CAAAA,CAAI,WAAA,CAAYrE,CAAI,CAAA,CACb,CAAE,IAAA,CAAAA,EAAM,CAAA,CAAAwC,CAAAA,CAAG,OAAA,CAAAyD,CAAQ,CAC5B,CAAC,CAAA,CAEKC,CAAAA,CAAgB,KAAK,GAAA,CAAI,GAAA,CAAKhG,CAAAA,CAAW,GAAI,CAAA,CAC/CiG,CAAAA,CAAYrG,CAAAA,CAAM,MAAA,CAClBsB,EAAW,KAAA,CACT9F,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAUuM,EAAgB,GAAA,CAAK,IAAA,CAAM,UAAW,CAAC,CAAA,CAE7G,SAAS7H,CAAAA,EAAU,CACZ1C,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GAC/B4E,CAAAA,GACJA,CAAAA,CAAW,IAAA,CACX,MAAA,CAAO,OAAOzH,CAAAA,CAAG,KAAA,CAAOqE,CAAQ,CAAA,CAChCrE,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CAAAA,EACnB,CAEA,OAAAyC,CAAAA,CAAM,OAAA,CAAQ,CAAC,CAAE,IAAA,CAAAE,CAAAA,CAAM,CAAA,CAAAwC,EAAG,OAAA,CAAAyD,CAAQ,CAAA,GAAM,CACtC,IAAMG,CAAAA,CAAQpG,CAAAA,CAAK,OAAA,CACjB,CACE,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,CAAA,WAAA,EAAcwC,CAAC,CAAA,YAAA,EAAeyD,CAAO,kBAAmB,CAAA,CACjF,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,sCAAuC,CAClE,CAAA,CACA,CAAE,QAAA,CAAUC,CAAAA,CAAe,MAAA,CAAQ/N,EAAAA,CAAa,IAAA,CAAM,UAAW,CACnE,EACAiO,CAAAA,CAAM,QAAA,CAAW,IAAM,CACrBD,CAAAA,EAAa,CAAA,CACTA,CAAAA,GAAc,CAAA,GAChB9H,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,EAEJ,EACF,CAAC,CAAA,CAED7E,EAAK,QAAA,CAAW+C,CAAAA,CACT/C,CACT,CAEA,SAAS+K,EAAAA,CACP1M,CAAAA,CACA2M,CAAAA,CACAC,CAAAA,CACArG,CAAAA,CACAC,CAAAA,CACA,CA/2DF,IAAAvE,EAAAA,CAAAC,CAAAA,CAAA2K,CAAAA,CAg3DE,IAAMzL,CAAAA,CAAUuL,CAAAA,GAAc,MAAA,CAAA,CAAY1K,EAAAA,CAAAjC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAiC,EAAAA,CAAkB,GAAK,MAAA,CAAO0K,CAAS,CAAA,CAC3EtL,CAAAA,CAAUuL,CAAAA,GAAc,MAAA,CAAA,CAAY1K,CAAAA,CAAAlC,CAAAA,CAAG,cAAH,IAAA,CAAAkC,CAAAA,CAAkB,EAAA,CAAK,MAAA,CAAO0K,CAAS,CAAA,CACjF,GAAI,CAACvL,CAAAA,CAAS,OACd,IAAMwB,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAElC,GAAI8B,IAAqB,CAAG,CAC1B,IAAMH,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CACd,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,QAAA,CAAUuG,CAAAA,CAAW,CAAA,CAAG,MAAA,CAAQjI,EAAAA,CAAS,IAAA,CAAM,UAAW,CAC9D,CAAA,CACA,OAAAqD,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACf7E,CACT,CAEA,IAAMoC,CAAAA,CAAUN,EAAAA,CAAkBzD,CAAAA,CAAIoB,CAAO,CAAA,CACvC4C,CAAAA,CAAUP,GAAkBzD,CAAAA,CAAIqB,CAAO,CAAA,CACvC4C,CAAAA,CAAcjE,CAAAA,CAAG,qBAAA,EAAsB,CACvC8D,CAAAA,CAAW,iBAAiB9D,CAAE,CAAA,CAC9BoE,CAAAA,CAAiBb,EAAAA,CAAqBO,CAAAA,CAAS,SAAS,CAAA,CAC1C,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,GAAA,CAAIC,CAAAA,CAAQ,KAAA,CAAOC,CAAAA,CAAQ,KAAA,CAAOC,EAAY,KAAK,CAAC,CAAA,KACjFI,CAAAA,CAAW,CACf,QAAA,CAAUrE,CAAAA,CAAG,KAAA,CAAM,SACnB,OAAA,CAASA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,YAAaA,CAAAA,CAAG,KAAA,CAAM,WAAA,CACtB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UACvB,EAEAA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAU,cAAA,CACnBA,EAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,WAAA,CAAc,OAAA,CACvBA,CAAAA,CAAG,MAAM,UAAA,CAAa,oBAAA,CAChBsE,CAAYuI,CAAAA,CAAA7M,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAA6M,EAAkB,GACpC7M,CAAAA,CAAG,WAAA,CAAc,EAAA,CACjB,IAAMuE,CAAAA,CAAS,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC5CA,CAAAA,CAAO,WAAA,CAAclD,CAAAA,EAAW,MAAA,CAChCkD,CAAAA,CAAO,KAAA,CAAM,QAAU,GAAA,CACvBA,CAAAA,CAAO,KAAA,CAAM,aAAA,CAAgB,MAAA,CAC7BvE,CAAAA,CAAG,WAAA,CAAYuE,CAAM,CAAA,CAErB,SAASuI,CAAAA,CAAQpJ,CAAAA,CAAc,CAC7B,IAAMgH,CAAAA,CAAM,QAAA,CAAS,cAAc,MAAM,CAAA,CACzC,OAAAA,CAAAA,CAAI,KAAA,CAAM,OAAA,CAAU,MAAA,CACpBA,CAAAA,CAAI,KAAA,CAAM,UAAA,CAAa,QAAA,CACvBA,CAAAA,CAAI,KAAA,CAAM,cAAA,CAAiBtG,CAAAA,CAC3BsG,CAAAA,CAAI,MAAM,QAAA,CAAW,MAAA,CACrBA,CAAAA,CAAI,KAAA,CAAM,UAAA,CAAa,UAAA,CACvBA,CAAAA,CAAI,KAAA,CAAM,UAAY5G,CAAAA,CAAS,SAAA,CAC/B4G,CAAAA,CAAI,KAAA,CAAM,KAAA,CAAQ,MAAA,CAClBA,CAAAA,CAAI,KAAA,CAAM,OAAS,MAAA,CACnB7F,EAAAA,CAAenB,CAAI,CAAA,CAAE,OAAA,CAASoC,CAAAA,EAAS,CACrC,IAAMO,EAAAA,CAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC1CA,EAAAA,CAAK,WAAA,CAAcP,CAAAA,CACnBO,GAAK,KAAA,CAAM,OAAA,CAAU,cAAA,CACrBA,EAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,KAAA,CACxBA,EAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,oBAAA,CACxBqE,CAAAA,CAAI,WAAA,CAAYrE,EAAI,EACtB,CAAC,EACMqE,CACT,CAEA,IAAMqC,CAAAA,CAASD,CAAAA,CAAQ1L,CAAO,CAAA,CACxB4L,CAAAA,CAASF,CAAAA,CAAQzL,CAAO,CAAA,CAC9B0L,CAAAA,CAAO,KAAA,CAAM,QAAA,CAAW,UAAA,CACxBA,CAAAA,CAAO,MAAM,IAAA,CAAO,GAAA,CACpBA,CAAAA,CAAO,KAAA,CAAM,GAAA,CAAM,GAAA,CACnBC,CAAAA,CAAO,KAAA,CAAM,SAAW,UAAA,CACxBA,CAAAA,CAAO,KAAA,CAAM,IAAA,CAAO,GAAA,CACpBA,CAAAA,CAAO,KAAA,CAAM,GAAA,CAAM,IACnBhN,CAAAA,CAAG,MAAA,CAAO+M,CAAAA,CAAQC,CAAM,CAAA,CAExB,IAAMC,CAAAA,CAAW,KAAA,CAAM,IAAA,CAAKF,CAAAA,CAAO,QAAQ,CAAA,CACrCG,CAAAA,CAAW,KAAA,CAAM,IAAA,CAAKF,CAAAA,CAAO,QAAQ,CAAA,CAErCG,CAAAA,CAAe,IAAA,CAAK,GAAA,CAAI,GAAA,CAAK5G,CAAAA,CAAW,GAAI,CAAA,CAC5C6G,CAAAA,CAAe,IAAA,CAAK,GAAA,CAAI,EAAA,CAAI,IAAA,CAAK,GAAA,CAAI,EAAA,CAAI7G,CAAAA,CAAW,GAAI,CAAC,CAAA,CACzD8G,CAAAA,CAAgB,IAAA,CAAK,GAAA,CAAI,GAAA,CAAK9G,CAAAA,CAAW,GAAI,CAAA,CAC7C+G,CAAAA,CAAaH,CAAAA,CAAe,EAAA,CAE5BI,CAAAA,CAAgBD,CAAAA,CAAaD,CAAAA,CAAgB,IAAA,CAAK,IAAI,CAAA,CAAGH,CAAAA,CAAS,MAAA,CAAS,CAAC,CAAA,CAAIE,CAAAA,CAAe,EAAA,CAEjGZ,CAAAA,CAAYS,EAAS,MAAA,CAASC,CAAAA,CAAS,MAAA,CACvCtC,CAAAA,CAAW,KAAA,CACXnD,CAAAA,CAAW,KAAA,CACT9F,CAAAA,CAAO3B,EAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAUuN,CAAAA,CAAe,IAAA,CAAM,UAAW,CAAC,CAAA,CAEvG,SAAS7I,CAAAA,EAAU,CACZ1C,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GAC/B4E,IACJA,CAAAA,CAAW,IAAA,CACXzH,CAAAA,CAAG,WAAA,CAAcqB,CAAAA,CACjB,MAAA,CAAO,MAAA,CAAOrB,CAAAA,CAAG,MAAOqE,CAAQ,CAAA,CAAA,EAClC,CAEA,SAASmJ,CAAAA,EAAU,CACjBhB,CAAAA,EAAa,CAAA,CACT,EAAAA,CAAAA,CAAY,CAAA,EAAK5B,CAAAA,CAAAA,GACrBA,CAAAA,CAAW,IAAA,CACXlG,CAAAA,EAAQ,CACR8B,GAAA,IAAA,EAAAA,CAAAA,EAAAA,EACF,CAEA,OAAIgG,CAAAA,GAAc,CAAA,EAChB9H,CAAAA,EAAQ,CACR8B,GAAA,IAAA,EAAAA,CAAAA,EAAAA,CACO7E,CAAAA,GAGTsL,CAAAA,CAAS,OAAA,CAASnH,CAAAA,EAAS,CACzBA,CAAAA,CAAK,MAAM,eAAA,CAAkB,QAAA,CAC7B,IAAM2G,CAAAA,CAAQ3G,CAAAA,CAAK,OAAA,CACjB,CACE,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAAA,CACzC,CAAE,OAAA,CAAS,CAAA,CAAG,UAAW,iBAAkB,CAC7C,CAAA,CACA,CAAE,QAAA,CAAUqH,CAAAA,CAAc,MAAA,CAAQ7O,EAAAA,CAAS,IAAA,CAAM,UAAW,CAC9D,CAAA,CACAmO,CAAAA,CAAM,QAAA,CAAWe,EACnB,CAAC,EAEGP,CAAAA,CAAS,MAAA,CAAS,CAAA,EACpB,UAAA,CAAW,IAAM,CAAEF,CAAAA,CAAO,KAAA,CAAM,OAAA,CAAU,OAAO,CAAA,CAAGI,CAAAA,CAAe,EAAE,CAAA,CAGvED,CAAAA,CAAS,OAAA,CAAQ,CAACpH,CAAAA,CAAMiF,CAAAA,GAAU,CAChCjF,CAAAA,CAAK,KAAA,CAAM,eAAA,CAAkB,UAAA,CAC7B,IAAM2G,EAAQ3G,CAAAA,CAAK,OAAA,CACjB,CACE,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,gBAAiB,EAC1C,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAC3C,CAAA,CACA,CAAE,QAAA,CAAUuH,CAAAA,CAAe,KAAA,CAAOC,CAAAA,CAAavC,CAAAA,CAAQqC,CAAAA,CAAc,MAAA,CAAQ3O,EAAAA,CAAQ,KAAM,UAAW,CACxG,CAAA,CACAgO,CAAAA,CAAM,QAAA,CAAWe,EACnB,CAAC,CAAA,CAED7L,CAAAA,CAAK,QAAA,CAAW+C,CAAAA,CACT/C,CAAAA,CACT,CAEA,SAAS8L,EAAAA,CACPzN,CAAAA,CACA2M,EACAC,CAAAA,CACArG,CAAAA,CACAC,CAAAA,CACA,CAngEF,IAAAvE,CAAAA,CAAAC,CAAAA,CAogEE,IAAMd,CAAAA,CAAUuL,CAAAA,GAAc,MAAA,CAAA,CAAY1K,CAAAA,CAAAjC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAiC,CAAAA,CAAkB,GAAK,MAAA,CAAO0K,CAAS,CAAA,CAC3EtL,CAAAA,CAAUuL,CAAAA,GAAc,MAAA,CAAA,CAAY1K,CAAAA,CAAAlC,CAAAA,CAAG,cAAH,IAAA,CAAAkC,CAAAA,CAAkB,EAAA,CAAK,MAAA,CAAO0K,CAAS,CAAA,CACjF,GAAI,CAACvL,EAAS,OACd,IAAMwB,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAElC,GAAI8B,EAAAA,EAAqB,CAAG,CAC1B,IAAMH,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CACd,CAAC,CAAE,QAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,QAAA,CAAUuG,CAAAA,CAAW,CAAA,CAAG,MAAA,CAAQjI,EAAAA,CAAS,IAAA,CAAM,UAAW,CAC9D,EACA,OAAAqD,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACf7E,CACT,CAEA,IAAM+L,CAAAA,CAAM,IAAA,CAAK,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,EAAE,KAAA,CAAM,CAAC,CAAA,CACxC3J,CAAAA,CAAUN,EAAAA,CAAkBzD,CAAAA,CAAIoB,CAAO,CAAA,CACvC4C,EAAUP,EAAAA,CAAkBzD,CAAAA,CAAIqB,CAAO,CAAA,CACvC4C,CAAAA,CAAcjE,CAAAA,CAAG,qBAAA,EAAsB,CACvC8D,EAAW,gBAAA,CAAiB9D,CAAE,CAAA,CAC9BoE,CAAAA,CAAiBb,EAAAA,CAAqBO,CAAAA,CAAS,SAAS,CAAA,CACxD6J,CAAAA,CACJvJ,CAAAA,GAAmB,QAAA,CAAW,QAAA,CAC5BA,CAAAA,GAAmB,UAAA,CAAa,KAAA,CAChC,OAAA,CACEsC,EAAW,MAAA,CAAO,UAAA,CAAW5C,CAAAA,CAAS,QAAQ,CAAA,EAAK,EAAA,CACnD8J,CAAAA,CAAS,IAAA,CAAK,KAAKlH,CAAAA,CAAW,EAAG,CAAA,CAAI,CAAA,CACrCmH,CAAAA,CAAc,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,IAAI9J,CAAAA,CAAQ,KAAA,CAAOC,CAAAA,CAAQ,KAAA,CAAOC,CAAAA,CAAY,KAAK,CAAC,CAAA,CAAI2J,CAAAA,CACrFE,CAAAA,CAAe,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI/J,CAAAA,CAAQ,MAAA,CAAQC,EAAQ,MAAA,CAAQC,CAAAA,CAAY,MAAM,CAAC,CAAA,CACrFI,CAAAA,CAAW,CACf,QAAA,CAAUrE,EAAG,KAAA,CAAM,QAAA,CACnB,OAAA,CAASA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,QAAA,CAAUA,CAAAA,CAAG,MAAM,QAAA,CACnB,KAAA,CAAOA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAChB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,MAAA,CAAQA,CAAAA,CAAG,KAAA,CAAM,MAAA,CACjB,SAAA,CAAWA,CAAAA,CAAG,KAAA,CAAM,UACpB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UACvB,CAAA,CAEAA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAU,cAAA,CACnBA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,UACpBA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAAQ,CAAA,EAAG6N,CAAW,CAAA,EAAA,CAAA,CAC/B7N,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,CAAA,EAAG6N,CAAW,CAAA,EAAA,CAAA,CAClC7N,CAAAA,CAAG,KAAA,CAAM,MAAA,CAAS,CAAA,EAAG8N,CAAY,CAAA,EAAA,CAAA,CACjC9N,CAAAA,CAAG,KAAA,CAAM,SAAA,CAAY,CAAA,EAAG8N,CAAY,CAAA,EAAA,CAAA,CACpC9N,CAAAA,CAAG,MAAM,UAAA,CAAa,oBAAA,CACtBA,CAAAA,CAAG,SAAA,CAAY,EAAA,CAEf,IAAM+N,CAAAA,CAAM,QAAA,CAAS,gBAAgB,4BAAA,CAA8B,KAAK,CAAA,CACxEA,CAAAA,CAAI,YAAA,CAAa,aAAA,CAAe,MAAM,CAAA,CACtCA,CAAAA,CAAI,YAAA,CAAa,WAAA,CAAa,OAAO,CAAA,CACrCA,CAAAA,CAAI,KAAA,CAAM,QAAA,CAAW,WACrBA,CAAAA,CAAI,KAAA,CAAM,KAAA,CAAQ,GAAA,CAClBA,CAAAA,CAAI,KAAA,CAAM,MAAA,CAAS,GAAA,CAEnB,IAAMC,CAAAA,CAAO,QAAA,CAAS,eAAA,CAAgB,4BAAA,CAA8B,MAAM,CAAA,CACpEC,CAAAA,CAAS,SAAS,eAAA,CAAgB,4BAAA,CAA8B,QAAQ,CAAA,CAC9EA,CAAAA,CAAO,YAAA,CAAa,IAAA,CAAM,CAAA,YAAA,EAAeP,CAAG,CAAA,CAAE,CAAA,CAC9C,IAAMQ,CAAAA,CAAK,QAAA,CAAS,eAAA,CAAgB,4BAAA,CAA8B,eAAe,CAAA,CACjFA,CAAAA,CAAG,YAAA,CAAa,IAAA,CAAM,eAAe,CAAA,CACrCA,CAAAA,CAAG,YAAA,CAAa,OAAQ,QAAQ,CAAA,CAChCA,CAAAA,CAAG,YAAA,CAAa,QAAA,CAAU,8CAA8C,CAAA,CACxED,CAAAA,CAAO,OAAOC,CAAE,CAAA,CAChBF,CAAAA,CAAK,WAAA,CAAYC,CAAM,CAAA,CACvBF,CAAAA,CAAI,WAAA,CAAYC,CAAI,CAAA,CAEpB,IAAMG,CAAAA,CAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC1CA,EAAK,KAAA,CAAM,OAAA,CAAU,MAAA,CACrBA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,QAAA,CACxBA,CAAAA,CAAK,KAAA,CAAM,YAAA,CAAeR,CAAAA,CAC1BQ,CAAAA,CAAK,KAAA,CAAM,KAAA,CAAQ,MAAA,CACnBA,CAAAA,CAAK,MAAM,MAAA,CAAS,MAAA,CACpBA,CAAAA,CAAK,KAAA,CAAM,SAAA,CAAYrK,CAAAA,CAAS,SAAA,CAChCqK,CAAAA,CAAK,KAAA,CAAM,MAAA,CAAS,CAAA,iBAAA,EAAoBT,CAAG,CAAA,CAAA,CAAA,CAE3C,IAAMU,CAAAA,CAAU,QAAA,CAAS,cAAc,MAAM,CAAA,CACvCC,CAAAA,CAAU,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC7CD,CAAAA,CAAQ,YAAchN,CAAAA,CACtBiN,CAAAA,CAAQ,WAAA,CAAchN,CAAAA,CACrB,CAAC+M,CAAAA,CAASC,CAAO,CAAA,CAAE,QAAShI,CAAAA,EAAS,CACpCA,CAAAA,CAAK,KAAA,CAAM,QAAA,CAAW,OAAA,CACtBA,CAAAA,CAAK,KAAA,CAAM,OAAA,CAAU,cAAA,CACrBA,CAAAA,CAAK,KAAA,CAAM,SAAA,CAAYvC,CAAAA,CAAS,SAAA,CAChCuC,CAAAA,CAAK,MAAM,WAAA,CAAcsH,CAAAA,CACzBtH,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,MAAA,CACxBA,CAAAA,CAAK,KAAA,CAAM,WAAa,kBAC1B,CAAC,CAAA,CACD+H,CAAAA,CAAQ,KAAA,CAAM,OAAA,CAAU,GAAA,CACxBC,CAAAA,CAAQ,MAAM,OAAA,CAAU,GAAA,CAExBF,CAAAA,CAAK,MAAA,CAAOC,CAAAA,CAASC,CAAO,CAAA,CAC5BrO,CAAAA,CAAG,MAAA,CAAO+N,CAAAA,CAAKI,CAAI,CAAA,CAEnB,IAAI7E,CAAAA,CAAU,CAAA,CACV7B,CAAAA,CAAW,MACT8B,CAAAA,CAAQ,IAAA,CAAK,GAAA,CAAI,GAAA,CAAKhD,CAAQ,CAAA,CAC9BiD,CAAAA,CAAQ,WAAA,CAAY,KAAI,CACxB7H,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,EAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAUuJ,CAAAA,CAAO,IAAA,CAAM,UAAW,CAAC,CAAA,CAE/F,SAAS7E,CAAAA,EAAU,CACZ1C,CAAAA,CAAqBhC,EAAI6C,CAAK,CAAA,GACnC,oBAAA,CAAqByG,CAAO,CAAA,CACxB,CAAA7B,CAAAA,GACJA,CAAAA,CAAW,IAAA,CACXzH,CAAAA,CAAG,WAAA,CAAcqB,CAAAA,CACjB,MAAA,CAAO,MAAA,CAAOrB,CAAAA,CAAG,KAAA,CAAOqE,CAAQ,CAAA,CAAA,EAClC,CAEA,SAASiK,EAAAA,CAASC,CAAAA,CAAkB,CAClC,IAAMzN,CAAAA,CAAI,IAAA,CAAK,GAAA,CAAI,CAAA,CAAG,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGyN,CAAQ,CAAC,EACrCC,EAAAA,CAAI,CAAA,CAAI1N,CAAAA,CACR2N,CAAAA,CAAAA,CAAW,CAAA,CAAI3N,CAAAA,EAAK,CAAA,CACpB4N,EAAAA,CAAU5N,EAAI,CAAA,CACpBuN,CAAAA,CAAQ,KAAA,CAAM,MAAA,CAAS,CAAA,KAAA,EAAQI,CAAAA,CAAQ,OAAA,CAAQ,CAAC,CAAC,CAAA,GAAA,CAAA,CACjDJ,CAAAA,CAAQ,KAAA,CAAM,OAAA,CAAU,CAAA,EAAG,IAAA,CAAK,GAAA,CAAIvN,CAAAA,CAAG,GAAI,CAAC,CAAA,CAAA,CAC5CsN,CAAAA,CAAQ,KAAA,CAAM,MAAA,CAAS,CAAA,KAAA,EAAQM,EAAAA,CAAQ,QAAQ,CAAC,CAAC,CAAA,GAAA,CAAA,CACjDN,CAAAA,CAAQ,KAAA,CAAM,OAAA,CAAU,CAAA,EAAG,IAAA,CAAK,GAAA,CAAII,EAAAA,CAAG,GAAI,CAAC,CAAA,EAC9C,CAEA,SAAS/E,CAAAA,CAAMC,EAAa,CAC1B,IAAM6E,CAAAA,CAAW,IAAA,CAAK,GAAA,CAAI,CAAA,CAAA,CAAI7E,CAAAA,CAAMF,CAAAA,EAASD,CAAK,CAAA,CAClD+E,EAAAA,CAASC,CAAQ,CAAA,CACbA,CAAAA,CAAW,CAAA,GAAGjF,CAAAA,CAAU,sBAAsBG,CAAK,CAAA,EACzD,CAEA,OAAAH,CAAAA,CAAU,qBAAA,CAAsBG,CAAK,CAAA,CACrC9H,EAAK,QAAA,CAAW,IAAM,CACpB+C,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,EACA7E,CAAAA,CAAK,QAAA,CAAW+C,CAAAA,CACT/C,CACT,CAEA,SAASgN,EAAAA,CACP3O,CAAAA,CACAf,CAAAA,CACAsH,CAAAA,CACAC,CAAAA,CACA,CAhpEF,IAAAvE,CAAAA,CAipEE,IAAMyB,CAAAA,CAAOzE,IAAU,MAAA,CAAA,CAAYgD,CAAAA,CAAAjC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAiC,CAAAA,CAAkB,EAAA,CAAK,MAAA,CAAOhD,CAAK,CAAA,CACtE,GAAI,CAACyE,CAAAA,CAAM,OACX,IAAMb,CAAAA,CAAQpB,EAAkBzB,CAAE,CAAA,CAElC,GAAI8B,EAAAA,EAAqB,CAAG,CAC1B,IAAMH,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CACd,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,QAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,QAAA,CAAUuG,CAAAA,CAAW,CAAA,CAAG,MAAA,CAAQjI,GAAS,IAAA,CAAM,UAAW,CAC9D,CAAA,CACA,OAAAqD,CAAAA,CAAK,QAAA,CAAW,IAAM6E,GAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACf7E,CACT,CAEA,IAAM0C,CAAAA,CAAW,CACf,OAAA,CAASrE,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UAAA,CACrB,cAAA,CAAgBA,EAAG,KAAA,CAAM,cAAA,CACzB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,UAAA,CAAYA,CAAAA,CAAG,MAAM,UAAA,CACrB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UACvB,CAAA,CAEAA,CAAAA,CAAG,KAAA,CAAM,QAAU,cAAA,CACnBA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,KAAA,CACtBA,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,oBAAA,CACtBA,CAAAA,CAAG,SAAA,CAAY,EAAA,CAEf,IAAM6F,CAAAA,CAAQhB,EAAAA,CAAenB,CAAI,CAAA,CAC3BkL,CAAAA,CAAQ/I,CAAAA,CAAM,GAAA,CAAI,CAAC9E,EAAGgK,CAAAA,GAAUA,CAAK,CAAA,CAAE,IAAA,CAAK,IAAM,IAAA,CAAK,MAAA,EAAO,CAAI,EAAG,CAAA,CACrE8D,CAAAA,CAAQhJ,CAAAA,CAAM,GAAA,CAAKC,CAAAA,EAAS,CAChC,IAAMgJ,CAAAA,CAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CACpCC,CAAAA,CAAU,QAAA,CAAS,aAAA,CAAc,MAAM,EACvCC,CAAAA,CAAY,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC/C,OAAAF,CAAAA,CAAK,KAAA,CAAM,OAAA,CAAU,aAAA,CACrBA,CAAAA,CAAK,KAAA,CAAM,QAAA,CAAW,UAAA,CACtBA,CAAAA,CAAK,KAAA,CAAM,WAAa,UAAA,CACxBA,CAAAA,CAAK,KAAA,CAAM,QAAA,CAAW,QAAA,CACtBA,CAAAA,CAAK,KAAA,CAAM,MAAA,CAAS,QAAA,CACpBA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,MAAA,CACxBA,CAAAA,CAAK,KAAA,CAAM,aAAA,CAAgB,WAC3BA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,KAAA,CACxBC,CAAAA,CAAQ,WAAA,CAAcjJ,CAAAA,CACtBkJ,CAAAA,CAAU,YAAclJ,CAAAA,CACxBiJ,CAAAA,CAAQ,KAAA,CAAM,OAAA,CAAU,cAAA,CACxBA,CAAAA,CAAQ,KAAA,CAAM,QAAA,CAAW,WACzBA,CAAAA,CAAQ,KAAA,CAAM,UAAA,CAAa,WAAA,CAC3BC,CAAAA,CAAU,KAAA,CAAM,OAAA,CAAU,cAAA,CAC1BA,CAAAA,CAAU,KAAA,CAAM,QAAA,CAAW,UAAA,CAC3BA,CAAAA,CAAU,KAAA,CAAM,IAAA,CAAO,GAAA,CACvBA,EAAU,KAAA,CAAM,GAAA,CAAM,OAAA,CACtBA,CAAAA,CAAU,KAAA,CAAM,UAAA,CAAa,WAAA,CAC7BF,CAAAA,CAAK,MAAA,CAAOC,CAAAA,CAASC,CAAS,CAAA,CAC9BhP,CAAAA,CAAG,WAAA,CAAY8O,CAAI,CAAA,CACZ,CAAE,OAAA,CAAAC,CAAAA,CAAS,SAAA,CAAAC,CAAU,CAC9B,CAAC,CAAA,CAEKC,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAI,EAAA,CAAI,IAAA,CAAK,GAAA,CAAI,EAAA,CAAI1I,CAAAA,CAAW,GAAI,CAAC,CAAA,CACpDgG,CAAAA,CAAgB,IAAA,CAAK,GAAA,CAAI,GAAA,CAAKhG,CAAAA,CAAW,GAAI,CAAA,CAC/CiG,EAAYqC,CAAAA,CAAM,MAAA,CAAS,CAAA,CAC3BpH,CAAAA,CAAW,KAAA,CACT9F,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAUuM,CAAAA,CAAgBsC,CAAAA,CAAM,MAAA,CAASI,CAAAA,CAAU,EAAA,CAAI,KAAM,UAAW,CAAC,CAAA,CAErI,SAASvK,CAAAA,EAAU,CACZ1C,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GAC/B4E,CAAAA,GACJA,CAAAA,CAAW,IAAA,CAEXoH,CAAAA,CAAM,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAAE,CAAAA,CAAS,SAAA,CAAAC,CAAU,CAAA,GAAM,CACxCA,CAAAA,CAAU,MAAA,EAAO,CACjBD,CAAAA,CAAQ,KAAA,CAAM,QAAA,CAAW,EAAA,CACzBA,CAAAA,CAAQ,KAAA,CAAM,UAAA,CAAa,GAC3BA,CAAAA,CAAQ,KAAA,CAAM,OAAA,CAAU,GAC1B,CAAC,CAAA,CAEDF,CAAAA,CAAM,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAAE,CAAQ,CAAA,GAAM,CAC7B,IAAMD,CAAAA,CAAOC,CAAAA,CAAQ,cACjBD,CAAAA,EAAMA,CAAAA,CAAK,WAAA,CAAYC,CAAO,EACpC,CAAC,CAAA,CACD,MAAA,CAAO,MAAA,CAAO/O,CAAAA,CAAG,KAAA,CAAOqE,CAAQ,CAAA,CAAA,EAClC,CAEA,SAASmJ,CAAAA,EAAU,CACjBhB,CAAAA,EAAa,CAAA,CACT,EAAAA,CAAAA,CAAY,CAAA,CAAA,GAChB9H,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,MAAAA,CAAAA,EAAAA,EACF,CAEA,OAAIgG,CAAAA,GAAc,CAAA,EAChB9H,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,MAAAA,CAAAA,EAAAA,CACO7E,CAAAA,GAGTiN,CAAAA,CAAM,OAAA,CAAQ,CAACM,CAAAA,CAAWC,CAAAA,GAAe,CACvC,IAAML,CAAAA,CAAOD,CAAAA,CAAMK,CAAS,CAAA,CACtBE,CAAAA,CAAQD,CAAAA,CAAaF,CAAAA,CACrBF,EAAUD,CAAAA,CAAK,OAAA,CAAQ,OAAA,CAC3B,CACE,CAAE,SAAA,CAAW,eAAgB,CAAA,CAC7B,CAAE,SAAA,CAAW,kBAAmB,CAClC,CAAA,CACA,CAAE,QAAA,CAAUvC,CAAAA,CAAe,KAAA,CAAA6C,EAAO,MAAA,CAAQ3Q,EAAAA,CAAQ,IAAA,CAAM,UAAW,CACrE,CAAA,CACMuQ,CAAAA,CAAYF,CAAAA,CAAK,SAAA,CAAU,OAAA,CAC/B,CACE,CAAE,SAAA,CAAW,eAAgB,CAAA,CAC7B,CAAE,UAAW,kBAAmB,CAClC,CAAA,CACA,CAAE,QAAA,CAAUvC,CAAAA,CAAe,KAAA,CAAA6C,CAAAA,CAAO,MAAA,CAAQ3Q,EAAAA,CAAQ,IAAA,CAAM,UAAW,CACrE,CAAA,CACAsQ,CAAAA,CAAQ,QAAA,CAAWvB,EACnBwB,CAAAA,CAAU,QAAA,CAAWxB,EACvB,CAAC,CAAA,CAED7L,CAAAA,CAAK,QAAA,CAAW+C,CAAAA,CACT/C,CAAAA,CACT,CAEA,SAAS0N,EAAAA,CACPrP,CAAAA,CACAf,CAAAA,CACAsH,CAAAA,CACAC,CAAAA,CACA,CA9wEF,IAAAvE,CAAAA,CA+wEE,IAAMyB,CAAAA,CAAOzE,CAAAA,GAAU,MAAA,CAAA,CAAYgD,CAAAA,CAAAjC,CAAAA,CAAG,cAAH,IAAA,CAAAiC,CAAAA,CAAkB,EAAA,CAAK,MAAA,CAAOhD,CAAK,CAAA,CACtE,GAAI,CAACyE,EAAM,OACX,IAAMb,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAElC,GAAI8B,EAAAA,EAAqB,CAAG,CAC1B,IAAMH,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CACd,CAAC,CAAE,QAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,QAAA,CAAUuG,CAAAA,CAAW,CAAA,CAAG,MAAA,CAAQjI,EAAAA,CAAS,IAAA,CAAM,UAAW,CAC9D,EACA,OAAAqD,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACf7E,CACT,CAEA,IAAM0C,CAAAA,CAAW,CACf,OAAA,CAASrE,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,WAAYA,CAAAA,CAAG,KAAA,CAAM,UAAA,CACrB,KAAA,CAAOA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAChB,QAAA,CAAUA,EAAG,KAAA,CAAM,QAAA,CACnB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UACvB,CAAA,CACMiE,CAAAA,CAAcjE,EAAG,qBAAA,EAAsB,CACvCkM,CAAAA,CAAY,IAAA,CAAK,IAAA,CAAKzI,EAAAA,CAAkBzD,CAAAA,CAAI0D,CAAI,CAAA,CAAE,KAAK,CAAA,CACvDyI,CAAAA,CAAiB,MAAA,CAAO,UAAA,CAAW9H,CAAAA,CAAS,QAAA,EAAY,GAAG,CAAA,CAC3D+H,CAAAA,CAAkB,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,GAAA,CAAID,CAAAA,CAAgBlI,CAAAA,CAAY,KAAA,CAAOiI,CAAS,CAAC,CAAA,CAExFlM,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAU,cAAA,CACnBA,EAAG,KAAA,CAAM,UAAA,CAAa,UAAA,CACtBA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAAQ,CAAA,EAAG,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,GAAA,CAAIiE,CAAAA,CAAY,KAAA,CAAOiI,CAAS,CAAC,CAAC,KACrElM,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,CAAA,EAAGoM,CAAe,CAAA,EAAA,CAAA,CACtCpM,CAAAA,CAAG,KAAA,CAAM,WAAa,oBAAA,CACtBA,CAAAA,CAAG,SAAA,CAAY,EAAA,CAGf,IAAMsP,CAAAA,CADW5L,CAAAA,CAAK,KAAA,CAAM,OAAO,CAAA,CACZ,GAAA,CAAKsB,CAAAA,EAAY,CACtC,IAAMqB,CAAAA,CAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC1C,OAAAA,CAAAA,CAAK,WAAA,CAAcrB,CAAAA,CACnBqB,CAAAA,CAAK,KAAA,CAAM,QAAU,OAAA,CAAQ,IAAA,CAAKrB,CAAO,CAAA,CAAI,QAAA,CAAW,cAAA,CACxDqB,CAAAA,CAAK,KAAA,CAAM,WAAa,KAAA,CACxBA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,4BAAA,CACxBA,CAAAA,CAAK,KAAA,CAAM,OAAA,CAAU,QAAQ,IAAA,CAAKrB,CAAO,CAAA,CAAI,GAAA,CAAM,GAAA,CACnDhF,CAAAA,CAAG,WAAA,CAAYqG,CAAI,CAAA,CACZA,CACT,CAAC,CAAA,CAAE,MAAA,CAAQA,CAAAA,EAAM,CAzzEnB,IAAApE,EAyzEsB,OAAA,CAAC,OAAA,CAAQ,IAAA,CAAA,CAAKA,CAAAA,CAAAoE,CAAAA,CAAK,WAAA,GAAL,IAAA,CAAApE,CAAAA,CAAoB,EAAE,CAAA,CAAC,CAAA,CAEnDgN,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAI,EAAA,CAAI,IAAA,CAAK,GAAA,CAAI,GAAI1I,CAAAA,CAAW,GAAI,CAAC,CAAA,CACpDgG,CAAAA,CAAgB,IAAA,CAAK,GAAA,CAAI,GAAA,CAAKhG,CAAAA,CAAW,GAAI,CAAA,CAC/CiG,CAAAA,CAAY8C,CAAAA,CAAM,MAAA,CAClB7H,CAAAA,CAAW,KAAA,CACT9F,EAAO3B,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAUuM,CAAAA,CAAgB+C,CAAAA,CAAM,OAASL,CAAAA,CAAS,IAAA,CAAM,UAAW,CAAC,CAAA,CAEhI,SAASvK,CAAAA,EAAU,CACZ1C,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GAC/B4E,CAAAA,GACJA,CAAAA,CAAW,IAAA,CACX,MAAA,CAAO,OAAOzH,CAAAA,CAAG,KAAA,CAAOqE,CAAQ,CAAA,CAChCrE,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CACjB1D,CAAAA,CAAG,MAAM,QAAA,CAAW,CAAA,EAAGoM,CAAe,CAAA,EAAA,CAAA,CAAA,EACxC,CAEA,SAASoB,CAAAA,EAAU,CACjBhB,GAAa,CAAA,CACT,EAAAA,CAAAA,CAAY,CAAA,CAAA,GAChB9H,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,EACF,CAEA,OAAIgG,CAAAA,GAAc,CAAA,EAChB9H,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,MAAAA,CAAAA,EAAAA,CACO7E,CAAAA,GAGT2N,CAAAA,CAAM,OAAA,CAAQ,CAACC,CAAAA,CAAMxE,CAAAA,GAAU,CAC7B,IAAM0B,CAAAA,CAAQ8C,CAAAA,CAAK,OAAA,CACjB,CACE,CAAE,OAAA,CAAS,CAAA,CAAG,OAAQ,YAAA,CAAc,SAAA,CAAW,kBAAmB,CAAA,CAClE,CAAE,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAA,CAAa,SAAA,CAAW,eAAgB,CAChE,CAAA,CACA,CAAE,QAAA,CAAUhD,CAAAA,CAAe,MAAOxB,CAAAA,CAAQkE,CAAAA,CAAS,MAAA,CAAQvQ,EAAAA,CAAQ,IAAA,CAAM,UAAW,CACtF,CAAA,CACA+N,EAAM,QAAA,CAAWe,EACnB,CAAC,CAAA,CAED7L,CAAAA,CAAK,QAAA,CAAW+C,CAAAA,CACT/C,CAAAA,CACT,CAEA,SAAS6N,EAAAA,CACPxP,CAAAA,CACAf,CAAAA,CACAsH,CAAAA,CACAC,CAAAA,CACA,CA32EF,IAAAvE,CAAAA,CA42EE,IAAMyB,CAAAA,CAAOzE,CAAAA,GAAU,MAAA,CAAA,CAAYgD,CAAAA,CAAAjC,CAAAA,CAAG,WAAA,GAAH,KAAAiC,CAAAA,CAAkB,EAAA,CAAK,MAAA,CAAOhD,CAAK,CAAA,CACtE,GAAI,CAACyE,CAAAA,CAAM,OACX,IAAMb,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAElC,GAAI8B,EAAAA,GAAwB,CAC1B,IAAMH,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CACd,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,SAAUuG,CAAAA,CAAW,CAAA,CAAG,MAAA,CAAQjI,EAAAA,CAAS,IAAA,CAAM,UAAW,CAC9D,CAAA,CACA,OAAAqD,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACf7E,CACT,CAEA,IAAM0C,CAAAA,CAAW,CACf,OAAA,CAASrE,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UAAA,CACrB,KAAA,CAAOA,CAAAA,CAAG,MAAM,KAAA,CAChB,QAAA,CAAUA,CAAAA,CAAG,KAAA,CAAM,QAAA,CACnB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UACvB,CAAA,CACMiE,CAAAA,CAAcjE,CAAAA,CAAG,qBAAA,EAAsB,CACvCkM,CAAAA,CAAY,IAAA,CAAK,IAAA,CAAKzI,GAAkBzD,CAAAA,CAAI0D,CAAI,CAAA,CAAE,KAAK,CAAA,CACvDyI,CAAAA,CAAiB,MAAA,CAAO,UAAA,CAAW9H,CAAAA,CAAS,QAAA,EAAY,GAAG,CAAA,CAC3D+H,CAAAA,CAAkB,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,IAAID,CAAAA,CAAgBlI,CAAAA,CAAY,KAAA,CAAOiI,CAAS,CAAC,CAAA,CAExFlM,CAAAA,CAAG,KAAA,CAAM,QAAU,cAAA,CACnBA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,MAAA,CACpBA,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,WACtBA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAAQ,CAAA,EAAG,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,GAAA,CAAIiE,CAAAA,CAAY,KAAA,CAAOiI,CAAS,CAAC,CAAC,CAAA,EAAA,CAAA,CACrElM,CAAAA,CAAG,KAAA,CAAM,SAAW,CAAA,EAAGoM,CAAe,CAAA,EAAA,CAAA,CACtCpM,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,oBAAA,CACtBA,CAAAA,CAAG,SAAA,CAAY,EAAA,CAEf,IAAM6F,CAAAA,CAAuB,EAAC,CAC9BnC,CAAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,OAAA,CAAQ,CAAC6L,CAAAA,CAAME,CAAAA,CAAWH,CAAAA,GAAU,CAClD,IAAMI,CAAAA,CAAS,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC5CA,CAAAA,CAAO,KAAA,CAAM,OAAA,CAAU,eACvBA,CAAAA,CAAO,KAAA,CAAM,UAAA,CAAa,QAAA,CAC1B7K,EAAAA,CAAe0K,CAAI,CAAA,CAAE,OAAA,CAASzJ,GAAS,CACrC,IAAM6J,CAAAA,CAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CACpC3J,CAAAA,CAAQ,SAAS,aAAA,CAAc,MAAM,CAAA,CAC3C2J,CAAAA,CAAK,KAAA,CAAM,OAAA,CAAU,cAAA,CACrBA,CAAAA,CAAK,KAAA,CAAM,QAAA,CAAW,QAAA,CACtB3J,CAAAA,CAAM,WAAA,CAAcF,CAAAA,CACpBE,CAAAA,CAAM,KAAA,CAAM,QAAU,cAAA,CACtBA,CAAAA,CAAM,KAAA,CAAM,OAAA,CAAU,GAAA,CACtBA,CAAAA,CAAM,KAAA,CAAM,SAAA,CAAY,kBAAA,CACxBA,CAAAA,CAAM,KAAA,CAAM,UAAA,CAAa,oBAAA,CACzB2J,CAAAA,CAAK,WAAA,CAAY3J,CAAK,EACtB0J,CAAAA,CAAO,WAAA,CAAYC,CAAI,CAAA,CACvB9J,CAAAA,CAAM,IAAA,CAAKG,CAAK,EAClB,CAAC,CAAA,CACDhG,CAAAA,CAAG,WAAA,CAAY0P,CAAM,CAAA,CACjBD,CAAAA,CAAYH,CAAAA,CAAM,OAAS,CAAA,EAAGtP,CAAAA,CAAG,WAAA,CAAY,QAAA,CAAS,cAAA,CAAe,GAAG,CAAC,EAC/E,CAAC,CAAA,CAED,IAAMiP,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAI,EAAA,CAAI,IAAA,CAAK,GAAA,CAAI,GAAI1I,CAAAA,CAAW,GAAI,CAAC,CAAA,CACpDgG,CAAAA,CAAgB,IAAA,CAAK,GAAA,CAAI,GAAA,CAAKhG,CAAAA,CAAW,GAAI,CAAA,CAC/CiG,CAAAA,CAAY3G,CAAAA,CAAM,MAAA,CAClB4B,CAAAA,CAAW,KAAA,CACT9F,EAAO3B,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAUuM,CAAAA,CAAgB1G,CAAAA,CAAM,OAASoJ,CAAAA,CAAS,IAAA,CAAM,UAAW,CAAC,CAAA,CAEhI,SAASvK,CAAAA,EAAU,CACZ1C,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GAC/B4E,CAAAA,GACJA,CAAAA,CAAW,IAAA,CACX,MAAA,CAAO,OAAOzH,CAAAA,CAAG,KAAA,CAAOqE,CAAQ,CAAA,CAChCrE,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CACjB1D,CAAAA,CAAG,MAAM,QAAA,CAAW,CAAA,EAAGoM,CAAe,CAAA,EAAA,CAAA,CAAA,EACxC,CAEA,SAASoB,CAAAA,EAAU,CACjBhB,GAAa,CAAA,CACT,EAAAA,CAAAA,CAAY,CAAA,CAAA,GAChB9H,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,EACF,CAEA,OAAIgG,CAAAA,GAAc,CAAA,EAChB9H,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,MAAAA,CAAAA,EAAAA,CACO7E,CAAAA,GAGTkE,CAAAA,CAAM,OAAA,CAAQ,CAACC,CAAAA,CAAMiF,CAAAA,GAAU,CAC7B,IAAM0B,CAAAA,CAAQ3G,CAAAA,CAAK,OAAA,CACjB,CACE,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,kBAAmB,CAAA,CAC5C,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAgB,CAC3C,CAAA,CACA,CAAE,QAAA,CAAUyG,CAAAA,CAAe,KAAA,CAAOxB,CAAAA,CAAQkE,CAAAA,CAAS,MAAA,CAAQxQ,EAAAA,CAAQ,KAAM,UAAW,CACtF,CAAA,CACAgO,CAAAA,CAAM,QAAA,CAAWe,EACnB,CAAC,CAAA,CAED7L,EAAK,QAAA,CAAW+C,CAAAA,CACT/C,CAAAA,CACT,CAEA,SAASiO,EAAAA,CACP5P,CAAAA,CACA2M,CAAAA,CACAC,EACAiD,CAAAA,CACArJ,CAAAA,CACA,CAt9EF,IAAAvE,CAAAA,CAu9EE,IAAMb,CAAAA,CAAUuL,CAAAA,GAAc,MAAA,CAAY,EAAA,CAAK,MAAA,CAAOA,CAAS,CAAA,CACzDtL,CAAAA,CAAUuL,CAAAA,GAAc,MAAA,CAAA,CAAY3K,EAAAjC,CAAAA,CAAG,WAAA,GAAH,IAAA,CAAAiC,CAAAA,CAAkB,EAAA,CAAK,MAAA,CAAO2K,CAAS,CAAA,CAC3E/J,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAClC,GAAI8B,EAAAA,EAAqB,CAAG,CAC1B,GAAM,CAAE,KAAA,CAAA0C,CAAAA,CAAO,KAAA,CAAAC,CAAAA,CAAO,OAAA,CAAAC,CAAQ,CAAA,CAAIb,EAAAA,CAAsB7D,CAAAA,CAAIoB,CAAAA,CAASC,CAAAA,CAASwB,CAAK,CAAA,CACnF2B,CAAAA,CAAM,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,EAAG,CAAE,QAAA,CAAUqL,CAAAA,CAAe,CAAA,CAAG,MAAA,CAAQvR,EAAAA,CAAS,IAAA,CAAM,UAAW,CAAC,CAAA,CACjH,IAAMqD,CAAAA,CAAO8C,CAAAA,CAAM,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,SAAUoL,CAAAA,CAAe,CAAA,CAAG,MAAA,CAAQpR,EAAAA,CAAQ,IAAA,CAAM,UAAW,CAAC,CAAA,CAC7H,OAAAkD,CAAAA,CAAK,QAAA,CAAW,IAAM,CACpB+C,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,MAAAA,CAAAA,GACF,CAAA,CACA7E,CAAAA,CAAK,QAAA,CAAW+C,CAAAA,CACT/C,CACT,CAEA,IAAMkE,CAAAA,CAAQ,KAAA,CAAM,IAAA,CAAKxE,CAAAA,CAAQ,MAAA,CAASD,CAAAA,CAAQ,MAAA,CAASC,CAAAA,CAAUD,CAAO,CAAA,CACtE2C,CAAAA,CAAUN,EAAAA,CAAkBzD,CAAAA,CAAIoB,CAAO,CAAA,CACvC4C,CAAAA,CAAUP,EAAAA,CAAkBzD,EAAIqB,CAAO,CAAA,CACvC4C,CAAAA,CAAcjE,CAAAA,CAAG,qBAAA,EAAsB,CACvC8D,CAAAA,CAAW,gBAAA,CAAiB9D,CAAE,CAAA,CAC9BoE,CAAAA,CAAiBb,EAAAA,CAAqBO,CAAAA,CAAS,SAAS,CAAA,CACxD4C,CAAAA,CAAW,MAAA,CAAO,UAAA,CAAW5C,CAAAA,CAAS,QAAQ,CAAA,EAAK,EAAA,CACnD8J,CAAAA,CAAS,IAAA,CAAK,IAAA,CAAKlH,EAAW,EAAG,CAAA,CAAI,CAAA,CACrCmH,CAAAA,CAAc,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI9J,CAAAA,CAAQ,KAAA,CAAOC,CAAAA,CAAQ,KAAA,CAAOC,CAAAA,CAAY,KAAK,CAAC,CAAA,CAAI2J,EACrFvJ,CAAAA,CAAW,CACf,OAAA,CAASrE,CAAAA,CAAG,KAAA,CAAM,OAAA,CAClB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UAAA,CACrB,KAAA,CAAOA,CAAAA,CAAG,KAAA,CAAM,KAAA,CAChB,QAAA,CAAUA,CAAAA,CAAG,MAAM,QAAA,CACnB,UAAA,CAAYA,CAAAA,CAAG,KAAA,CAAM,UACvB,CAAA,CACMmM,CAAAA,CAAiB,MAAA,CAAO,WAAW9H,CAAAA,CAAS,QAAA,EAAY,GAAG,CAAA,CAC3D+H,CAAAA,CAAkB,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,IAAID,CAAAA,CAAgB0B,CAAW,CAAC,CAAA,CACvE7N,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,oBAAA,CACtBA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAU,cAAA,CACnBA,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,KAAA,CACtBA,EAAG,KAAA,CAAM,KAAA,CAAQ,CAAA,EAAG6N,CAAW,CAAA,EAAA,CAAA,CAC/B7N,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,GAAGoM,CAAe,CAAA,EAAA,CAAA,CACtCpM,CAAAA,CAAG,SAAA,CAAY,EAAA,CAEf,IAAMuG,CAAAA,CAAW,IAAA,CAAK,IAAI,GAAA,CAAKsJ,CAAAA,CAAe,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGhK,CAAAA,CAAM,MAAA,CAAS,CAAC,CAAA,CAAI,EAAE,CAAA,CAC1E6E,CAAAA,CAAM,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CACzCA,EAAI,KAAA,CAAM,OAAA,CAAU,MAAA,CACpBA,CAAAA,CAAI,KAAA,CAAM,UAAA,CAAa,UAAA,CACvBA,CAAAA,CAAI,MAAM,cAAA,CAAiBtG,CAAAA,CAC3BsG,CAAAA,CAAI,KAAA,CAAM,UAAA,CAAa,KAAA,CACvBA,CAAAA,CAAI,KAAA,CAAM,MAAQ,MAAA,CAClBA,CAAAA,CAAI,KAAA,CAAM,SAAA,CAAY5G,CAAAA,CAAS,SAAA,CAC/B9D,CAAAA,CAAG,WAAA,CAAY0K,CAAG,CAAA,CAElB7E,CAAAA,CAAM,OAAA,CAAQ,CAAC9E,CAAAA,CAAGqF,CAAAA,GAAM,CACtB,IAAM0J,CAAAA,CAAU1O,CAAAA,CAAQgF,CAAC,CAAA,CACnB2J,CAAAA,CAAU1O,CAAAA,CAAQ+E,CAAC,CAAA,CACnB4J,CAAAA,CAAOF,CAAAA,GAAY,MAAA,EAAaA,CAAAA,GAAYC,CAAAA,CAC5CjB,CAAAA,CAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAO1C,GANAA,CAAAA,CAAK,KAAA,CAAM,OAAA,CAAU,aAAA,CACrBA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,QAAA,CACxBA,CAAAA,CAAK,KAAA,CAAM,QAAA,CAAW,UAAA,CACtBA,CAAAA,CAAK,KAAA,CAAM,SAAWkB,CAAAA,EAAQD,CAAAA,GAAY,MAAA,CAAY,MAAA,CAAS,QAAA,CAC/DrF,CAAAA,CAAI,WAAA,CAAYoE,CAAI,EAEhBkB,CAAAA,CAAM,CACRlB,CAAAA,CAAK,WAAA,CAAciB,CAAAA,CACnBjB,CAAAA,CAAK,OAAA,CACH,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,UAAW,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,UAAW,CAAC,CAAA,CAC7E,CAAE,QAAA,CAAUvI,CAAAA,CAAW,GAAA,CAAM,MAAOH,CAAAA,CAAI,EAAA,CAAI,MAAA,CAAQ1H,EAAAA,CAAQ,IAAA,CAAM,UAAW,CAC/E,CAAA,CACA,MACF,CAEA,GAAIoR,CAAAA,GAAY,MAAA,CAAW,CACzB,IAAM1B,CAAAA,CAAU,SAAS,aAAA,CAAc,MAAM,CAAA,CAC7CA,CAAAA,CAAQ,WAAA,CAAc0B,CAAAA,CACtB1B,CAAAA,CAAQ,KAAA,CAAM,QAAA,CAAW,OAAA,CACzBU,CAAAA,CAAK,WAAA,CAAYV,CAAO,CAAA,CACxBA,CAAAA,CAAQ,OAAA,CACN,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,wBAAyB,CAAA,CAAG,CAAE,OAAA,CAAS,EAAG,SAAA,CAAW,6BAA8B,CAAC,CAAA,CAC9G,CAAE,QAAA,CAAU7H,CAAAA,CAAW,GAAA,CAAM,MAAOH,CAAAA,CAAI,EAAA,CAAI,MAAA,CAAQ9H,EAAAA,CAAS,IAAA,CAAM,UAAW,CAChF,EACF,CAEA,GAAIyR,CAAAA,GAAY,MAAA,CAAW,CACzB,IAAM1B,CAAAA,CAAU,QAAA,CAAS,cAAc,MAAM,CAAA,CAC7CA,CAAAA,CAAQ,WAAA,CAAc0B,CAAAA,CACtB1B,CAAAA,CAAQ,KAAA,CAAM,QAAA,CAAW,OAAA,CACzBS,CAAAA,CAAK,WAAA,CAAYT,CAAO,CAAA,CACxBA,CAAAA,CAAQ,OAAA,CACN,CAAC,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,4BAA6B,CAAA,CAAG,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,wBAAyB,CAAC,CAAA,CAC7G,CAAE,QAAA,CAAU9H,CAAAA,CAAW,GAAA,CAAM,MAAOH,CAAAA,CAAI,EAAA,CAAK,EAAA,CAAI,MAAA,CAAQ3H,EAAAA,CAAQ,IAAA,CAAM,UAAW,CACpF,EACF,CACF,CAAC,CAAA,CAED,IAAMwR,CAAAA,CAAYjQ,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAAuG,CAAAA,CAAU,IAAA,CAAM,UAAW,CAAC,CAAA,CAC7F,OAAA0J,EAAU,QAAA,CAAW,IAAM,CACzBjQ,CAAAA,CAAG,WAAA,CAAcqB,CAAAA,CACjB,MAAA,CAAO,MAAA,CAAOrB,EAAG,KAAA,CAAOqE,CAAQ,CAAA,CAChCrE,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,CAAA,EAAGoM,CAAe,KACtC5F,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,CAAA,CACAyJ,CAAAA,CAAU,QAAA,CAAW,IAAM,CACpBjO,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC7C,CAAAA,CAAG,WAAA,CAAcqB,CAAAA,CACjB,MAAA,CAAO,OAAOrB,CAAAA,CAAG,KAAA,CAAOqE,CAAQ,CAAA,CAChCrE,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,CAAA,EAAGoM,CAAe,CAAA,EAAA,CAAA,EACxC,CAAA,CACO6D,CACT,CAKA,IAAMC,EAAAA,CAAsD,CAC1D,WAAA,CAAa5J,GACb,UAAA,CAAYoB,EAAAA,CACZ,OAAA,CAASM,EAAAA,CACT,eAAA,CAAiB8B,EAAAA,CACjB,SAAA,CAAWG,EAAAA,CACX,MAAA,CAAQC,EAAAA,CACR,UAAA,CAAYO,EAAAA,CACZ,QAAA,CAAUQ,EAAAA,CACV,WAAA,CAAaC,EAAAA,CACb,cAAea,EAAAA,CACf,WAAA,CAAaE,EAAAA,CACb,gBAAA,CAAkB0C,EAAAA,CAClB,UAAA,CAAYU,EAAAA,CACZ,WAAA,CAAaG,EACf,CAAA,CAEMW,EAAAA,CAAsD,CAC1D,KAAA,CAAOP,EAAAA,CACP,UAAA,CAAYlD,EAAAA,CACZ,WAAYe,EACd,CAAA,CAEM2C,EAAAA,CAAcC,gBAAAA,CAAgD,SAAqB,CACvF,KAAA,CAAApR,CAAAA,CACA,QAAA,CAAUqR,CAAAA,CACV,OAAA,CAAAC,CAAAA,CAAU,QAAA,CACV,SAAA,CAAWC,CAAAA,CACX,eAAA,CAAAC,EACA,cAAA,CAAgBC,CAAAA,CAChB,aAAA,CAAAC,CAAAA,CAAgB,SAAA,CAChB,aAAA,CAAAC,CAAAA,CAAgB,GAAA,CAChB,WAAAvO,CAAAA,CACA,aAAA,CAAAwO,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,aAAA,CAAAC,CAAAA,CAAgB,IAAA,CAChB,SAAAxK,CAAAA,CAAW,GAAA,CACX,MAAA,CAAAyK,CAAAA,CAASvS,EAAAA,CACT,KAAA,CAAA2Q,CAAAA,CAAQ,CAAA,CACR,SAAA,CAAAlM,CAAAA,CAAY,EAAA,CACZ,MAAA,CAAA+N,CAAAA,CAAS,KAAA,CACT,IAAA,CAAAC,CAAAA,CACA,GAAAC,CAAAA,CAAK,MAAA,CACL,SAAA,CAAAC,CAAAA,CACA,KAAA,CAAApO,CAAAA,CACA,OAAA,CAAAqO,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,MAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,eAAgBC,CAAAA,CAChB,aAAA,CAAAnQ,CAAAA,CACA,QAAA,CAAAoQ,CACF,CAAA,CAAqBC,CAAAA,CAAc,CA5nFnC,IAAA3P,EAAAA,CAAAC,EAAAA,CAAA2K,EAAAA,CAAAgF,EAAAA,CA6nFE,IAAMC,CAAAA,CAAM3S,YAAAA,CAAoB,IAAI,CAAA,CAC9B4S,CAAAA,CAAU5S,YAAAA,CAAyB,IAAI,CAAA,CACvC6S,EAAAA,CAAkB7S,YAAAA,CAAyB,IAAI,EAC/C8S,CAAAA,CAAS9S,YAAAA,CAAsB,IAAI,CAAA,CACnC+S,CAAAA,CAAW/S,YAAAA,CAA6C,IAAI,CAAA,CAC5DgT,EAAiBhT,YAAAA,CAA6C,IAAI,CAAA,CAClEiT,CAAAA,CAAWjT,YAAAA,CAAO,CAAC,CAAA,CACnBkT,CAAAA,CAAalT,YAAAA,CAAO,KAAK,CAAA,CACzBmT,EAAAA,CAAWnT,YAAAA,CAAwB,EAAE,CAAA,CACrC,CAACoT,CAAAA,CAAYC,EAAa,CAAA,CAAIC,cAAAA,CAA2B,IAAI,CAAA,CAC7D,CAACC,EAAAA,CAAOC,EAAQ,CAAA,CAAIF,cAAAA,CACxB3B,CAAAA,GAAS,KAAA,CAAQ,SAAA,CAAY,QAC/B,CAAA,CACM8B,GAAczT,YAAAA,CAAyB,IAAI,CAAA,CAC3C0T,EAAAA,CAAa1T,YAAAA,CAAO,CAAC,CAAA,CACrB2T,EAAAA,CAAeC,aAAAA,CAAQ,IAAM9T,CAAAA,EAAA,IAAA,CAAAA,CAAAA,CAASkG,EAAAA,CAAawM,CAAQ,CAAA,CAAG,CAACA,CAAAA,CAAU1S,CAAK,CAAC,CAAA,CAC/E,CAAE,OAAA,CAAAG,EAAAA,CAAS,IAAA,CAAAC,GAAM,OAAA,CAAS2T,EAAe,CAAA,CAAIhU,EAAAA,CAAe8T,EAAY,CAAA,CACxEG,EAAAA,CAAkB9T,YAAAA,CAAOE,EAAI,CAAA,CAC/BD,EAAAA,GAAS6T,EAAAA,CAAgB,OAAA,CAAU5T,EAAAA,CAAAA,CACvC,IAAM6T,EAAAA,CAAoBhC,CAAAA,EAAA,IAAA,CAAAA,CAAAA,CAAQ,CAACD,CAAAA,CAC7BkC,EAAAA,CAAiBJ,aAAAA,CAAQ,IACzBzC,CAAAA,CACKA,EAAa,GAAA,CAAI8C,EAAAA,EAAG,CAnpFjC,IAAAnR,EAAAA,CAmpFqC,OAAA,CAC7B,OAAA,CAASmR,EAAAA,CAAG,QACZ,SAAA,CAAWA,EAAAA,CAAG,SAAA,CACd,SAAA,CAAA,CAAWnR,EAAAA,CAAAmR,EAAAA,CAAG,SAAA,GAAH,IAAA,CAAAnR,GAAgBiB,CAC7B,CAAA,CAAE,CAAA,CAAA,CAEa,KAAA,CAAM,OAAA,CAAQqN,CAAO,CAAA,CAAIA,CAAAA,CAAQ,KAAA,CAAM,CAAA,CAAG,CAAC,CAAA,CAAI,CAACA,CAAO,CAAA,EACzD,GAAA,CAAI8C,KAAM,CACvB,OAAA,CAASA,EAAAA,CACT,SAAA,CAAWA,EAAAA,GAAM,QAAA,EAAY5C,CAAAA,CAAkBA,CAAAA,CAAkBD,EACjE,SAAA,CAAAtN,CACF,CAAA,CAAE,CAAA,CACD,CAACoN,CAAAA,CAAcC,CAAAA,CAASC,CAAAA,CAAeC,EAAiBvN,CAAS,CAAC,CAAA,CAE/DoQ,EAAAA,CAAiBP,aAAAA,CACrB,IAAMI,EAAAA,CAAe,GAAA,CAAIC,CAAAA,EAAMA,CAAAA,CAAG,OAAO,CAAA,CACzC,CAACD,EAAc,CACjB,CAAA,CAEMI,GAAaC,iBAAAA,CAAaC,CAAAA,EAA0BH,EAAAA,CAAe,QAAA,CAASG,CAAM,CAAA,CAAG,CAACH,EAAc,CAAC,CAAA,CACrGI,EAAAA,CAAAA,CAAgBxR,EAAAA,CAAAA,CAAAD,EAAAA,CAAAsQ,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,CAAY,SAAZ,IAAA,CAAAtQ,EAAAA,CAAsBqR,EAAAA,CAAe,CAAC,CAAA,GAAtC,IAAA,CAAApR,EAAAA,CAA2C,QAAA,CAC3DyR,EAAAA,CAAeR,EAAAA,CAAe,IAAA,CAAKC,CAAAA,EAAMA,CAAAA,CAAG,OAAA,GAAYM,EAAa,CAAA,CACrE/Q,IAAYkK,EAAAA,CAAA8G,EAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAAA,CAAc,SAAA,GAAd,IAAA,CAAA9G,EAAAA,CAA2B2D,CAAAA,CACvCoD,GAAeT,EAAAA,CAAe,IAAA,CAAKC,CAAAA,EAAMA,CAAAA,CAAG,OAAA,GAAY,QAAQ,CAAA,CAChES,EAAAA,CAAAA,CAAkBhC,GAAA+B,EAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAAA,CAAc,SAAA,GAAd,IAAA,CAAA/B,EAAAA,CAA2B3O,CAAAA,CAE7C4Q,EAAAA,CAAWN,iBAAAA,CAAaC,CAAAA,EAA0B,CACtDpB,CAAAA,CAAW,OAAA,CAAU,IAAA,CACrBD,CAAAA,CAAS,OAAA,EAAW,EACpBI,EAAAA,CAAc,CAAE,EAAA,CAAIJ,CAAAA,CAAS,OAAA,CAAS,MAAA,CAAAqB,CAAO,CAAC,EAChD,CAAA,CAAG,EAAE,CAAA,CAECM,EAAAA,CAAaP,iBAAAA,CAAaC,CAAAA,EAA0B,CACxD,GAAIpB,CAAAA,CAAW,OAAA,CAAS,CAClBoB,CAAAA,GAAW,QAAA,EAAYnB,EAAAA,CAAS,OAAA,CAAQ,MAAA,CAAS,CAAA,EAAGA,EAAAA,CAAS,OAAA,CAAQ,IAAA,CAAKmB,CAAM,CAAA,CACpF,MACF,CACAK,EAAAA,CAASL,CAAM,EACjB,CAAA,CAAG,CAACK,EAAQ,CAAC,CAAA,CAEPE,GAAYR,iBAAAA,CAAY,IAAM,CAC9BrB,CAAAA,CAAe,OAAA,GAAY,IAAA,GAC7B,YAAA,CAAaA,CAAAA,CAAe,OAAO,CAAA,CACnCA,CAAAA,CAAe,OAAA,CAAU,IAAA,CAAA,CAE3BT,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,CACAW,CAAAA,CAAW,OAAA,CAAU,KAAA,CACrBN,CAAAA,CAAQ,OAAA,CAAU,IAAA,CAClB,IAAMnP,CAAAA,CAAO0P,EAAAA,CAAS,QAAQ,KAAA,EAAM,CAChC1P,CAAAA,CACFkR,EAAAA,CAASlR,CAAI,CAAA,CAEb4P,EAAAA,CAAc,IAAI,EAEtB,CAAA,CAAG,CAACd,CAAAA,CAAoBoC,EAAQ,CAAC,CAAA,CAC3BtN,CAAAA,CAAiBwN,GAEjBC,EAAAA,CAAUT,iBAAAA,CAAY,IAAM,CAChCO,EAAAA,CAAW,QAAQ,EACrB,CAAA,CAAG,CAACA,EAAU,CAAC,CAAA,CAEfG,yBAAAA,CAAoBtC,CAAAA,CAAc,KAAO,CACvC,QAAAqC,EAAAA,CACA,IAAI,OAAA,EAAU,CACZ,OAAOnC,CAAAA,CAAI,OACb,CACF,GAAI,CAACmC,EAAO,CAAC,CAAA,CAEb,IAAME,EAAAA,CAAqBhV,YAAAA,CAAO,KAAK,EAEvCiV,eAAAA,CAAU,IAAM,CACd,GAAI,CAACb,EAAAA,CAAW,QAAQ,CAAA,CAAG,OAC3B,IAAMvT,CAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACf,GAAI,CAAC9R,CAAAA,CAAI,OAETmU,EAAAA,CAAmB,OAAA,CAAU,KAAA,CAE7B,IAAME,EAAAA,CAAW,IAAI,oBAAA,CACnB,CAAC,CAACC,EAAK,CAAA,GAAM,CACX,GAAIA,EAAAA,CAAM,cAAA,CAAgB,CACxB,GAAIH,GAAmB,OAAA,CAAS,OAChCA,EAAAA,CAAmB,OAAA,CAAU,IAAA,CAC7B7C,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,CACAyC,EAAAA,CAAW,QAAQ,CAAA,CACfb,EAAAA,EAAmBmB,EAAAA,CAAS,UAAA,GAClC,CAAA,KACEF,GAAmB,OAAA,CAAU,KAAA,CACzBlD,CAAAA,GAAQM,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,EAEhB,CAAA,CACAtO,EAAAA,CAAsBjD,EAAI6T,EAAe,CAC3C,CAAA,CACA,OAAAQ,EAAAA,CAAS,OAAA,CAAQrU,CAAE,CAAA,CACZ,IAAMqU,EAAAA,CAAS,UAAA,EACxB,CAAA,CAAG,CAACd,EAAAA,CAAYjC,CAAAA,CAASC,CAAAA,CAAQN,CAAAA,CAAQ8C,EAAAA,CAAYb,EAAAA,CAAmBW,EAAe,CAAC,CAAA,CAExFO,eAAAA,CAAU,IAAM,CACV,CAACb,EAAAA,CAAW,QAAQ,CAAA,EAAK,CAACnU,EAAAA,EAC9B2U,EAAAA,CAAW,QAAQ,EACrB,CAAA,CAAG,CAAC3U,EAAAA,CAASmU,EAAAA,CAAYQ,EAAU,CAAC,CAAA,CAEpCK,gBAAU,IAAM,CACTb,EAAAA,CAAW,OAAO,CAAA,EACnBb,EAAAA,GAAU,SAAA,EACdqB,EAAAA,CAAW,OAAO,EACpB,CAAA,CAAG,CAACR,EAAAA,CAAYQ,EAAAA,CAAYrB,EAAK,CAAC,EAElC0B,eAAAA,CAAU,IAAM,CA9vFlB,IAAAnS,EAAAA,CAAAC,EAAAA,CA+vFI,GAAI4O,CAAAA,GAAS,OAAW,OAExB,GAAIA,CAAAA,CAAM,CAAA,CACR7O,EAAAA,CAAA2Q,EAAAA,CAAY,OAAA,GAAZ,IAAA,EAAA3Q,GAAqB,MAAA,EAAA,CACrB2Q,EAAAA,CAAY,OAAA,CAAU,IAAA,CACtBD,EAAAA,CAAS,SAAS,CAAA,CAClB,MACF,CAEA,IAAM4B,CAAAA,CAAM,EAAE1B,EAAAA,CAAW,OAAA,CACnB2B,EAAAA,CAAa3D,CAAAA,EAAA,KAAAA,CAAAA,CAAkB,SAAA,CAErC,GAAI,CAACA,CAAAA,CAAe,CAClB8B,EAAAA,CAAS,QAAQ,CAAA,CACjB,MACF,CAEA,IAAM3S,EAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACf,GAAI,CAAC9R,EAAAA,CAAI,CACP2S,EAAAA,CAAS,QAAQ,CAAA,CACjB,MACF,CAAA,CAEAzQ,EAAAA,CAAA6P,CAAAA,CAAQ,OAAA,GAAR,IAAA,EAAA7P,EAAAA,CAAiB,MAAA,EAAA,CACjB6P,CAAAA,CAAQ,OAAA,CAAU,IAAA,CAClBM,EAAW,OAAA,CAAU,KAAA,CACrBC,EAAAA,CAAS,OAAA,CAAU,EAAC,CACpBE,EAAAA,CAAc,IAAI,EAElB,IAAMiC,CAAAA,CAAiBhV,EAAAA,CAAc8G,CAAAA,CAAU,GAAG,CAAA,CAC5C7E,EAAAA,CAAM3C,EAAAA,CAAQyV,EAAU,CAAA,CAC9B,GAAI,CAAC9S,EAAAA,CAAK,CACRiR,EAAAA,CAAS,QAAQ,CAAA,CACjB,MACF,CAEA,IAAM+B,EAAAA,CAAY,IAAM,CAClB7B,EAAAA,CAAW,OAAA,GAAY0B,IACzB5B,EAAAA,CAAS,QAAQ,CAAA,CACjBC,EAAAA,CAAY,OAAA,CAAU,IAAA,EAE1B,CAAA,CAEAD,EAAAA,CAAS,SAAS,CAAA,CAElB,IAAMgC,EAAAA,CAAajT,EAAAA,CAAI,GAAA,CAAI,MAAA,CAASA,EAAAA,CAAI,IAAMA,EAAAA,CAAI,EAAA,CAAG,MAAA,CAASA,EAAAA,CAAI,EAAA,CAAK,CAAC,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CACxF1B,EAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,kEAAA,CACpBD,EAAAA,CAAkBC,GAAI2U,EAAU,CAAA,CAChC,IAAM/T,EAAAA,CAAKkB,EAAAA,EAAqB,CAAIC,EAAAA,CAAiB4S,EAAU,EAAIA,EAAAA,CACnE,OAAA/B,EAAAA,CAAY,OAAA,CAAU5S,EAAAA,CAAG,OAAA,CAAQY,EAAAA,CAAI,CACnC,SAAU6T,CAAAA,CACV,MAAA,CAAAzD,CAAAA,CACA,IAAA,CAAM,UACR,CAAC,CAAA,CACD4B,EAAAA,CAAY,OAAA,CAAQ,gBAAA,CAAiB,QAAA,CAAU,IAAM,CACnDzS,EAAAA,CAAgBH,EAAAA,CAAI2U,EAAU,EAC9B3U,EAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,MAAA,CACtB0U,EAAAA,GACF,CAAC,CAAA,CACD9B,GAAY,OAAA,CAAQ,gBAAA,CAAiB,QAAA,CAAU,IAAM,CACnDzS,EAAAA,CAAgBH,EAAAA,CAAI2U,EAAU,EAC9B3U,EAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,OACxB,CAAC,CAAA,CAEM,IAAM,CA/zFjB,IAAAiC,EAAAA,CAg0FU4Q,EAAAA,CAAW,OAAA,GAAY0B,CAAAA,GAAAA,CACzBtS,EAAAA,CAAA2Q,EAAAA,CAAY,OAAA,GAAZ,MAAA3Q,EAAAA,CAAqB,MAAA,EAAA,CACrB2Q,EAAAA,CAAY,OAAA,CAAU,IAAA,EAE1B,CACF,CAAA,CAAG,CAAC9B,EAAMD,CAAAA,CAAetK,CAAAA,CAAUyK,CAAM,CAAC,CAAA,CAE1C,IAAM4D,EAAAA,CAAcpB,iBAAAA,CAAaqB,GAAmC,CAClExD,CAAAA,EAAA,IAAA,EAAAA,CAAAA,CAAUwD,CAAAA,CAAAA,CACNtB,EAAAA,CAAW,OAAO,CAAA,EAAGQ,EAAAA,CAAW,OAAO,EAC7C,CAAA,CAAG,CAACR,EAAAA,CAAYlC,CAAAA,CAAS0C,EAAU,CAAC,CAAA,CAE9Be,EAAAA,CAAmBtB,iBAAAA,CAAY,IAAM,CACzChC,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,CACI+B,EAAAA,CAAW,OAAO,CAAA,EAAGQ,EAAAA,CAAW,OAAO,EAC7C,CAAA,CAAG,CAACR,GAAY/B,CAAAA,CAAcuC,EAAU,CAAC,CAAA,CAEnCgB,EAAAA,CAAmBvB,iBAAAA,CAAY,IAAM,CACzC/B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,CAAA,CAAG,CAACA,CAAU,CAAC,CAAA,CA2iCf,OAziCA2C,eAAAA,CAAU,IACD,IAAM,CAt1FjB,IAAAnS,CAAAA,CAAAC,EAAAA,CAAA2K,EAAAA,CAu1FUoF,EAAO,OAAA,GAAY,IAAA,EAAM,oBAAA,CAAqBA,CAAAA,CAAO,OAAO,CAAA,CAC5DC,CAAAA,CAAS,OAAA,GAAY,MAAM,YAAA,CAAaA,CAAAA,CAAS,OAAO,CAAA,CACxDC,CAAAA,CAAe,OAAA,GAAY,IAAA,EAAM,YAAA,CAAaA,CAAAA,CAAe,OAAO,CAAA,CAAA,CACxElQ,CAAAA,CAAA8P,CAAAA,CAAQ,OAAA,GAAR,IAAA,EAAA9P,CAAAA,CAAiB,UACjBC,EAAAA,CAAA8P,EAAAA,CAAgB,OAAA,GAAhB,IAAA,EAAA9P,EAAAA,CAAyB,MAAA,EAAA,CAAA,CACzB2K,EAAAA,CAAA+F,EAAAA,CAAY,OAAA,GAAZ,IAAA,EAAA/F,EAAAA,CAAqB,MAAA,GACvB,CAAA,CACC,EAAE,CAAA,CAELmI,sBAAgB,IAAM,CAh2FxB,IAAA/S,EAAAA,CAAAC,EAAAA,CAAA2K,EAAAA,CAAAgF,EAAAA,CAAAoD,EAAAA,CAAAC,EAAAA,CAAAC,EAAAA,CAAAC,EAAAA,CAAAC,EAAAA,CAAAC,EAAAA,CAi2FI,GAAI,CAAC/C,CAAAA,EAAc,CAACT,CAAAA,CAAI,OAAA,CAAS,OAE7BG,CAAAA,CAAO,OAAA,GAAY,IAAA,EAAM,oBAAA,CAAqBA,CAAAA,CAAO,OAAO,CAAA,CAC5DC,CAAAA,CAAS,OAAA,GAAY,IAAA,EAAM,YAAA,CAAaA,CAAAA,CAAS,OAAO,CAAA,CACxDC,EAAe,OAAA,GAAY,IAAA,GAC7B,YAAA,CAAaA,CAAAA,CAAe,OAAO,CAAA,CACnCA,CAAAA,CAAe,OAAA,CAAU,IAAA,CAAA,CAE3BzP,EAAAA,CAAwBoP,CAAAA,CAAI,OAAO,CAAA,CACnCC,CAAAA,CAAQ,OAAA,CAAU,IAAA,CAClBC,GAAgB,OAAA,CAAU,IAAA,CAE1B,IAAMuD,CAAAA,CAAU7B,EAAAA,GAAkB,QAAA,CAC9BV,EAAAA,CAAAA,CACA/Q,EAAAA,CAAAhD,CAAAA,EAAA,IAAA,CAAAA,CAAAA,CAAS6S,CAAAA,CAAI,OAAA,CAAQ,WAAA,GAArB,IAAA,CAAA7P,EAAAA,CAAoC,GAClCuT,EAAAA,CAAU1T,EAAAA,EAAqB,CAC/B2T,EAAAA,CAAehW,EAAAA,CAAc8G,CAAAA,CAAU,GAAG,CAAA,CAC1CkO,CAAAA,CAAiBe,EAAAA,CAAUC,EAAAA,CAAe,CAAA,CAAIA,EAAAA,CACpDtD,CAAAA,CAAe,OAAA,CAAU,UAAA,CAAW,IAAM,CACxCA,CAAAA,CAAe,OAAA,CAAU,IAAA,CACzB6B,EAAAA,GACF,CAAA,CAAG,IAAA,CAAK,IAAI,GAAA,CAAKS,CAAAA,CAAiB,CAAA,CAAI,GAAG,CAAC,CAAA,CAE1C,IAAMiB,EAAAA,CAAgBhC,KAAkB,QAAA,CAAWT,EAAAA,CAAgB,OAAA,CAAA,CAAU/Q,EAAAA,CAAA4P,CAAAA,CAAI,OAAA,CAAQ,WAAA,GAAZ,IAAA,CAAA5P,EAAAA,CAA2B,EAAA,CACpGwR,EAAAA,GAAkB,QAAA,EAAYgC,EAAAA,GAAkB,MAAA,EAAa/S,EAAAA,GAAc,WAAA,EAC7EgC,GAAsBmN,CAAAA,CAAI,OAAA,CAAS,MAAA,CAAO4D,EAAa,CAAA,CAAG,MAAA,CAAOH,CAAO,CAAC,EAE3EvD,EAAAA,CAAgB,OAAA,CAAU5P,EAAAA,CAAqB0P,CAAAA,CAAI,OAAA,CAASzP,CAAAA,CAAY,CACtE,QAAA,CAAUoS,EACV,MAAA,CAAAzD,CAAAA,CACA,KAAA,CAAA5B,CACF,CAAC,CAAA,CAED,IAAMuG,EAAAA,CAAWxF,EAAAA,CAAiBxN,EAAmB,CAAA,CACrD,GAAIgT,EAAAA,CAAU,CACZ5D,CAAAA,CAAQ,OAAA,CAAA,CAAUlF,GAAA8I,EAAAA,CAAS7D,CAAAA,CAAI,OAAA,CAAS4D,EAAAA,CAAeH,CAAAA,CAASd,CAAAA,CAAgBjO,CAAc,CAAA,GAA5E,KAAAqG,EAAAA,CAAiF,IAAA,CACnG,MACF,CAEA,IAAM+I,EAAAA,CAAW1F,EAAAA,CAAiBvN,EAAmB,EACrD,GAAIiT,EAAAA,CAAU,CACZ7D,CAAAA,CAAQ,OAAA,CAAA,CAAUF,EAAAA,CAAA+D,EAAAA,CAAS9D,CAAAA,CAAI,OAAA,CAASyD,CAAAA,CAASd,CAAAA,CAAgBjO,CAAc,CAAA,GAA7D,IAAA,CAAAqL,EAAAA,CAAkE,IAAA,CACpF,MACF,CAEA,GAAIlP,EAAAA,GAAc,SAAA,CAAW,CAS3B,IAASkT,CAAAA,CAAT,SAAcnM,CAAAA,CAAa,CACzB,IAAMC,CAAAA,CAAUD,CAAAA,CAAMoM,CAAAA,CAClBC,EAAAA,CAAS,EAAA,CACT/J,GAAO,IAAA,CAEX,IAAA,IAAS5F,EAAAA,CAAI,CAAA,CAAGA,EAAAA,CAAI4P,CAAAA,CAAG5P,EAAAA,EAAAA,CAAK,CAC1B,GAAIsF,CAAAA,CAAOtF,EAAC,CAAA,GAAM,GAAA,CAAK,CACrB2P,EAAAA,EAAU,GAAA,CACV,QACF,CACUpM,CAAAA,CAAUvD,EAAAA,CAAI6P,CAAAA,EACfC,CAAAA,CACPH,EAAAA,EAAUrK,CAAAA,CAAOtF,EAAC,GAElB2P,EAAAA,EAAUlQ,CAAAA,CAAM,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,MAAA,EAAO,CAAIA,CAAAA,CAAM,MAAM,CAAC,CAAA,CACxDmG,EAAAA,CAAO,KAAA,EAEX,CAEAmK,CAAAA,CAAK,WAAA,CAAcJ,EAAAA,CAEd/J,EAAAA,EAGHiG,CAAAA,CAAO,OAAA,CAAU,IAAA,CACjBzL,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,EAHAyL,CAAAA,CAAO,QAAU,qBAAA,CAAsB4D,CAAI,EAK/C,CAAA,CAnCA,IAAMnK,CAAAA,CAAS,MAAA,CAAO6J,CAAO,CAAA,CACvB1P,CAAAA,CAAQ,0EAAA,CACRmQ,CAAAA,CAAItK,CAAAA,CAAO,MAAA,CACXwK,EAAUzB,CAAAA,CAAiB,EAAA,CAC3BwB,CAAAA,CAAaD,CAAAA,CAAI,CAAA,CAAKvB,CAAAA,CAAiB,EAAA,EAAQuB,CAAAA,CAAI,CAAA,CAAA,CAAK,CAAA,CACxDF,CAAAA,CAAY,WAAA,CAAY,GAAA,EAAI,CAC5BK,CAAAA,CAAO7Q,EAAAA,CAAawM,EAAI,OAAQ,CAAA,CA+BtCG,CAAAA,CAAO,OAAA,CAAU,qBAAA,CAAsB4D,CAAI,CAAA,CAC3C,MACF,CAEA,GAAIlT,EAAAA,GAAc,UAAA,CAAY,CAC5B,IAAMe,CAAAA,CAAOuP,EAAAA,CAAgB,OAAA,GAAY,OAAY,MAAA,CAAOA,EAAAA,CAAgB,OAAO,CAAA,CAAI,IAAA,CACvF,GAAI,CAACvP,CAAAA,CAAM,OACX,IAAM0S,CAAAA,CAAY,MAAA,CAAOb,CAAO,CAAA,CAC1BvV,CAAAA,CAAK8R,CAAAA,CAAI,QACTjP,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5BmG,CAAAA,CAAQF,EAAAA,CAAgBjG,CAAAA,CAAI0D,CAAI,CAAA,CAChCuL,CAAAA,CAAAA,CAAUgG,EAAAA,CAAA1T,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,CAAe,OAAA,GAAf,IAAA,CAAA0T,GAA0B,EAAA,CACpC1H,CAAAA,CAAgBkH,CAAAA,CAAAA,CAAkBtO,CAAAA,CAAM,MAAA,CAAS,CAAA,EAAK8I,CAAAA,CAAU,EAAA,CAEtE9I,CAAAA,CAAM,OAAA,CAAQ,CAACE,CAAAA,CAAMD,EAAAA,GAAM,CACzBC,CAAAA,CAAK,OAAA,CACH,CACE,CAAE,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAY,CAAA,CAClC,CAAE,OAAA,CAAS,EAAG,MAAA,CAAQ,WAAY,CACpC,CAAA,CACA,CAAE,QAAA,CAAUoO,CAAAA,CAAgB,KAAA,CAAOrO,GAAI6I,CAAAA,CAAS,IAAA,CAAM,UAAA,CAAY,MAAA,CAAQ1Q,EAAS,CACrF,EACF,CAAC,CAAA,CAED,IAAM8X,CAAAA,CAAYrW,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAUuN,EAAe,IAAA,CAAM,UAAW,CAAC,CAAA,CACtG7I,CAAAA,CAAU,IAAM,CACf1C,CAAAA,CAAqBhC,EAAI6C,CAAK,CAAA,GACnC7C,CAAAA,CAAG,WAAA,CAAcoW,CAAAA,EACnB,CAAA,CACAC,CAAAA,CAAU,QAAA,CAAW,IAAM,CAAE3R,CAAAA,EAAQ,CAAG8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GAAmB,CAAA,CAC3D6P,EAAU,QAAA,CAAW3R,CAAAA,CACrBqN,CAAAA,CAAQ,OAAA,CAAUsE,CAAAA,CAClB,MACF,CAEA,GAAI1T,KAAc,QAAA,CAAU,CAC1B,IAAMe,CAAAA,CAAO,MAAA,CAAO6R,CAAO,CAAA,CAC3B,GAAI,CAAC7R,CAAAA,CAAM,OACX,IAAM1D,CAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACTjP,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5BmG,CAAAA,CAAQF,EAAAA,CAAgBjG,CAAAA,CAAI0D,CAAAA,CAAO2C,CAAAA,EAAS,CAChDA,EAAK,KAAA,CAAM,OAAA,CAAU,GAAA,CACrBA,CAAAA,CAAK,KAAA,CAAM,MAAA,CAAS,YACtB,CAAC,CAAA,CACK4I,CAAAA,CAAAA,CAAUiG,EAAAA,CAAA3T,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,CAAe,OAAA,GAAf,IAAA,CAAA2T,GAA0B,EAAA,CACpC3H,CAAAA,CAAgBkH,CAAAA,CAAAA,CAAkBtO,CAAAA,CAAM,MAAA,CAAS,CAAA,EAAK8I,CAAAA,CAAU,EAAA,CAEtE9I,CAAAA,CAAM,OAAA,CAAQ,CAACE,CAAAA,CAAMD,CAAAA,GAAM,CACzBC,CAAAA,CAAK,OAAA,CACH9F,GAAgB,CACd,CAAE,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,WAAY,CAAA,CAClC,CAAE,QAAS,CAAA,CAAG,MAAA,CAAQ,WAAY,CACpC,CAAA,CAAGgB,CAAa,CAAA,CAChB,CAAE,SAAUkT,CAAAA,CAAgB,KAAA,CAAA,CAAQtO,CAAAA,CAAM,MAAA,CAAS,CAAA,CAAIC,CAAAA,EAAK6I,CAAAA,CAAS,IAAA,CAAM,UAAA,CAAY,MAAA,CAAQxQ,EAAO,CACxG,EACF,CAAC,CAAA,CAED,IAAM4X,EAAYrW,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAUuN,CAAAA,CAAe,IAAA,CAAM,UAAW,CAAC,CAAA,CACtG7I,CAAAA,CAAU,IAAM,CACf1C,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC7C,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,EACnB,CAAA,CACA2S,CAAAA,CAAU,QAAA,CAAW,IAAM,CAAE3R,CAAAA,EAAQ,CAAG8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GAAmB,CAAA,CAC3D6P,CAAAA,CAAU,QAAA,CAAW3R,EACrBqN,CAAAA,CAAQ,OAAA,CAAUsE,CAAAA,CAClB,MACF,CAEA,GAAI1T,EAAAA,GAAc,cAAA,CAAgB,CAChC,IAAM2T,CAAAA,CAAMrD,EAAAA,CAAgB,OAAA,GAAY,MAAA,CAAY,MAAA,CAAOA,EAAAA,CAAgB,OAAO,CAAA,CAAI,IAAA,CAChFrQ,CAAAA,CAAO,MAAA,CAAO2S,CAAO,CAAA,CAC3B,GAAI,CAACe,GAAO,CAAC1T,CAAAA,CAAM,OAEnB,IAAM5C,CAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACQ9R,CAAAA,CAAG,qBAAA,EAAsB,CAAE,KAAA,KAC5C6C,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5B,CAAE,KAAA,CAAAwE,CAAAA,CAAO,KAAA,CAAAC,CAAAA,CAAO,OAAA,CAAAC,CAAQ,CAAA,CAAIb,EAAAA,CAAsB7D,CAAAA,CAAIsW,CAAAA,CAAK1T,CAAAA,CAAMC,CAAK,EAC5E4B,CAAAA,CAAM,KAAA,CAAM,SAAA,CAAY,mBAExB,IAAMyC,CAAAA,CAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC1CA,CAAAA,CAAK,KAAA,CAAM,SAAW,UAAA,CACtBA,CAAAA,CAAK,KAAA,CAAM,MAAA,CAAS,GAAA,CACpBA,CAAAA,CAAK,KAAA,CAAM,IAAA,CAAO,IAClBA,CAAAA,CAAK,KAAA,CAAM,KAAA,CAAQ,MAAA,CACnBA,CAAAA,CAAK,KAAA,CAAM,MAAA,CAAS,KAAA,CACpBA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,cAAA,CACxBA,CAAAA,CAAK,KAAA,CAAM,SAAA,CAAY,WAAA,CACvBA,EAAK,KAAA,CAAM,eAAA,CAAkB,QAAA,CAE7BlH,CAAAA,CAAG,WAAA,CAAYkH,CAAI,CAAA,CAEnB,IAAMqP,EAAc9B,CAAAA,CAAiB,GAAA,CAC/B+B,EAAAA,CAAa/B,CAAAA,CAAiB,GAAA,CAC9BgC,EAAAA,CAAehC,CAAAA,CAAiB,GAAA,CAEhCiC,GAAYjT,EAAAA,CAAkBzD,CAAAA,CAAI4C,CAAI,CAAA,CAAE,KAAA,CAC3Ba,EAAAA,CAAkBzD,CAAAA,CAAI4C,CAAI,CAAA,CAAE,OAE/CsE,CAAAA,CAAK,KAAA,CAAM,KAAA,CAAQ,CAAA,EAAGwP,EAAS,KAC/BxP,CAAAA,CAAK,KAAA,CAAM,MAAA,CAAS,GAAA,CAEpB1C,CAAAA,CAAM,OAAA,CACJ,CAAC,CAAE,UAAW,eAAgB,CAAA,CAAG,CAAE,SAAA,CAAW,mBAAoB,CAAC,CAAA,CACnE,CAAE,SAAU+R,CAAAA,CAAa,MAAA,CAAQjY,EAAAA,CAAS,IAAA,CAAM,UAAW,CAC7D,CAAA,CAEA,IAAMqD,EAAAA,CAAO8C,CAAAA,CAAM,OAAA,CACjB,CAAC,CAAE,SAAA,CAAW,kBAAmB,CAAA,CAAG,CAAE,SAAA,CAAW,eAAgB,CAAC,CAAA,CAClE,CAAE,QAAA,CAAU+R,EAAAA,CAAY,MAAA,CAAQ/X,EAAAA,CAAQ,IAAA,CAAM,UAAW,CAC3D,CAAA,CAEAyI,CAAAA,CAAK,OAAA,CACH,CAAC,CAAE,SAAA,CAAW,WAAY,CAAA,CAAG,CAAE,SAAA,CAAW,WAAY,CAAC,CAAA,CACvD,CAAE,QAAA,CAAUuP,EAAAA,CAAc,MAAA,CAAQjY,EAAAA,CAAa,IAAA,CAAM,UAAW,CAClE,EAEAuT,CAAAA,CAAQ,OAAA,CAAUpQ,EAAAA,CAClBA,EAAAA,CAAK,QAAA,CAAW,IAAM,CAEpB,GADAoQ,EAAQ,OAAA,CAAU,IAAA,CACd/R,CAAAA,CAAI,CACN,IAAMkH,EAAAA,CAAOlH,CAAAA,CAAG,aAAA,CAAc,iBAAiB,CAAA,CAC3CkH,EAAAA,EAAMA,EAAAA,CAAK,MAAA,EAAO,CACtBxC,CAAAA,GACF,CACA8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,CAAA,CACA7E,EAAAA,CAAK,QAAA,CAAW+C,CAAAA,CAEhB,MACF,CAEA,GAAI/B,EAAAA,GAAc,YAAA,CAAc,CAC9B,IAAMe,CAAAA,CAAO,MAAA,CAAO6R,CAAO,CAAA,CAC3B,GAAI,CAAC7R,CAAAA,CAAM,OAEX,GAAI5B,EAAAA,EAAqB,CAAG,CAE1B,IAAMH,CAAAA,CADKmQ,CAAAA,CAAI,OAAA,CACC,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,SAAU,GAAA,CAAK,IAAA,CAAM,UAAW,CAAC,CAAA,CAC7FnQ,CAAAA,CAAK,QAAA,CAAW,IAAM6E,GAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACtB,MACF,CAEA,IAAMxG,CAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACTjP,EAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5BmG,CAAAA,CAAQF,EAAAA,CAAgBjG,CAAAA,CAAI0D,CAAAA,CAAO2C,CAAAA,EAAS,CAChDA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,qBAC1B,CAAC,CAAA,CACK4I,CAAAA,CAAAA,CAAUkG,GAAA5T,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,CAAe,OAAA,GAAf,IAAA,CAAA4T,EAAAA,CAA0B,IAAA,CAAK,GAAA,CAAI,EAAA,CAAI,IAAA,CAAK,GAAA,CAAI,EAAA,CAAIV,CAAAA,CAAiB,GAAI,CAAC,CAAA,CACpFrU,EAAO+F,CAAAA,CAAM,MAAA,CAAS,CAAA,CAAIA,CAAAA,CAAM,MAAA,CAAS,CAAA,CAAI,CAAA,CAEnDA,CAAAA,CAAM,OAAA,CAAQ,CAACE,CAAAA,CAAMD,CAAAA,GAAM,CACzB,IAAMzE,CAAAA,CAAO0E,CAAAA,CAAK,QAChB9F,EAAAA,CAAgB,CACd,CAAE,SAAA,CAAW,mBAAA,CAAqB,OAAA,CAAS,CAAE,CAAA,CAC7C,CAAE,SAAA,CAAW,iBAAA,CAAmB,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,GAAK,CAAA,CACzD,CAAE,UAAW,eAAgB,CAC/B,CAAA,CAAGgB,CAAa,CAAA,CAChB,CAAE,QAAA,CAAUkT,CAAAA,CAAgB,KAAA,CAAOrO,CAAAA,CAAI6I,CAAAA,CAAS,IAAA,CAAM,UAAA,CAAY,MAAA,CAAQxQ,EAAO,CACnF,EACAkD,CAAAA,CAAK,QAAA,CAAW,IAAM,CACfK,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnCsD,EAAM,OAAA,CAASwQ,CAAAA,EAAS,CAAEA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,OAAO,CAAC,EAC1D3W,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,EACnB,CAAA,CACI0C,CAAAA,GAAMhG,CAAAA,GACRuB,CAAAA,CAAK,QAAA,CAAW,IAAM,CACfK,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnCsD,CAAAA,CAAM,OAAA,CAASwQ,GAAS,CAAEA,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,OAAO,CAAC,CAAA,CAC1D3W,CAAAA,CAAG,YAAc0D,CAAAA,CACjB8C,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,EACF,CAAA,EAEJ,CAAC,CAAA,CAED,MACF,CAEA,GAAI7D,EAAAA,GAAc,QAAA,CAAU,CAE1B,GAAI,CADS,MAAA,CAAO4S,CAAO,CAAA,CAChB,OAEX,GAAIzT,EAAAA,EAAqB,CAAG,CAE1B,IAAMH,CAAAA,CADKmQ,EAAI,OAAA,CACC,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAU,GAAA,CAAK,IAAA,CAAM,UAAW,CAAC,CAAA,CAC7FnQ,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACtB,MACF,CAEA,IAAMxG,CAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACTjP,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAE5B4W,CAAAA,CAAW,CAAC,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAC,EAAE,GAAA,CAAKxQ,CAAAA,EAAM,CAAA,EAAGA,CAAC,CAAA,GAAA,EAAMA,CAAC,CAAA,EAAA,CAAI,CAAA,CAAE,KAAK,IAAI,CAAA,CAChEyQ,CAAAA,CAAQ,CAAC,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAC,CAAA,CAAE,GAAA,CAAI,IAAM,SAAS,CAAA,CAAE,IAAA,CAAK,IAAI,EAEtDlV,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CACdO,EAAAA,CAAgB,CACd,CAAE,UAAA,CAAYqW,CAAAA,CAAU,SAAA,CAAW,oCAAqC,CAAA,CACxE,CAAE,UAAA,CAAYC,CAAAA,CAAO,SAAA,CAAW,6BAA8B,CAChE,CAAA,CAAGtV,CAAa,CAAA,CAChB,CAAE,QAAA,CAAUkT,CAAAA,CAAgB,MAAA,CAAQjW,EAAAA,CAAa,IAAA,CAAM,UAAW,CACpE,CAAA,CAEAuT,CAAAA,CAAQ,OAAA,CAAUpQ,CAAAA,CAClB,IAAM+C,EAAU,IAAM,CACf1C,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC7C,CAAAA,CAAG,KAAA,CAAM,WAAa,EAAA,CACtBA,CAAAA,CAAG,KAAA,CAAM,SAAA,CAAY,EAAA,CACrB+R,CAAAA,CAAQ,OAAA,CAAU,IAAA,EACpB,EACApQ,CAAAA,CAAK,QAAA,CAAW,IAAM,CACpB+C,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,CAAA,CACA7E,CAAAA,CAAK,QAAA,CAAW+C,CAAAA,CAEhB,MACF,CAEA,GAAI/B,KAAc,YAAA,CAAc,CAC9B,GAAIb,EAAAA,EAAqB,CAAG,CAE1B,IAAMH,CAAAA,CADKmQ,CAAAA,CAAI,OAAA,CACC,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAU,GAAA,CAAK,IAAA,CAAM,UAAW,CAAC,CAAA,CAC7FnQ,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,IACtB,MACF,CAEA,IAAMxG,CAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACTjP,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5B8W,CAAAA,CAAmB9W,CAAAA,CAAG,KAAA,CAAM,QAAA,CAC5B+W,CAAAA,CAAmB/W,CAAAA,CAAG,KAAA,CAAM,SAE5BgX,CAAAA,CAAe,gBAAA,CAAiBhX,CAAE,CAAA,CAAE,eAAA,CACpCiX,CAAAA,CAAU,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA,CAC5CA,CAAAA,CAAQ,KAAA,CAAM,QAAA,CAAW,UAAA,CACzBA,CAAAA,CAAQ,KAAA,CAAM,IAAM,GAAA,CACpBA,CAAAA,CAAQ,KAAA,CAAM,IAAA,CAAO,GAAA,CACrBA,CAAAA,CAAQ,KAAA,CAAM,KAAA,CAAQ,OACtBA,CAAAA,CAAQ,KAAA,CAAM,MAAA,CAAS,MAAA,CACvBA,CAAAA,CAAQ,KAAA,CAAM,UAAA,CAAaD,CAAAA,GAAiB,oBAAsBA,CAAAA,GAAiB,aAAA,CAAgBA,CAAAA,CAAe,cAAA,CAClHC,CAAAA,CAAQ,KAAA,CAAM,SAAA,CAAY,mBAAA,CAC1BA,CAAAA,CAAQ,KAAA,CAAM,aAAA,CAAgB,MAAA,CAE9BjX,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,UAAA,CACpBA,EAAG,KAAA,CAAM,QAAA,CAAW,QAAA,CACpBA,CAAAA,CAAG,WAAA,CAAYiX,CAAO,CAAA,CAEtB,IAAMtV,EAAOsV,CAAAA,CAAQ,OAAA,CACnB,CAAC,CAAE,SAAA,CAAW,mBAAoB,CAAA,CAAG,CAAE,UAAW,kBAAmB,CAAC,CAAA,CACtE,CAAE,QAAA,CAAUxC,CAAAA,CAAgB,MAAA,CAAQjW,EAAAA,CAAa,IAAA,CAAM,UAAW,CACpE,CAAA,CAEMkG,CAAAA,CAAU,IAAM,CACf1C,CAAAA,CAAqBhC,EAAI6C,CAAK,CAAA,GACnCoU,CAAAA,CAAQ,MAAA,EAAO,CACfjX,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW8W,CAAAA,CACpB9W,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW+W,CAAAA,CACpBhF,CAAAA,CAAQ,OAAA,CAAU,IAAA,EACpB,EAEAA,CAAAA,CAAQ,OAAA,CAAUpQ,CAAAA,CAClBA,CAAAA,CAAK,QAAA,CAAW,IAAM,CACpB+C,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,CAAA,CACA7E,CAAAA,CAAK,QAAA,CAAW+C,CAAAA,CAEhB,MACF,CAEA,GAAI/B,EAAAA,GAAc,YAAA,CAAc,CAC9B,IAAMvB,CAAAA,CAAU6R,EAAAA,CAAgB,UAAY,MAAA,CAAY,MAAA,CAAOA,EAAAA,CAAgB,OAAO,CAAA,CAAI,IAAA,CACpF5R,CAAAA,CAAU,MAAA,CAAOkU,CAAO,CAAA,CAC9B,GAAI,CAACnU,CAAAA,CAAS,OAEd,IAAMpB,CAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACTjP,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5B+W,CAAAA,CAAmB/W,CAAAA,CAAG,KAAA,CAAM,SAClCA,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW,QAAA,CACpB,GAAM,CAAE,KAAA,CAAOsH,CAAAA,CAAK,KAAA,CAAOC,CAAAA,CAAQ,OAAA,CAAA7C,CAAQ,CAAA,CAAIb,EAAAA,CAAsB7D,CAAAA,CAAIoB,CAAAA,CAASC,EAASwB,CAAK,CAAA,CAChG0E,CAAAA,CAAO,KAAA,CAAM,SAAA,CAAY,kBAAA,CACzBD,CAAAA,CAAI,OAAA,CACF,CAAC,CAAE,SAAA,CAAW,eAAgB,CAAA,CAAG,CAAE,SAAA,CAAW,mBAAoB,CAAC,CAAA,CACnE,CAAE,QAAA,CAAUmN,CAAAA,CAAgB,MAAA,CAAAzD,CAAAA,CAAQ,IAAA,CAAM,UAAW,CACvD,CAAA,CAEA,IAAMrP,CAAAA,CAAO4F,CAAAA,CAAO,OAAA,CAClB,CAAC,CAAE,SAAA,CAAW,kBAAmB,CAAA,CAAG,CAAE,SAAA,CAAW,eAAgB,CAAC,CAAA,CAClE,CAAE,QAAA,CAAUkN,CAAAA,CAAgB,MAAA,CAAAzD,CAAAA,CAAQ,IAAA,CAAM,UAAW,CACvD,CAAA,CAEAe,CAAAA,CAAQ,QAAUpQ,CAAAA,CAClBA,CAAAA,CAAK,QAAA,CAAW,IAAM,CACpBoQ,CAAAA,CAAQ,OAAA,CAAU,IAAA,CAClBrN,CAAAA,EAAQ,CACR1E,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW+W,CAAAA,CACpBvQ,CAAAA,EAAA,IAAA,EAAAA,IACF,CAAA,CACA7E,CAAAA,CAAK,QAAA,CAAW,IAAM,CACpB+C,CAAAA,EAAQ,CACR1E,CAAAA,CAAG,KAAA,CAAM,QAAA,CAAW+W,EACtB,CAAA,CAEA,MACF,CAEA,GAAIpU,EAAAA,GAAc,UAAW,CAC3B,IAAMe,CAAAA,CAAO,MAAA,CAAO6R,CAAO,CAAA,CAC3B,GAAI,CAAC7R,EAAM,OAEX,GAAI5B,EAAAA,EAAqB,CAAG,CAE1B,IAAMH,CAAAA,CADKmQ,CAAAA,CAAI,QACC,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAU,GAAA,CAAK,IAAA,CAAM,UAAW,CAAC,CAAA,CAC7FnQ,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACtB,MACF,CAEA,IAAMxG,CAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACTjP,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5BmG,EAAQF,EAAAA,CAAgBjG,CAAAA,CAAI0D,CAAI,CAAA,CAChCkL,CAAAA,CAAQzI,CAAAA,CAAM,GAAA,CAAI,CAACpF,CAAAA,CAAGqF,CAAAA,GAAMA,CAAC,CAAA,CAAE,IAAA,CAAK,IAAM,IAAA,CAAK,MAAA,GAAW,EAAG,CAAA,CAC7D6P,CAAAA,CAAaxB,CAAAA,CAAiBtO,CAAAA,CAAM,MAAA,CACtCqG,CAAAA,CAAYrG,CAAAA,CAAM,OAEtB,GAAIqG,CAAAA,GAAc,CAAA,CAAG,CACnBhG,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,CACA,MACF,CAEAL,CAAAA,CAAM,OAAA,CAAQ,CAACE,CAAAA,CAAMD,CAAAA,GAAM,CACzB,IAAMzE,CAAAA,CAAO0E,CAAAA,CAAK,OAAA,CAChB9F,EAAAA,CAAgB,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAGgB,CAAa,CAAA,CAC/D,CAAE,QAAA,CAAUkT,CAAAA,CAAgB,KAAA,CAAO7F,CAAAA,CAAMxI,CAAC,CAAA,CAAI6P,CAAAA,CAAY,IAAA,CAAM,UAAW,CAC7E,CAAA,CACAtU,CAAAA,CAAK,QAAA,CAAW,IAAM,CACfK,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC7C,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,EACnB,CAAA,CACA/B,CAAAA,CAAK,QAAA,CAAW,IAAM,CAEpB,GADA6K,CAAAA,EAAa,CAAA,CACTA,CAAAA,GAAc,CAAA,CAAG,CACnB,GAAI,CAACxK,EAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,CAAG,OACtC7C,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CACjB8C,CAAAA,EAAA,MAAAA,CAAAA,GACF,CACF,EACF,CAAC,CAAA,CAED,MACF,CAEA,GAAI7D,EAAAA,GAAc,YAAA,CAAc,CAC9B,IAAMe,CAAAA,CAAO,MAAA,CAAO6R,CAAO,CAAA,CAC3B,GAAI,CAAC7R,CAAAA,CAAM,OAEX,IAAMwT,CAAAA,CAAWxT,CAAAA,CAAK,MAAA,EAAU,CAAA,CAC1B1D,CAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACTqE,CAAAA,CAAO7Q,EAAAA,CAAatF,CAAE,CAAA,CACtB6C,CAAAA,CAAQpB,EAAkBzB,CAAE,CAAA,CAC5BmX,CAAAA,CAAU1T,EAAAA,CAAkBzD,CAAAA,CAAI0D,CAAI,CAAA,CACpC0T,CAAAA,CAAcpX,CAAAA,CAAG,KAAA,CAAM,OAAA,CAE7BA,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAU,aAAA,CACnBmW,CAAAA,CAAK,YAAc,EAAA,CAEnB,IAAMkB,CAAAA,CAAW,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC9CA,CAAAA,CAAS,YAAc3T,CAAAA,CACvB2T,CAAAA,CAAS,KAAA,CAAM,QAAA,CAAW,QAAA,CAC1BA,CAAAA,CAAS,KAAA,CAAM,UAAA,CAAa,SAC5BA,CAAAA,CAAS,KAAA,CAAM,KAAA,CAAQ,GAAA,CACvBA,CAAAA,CAAS,KAAA,CAAM,UAAA,CAAa,OAAA,CAE5B,IAAMC,CAAAA,CAAS,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC5CA,CAAAA,CAAO,WAAA,CAAc,IACrBA,CAAAA,CAAO,KAAA,CAAM,OAAA,CAAU,cAAA,CACvBA,CAAAA,CAAO,KAAA,CAAM,UAAA,CAAa,KAAA,CAC1BA,CAAAA,CAAO,KAAA,CAAM,UAAA,CAAa,KAAA,CAC1BA,CAAAA,CAAO,KAAA,CAAM,OAAA,CAAU,GAAA,CAEvBnB,EAAK,WAAA,CAAYkB,CAAQ,CAAA,CACzBrX,CAAAA,CAAG,WAAA,CAAYsX,CAAM,CAAA,CAErB,IAAMC,CAAAA,CAAaF,CAAAA,CAAS,OAAA,CAC1B,CAAC,CAAE,KAAA,CAAO,GAAI,CAAA,CAAG,CAAE,KAAA,CAAO,CAAA,EAAGF,CAAAA,CAAQ,KAAK,CAAA,EAAA,CAAK,CAAC,CAAA,CAChD,CAAE,SAAU1C,CAAAA,CAAgB,MAAA,CAAQ,CAAA,MAAA,EAASyC,CAAQ,CAAA,MAAA,CAAA,CAAU,IAAA,CAAM,UAAW,CAClF,EAEMM,EAAAA,CAAa,IAAM,CAAEF,CAAAA,CAAO,KAAA,CAAM,OAAA,CAAU,IAAI,CAAA,CAChDG,EAAAA,CAAgB,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGhD,CAAAA,CAAiByC,CAAQ,CAAA,CACrDQ,EAAAA,CAAY,WAAWF,EAAAA,CAAYC,EAAa,CAAA,CAEhDE,EAAAA,CAAcL,CAAAA,CAAO,OAAA,CACzB,CACE,CAAE,QAAS,CAAA,CAAG,MAAA,CAAQ,CAAE,CAAA,CACxB,CAAE,OAAA,CAAS,EAAA,CAAK,MAAA,CAAQ,EAAI,CAAA,CAC5B,CAAE,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,CAAE,CAC1B,CAAA,CACA,CAAE,QAAA,CAAU,GAAA,CAAK,UAAA,CAAY,CAAA,CAAA,CAAS,CACxC,CAAA,CAEMM,EAAAA,CAAS,IAAM,CACnB,YAAA,CAAaF,EAAS,CAAA,CACtBC,EAAAA,CAAY,MAAA,EAAO,CACnBL,CAAAA,CAAO,QAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAU,GAAA,CAAK,IAAA,CAAM,UAAW,CAAC,EACtF,CAAA,CAEM5S,EAAAA,CAAU,IAAM,CACf1C,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC+U,IAAO,CACPzB,CAAAA,CAAK,WAAA,CAAczS,CAAAA,CACnB1D,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAUoX,CAAAA,EACrB,CAAA,CAEArF,CAAAA,CAAQ,OAAA,CAAUwF,CAAAA,CAClBA,CAAAA,CAAW,QAAA,CAAW,IAAM,CAC1BxF,EAAQ,OAAA,CAAU,IAAA,CAClB6F,EAAAA,EAAO,CACP,UAAA,CAAW,IAAM,CACX7F,CAAAA,CAAQ,OAAA,GACZoE,CAAAA,CAAK,WAAA,CAAczS,CAAAA,CACnB1D,CAAAA,CAAG,KAAA,CAAM,OAAA,CAAUoX,CAAAA,CACnB5Q,GAAA,IAAA,EAAAA,CAAAA,EAAAA,EACF,CAAA,CAAG,GAAG,EACR,CAAA,CACA+Q,CAAAA,CAAW,QAAA,CAAW7S,GAEtB,MACF,CAEA,GAAI/B,EAAAA,GAAc,QAAA,CAAU,CAC1B,IAAMe,CAAAA,CAAO,OAAO6R,CAAO,CAAA,CAC3B,GAAI,CAAC7R,CAAAA,CAAM,OAEX,GAAI5B,EAAAA,EAAqB,CAAG,CAE1B,IAAMH,CAAAA,CADKmQ,CAAAA,CAAI,OAAA,CACC,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAU,GAAA,CAAK,IAAA,CAAM,UAAW,CAAC,CAAA,CAC7FnQ,CAAAA,CAAK,SAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACtB,MACF,CAEA,IAAMxG,CAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACTjP,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5BmG,CAAAA,CAAQF,EAAAA,CAAgBjG,EAAI0D,CAAI,CAAA,CAClC8I,CAAAA,CAAYrG,CAAAA,CAAM,MAAA,CAEtB,GAAIqG,CAAAA,GAAc,CAAA,CAAG,CACnBhG,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,CACA,MACF,CAEAL,CAAAA,CAAM,OAAA,CAAQ,CAACE,EAAMD,CAAAA,GAAM,CACzB,IAAMyC,CAAAA,CAAAA,CAAK,IAAA,CAAK,MAAA,EAAO,CAAI,EAAA,EAAO,EAAA,CAC5BD,CAAAA,CAAAA,CAAK,IAAA,CAAK,MAAA,EAAO,CAAI,EAAA,EAAO,EAAA,CAC5BiP,CAAAA,CAAAA,CAAK,KAAK,MAAA,EAAO,CAAI,EAAA,EAAO,CAAA,CAE5BlW,EAAAA,CAAO0E,CAAAA,CAAK,OAAA,CAChB9F,EAAAA,CAAgB,CACd,CAAE,SAAA,CAAW,CAAA,UAAA,EAAasI,CAAC,CAAA,IAAA,EAAOD,CAAC,CAAA,WAAA,EAAciP,CAAC,CAAA,IAAA,CAAA,CAAQ,OAAA,CAAS,CAAE,CAAA,CACrE,CAAE,SAAA,CAAW,8BAAA,CAAgC,OAAA,CAAS,CAAE,CAC1D,CAAA,CAAGtW,CAAa,CAAA,CAChB,CACE,QAAA,CAAUkT,CAAAA,CAAiB,GAC3B,KAAA,CAAO,IAAA,CAAK,MAAA,EAAO,CAAIA,CAAAA,CAAiB,EAAA,CACxC,IAAA,CAAM,UAAA,CACN,OAAQnW,EACV,CACF,CAAA,CACAqD,EAAAA,CAAK,QAAA,CAAW,IAAM,CACfK,CAAAA,CAAqBhC,EAAI6C,CAAK,CAAA,GACnC7C,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,EACnB,CAAA,CACA/B,EAAAA,CAAK,QAAA,CAAW,IAAM,CAEpB,GADA6K,CAAAA,EAAa,CAAA,CACTA,CAAAA,GAAc,CAAA,CAAG,CACnB,GAAI,CAACxK,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,CAAG,OACtC7C,CAAAA,CAAG,WAAA,CAAc0D,EACjB8C,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,CACF,EACF,CAAC,CAAA,CAED,MACF,CAEA,GAAI7D,EAAAA,GAAc,QAAA,CAAU,CAC1B,IAAMe,CAAAA,CAAO,MAAA,CAAO6R,CAAO,CAAA,CAC3B,GAAI,CAAC7R,CAAAA,CAAM,OAEX,GAAI5B,EAAAA,EAAqB,CAAG,CAE1B,IAAMH,CAAAA,CADKmQ,CAAAA,CAAI,OAAA,CACC,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAU,IAAK,IAAA,CAAM,UAAW,CAAC,CAAA,CAC7FnQ,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACtB,MACF,CAEA,IAAMxG,CAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACTjP,EAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5BmG,CAAAA,CAAQF,EAAAA,CAAgBjG,CAAAA,CAAI0D,CAAI,CAAA,CAClC8I,CAAAA,CAAYrG,CAAAA,CAAM,MAAA,CAEtB,GAAIqG,CAAAA,GAAc,CAAA,CAAG,CACnBhG,CAAAA,EAAA,MAAAA,CAAAA,EAAAA,CACA,MACF,CAEAL,CAAAA,CAAM,OAAA,CAAQ,CAACE,CAAAA,CAAMD,CAAAA,GAAM,CACzB,IAAMyC,CAAAA,CAAAA,CAAK,IAAA,CAAK,MAAA,EAAO,CAAI,EAAA,EAAO,CAAA,CAC5BD,GAAK,IAAA,CAAK,MAAA,EAAO,CAAI,EAAA,EAAO,CAAA,CAC5BiP,CAAAA,CAAAA,CAAK,IAAA,CAAK,MAAA,GAAW,EAAA,EAAO,EAAA,CAE5BlW,EAAAA,CAAO0E,CAAAA,CAAK,OAAA,CAChB,CACE,CAAE,SAAA,CAAW,8BAA+B,CAAA,CAC5C,CAAE,SAAA,CAAW,CAAA,UAAA,EAAawC,CAAC,CAAA,IAAA,EAAOD,CAAC,CAAA,WAAA,EAAciP,CAAC,CAAA,IAAA,CAAA,CAAQ,MAAA,CAAQ,GAAK,CAAA,CACvE,CAAE,SAAA,CAAW,CAAA,UAAA,EAAa,CAAChP,CAAAA,CAAI,EAAG,CAAA,IAAA,EAAO,CAACD,CAAAA,CAAI,EAAG,CAAA,WAAA,EAAc,CAACiP,CAAAA,CAAI,EAAG,CAAA,IAAA,CAAA,CAAQ,MAAA,CAAQ,GAAK,CAAA,CAC5F,CAAE,SAAA,CAAW,aAAahP,CAAAA,CAAI,EAAG,CAAA,IAAA,EAAOD,CAAAA,CAAI,EAAG,CAAA,WAAA,EAAciP,CAAAA,CAAI,EAAG,CAAA,IAAA,CAAA,CAAQ,MAAA,CAAQ,GAAK,CAAA,CACzF,CAAE,SAAA,CAAW,CAAA,UAAA,EAAa,CAAChP,EAAI,EAAG,CAAA,IAAA,EAAO,CAACD,CAAAA,CAAI,EAAG,CAAA,WAAA,EAAc,CAACiP,CAAAA,CAAI,EAAG,CAAA,IAAA,CAAA,CAAQ,MAAA,CAAQ,GAAK,CAAA,CAC5F,CAAE,SAAA,CAAW,8BAA+B,CAC9C,EACA,CACE,QAAA,CAAUpD,CAAAA,CAAiB,EAAA,CAC3B,KAAA,CAAO,IAAA,CAAK,MAAA,EAAO,CAAIA,CAAAA,CAAiB,EAAA,CACxC,IAAA,CAAM,UAAA,CACN,MAAA,CAAQjW,EACV,CACF,CAAA,CACAmD,GAAK,QAAA,CAAW,IAAM,CACfK,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC7C,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,EACnB,CAAA,CACA/B,EAAAA,CAAK,QAAA,CAAW,IAAM,CAEpB,GADA6K,GAAa,CAAA,CACTA,CAAAA,GAAc,CAAA,CAAG,CACnB,GAAI,CAACxK,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,CAAG,OACtC7C,CAAAA,CAAG,WAAA,CAAc0D,CAAAA,CACjB8C,CAAAA,EAAA,IAAA,EAAAA,IACF,CACF,EACF,CAAC,CAAA,CAED,MACF,CAEA,GAAI7D,EAAAA,GAAc,QAAS,CACzB,GAAIb,EAAAA,EAAqB,CAAG,CAE1B,IAAMH,CAAAA,CADKmQ,CAAAA,CAAI,QACC,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAU,GAAA,CAAK,IAAA,CAAM,UAAW,CAAC,CAAA,CAC7FnQ,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACtB,MACF,CAEA,IAAMxG,CAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACTjP,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5B8X,EAAgB,gBAAA,CAAiB9X,CAAE,CAAA,CAAE,KAAA,CACrC+X,CAAAA,CAAU,KAAA,CAAM,IAAA,CAAK,CAAE,MAAA,CAAQ,CAAE,CAAA,CAAG,CAAChX,CAAAA,CAAGqF,CAAAA,GAAM,CAAA,EAAA,EAAKA,CAAAA,CAAI,CAAC,CAAA,KAAA,EAAQ0R,CAAa,CAAA,CAAE,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,CAC1FnW,CAAAA,CAAO3B,EAAG,OAAA,CACdO,EAAAA,CAAgB,CACd,CAAE,SAAA,CAAW,eAAA,CAAiB,UAAA,CAAY,MAAO,EACjD,CAAE,SAAA,CAAW,mBAAA,CAAqB,UAAA,CAAY,CAAA,EAAGwX,CAAO,CAAA,6BAAA,CAAA,CAAiC,MAAA,CAAQ,GAAK,CAAA,CACtG,CAAE,SAAA,CAAW,eAAA,CAAiB,UAAA,CAAY,MAAO,CACnD,EAAGxW,CAAa,CAAA,CAChB,CAAE,QAAA,CAAUkT,CAAAA,CAAgB,MAAA,CAAQhW,EAAO,CAC7C,CAAA,CACMiG,CAAAA,CAAU,IAAM,CACf1C,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC7C,EAAG,KAAA,CAAM,UAAA,CAAa,EAAA,CACtBA,CAAAA,CAAG,KAAA,CAAM,UAAA,CAAa,EAAA,CACtB+R,CAAAA,CAAQ,OAAA,CAAU,IAAA,EACpB,CAAA,CACAA,CAAAA,CAAQ,OAAA,CAAUpQ,CAAAA,CAClBA,CAAAA,CAAK,QAAA,CAAW,IAAM,CAAE+C,CAAAA,EAAQ,CAAG8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GAAmB,CAAA,CACtD7E,CAAAA,CAAK,SAAW+C,CAAAA,CAChB,MACF,CAEA,GAAI/B,EAAAA,GAAc,OAAA,CAAS,CACzB,GAAIb,IAAqB,CAAG,CAE1B,IAAMH,CAAAA,CADKmQ,CAAAA,CAAI,OAAA,CACC,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,EAAG,CAAE,QAAA,CAAU,GAAA,CAAK,IAAA,CAAM,UAAW,CAAC,CAAA,CAC7FnQ,CAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,EAAAA,CACtB,MACF,CAEA,IAAMxG,EAAK8R,CAAAA,CAAI,OAAA,CACTjP,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5B2B,CAAAA,CAAO3B,CAAAA,CAAG,OAAA,CACdO,EAAAA,CAAgB,CACd,CAAE,SAAA,CAAW,aAAc,CAAA,CAC3B,CAAE,UAAW,mBAAA,CAAqB,MAAA,CAAQ,IAAM,CAAA,CAChD,CAAE,SAAA,CAAW,mBAAA,CAAqB,MAAA,CAAQ,IAAM,CAAA,CAChD,CAAE,SAAA,CAAW,mBAAA,CAAqB,MAAA,CAAQ,EAAI,CAAA,CAC9C,CAAE,UAAW,mBAAA,CAAqB,MAAA,CAAQ,IAAM,CAAA,CAChD,CAAE,SAAA,CAAW,mBAAA,CAAqB,MAAA,CAAQ,IAAM,CAAA,CAChD,CAAE,SAAA,CAAW,aAAc,CAC7B,CAAA,CAAGgB,CAAa,EAChB,CAAE,QAAA,CAAUkT,CAAAA,CAAgB,MAAA,CAAQhW,EAAO,CAC7C,CAAA,CACMiG,CAAAA,CAAU,IAAM,CACf1C,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC7C,CAAAA,CAAG,KAAA,CAAM,WAAa,EAAA,CACtB+R,CAAAA,CAAQ,OAAA,CAAU,IAAA,EACpB,CAAA,CACAA,CAAAA,CAAQ,OAAA,CAAUpQ,CAAAA,CAClBA,CAAAA,CAAK,QAAA,CAAW,IAAM,CAAE+C,CAAAA,EAAQ,CAAG8B,CAAAA,EAAA,IAAA,EAAAA,IAAmB,CAAA,CACtD7E,CAAAA,CAAK,QAAA,CAAW+C,CAAAA,CAChB,MACF,CAEA,GAAI/B,EAAAA,GAAc,WAAY,CAyB5B,IAASkT,EAAAA,CAAT,SAAcnM,EAAAA,CAAa,CACzB,GAAI,CAAC1H,EAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,CAAG,OACtC,IAAM8G,EAAAA,CAAUD,EAAAA,CAAMoM,CAAAA,CACtB,GAAInM,EAAAA,EAAWqO,CAAAA,CAAS,CACtB7R,CAAAA,CAAM,OAAA,CAAQ,CAACE,EAAAA,CAAMD,KAAM,CACzBC,EAAAA,CAAK,WAAA,CAAc4R,CAAAA,CAAW7R,EAAC,CAAA,CAC/BC,EAAAA,CAAK,KAAA,CAAM,WAAa,OAC1B,CAAC,CAAA,CACD8P,CAAAA,CAAK,WAAA,CAAczS,CAAAA,CACnBuO,CAAAA,CAAO,OAAA,CAAU,KACjBzL,CAAAA,EAAA,IAAA,EAAAA,CAAAA,EAAAA,CACA,MACF,CACA,IAAMuD,EAAAA,CAAWJ,EAAAA,CAAUqO,CAAAA,CACrBE,EAAAA,CAAqB,IAAA,CAAK,KAAA,CAAMvO,EAAAA,CAAUwO,CAAM,CAAA,CAAI,CAAA,GAAM,EAChEhS,CAAAA,CAAM,OAAA,CAAQ,CAACE,EAAAA,CAAMD,EAAAA,GAAM,CACzB,IAAMgS,EAAAA,CAAahS,GAAI,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGD,CAAAA,CAAM,MAAM,CAAA,CAAK,GAAA,CAChD4D,EAAAA,EAAYqO,GACd/R,EAAAA,CAAK,WAAA,CAAc4R,CAAAA,CAAW7R,EAAC,CAAA,CACtB8R,EAAAA,GACT7R,EAAAA,CAAK,WAAA,CAAcR,CAAAA,CAAM,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,MAAA,EAAO,CAAIA,CAAAA,CAAM,MAAM,CAAC,CAAA,EAErE,CAAC,CAAA,CACDoM,CAAAA,CAAO,OAAA,CAAU,qBAAA,CAAsB4D,EAAI,EAC7C,CAAA,CAhDA,IAAMnS,CAAAA,CAAO,MAAA,CAAO6R,CAAO,CAAA,CAC3B,GAAI,CAAC7R,CAAAA,CAAM,OAEX,GAAI5B,EAAAA,EAAqB,CAAG,CAE1B,IAAMH,EAAAA,CADKmQ,CAAAA,CAAI,OAAA,CACC,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,EAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAU,GAAA,CAAK,KAAM,UAAW,CAAC,CAAA,CAC7FnQ,EAAAA,CAAK,QAAA,CAAW,IAAM6E,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,IACtB,MACF,CAEA,IAAMX,CAAAA,CAAQ,sNAAA,CACR7F,CAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACTqE,CAAAA,CAAO7Q,EAAAA,CAAatF,CAAG,CAAA,CACvB6C,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAE5BiY,EAAuB,EAAC,CACxB9R,CAAAA,CAAQF,EAAAA,CAAgBkQ,CAAAA,CAAMzS,CAAAA,CAAM,CAAC2C,EAAAA,CAAMP,EAAAA,GAAS,CACxDmS,CAAAA,CAAW,IAAA,CAAKnS,EAAI,CAAA,CACpBO,EAAAA,CAAK,KAAA,CAAM,WAAa,qBAC1B,CAAC,CAAA,CACK8R,CAAAA,CAAS,EAAA,CACTH,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAI,GAAA,CAAK,IAAA,CAAK,GAAA,CAAIvD,CAAAA,CAAiBtO,CAAAA,CAAM,MAAA,CAAS,EAAA,CAAIgS,CAAAA,CAAS,KAAK,GAAA,CAAI,CAAA,CAAGhS,CAAAA,CAAM,MAAM,CAAC,CAAC,CAAA,CACxG2P,CAAAA,CAAY,YAAY,GAAA,EAAI,CA4BlC7D,CAAAA,CAAO,OAAA,CAAU,qBAAA,CAAsB4D,EAAI,CAAA,CAC3C,MACF,CAEA,GAAIlT,EAAAA,GAAc,MAAA,CAAQ,CACxB,IAAMe,CAAAA,CAAO,MAAA,CAAO6R,CAAO,CAAA,CAC3B,GAAI,CAAC7R,CAAAA,CAAM,OACX,GAAI5B,EAAAA,EAAqB,CAAG,CAC9B,IAAMH,CAAAA,CAAOmQ,CAAAA,CAAI,OAAA,CAAQ,OAAA,CACvB,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,SAAU2C,CAAAA,CAAiB,CAAA,CAAG,MAAA,CAAQhW,EAAAA,CAAQ,IAAA,CAAM,UAAW,CACnE,CAAA,CACFsT,CAAAA,CAAQ,OAAA,CAAUpQ,CAAAA,CAClBA,CAAAA,CAAK,QAAA,CAAW,IAAM,CAAEmQ,CAAAA,CAAI,QAAS,KAAA,CAAM,UAAA,CAAa,EAAA,CAAIC,CAAAA,CAAQ,OAAA,CAAU,IAAA,CAAMvL,CAAAA,EAAA,IAAA,EAAAA,IAAmB,CAAA,CACjG,MACF,CAEA,IAAML,CAAAA,CAAQF,EAAAA,CAAgB6L,CAAAA,CAAI,OAAA,CAASpO,CAAI,CAAA,CACzCuL,CAAAA,CAAAA,CAAUmG,EAAAA,CAAA7T,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,CAAe,OAAA,GAAf,IAAA,CAAA6T,EAAAA,CAA0B,IAAA,CAAK,GAAA,CAAI,EAAA,CAAI,IAAA,CAAK,GAAA,CAAI,EAAA,CAAIX,CAAAA,CAAiB,GAAI,CAAC,CAAA,CACpFrU,CAAAA,CAAO+F,CAAAA,CAAM,MAAA,CAAS,CAAA,CAAIA,CAAAA,CAAM,MAAA,CAAS,EAAI,CAAA,CACnDA,CAAAA,CAAM,OAAA,CAAQ,CAACE,CAAAA,CAAMD,CAAAA,GAAM,CACzB,IAAMzE,EAAO0E,CAAAA,CAAK,OAAA,CAChB9F,EAAAA,CAAgB,CACd,CAAE,SAAA,CAAW,eAAA,CAAiB,OAAA,CAAS,CAAE,CAAA,CACzC,CAAE,SAAA,CAAW,mBAAA,CAAqB,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,EAAI,CAAA,CAC1D,CAAE,SAAA,CAAW,eAAA,CAAiB,OAAA,CAAS,CAAE,CAC3C,CAAA,CAAGgB,CAAa,CAAA,CAChB,CAAE,QAAA,CAAU,IAAA,CAAK,GAAA,CAAI,GAAA,CAAKkT,CAAc,CAAA,CAAG,MAAOrO,CAAAA,CAAI6I,CAAAA,CAAS,UAAA,CAAY,CAAA,CAAG,MAAA,CAAQvQ,EAAO,CAC/F,CAAA,CACI0H,CAAAA,GAAM,CAAA,GAAG2L,CAAAA,CAAQ,OAAA,CAAUpQ,CAAAA,CAAAA,CAC3ByE,CAAAA,GAAMhG,CAAAA,GAAMuB,CAAAA,CAAK,SAAW,IAAM,CACpCmQ,CAAAA,CAAI,OAAA,CAAS,WAAA,CAAcpO,CAAAA,CAC3B8C,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,CAAA,EACF,CAAC,CAAA,CACD,MACF,CAEA,GAAI7D,EAAAA,GAAc,gBAAiB,CACjC,IAAMvB,CAAAA,CAAU6R,EAAAA,CAAgB,OAAA,GAAY,MAAA,CAAY,MAAA,CAAOA,EAAAA,CAAgB,OAAO,CAAA,CAAI,IAAA,CACpF5R,CAAAA,CAAU,MAAA,CAAOkU,CAAO,CAAA,CAC9B,GAAI,CAACnU,CAAAA,EAAW,CAACC,CAAAA,CAAS,OAC1B,IAAMrB,CAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACTjP,EAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAClC2E,EAAAA,CAAsB3E,CAAAA,CAAIoB,CAAAA,CAASC,CAAO,CAAA,CAE1C,IAAMqF,CAAAA,CAAW,MAAA,CAAO,UAAA,CAAW,gBAAA,CAAiB1G,CAAE,CAAA,CAAE,QAAQ,CAAA,EAAK,EAAA,CAC/DqY,CAAAA,CAAgB,IAAA,CAAK,GAAA,CAAI,CAAA,CAAG,IAAA,CAAK,KAAA,CAAM3R,CAAAA,CAAW,GAAI,CAAC,CAAA,CAEvD0H,CAAAA,CAAU,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC7CA,CAAAA,CAAQ,WAAA,CAAchN,CAAAA,CACtBgN,CAAAA,CAAQ,KAAA,CAAM,OAAA,CAAU,cAAA,CACxBA,CAAAA,CAAQ,KAAA,CAAM,SAAW,UAAA,CACzBA,CAAAA,CAAQ,KAAA,CAAM,UAAA,CAAa,KAAA,CAE3B,IAAMlH,CAAAA,CAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC1CA,CAAAA,CAAK,KAAA,CAAM,QAAA,CAAW,UAAA,CACtBA,CAAAA,CAAK,MAAM,IAAA,CAAO,GAAA,CAClBA,CAAAA,CAAK,KAAA,CAAM,GAAA,CAAM,KAAA,CACjBA,CAAAA,CAAK,KAAA,CAAM,MAAQ,MAAA,CACnBA,CAAAA,CAAK,KAAA,CAAM,MAAA,CAAS,CAAA,EAAGmR,CAAa,CAAA,EAAA,CAAA,CACpCnR,CAAAA,CAAK,MAAM,SAAA,CAAY,CAAA,EAAG,CAAC,IAAA,CAAK,KAAA,CAAMmR,CAAAA,CAAgB,CAAC,CAAC,CAAA,EAAA,CAAA,CACxDnR,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,cAAA,CACxBA,CAAAA,CAAK,KAAA,CAAM,YAAA,CAAe,MAC1BA,CAAAA,CAAK,KAAA,CAAM,SAAA,CAAY,WAAA,CACvBA,CAAAA,CAAK,KAAA,CAAM,eAAA,CAAkB,QAAA,CAE7BkH,CAAAA,CAAQ,WAAA,CAAYlH,CAAI,CAAA,CACxBlH,CAAAA,CAAG,WAAA,CAAc,EAAA,CACjBA,CAAAA,CAAG,YAAYoO,CAAO,CAAA,CAEtB,IAAMkK,CAAAA,CAAW7D,CAAAA,CAAiB,GAAA,CAC5B8D,CAAAA,CAAgB9D,CAAAA,CAAiB,GAAA,CAEvCvN,CAAAA,CAAK,OAAA,CACH,CAAC,CAAE,SAAA,CAAW,WAAY,CAAA,CAAG,CAAE,SAAA,CAAW,WAAY,CAAC,CAAA,CACvD,CAAE,QAAA,CAAUoR,CAAAA,CAAU,MAAA,CAAQ5Z,GAAQ,IAAA,CAAM,UAAW,CACzD,CAAA,CAEA,IAAM2P,EAAAA,CAAU,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,CAC7CA,EAAAA,CAAQ,WAAA,CAAchN,CAAAA,CACtBgN,EAAAA,CAAQ,KAAA,CAAM,OAAA,CAAU,cAAA,CACxBA,EAAAA,CAAQ,KAAA,CAAM,UAAA,CAAa,KAAA,CAC3BA,EAAAA,CAAQ,KAAA,CAAM,QAAA,CAAW,UAAA,CACzBA,GAAQ,KAAA,CAAM,IAAA,CAAO,GAAA,CACrBA,EAAAA,CAAQ,KAAA,CAAM,GAAA,CAAM,GAAA,CACpBA,EAAAA,CAAQ,MAAM,OAAA,CAAU,GAAA,CACxBrO,CAAAA,CAAG,WAAA,CAAYqO,EAAO,CAAA,CAEtBD,CAAAA,CAAQ,OAAA,CACN,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,QAAA,CAAUmK,CAAAA,CAAe,KAAA,CAAOD,CAAAA,CAAU,MAAA,CAAQha,EAAAA,CAAS,KAAM,UAAW,CAChF,CAAA,CAEA,IAAMM,EAAAA,CAASyP,EAAAA,CAAQ,OAAA,CACrB,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAC/B,CAAE,QAAA,CAAUkK,CAAAA,CAAe,KAAA,CAAOD,CAAAA,CAAU,MAAA,CAAQ7Z,EAAAA,CAAQ,IAAA,CAAM,UAAW,CAC/E,CAAA,CAEM4X,EAAAA,CAAYrW,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,OAAA,CAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAUsY,CAAAA,CAAWC,CAAAA,CAAgB,EAAA,CAAI,IAAA,CAAM,UAAW,CAAC,CAAA,CAC5HxG,CAAAA,CAAQ,QAAUsE,EAAAA,CAElBzX,EAAAA,CAAO,QAAA,CAAW,IAAM,CACtBoB,CAAAA,CAAG,WAAA,CAAcqB,CAAAA,CACjB0Q,CAAAA,CAAQ,OAAA,CAAU,IAAA,CAClBvL,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,CAAA,CACA6P,EAAAA,CAAU,SAAW,IAAM,CACpBrU,CAAAA,CAAqBhC,CAAAA,CAAI6C,CAAK,CAAA,GACnC7C,CAAAA,CAAG,WAAA,CAAcqB,GACnB,CAAA,CAEA,MACF,CAEA,GAAIsB,EAAAA,GAAc,UAAA,CAAY,CAC5B,IAAMe,EAAO,MAAA,CAAO6R,CAAO,CAAA,CAC3B,GAAI,CAAC7R,CAAAA,CAAM,OACX,IAAMyS,CAAAA,CAAO7Q,EAAAA,CAAawM,CAAAA,CAAI,OAAQ,CAAA,CAChCnM,CAAAA,CAASF,EAAAA,CAAuB0Q,CAAAA,CAAMzS,CAAI,CAAA,CAC1CuL,CAAAA,CAAAA,CAAUoG,EAAAA,CAAA9T,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,CAAe,OAAA,GAAf,IAAA,CAAA8T,EAAAA,CAA0B,EAAA,CAC1C1P,CAAAA,CAAO,OAAA,CAAQ,CAAC0N,CAAAA,CAAGjN,CAAAA,GAAM,CACvBiN,EAAE,OAAA,CACA,CACE,CAAE,SAAA,CAAW,mBAAA,CAAqB,OAAA,CAAS,CAAE,CAAA,CAC7C,CAAE,SAAA,CAAW,iBAAA,CAAmB,OAAA,CAAS,CAAA,CAAG,MAAA,CAAQ,EAAI,CAAA,CACxD,CAAE,SAAA,CAAW,eAAgB,CAC/B,CAAA,CACA,CAAE,QAAA,CAAUoB,CAAAA,CAAiB,EAAA,CAAK,MAAOrO,CAAAA,CAAI6I,CAAAA,CAAS,IAAA,CAAM,UAAA,CAAY,MAAA,CAAQxQ,EAAO,CACzF,EACF,CAAC,CAAA,CACD,IAAMoC,CAAAA,CAAI,UAAA,CAAW,IAAM,CACzBsV,CAAAA,CAAK,WAAA,CAAczS,CAAAA,CACnB8C,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,CAAA,CAAGiO,CAAAA,CAAiB,EAAA,CAAM9O,CAAAA,CAAO,OAASsJ,CAAAA,CAAU,EAAE,CAAA,CACtDiD,CAAAA,CAAS,OAAA,CAAUrR,CAAAA,CACnB,MACF,CAEA,GAAI8B,EAAAA,GAAc,QAAA,CAAU,CAC1B,IAAMe,CAAAA,CAAO,MAAA,CAAO6R,CAAO,EAC3B,GAAI,CAAC7R,CAAAA,CAAM,OACX,IAAMyS,CAAAA,CAAO7Q,EAAAA,CAAawM,CAAAA,CAAI,OAAQ,CAAA,CAChCnM,CAAAA,CAASF,EAAAA,CAAuB0Q,CAAAA,CAAMzS,CAAI,CAAA,CAC1CuL,CAAAA,CAAAA,CAAUqG,GAAA/T,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,CAAe,OAAA,GAAf,IAAA,CAAA+T,EAAAA,CAA0B,EAAA,CAC1C3P,CAAAA,CAAO,QAAQ,CAAC0N,CAAAA,CAAGjN,CAAAA,GAAM,CACvBiN,CAAAA,CAAE,OAAA,CACA,CAAC,CAAE,UAAW,kBAAA,CAAoB,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,SAAA,CAAW,eAAA,CAAiB,OAAA,CAAS,CAAE,CAAC,CAAA,CAC1F,CAAE,QAAA,CAAUoB,CAAAA,CAAiB,EAAA,CAAK,KAAA,CAAOrO,EAAI6I,CAAAA,CAAS,IAAA,CAAM,UAAA,CAAY,MAAA,CAAQxQ,EAAO,CACzF,EACF,CAAC,EACD,IAAMoC,CAAAA,CAAI,UAAA,CAAW,IAAM,CACzBsV,CAAAA,CAAK,WAAA,CAAczS,CAAAA,CACnB8C,GAAA,IAAA,EAAAA,CAAAA,GACF,CAAA,CAAGiO,CAAAA,CAAiB,EAAA,CAAM9O,CAAAA,CAAO,MAAA,CAASsJ,CAAAA,CAAU,EAAE,CAAA,CACtDiD,CAAAA,CAAS,OAAA,CAAUrR,CAAAA,CACnB,MACF,CAEA,GAAI8B,KAAc,UAAA,CAAY,CAC5B,IAAMvB,CAAAA,CAAUsU,EAAAA,GAAkB,MAAA,CAAY,MAAA,CAAOA,EAAa,EAAI,EAAA,CAChErU,CAAAA,CAAU,MAAA,CAAOkU,CAAO,CAAA,CAC9B,GAAI,CAACnU,CAAAA,EAAW,CAACC,CAAAA,CAAS,OAE1B,IAAMrB,CAAAA,CAAK8R,CAAAA,CAAI,OAAA,CACTjP,CAAAA,CAAQpB,CAAAA,CAAkBzB,CAAE,CAAA,CAC5B,CAAE,KAAA,CAAAwE,CAAAA,CAAO,KAAA,CAAAC,CAAAA,CAAO,OAAA,CAAAC,CAAQ,CAAA,CAAIb,EAAAA,CAAsB7D,CAAAA,CAAIoB,CAAAA,CAASC,CAAAA,CAASwB,CAAK,CAAA,CACnF2B,CAAAA,CAAM,KAAA,CAAM,OAAA,CAAU,GAAA,CACtBA,CAAAA,CAAM,KAAA,CAAM,SAAA,CAAY,eAAA,CACxBA,CAAAA,CAAM,MAAM,MAAA,CAAS,WAAA,CACrBA,CAAAA,CAAM,KAAA,CAAM,UAAA,CAAa,4BAAA,CACzBC,CAAAA,CAAM,KAAA,CAAM,OAAA,CAAU,GAAA,CACtBA,CAAAA,CAAM,KAAA,CAAM,SAAA,CAAY,oBAAA,CACxBA,CAAAA,CAAM,KAAA,CAAM,OAAS,aAAA,CACrBA,CAAAA,CAAM,KAAA,CAAM,UAAA,CAAa,4BAAA,CAEzB,IAAM8R,CAAAA,CAAc9B,CAAAA,CAAiB,IAC/B+D,CAAAA,CAAU,IAAA,CAAK,GAAA,CAAI,EAAA,CAAI,IAAA,CAAK,GAAA,CAAI,EAAA,CAAI/D,CAAAA,CAAiB,GAAI,CAAC,CAAA,CAC1D+B,CAAAA,CAAa/B,CAAAA,CAAiB,GAAA,CAC9BlH,EAAAA,CAAgB,IAAA,CAAK,GAAA,CAAIgJ,CAAAA,CAAaiC,CAAAA,CAAUhC,CAAU,CAAA,CAEhEhS,CAAAA,CAAM,OAAA,CACJ,CACE,CAAE,QAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAAA,CAC9D,CAAE,OAAA,CAAS,GAAA,CAAM,SAAA,CAAW,qBAAA,CAAuB,MAAA,CAAQ,cAAA,CAAgB,MAAA,CAAQ,GAAK,CAAA,CACxF,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,qBAAA,CAAuB,MAAA,CAAQ,aAAc,CACxE,CAAA,CACA,CAAE,QAAA,CAAU+R,CAAAA,CAAa,MAAA,CAAQ7X,EAAAA,CAAQ,IAAA,CAAM,UAAW,CAC5D,EAEA+F,CAAAA,CAAM,OAAA,CACJ,CACE,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,oBAAA,CAAsB,OAAQ,aAAc,CAAA,CACrE,CAAE,OAAA,CAAS,GAAA,CAAM,SAAA,CAAW,qBAAA,CAAuB,MAAA,CAAQ,eAAgB,MAAA,CAAQ,GAAK,CAAA,CACxF,CAAE,OAAA,CAAS,CAAA,CAAG,SAAA,CAAW,eAAA,CAAiB,MAAA,CAAQ,WAAY,CAChE,CAAA,CACA,CAAE,QAAA,CAAU+R,CAAAA,CAAY,KAAA,CAAOgC,EAAS,MAAA,CAAQ9Z,EAAAA,CAAQ,IAAA,CAAM,UAAW,CAC3E,CAAA,CAEA,IAAMiD,EAAAA,CAAO3B,CAAAA,CAAG,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAS,CAAE,CAAA,CAAG,CAAE,QAAS,CAAE,CAAC,CAAA,CAAG,CAAE,QAAA,CAAUuN,EAAAA,CAAe,IAAA,CAAM,UAAW,CAAC,CAAA,CACvGwE,CAAAA,CAAQ,OAAA,CAAUpQ,EAAAA,CAClBA,EAAAA,CAAK,QAAA,CAAW,IAAM,CACpBoQ,CAAAA,CAAQ,OAAA,CAAU,IAAA,CAClBrN,CAAAA,EAAQ,CACR8B,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,EACA7E,EAAAA,CAAK,QAAA,CAAW+C,CAAAA,CAEhB,MACF,CAEA,GAAI/B,EAAAA,GAAc,WAAA,CAAa,CAC7B,IAAM8V,CAAAA,CAAO3G,CAAAA,CAAI,OAAA,CACXtQ,CAAAA,CAAUC,CAAAA,CAAkBgX,CAAI,CAAA,CAChCC,CAAAA,CAAUhI,CAAAA,EAAA,IAAA,CAAAA,CAAAA,CAAsB/Q,EAAAA,CAAe,gBAAA,CAAiB8Y,CAAI,CAAA,CAAE,MAAO,GAAI,CAAA,CACjFE,CAAAA,CAAalE,CAAAA,CAEb9S,CAAAA,CAAO8W,CAAAA,CAAK,OAAA,CAChB,CACE,CACE,eAAA,CAAiB,CAAA,wBAAA,EAA2BC,CAAO,CAAA,sBAAA,CAAA,CACnD,cAAA,CAAgB,WAAA,CAChB,gBAAA,CAAkB,WAAA,CAClB,mBAAoB,QACtB,CAAA,CACA,CACE,eAAA,CAAiB,CAAA,wBAAA,EAA2BA,CAAO,CAAA,sBAAA,CAAA,CACnD,cAAA,CAAgB,WAAA,CAChB,gBAAA,CAAkB,WAAA,CAClB,kBAAA,CAAoB,MACtB,CACF,CAAA,CACA,CAAE,SAAUC,CAAAA,CAAY,MAAA,CAAQja,EAAAA,CAAQ,IAAA,CAAM,UAAA,CAAY,KAAA,CAAA0Q,CAAM,CAClE,EAEMwJ,CAAAA,CAAa,IAAM,CACvBH,CAAAA,CAAK,KAAA,CAAM,eAAA,CAAkB,CAAA,wBAAA,EAA2BC,CAAO,yBAC/DD,CAAAA,CAAK,KAAA,CAAM,cAAA,CAAiB,WAAA,CAC5BA,CAAAA,CAAK,KAAA,CAAM,gBAAA,CAAmB,WAAA,CAC9BA,CAAAA,CAAK,KAAA,CAAM,kBAAA,CAAqB,OAClC,CAAA,CACMI,CAAAA,CAAU,IAAM,CACpBJ,EAAK,KAAA,CAAM,eAAA,CAAkB,EAAA,CAC7BA,CAAAA,CAAK,KAAA,CAAM,cAAA,CAAiB,EAAA,CAC5BA,CAAAA,CAAK,KAAA,CAAM,gBAAA,CAAmB,EAAA,CAC9BA,CAAAA,CAAK,KAAA,CAAM,kBAAA,CAAqB,GAClC,CAAA,CAEA1G,EAAQ,OAAA,CAAUpQ,CAAAA,CAClBA,CAAAA,CAAK,QAAA,CAAW,IAAM,CACpB,GAAKK,CAAAA,CAAqByW,CAAAA,CAAMjX,CAAO,CAAA,CAIvC,CAAA,GAHAuQ,CAAAA,CAAQ,OAAA,CAAU,IAAA,CAClB0G,CAAAA,CAAK,MAAM,UAAA,CAAa,MAAA,CAEpB9H,CAAAA,GAAkB,OAAA,CAAS,CAC7BiI,CAAAA,EAAW,CACX,IAAME,EAAQlI,CAAAA,EAAA,IAAA,CAAAA,CAAAA,CAAiB,GAAA,CACzBmI,CAAAA,CAAWN,CAAAA,CAAK,OAAA,CACpB,CACE,CAAE,kBAAA,CAAoB,MAAO,CAAA,CAC7B,CAAE,kBAAA,CAAoB,QAAS,CACjC,CAAA,CACA,CAAE,QAAA,CAAU,IAAA,CAAK,GAAA,CAAI,GAAA,CAAKK,CAAAA,CAAO,EAAG,CAAA,CAAG,OAAQxa,EAAAA,CAAS,IAAA,CAAM,UAAA,CAAY,KAAA,CAAOwa,CAAK,CACxF,CAAA,CACAC,CAAAA,CAAS,QAAA,CAAW,IAAM,CAAEF,CAAAA,EAAQ,CAAGJ,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,OAAO,CAAA,CACtEM,CAAAA,CAAS,QAAA,CAAW,IAAM,CAAEF,CAAAA,EAAQ,CAAGJ,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,OAAO,EACxE,CAAA,KAAA,GAAW9H,CAAAA,GAAkB,OAAA,CAAS,CACpCiI,GAAW,CACX,IAAMI,CAAAA,CAAYP,CAAAA,CAAK,OAAA,CACrB,CACE,CAAE,kBAAA,CAAoB,MAAO,CAAA,CAC7B,CAAE,kBAAA,CAAoB,QAAS,CACjC,CAAA,CACA,CAAE,QAAA,CAAUE,EAAa,EAAA,CAAK,MAAA,CAAQra,EAAAA,CAAS,IAAA,CAAM,UAAA,CAAY,KAAA,CAAO,GAAI,CAC9E,CAAA,CACA0a,CAAAA,CAAU,QAAA,CAAW,IAAM,CAAEH,CAAAA,GAAU,CAAA,CACvCG,EAAU,QAAA,CAAW,IAAM,CAAEH,CAAAA,GAAU,EACzC,CAAA,KACED,CAAAA,EAAW,CAEbpS,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GAAAA,CACF,CAAA,CACA7E,CAAAA,CAAK,QAAA,CAAW,IAAM,CACpBkX,CAAAA,EAAQ,CACRJ,CAAAA,CAAK,KAAA,CAAM,UAAA,CAAa,OAC1B,CAAA,CACA,MACF,CAGA,IAAM9W,EAAAA,CAAOV,EAAAA,CACX6Q,CAAAA,CAAI,OAAA,CACJnP,EAAAA,CACA,CACE,SAAU8R,CAAAA,CACV,MAAA,CAAAzD,CAAAA,CACA,KAAA,CAAA5B,CAAAA,CACA,UAAA,CARe,MASjB,CAAA,CACAsE,KAAkB,QAAA,CAAW,QAAA,CAAW,QAAA,CACxCgC,EAAAA,CACAH,CAAAA,CACA7E,CAAAA,CACAnP,CACF,CAAA,CACAwQ,EAAQ,OAAA,CAAUpQ,EAAAA,CAClBA,EAAAA,CAAK,QAAA,CAAW,IAAM,CACpBoQ,CAAAA,CAAQ,OAAA,CAAU,IAAA,CAClBvL,CAAAA,EAAA,IAAA,EAAAA,CAAAA,GACF,EACF,CAAA,CAAG,CAACkN,EAAAA,CAAe/Q,GAAW4P,CAAAA,CAAYnD,CAAAA,CAAO7I,CAAAA,CAAUyK,CAAAA,CAAQgD,EAAAA,CAAW3R,CAAAA,CAAYpD,CAAAA,CAAO+T,EAAc,CAAC,CAAA,CAE5GN,EAAAA,GAAU,QAAA,EAAY3B,CAAAA,GAAkB,KAAA,CACnC,IAAA,CAGFkI,mBAAAA,CACL9H,CAAAA,CACA,CACE,GAAA,CAAAW,CAAAA,CACA,SAAA,CAAAV,CAAAA,CACA,KAAA,CAAApO,CAAAA,CACA,OAAA,CAASuQ,EAAAA,CAAW,OAAO,CAAA,EAAKlC,CAAAA,CAAUuD,EAAAA,CAAc,MAAA,CACxD,YAAA,CAAcrB,EAAAA,CAAW,OAAO,GAAK/B,CAAAA,CAAesD,EAAAA,CAAmB,MAAA,CACvE,YAAA,CAAcrD,CAAAA,CAAasD,EAAAA,CAAmB,MAChD,CAAA,CACApD,CACF,CACF,CAAC,EAGM,IAAMuH,EAAAA,CAAU,CAAE,IAAA,CAAM9I,EAAY,EACpC+I,EAAAA,CAAQD","file":"index.cjs","sourcesContent":["import type { AnimationPreset, AnimationDefinition } from \"./types\"\n\nexport const EASE_IN = \"cubic-bezier(0.0, 0.0, 0.2, 1)\"\nexport const EASE_OUT = \"cubic-bezier(0.4, 0.0, 1, 1)\"\nexport const EASE_IN_OUT = \"cubic-bezier(0.4, 0.0, 0.2, 1)\"\nexport const SPRING = \"cubic-bezier(0.34, 1.56, 0.64, 1)\"\nexport const SNAPPY = \"cubic-bezier(0.2, 0, 0, 1)\"\nexport const SMOOTH = \"cubic-bezier(0.22, 1, 0.36, 1)\"\n\nconst fadeOut: Keyframe[] = [{ opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\" }, { opacity: 0, transform: \"translateY(-6px)\", filter: \"blur(3px)\" }]\nconst fadeIn: Keyframe[] = [{ opacity: 0, transform: \"translateY(6px)\", filter: \"blur(3px)\" }, { opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\" }]\nconst neutralOut: Keyframe[] = [{ opacity: 1, transform: \"scale(1)\", filter: \"blur(0px)\" }, { opacity: 0, transform: \"scale(0.95)\", filter: \"blur(2.5px)\" }]\nconst neutralIn: Keyframe[] = [{ opacity: 0, transform: \"scale(0.95)\", filter: \"blur(2.5px)\" }, { opacity: 1, transform: \"scale(1)\", filter: \"blur(0px)\" }]\n\nexport const presets: Record<AnimationPreset, AnimationDefinition> = {\n fadeSwap: {\n out: [\n { opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\" },\n { opacity: 0.92, transform: \"translateY(0)\", filter: \"blur(0px)\", offset: 0.28 },\n { opacity: 0, transform: \"translateY(-0.12em)\", filter: \"blur(1.5px)\" },\n ],\n in: [\n { opacity: 0, transform: \"translateY(0.14em)\", filter: \"blur(2px)\" },\n { opacity: 0.9, transform: \"translateY(0.02em)\", filter: \"blur(0.35px)\", offset: 0.72 },\n { opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\" },\n ],\n },\n morph: {\n out: neutralOut,\n in: neutralIn,\n },\n slideUp: {\n out: [{ opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\" }, { opacity: 0, transform: \"translateY(-12px)\", filter: \"blur(2.5px)\" }],\n in: [{ opacity: 0, transform: \"translateY(12px)\", filter: \"blur(2.5px)\" }, { opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\" }],\n },\n slideDown: {\n out: [{ opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\" }, { opacity: 0, transform: \"translateY(12px)\", filter: \"blur(2.5px)\" }],\n in: [{ opacity: 0, transform: \"translateY(-12px)\", filter: \"blur(2.5px)\" }, { opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\" }],\n },\n highlight: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n bump: {\n out: [{ opacity: 1, transform: \"scale(1)\" }, { opacity: 1, transform: \"scale(1.12)\", offset: 0.4 }, { opacity: 1, transform: \"scale(0.97)\", offset: 0.72 }, { opacity: 1, transform: \"scale(1)\" }],\n in: [],\n },\n blur: {\n out: [{ opacity: 1, filter: \"blur(0px)\", transform: \"translateY(0)\" }, { opacity: 0, filter: \"blur(4px)\", transform: \"translateY(-4px)\" }],\n in: [{ opacity: 0, filter: \"blur(4px)\", transform: \"translateY(4px)\" }, { opacity: 1, filter: \"blur(0px)\", transform: \"translateY(0)\" }],\n },\n decoder: {\n out: fadeOut,\n in: fadeIn,\n },\n fadeAway: {\n out: fadeOut,\n in: fadeIn,\n },\n fadeIn: {\n out: fadeOut,\n in: fadeIn,\n },\n fadeOut: {\n out: fadeOut,\n in: fadeIn,\n },\n slideReplace: {\n out: [{ opacity: 1, transform: \"translateX(0)\", filter: \"blur(0px)\" }, { opacity: 0, transform: \"translateX(-12px)\", filter: \"blur(2px)\" }],\n in: [{ opacity: 0, transform: \"translateX(12px)\", filter: \"blur(2px)\" }, { opacity: 1, transform: \"translateX(0)\", filter: \"blur(0px)\" }],\n },\n letterDrop: {\n out: fadeOut,\n in: [{ opacity: 0, transform: \"translateY(-24px)\", filter: \"blur(4px)\" }, { opacity: 1, transform: \"translateY(2px)\", filter: \"blur(0px)\", offset: 0.72 }, { opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\" }],\n },\n glitch: {\n out: fadeOut,\n in: [{ opacity: 0, transform: \"translateX(-4px)\", filter: \"blur(2px)\" }, { opacity: 1, transform: \"translateX(3px)\", filter: \"blur(0px)\", offset: 0.45 }, { opacity: 1, transform: \"translateX(0)\", filter: \"blur(0px)\" }],\n },\n textReveal: {\n out: fadeOut,\n in: fadeIn,\n },\n liftReveal: {\n out: [{ opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\" }, { opacity: 0, transform: \"translateY(-12px)\", filter: \"blur(2.5px)\" }],\n in: [{ opacity: 0, transform: \"translateY(12px)\", filter: \"blur(2.5px)\" }, { opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\" }],\n },\n scatter: {\n out: fadeOut,\n in: [{ opacity: 0, transform: \"translateY(10px) scale(0.95)\", filter: \"blur(2px)\" }, { opacity: 1, transform: \"translateY(0) scale(1)\", filter: \"blur(0px)\" }],\n },\n typewriter: {\n out: fadeOut,\n in: [{ opacity: 0, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n },\n splash: {\n out: fadeOut,\n in: [{ opacity: 0, transform: \"translateY(14px) scale(0.9)\", filter: \"blur(3px)\" }, { opacity: 1, transform: \"translateY(0) scale(1)\", filter: \"blur(0px)\" }],\n },\n jitter: {\n out: fadeOut,\n in: [\n { transform: \"translateX(0)\", opacity: 1 },\n { transform: \"translateX(-3px)\", opacity: 1, offset: 0.18 },\n { transform: \"translateX(3px)\", opacity: 1, offset: 0.36 },\n { transform: \"translateX(-2px)\", opacity: 1, offset: 0.54 },\n { transform: \"translateX(1px)\", opacity: 1, offset: 0.72 },\n { transform: \"translateX(0)\", opacity: 1 },\n ],\n },\n popUp: {\n out: fadeOut,\n in: [{ opacity: 0, transform: \"translateY(12px) scale(0.9)\", filter: \"blur(2px)\" }, { opacity: 1, transform: \"translateY(-2px) scale(1.06)\", filter: \"blur(0px)\", offset: 0.62 }, { opacity: 1, transform: \"translateY(0) scale(1)\", filter: \"blur(0px)\" }],\n },\n jello: {\n out: fadeOut,\n in: [\n { opacity: 1, transform: \"scale(1, 1)\" },\n { opacity: 1, transform: \"scale(1.08, 0.94)\", offset: 0.24 },\n { opacity: 1, transform: \"scale(0.96, 1.05)\", offset: 0.48 },\n { opacity: 1, transform: \"scale(1.03, 0.98)\", offset: 0.72 },\n { opacity: 1, transform: \"scale(1, 1)\" },\n ],\n },\n scramble: {\n out: fadeOut,\n in: fadeIn,\n },\n flip: {\n out: [{ opacity: 1, transform: \"perspective(800px) rotateY(0deg)\" }, { opacity: 0, transform: \"perspective(800px) rotateY(-36deg)\" }],\n in: [{ opacity: 0, transform: \"perspective(800px) rotateY(36deg)\" }, { opacity: 1, transform: \"perspective(800px) rotateY(0deg)\" }],\n },\n bounce: {\n out: [{ opacity: 1, transform: \"scale(1)\", filter: \"blur(0px)\" }, { opacity: 0, transform: \"scale(0.9)\", filter: \"blur(2px)\" }],\n in: [{ opacity: 0, transform: \"scale(0.86)\", filter: \"blur(2px)\" }, { opacity: 1, transform: \"scale(1.07)\", filter: \"blur(0px)\", offset: 0.5 }, { opacity: 1, transform: \"scale(0.97)\", filter: \"blur(0px)\", offset: 0.74 }, { opacity: 1, transform: \"scale(1)\", filter: \"blur(0px)\" }],\n },\n shake: {\n out: fadeOut,\n in: [\n { opacity: 1, transform: \"translateX(0)\" },\n { opacity: 1, transform: \"translateX(-7px)\", offset: 0.16, easing: \"cubic-bezier(0.22, 1, 0.36, 1)\" },\n { opacity: 1, transform: \"translateX(7px)\", offset: 0.32, easing: \"cubic-bezier(0.22, 1, 0.36, 1)\" },\n { opacity: 1, transform: \"translateX(-5px)\", offset: 0.56, easing: \"cubic-bezier(0.22, 1, 0.36, 1)\" },\n { opacity: 1, transform: \"translateX(3px)\", offset: 0.72, easing: \"cubic-bezier(0.22, 1, 0.36, 1)\" },\n { opacity: 1, transform: \"translateX(0)\" },\n ],\n },\n pulse: {\n out: [{ opacity: 1, transform: \"scale(1)\" }, { opacity: 1, transform: \"scale(0.97)\" }],\n in: [{ opacity: 1, transform: \"scale(1)\" }, { opacity: 1, transform: \"scale(1.06)\", offset: 0.42 }, { opacity: 1, transform: \"scale(0.98)\", offset: 0.72 }, { opacity: 1, transform: \"scale(1)\" }],\n },\n blink: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 0, transform: \"translateY(0)\" }],\n in: [{ opacity: 0, transform: \"translateY(0)\" }, { opacity: 0.3, transform: \"translateY(0)\", offset: 0.5 }, { opacity: 1, transform: \"translateY(0)\" }],\n },\n wave: {\n out: fadeOut,\n in: fadeIn,\n },\n ping: {\n out: [{ opacity: 1, transform: \"scale(1)\", filter: \"blur(0px)\" }, { opacity: 0, transform: \"scale(1.15)\", filter: \"blur(0px)\" }],\n in: [{ opacity: 0, transform: \"scale(0.88)\", filter: \"blur(2px)\" }, { opacity: 1, transform: \"scale(1.1)\", filter: \"blur(0px)\", offset: 0.48 }, { opacity: 1, transform: \"scale(1)\", filter: \"blur(0px)\" }],\n },\n popIn: {\n out: [{ opacity: 1, transform: \"scale(1)\", filter: \"blur(0px)\" }, { opacity: 0, transform: \"scale(0.9)\", filter: \"blur(2px)\" }],\n in: [{ opacity: 0, transform: \"scale(0.9)\", filter: \"blur(2px)\" }, { opacity: 1, transform: \"scale(1.07)\", filter: \"blur(0px)\", offset: 0.62 }, { opacity: 1, transform: \"scale(1)\", filter: \"blur(0px)\" }],\n },\n dropIn: {\n out: fadeOut,\n in: [{ opacity: 0, transform: \"translateY(-28px)\", filter: \"blur(4px)\" }, { opacity: 1, transform: \"translateY(2px)\", filter: \"blur(0px)\", offset: 0.68 }, { opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\" }],\n },\n riseUp: {\n out: fadeOut,\n in: [{ opacity: 0, transform: \"translateY(22px)\", filter: \"blur(3px)\" }, { opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\" }],\n },\n expandIn: {\n out: neutralOut,\n in: [{ opacity: 0, transform: \"scaleX(0.88)\", filter: \"blur(2px)\" }, { opacity: 1, transform: \"scaleX(1.02)\", filter: \"blur(0px)\", offset: 0.65 }, { opacity: 1, transform: \"scaleX(1)\", filter: \"blur(0px)\" }],\n },\n shrinkOut: {\n out: neutralOut,\n in: [{ opacity: 1, transform: \"scaleX(1)\" }, { opacity: 0, transform: \"scaleX(0.92)\" }],\n },\n boldFlash: {\n out: fadeOut,\n in: [{ opacity: 0, transform: \"scale(0.98)\" }, { opacity: 1, transform: \"scale(1.02)\", offset: 0.35 }, { opacity: 1, transform: \"scale(1)\" }],\n },\n strikeThrough: {\n out: fadeOut,\n in: fadeIn,\n },\n odometer: {\n out: fadeOut,\n in: fadeIn,\n },\n ticker: {\n out: fadeOut,\n in: fadeIn,\n },\n splitReveal: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n splitSlide: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n bigBang: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n scatterAssemble: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n pixelRain: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n dominoFall: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n vortex: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n pendulum: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n centerBurst: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n gravityBounce: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n scrollFanIn: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n textRotate: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n gooeyMorph: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n randomLetterSwap: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n textEffect: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n staggerText: {\n out: [{ opacity: 1, transform: \"translateY(0)\" }, { opacity: 1, transform: \"translateY(0)\" }],\n in: [],\n },\n underlineDraw: {\n out: [\n { backgroundSize: '100% 2px', backgroundPosition: '0% 100%', backgroundRepeat: 'no-repeat', backgroundImage: 'linear-gradient(currentColor, currentColor)', opacity: 1 },\n { backgroundSize: '100% 2px', backgroundPosition: '0% 100%', backgroundRepeat: 'no-repeat', backgroundImage: 'linear-gradient(currentColor, currentColor)', opacity: 1 },\n ],\n in: [\n { backgroundSize: '0% 2px', backgroundPosition: '0% 100%', backgroundRepeat: 'no-repeat', backgroundImage: 'linear-gradient(currentColor, currentColor)', opacity: 1 },\n { backgroundSize: '100% 2px', backgroundPosition: '0% 100%', backgroundRepeat: 'no-repeat', backgroundImage: 'linear-gradient(currentColor, currentColor)', opacity: 1 },\n ],\n },\n underlineSlide: {\n out: [\n { backgroundSize: '100% 2px', backgroundPosition: '0% 100%', backgroundRepeat: 'no-repeat', backgroundImage: 'linear-gradient(currentColor, currentColor)', opacity: 1 },\n { backgroundSize: '0% 2px', backgroundPosition: '100% 100%', backgroundRepeat: 'no-repeat', backgroundImage: 'linear-gradient(currentColor, currentColor)', opacity: 1 },\n ],\n in: [\n { backgroundSize: '0% 2px', backgroundPosition: '0% 100%', backgroundRepeat: 'no-repeat', backgroundImage: 'linear-gradient(currentColor, currentColor)', opacity: 1 },\n { backgroundSize: '100% 2px', backgroundPosition: '0% 100%', backgroundRepeat: 'no-repeat', backgroundImage: 'linear-gradient(currentColor, currentColor)', opacity: 1 },\n ],\n },\n copyConfirm: {\n out: [],\n in: [\n { transform: 'scale(0.88)', opacity: 0, filter: 'blur(2px)' },\n { transform: 'scale(1.1)', opacity: 1, filter: 'blur(0px)', offset: 0.55 },\n { transform: 'scale(0.97)', opacity: 1, filter: 'blur(0px)', offset: 0.74 },\n { transform: 'scale(1)', opacity: 1, filter: 'blur(0px)' },\n ],\n },\n brightnessShift: {\n out: [\n { filter: 'brightness(1) saturate(1)', opacity: 1 },\n { filter: 'brightness(1.15) saturate(1.2)', opacity: 0.92 },\n ],\n in: [\n { filter: 'brightness(0.7) saturate(0.6)', opacity: 0.65 },\n { filter: 'brightness(1.2) saturate(1.3)', opacity: 1 },\n { filter: 'brightness(1) saturate(1)', opacity: 1 },\n ],\n },\n activeTabText: {\n out: [],\n in: [\n { filter: 'brightness(0.6)', opacity: 0.7 },\n { filter: 'brightness(1.1)', opacity: 1, offset: 0.5 },\n { filter: 'brightness(1)', opacity: 1 },\n ],\n },\n\n fadeOutUp: {\n out: [\n { opacity: 1, transform: 'translateY(0)', filter: 'blur(0px)' },\n { opacity: 0, transform: 'translateY(-10px)', filter: 'blur(3px)' },\n ],\n in: [\n { opacity: 0, transform: 'translateY(-10px)', filter: 'blur(3px)' },\n { opacity: 1, transform: 'translateY(0)', filter: 'blur(0px)' },\n ],\n },\n fadeOutDown: {\n out: [\n { opacity: 1, transform: 'translateY(0)', filter: 'blur(0px)' },\n { opacity: 0, transform: 'translateY(10px)', filter: 'blur(3px)' },\n ],\n in: [\n { opacity: 0, transform: 'translateY(10px)', filter: 'blur(3px)' },\n { opacity: 1, transform: 'translateY(0)', filter: 'blur(0px)' },\n ],\n },\n\n slideOutUp: {\n out: [\n { opacity: 1, transform: 'translateY(0)', filter: 'blur(0px)' },\n { opacity: 0, transform: 'translateY(-16px)', filter: 'blur(2.5px)' },\n ],\n in: [\n { opacity: 0, transform: 'translateY(-16px)', filter: 'blur(2.5px)' },\n { opacity: 1, transform: 'translateY(0)', filter: 'blur(0px)' },\n ],\n },\n slideOutDown: {\n out: [\n { opacity: 1, transform: 'translateY(0)', filter: 'blur(0px)' },\n { opacity: 0, transform: 'translateY(16px)', filter: 'blur(2.5px)' },\n ],\n in: [\n { opacity: 0, transform: 'translateY(16px)', filter: 'blur(2.5px)' },\n { opacity: 1, transform: 'translateY(0)', filter: 'blur(0px)' },\n ],\n },\n slideOutLeft: {\n out: [\n { opacity: 1, transform: 'translateX(0)', filter: 'blur(0px)' },\n { opacity: 0, transform: 'translateX(-18px)', filter: 'blur(2.5px)' },\n ],\n in: [\n { opacity: 0, transform: 'translateX(-18px)', filter: 'blur(2.5px)' },\n { opacity: 1, transform: 'translateX(0)', filter: 'blur(0px)' },\n ],\n },\n slideOutRight: {\n out: [\n { opacity: 1, transform: 'translateX(0)', filter: 'blur(0px)' },\n { opacity: 0, transform: 'translateX(18px)', filter: 'blur(2.5px)' },\n ],\n in: [\n { opacity: 0, transform: 'translateX(18px)', filter: 'blur(2.5px)' },\n { opacity: 1, transform: 'translateX(0)', filter: 'blur(0px)' },\n ],\n },\n\n scaleOut: {\n out: [\n { transform: 'scale(1)', opacity: 1, filter: 'blur(0px)' },\n { transform: 'scale(0.88)', opacity: 0, filter: 'blur(3px)' },\n ],\n in: [\n { transform: 'scale(0.88)', opacity: 0, filter: 'blur(3px)' },\n { transform: 'scale(1.04)', opacity: 1, filter: 'blur(0px)', offset: 0.55 },\n { transform: 'scale(1)', opacity: 1, filter: 'blur(0px)' },\n ],\n },\n popOut: {\n out: [\n { transform: 'scale(1)', opacity: 1, filter: 'blur(0px)' },\n { transform: 'scale(1.06)', opacity: 0.35, filter: 'blur(1px)', offset: 0.38 },\n { transform: 'scale(0.88)', opacity: 0, filter: 'blur(3px)' },\n ],\n in: [\n { transform: 'scale(0.88)', opacity: 0, filter: 'blur(3px)' },\n { transform: 'scale(1.06)', opacity: 1, filter: 'blur(0px)', offset: 0.58 },\n { transform: 'scale(1)', opacity: 1, filter: 'blur(0px)' },\n ],\n },\n\n blurOut: {\n out: [\n { filter: 'blur(0)', opacity: 1 },\n { filter: 'blur(4px)', opacity: 0 },\n ],\n in: [\n { filter: 'blur(4px)', opacity: 0 },\n { filter: 'blur(0)', opacity: 1 },\n ],\n },\n clipOut: {\n out: [\n { clipPath: 'inset(0 0 0 0)', opacity: 1 },\n { clipPath: 'inset(0 100% 0 0)', opacity: 0 },\n ],\n in: [\n { clipPath: 'inset(0 100% 0 0)', opacity: 0 },\n { clipPath: 'inset(0 0 0 0)', opacity: 1 },\n ],\n },\n\n strikeOut: {\n out: [\n { opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\", textDecorationColor: \"currentColor\" },\n { opacity: 0.68, transform: \"translateY(0)\", filter: \"blur(1px)\", textDecorationColor: \"currentColor\", offset: 0.45 },\n { opacity: 0, transform: \"translateY(-6px)\", filter: \"blur(3px)\", textDecorationColor: \"currentColor\" },\n ],\n in: fadeIn,\n },\n typeOut: {\n out: [\n { opacity: 1, clipPath: \"inset(0 0 0 0)\", transform: \"translateY(0)\" },\n { opacity: 0, clipPath: \"inset(0 0 0 100%)\", transform: \"translateY(0)\" },\n ],\n in: [\n { opacity: 0, clipPath: \"inset(0 100% 0 0)\", transform: \"translateY(0)\" },\n { opacity: 1, clipPath: \"inset(0 0 0 0)\", transform: \"translateY(0)\" },\n ],\n },\n scrambleOut: {\n out: [\n { opacity: 1, filter: \"blur(0px)\", transform: \"translateY(0)\" },\n { opacity: 0.45, filter: \"blur(2px)\", transform: \"translateY(-2px)\", offset: 0.55 },\n { opacity: 0, filter: \"blur(4px)\", transform: \"translateY(-4px)\" },\n ],\n in: fadeIn,\n },\n}\n","import { useRef } from \"react\"\n\nexport function useValueChange(value: string | number | undefined) {\n const prevRef = useRef<string | number | undefined>(undefined)\n const changed = prevRef.current !== undefined && prevRef.current !== value\n const prev = prevRef.current\n prevRef.current = value\n return { changed, prev, current: value } as const\n}\n","import { useRef, useEffect, useLayoutEffect, createElement, forwardRef, useCallback, useImperativeHandle, useMemo, useState } from \"react\"\nimport type { MouseEvent } from \"react\"\nimport type { AnimationPreset, AnimateTextHandle, AnimateTextProps, AnimationProperties, TextPresetOptions } from \"./types\"\nimport { EASE_IN, EASE_OUT, EASE_IN_OUT, SMOOTH, SPRING, presets } from \"./animations\"\nimport { useValueChange } from \"./useValueChange\"\n\nconst warned = new Set<string>()\nlet _measureProbe: HTMLSpanElement | null = null\n\ntype TriggerSource = \"change\" | \"scroll\" | \"hover\" | \"click\" | \"manual\" | \"mount\"\ntype QueuedRun = { id: number; source: TriggerSource }\n\nfunction getMeasureProbe(): HTMLSpanElement {\n if (!_measureProbe) {\n _measureProbe = document.createElement(\"span\")\n _measureProbe.style.position = \"absolute\"\n _measureProbe.style.visibility = \"hidden\"\n _measureProbe.style.pointerEvents = \"none\"\n _measureProbe.style.whiteSpace = \"pre\"\n _measureProbe.style.display = \"inline-block\"\n }\n return _measureProbe\n}\n\nfunction validDuration(value: unknown, fallback = 300): number {\n const n = Number(value)\n return Number.isFinite(n) && n > 0 ? n : fallback\n}\n\nfunction colorWithAlpha(color: string, alpha: number): string {\n const m = color.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)/)\n if (m) return `rgba(${m[1]}, ${m[2]}, ${m[3]}, ${alpha})`\n return `rgba(0, 0, 0, ${alpha})`\n}\n\nfunction applyInitialState(el: HTMLElement, keyframes: Keyframe[]) {\n const first = keyframes[0]\n if (!first) return\n if ((first as any).opacity !== undefined) el.style.opacity = String((first as any).opacity)\n if ((first as any).transform !== undefined) el.style.transform = String((first as any).transform)\n if ((first as any).filter !== undefined) el.style.filter = String((first as any).filter)\n if ((first as any).backgroundImage !== undefined) el.style.backgroundImage = String((first as any).backgroundImage)\n if ((first as any).backgroundSize !== undefined) el.style.backgroundSize = String((first as any).backgroundSize)\n if ((first as any).backgroundPosition !== undefined) el.style.backgroundPosition = String((first as any).backgroundPosition)\n if ((first as any).backgroundRepeat !== undefined) el.style.backgroundRepeat = String((first as any).backgroundRepeat)\n}\n\nfunction applyFinalState(el: HTMLElement, keyframes: Keyframe[]) {\n const first = keyframes[0]\n const last = keyframes[keyframes.length - 1]\n if (!last) return\n const hadOpacity = (first as any).opacity !== undefined\n const hadFilter = (first as any).filter !== undefined\n if ((last as any).opacity !== undefined) {\n el.style.opacity = String((last as any).opacity)\n } else if (hadOpacity) {\n el.style.opacity = \"1\"\n }\n if ((last as any).transform !== undefined) el.style.transform = String((last as any).transform)\n if ((last as any).filter !== undefined) {\n el.style.filter = String((last as any).filter)\n } else if (hadFilter) {\n el.style.filter = \"blur(0px)\"\n }\n if ((last as any).backgroundImage !== undefined) el.style.backgroundImage = String((last as any).backgroundImage)\n if ((last as any).backgroundSize !== undefined) el.style.backgroundSize = String((last as any).backgroundSize)\n if ((last as any).backgroundPosition !== undefined) el.style.backgroundPosition = String((last as any).backgroundPosition)\n if ((last as any).backgroundRepeat !== undefined) el.style.backgroundRepeat = String((last as any).backgroundRepeat)\n}\n\nfunction rebaseKeyframes(keyframes: Keyframe[], options?: TextPresetOptions): Keyframe[] {\n if (!options) return keyframes\n const { distance, scale, blur } = options\n return keyframes.map(kf => {\n let t = (kf as any).transform as string | undefined\n let f = (kf as any).filter as string | undefined\n if (distance !== undefined && t) {\n t = t.replace(/translateY\\((-?\\d+(?:\\.\\d+)?)(px)?\\)/g, (_, val) =>\n `translateY(${Math.round(Number(val) * (distance / 32))}px)`)\n t = t.replace(/translateX\\((-?\\d+(?:\\.\\d+)?)(px)?\\)/g, (_, val) =>\n `translateX(${Math.round(Number(val) * (distance / 32))}px)`)\n }\n if (scale !== undefined && t) {\n t = t.replace(/scale\\((-?[\\d.]+(?:,\\s*-?[\\d.]+)?)\\)/g, `scale(${scale})`)\n }\n if (blur !== undefined && f) {\n f = f.replace(/blur\\((\\d+)px\\)/g, `blur(${blur}px)`)\n }\n return { ...kf, transform: t, filter: f }\n })\n}\n\nfunction runAnimation(\n el: HTMLElement,\n preset: AnimationPreset,\n options: KeyframeAnimationOptions,\n mode: \"change\" | \"single\" = \"single\",\n oldText?: string | number | undefined,\n newText?: string | number | undefined,\n highlightColor?: string,\n presetOptions?: TextPresetOptions,\n): Animation {\n const hlRunId = beginAnimationRun(el)\n el.style.willChange = \"transform, opacity, filter, background-position, background-size\"\n\n const def = presets[preset]\n if (!def) {\n if (process.env.NODE_ENV === \"development\" && !warned.has(preset)) {\n warned.add(preset)\n console.warn(\n `[trigr] Unknown animation preset \"${preset}\". Expected one of: ${Object.keys(presets).join(\", \")}`\n )\n }\n const anim = el.animate([], options)\n anim.addEventListener(\"finish\", () => { el.style.willChange = \"auto\" })\n anim.addEventListener(\"cancel\", () => { el.style.willChange = \"auto\" })\n return anim\n }\n const baseFrames = mode === \"change\"\n ? [...def.out, ...def.in]\n : (def.in.length ? [...def.in] : [...def.out])\n const rebased = rebaseKeyframes(baseFrames, presetOptions)\n const keyframes = prefersReducedMotion() ? reducedKeyframes(rebased) : rebased\n applyInitialState(el, keyframes)\n const anim = el.animate(keyframes, { ...options, fill: \"forwards\" })\n anim.addEventListener(\"finish\", () => {\n applyFinalState(el, keyframes)\n if (isActiveAnimationRun(el, hlRunId)) el.style.willChange = \"auto\"\n })\n anim.addEventListener(\"cancel\", () => {\n applyFinalState(el, keyframes)\n if (isActiveAnimationRun(el, hlRunId)) el.style.willChange = \"auto\"\n })\n return anim\n}\n\nfunction prefersReducedMotion(): boolean {\n if (typeof window === \"undefined\") return false\n return window.matchMedia?.(\"(prefers-reduced-motion: reduce)\").matches ?? false\n}\n\nfunction reducedKeyframes(keyframes: Keyframe[]): Keyframe[] {\n const last = keyframes[keyframes.length - 1]\n const out: Record<string, unknown> = {}\n for (const kf of keyframes) {\n out.opacity = (kf as any).opacity ?? 1\n }\n if (last) {\n if ((last as any).backgroundImage) out.backgroundImage = (last as any).backgroundImage\n if ((last as any).backgroundSize) out.backgroundSize = (last as any).backgroundSize\n if ((last as any).backgroundPosition) out.backgroundPosition = (last as any).backgroundPosition\n if ((last as any).backgroundRepeat) out.backgroundRepeat = (last as any).backgroundRepeat\n }\n return [out as Keyframe]\n}\n\nfunction runPropertyAnimation(\n el: HTMLElement,\n properties: AnimationProperties | undefined,\n options: KeyframeAnimationOptions,\n): Animation | null {\n if (!properties || Object.keys(properties).length === 0) return null\n const from: Keyframe = {}\n const to: Keyframe = {}\n for (const [property, pair] of Object.entries(properties)) {\n from[property as keyof Keyframe] = pair[0] as any\n to[property as keyof Keyframe] = pair[1] as any\n }\n // Apply initial from-styles inline to prevent flash on cancel/restart\n for (const [property, value] of Object.entries(from)) {\n ;(el.style as any)[property] = value\n }\n const anim = el.animate([from, to], { ...options, fill: \"forwards\" })\n anim.addEventListener(\"finish\", () => {\n for (const [property, pair] of Object.entries(properties)) {\n ;(el.style as any)[property] = String(pair[1])\n }\n })\n anim.addEventListener(\"cancel\", () => {\n for (const [property, value] of Object.entries(from)) {\n ;(el.style as any)[property] = value\n }\n })\n return anim\n}\n\nfunction finishWillChange(el: HTMLElement) {\n el.style.willChange = \"auto\"\n}\n\nfunction cancelElementAnimations(el: HTMLElement) {\n el.getAnimations({ subtree: true }).forEach((animation) => animation.cancel())\n}\n\nfunction beginAnimationRun(el: HTMLElement): string {\n const next = String((Number.parseInt(el.dataset.trigrRunId ?? \"0\", 10) || 0) + 1)\n el.dataset.trigrRunId = next\n return next\n}\n\nfunction isActiveAnimationRun(el: HTMLElement, runId: string): boolean {\n return el.dataset.trigrRunId === runId\n}\n\nfunction getScrollRoot(el: HTMLElement): HTMLElement | null {\n let parent = el.parentElement\n while (parent && parent !== document.body && parent !== document.documentElement) {\n const style = getComputedStyle(parent)\n if (/(auto|scroll|overlay)/.test(`${style.overflowY}${style.overflow}`) && parent.scrollHeight > parent.clientHeight) {\n return parent\n }\n parent = parent.parentElement\n }\n return null\n}\n\nfunction scrollObserverOptions(el: HTMLElement, threshold: number): IntersectionObserverInit {\n const root = getScrollRoot(el)\n const rootHeight = root?.clientHeight ?? window.innerHeight\n const clamped = Math.min(0.95, Math.max(0.05, threshold))\n const inset = Math.round(rootHeight * Math.min(0.48, clamped / 2))\n return {\n root,\n rootMargin: `-${inset}px 0px -${inset}px 0px`,\n threshold: 0,\n }\n}\n\nfunction resolveInlineJustify(textAlign: string): \"flex-start\" | \"center\" | \"flex-end\" {\n if (textAlign === \"center\") return \"center\"\n if (textAlign === \"right\" || textAlign === \"end\") return \"flex-end\"\n return \"flex-start\"\n}\n\nfunction measureInlineText(el: HTMLElement, text: string): { width: number; height: number } {\n const probe = getMeasureProbe()\n probe.textContent = text || \"\\u00A0\"\n probe.style.whiteSpace = getComputedStyle(el).whiteSpace === \"normal\" ? \"pre\" : getComputedStyle(el).whiteSpace\n el.appendChild(probe)\n const rect = probe.getBoundingClientRect()\n probe.remove()\n return { width: rect.width, height: rect.height }\n}\n\nfunction prepareStableTextSwap(el: HTMLElement, oldText: string, newText: string, runId?: string) {\n const computed = getComputedStyle(el)\n const oldSize = measureInlineText(el, oldText)\n const newSize = measureInlineText(el, newText)\n const currentRect = el.getBoundingClientRect()\n const previousMinWidth = Number.parseFloat(el.style.minWidth || \"0\")\n const width = Math.ceil(Math.max(oldSize.width, newSize.width, currentRect.width, previousMinWidth))\n const justifyContent = resolveInlineJustify(computed.textAlign)\n const previous = {\n position: el.style.position,\n clipPath: el.style.clipPath,\n display: el.style.display,\n willChange: el.style.willChange,\n }\n\n el.style.position = \"relative\"\n el.style.display = \"inline-block\"\n el.style.clipPath = \"inset(0)\"\n el.style.minWidth = `${width}px`\n\n // Keeper span maintains natural height — minWidth prevents collapse,\n // but no explicit width so the element doesn't snap at cleanup.\n const savedText = el.textContent ?? \"\"\n el.textContent = \"\"\n const keeper = document.createElement(\"span\")\n keeper.textContent = oldText || \"\\u00A0\"\n keeper.style.opacity = \"0\"\n keeper.style.pointerEvents = \"none\"\n el.appendChild(keeper)\n\n const oldEl = document.createElement(\"span\")\n oldEl.textContent = oldText\n oldEl.style.display = \"inline-flex\"\n oldEl.style.alignItems = \"center\"\n oldEl.style.justifyContent = justifyContent\n oldEl.style.whiteSpace = \"pre\"\n oldEl.style.position = \"absolute\"\n oldEl.style.left = \"0\"\n oldEl.style.top = \"0\"\n oldEl.style.width = \"100%\"\n oldEl.style.height = \"100%\"\n oldEl.style.lineHeight = computed.lineHeight\n\n const newEl = document.createElement(\"span\")\n newEl.textContent = newText\n newEl.style.display = \"inline-flex\"\n newEl.style.alignItems = \"center\"\n newEl.style.justifyContent = justifyContent\n newEl.style.whiteSpace = \"pre\"\n newEl.style.position = \"absolute\"\n newEl.style.left = \"0\"\n newEl.style.top = \"0\"\n newEl.style.width = \"100%\"\n newEl.style.height = \"100%\"\n newEl.style.lineHeight = computed.lineHeight\n\n el.appendChild(oldEl)\n el.appendChild(newEl)\n\n function cleanup() {\n if (runId && !isActiveAnimationRun(el, runId)) return\n el.style.position = previous.position\n el.style.display = previous.display\n el.style.clipPath = previous.clipPath\n el.style.willChange = previous.willChange\n el.textContent = newText\n }\n\n return { oldEl, newEl, cleanup }\n}\n\nfunction reserveStableTextSize(el: HTMLElement, oldText: string, newText: string) {\n const oldSize = measureInlineText(el, oldText)\n const newSize = measureInlineText(el, newText)\n const currentWidth = el.getBoundingClientRect().width\n const width = Math.ceil(Math.max(oldSize.width, newSize.width, currentWidth))\n if (width > 0) {\n el.style.minWidth = `${width}px`\n }\n}\n\nfunction stableTextStageSize(el: HTMLElement, text: string, sideEm = 0.8, verticalEm = 0.9) {\n const computed = getComputedStyle(el)\n const fontSize = Number.parseFloat(computed.fontSize) || 16\n const currentRect = el.getBoundingClientRect()\n const measured = measureInlineText(el, text)\n const sideSafe = Math.ceil(fontSize * sideEm)\n const verticalSafe = Math.ceil(fontSize * verticalEm)\n const previousMinWidth = Number.parseFloat(el.style.minWidth || \"0\")\n const width = Math.ceil(Math.max(currentRect.width, measured.width, previousMinWidth)) + sideSafe * 2\n const height = Math.ceil(Math.max(currentRect.height, measured.height)) + verticalSafe * 2\n const innerHeight = Math.max(measured.height, currentRect.height, fontSize)\n return { width, height, sideSafe, verticalSafe, innerHeight }\n}\n\nfunction splitGraphemes(text: string) {\n type SegmenterCtor = new (locale: string, options: { granularity: \"grapheme\" }) => {\n segment: (value: string) => Iterable<{ segment: string }>\n }\n const Segmenter = (Intl as typeof Intl & { Segmenter?: SegmenterCtor }).Segmenter\n if (Segmenter) {\n const segmenter = new Segmenter(\"en\", { granularity: \"grapheme\" })\n return Array.from(segmenter.segment(text), ({ segment }) => segment)\n }\n return Array.from(text)\n}\n\nfunction restoreSplitRevealState(el: HTMLElement) {\n const previous = el.dataset.trigrSplitRevealPrevious\n if (!previous) return\n try {\n Object.assign(el.style, JSON.parse(previous))\n } catch {\n el.style.color = \"\"\n el.style.textShadow = \"\"\n el.style.overflow = \"\"\n }\n delete el.dataset.trigrSplitRevealPrevious\n}\n\nfunction textFromNode(node: React.ReactNode): string {\n if (node === null || node === undefined || typeof node === \"boolean\") return \"\"\n if (typeof node === \"string\" || typeof node === \"number\") return String(node)\n if (Array.isArray(node)) return node.map(textFromNode).join(\"\")\n if (typeof node === \"object\" && \"props\" in node) {\n const props = (node as React.ReactElement<{ children?: React.ReactNode }>).props\n return textFromNode(props.children)\n }\n return \"\"\n}\n\nfunction findTextHost(el: HTMLElement): HTMLElement {\n const elementChildren = Array.from(el.children).filter(\n (c): c is HTMLElement => c instanceof HTMLElement\n )\n if (elementChildren.length === 1) return elementChildren[0]\n return el\n}\n\nfunction appendRollingCharSlots(el: HTMLElement, text: string, slotHeightEm = 1.35): HTMLElement[] {\n const inners: HTMLElement[] = []\n el.textContent = \"\"\n const fragment = document.createDocumentFragment()\n const chars = splitGraphemes(text)\n for (const char of chars) {\n if (char === \" \") {\n fragment.appendChild(document.createTextNode(\" \"))\n } else {\n const outer = document.createElement(\"span\")\n outer.style.display = \"inline-flex\"\n outer.style.alignItems = \"flex-start\"\n outer.style.overflow = \"hidden\"\n outer.style.height = `${slotHeightEm}em`\n outer.style.lineHeight = `${slotHeightEm}`\n outer.style.verticalAlign = \"top\"\n const inner = document.createElement(\"span\")\n inner.textContent = char\n inner.style.display = \"block\"\n inner.style.lineHeight = \"1.35\"\n inner.style.willChange = \"transform, opacity\"\n outer.appendChild(inner)\n fragment.appendChild(outer)\n inners.push(inner)\n }\n }\n el.appendChild(fragment)\n return inners\n}\n\nfunction appendCharSpans(\n el: HTMLElement,\n text: string,\n initStyle?: (span: HTMLElement, char: string, index: number) => void,\n): HTMLElement[] {\n const spans: HTMLElement[] = []\n el.textContent = \"\"\n const fragment = document.createDocumentFragment()\n const chars = splitGraphemes(text)\n for (let i = 0; i < chars.length; i++) {\n const char = chars[i]\n if (char === \" \") {\n fragment.appendChild(document.createTextNode(\" \"))\n } else {\n const span = document.createElement(\"span\")\n span.textContent = char\n span.style.display = \"inline-block\"\n initStyle?.(span, char, i)\n fragment.appendChild(span)\n spans.push(span)\n }\n }\n el.appendChild(fragment)\n return spans\n}\n\nfunction animateSplitReveal(\n el: HTMLElement,\n value: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n restoreSplitRevealState(el)\n el.getAnimations({ subtree: true }).forEach((animation) => animation.cancel())\n\n const text = value === undefined ? el.textContent ?? \"\" : String(value)\n if (!text) return\n\n const runId = beginAnimationRun(el)\n\n const reduced = prefersReducedMotion()\n if (reduced) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: SPRING, fill: \"forwards\" },\n )\n anim.onfinish = () => {\n if (!isActiveAnimationRun(el, runId)) return\n onAnimationEnd?.()\n }\n anim.oncancel = () => {}\n return anim\n }\n\n const computed = getComputedStyle(el)\n const visibleColor = computed.color || \"#111\"\n const fontSize = Number.parseFloat(computed.fontSize) || 16\n const lineHeight = Number.parseFloat(computed.lineHeight) || fontSize * 1.2 || 64\n const halfShift = lineHeight / 2\n const textSize = measureInlineText(el, text)\n const lineW = Math.ceil(textSize.width * 0.75)\n const lineH = Math.max(3, Math.round(fontSize * 0.08))\n\n const previous = {\n position: el.style.position,\n display: el.style.display,\n clipPath: el.style.clipPath,\n color: el.style.color,\n textShadow: el.style.textShadow,\n minWidth: el.style.minWidth,\n willChange: el.style.willChange,\n }\n el.dataset.trigrSplitRevealPrevious = JSON.stringify(previous)\n\n const savedWidth = Math.ceil(el.getBoundingClientRect().width)\n el.style.position = \"relative\"\n el.style.display = \"inline-block\"\n el.style.clipPath = \"inset(0)\"\n el.style.color = \"transparent\"\n el.style.textShadow = `0 0 0 ${visibleColor}`\n el.style.minWidth = `${savedWidth}px`\n el.style.willChange = \"transform, opacity\"\n el.innerHTML = \"\"\n\n const shadow = document.createElement(\"span\")\n shadow.textContent = text\n shadow.style.visibility = \"hidden\"\n shadow.style.display = \"block\"\n\n const line = document.createElement(\"span\")\n Object.assign(line.style, {\n position: \"absolute\",\n width: `${lineW}px`,\n height: `${lineH}px`,\n left: \"0\",\n top: `${Math.round((lineHeight - lineH) / 2)}px`,\n background: visibleColor,\n borderRadius: \"999px\",\n pointerEvents: \"none\",\n willChange: \"transform\",\n })\n\n function makeHalf(placement: \"top\" | \"bottom\") {\n const half = document.createElement(\"span\")\n const inner = document.createElement(\"span\")\n inner.textContent = text\n Object.assign(half.style, {\n position: \"absolute\",\n left: \"0\",\n width: \"100%\",\n height: \"50%\",\n overflow: \"hidden\",\n pointerEvents: \"none\",\n willChange: \"transform, opacity\",\n top: placement === \"top\" ? \"0\" : \"\",\n bottom: placement === \"bottom\" ? \"0\" : \"\",\n })\n Object.assign(inner.style, {\n display: \"block\",\n color: visibleColor,\n willChange: \"transform, opacity\",\n transform: placement === \"top\" ? `translateY(${halfShift}px)` : `translateY(${-halfShift}px)`,\n })\n half.appendChild(inner)\n return { half, inner }\n }\n\n const top = makeHalf(\"top\")\n const bottom = makeHalf(\"bottom\")\n el.append(shadow, line, top.half, bottom.half)\n\n const childAnimations: Animation[] = []\n\n childAnimations.push(line.animate(\n [{ transform: `translateX(-${lineW}px)` }, { transform: `translateX(${textSize.width}px)` }],\n { duration: duration * 0.58, easing: EASE_IN_OUT, fill: \"forwards\" },\n ))\n\n childAnimations.push(top.inner.animate(\n [\n { transform: `translateY(${halfShift}px)` },\n { transform: \"translateY(0)\" },\n ],\n { duration: duration * 0.42, delay: duration * 0.38, easing: EASE_OUT, fill: \"forwards\" },\n ))\n\n const anim = bottom.inner.animate(\n [\n { transform: `translateY(${-halfShift}px)` },\n { transform: `translateY(${-halfShift}px)` },\n ],\n { duration: duration * 0.42, delay: duration * 0.38, easing: EASE_OUT, fill: \"forwards\" },\n )\n childAnimations.push(anim)\n\n let finished = false\n\n function cleanup() {\n if (finished) return\n finished = true\n childAnimations.forEach((animation) => {\n if (animation.playState !== \"idle\") animation.cancel()\n })\n if (!isActiveAnimationRun(el, runId)) return\n Object.assign(el.style, previous)\n el.textContent = text\n delete el.dataset.trigrSplitRevealPrevious\n }\n\n anim.onfinish = () => {\n cleanup()\n onAnimationEnd?.()\n }\n anim.oncancel = cleanup\n\n return anim\n}\n\nfunction animateSplitSlide(\n el: HTMLElement,\n value: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n const text = value === undefined ? el.textContent ?? \"\" : String(value)\n if (!text) return\n\n const runId = beginAnimationRun(el)\n\n const reduced = prefersReducedMotion()\n if (reduced) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: EASE_IN, fill: \"forwards\" },\n )\n anim.onfinish = () => {\n if (!isActiveAnimationRun(el, runId)) return\n onAnimationEnd?.()\n }\n anim.oncancel = () => {}\n return anim\n }\n\n const splitAt = Math.ceil(text.length / 2)\n const leftText = text.slice(0, splitAt)\n const rightText = text.slice(splitAt)\n const previous = {\n display: el.style.display,\n clipPath: el.style.clipPath,\n whiteSpace: el.style.whiteSpace,\n minWidth: el.style.minWidth,\n willChange: el.style.willChange,\n }\n\n const savedWidth = Math.ceil(el.getBoundingClientRect().width)\n el.style.display = \"inline-flex\"\n el.style.clipPath = \"inset(0)\"\n el.style.whiteSpace = \"pre\"\n el.style.minWidth = `${savedWidth}px`\n el.style.willChange = \"transform, opacity\"\n el.innerHTML = \"\"\n\n const left = document.createElement(\"span\")\n const right = document.createElement(\"span\")\n left.textContent = leftText\n right.textContent = rightText\n Object.assign(left.style, { display: \"inline-block\", willChange: \"transform, opacity\" })\n Object.assign(right.style, { display: \"inline-block\", willChange: \"transform, opacity\" })\n el.append(left, right)\n\n left.animate(\n [\n { opacity: 0, transform: \"translateX(-120%)\" },\n { opacity: 1, transform: \"translateX(0)\" },\n ],\n { duration, easing: SPRING, fill: \"forwards\" },\n )\n\n const anim = right.animate(\n [\n { opacity: 0, transform: \"translateX(120%)\" },\n { opacity: 1, transform: \"translateX(0)\" },\n ],\n { duration, easing: SPRING, fill: \"forwards\" },\n )\n\n anim.onfinish = () => {\n if (!isActiveAnimationRun(el, runId)) return\n Object.assign(el.style, previous)\n el.textContent = text\n onAnimationEnd?.()\n }\n anim.oncancel = () => {\n if (!isActiveAnimationRun(el, runId)) return\n Object.assign(el.style, previous)\n el.textContent = text\n }\n\n return anim\n}\n\nfunction animateBigBang(\n el: HTMLElement,\n value: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n const runId = beginAnimationRun(el)\n const text = value === undefined ? el.textContent ?? \"\" : String(value)\n if (!text) return\n\n if (prefersReducedMotion()) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: EASE_IN, fill: \"forwards\" },\n )\n anim.onfinish = () => onAnimationEnd?.()\n return anim\n }\n\n el.style.color = \"\"\n const computed = getComputedStyle(el)\n const textSize = measureInlineText(el, text)\n const fontSize = Number.parseFloat(computed.fontSize) || 48\n const canvasW = Math.max(180, Math.ceil(textSize.width + fontSize * 1.4))\n const canvasH = Math.max(fontSize * 1.7, Math.ceil(textSize.height + fontSize * 1.2))\n const color = computed.color || \"rgb(232, 234, 240)\"\n const previous = {\n position: el.style.position,\n display: el.style.display,\n overflow: el.style.overflow,\n color: el.style.color,\n willChange: el.style.willChange,\n }\n\n el.style.position = \"relative\"\n el.style.display = \"inline-block\"\n el.style.overflow = \"visible\"\n el.style.color = \"transparent\"\n el.style.willChange = \"transform, opacity\"\n\n const dpr = Math.min(window.devicePixelRatio || 1, 2)\n const canvas = document.createElement(\"canvas\")\n canvas.width = Math.round(canvasW * dpr)\n canvas.height = Math.round(canvasH * dpr)\n canvas.style.position = \"absolute\"\n canvas.style.left = \"50%\"\n canvas.style.top = \"50%\"\n canvas.style.transform = \"translate(-50%, -50%)\"\n canvas.style.width = `${canvasW}px`\n canvas.style.height = `${canvasH}px`\n canvas.style.pointerEvents = \"none\"\n canvas.style.zIndex = \"1\"\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) {\n el.textContent = text\n return\n }\n const drawCtx = ctx\n drawCtx.scale(dpr, dpr)\n el.appendChild(canvas)\n\n const off = document.createElement(\"canvas\")\n off.width = canvasW\n off.height = canvasH\n const octx = off.getContext(\"2d\")\n if (!octx) {\n el.textContent = text\n return\n }\n octx.font = computed.font || `700 ${fontSize}px sans-serif`\n octx.textAlign = \"center\"\n octx.textBaseline = \"middle\"\n octx.fillStyle = \"#fff\"\n octx.fillText(text, canvasW / 2, canvasH / 2)\n\n const { data } = octx.getImageData(0, 0, canvasW, canvasH)\n const density = Math.max(3, Math.round(fontSize / 18))\n const points: { x: number; y: number }[] = []\n for (let y = 0; y < canvasH; y += density) {\n for (let x = 0; x < canvasW; x += density) {\n if (data[(y * canvasW + x) * 4 + 3] > 128) points.push({ x, y })\n }\n }\n if (points.length === 0) {\n el.textContent = text\n return\n }\n\n const maxParticles = 900\n const step = Math.max(1, Math.ceil(points.length / maxParticles))\n const sampled = points.filter((_, i) => i % step === 0)\n const cx = canvasW / 2\n const cy = canvasH / 2\n const particles = sampled.map((point) => {\n const angle = Math.random() * Math.PI * 2\n const speed = 6 + Math.random() * 10\n return {\n x: cx,\n y: cy,\n vx: Math.cos(angle) * speed,\n vy: Math.sin(angle) * speed,\n ox: point.x,\n oy: point.y,\n }\n })\n\n let frameId = 0\n let finished = false\n const total = Math.max(1200, duration)\n const start = performance.now()\n const anim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: total, fill: \"forwards\" })\n\n function cleanup() {\n if (finished) return\n finished = true\n cancelAnimationFrame(frameId)\n if (!isActiveAnimationRun(el, runId)) return\n Object.assign(el.style, previous)\n el.textContent = text\n }\n\n function frame(now: number) {\n if (finished || !isActiveAnimationRun(el, runId)) return\n const elapsed = now - start\n drawCtx.clearRect(0, 0, canvasW, canvasH)\n particles.forEach((particle) => {\n particle.vx += (particle.ox - particle.x) * 0.045\n particle.vx *= 0.88\n particle.x += particle.vx\n particle.vy += (particle.oy - particle.y) * 0.045\n particle.vy *= 0.88\n particle.y += particle.vy\n const dist = Math.hypot(particle.x - particle.ox, particle.y - particle.oy)\n const alpha = Math.min(0.92, 0.28 + (1 - Math.min(1, dist / 160)) * 0.64)\n drawCtx.globalAlpha = alpha\n drawCtx.fillStyle = color\n drawCtx.beginPath()\n drawCtx.arc(particle.x, particle.y, Math.max(1, density * 0.34), 0, Math.PI * 2)\n drawCtx.fill()\n })\n drawCtx.globalAlpha = 1\n if (!finished && isActiveAnimationRun(el, runId) && elapsed < total) frameId = requestAnimationFrame(frame)\n }\n\n frame(start)\n anim.onfinish = () => {\n cleanup()\n onAnimationEnd?.()\n }\n anim.oncancel = cleanup\n return anim\n}\n\nfunction animateScatterAssemble(\n el: HTMLElement,\n value: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n const runId = beginAnimationRun(el)\n const text = value === undefined ? el.textContent ?? \"\" : String(value)\n if (!text) return\n\n if (prefersReducedMotion()) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: EASE_IN, fill: \"forwards\" },\n )\n anim.onfinish = () => onAnimationEnd?.()\n return anim\n }\n\n el.style.color = \"\"\n const computed = getComputedStyle(el)\n const textSize = measureInlineText(el, text)\n const fontSize = Number.parseFloat(computed.fontSize) || 48\n const canvasW = Math.max(180, Math.ceil(textSize.width + fontSize * 1.4))\n const canvasH = Math.max(fontSize * 1.7, Math.ceil(textSize.height + fontSize * 1.2))\n const color = computed.color || \"rgb(232, 234, 240)\"\n const previous = {\n position: el.style.position,\n display: el.style.display,\n overflow: el.style.overflow,\n color: el.style.color,\n willChange: el.style.willChange,\n }\n\n el.style.position = \"relative\"\n el.style.display = \"inline-block\"\n el.style.overflow = \"visible\"\n el.style.color = \"transparent\"\n el.style.willChange = \"transform, opacity\"\n\n const dpr = Math.min(window.devicePixelRatio || 1, 2)\n const canvas = document.createElement(\"canvas\")\n canvas.width = Math.round(canvasW * dpr)\n canvas.height = Math.round(canvasH * dpr)\n canvas.style.position = \"absolute\"\n canvas.style.left = \"50%\"\n canvas.style.top = \"50%\"\n canvas.style.transform = \"translate(-50%, -50%)\"\n canvas.style.width = `${canvasW}px`\n canvas.style.height = `${canvasH}px`\n canvas.style.pointerEvents = \"none\"\n canvas.style.zIndex = \"1\"\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) {\n el.textContent = text\n return\n }\n const drawCtx = ctx\n drawCtx.scale(dpr, dpr)\n el.appendChild(canvas)\n\n const off = document.createElement(\"canvas\")\n off.width = canvasW\n off.height = canvasH\n const octx = off.getContext(\"2d\")\n if (!octx) {\n el.textContent = text\n return\n }\n octx.font = computed.font || `700 ${fontSize}px sans-serif`\n octx.textAlign = \"center\"\n octx.textBaseline = \"middle\"\n octx.fillStyle = \"#fff\"\n octx.fillText(text, canvasW / 2, canvasH / 2)\n\n const { data } = octx.getImageData(0, 0, canvasW, canvasH)\n const density = Math.max(3, Math.round(fontSize / 18))\n const points: { x: number; y: number }[] = []\n for (let y = 0; y < canvasH; y += density) {\n for (let x = 0; x < canvasW; x += density) {\n if (data[(y * canvasW + x) * 4 + 3] > 128) points.push({ x, y })\n }\n }\n if (points.length === 0) {\n el.textContent = text\n return\n }\n\n const maxParticles = 900\n const step = Math.max(1, Math.ceil(points.length / maxParticles))\n const sampled = points.filter((_, i) => i % step === 0)\n const particles = sampled.map((point) => ({\n x: Math.random() * canvasW,\n y: Math.random() * canvasH,\n vx: 0,\n vy: 0,\n ox: point.x,\n oy: point.y,\n delay: Math.random() * Math.min(160, duration * 0.18),\n }))\n\n let frameId = 0\n let finished = false\n const total = Math.max(1200, duration)\n const start = performance.now()\n const anim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: total, fill: \"forwards\" })\n\n function cleanup() {\n if (finished) return\n finished = true\n cancelAnimationFrame(frameId)\n if (!isActiveAnimationRun(el, runId)) return\n Object.assign(el.style, previous)\n el.textContent = text\n }\n\n function frame(now: number) {\n if (finished || !isActiveAnimationRun(el, runId)) return\n const elapsed = now - start\n const progress = Math.min(1, elapsed / total)\n drawCtx.clearRect(0, 0, canvasW, canvasH)\n particles.forEach((particle) => {\n if (elapsed < particle.delay) return\n particle.vx += (particle.ox - particle.x) * 0.055\n particle.vx *= 0.8\n particle.x += particle.vx\n particle.vy += (particle.oy - particle.y) * 0.055\n particle.vy *= 0.8\n particle.y += particle.vy\n const dist = Math.hypot(particle.x - particle.ox, particle.y - particle.oy)\n const settle = 1 - Math.min(1, dist / 180)\n drawCtx.globalAlpha = Math.min(0.92, 0.38 + progress * 0.28 + settle * 0.34)\n drawCtx.fillStyle = color\n drawCtx.beginPath()\n drawCtx.arc(particle.x, particle.y, Math.max(1.2, density * 0.36), 0, Math.PI * 2)\n drawCtx.fill()\n })\n drawCtx.globalAlpha = 1\n if (!finished && isActiveAnimationRun(el, runId) && elapsed < total) frameId = requestAnimationFrame(frame)\n }\n\n frame(start)\n anim.onfinish = () => {\n cleanup()\n onAnimationEnd?.()\n }\n anim.oncancel = cleanup\n return anim\n}\n\nfunction animatePixelRain(\n el: HTMLElement,\n value: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n const runId = beginAnimationRun(el)\n const text = value === undefined ? el.textContent ?? \"\" : String(value)\n if (!text) return\n\n if (prefersReducedMotion()) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: EASE_IN, fill: \"forwards\" },\n )\n anim.onfinish = () => onAnimationEnd?.()\n return anim\n }\n\n el.style.color = \"\"\n const computed = getComputedStyle(el)\n const textSize = measureInlineText(el, text)\n const fontSize = Number.parseFloat(computed.fontSize) || 48\n const canvasW = Math.max(180, Math.ceil(textSize.width + fontSize * 1.4))\n const canvasH = Math.max(fontSize * 1.7, Math.ceil(textSize.height + fontSize * 1.2))\n const color = computed.color || \"rgb(232, 234, 240)\"\n const previous = {\n position: el.style.position,\n display: el.style.display,\n overflow: el.style.overflow,\n color: el.style.color,\n willChange: el.style.willChange,\n }\n\n el.style.position = \"relative\"\n el.style.display = \"inline-block\"\n el.style.overflow = \"visible\"\n el.style.color = \"transparent\"\n el.style.willChange = \"transform, opacity\"\n\n const dpr = Math.min(window.devicePixelRatio || 1, 2)\n const canvas = document.createElement(\"canvas\")\n canvas.width = Math.round(canvasW * dpr)\n canvas.height = Math.round(canvasH * dpr)\n canvas.style.position = \"absolute\"\n canvas.style.left = \"50%\"\n canvas.style.top = \"50%\"\n canvas.style.transform = \"translate(-50%, -50%)\"\n canvas.style.width = `${canvasW}px`\n canvas.style.height = `${canvasH}px`\n canvas.style.pointerEvents = \"none\"\n canvas.style.zIndex = \"1\"\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) {\n el.textContent = text\n return\n }\n const drawCtx = ctx\n drawCtx.scale(dpr, dpr)\n el.appendChild(canvas)\n\n const off = document.createElement(\"canvas\")\n off.width = canvasW\n off.height = canvasH\n const octx = off.getContext(\"2d\")\n if (!octx) {\n el.textContent = text\n return\n }\n octx.font = computed.font || `700 ${fontSize}px sans-serif`\n octx.textAlign = \"center\"\n octx.textBaseline = \"middle\"\n octx.fillStyle = \"#fff\"\n octx.fillText(text, canvasW / 2, canvasH / 2)\n\n const { data } = octx.getImageData(0, 0, canvasW, canvasH)\n const density = Math.max(3, Math.round(fontSize / 18))\n const points: { x: number; y: number }[] = []\n for (let y = 0; y < canvasH; y += density) {\n for (let x = 0; x < canvasW; x += density) {\n if (data[(y * canvasW + x) * 4 + 3] > 128) points.push({ x, y })\n }\n }\n if (points.length === 0) {\n el.textContent = text\n return\n }\n\n const maxParticles = 900\n const step = Math.max(1, Math.ceil(points.length / maxParticles))\n const sampled = points.filter((_, i) => i % step === 0)\n const particles = sampled.map((point) => ({\n x: point.x + (Math.random() - 0.5) * fontSize * 0.8,\n y: Math.max(0, point.y - fontSize * (0.8 + Math.random() * 1.3)),\n vx: (Math.random() - 0.5) * 2.2,\n vy: 1.4 + Math.random() * 2.2,\n ox: point.x,\n oy: point.y,\n }))\n\n let frameId = 0\n let finished = false\n const total = Math.max(1200, duration)\n const start = performance.now()\n const anim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: total, fill: \"forwards\" })\n\n function cleanup() {\n if (finished) return\n finished = true\n cancelAnimationFrame(frameId)\n if (!isActiveAnimationRun(el, runId)) return\n Object.assign(el.style, previous)\n el.textContent = text\n }\n\n function frame(now: number) {\n if (finished || !isActiveAnimationRun(el, runId)) return\n const elapsed = now - start\n const progress = Math.min(1, elapsed / total)\n drawCtx.clearRect(0, 0, canvasW, canvasH)\n particles.forEach((particle) => {\n particle.vy += 0.12 * (1 - progress)\n particle.vx += (particle.ox - particle.x) * 0.045\n particle.vx *= 0.84\n particle.x += particle.vx\n particle.vy += (particle.oy - particle.y) * 0.045\n particle.vy *= 0.84\n particle.y += particle.vy\n const dist = Math.hypot(particle.x - particle.ox, particle.y - particle.oy)\n const alpha = Math.min(0.94, 0.32 + progress * 0.22 + (1 - Math.min(1, dist / 170)) * 0.4)\n drawCtx.globalAlpha = alpha\n drawCtx.fillStyle = color\n drawCtx.beginPath()\n drawCtx.arc(particle.x, particle.y, Math.max(1.2, density * 0.34), 0, Math.PI * 2)\n drawCtx.fill()\n })\n drawCtx.globalAlpha = 1\n if (!finished && isActiveAnimationRun(el, runId) && elapsed < total) frameId = requestAnimationFrame(frame)\n }\n\n frame(start)\n anim.onfinish = () => {\n cleanup()\n onAnimationEnd?.()\n }\n anim.oncancel = cleanup\n return anim\n}\n\nfunction animateVortex(\n el: HTMLElement,\n value: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n const runId = beginAnimationRun(el)\n const text = value === undefined ? el.textContent ?? \"\" : String(value)\n if (!text) return\n\n if (prefersReducedMotion()) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: EASE_IN, fill: \"forwards\" },\n )\n anim.onfinish = () => onAnimationEnd?.()\n return anim\n }\n\n el.style.color = \"\"\n const computed = getComputedStyle(el)\n const textSize = measureInlineText(el, text)\n const fontSize = Number.parseFloat(computed.fontSize) || 48\n const canvasW = Math.max(180, Math.ceil(textSize.width + fontSize * 1.4))\n const canvasH = Math.max(fontSize * 1.7, Math.ceil(textSize.height + fontSize * 1.2))\n const color = computed.color || \"rgb(232, 234, 240)\"\n const previous = {\n position: el.style.position,\n display: el.style.display,\n overflow: el.style.overflow,\n color: el.style.color,\n willChange: el.style.willChange,\n }\n\n el.style.position = \"relative\"\n el.style.display = \"inline-block\"\n el.style.overflow = \"visible\"\n el.style.color = \"transparent\"\n el.style.willChange = \"transform, opacity\"\n\n const dpr = Math.min(window.devicePixelRatio || 1, 2)\n const canvas = document.createElement(\"canvas\")\n canvas.width = Math.round(canvasW * dpr)\n canvas.height = Math.round(canvasH * dpr)\n canvas.style.position = \"absolute\"\n canvas.style.left = \"50%\"\n canvas.style.top = \"50%\"\n canvas.style.transform = \"translate(-50%, -50%)\"\n canvas.style.width = `${canvasW}px`\n canvas.style.height = `${canvasH}px`\n canvas.style.pointerEvents = \"none\"\n canvas.style.zIndex = \"1\"\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) {\n el.textContent = text\n return\n }\n const drawCtx = ctx\n drawCtx.scale(dpr, dpr)\n el.appendChild(canvas)\n\n const off = document.createElement(\"canvas\")\n off.width = canvasW\n off.height = canvasH\n const octx = off.getContext(\"2d\")\n if (!octx) {\n el.textContent = text\n return\n }\n octx.font = computed.font || `700 ${fontSize}px sans-serif`\n octx.textAlign = \"center\"\n octx.textBaseline = \"middle\"\n octx.fillStyle = \"#fff\"\n octx.fillText(text, canvasW / 2, canvasH / 2)\n\n const { data } = octx.getImageData(0, 0, canvasW, canvasH)\n const density = Math.max(3, Math.round(fontSize / 18))\n const points: { x: number; y: number }[] = []\n for (let y = 0; y < canvasH; y += density) {\n for (let x = 0; x < canvasW; x += density) {\n if (data[(y * canvasW + x) * 4 + 3] > 128) points.push({ x, y })\n }\n }\n if (points.length === 0) {\n el.textContent = text\n return\n }\n\n const maxParticles = 900\n const step = Math.max(1, Math.ceil(points.length / maxParticles))\n const sampled = points.filter((_, i) => i % step === 0)\n const cx = canvasW / 2\n const cy = canvasH / 2\n const radiusBase = Math.min(canvasW, canvasH) * 0.45\n const particles = sampled.map((point) => {\n const angle = Math.random() * Math.PI * 2\n const radius = radiusBase * (0.62 + Math.random() * 0.42)\n return {\n x: cx + Math.cos(angle) * radius,\n y: cy + Math.sin(angle) * radius,\n vx: -Math.sin(angle) * 3.5,\n vy: Math.cos(angle) * 3.5,\n ox: point.x,\n oy: point.y,\n }\n })\n\n let frameId = 0\n let finished = false\n const total = Math.max(1200, duration)\n const start = performance.now()\n const anim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: total, fill: \"forwards\" })\n\n function cleanup() {\n if (finished) return\n finished = true\n cancelAnimationFrame(frameId)\n if (!isActiveAnimationRun(el, runId)) return\n Object.assign(el.style, previous)\n el.textContent = text\n }\n\n function frame(now: number) {\n if (finished || !isActiveAnimationRun(el, runId)) return\n const elapsed = now - start\n const timeProgress = Math.min(1, elapsed / total)\n drawCtx.clearRect(0, 0, canvasW, canvasH)\n particles.forEach((particle) => {\n const spin = (1 - timeProgress) * 0.18\n const dx = particle.x - cx\n const dy = particle.y - cy\n particle.vx += -dy * spin * 0.01\n particle.vy += dx * spin * 0.01\n particle.vx += (particle.ox - particle.x) * 0.045\n particle.vx *= 0.88\n particle.x += particle.vx\n particle.vy += (particle.oy - particle.y) * 0.045\n particle.vy *= 0.88\n particle.y += particle.vy\n const progress = 1 - Math.min(1, Math.hypot(particle.x - particle.ox, particle.y - particle.oy) / 180)\n drawCtx.globalAlpha = Math.min(0.94, 0.36 + timeProgress * 0.18 + progress * 0.42)\n drawCtx.fillStyle = color\n drawCtx.beginPath()\n drawCtx.arc(particle.x, particle.y, Math.max(1.2, density * 0.36), 0, Math.PI * 2)\n drawCtx.fill()\n })\n drawCtx.globalAlpha = 1\n if (!finished && isActiveAnimationRun(el, runId) && elapsed < total) frameId = requestAnimationFrame(frame)\n }\n\n frame(start)\n anim.onfinish = () => {\n cleanup()\n onAnimationEnd?.()\n }\n anim.oncancel = cleanup\n return anim\n}\n\nfunction animateDominoFall(\n el: HTMLElement,\n value: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n const text = value === undefined ? el.textContent ?? \"\" : String(value)\n if (!text) return\n const runId = beginAnimationRun(el)\n\n if (prefersReducedMotion()) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: EASE_IN, fill: \"forwards\" },\n )\n anim.onfinish = () => onAnimationEnd?.()\n return anim\n }\n\n const previous = {\n display: el.style.display,\n position: el.style.position,\n clipPath: el.style.clipPath,\n whiteSpace: el.style.whiteSpace,\n willChange: el.style.willChange,\n }\n const computed = getComputedStyle(el)\n const justifyContent = resolveInlineJustify(computed.textAlign)\n\n el.style.display = \"inline-block\"\n el.style.position = \"relative\"\n el.style.clipPath = \"inset(0)\"\n el.style.whiteSpace = \"pre-wrap\"\n el.style.willChange = \"transform, opacity\"\n const savedText = el.textContent ?? \"\"\n el.textContent = \"\"\n const keeper = document.createElement(\"span\")\n keeper.textContent = text || \"\\u00A0\"\n keeper.style.opacity = \"0\"\n keeper.style.pointerEvents = \"none\"\n el.appendChild(keeper)\n\n const row = document.createElement(\"span\")\n row.style.display = \"flex\"\n row.style.justifyContent = justifyContent\n row.style.whiteSpace = \"pre\"\n row.style.textAlign = computed.textAlign\n row.style.alignItems = \"baseline\"\n row.style.position = \"absolute\"\n row.style.inset = \"0\"\n el.appendChild(row)\n\n const chars = Array.from(text).map((char) => {\n const span = document.createElement(\"span\")\n span.textContent = char\n span.style.display = \"inline-block\"\n span.style.whiteSpace = \"pre\"\n span.style.transformOrigin = \"50% 100%\"\n span.style.willChange = \"transform\"\n row.appendChild(span)\n return span\n })\n\n const states = chars.map(() => ({ angle: 0, velocity: 0, active: false, done: false }))\n if (states[0]) states[0].active = true\n\n let frameId = 0\n let finished = false\n let reported = false\n const total = Math.max(duration, chars.length * 90 + 360)\n const start = performance.now()\n const anim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: total, fill: \"forwards\" })\n\n function cleanup() {\n if (!isActiveAnimationRun(el, runId)) return\n cancelAnimationFrame(frameId)\n if (finished) return\n finished = true\n Object.assign(el.style, previous)\n el.textContent = text\n }\n\n function complete() {\n cleanup()\n if (reported) return\n reported = true\n onAnimationEnd?.()\n }\n\n function frame(now: number) {\n let allDone = true\n const elapsed = now - start\n chars.forEach((char, index) => {\n const state = states[index]\n if (!state.active || state.done) {\n if (!state.done) allDone = false\n return\n }\n\n state.velocity += (90 - state.angle) * 0.035\n state.velocity *= 0.94\n state.angle += state.velocity\n\n if (state.angle > 50 && states[index + 1] && !states[index + 1].active) {\n states[index + 1].active = true\n }\n\n if (state.angle >= 90) {\n state.angle = 90\n state.velocity = 0\n state.done = true\n } else {\n allDone = false\n }\n\n char.style.transform = `rotateZ(${state.angle}deg)`\n })\n\n if (!allDone && elapsed < total) {\n frameId = requestAnimationFrame(frame)\n } else {\n complete()\n }\n }\n\n frameId = requestAnimationFrame(frame)\n anim.onfinish = complete\n anim.oncancel = cleanup\n return anim\n}\n\nfunction animatePendulum(\n el: HTMLElement,\n value: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n const text = value === undefined ? el.textContent ?? \"\" : String(value)\n if (!text) return\n const runId = beginAnimationRun(el)\n\n if (prefersReducedMotion()) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: EASE_IN, fill: \"forwards\" },\n )\n anim.onfinish = () => onAnimationEnd?.()\n return anim\n }\n\n const previous = {\n display: el.style.display,\n whiteSpace: el.style.whiteSpace,\n willChange: el.style.willChange,\n }\n const computed = getComputedStyle(el)\n const justifyContent = resolveInlineJustify(computed.textAlign)\n\n el.style.display = \"inline-block\"\n el.style.whiteSpace = \"pre-wrap\"\n el.style.willChange = \"transform, opacity\"\n const savedText = el.textContent ?? \"\"\n el.textContent = \"\"\n const keeper = document.createElement(\"span\")\n keeper.textContent = text || \"\\u00A0\"\n keeper.style.opacity = \"0\"\n keeper.style.pointerEvents = \"none\"\n el.appendChild(keeper)\n\n const row = document.createElement(\"span\")\n row.style.display = \"flex\"\n row.style.width = \"100%\"\n row.style.justifyContent = justifyContent\n row.style.whiteSpace = \"pre\"\n row.style.textAlign = computed.textAlign\n row.style.position = \"absolute\"\n row.style.inset = \"0\"\n el.appendChild(row)\n\n const chars = Array.from(text).map((char) => {\n const span = document.createElement(\"span\")\n span.textContent = char\n span.style.display = \"inline-block\"\n span.style.whiteSpace = \"pre\"\n span.style.transformOrigin = \"50% 100%\"\n span.style.willChange = \"transform\"\n row.appendChild(span)\n return span\n })\n\n const states = chars.map((_, index) => ({\n position: (index % 2 === 0 ? 1 : -1) * (14 + index * 1.8),\n velocity: 0,\n }))\n\n let frameId = 0\n let finished = false\n let reported = false\n const total = Math.max(duration, chars.length * 80 + 600)\n const start = performance.now()\n const anim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: total, fill: \"forwards\" })\n\n function cleanup() {\n if (!isActiveAnimationRun(el, runId)) return\n cancelAnimationFrame(frameId)\n if (finished) return\n finished = true\n Object.assign(el.style, previous)\n el.textContent = text\n }\n\n function complete() {\n cleanup()\n if (reported) return\n reported = true\n onAnimationEnd?.()\n }\n\n function frame(now: number) {\n const elapsed = now - start\n let allDone = true\n chars.forEach((char, index) => {\n if (elapsed < index * 90) {\n allDone = false\n return\n }\n const state = states[index]\n state.velocity += (0 - state.position) * 0.016\n state.velocity *= 0.986\n state.position += state.velocity\n char.style.transform = `rotateZ(${state.position}deg)`\n if (Math.abs(state.velocity) + Math.abs(state.position) >= 0.05) allDone = false\n })\n\n if (!allDone && elapsed < total) {\n frameId = requestAnimationFrame(frame)\n } else {\n complete()\n }\n }\n\n frameId = requestAnimationFrame(frame)\n anim.onfinish = complete\n anim.oncancel = cleanup\n return anim\n}\n\nfunction animateCenterBurst(\n el: HTMLElement,\n value: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n const text = value === undefined ? el.textContent ?? \"\" : String(value)\n if (!text) return\n const runId = beginAnimationRun(el)\n\n if (prefersReducedMotion()) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: EASE_IN, fill: \"forwards\" },\n )\n anim.onfinish = () => onAnimationEnd?.()\n return anim\n }\n\n const previous = {\n display: el.style.display,\n position: el.style.position,\n whiteSpace: el.style.whiteSpace,\n willChange: el.style.willChange,\n }\n const computed = getComputedStyle(el)\n const justifyContent = resolveInlineJustify(computed.textAlign)\n\n el.style.display = \"inline-block\"\n el.style.position = \"relative\"\n el.style.whiteSpace = \"pre-wrap\"\n el.style.willChange = \"transform, opacity\"\n const savedText = el.textContent ?? \"\"\n el.textContent = \"\"\n const keeper = document.createElement(\"span\")\n keeper.textContent = text || \"\\u00A0\"\n keeper.style.opacity = \"0\"\n keeper.style.pointerEvents = \"none\"\n el.appendChild(keeper)\n\n const row = document.createElement(\"span\")\n row.style.display = \"flex\"\n row.style.justifyContent = justifyContent\n row.style.whiteSpace = \"pre\"\n row.style.textAlign = computed.textAlign\n row.style.position = \"absolute\"\n row.style.inset = \"0\"\n el.appendChild(row)\n\n const chars = Array.from(text).map((char) => {\n const span = document.createElement(\"span\")\n span.textContent = char\n span.style.display = \"inline-block\"\n span.style.whiteSpace = \"pre\"\n span.style.opacity = \"0\"\n span.style.willChange = \"transform, opacity\"\n row.appendChild(span)\n return span\n })\n\n const textRect = el.getBoundingClientRect()\n const centerX = textRect.left + textRect.width / 2\n const offsets = chars.map((char) => {\n const rect = char.getBoundingClientRect()\n return rect.left + rect.width / 2 - centerX\n })\n const xStates = chars.map((_, index) => ({ position: -offsets[index], velocity: 0 }))\n const yStates = chars.map(() => ({ position: (Math.random() - 0.5) * 40, velocity: 0 }))\n const opacityStates = chars.map(() => ({ position: 0, velocity: 0 }))\n\n let frameId = 0\n let finished = false\n let reported = false\n const total = Math.max(duration, 900)\n const start = performance.now()\n const anim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: total, fill: \"forwards\" })\n\n function cleanup() {\n if (!isActiveAnimationRun(el, runId)) return\n cancelAnimationFrame(frameId)\n if (finished) return\n finished = true\n Object.assign(el.style, previous)\n el.textContent = text\n }\n\n function complete() {\n cleanup()\n if (reported) return\n reported = true\n onAnimationEnd?.()\n }\n\n function spring(state: { position: number; velocity: number }, target: number, k: number, damping: number) {\n state.velocity += (target - state.position) * k\n state.velocity *= damping\n state.position += state.velocity\n return Math.abs(state.velocity) + Math.abs(target - state.position) < 0.05\n }\n\n function frame(now: number) {\n const elapsed = now - start\n let allDone = true\n chars.forEach((char, index) => {\n const xDone = spring(xStates[index], 0, 0.07, 0.7)\n const yDone = spring(yStates[index], 0, 0.09, 0.68)\n spring(opacityStates[index], 1, 0.08, 0.74)\n char.style.transform = `translate(${xStates[index].position}px, ${yStates[index].position}px)`\n char.style.opacity = String(Math.max(0, Math.min(1, opacityStates[index].position)))\n if (!xDone || !yDone) allDone = false\n })\n\n if (!allDone && elapsed < total) {\n frameId = requestAnimationFrame(frame)\n } else {\n complete()\n }\n }\n\n frameId = requestAnimationFrame(frame)\n anim.onfinish = complete\n anim.oncancel = cleanup\n return anim\n}\n\nfunction animateGravityBounce(\n el: HTMLElement,\n value: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n const text = value === undefined ? el.textContent ?? \"\" : String(value)\n if (!text) return\n const runId = beginAnimationRun(el)\n\n if (prefersReducedMotion()) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: EASE_IN, fill: \"forwards\" },\n )\n anim.onfinish = () => onAnimationEnd?.()\n return anim\n }\n\n const previous = {\n display: el.style.display,\n position: el.style.position,\n willChange: el.style.willChange,\n }\n const computed = getComputedStyle(el)\n const currentRect = el.getBoundingClientRect()\n const justifyContent = resolveInlineJustify(computed.textAlign)\n\n el.style.position = \"relative\"\n el.style.display = \"inline-block\"\n el.style.willChange = \"transform, opacity\"\n const savedText = el.textContent ?? \"\"\n el.textContent = \"\"\n const keeper = document.createElement(\"span\")\n keeper.textContent = text || \"\\u00A0\"\n keeper.style.opacity = \"0\"\n keeper.style.pointerEvents = \"none\"\n el.appendChild(keeper)\n\n const row = document.createElement(\"span\")\n row.style.display = \"flex\"\n row.style.justifyContent = justifyContent\n row.style.whiteSpace = \"pre\"\n row.style.textAlign = computed.textAlign\n row.style.alignItems = \"baseline\"\n row.style.position = \"absolute\"\n row.style.inset = \"0\"\n el.appendChild(row)\n\n const chars = Array.from(text).map((char) => {\n const span = document.createElement(\"span\")\n span.textContent = char\n span.style.display = \"inline-block\"\n span.style.whiteSpace = \"pre\"\n span.style.opacity = \"0\"\n span.style.willChange = \"transform, opacity\"\n row.appendChild(span)\n return span\n })\n\n const states = chars.map((_, index) => ({\n position: -(60 + index * 12),\n velocity: 0,\n settled: false,\n opacity: 0,\n opacityVelocity: 0,\n }))\n\n let frameId = 0\n let finished = false\n let reported = false\n const total = Math.max(duration, chars.length * 90 + 900)\n const start = performance.now()\n const anim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: total, fill: \"forwards\" })\n\n function cleanup() {\n if (!isActiveAnimationRun(el, runId)) return\n cancelAnimationFrame(frameId)\n if (finished) return\n finished = true\n Object.assign(el.style, previous)\n el.textContent = text\n }\n\n function complete() {\n cleanup()\n if (reported) return\n reported = true\n onAnimationEnd?.()\n }\n\n function frame(now: number) {\n const elapsed = now - start\n let done = true\n chars.forEach((char, index) => {\n if (elapsed < index * 64) {\n done = false\n return\n }\n\n const state = states[index]\n if (!state.settled) {\n state.velocity += 0.9\n state.position += state.velocity\n if (state.position >= 0) {\n state.position = 0\n state.velocity *= -0.42\n if (Math.abs(state.velocity) < 1) {\n state.velocity = 0\n state.settled = true\n } else {\n done = false\n }\n } else {\n done = false\n }\n }\n\n state.opacityVelocity += (1 - state.opacity) * 0.07\n state.opacityVelocity *= 0.78\n state.opacity += state.opacityVelocity\n char.style.transform = `translateY(${state.position}px)`\n char.style.opacity = String(Math.max(0, Math.min(1, state.opacity)))\n })\n\n if (!done && elapsed < total) {\n frameId = requestAnimationFrame(frame)\n } else {\n complete()\n }\n }\n\n frameId = requestAnimationFrame(frame)\n anim.onfinish = complete\n anim.oncancel = cleanup\n return anim\n}\n\nfunction animateScrollFanIn(\n el: HTMLElement,\n value: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n const text = value === undefined ? el.textContent ?? \"\" : String(value)\n if (!text) return\n const runId = beginAnimationRun(el)\n\n if (prefersReducedMotion()) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: EASE_IN, fill: \"forwards\" },\n )\n anim.onfinish = () => onAnimationEnd?.()\n return anim\n }\n\n const previous = {\n display: el.style.display,\n whiteSpace: el.style.whiteSpace,\n perspective: el.style.perspective,\n width: el.style.width,\n minWidth: el.style.minWidth,\n willChange: el.style.willChange,\n }\n const computed = getComputedStyle(el)\n const justifyContent = resolveInlineJustify(computed.textAlign)\n const currentRect = el.getBoundingClientRect()\n const nextWidth = Math.ceil(measureInlineText(el, text).width)\n const prevMinWidthPx = Number.parseFloat(previous.minWidth || \"0\")\n const settledMinWidth = Math.ceil(Math.max(prevMinWidthPx, currentRect.width, nextWidth))\n\n el.style.display = \"inline-block\"\n el.style.whiteSpace = \"pre-wrap\"\n el.style.perspective = \"500px\"\n el.style.width = `${Math.ceil(Math.max(currentRect.width, nextWidth))}px`\n el.style.minWidth = `${settledMinWidth}px`\n el.style.willChange = \"transform, opacity\"\n el.innerHTML = \"\"\n\n const chars = Array.from(text)\n const row = document.createElement(\"span\")\n row.style.display = \"flex\"\n row.style.width = \"100%\"\n row.style.justifyContent = justifyContent\n row.style.whiteSpace = \"pre\"\n row.style.textAlign = computed.textAlign\n el.appendChild(row)\n const center = Math.floor(chars.length / 2)\n const spans = chars.map((char, index) => {\n const span = document.createElement(\"span\")\n const distance = index - center\n const x = Math.max(-260, Math.min(260, distance * 50))\n const rotateX = Math.max(-70, Math.min(70, distance * 50))\n span.textContent = char\n span.style.display = \"inline-block\"\n span.style.whiteSpace = \"pre\"\n span.style.color = \"currentColor\"\n span.style.willChange = \"transform, opacity\"\n span.style.transformOrigin = \"center\"\n span.style.transform = `translateX(${x}px) rotateX(${rotateX}deg)`\n span.style.opacity = \"0\"\n row.appendChild(span)\n return { span, x, rotateX }\n })\n\n const childDuration = Math.max(420, duration * 0.75)\n let remaining = spans.length\n let finished = false\n const anim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: childDuration + 120, fill: \"forwards\" })\n\n function cleanup() {\n if (!isActiveAnimationRun(el, runId)) return\n if (finished) return\n finished = true\n Object.assign(el.style, previous)\n el.textContent = text\n }\n\n spans.forEach(({ span, x, rotateX }) => {\n const child = span.animate(\n [\n { opacity: 0, transform: `translateX(${x}px) rotateX(${rotateX}deg) scale(0.96)` },\n { opacity: 1, transform: \"translateX(0) rotateX(0deg) scale(1)\" },\n ],\n { duration: childDuration, easing: EASE_IN_OUT, fill: \"forwards\" },\n )\n child.onfinish = () => {\n remaining -= 1\n if (remaining === 0) {\n cleanup()\n onAnimationEnd?.()\n }\n }\n })\n\n anim.oncancel = cleanup\n return anim\n}\n\nfunction animateTextRotate(\n el: HTMLElement,\n prevValue: string | number | undefined,\n nextValue: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n const oldText = prevValue === undefined ? el.textContent ?? \"\" : String(prevValue)\n const newText = nextValue === undefined ? el.textContent ?? \"\" : String(nextValue)\n if (!newText) return\n const runId = beginAnimationRun(el)\n\n if (prefersReducedMotion()) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: EASE_IN, fill: \"forwards\" },\n )\n anim.onfinish = () => onAnimationEnd?.()\n return anim\n }\n\n const oldSize = measureInlineText(el, oldText)\n const newSize = measureInlineText(el, newText)\n const currentRect = el.getBoundingClientRect()\n const computed = getComputedStyle(el)\n const justifyContent = resolveInlineJustify(computed.textAlign)\n const stableWidth = Math.ceil(Math.max(oldSize.width, newSize.width, currentRect.width))\n const previous = {\n position: el.style.position,\n display: el.style.display,\n clipPath: el.style.clipPath,\n perspective: el.style.perspective,\n willChange: el.style.willChange,\n }\n\n el.style.position = \"relative\"\n el.style.display = \"inline-block\"\n el.style.clipPath = \"inset(0)\"\n el.style.perspective = \"800px\"\n el.style.willChange = \"transform, opacity\"\n const savedText = el.textContent ?? \"\"\n el.textContent = \"\"\n const keeper = document.createElement(\"span\")\n keeper.textContent = newText || \"\\u00A0\"\n keeper.style.opacity = \"0\"\n keeper.style.pointerEvents = \"none\"\n el.appendChild(keeper)\n\n function makeRow(text: string) {\n const row = document.createElement(\"span\")\n row.style.display = \"flex\"\n row.style.alignItems = \"center\"\n row.style.justifyContent = justifyContent\n row.style.flexWrap = \"wrap\"\n row.style.whiteSpace = \"pre-wrap\"\n row.style.textAlign = computed.textAlign\n row.style.width = \"100%\"\n row.style.height = \"100%\"\n splitGraphemes(text).forEach((char) => {\n const span = document.createElement(\"span\")\n span.textContent = char\n span.style.display = \"inline-block\"\n span.style.whiteSpace = \"pre\"\n span.style.willChange = \"transform, opacity\"\n row.appendChild(span)\n })\n return row\n }\n\n const oldRow = makeRow(oldText)\n const newRow = makeRow(newText)\n oldRow.style.position = \"absolute\"\n oldRow.style.left = \"0\"\n oldRow.style.top = \"0\"\n newRow.style.position = \"absolute\"\n newRow.style.left = \"0\"\n newRow.style.top = \"0\"\n el.append(oldRow, newRow)\n\n const oldChars = Array.from(oldRow.children) as HTMLElement[]\n const newChars = Array.from(newRow.children) as HTMLElement[]\n\n const exitDuration = Math.max(180, duration * 0.35)\n const entryStagger = Math.min(30, Math.max(10, duration * 0.03))\n const entryDuration = Math.max(300, duration * 0.55)\n const entryStart = exitDuration + 20\n\n const totalDuration = entryStart + entryDuration + Math.max(0, newChars.length - 1) * entryStagger + 50\n\n let remaining = oldChars.length + newChars.length\n let reported = false\n let finished = false\n const anim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: totalDuration, fill: \"forwards\" })\n\n function cleanup() {\n if (!isActiveAnimationRun(el, runId)) return\n if (finished) return\n finished = true\n el.textContent = newText\n Object.assign(el.style, previous)\n }\n\n function doneOne() {\n remaining -= 1\n if (remaining > 0 || reported) return\n reported = true\n cleanup()\n onAnimationEnd?.()\n }\n\n if (remaining === 0) {\n cleanup()\n onAnimationEnd?.()\n return anim\n }\n\n oldChars.forEach((char) => {\n char.style.transformOrigin = \"50% 0%\"\n const child = char.animate(\n [\n { opacity: 1, transform: \"rotateX(0deg)\" },\n { opacity: 0, transform: \"rotateX(-90deg)\" },\n ],\n { duration: exitDuration, easing: EASE_IN, fill: \"forwards\" },\n )\n child.onfinish = doneOne\n })\n\n if (oldChars.length > 0) {\n setTimeout(() => { oldRow.style.display = \"none\" }, exitDuration + 10)\n }\n\n newChars.forEach((char, index) => {\n char.style.transformOrigin = \"50% 100%\"\n const child = char.animate(\n [\n { opacity: 0, transform: \"rotateX(90deg)\" },\n { opacity: 1, transform: \"rotateX(0deg)\" },\n ],\n { duration: entryDuration, delay: entryStart + index * entryStagger, easing: SPRING, fill: \"forwards\" },\n )\n child.onfinish = doneOne\n })\n\n anim.oncancel = cleanup\n return anim\n}\n\nfunction animateGooeyMorph(\n el: HTMLElement,\n prevValue: string | number | undefined,\n nextValue: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n const oldText = prevValue === undefined ? el.textContent ?? \"\" : String(prevValue)\n const newText = nextValue === undefined ? el.textContent ?? \"\" : String(nextValue)\n if (!newText) return\n const runId = beginAnimationRun(el)\n\n if (prefersReducedMotion()) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: EASE_IN, fill: \"forwards\" },\n )\n anim.onfinish = () => onAnimationEnd?.()\n return anim\n }\n\n const uid = Math.random().toString(36).slice(2)\n const oldSize = measureInlineText(el, oldText)\n const newSize = measureInlineText(el, newText)\n const currentRect = el.getBoundingClientRect()\n const computed = getComputedStyle(el)\n const justifyContent = resolveInlineJustify(computed.textAlign)\n const justifyItems =\n justifyContent === \"center\" ? \"center\"\n : justifyContent === \"flex-end\" ? \"end\"\n : \"start\"\n const fontSize = Number.parseFloat(computed.fontSize) || 16\n const buffer = Math.ceil(fontSize * 0.3) * 2\n const stableWidth = Math.ceil(Math.max(oldSize.width, newSize.width, currentRect.width)) + buffer\n const stableHeight = Math.ceil(Math.max(oldSize.height, newSize.height, currentRect.height))\n const previous = {\n position: el.style.position,\n display: el.style.display,\n overflow: el.style.overflow,\n width: el.style.width,\n minWidth: el.style.minWidth,\n height: el.style.height,\n minHeight: el.style.minHeight,\n willChange: el.style.willChange,\n }\n\n el.style.position = \"relative\"\n el.style.display = \"inline-block\"\n el.style.overflow = \"visible\"\n el.style.width = `${stableWidth}px`\n el.style.minWidth = `${stableWidth}px`\n el.style.height = `${stableHeight}px`\n el.style.minHeight = `${stableHeight}px`\n el.style.willChange = \"transform, opacity\"\n el.innerHTML = \"\"\n\n const svg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\")\n svg.setAttribute(\"aria-hidden\", \"true\")\n svg.setAttribute(\"focusable\", \"false\")\n svg.style.position = \"absolute\"\n svg.style.width = \"0\"\n svg.style.height = \"0\"\n\n const defs = document.createElementNS(\"http://www.w3.org/2000/svg\", \"defs\")\n const filter = document.createElementNS(\"http://www.w3.org/2000/svg\", \"filter\")\n filter.setAttribute(\"id\", `trigr-gooey-${uid}`)\n const cm = document.createElementNS(\"http://www.w3.org/2000/svg\", \"feColorMatrix\")\n cm.setAttribute(\"in\", \"SourceGraphic\")\n cm.setAttribute(\"type\", \"matrix\")\n cm.setAttribute(\"values\", \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 22 -8\")\n filter.append(cm)\n defs.appendChild(filter)\n svg.appendChild(defs)\n\n const wrap = document.createElement(\"span\")\n wrap.style.display = \"grid\"\n wrap.style.alignItems = \"center\"\n wrap.style.justifyItems = justifyItems\n wrap.style.width = \"100%\"\n wrap.style.height = \"100%\"\n wrap.style.textAlign = computed.textAlign\n wrap.style.filter = `url(#trigr-gooey-${uid})`\n\n const oldSpan = document.createElement(\"span\")\n const newSpan = document.createElement(\"span\")\n oldSpan.textContent = oldText\n newSpan.textContent = newText\n ;[oldSpan, newSpan].forEach((span) => {\n span.style.gridArea = \"1 / 1\"\n span.style.display = \"inline-block\"\n span.style.textAlign = computed.textAlign\n span.style.justifySelf = justifyItems\n span.style.userSelect = \"none\"\n span.style.willChange = \"filter, opacity\"\n })\n oldSpan.style.opacity = \"1\"\n newSpan.style.opacity = \"0\"\n\n wrap.append(oldSpan, newSpan)\n el.append(svg, wrap)\n\n let frameId = 0\n let finished = false\n const total = Math.max(650, duration)\n const start = performance.now()\n const anim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: total, fill: \"forwards\" })\n\n function cleanup() {\n if (!isActiveAnimationRun(el, runId)) return\n cancelAnimationFrame(frameId)\n if (finished) return\n finished = true\n el.textContent = newText\n Object.assign(el.style, previous)\n }\n\n function setMorph(fraction: number) {\n const f = Math.max(0, Math.min(1, fraction))\n const g = 1 - f\n const newBlur = (1 - f) * 4\n const oldBlur = f * 4\n newSpan.style.filter = `blur(${newBlur.toFixed(2)}px)`\n newSpan.style.opacity = `${Math.pow(f, 0.65)}`\n oldSpan.style.filter = `blur(${oldBlur.toFixed(2)}px)`\n oldSpan.style.opacity = `${Math.pow(g, 0.65)}`\n }\n\n function frame(now: number) {\n const fraction = Math.min(1, (now - start) / total)\n setMorph(fraction)\n if (fraction < 1) frameId = requestAnimationFrame(frame)\n }\n\n frameId = requestAnimationFrame(frame)\n anim.onfinish = () => {\n cleanup()\n onAnimationEnd?.()\n }\n anim.oncancel = cleanup\n return anim\n}\n\nfunction animateRandomLetterSwap(\n el: HTMLElement,\n value: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n const text = value === undefined ? el.textContent ?? \"\" : String(value)\n if (!text) return\n const runId = beginAnimationRun(el)\n\n if (prefersReducedMotion()) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: EASE_IN, fill: \"forwards\" },\n )\n anim.onfinish = () => onAnimationEnd?.()\n return anim\n }\n\n const previous = {\n display: el.style.display,\n alignItems: el.style.alignItems,\n justifyContent: el.style.justifyContent,\n clipPath: el.style.clipPath,\n whiteSpace: el.style.whiteSpace,\n willChange: el.style.willChange,\n }\n\n el.style.display = \"inline-block\"\n el.style.clipPath = \"inset(0)\"\n el.style.whiteSpace = \"pre\"\n el.style.willChange = \"transform, opacity\"\n el.innerHTML = \"\"\n\n const chars = splitGraphemes(text)\n const order = chars.map((_, index) => index).sort(() => Math.random() - 0.5)\n const slots = chars.map((char) => {\n const slot = document.createElement(\"span\")\n const primary = document.createElement(\"span\")\n const secondary = document.createElement(\"span\")\n slot.style.display = \"inline-flex\"\n slot.style.position = \"relative\"\n slot.style.alignItems = \"flex-end\"\n slot.style.overflow = \"hidden\"\n slot.style.height = \"1.22em\"\n slot.style.lineHeight = \"1.22\"\n slot.style.verticalAlign = \"baseline\"\n slot.style.whiteSpace = \"pre\"\n primary.textContent = char\n secondary.textContent = char\n primary.style.display = \"inline-block\"\n primary.style.position = \"relative\"\n primary.style.willChange = \"transform\"\n secondary.style.display = \"inline-block\"\n secondary.style.position = \"absolute\"\n secondary.style.left = \"0\"\n secondary.style.top = \"-100%\"\n secondary.style.willChange = \"transform\"\n slot.append(primary, secondary)\n el.appendChild(slot)\n return { primary, secondary }\n })\n\n const stagger = Math.max(14, Math.min(36, duration * 0.04))\n const childDuration = Math.max(220, duration * 0.62)\n let remaining = slots.length * 2\n let finished = false\n const anim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: childDuration + slots.length * stagger + 40, fill: \"forwards\" })\n\n function cleanup() {\n if (!isActiveAnimationRun(el, runId)) return\n if (finished) return\n finished = true\n // Use stored slot references instead of querySelectorAll\n slots.forEach(({ primary, secondary }) => {\n secondary.remove()\n primary.style.position = \"\"\n primary.style.willChange = \"\"\n primary.style.display = \"\"\n })\n // Unwrap slot spans: replace each slot with its primary child\n slots.forEach(({ primary }) => {\n const slot = primary.parentElement\n if (slot) slot.replaceWith(primary)\n })\n Object.assign(el.style, previous)\n }\n\n function doneOne() {\n remaining -= 1\n if (remaining > 0) return\n cleanup()\n onAnimationEnd?.()\n }\n\n if (remaining === 0) {\n cleanup()\n onAnimationEnd?.()\n return anim\n }\n\n order.forEach((charIndex, orderIndex) => {\n const slot = slots[charIndex]\n const delay = orderIndex * stagger\n const primary = slot.primary.animate(\n [\n { transform: \"translateY(0)\" },\n { transform: \"translateY(100%)\" },\n ],\n { duration: childDuration, delay, easing: SPRING, fill: \"forwards\" },\n )\n const secondary = slot.secondary.animate(\n [\n { transform: \"translateY(0)\" },\n { transform: \"translateY(100%)\" },\n ],\n { duration: childDuration, delay, easing: SPRING, fill: \"forwards\" },\n )\n primary.onfinish = doneOne\n secondary.onfinish = doneOne\n })\n\n anim.oncancel = cleanup\n return anim\n}\n\nfunction animateTextEffect(\n el: HTMLElement,\n value: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n const text = value === undefined ? el.textContent ?? \"\" : String(value)\n if (!text) return\n const runId = beginAnimationRun(el)\n\n if (prefersReducedMotion()) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: EASE_IN, fill: \"forwards\" },\n )\n anim.onfinish = () => onAnimationEnd?.()\n return anim\n }\n\n const previous = {\n display: el.style.display,\n whiteSpace: el.style.whiteSpace,\n width: el.style.width,\n minWidth: el.style.minWidth,\n willChange: el.style.willChange,\n }\n const currentRect = el.getBoundingClientRect()\n const nextWidth = Math.ceil(measureInlineText(el, text).width)\n const prevMinWidthPx = Number.parseFloat(previous.minWidth || \"0\")\n const settledMinWidth = Math.ceil(Math.max(prevMinWidthPx, currentRect.width, nextWidth))\n\n el.style.display = \"inline-block\"\n el.style.whiteSpace = \"pre-wrap\"\n el.style.width = `${Math.ceil(Math.max(currentRect.width, nextWidth))}px`\n el.style.minWidth = `${settledMinWidth}px`\n el.style.willChange = \"transform, opacity\"\n el.innerHTML = \"\"\n\n const segments = text.split(/(\\s+)/)\n const words = segments.map((segment) => {\n const span = document.createElement(\"span\")\n span.textContent = segment\n span.style.display = /^\\s+$/.test(segment) ? \"inline\" : \"inline-block\"\n span.style.whiteSpace = \"pre\"\n span.style.willChange = \"transform, opacity, filter\"\n span.style.opacity = /^\\s+$/.test(segment) ? \"1\" : \"0\"\n el.appendChild(span)\n return span\n }).filter((span) => !/^\\s+$/.test(span.textContent ?? \"\"))\n\n const stagger = Math.max(24, Math.min(60, duration * 0.08))\n const childDuration = Math.max(320, duration * 0.72)\n let remaining = words.length\n let finished = false\n const anim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: childDuration + words.length * stagger, fill: \"forwards\" })\n\n function cleanup() {\n if (!isActiveAnimationRun(el, runId)) return\n if (finished) return\n finished = true\n Object.assign(el.style, previous)\n el.textContent = text\n el.style.minWidth = `${settledMinWidth}px`\n }\n\n function doneOne() {\n remaining -= 1\n if (remaining > 0) return\n cleanup()\n onAnimationEnd?.()\n }\n\n if (remaining === 0) {\n cleanup()\n onAnimationEnd?.()\n return anim\n }\n\n words.forEach((word, index) => {\n const child = word.animate(\n [\n { opacity: 0, filter: \"blur(12px)\", transform: \"translateY(20px)\" },\n { opacity: 1, filter: \"blur(0px)\", transform: \"translateY(0)\" },\n ],\n { duration: childDuration, delay: index * stagger, easing: SMOOTH, fill: \"forwards\" },\n )\n child.onfinish = doneOne\n })\n\n anim.oncancel = cleanup\n return anim\n}\n\nfunction animateStaggerText(\n el: HTMLElement,\n value: string | number | undefined,\n duration: number,\n onAnimationEnd?: () => void,\n) {\n const text = value === undefined ? el.textContent ?? \"\" : String(value)\n if (!text) return\n const runId = beginAnimationRun(el)\n\n if (prefersReducedMotion()) {\n const anim = el.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: duration / 2, easing: EASE_IN, fill: \"forwards\" },\n )\n anim.onfinish = () => onAnimationEnd?.()\n return anim\n }\n\n const previous = {\n display: el.style.display,\n flexWrap: el.style.flexWrap,\n whiteSpace: el.style.whiteSpace,\n width: el.style.width,\n minWidth: el.style.minWidth,\n willChange: el.style.willChange,\n }\n const currentRect = el.getBoundingClientRect()\n const nextWidth = Math.ceil(measureInlineText(el, text).width)\n const prevMinWidthPx = Number.parseFloat(previous.minWidth || \"0\")\n const settledMinWidth = Math.ceil(Math.max(prevMinWidthPx, currentRect.width, nextWidth))\n\n el.style.display = \"inline-block\"\n el.style.flexWrap = \"wrap\"\n el.style.whiteSpace = \"pre-wrap\"\n el.style.width = `${Math.ceil(Math.max(currentRect.width, nextWidth))}px`\n el.style.minWidth = `${settledMinWidth}px`\n el.style.willChange = \"transform, opacity\"\n el.innerHTML = \"\"\n\n const chars: HTMLElement[] = []\n text.split(\" \").forEach((word, wordIndex, words) => {\n const wordEl = document.createElement(\"span\")\n wordEl.style.display = \"inline-block\"\n wordEl.style.whiteSpace = \"nowrap\"\n splitGraphemes(word).forEach((char) => {\n const clip = document.createElement(\"span\")\n const inner = document.createElement(\"span\")\n clip.style.display = \"inline-block\"\n clip.style.overflow = \"hidden\"\n inner.textContent = char\n inner.style.display = \"inline-block\"\n inner.style.opacity = \"0\"\n inner.style.transform = \"translateY(100%)\"\n inner.style.willChange = \"transform, opacity\"\n clip.appendChild(inner)\n wordEl.appendChild(clip)\n chars.push(inner)\n })\n el.appendChild(wordEl)\n if (wordIndex < words.length - 1) el.appendChild(document.createTextNode(\" \"))\n })\n\n const stagger = Math.max(18, Math.min(50, duration * 0.06))\n const childDuration = Math.max(280, duration * 0.68)\n let remaining = chars.length\n let finished = false\n const anim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: childDuration + chars.length * stagger, fill: \"forwards\" })\n\n function cleanup() {\n if (!isActiveAnimationRun(el, runId)) return\n if (finished) return\n finished = true\n Object.assign(el.style, previous)\n el.textContent = text\n el.style.minWidth = `${settledMinWidth}px`\n }\n\n function doneOne() {\n remaining -= 1\n if (remaining > 0) return\n cleanup()\n onAnimationEnd?.()\n }\n\n if (remaining === 0) {\n cleanup()\n onAnimationEnd?.()\n return anim\n }\n\n chars.forEach((char, index) => {\n const child = char.animate(\n [\n { opacity: 0, transform: \"translateY(100%)\" },\n { opacity: 1, transform: \"translateY(0)\" },\n ],\n { duration: childDuration, delay: index * stagger, easing: SPRING, fill: \"forwards\" },\n )\n child.onfinish = doneOne\n })\n\n anim.oncancel = cleanup\n return anim\n}\n\nfunction animateTextMorph(\n el: HTMLElement,\n prevValue: string | number | undefined,\n nextValue: string | number | undefined,\n baseDuration: number,\n onAnimationEnd?: () => void,\n) {\n const oldText = prevValue === undefined ? \"\" : String(prevValue)\n const newText = nextValue === undefined ? el.textContent ?? \"\" : String(nextValue)\n const runId = beginAnimationRun(el)\n if (prefersReducedMotion()) {\n const { oldEl, newEl, cleanup } = prepareStableTextSwap(el, oldText, newText, runId)\n oldEl.animate([{ opacity: 1 }, { opacity: 0 }], { duration: baseDuration / 2, easing: EASE_IN, fill: \"forwards\" })\n const anim = newEl.animate([{ opacity: 0 }, { opacity: 1 }], { duration: baseDuration / 2, easing: SPRING, fill: \"forwards\" })\n anim.onfinish = () => {\n cleanup()\n onAnimationEnd?.()\n }\n anim.oncancel = cleanup\n return anim\n }\n\n const chars = Array.from(newText.length > oldText.length ? newText : oldText)\n const oldSize = measureInlineText(el, oldText)\n const newSize = measureInlineText(el, newText)\n const currentRect = el.getBoundingClientRect()\n const computed = getComputedStyle(el)\n const justifyContent = resolveInlineJustify(computed.textAlign)\n const fontSize = Number.parseFloat(computed.fontSize) || 16\n const buffer = Math.ceil(fontSize * 0.3) * 2\n const stableWidth = Math.ceil(Math.max(oldSize.width, newSize.width, currentRect.width)) + buffer\n const previous = {\n display: el.style.display,\n whiteSpace: el.style.whiteSpace,\n width: el.style.width,\n minWidth: el.style.minWidth,\n willChange: el.style.willChange,\n }\n const prevMinWidthPx = Number.parseFloat(previous.minWidth || \"0\")\n const settledMinWidth = Math.ceil(Math.max(prevMinWidthPx, stableWidth))\n el.style.willChange = \"transform, opacity\"\n el.style.display = \"inline-block\"\n el.style.whiteSpace = \"pre\"\n el.style.width = `${stableWidth}px`\n el.style.minWidth = `${settledMinWidth}px`\n el.innerHTML = \"\"\n\n const duration = Math.max(400, baseDuration + Math.max(0, chars.length - 5) * 15)\n const row = document.createElement(\"span\")\n row.style.display = \"flex\"\n row.style.alignItems = \"baseline\"\n row.style.justifyContent = justifyContent\n row.style.whiteSpace = \"pre\"\n row.style.width = \"100%\"\n row.style.textAlign = computed.textAlign\n el.appendChild(row)\n\n chars.forEach((_, i) => {\n const oldChar = oldText[i]\n const newChar = newText[i]\n const same = oldChar !== undefined && oldChar === newChar\n const slot = document.createElement(\"span\")\n slot.style.display = \"inline-grid\"\n slot.style.placeItems = \"center\"\n slot.style.position = \"relative\"\n slot.style.minWidth = same || newChar === undefined ? \"auto\" : \"0.55em\"\n row.appendChild(slot)\n\n if (same) {\n slot.textContent = newChar\n slot.animate(\n [{ opacity: 1, transform: \"scale(1)\" }, { opacity: 1, transform: \"scale(1)\" }],\n { duration: duration * 0.55, delay: i * 15, easing: SMOOTH, fill: \"forwards\" },\n )\n return\n }\n\n if (oldChar !== undefined) {\n const oldSpan = document.createElement(\"span\")\n oldSpan.textContent = oldChar\n oldSpan.style.gridArea = \"1 / 1\"\n slot.appendChild(oldSpan)\n oldSpan.animate(\n [{ opacity: 1, transform: \"translateY(0) scale(1)\" }, { opacity: 0, transform: \"translateY(-4px) scale(0.5)\" }],\n { duration: duration * 0.45, delay: i * 15, easing: EASE_IN, fill: \"forwards\" },\n )\n }\n\n if (newChar !== undefined) {\n const newSpan = document.createElement(\"span\")\n newSpan.textContent = newChar\n newSpan.style.gridArea = \"1 / 1\"\n slot.appendChild(newSpan)\n newSpan.animate(\n [{ opacity: 0, transform: \"translateY(4px) scale(0.5)\" }, { opacity: 1, transform: \"translateY(0) scale(1)\" }],\n { duration: duration * 0.65, delay: i * 15 + 55, easing: SPRING, fill: \"forwards\" },\n )\n }\n })\n\n const widthAnim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration, fill: \"forwards\" })\n widthAnim.onfinish = () => {\n el.textContent = newText\n Object.assign(el.style, previous)\n el.style.minWidth = `${settledMinWidth}px`\n onAnimationEnd?.()\n }\n widthAnim.oncancel = () => {\n if (!isActiveAnimationRun(el, runId)) return\n el.textContent = newText\n Object.assign(el.style, previous)\n el.style.minWidth = `${settledMinWidth}px`\n }\n return widthAnim\n}\n\ntype SingleAnimationFn = (el: HTMLElement, value: string | number | undefined, duration: number, onAnimationEnd?: () => void) => Animation | undefined\ntype ChangeAnimationFn = (el: HTMLElement, prevValue: string | number | undefined, nextValue: string | number | undefined, duration: number, onAnimationEnd?: () => void) => Animation | undefined\n\nconst singleAnimations: Record<string, SingleAnimationFn> = {\n splitReveal: animateSplitReveal,\n splitSlide: animateSplitSlide,\n bigBang: animateBigBang,\n scatterAssemble: animateScatterAssemble,\n pixelRain: animatePixelRain,\n vortex: animateVortex,\n dominoFall: animateDominoFall,\n pendulum: animatePendulum,\n centerBurst: animateCenterBurst,\n gravityBounce: animateGravityBounce,\n scrollFanIn: animateScrollFanIn,\n randomLetterSwap: animateRandomLetterSwap,\n textEffect: animateTextEffect,\n staggerText: animateStaggerText,\n}\n\nconst changeAnimations: Record<string, ChangeAnimationFn> = {\n morph: animateTextMorph,\n textRotate: animateTextRotate,\n gooeyMorph: animateGooeyMorph,\n}\n\nconst AnimateText = forwardRef<AnimateTextHandle, AnimateTextProps>(function AnimateText({\n value,\n triggers: triggersProp,\n trigger = \"change\",\n animation: baseAnimation,\n scrollAnimation,\n highlightColor: highlightColorProp,\n highlightMode = \"persist\" as \"persist\" | \"pulse\" | \"erase\",\n highlightHold = 800,\n properties,\n exitAnimation,\n show,\n unmountOnExit = true,\n duration = 300,\n easing = SPRING,\n delay = 0,\n threshold = 0.4,\n repeat = false,\n once,\n as = \"span\",\n className,\n style,\n onClick,\n onEnter,\n onExit,\n onHoverStart,\n onHoverEnd,\n onAnimationEnd: onAnimationEndProp,\n presetOptions,\n children,\n}: AnimateTextProps, forwardedRef) {\n const ref = useRef<HTMLElement>(null)\n const animRef = useRef<Animation | null>(null)\n const propertyAnimRef = useRef<Animation | null>(null)\n const rafRef = useRef<number | null>(null)\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const runFallbackRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const runIdRef = useRef(0)\n const runningRef = useRef(false)\n const queueRef = useRef<TriggerSource[]>([])\n const [currentRun, setCurrentRun] = useState<QueuedRun | null>(null)\n const [phase, setPhase] = useState<\"entered\" | \"exiting\" | \"exited\">(\n show !== false ? \"entered\" : \"exited\"\n )\n const exitAnimRef = useRef<Animation | null>(null)\n const exitKeyRef = useRef(0)\n const watchedValue = useMemo(() => value ?? textFromNode(children), [children, value])\n const { changed, prev, current: watchedCurrent } = useValueChange(watchedValue)\n const capturedPrevRef = useRef(prev)\n if (changed) capturedPrevRef.current = prev\n const shouldObserveOnce = once ?? !repeat\n const triggerConfigs = useMemo(() => {\n if (triggersProp) {\n return triggersProp.map(tc => ({\n trigger: tc.trigger as TriggerSource,\n animation: tc.animation,\n threshold: tc.threshold ?? threshold,\n }))\n }\n const sources = (Array.isArray(trigger) ? trigger.slice(0, 2) : [trigger]) as TriggerSource[]\n return sources.map(s => ({\n trigger: s,\n animation: s === \"scroll\" && scrollAnimation ? scrollAnimation : baseAnimation,\n threshold,\n }))\n }, [triggersProp, trigger, baseAnimation, scrollAnimation, threshold])\n\n const triggerSources = useMemo(\n () => triggerConfigs.map(tc => tc.trigger),\n [triggerConfigs]\n )\n\n const hasTrigger = useCallback((source: TriggerSource) => triggerSources.includes(source), [triggerSources])\n const activeTrigger = currentRun?.source ?? triggerSources[0] ?? \"change\"\n const activeConfig = triggerConfigs.find(tc => tc.trigger === activeTrigger)\n const animation = activeConfig?.animation ?? baseAnimation\n const scrollConfig = triggerConfigs.find(tc => tc.trigger === \"scroll\")\n const scrollThreshold = scrollConfig?.threshold ?? threshold\n\n const startRun = useCallback((source: TriggerSource) => {\n runningRef.current = true\n runIdRef.current += 1\n setCurrentRun({ id: runIdRef.current, source })\n }, [])\n\n const requestRun = useCallback((source: TriggerSource) => {\n if (runningRef.current) {\n if (source !== \"scroll\" && queueRef.current.length < 2) queueRef.current.push(source)\n return\n }\n startRun(source)\n }, [startRun])\n\n const finishRun = useCallback(() => {\n if (runFallbackRef.current !== null) {\n clearTimeout(runFallbackRef.current)\n runFallbackRef.current = null\n }\n onAnimationEndProp?.()\n runningRef.current = false\n animRef.current = null\n const next = queueRef.current.shift()\n if (next) {\n startRun(next)\n } else {\n setCurrentRun(null)\n }\n }, [onAnimationEndProp, startRun])\n const onAnimationEnd = finishRun\n\n const animate = useCallback(() => {\n requestRun(\"manual\")\n }, [requestRun])\n\n useImperativeHandle(forwardedRef, () => ({\n animate,\n get element() {\n return ref.current\n },\n }), [animate])\n\n const scrollTriggeredRef = useRef(false)\n\n useEffect(() => {\n if (!hasTrigger(\"scroll\")) return\n const el = ref.current\n if (!el) return\n\n scrollTriggeredRef.current = false\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n if (scrollTriggeredRef.current) return\n scrollTriggeredRef.current = true\n onEnter?.()\n requestRun(\"scroll\")\n if (shouldObserveOnce) observer.disconnect()\n } else {\n scrollTriggeredRef.current = false\n if (repeat) onExit?.()\n }\n },\n scrollObserverOptions(el, scrollThreshold),\n )\n observer.observe(el)\n return () => observer.disconnect()\n }, [hasTrigger, onEnter, onExit, repeat, requestRun, shouldObserveOnce, scrollThreshold])\n\n useEffect(() => {\n if (!hasTrigger(\"change\") || !changed) return\n requestRun(\"change\")\n }, [changed, hasTrigger, requestRun])\n\n useEffect(() => {\n if (!hasTrigger(\"mount\")) return\n if (phase !== \"entered\") return\n requestRun(\"mount\")\n }, [hasTrigger, requestRun, phase])\n\n useEffect(() => {\n if (show === undefined) return\n\n if (show) {\n exitAnimRef.current?.cancel()\n exitAnimRef.current = null\n setPhase(\"entered\")\n return\n }\n\n const key = ++exitKeyRef.current\n const exitPreset = exitAnimation ?? (\"fadeOut\" as AnimationPreset)\n\n if (!exitAnimation) {\n setPhase(\"exited\")\n return\n }\n\n const el = ref.current\n if (!el) {\n setPhase(\"exited\")\n return\n }\n\n animRef.current?.cancel()\n animRef.current = null\n runningRef.current = false\n queueRef.current = []\n setCurrentRun(null)\n\n const motionDuration = validDuration(duration, 300)\n const def = presets[exitPreset]\n if (!def) {\n setPhase(\"exited\")\n return\n }\n\n const onExitEnd = () => {\n if (exitKeyRef.current === key) {\n setPhase(\"exited\")\n exitAnimRef.current = null\n }\n }\n\n setPhase(\"exiting\")\n\n const exitFrames = def.out.length ? def.out : def.in.length ? def.in : [{ opacity: 0 }]\n el.style.willChange = \"transform, opacity, filter, background-position, background-size\"\n applyInitialState(el, exitFrames)\n const kf = prefersReducedMotion() ? reducedKeyframes(exitFrames) : exitFrames\n exitAnimRef.current = el.animate(kf, {\n duration: motionDuration,\n easing,\n fill: \"forwards\",\n })\n exitAnimRef.current.addEventListener(\"finish\", () => {\n applyFinalState(el, exitFrames)\n el.style.willChange = \"auto\"\n onExitEnd()\n })\n exitAnimRef.current.addEventListener(\"cancel\", () => {\n applyFinalState(el, exitFrames)\n el.style.willChange = \"auto\"\n })\n\n return () => {\n if (exitKeyRef.current === key) {\n exitAnimRef.current?.cancel()\n exitAnimRef.current = null\n }\n }\n }, [show, exitAnimation, duration, easing])\n\n const handleClick = useCallback((event: MouseEvent<HTMLElement>) => {\n onClick?.(event)\n if (hasTrigger(\"click\")) requestRun(\"click\")\n }, [hasTrigger, onClick, requestRun])\n\n const handleMouseEnter = useCallback(() => {\n onHoverStart?.()\n if (hasTrigger(\"hover\")) requestRun(\"hover\")\n }, [hasTrigger, onHoverStart, requestRun])\n\n const handleMouseLeave = useCallback(() => {\n onHoverEnd?.()\n }, [onHoverEnd])\n\n useEffect(() => {\n return () => {\n if (rafRef.current !== null) cancelAnimationFrame(rafRef.current)\n if (timerRef.current !== null) clearTimeout(timerRef.current)\n if (runFallbackRef.current !== null) clearTimeout(runFallbackRef.current)\n animRef.current?.cancel()\n propertyAnimRef.current?.cancel()\n exitAnimRef.current?.cancel()\n }\n }, [])\n\n useLayoutEffect(() => {\n if (!currentRun || !ref.current) return\n\n if (rafRef.current !== null) cancelAnimationFrame(rafRef.current)\n if (timerRef.current !== null) clearTimeout(timerRef.current)\n if (runFallbackRef.current !== null) {\n clearTimeout(runFallbackRef.current)\n runFallbackRef.current = null\n }\n cancelElementAnimations(ref.current)\n animRef.current = null\n propertyAnimRef.current = null\n\n const current = activeTrigger === \"change\"\n ? watchedCurrent\n : value ?? ref.current.textContent ?? \"\"\n const reduced = prefersReducedMotion()\n const safeDuration = validDuration(duration, 300)\n const motionDuration = reduced ? safeDuration / 2 : safeDuration\n runFallbackRef.current = setTimeout(() => {\n runFallbackRef.current = null\n finishRun()\n }, Math.max(900, motionDuration * 2 + 600))\n // For non-change triggers, capture visible text before animation clears it\n const effectivePrev = activeTrigger === \"change\" ? capturedPrevRef.current : ref.current.textContent ?? \"\"\n if (activeTrigger === \"change\" && effectivePrev !== undefined && animation !== \"highlight\") {\n reserveStableTextSize(ref.current, String(effectivePrev), String(current))\n }\n propertyAnimRef.current = runPropertyAnimation(ref.current, properties, {\n duration: motionDuration,\n easing,\n delay,\n })\n\n const changeFn = changeAnimations[animation as string]\n if (changeFn) {\n animRef.current = changeFn(ref.current, effectivePrev, current, motionDuration, onAnimationEnd) ?? null\n return\n }\n\n const singleFn = singleAnimations[animation as string]\n if (singleFn) {\n animRef.current = singleFn(ref.current, current, motionDuration, onAnimationEnd) ?? null\n return\n }\n\n if (animation === \"decoder\") {\n const target = String(current)\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()\"\n const n = target.length\n const charDur = motionDuration * 0.7\n const staggerGap = n > 1 ? (motionDuration * 0.3) / (n - 1) : 0\n const startTime = performance.now()\n const host = findTextHost(ref.current!)\n\n function tick(now: number) {\n const elapsed = now - startTime\n let result = \"\"\n let done = true\n\n for (let i = 0; i < n; i++) {\n if (target[i] === \" \") {\n result += \" \"\n continue\n }\n const t = elapsed - i * staggerGap\n if (t >= charDur) {\n result += target[i]\n } else {\n result += chars[Math.floor(Math.random() * chars.length)]\n done = false\n }\n }\n\n host.textContent = result\n\n if (!done) {\n rafRef.current = requestAnimationFrame(tick)\n } else {\n rafRef.current = null\n onAnimationEnd?.()\n }\n }\n\n rafRef.current = requestAnimationFrame(tick)\n return\n }\n\n if (animation === \"fadeAway\") {\n const text = capturedPrevRef.current !== undefined ? String(capturedPrevRef.current) : null\n if (!text) return\n const finalText = String(current)\n const el = ref.current\n const runId = beginAnimationRun(el)\n const spans = appendCharSpans(el, text)\n const stagger = presetOptions?.stagger ?? 40\n const totalDuration = motionDuration + (spans.length - 1) * stagger + 50\n\n spans.forEach((span, i) => {\n span.animate(\n [\n { opacity: 1, filter: \"blur(0px)\" },\n { opacity: 0, filter: \"blur(2px)\" },\n ],\n { duration: motionDuration, delay: i * stagger, fill: \"forwards\", easing: EASE_OUT },\n )\n })\n\n const trackAnim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: totalDuration, fill: \"forwards\" })\n const cleanup = () => {\n if (!isActiveAnimationRun(el, runId)) return\n el.textContent = finalText\n }\n trackAnim.onfinish = () => { cleanup(); onAnimationEnd?.() }\n trackAnim.oncancel = cleanup\n animRef.current = trackAnim\n return\n }\n\n if (animation === \"fadeIn\") {\n const text = String(current)\n if (!text) return\n const el = ref.current\n const runId = beginAnimationRun(el)\n const spans = appendCharSpans(el, text, (span) => {\n span.style.opacity = \"0\"\n span.style.filter = \"blur(2px)\"\n })\n const stagger = presetOptions?.stagger ?? 40\n const totalDuration = motionDuration + (spans.length - 1) * stagger + 50\n\n spans.forEach((span, i) => {\n span.animate(\n rebaseKeyframes([\n { opacity: 0, filter: \"blur(2px)\" },\n { opacity: 1, filter: \"blur(0px)\" },\n ], presetOptions),\n { duration: motionDuration, delay: (spans.length - 1 - i) * stagger, fill: \"forwards\", easing: SPRING },\n )\n })\n\n const trackAnim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: totalDuration, fill: \"forwards\" })\n const cleanup = () => {\n if (!isActiveAnimationRun(el, runId)) return\n el.textContent = text\n }\n trackAnim.onfinish = () => { cleanup(); onAnimationEnd?.() }\n trackAnim.oncancel = cleanup\n animRef.current = trackAnim\n return\n }\n\n if (animation === \"slideReplace\") {\n const old = capturedPrevRef.current !== undefined ? String(capturedPrevRef.current) : null\n const next = String(current)\n if (!old || !next) return\n\n const el = ref.current\n const containerWidth = el.getBoundingClientRect().width\n const runId = beginAnimationRun(el)\n const { oldEl, newEl, cleanup } = prepareStableTextSwap(el, old, next, runId)\n newEl.style.transform = \"translateX(120%)\"\n\n const line = document.createElement(\"span\")\n line.style.position = \"absolute\"\n line.style.bottom = \"0\"\n line.style.left = \"0\"\n line.style.width = \"100%\"\n line.style.height = \"2px\"\n line.style.background = \"currentColor\"\n line.style.transform = \"scaleX(0)\"\n line.style.transformOrigin = \"0% 50%\"\n\n el.appendChild(line)\n\n const outDuration = motionDuration * 0.45\n const inDuration = motionDuration * 0.55\n const lineDuration = motionDuration * 0.65\n\n const textWidth = measureInlineText(el, next).width\n const textHeight = measureInlineText(el, next).height\n\n line.style.width = `${textWidth}px`\n line.style.bottom = \"0\"\n\n oldEl.animate(\n [{ transform: \"translateX(0)\" }, { transform: \"translateX(-120%)\" }],\n { duration: outDuration, easing: EASE_IN, fill: \"forwards\" },\n )\n\n const anim = newEl.animate(\n [{ transform: \"translateX(120%)\" }, { transform: \"translateX(0)\" }],\n { duration: inDuration, easing: SPRING, fill: \"forwards\" },\n )\n\n line.animate(\n [{ transform: \"scaleX(0)\" }, { transform: \"scaleX(1)\" }],\n { duration: lineDuration, easing: EASE_IN_OUT, fill: \"forwards\" },\n )\n\n animRef.current = anim\n anim.onfinish = () => {\n animRef.current = null\n if (el) {\n const line = el.querySelector(\"span:last-child\")\n if (line) line.remove()\n cleanup()\n }\n onAnimationEnd?.()\n }\n anim.oncancel = cleanup\n\n return\n }\n\n if (animation === \"letterDrop\") {\n const text = String(current)\n if (!text) return\n\n if (prefersReducedMotion()) {\n const el = ref.current!\n const anim = el.animate([{ opacity: 0 }, { opacity: 1 }], { duration: 200, fill: \"forwards\" })\n anim.onfinish = () => onAnimationEnd?.()\n return\n }\n\n const el = ref.current\n const runId = beginAnimationRun(el)\n const spans = appendCharSpans(el, text, (span) => {\n span.style.willChange = \"transform, opacity\"\n })\n const stagger = presetOptions?.stagger ?? Math.max(18, Math.min(45, motionDuration * 0.08))\n const last = spans.length > 0 ? spans.length - 1 : 0\n\n spans.forEach((span, i) => {\n const anim = span.animate(\n rebaseKeyframes([\n { transform: \"translateY(-24px)\", opacity: 0 },\n { transform: \"translateY(2px)\", opacity: 1, offset: 0.78 },\n { transform: \"translateY(0)\" },\n ], presetOptions),\n { duration: motionDuration, delay: i * stagger, fill: \"forwards\", easing: SPRING },\n )\n anim.oncancel = () => {\n if (!isActiveAnimationRun(el, runId)) return\n spans.forEach((item) => { item.style.willChange = \"auto\" })\n el.textContent = text\n }\n if (i === last) {\n anim.onfinish = () => {\n if (!isActiveAnimationRun(el, runId)) return\n spans.forEach((item) => { item.style.willChange = \"auto\" })\n el.textContent = text\n onAnimationEnd?.()\n }\n }\n })\n\n return\n }\n\n if (animation === \"glitch\") {\n const text = String(current)\n if (!text) return\n\n if (prefersReducedMotion()) {\n const el = ref.current!\n const anim = el.animate([{ opacity: 0 }, { opacity: 1 }], { duration: 200, fill: \"forwards\" })\n anim.onfinish = () => onAnimationEnd?.()\n return\n }\n\n const el = ref.current\n const runId = beginAnimationRun(el)\n\n const glitched = [1, 2, 3, 4, 5].map((i) => `${i}px ${i}px`).join(\", \")\n const clean = [0, 0, 0, 0, 0].map(() => \"0px 0px\").join(\", \")\n\n const anim = el.animate(\n rebaseKeyframes([\n { textShadow: glitched, transform: \"translate(-6px, -6px) skewX(-2deg)\" },\n { textShadow: clean, transform: \"translate(0, 0) skewX(0deg)\" },\n ], presetOptions),\n { duration: motionDuration, easing: EASE_IN_OUT, fill: \"forwards\" },\n )\n\n animRef.current = anim\n const cleanup = () => {\n if (!isActiveAnimationRun(el, runId)) return\n el.style.textShadow = \"\"\n el.style.transform = \"\"\n animRef.current = null\n }\n anim.onfinish = () => {\n cleanup()\n onAnimationEnd?.()\n }\n anim.oncancel = cleanup\n\n return\n }\n\n if (animation === \"textReveal\") {\n if (prefersReducedMotion()) {\n const el = ref.current!\n const anim = el.animate([{ opacity: 0 }, { opacity: 1 }], { duration: 200, fill: \"forwards\" })\n anim.onfinish = () => onAnimationEnd?.()\n return\n }\n\n const el = ref.current\n const runId = beginAnimationRun(el)\n const previousPosition = el.style.position\n const previousOverflow = el.style.overflow\n\n const curtainColor = getComputedStyle(el).backgroundColor\n const curtain = document.createElement(\"div\")\n curtain.style.position = \"absolute\"\n curtain.style.top = \"0\"\n curtain.style.left = \"0\"\n curtain.style.width = \"100%\"\n curtain.style.height = \"100%\"\n curtain.style.background = curtainColor !== \"rgba(0, 0, 0, 0)\" && curtainColor !== \"transparent\" ? curtainColor : \"currentColor\"\n curtain.style.transform = \"translateX(-100%)\"\n curtain.style.pointerEvents = \"none\"\n\n el.style.position = \"relative\"\n el.style.overflow = \"hidden\"\n el.appendChild(curtain)\n\n const anim = curtain.animate(\n [{ transform: \"translateX(-100%)\" }, { transform: \"translateX(100%)\" }],\n { duration: motionDuration, easing: EASE_IN_OUT, fill: \"forwards\" },\n )\n\n const cleanup = () => {\n if (!isActiveAnimationRun(el, runId)) return\n curtain.remove()\n el.style.position = previousPosition\n el.style.overflow = previousOverflow\n animRef.current = null\n }\n\n animRef.current = anim\n anim.onfinish = () => {\n cleanup()\n onAnimationEnd?.()\n }\n anim.oncancel = cleanup\n\n return\n }\n\n if (animation === \"liftReveal\") {\n const oldText = capturedPrevRef.current !== undefined ? String(capturedPrevRef.current) : null\n const newText = String(current)\n if (!oldText) return\n\n const el = ref.current\n const runId = beginAnimationRun(el)\n const previousOverflow = el.style.overflow\n el.style.overflow = \"hidden\"\n const { oldEl: top, newEl: bottom, cleanup } = prepareStableTextSwap(el, oldText, newText, runId)\n bottom.style.transform = \"translateY(100%)\"\n top.animate(\n [{ transform: \"translateY(0)\" }, { transform: \"translateY(-100%)\" }],\n { duration: motionDuration, easing, fill: \"forwards\" },\n )\n\n const anim = bottom.animate(\n [{ transform: \"translateY(100%)\" }, { transform: \"translateY(0)\" }],\n { duration: motionDuration, easing, fill: \"forwards\" },\n )\n\n animRef.current = anim\n anim.onfinish = () => {\n animRef.current = null\n cleanup()\n el.style.overflow = previousOverflow\n onAnimationEnd?.()\n }\n anim.oncancel = () => {\n cleanup()\n el.style.overflow = previousOverflow\n }\n\n return\n }\n\n if (animation === \"scatter\") {\n const text = String(current)\n if (!text) return\n\n if (prefersReducedMotion()) {\n const el = ref.current!\n const anim = el.animate([{ opacity: 0 }, { opacity: 1 }], { duration: 200, fill: \"forwards\" })\n anim.onfinish = () => onAnimationEnd?.()\n return\n }\n\n const el = ref.current\n const runId = beginAnimationRun(el)\n const spans = appendCharSpans(el, text)\n const order = spans.map((_, i) => i).sort(() => Math.random() - 0.5)\n const staggerGap = motionDuration / spans.length\n let remaining = spans.length\n\n if (remaining === 0) {\n onAnimationEnd?.()\n return\n }\n\n spans.forEach((span, i) => {\n const anim = span.animate(\n rebaseKeyframes([{ opacity: 0 }, { opacity: 1 }], presetOptions),\n { duration: motionDuration, delay: order[i] * staggerGap, fill: \"forwards\" },\n )\n anim.oncancel = () => {\n if (!isActiveAnimationRun(el, runId)) return\n el.textContent = text\n }\n anim.onfinish = () => {\n remaining -= 1\n if (remaining === 0) {\n if (!isActiveAnimationRun(el, runId)) return\n el.textContent = text\n onAnimationEnd?.()\n }\n }\n })\n\n return\n }\n\n if (animation === \"typewriter\") {\n const text = String(current)\n if (!text) return\n\n const numChars = text.length || 1\n const el = ref.current\n const host = findTextHost(el)\n const runId = beginAnimationRun(el)\n const measure = measureInlineText(el, text)\n const origDisplay = el.style.display\n\n el.style.display = \"inline-flex\"\n host.textContent = \"\"\n\n const textSpan = document.createElement(\"span\")\n textSpan.textContent = text\n textSpan.style.overflow = \"hidden\"\n textSpan.style.whiteSpace = \"nowrap\"\n textSpan.style.width = \"0\"\n textSpan.style.willChange = \"width\"\n\n const cursor = document.createElement(\"span\")\n cursor.textContent = \"|\"\n cursor.style.display = \"inline-block\"\n cursor.style.fontWeight = \"100\"\n cursor.style.marginLeft = \"1px\"\n cursor.style.opacity = \"0\"\n\n host.appendChild(textSpan)\n el.appendChild(cursor)\n\n const revealAnim = textSpan.animate(\n [{ width: \"0\" }, { width: `${measure.width}px` }],\n { duration: motionDuration, easing: `steps(${numChars}, end)`, fill: \"forwards\" },\n )\n\n const showCursor = () => { cursor.style.opacity = \"1\" }\n const firstCharTime = Math.max(1, motionDuration / numChars)\n const showTimer = setTimeout(showCursor, firstCharTime)\n\n const cursorBlink = cursor.animate(\n [\n { opacity: 1, offset: 0 },\n { opacity: 0.3, offset: 0.5 },\n { opacity: 1, offset: 1 },\n ],\n { duration: 500, iterations: Infinity },\n )\n\n const finish = () => {\n clearTimeout(showTimer)\n cursorBlink.cancel()\n cursor.animate([{ opacity: 1 }, { opacity: 0 }], { duration: 120, fill: \"forwards\" })\n }\n\n const cleanup = () => {\n if (!isActiveAnimationRun(el, runId)) return\n finish()\n host.textContent = text\n el.style.display = origDisplay\n }\n\n animRef.current = revealAnim\n revealAnim.onfinish = () => {\n animRef.current = null\n finish()\n setTimeout(() => {\n if (animRef.current) return\n host.textContent = text\n el.style.display = origDisplay\n onAnimationEnd?.()\n }, 150)\n }\n revealAnim.oncancel = cleanup\n\n return\n }\n\n if (animation === \"splash\") {\n const text = String(current)\n if (!text) return\n\n if (prefersReducedMotion()) {\n const el = ref.current!\n const anim = el.animate([{ opacity: 0 }, { opacity: 1 }], { duration: 200, fill: \"forwards\" })\n anim.onfinish = () => onAnimationEnd?.()\n return\n }\n\n const el = ref.current\n const runId = beginAnimationRun(el)\n const spans = appendCharSpans(el, text)\n let remaining = spans.length\n\n if (remaining === 0) {\n onAnimationEnd?.()\n return\n }\n\n spans.forEach((span, i) => {\n const x = (Math.random() - 0.5) * 32\n const y = (Math.random() - 0.5) * 32\n const r = (Math.random() - 0.5) * 8\n\n const anim = span.animate(\n rebaseKeyframes([\n { transform: `translate(${x}px, ${y}px) rotate(${r}deg)`, opacity: 0 },\n { transform: \"translate(0, 0) rotate(0deg)\", opacity: 1 },\n ], presetOptions),\n {\n duration: motionDuration * 0.8,\n delay: Math.random() * motionDuration * 0.3,\n fill: \"forwards\",\n easing: EASE_IN,\n },\n )\n anim.oncancel = () => {\n if (!isActiveAnimationRun(el, runId)) return\n el.textContent = text\n }\n anim.onfinish = () => {\n remaining -= 1\n if (remaining === 0) {\n if (!isActiveAnimationRun(el, runId)) return\n el.textContent = text\n onAnimationEnd?.()\n }\n }\n })\n\n return\n }\n\n if (animation === \"jitter\") {\n const text = String(current)\n if (!text) return\n\n if (prefersReducedMotion()) {\n const el = ref.current!\n const anim = el.animate([{ opacity: 0 }, { opacity: 1 }], { duration: 200, fill: \"forwards\" })\n anim.onfinish = () => onAnimationEnd?.()\n return\n }\n\n const el = ref.current\n const runId = beginAnimationRun(el)\n const spans = appendCharSpans(el, text)\n let remaining = spans.length\n\n if (remaining === 0) {\n onAnimationEnd?.()\n return\n }\n\n spans.forEach((span, i) => {\n const x = (Math.random() - 0.5) * 8\n const y = (Math.random() - 0.5) * 8\n const r = (Math.random() - 0.5) * 12\n\n const anim = span.animate(\n [\n { transform: \"translate(0, 0) rotate(0deg)\" },\n { transform: `translate(${x}px, ${y}px) rotate(${r}deg)`, offset: 0.15 },\n { transform: `translate(${-x * 0.6}px, ${-y * 0.6}px) rotate(${-r * 0.6}deg)`, offset: 0.35 },\n { transform: `translate(${x * 0.3}px, ${y * 0.3}px) rotate(${r * 0.3}deg)`, offset: 0.55 },\n { transform: `translate(${-x * 0.1}px, ${-y * 0.1}px) rotate(${-r * 0.1}deg)`, offset: 0.75 },\n { transform: \"translate(0, 0) rotate(0deg)\" },\n ],\n {\n duration: motionDuration * 0.6,\n delay: Math.random() * motionDuration * 0.2,\n fill: \"forwards\",\n easing: EASE_IN_OUT,\n },\n )\n anim.oncancel = () => {\n if (!isActiveAnimationRun(el, runId)) return\n el.textContent = text\n }\n anim.onfinish = () => {\n remaining -= 1\n if (remaining === 0) {\n if (!isActiveAnimationRun(el, runId)) return\n el.textContent = text\n onAnimationEnd?.()\n }\n }\n })\n\n return\n }\n\n if (animation === \"popUp\") {\n if (prefersReducedMotion()) {\n const el = ref.current!\n const anim = el.animate([{ opacity: 0 }, { opacity: 1 }], { duration: 200, fill: \"forwards\" })\n anim.onfinish = () => onAnimationEnd?.()\n return\n }\n\n const el = ref.current\n const runId = beginAnimationRun(el)\n const computedColor = getComputedStyle(el).color\n const shadows = Array.from({ length: 9 }, (_, i) => `0 ${i + 1}px 0 ${computedColor}`).join(\", \")\n const anim = el.animate(\n rebaseKeyframes([\n { transform: \"translateY(0)\", textShadow: \"none\" },\n { transform: \"translateY(-14px)\", textShadow: `${shadows}, 0 14px 16px rgba(0,0,0,0.2)`, offset: 0.55 },\n { transform: \"translateY(0)\", textShadow: \"none\" },\n ], presetOptions),\n { duration: motionDuration, easing: SPRING },\n )\n const cleanup = () => {\n if (!isActiveAnimationRun(el, runId)) return\n el.style.textShadow = \"\"\n el.style.willChange = \"\"\n animRef.current = null\n }\n animRef.current = anim\n anim.onfinish = () => { cleanup(); onAnimationEnd?.() }\n anim.oncancel = cleanup\n return\n }\n\n if (animation === \"jello\") {\n if (prefersReducedMotion()) {\n const el = ref.current!\n const anim = el.animate([{ opacity: 0 }, { opacity: 1 }], { duration: 200, fill: \"forwards\" })\n anim.onfinish = () => onAnimationEnd?.()\n return\n }\n\n const el = ref.current\n const runId = beginAnimationRun(el)\n const anim = el.animate(\n rebaseKeyframes([\n { transform: \"scale(1, 1)\" },\n { transform: \"scale(1.08, 0.94)\", offset: 0.167 },\n { transform: \"scale(0.96, 1.06)\", offset: 0.333 },\n { transform: \"scale(1.04, 0.97)\", offset: 0.5 },\n { transform: \"scale(0.98, 1.02)\", offset: 0.667 },\n { transform: \"scale(1.02, 0.99)\", offset: 0.833 },\n { transform: \"scale(1, 1)\" },\n ], presetOptions),\n { duration: motionDuration, easing: SPRING },\n )\n const cleanup = () => {\n if (!isActiveAnimationRun(el, runId)) return\n el.style.willChange = \"\"\n animRef.current = null\n }\n animRef.current = anim\n anim.onfinish = () => { cleanup(); onAnimationEnd?.() }\n anim.oncancel = cleanup\n return\n }\n\n if (animation === \"scramble\") {\n const text = String(current)\n if (!text) return\n\n if (prefersReducedMotion()) {\n const el = ref.current!\n const anim = el.animate([{ opacity: 0 }, { opacity: 1 }], { duration: 200, fill: \"forwards\" })\n anim.onfinish = () => onAnimationEnd?.()\n return\n }\n\n const chars = \"!@#$%^&*()_+-=[]{}|;:,.<>?/~`¡™£¢∞§¶•ªº–≠åß∂ƒ©˙∆˚¬…æ≈ç√∫˜µ≤≥÷/░▒▓<>\"\n const el = ref.current\n const host = findTextHost(el!)\n const runId = beginAnimationRun(el)\n\n const finalChars: string[] = []\n const spans = appendCharSpans(host, text, (span, char) => {\n finalChars.push(char)\n span.style.willChange = \"transform, opacity\"\n })\n const stepMs = 42\n const totalMs = Math.max(280, Math.min(motionDuration + spans.length * 20, stepMs * Math.max(7, spans.length)))\n const startTime = performance.now()\n\n function tick(now: number) {\n if (!isActiveAnimationRun(el, runId)) return\n const elapsed = now - startTime\n if (elapsed >= totalMs) {\n spans.forEach((span, i) => {\n span.textContent = finalChars[i]\n span.style.willChange = \"auto\"\n })\n host.textContent = text\n rafRef.current = null\n onAnimationEnd?.()\n return\n }\n const progress = elapsed / totalMs\n const randomizeThisFrame = Math.floor(elapsed / stepMs) % 2 === 0\n spans.forEach((span, i) => {\n const resolveAt = (i / Math.max(1, spans.length)) * 0.72\n if (progress >= resolveAt) {\n span.textContent = finalChars[i]\n } else if (randomizeThisFrame) {\n span.textContent = chars[Math.floor(Math.random() * chars.length)]\n }\n })\n rafRef.current = requestAnimationFrame(tick)\n }\n\n rafRef.current = requestAnimationFrame(tick)\n return\n }\n\n if (animation === \"wave\") {\n const text = String(current)\n if (!text) return\n if (prefersReducedMotion()) {\n const anim = ref.current.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: motionDuration / 2, easing: SPRING, fill: \"forwards\" },\n )\n animRef.current = anim\n anim.onfinish = () => { ref.current!.style.textShadow = \"\"; animRef.current = null; onAnimationEnd?.() }\n return\n }\n\n const spans = appendCharSpans(ref.current, text)\n const stagger = presetOptions?.stagger ?? Math.max(45, Math.min(90, motionDuration * 0.08))\n const last = spans.length > 0 ? spans.length - 1 : 0\n spans.forEach((span, i) => {\n const anim = span.animate(\n rebaseKeyframes([\n { transform: \"translateY(0)\", opacity: 1 },\n { transform: \"translateY(-10px)\", opacity: 1, offset: 0.5 },\n { transform: \"translateY(0)\", opacity: 1 },\n ], presetOptions),\n { duration: Math.max(520, motionDuration), delay: i * stagger, iterations: 1, easing: SMOOTH },\n )\n if (i === 0) animRef.current = anim\n if (i === last) anim.onfinish = () => {\n ref.current!.textContent = text\n onAnimationEnd?.()\n }\n })\n return\n }\n\n if (animation === \"strikeThrough\") {\n const oldText = capturedPrevRef.current !== undefined ? String(capturedPrevRef.current) : null\n const newText = String(current)\n if (!oldText || !newText) return\n const el = ref.current\n const runId = beginAnimationRun(el)\n reserveStableTextSize(el, oldText, newText)\n\n const fontSize = Number.parseFloat(getComputedStyle(el).fontSize) || 16\n const lineThickness = Math.max(3, Math.round(fontSize * 0.12))\n\n const oldSpan = document.createElement(\"span\")\n oldSpan.textContent = oldText\n oldSpan.style.display = \"inline-block\"\n oldSpan.style.position = \"relative\"\n oldSpan.style.whiteSpace = \"pre\"\n\n const line = document.createElement(\"span\")\n line.style.position = \"absolute\"\n line.style.left = \"0\"\n line.style.top = \"50%\"\n line.style.width = \"100%\"\n line.style.height = `${lineThickness}px`\n line.style.marginTop = `${-Math.round(lineThickness / 2)}px`\n line.style.background = \"currentColor\"\n line.style.borderRadius = \"2px\"\n line.style.transform = \"scaleX(0)\"\n line.style.transformOrigin = \"0% 50%\"\n\n oldSpan.appendChild(line)\n el.textContent = \"\"\n el.appendChild(oldSpan)\n\n const drawTime = motionDuration * 0.35\n const crossfadeTime = motionDuration * 0.65\n\n line.animate(\n [{ transform: \"scaleX(0)\" }, { transform: \"scaleX(1)\" }],\n { duration: drawTime, easing: SMOOTH, fill: \"forwards\" },\n )\n\n const newSpan = document.createElement(\"span\")\n newSpan.textContent = newText\n newSpan.style.display = \"inline-block\"\n newSpan.style.whiteSpace = \"pre\"\n newSpan.style.position = \"absolute\"\n newSpan.style.left = \"0\"\n newSpan.style.top = \"0\"\n newSpan.style.opacity = \"0\"\n el.appendChild(newSpan)\n\n oldSpan.animate(\n [{ opacity: 1 }, { opacity: 0 }],\n { duration: crossfadeTime, delay: drawTime, easing: EASE_IN, fill: \"forwards\" },\n )\n\n const fadeIn = newSpan.animate(\n [{ opacity: 0 }, { opacity: 1 }],\n { duration: crossfadeTime, delay: drawTime, easing: SPRING, fill: \"forwards\" },\n )\n\n const trackAnim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: drawTime + crossfadeTime + 50, fill: \"forwards\" })\n animRef.current = trackAnim\n\n fadeIn.onfinish = () => {\n el.textContent = newText\n animRef.current = null\n onAnimationEnd?.()\n }\n trackAnim.oncancel = () => {\n if (!isActiveAnimationRun(el, runId)) return\n el.textContent = newText\n }\n\n return\n }\n\n if (animation === \"odometer\") {\n const text = String(current)\n if (!text) return\n const host = findTextHost(ref.current!)\n const inners = appendRollingCharSlots(host, text)\n const stagger = presetOptions?.stagger ?? 40\n inners.forEach((s, i) => {\n s.animate(\n [\n { transform: \"translateY(-100%)\", opacity: 0 },\n { transform: \"translateY(4px)\", opacity: 1, offset: 0.7 },\n { transform: \"translateY(0)\" },\n ],\n { duration: motionDuration * 0.5, delay: i * stagger, fill: \"forwards\", easing: SPRING },\n )\n })\n const t = setTimeout(() => {\n host.textContent = text\n onAnimationEnd?.()\n }, motionDuration * 0.5 + inners.length * stagger + 50)\n timerRef.current = t\n return\n }\n\n if (animation === \"ticker\") {\n const text = String(current)\n if (!text) return\n const host = findTextHost(ref.current!)\n const inners = appendRollingCharSlots(host, text)\n const stagger = presetOptions?.stagger ?? 30\n inners.forEach((s, i) => {\n s.animate(\n [{ transform: \"translateY(100%)\", opacity: 0 }, { transform: \"translateY(0)\", opacity: 1 }],\n { duration: motionDuration * 0.6, delay: i * stagger, fill: \"forwards\", easing: SPRING },\n )\n })\n const t = setTimeout(() => {\n host.textContent = text\n onAnimationEnd?.()\n }, motionDuration * 0.6 + inners.length * stagger + 50)\n timerRef.current = t\n return\n }\n\n if (animation === \"fadeSwap\") {\n const oldText = effectivePrev !== undefined ? String(effectivePrev) : \"\"\n const newText = String(current)\n if (!oldText && !newText) return\n\n const el = ref.current\n const runId = beginAnimationRun(el)\n const { oldEl, newEl, cleanup } = prepareStableTextSwap(el, oldText, newText, runId)\n oldEl.style.opacity = \"1\"\n oldEl.style.transform = \"translateY(0)\"\n oldEl.style.filter = \"blur(0px)\"\n oldEl.style.willChange = \"transform, opacity, filter\"\n newEl.style.opacity = \"0\"\n newEl.style.transform = \"translateY(0.16em)\"\n newEl.style.filter = \"blur(1.8px)\"\n newEl.style.willChange = \"transform, opacity, filter\"\n\n const outDuration = motionDuration * 0.42\n const inDelay = Math.min(80, Math.max(30, motionDuration * 0.12))\n const inDuration = motionDuration * 0.62\n const totalDuration = Math.max(outDuration, inDelay + inDuration)\n\n oldEl.animate(\n [\n { opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\" },\n { opacity: 0.72, transform: \"translateY(-0.04em)\", filter: \"blur(0.35px)\", offset: 0.58 },\n { opacity: 0, transform: \"translateY(-0.14em)\", filter: \"blur(1.5px)\" },\n ],\n { duration: outDuration, easing: SMOOTH, fill: \"forwards\" },\n )\n\n newEl.animate(\n [\n { opacity: 0, transform: \"translateY(0.16em)\", filter: \"blur(1.8px)\" },\n { opacity: 0.78, transform: \"translateY(0.025em)\", filter: \"blur(0.35px)\", offset: 0.55 },\n { opacity: 1, transform: \"translateY(0)\", filter: \"blur(0px)\" },\n ],\n { duration: inDuration, delay: inDelay, easing: SMOOTH, fill: \"forwards\" },\n )\n\n const anim = el.animate([{ opacity: 1 }, { opacity: 1 }], { duration: totalDuration, fill: \"forwards\" })\n animRef.current = anim\n anim.onfinish = () => {\n animRef.current = null\n cleanup()\n onAnimationEnd?.()\n }\n anim.oncancel = cleanup\n\n return\n }\n\n if (animation === \"highlight\") {\n const hlEl = ref.current\n const hlRunId = beginAnimationRun(hlEl)\n const hlColor = highlightColorProp ?? colorWithAlpha(getComputedStyle(hlEl).color, 0.55)\n const hlDuration = motionDuration\n\n const anim = hlEl.animate(\n [\n {\n backgroundImage: `linear-gradient(120deg, ${hlColor} 50%, transparent 50%)`,\n backgroundSize: \"200% 100%\",\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"100% 0\",\n },\n {\n backgroundImage: `linear-gradient(120deg, ${hlColor} 50%, transparent 50%)`,\n backgroundSize: \"200% 100%\",\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"0% 0\",\n },\n ],\n { duration: hlDuration, easing: SMOOTH, fill: \"forwards\", delay },\n )\n\n const setPersist = () => {\n hlEl.style.backgroundImage = `linear-gradient(120deg, ${hlColor} 50%, transparent 50%)`\n hlEl.style.backgroundSize = \"200% 100%\"\n hlEl.style.backgroundRepeat = \"no-repeat\"\n hlEl.style.backgroundPosition = \"0% 0\"\n }\n const clearBg = () => {\n hlEl.style.backgroundImage = \"\"\n hlEl.style.backgroundSize = \"\"\n hlEl.style.backgroundRepeat = \"\"\n hlEl.style.backgroundPosition = \"\"\n }\n\n animRef.current = anim\n anim.onfinish = () => {\n if (!isActiveAnimationRun(hlEl, hlRunId)) return\n animRef.current = null\n hlEl.style.willChange = \"auto\"\n\n if (highlightMode === \"pulse\") {\n setPersist()\n const hold = (highlightHold ?? 800)\n const fadeAnim = hlEl.animate(\n [\n { backgroundPosition: \"0% 0\" },\n { backgroundPosition: \"120% 0\" },\n ],\n { duration: Math.min(500, hold * 0.5), easing: EASE_IN, fill: \"forwards\", delay: hold },\n )\n fadeAnim.onfinish = () => { clearBg(); hlEl.style.willChange = \"auto\" }\n fadeAnim.oncancel = () => { clearBg(); hlEl.style.willChange = \"auto\" }\n } else if (highlightMode === \"erase\") {\n setPersist()\n const eraseAnim = hlEl.animate(\n [\n { backgroundPosition: \"0% 0\" },\n { backgroundPosition: \"120% 0\" },\n ],\n { duration: hlDuration * 0.7, easing: EASE_IN, fill: \"forwards\", delay: 200 },\n )\n eraseAnim.onfinish = () => { clearBg() }\n eraseAnim.oncancel = () => { clearBg() }\n } else {\n setPersist()\n }\n onAnimationEnd?.()\n }\n anim.oncancel = () => {\n clearBg()\n hlEl.style.willChange = \"auto\"\n }\n return\n }\n\n const iterations = undefined\n const anim = runAnimation(\n ref.current,\n animation,\n {\n duration: motionDuration,\n easing,\n delay,\n iterations,\n },\n activeTrigger === \"change\" ? \"change\" : \"single\",\n effectivePrev,\n current,\n highlightColorProp,\n presetOptions,\n )\n animRef.current = anim\n anim.onfinish = () => {\n animRef.current = null\n onAnimationEnd?.()\n }\n }, [activeTrigger, animation, currentRun, delay, duration, easing, finishRun, properties, value, watchedCurrent])\n\n if (phase === \"exited\" && unmountOnExit !== false) {\n return null\n }\n\n return createElement(\n as,\n {\n ref,\n className,\n style,\n onClick: hasTrigger(\"click\") || onClick ? handleClick : undefined,\n onMouseEnter: hasTrigger(\"hover\") || onHoverStart ? handleMouseEnter : undefined,\n onMouseLeave: onHoverEnd ? handleMouseLeave : undefined,\n },\n children,\n )\n})\n\nexport { AnimateText }\nexport const Animate = { Text: AnimateText }\nexport default Animate\n"]}