{"version":3,"sources":["node_modules/browser-pack/_prelude.js","components/core/JsInterop/ObservableApi/mutationObserver.ts","components/core/JsInterop/ObservableApi/observableApi.ts","components/core/JsInterop/ObservableApi/resizeObserver.ts","components/core/JsInterop/interop.ts","components/core/JsInterop/modules/components/backtopHelper.ts","components/core/JsInterop/modules/components/downloadHelper.ts","components/core/JsInterop/modules/components/export.ts","components/core/JsInterop/modules/components/iconHelper.ts","components/core/JsInterop/modules/components/imageHelper.ts","components/core/JsInterop/modules/components/inputHelper.ts","components/core/JsInterop/modules/components/mentionsHelper.ts","components/core/JsInterop/modules/components/modalHelper.ts","components/core/JsInterop/modules/components/overlay.ts","components/core/JsInterop/modules/components/overlayHelper.ts","components/core/JsInterop/modules/components/tableHelper.ts","components/core/JsInterop/modules/components/uploadHelper.ts","components/core/JsInterop/modules/dom/dragHelper.ts","components/core/JsInterop/modules/dom/eventHelper.ts","components/core/JsInterop/modules/dom/exports.ts","components/core/JsInterop/modules/dom/infoHelper.ts","components/core/JsInterop/modules/dom/manipulationHelper.ts","components/core/JsInterop/modules/dom/types.ts","components/core/JsInterop/modules/enums.ts","components/core/JsInterop/modules/stateProvider.ts","components/core/JsInterop/modules/styleHelper.ts","components/main.ts","node_modules/@ant-design/colors/dist/index.js","node_modules/@ctrl/tinycolor/dist/conversion.js","node_modules/@ctrl/tinycolor/dist/css-color-names.js","node_modules/@ctrl/tinycolor/dist/format-input.js","node_modules/@ctrl/tinycolor/dist/from-ratio.js","node_modules/@ctrl/tinycolor/dist/index.js","node_modules/@ctrl/tinycolor/dist/interfaces.js","node_modules/@ctrl/tinycolor/dist/public_api.js","node_modules/@ctrl/tinycolor/dist/random.js","node_modules/@ctrl/tinycolor/dist/readability.js","node_modules/@ctrl/tinycolor/dist/to-ms-filter.js","node_modules/@ctrl/tinycolor/dist/util.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","infoHelper_1","mutationObserver","create","key","invoker","isDotNetInvoker","observer","MutationObserver","mutations","observerCallback","mutationObservers","set","observe","element","options","get","domElement","infoHelper","disconnect","this","dispose","entriesJson","JSON","stringify","invokeMethodAsync","Map","resizeObserver_1","mutationObserver_1","__createBinding","ResizeObserverEntry","resizeObserver","isResizeObserverSupported","window","ResizeObserver","entries","observerCallBack","resizeObservers","unobserve","mappedEntries_1","Array","forEach","entry","mEntry","borderBoxSize","blockSize","inlineSize","contentBoxSize","contentRect","x","y","width","height","top","right","bottom","left","push","stateProvider_1","exports_1","observable","styleHelper_1","export_1","dragHelper_1","colors_1","log","text","console","backtopHelper","backTop","target","dom","domInfoHelper","domManipulationHelper","slideTo","scrollTop","downloadHelper","triggerFileDownload","fileName","url","anchorElement","document","createElement","href","download","click","remove","backtopHelper_1","overlayHelper_1","uploadHelper_1","downloadHelper_1","mentionsHelper_1","modalHelper_1","inputHelper_1","tableHelper_1","iconHelper_1","imageHelper_1","iconHelper","createIconFromfontCN","scriptUrl","script","querySelector","setAttribute","body","appendChild","imageHelper","imgDragAndDrop","mouseX","mouseY","imgX","imgY","isDragging","handleMouseMove","event","deltaX","clientX","deltaY","clientY","style","handleMouseUp","cursor","removeEventListener","addEventListener","offsetLeft","offsetTop","preventDefault","documentElement","observableApi_1","inputHelper","getTextAreaInfo","result","scrollHeight","currentStyle","parseFloat","getComputedStyle","defaultView","getPropertyValue","Object","is","NaN","registerResizeTextArea","minRows","maxRows","objReference","state","objReferenceDict","id","eventCallbackRegistry","resizeTextArea","resize","disposeResizeTextArea","rowHeight","oldHeight","rows","newHeight","dims","offsetHeight","oldRows","Math","trunc","max","overflowY","scrollWidth","setSelectionStart","position","value","selectionStart","selectionEnd","mentionsHelper","getTextarea","textAreaTag","textarea","tagName","allTextareas","getElementsByTagName","setPopShowFlag","show","isPopShowFlag","setEditorKeyHandler","Mentions","_this","onkeydown","ev","__awaiter","_a","sent","getProp","propName","getCursorXY","format","replace","textArea","inputorValue","pos","start_range","slice","end_range","substring","html","div_mirror","flag","className","innerHTML","parentNode","append","scrollLeft","modalHelper","focusDialog","selector","count","htmlElement","ele","hasAttribute","activeElement","blur","setTimeout","focus","getActiveElement","destroyAllDialog","querySelectorAll","removeChild","Placement","TriggerBoundyAdjustMode","Overlay","getFirstValidChild","triggerIsWrappedInDiv","childNodes","childElement","setVerticalCalculation","placement","LeftTop","RightTop","triggerTop","triggerHeight","container","trigger","overlayHeight","constraints","reversePositionValue","BottomLeft","Bottom","BottomRight","verticalOffset","Left","Right","TopLeft","Top","TopRight","triggerBottom","LeftBottom","RightBottom","setHorizontalCalculation","triggerLeft","triggerWidth","overlayWidth","horizontalOffset","triggerRight","containerDimension","overlayDimension","prototype","removeHiddenClass","end","overlay","indexOf","start","lastIndexOf","substr","classList","calculateScrollBarSizes","isContainerBody","scrollbarSize","horizontalHeight","innerHeight","clientHeight","verticalWidth","innerWidth","clientWidth","offsetWidth","blazorId","resizing","bind","mutating","attributes","characterData","childList","subtree","attributeOldValue","characterDataOldValue","onScroll","diff","isTriggerFixed","lastScrollPosition","pageYOffset","containerInfo","overlayInfo","selectedVerticalPosition","sanitizedPosition","getAdjustedBottom","calculatePosition","overlayPreset","duringInit","lastStyleMutation","cssText","contains","applyLocation","firstTime","offsetParent","recentPlacement","getKeyElementDimensions","restoreInitialPlacement","calculationsToPerform","getNominalPositions","size","adjustToContainerBoundaries","sanitizeCalculatedPositions","triggerPrefixCls","add","__assign","zIndex","getMaxZIndex","selectedHorizontalPosition","getAdjustedRight","containerBoundarySize","getContainerBoundarySize","directionsToCalculate","Set","boundyAdjustMode","None","horizontalPosition","getHorizontalPosition","verticalPosition","getVerticalPosition","initialPlacement","appliedStylePositionMap","horizontal","vertical","verticalCalculation","horizontalCalculation","logToConsole","extraMessage","info","parentInfo","parentElement","containerId","absoluteTop","triggerInfo","absoluteLeft","triggerHtml","outerHTML","class","appliedCssPosition","overlay_style_top","overlay_style_bottom","overlay_style_left","overlay_style_right","pageXOffset","containerIsBody","scrollbars","overlayConstraints","placment","applyPlacement","stringMach","currentPlacement","newPlacement","getInfo","triggerPosition","clientTop","clientLeft","has","adjustVerticalToContainerBoundaries","adjustHorizontalToContainerBoundaries","setBodyBoundayrSize","getWindow","scroll","getScroll","bodyBoundarySize","verticalScrollBasedOnParent","horizontalScrollBasedOnParent","InScroll","parentIsInsignificant","getOverlayVisibleHeight","visibleIn","boundary","getOverlayVisibleWidth","positionCache","selectedPositionCache","placementCache","horizontalCalculationCache","visibleWidthBeforeAdjustment","visibleWidthInBodyBeforeAdjustment","visibleWidthAfterAdjustment","visibleWidthInBodyAfterAdjustment","overlayFitsContainer","isContainerOverBody","getHorizontalAdjustment","verticalCalculationCache","visibleHeightBeforeAdjustment","visibleHeightInBodyBeforeAdjustment","visibleHeightAfterAdjustment","visibleHeightInBodyAfterAdjustment","getVerticalAdjustment","type","endExpressedAsLeft","endExpressedAsTop","reverseVerticalPlacementMap","reverseHorizontalPlacementMap","arrowCenterPlacementMatch","triggerBoundyAdjustMode","findAncestorWithZIndex","arrowPointAtCenter","isFixedPosition","overlay_1","overlayHelper","addOverlayToContainer","overlaySelector","triggerSelector","containerSelector","overlayTop","overlayLeft","overlayPresets","overlayElement","containerElement","triggerElement","addElementTo","overlayRegistry","updateOverlayPosition","deleteOverlayFromContainer","addPreventEnterOnOverlayVisible","eventHelper","preventKeyOnCondition","removePreventEnterOnOverlayVisible","tableHelper","bindTableScroll","bodyRef","tableRef","headerRef","scrollX","scrollY","resizable","bindScroll","SetScrollPositionClassName","enableColumnResizing","unbindTableScroll","pingLeft","pingRight","abs","tableElement","cols","tHead","th","col","handle","handleMouseDown","evt","stopPropagation","startPageX","touches","pageX","originalColumnWidth","rtlMultiplier","updatedColumnWidth","newPageX","nextWidth","TouchEvent","passive","uploadHelper","addFileClickEventListener","btn","fileClickEvent","removeFileClickEventListener","fileId","currentTarget","nodeValue","getElementById","clearFile","getFileInfo","files","fileInfo","file","objectUrl","getObjectURL","name","objectURL","undefined","URL","createObjectURL","webkitURL","uploadFile","index","data","headers","instance","percentMethod","successMethod","errorMethod","method","formData","FormData","req","XMLHttpRequest","onreadystatechange","readyState","status","responseText","upload","onprogress","percent","floor","loaded","onerror","open","header","setRequestHeader","send","throttle","fn","threshold","timeout","Date","args","_i","arguments","curTime","clearTimeout","apply","eventMap","defaultOptions","inViewport","Dragger","getContainerPos","rect","_container","getBoundingClientRect","bindDrag","_trigger","_options","onMousedown","onMouseup","onMousemove","onResize","unbindDrag","resetContainerStyle","_style","_isFirst","dragInViewport","_state","isInDrag","mX","mY","domMaxY","domMaxX","getAttribute","domStartX","domStartY","newDomX","nowX","nowY","disX","disY","newDomY","margin","paddingBottom","parseInt","assign","enableDraggable","dragger","disableDraggable","resetModalPosition","triggerEvent","eventType","eventName","createEvent","initEvent","dispatchEvent","addDomEventListener","callback","k","obj","json","v","Node","Window","_id","debounce","addDomEventListenerToFirstChild","firstElementChild","removeDomEventListener","addPreventKeys","inputElement","keys","map","toUpperCase","preventKeys","check","removePreventKeys","func","wait","immediate","context","callNow","manipulationHelper_1","eventHelper_1","domTypes","absolutePosition","getElementAbsolutePos","round","res","viewportElement","box","getFirstChildDomInfo","hasFocus","getInnerText","innerText","from","reduce","node","nodeName","toLowerCase","zIndexAsString","Number","isNaN","getElementsInfo","elements","infos","el","enums","cachedScrollBarSize","scrollIds","manipulationHelper","addElementToBody","delElementFromBody","addElement","elementSelector","prepend","parent","insertBefore","firstChild","delElementFrom","delElement","setDomAttribute","copyElement","copyElementAsRichText","copy","selection","getSelection","range","rangeCount","removeAllRanges","createRange","selectNode","addRange","successful","execCommand","err","navigator","clipboard","writeText","then","error","fallbackCopyTextToClipboard","select","msg","noScroll","option","FocusBehavior","FocusAtLast","HTMLElement","preventScroll","HTMLInputElement","HTMLTextAreaElement","FocusAndSelectAll","FocusAtFirst","setSelectionRange","scrollTo","scrollIntoView","behavior","block","inline","smoothScrollTo","duration","perTick","to","cancelAnimationFrame","requestAnimationFrame","targetPageY","timer","setInterval","currentY","speed","ceil","clearInterval","invokeTabKey","currInput","inputs","next","disableBodyScroll","oldBodyCache","scrollBarSize","oldBodyCacheStack","getScrollBarSize","styleHelper","css","hasScrollbar","overflow","addCls","enableBodyScroll","force","pop","_b","_c","removeCls","fresh","outer","widthContained","inner","outerStyle","pointerEvents","visibility","widthScroll","__esModule","State","disposeObj","objReferenceName","getInstance","clsName","addClsToFirstChild","removeClsFromFirstChild","matchMedia","query","matches","getStyle","styleProp","cssAttributes","split","cssAttribute","attribute","setProperty","hasOwnProperty","interop","AntDesign","defineProperty","tinycolor","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","opacity","toHsv","_ref","g","b","hsv","rgbToHsv","h","s","toHex","_ref2","concat","rgbToHex","getHue","light","hue","getSaturation","saturation","toFixed","getValue","generate","color","opts","patterns","pColor","inputToRGB","colorString","_hsv","_colorString","theme","_ref3","rgb1","backgroundColor","rgb2","amount","presetPrimaryColors","red","volcano","orange","gold","yellow","lime","green","cyan","blue","geekblue","purple","magenta","grey","presetPalettes","presetDarkPalettes","primary","numberInputToObject","parseIntFromHex","convertHexToDecimal","convertDecimalToHex","rgbaToArgbHex","rgbaToHex","hsvToRgb","hslToRgb","rgbToHsl","rgbToRgb","util_1","hue2rgb","q","d","toString","val","bound01","min","l","mod","allow3Char","hex","pad2","startsWith","charAt","join","allow4Char","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gray","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellowgreen","isValidCSSUnit","stringInputToObject","conversion_1","css_color_names_1","rgb","ok","String","convertToPercentage","boundAlpha","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","RegExp","rgba","hsl","hsla","hsva","hex3","hex6","hex4","hex8","trim","named","match","exec","Boolean","legacyRandom","fromRatio","index_1","ratio","newColor","TinyColor","random","format_input_1","isDark","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","R","pow","G","B","getAlpha","setAlpha","alpha","roundA","isMonochrome","toHsl","toHsvString","toHslString","toHexString","toHex8","toHex8String","toHexShortString","allowShortChar","toRgbString","toPercentageRgb","fmt","toPercentageRgbString","rnd","toName","formatSet","formattedString","hasAlpha","toNumber","clone","lighten","clamp01","brighten","darken","tint","mix","shade","desaturate","saturate","greyscale","spin","analogous","results","slices","part","ret","complement","monochromatic","modification","splitcomplement","onBackground","background","fg","bg","triad","polyad","tetrad","increment","equals","originalInput","gradientType","isValid","m","k2","desc","getOwnPropertyDescriptor","writable","configurable","enumerable","__exportStar","default","bounds","getColorInfo","bounds_1","defineColor","hueRange","randomWithin","seed","bound","sMin","lowerBounds","sMax","bMin","bMax","saturationRange","brightnessRange","totalColors","colors","colorInput","num","namedColor","find","parsed","luminosity","H","S","s1","v1","s2","v2","mostReadable","isReadable","readability","color1","color2","c1","c2","wcag2","level","readabilityLevel","baseColor","colorList","bestColor","bestScore","includeFallbackColors","colorList_1","score","toMsFilter","firstColor","secondColor","hex8String","secondHex8String","isOnePointZero","isPercentage","isPercent"],"mappings":"AAAA,CAAA,SAAAA,EAAAC,EAAAC,EAAAC,GAAA,SAAAC,EAAAC,EAAAC,GAAA,GAAA,CAAAJ,EAAAG,GAAA,CAAA,GAAA,CAAAJ,EAAAI,GAAA,CAAA,IAAAE,EAAA,YAAA,OAAAC,SAAAA,QAAA,GAAA,CAAAF,GAAAC,EAAA,OAAAA,EAAAF,EAAA,CAAA,CAAA,EAAA,GAAAI,EAAA,OAAAA,EAAAJ,EAAA,CAAA,CAAA,EAAA,MAAAK,EAAA,IAAAC,MAAA,uBAAAN,EAAA,GAAA,GAAAO,KAAA,mBAAAF,CAAA,CAAAG,EAAAX,EAAAG,GAAA,CAAAS,QAAA,EAAA,EAAAb,EAAAI,GAAA,GAAAU,KAAAF,EAAAC,QAAA,SAAAd,GAAA,OAAAI,EAAAH,EAAAI,GAAA,GAAAL,IAAAA,CAAA,CAAA,EAAAa,EAAAA,EAAAC,QAAAd,EAAAC,EAAAC,EAAAC,CAAA,CAAA,CAAA,OAAAD,EAAAG,GAAAS,OAAA,CAAA,IAAA,IAAAL,EAAA,YAAA,OAAAD,SAAAA,QAAAH,EAAA,EAAAA,EAAAF,EAAAa,OAAAX,CAAA,GAAAD,EAAAD,EAAAE,EAAA,EAAA,OAAAD,CAAA,EAAA,CAAAa,EAAA,CAAA,SAAAT,EAAAU,EAAAJ,G,uDCAC,IAAAK,EAAAX,EAAA,2BAAA,EAED,SAAAY,KAKSA,EAAAC,OAAP,SAAcC,EAAaC,EAASC,GAKhCC,GALgCD,EAAA,KAAA,IAAAA,EAAA,CAAA,EAI9BA,GACS,IAAIE,iBAAiB,SAAAC,GAAa,OAAAP,EAAiBQ,iBAAiBD,EAAlCJ,CAAA,CAAqD,CAAvF,EAEA,IAAIG,iBAAiB,SAAAC,GAAa,OAAAJ,EAAAI,CAAA,CAAkB,CAApD,EAEbP,EAAiBS,kBAAkBC,IAAIR,EAAKG,CAA5C,CACD,EAEML,EAAAW,QAAP,SAAeT,EAAaU,EAASC,GAC7BR,EAAWL,EAAiBS,kBAAkBK,IAAIZ,CAAvC,EACbG,IACEU,EAAahB,EAAAiB,WAAcF,IAAIF,CAAlB,EACjBP,EAASM,QAAQI,EAAYF,CAA7B,EAEH,EAEMb,EAAAiB,WAAP,SAAkBf,GACVG,EAAWa,KAAKT,kBAAkBK,IAAIZ,CAA3B,EACbG,GACFA,EAASY,WAAT,CAEH,EAEMjB,EAAAmB,QAAP,SAAejB,GACbgB,KAAKD,WAAWf,CAAhB,EACAgB,KAAKT,kBAAL,OAA8BP,CAA9B,CACD,EAEcF,EAAAQ,iBAAf,SAAgCD,EAAWJ,GAEnCiB,EAAcC,KAAKC,UAAUf,CAAf,EACpBJ,EAAQoB,kBAAkB,SAAUH,CAApC,CACD,EAvCcpB,EAAAS,kBAAmD,IAAIe,IAF3D9B,EAAAM,iBA0CbA,C,gPC5CCyB,G,gBAAArC,EAAA,kBAAA,GACDsC,GADUC,EAAAjC,EAAA+B,EAAA,iBAAA,QAAA,EACVrC,EAAA,oBAAA,GAASuC,EAAAjC,EAAAgC,EAAA,kBAAA,C,yHCDR,IAAA3B,EAAAX,EAAA,2BAAA,EAGDwC,EAAA,aAOA,SAAAC,KAESA,EAAAC,0BAAP,WACE,MAAO,mBAAoBC,MAC5B,EAKMF,EAAA5B,OAAP,SAAcC,EAAKC,EAASC,GAKxBC,GALwBD,EAAA,KAAA,IAAAA,EAAA,CAAA,EAItBA,GACS,IAAI4B,eAAe,SAACC,EAAS5B,GAAa,OAAAwB,EAAeK,iBAAiBD,EAAS5B,EAAzCF,CAAA,CAA2D,CAArG,EAEA,IAAI6B,eAAe,SAACC,EAAS5B,GAAa,OAAAF,EAAQ8B,EAAR5B,CAAA,CAA0B,CAApE,EAEbwB,EAAeM,gBAAgBzB,IAAIR,EAAKG,CAAxC,CACD,EAEMwB,EAAAlB,QAAP,SAAeT,EAAaU,GACpBP,EAAWwB,EAAeM,gBAAgBrB,IAAIZ,CAAnC,EACbG,IACEU,EAAahB,EAAAiB,WAAcF,IAAIF,CAAlB,EACjBP,EAASM,QAAQI,CAAjB,EAEH,EAEMc,EAAAZ,WAAP,SAAkBf,GACVG,EAAWa,KAAKiB,gBAAgBrB,IAAIZ,CAAzB,EACbG,GACFA,EAASY,WAAT,CAEH,EAEMY,EAAAO,UAAP,SAAiBlC,EAAaU,GACtBP,EAAWa,KAAKiB,gBAAgBrB,IAAIZ,CAAzB,EAEbG,IACEU,EAAahB,EAAAiB,WAAcF,IAAIF,CAAlB,EACjBP,EAAS+B,UAAUrB,CAAnB,EAEH,EAEMc,EAAAV,QAAP,SAAejB,GACbgB,KAAKD,WAAWf,CAAhB,EACAgB,KAAKiB,gBAAL,OAA4BjC,CAA5B,CACD,EAEc2B,EAAAK,iBAAf,SAAgCD,EAAS5B,EAAUF,GACjD,IACQkC,EADJlC,IACIkC,EAAgB,IAAIC,MAC1BL,EAAQM,QAAQ,SAAAC,GACd,IACQC,EADJD,IACIC,EAAS,IAAIb,EACfY,EAAME,gBACRD,EAAOC,cAAgB,CACrBC,UAAWH,EAAME,cAAcC,UAC/BC,WAAYJ,EAAME,cAAcE,UAFX,GAMrBJ,EAAMK,iBACRJ,EAAOI,eAAiB,CACtBF,UAAWH,EAAMK,eAAeF,UAChCC,WAAYJ,EAAMK,eAAeD,UAFX,GAMtBJ,EAAMM,cACRL,EAAOK,YAAc,CACnBC,EAAGP,EAAMM,YAAYC,EACrBC,EAAGR,EAAMM,YAAYE,EACrBC,MAAOT,EAAMM,YAAYG,MACzBC,OAAQV,EAAMM,YAAYI,OAC1BC,IAAKX,EAAMM,YAAYK,IACvBC,MAAOZ,EAAMM,YAAYM,MACzBC,OAAQb,EAAMM,YAAYO,OAC1BC,KAAMd,EAAMM,YAAYQ,IARL,GAcvBjB,EAAckB,KAAKd,CAAnB,EAEH,CAlCD,EAoCMrB,EAAcC,KAAKC,UAAUe,CAAf,EACpBlC,EAAQoB,kBAAkB,SAAUH,CAApC,EAEH,EArFcS,EAAAM,gBAA+C,IAAIX,IAPvD9B,EAAAmC,eA8FbA,C,gPCxGA2B,G,6BAAApE,EAAA,yBAAA,GAEAqE,GAFS9B,EAAAjC,EAAA8D,EAAA,OAAA,EACT9D,EAAAgE,WAAAtE,EAAA,+BAAA,EACAA,EAAA,uBAAA,GACAuE,GADShC,EAAAjC,EAAA+D,EAAA,eAAA,EAAe9B,EAAAjC,EAAA+D,EAAA,UAAA,EAAU9B,EAAAjC,EAAA+D,EAAA,uBAAA,EAAuB9B,EAAAjC,EAAA+D,EAAA,aAAA,EACzDrE,EAAA,uBAAA,GACAwE,GADSjC,EAAAjC,EAAAiE,EAAA,aAAA,EACTvE,EAAA,6BAAA,GAYAyE,GAXIlC,EAAAjC,EAAAkE,EAAA,eAAA,EACAjC,EAAAjC,EAAAkE,EAAA,YAAA,EACAjC,EAAAjC,EAAAkE,EAAA,aAAA,EACAjC,EAAAjC,EAAAkE,EAAA,aAAA,EACAjC,EAAAjC,EAAAkE,EAAA,gBAAA,EACAjC,EAAAjC,EAAAkE,EAAA,aAAA,EACAjC,EAAAjC,EAAAkE,EAAA,eAAA,EACAjC,EAAAjC,EAAAkE,EAAA,aAAA,EACAjC,EAAAjC,EAAAkE,EAAA,cAAA,EACAjC,EAAAjC,EAAAkE,EAAA,gBAAA,EAEJxE,EAAA,0BAAA,GAEA0E,GAFSnC,EAAAjC,EAAAmE,EAAA,iBAAA,EAAiBlC,EAAAjC,EAAAmE,EAAA,kBAAA,EAAkBlC,EAAAjC,EAAAmE,EAAA,oBAAA,EAE5CzE,EAAA,oBAAA,GAASuC,EAAAjC,EAAAoE,EAAA,WAAA,eAAA,EAETpE,EAAAqE,IAAA,SAAoBC,GAChBC,QAAQF,IAAIC,CAAZ,CACH,C,uRCtBA,IAAAP,EAAArE,EAAA,gBAAA,EAED,SAAA8E,KACSA,EAAAC,QAAP,SAAeC,GACTC,EAAMZ,EAAAa,cAAcxD,IAAIsD,CAAlB,EACNC,EACFZ,EAAAc,sBAAsBC,QAAQH,EAAII,SAAlC,EAEAhB,EAAAc,sBAAsBC,QAAQ,CAA9B,CAEH,EARU9E,EAAAwE,cASbA,C,yDCXC,SAAAQ,K,wCACUA,EAAAC,oBAAP,SAA2BC,EAAUC,GACjC,IAAMC,EAAgBC,SAASC,cAAc,GAAvB,EACtBF,EAAcG,KAAOJ,EACrBC,EAAcI,SAAWN,MAAAA,EAAAA,EAAY,GACrCE,EAAcK,MAAd,EACAL,EAAcM,OAAd,CACH,EAPS1F,EAAAgF,eAQdA,C,kNCRCW,G,gBAAAjG,EAAA,iBAAA,GACDkG,GADU3D,EAAAjC,EAAA2F,EAAA,eAAA,EACVjG,EAAA,iBAAA,GACAmG,GADS5D,EAAAjC,EAAA4F,EAAA,eAAA,EACTlG,EAAA,gBAAA,GACAoG,GADS7D,EAAAjC,EAAA6F,EAAA,cAAA,EACTnG,EAAA,kBAAA,GACAqG,GADS9D,EAAAjC,EAAA8F,EAAA,gBAAA,EACTpG,EAAA,kBAAA,GACAsG,GADS/D,EAAAjC,EAAA+F,EAAA,gBAAA,EACTrG,EAAA,eAAA,GACAuG,GADShE,EAAAjC,EAAAgG,EAAA,aAAA,EACTtG,EAAA,eAAA,GACAwG,GADSjE,EAAAjC,EAAAiG,EAAA,aAAA,EACTvG,EAAA,eAAA,GACAyG,GADSlE,EAAAjC,EAAAkG,EAAA,aAAA,EACTxG,EAAA,cAAA,GACA0G,GADSnE,EAAAjC,EAAAmG,EAAA,YAAA,EACTzG,EAAA,eAAA,GAASuC,EAAAjC,EAAAoG,EAAA,aAAA,C,yOCTR,SAAAC,K,oCACQA,EAAAC,qBAAP,SAA4BC,GAC1B,IAGMC,EAHFnB,SAASoB,cAAc,oBAAoBF,EAAS,IAApD,KAGEC,EAASnB,SAASC,cAAc,QAAvB,GACRoB,aAAa,MAAOH,CAA3B,EACAC,EAAOE,aAAa,iBAAkBH,CAAtC,EACAlB,SAASsB,KAAKC,YAAYJ,CAA1B,EACD,EATWxG,EAAAqG,WAUdA,C,sCCVA,SAAAQ,K,qCACWA,EAAAC,eAAP,SAAsB5F,GAClB,GAAI,CAACA,EACD,MAAM,IAAIrB,MAAM,oBAAV,EAGV,IAAIkH,EAAgBC,EAAgBC,EAAcC,EAC9CC,EAAa,CAAA,EAejB,SAASC,EAAgBC,GACrB,IACUC,EADNH,IACMG,EAASD,EAAME,QAAUR,EACzBS,EAASH,EAAMI,QAAUT,EAE/B9F,EAAQwG,MAAM9D,KAAOqD,EAAOK,EAAS,KACrCpG,EAAQwG,MAAMjE,IAAMyD,EAAOM,EAAS,KAE3C,CAED,SAASG,IACDR,IACAA,EAAa,CAAA,EACbjG,EAAQwG,MAAME,OAAS,OAEvBvC,SAASwC,oBAAoB,YAAaT,CAA1C,EACA/B,SAASwC,oBAAoB,UAAWF,CAAxC,EAEP,CAEDzG,EAAQ4G,iBAAiB,YAjCzB,SAAyBT,GACrBN,EAASM,EAAME,QACfP,EAASK,EAAMI,QACfR,EAAO/F,EAAQ6G,WACfb,EAAOhG,EAAQ8G,UACfb,EAAa,CAAA,EAEbjG,EAAQwG,MAAME,OAAS,WAEvBvC,SAASyC,iBAAiB,YAAaV,CAAvC,EACA/B,SAASyC,iBAAiB,UAAWH,CAArC,CACH,CAsBD,EAEAzG,EAAQ4G,iBAAiB,YAAa,SAACT,GACnCA,EAAMY,eAAN,CACH,CAFD,EAKA5F,OAAOyF,iBAAiB,WAAY,SAACT,GAC7BA,EAAM3C,SAAWW,SAASsB,MAAQU,EAAM3C,SAAWW,SAAS6C,iBAC5DP,EAAA,CAEP,CAJD,CAKH,EAtDQ3H,EAAA6G,YAuDbA,C,4ECvDC,IAAA9C,EAAArE,EAAA,gBAAA,EACDoE,EAAApE,EAAA,kBAAA,EACAyI,EAAAzI,EAAA,mCAAA,EAEA,SAAA0I,KAESA,EAAAC,gBAAP,SAAuBnH,GACrB,IACIoH,EACA3D,EAFJ,OAAKzD,IACDoH,EAAS,GACT3D,EAAMZ,EAAAa,cAAcxD,IAAIF,CAAlB,IAEVoH,EAAA,aAAyB3D,EAAI4D,cAAgB,EAEzCrH,EAAQsH,cACVF,EAAA,WAAuBG,WAAWvH,EAAQsH,aAAa,cAAhC,EACvBF,EAAA,WAAuBG,WAAWvH,EAAQsH,aAAa,cAAhC,EACvBF,EAAA,cAA0BG,WAAWvH,EAAQsH,aAAa,iBAAhC,EAC1BF,EAAA,aAAyBG,WAAWvH,EAAQsH,aAAa,gBAAhC,EACzBF,EAAA,UAAsBG,WAAWvH,EAAQsH,aAAa,aAAhC,GAEfnG,OAAOqG,mBACdJ,EAAA,WAAuBG,WAAWpD,SAASsD,YAAYD,iBAAiBxH,EAAS,IAA/C,EAAqD0H,iBAAiB,aAAtE,CAAX,EACvBN,EAAA,WAAuBG,WAAWpD,SAASsD,YAAYD,iBAAiBxH,EAAS,IAA/C,EAAqD0H,iBAAiB,aAAtE,CAAX,EACvBN,EAAA,cAA0BG,WAAWpD,SAASsD,YAAYD,iBAAiBxH,EAAS,IAA/C,EAAqD0H,iBAAiB,gBAAtE,CAAX,EAC1BN,EAAA,aAAyBG,WAAWpD,SAASsD,YAAYD,iBAAiBxH,EAAS,IAA/C,EAAqD0H,iBAAiB,eAAtE,CAAX,EACzBN,EAAA,UAAsBG,WAAWpD,SAASsD,YAAYD,iBAAiBxH,EAAS,IAA/C,EAAqD0H,iBAAiB,YAAtE,CAAX,GAGpBC,OAAOC,GAAGC,IAAKT,EAAA,SAAf,IACFA,EAAA,UAAsB,GACpBO,OAAOC,GAAGC,IAAKT,EAAA,YAAf,IACFA,EAAA,aAAyB,GACpBA,GAzBc,IA0BtB,EAEMF,EAAAY,uBAAP,SAA8B9H,EAA8B+H,EAAiBC,EAAiBC,GAC5F,GAAKA,EAaH,OATArF,EAAAsF,MAAMC,iBAAiBnI,EAAQoI,IAAMH,EACrCrF,EAAAsF,MAAMG,sBAAsBrI,EAAQoI,GAAK,SAAW,WAAclB,EAAYoB,eAAetI,EAAS+H,EAASC,CAA7C,CAAwD,EAC1HhI,EAAQ4G,iBAAiB,QAAShE,EAAAsF,MAAMG,sBAAsBrI,EAAQoI,GAAK,QAA3E,EACAnB,EAAAsB,OAAOlJ,OAAOW,EAAQoI,GAAK,UAAW,WACpClB,EAAYoB,eAAetI,EAAS+H,EAASC,CAA7C,CACD,EAAE,CAAA,CAFH,EAGAf,EAAAsB,OAAOxI,QAAQC,EAAQoI,GAAK,UAAWpI,CAAvC,EACAkH,EAAYoB,eAAetI,EAAS+H,EAASC,CAA7C,EACAhI,EAAQwG,MAAM+B,OAAS,OAChBjI,KAAK6G,gBAAgBnH,CAArB,EAZPM,KAAKkI,sBAAsBxI,CAA3B,CAcH,EAEMkH,EAAAsB,sBAAP,SAA6BxI,GAC3BA,EAAQ2G,oBAAoB,QAAS/D,EAAAsF,MAAMG,sBAAsBrI,EAAQoI,GAAK,QAA9E,EACAnB,EAAAsB,OAAO/G,UAAUxB,EAAQoI,GAAK,UAAWpI,CAAzC,EACA4C,EAAAsF,MAAMC,iBAAiBnI,EAAQoI,IAAM,KACrCxF,EAAAsF,MAAMG,sBAAsBrI,EAAQoI,GAAK,SAAW,IACrD,EAEMlB,EAAAoB,eAAP,SAAsBtI,EAA8B+H,EAAiBC,GACnE,IAGIS,EAEAC,EAMAC,EAGAC,EAdAC,EAAOvI,KAAK6G,gBAAgBnH,CAArB,EACN6I,IAEDJ,EAAYI,EAAA,WACZC,EAAeD,EAAA,WAAqBA,EAAA,cAAwBA,EAAA,UAAoBA,EAAA,aAChFH,EAAYnB,WAAWvH,EAAQwG,MAAMlE,MAAzB,EAEZyG,EAAU/I,EAAQ2I,KACtB3I,EAAQ2I,KAAOZ,EACf/H,EAAQwG,MAAMlE,OAAS,OAEnBqG,EAAOK,KAAKC,MAAMjJ,EAAQqH,aAAeoB,CAAlC,EACXzI,EAAQ2I,KAAOI,EAEXH,EAAY,EACLZ,GAFXW,EAAOK,KAAKE,IAAInB,EAASY,CAAlB,IAML3I,EAAQwG,MAAMlE,QADdsG,GAFAD,EAAOX,GAEaS,EAAYK,GACG,KACnC9I,EAAQwG,MAAM2C,UAAY,YAI1BnJ,EAAQwG,MAAMlE,QADdsG,EAAYD,EAAOF,EAAYK,GACI,KACnC9I,EAAQwG,MAAM2C,UAAY,UAExBT,IAAcE,IACEhG,EAAAsF,MAAMC,iBAAiBnI,EAAQoI,IACrCzH,kBAAkB,oBAAqBX,EAAQoJ,YAAaR,CAAxE,CAEH,EAEM1B,EAAAmC,kBAAP,SAAyBrJ,EAASsJ,GAChB,GAAZA,IACE7F,EAAwBZ,EAAAa,cAAcxD,IAAIF,CAAlB,IAEtBsJ,GAAY7F,EAAI8F,MAAMvK,SACxByE,EAAI+F,eAAiBF,EACrB7F,EAAIgG,aAAeH,EAI1B,EApGUxK,EAAAoI,YAsGbA,C,u6CC1GCwC,G,wCAkEkBA,EAAAC,YAAf,SAA2B3J,GACvB,IAAM4J,EAAc,WAChBC,EAAW7J,EACf,GAAIA,EAAQ8J,SAAWF,EAAa,CAC5BG,EAAe/J,EAAQgK,qBAAqBJ,CAA7B,EACnB,GAA2B,GAAvBG,EAAa/K,OACb,KAAM,oEAEV6K,EAAWE,EAAa,EAC3B,CAED,OAAOF,CACV,EA1EaH,EAAAO,eAAiB,SAAUC,GACrCR,EAAeS,cAAgBD,CAClC,EAEaR,EAAAU,oBAAsB,SAAUC,EAAerK,GAAzB,IAAAsK,EAAAhK,KAEjBoJ,EAAeC,YAAY3J,CAA3B,EACNuK,UAAY,SAAOC,GAAE,OAAAC,EAAAH,EAAA,KAAA,EAAA,KAAA,EAAA,W,iDAE1B,OAAKZ,EAAeS,cACN,WAAVK,EAAGlL,IAAH,CAAA,EAAA,IACAkL,EAAGzD,eAAH,EACA,CAAA,EAAMsD,EAAS1J,kBAAkB,YAA3B,IAHyB,CAAA,G,cAG/B+J,EAAAC,KAAA,E,mBACiB,aAAVH,EAAGlL,IAAH,CAAA,EAAA,IACPkL,EAAGzD,eAAH,EACA,CAAA,EAAMsD,EAAS1J,kBAAkB,YAA3B,I,cAAN+J,EAAAC,KAAA,E,mBAEe,SAAVH,EAAGlL,IAAH,CAAA,EAAA,IACLkL,EAAGzD,eAAH,EACA,CAAA,EAAMsD,EAAS1J,kBAAkB,aAA3B,I,OAAN+J,EAAAC,KAAA,E,8BAZsB,CAe7B,CACJ,EAEajB,EAAAkB,QAAU,SAAU3M,EAAgB4M,GAG9C,OAFenB,EAAeC,YAAY1L,CAA3B,EAEC4M,EACnB,EAEanB,EAAAoB,YAAc,SAAU9K,GAErB,SAAT+K,EAAmBxB,GAEnB,OADAA,EAAQA,EAAMyB,QAAQ,aAAc,GAA5B,CAEX,CAJD,IAAIC,EAAWvB,EAAeC,YAAY3J,CAA3B,EAKXkL,EAAeD,EAAS1B,MACxB4B,EAAMF,EAASzB,eACf4B,EAAcF,EAAaG,MAAM,EAAGF,CAAtB,EAEdG,GADqB,EAArBF,EAAYpM,SAAYoM,EAAcA,EAAYG,UAAU,EAAGH,EAAYpM,OAAS,CAA9C,GAC1BkM,EAAaG,MAAMF,CAAnB,GACZK,EAAOT,EAAOK,CAAP,EAIPK,GAFJD,GADAA,GAAQ,kBACAT,EAAOO,CAAP,EAESnH,SAASC,cAAc,KAAvB,GAKbsH,GAJJD,EAAWE,UAAY,uBACvBF,EAAWG,UAAYJ,EACvBP,EAASY,WAAWC,OAAOL,CAA3B,EAE4BA,EAAWlG,cAAc,MAAzB,GAIxB7C,EAAOgJ,EAAK7E,WAAaoE,EAASc,WAAa,GAC/CxJ,EAAMmJ,EAAK5E,UAAYmE,EAASpH,UAAY,GAGhD,OADA4H,EAAWjH,OAAX,EACO,CAAC9B,EAAMH,EACjB,EAeLmH,GA/EC,SAAAA,KAAa5K,EAAA4K,eAAAA,C,4ECAb,IAAA7G,EAAArE,EAAA,gBAAA,EAED,SAAAwN,KACSA,EAAAC,YAAP,SAAmBC,EAAkBC,GAArC,IAIUC,EAJV9B,EAAAhK,KACM+L,GAD+B,KAAA,IAAAF,IAAAA,EAAA,GACZhI,SAASoB,cAAc2G,CAAvB,GACnBG,IACEA,EAAIC,aAAa,UAAjB,EAEFF,OADIA,EAA2BjI,SAASoI,gBACxCH,EAAaI,KAAb,EAEAC,WAAW,WACTJ,EAAIK,MAAJ,EACY,IAAM7J,EAAAa,cAAciJ,iBAAd,IACJT,GACRC,EAAQ,IACV7B,EAAK2B,YAAYC,EAAUC,EAAQ,CAAnC,CAGL,EAAE,EARH,EAWL,EAEMH,EAAAY,iBAAP,WACEzI,SAAS0I,iBAAiB,iBAA1B,EACGlL,QAAQ,SAAA1D,GAAK,OAAAkG,SAASsB,KAAKqH,YAAY7O,EAA1B4N,UAAA,CAAuC,CADvD,CAED,EAxBU/M,EAAAkN,YAyBbA,C,8DCtBYe,EAgBAC,E,+MArBXnK,G,uEAAArE,EAAA,gBAAA,GACDyI,EAAAzI,EAAA,mCAAA,EACAsC,EAAAtC,EAAA,sCAAA,EAyDAyO,IAtDYF,EAAAA,EAAAjO,EAAAiO,YAAAjO,EAAAiO,UAAS,KACnBA,EAAA,QAAA,GAAA,UACAA,EAAAA,EAAA,IAAA,GAAA,MACAA,EAAAA,EAAA,SAAA,GAAA,WACAA,EAAAA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,QAAA,GAAA,UACAA,EAAAA,EAAA,WAAA,GAAA,aACAA,EAAAA,EAAA,MAAA,GAAA,QACAA,EAAAA,EAAA,SAAA,GAAA,WACAA,EAAAA,EAAA,YAAA,GAAA,cACAA,EAAAA,EAAA,WAAA,IAAA,aACAA,EAAAA,EAAA,OAAA,IAAA,SACAA,EAAAA,EAAA,YAAA,IAAA,eAIUC,EAAAA,EAAAlO,EAAAkO,0BAAAlO,EAAAkO,wBAAuB,KACjCA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,OAAA,GAAA,SACAA,EAAAA,EAAA,SAAA,GAAA,WAsMOC,EAAAC,mBAAP,SAA0BlN,EAAsBmN,GAC9C,GAAIA,EAEF,IAAI,IAAI9O,EAAI,EAAGA,EAAI2B,EAAQoN,WAAWpO,OAAQX,CAAA,GAAK,CACjD,IAAMgP,EAAerN,EAAQoN,WAAW/O,GACxC,GAAIgP,EAAazB,UACf,OAAOyB,CACV,CAEH,OAAOrN,CACR,EAEMiN,EAAAK,uBAAP,SAA8BC,EAAsBjE,GAClD,GAAiB,QAAbA,EACF,OAAQiE,GACN,KAAKR,EAAUS,QACf,KAAKT,EAAUU,SACb,OAAO,SAASC,EAAoBC,EAAuBC,EAA6BC,EAA2BC,EAAuBC,GACxI,MAAO,CACLxL,IAAKmL,EACLjL,OAAQwK,EAAQe,qBAAqBN,EAAYE,EAAUvG,aAAcyG,CAAjE,CAFH,CAIR,EACH,KAAKf,EAAUkB,WACf,KAAKlB,EAAUmB,OACf,KAAKnB,EAAUoB,YACb,OAAO,SAAST,EAAoBC,EAAuBC,EAA6BC,EAA2BC,EAAuBC,GAClIzE,EAA6B,CACjC/G,IAAKmL,EAAaC,EAAgBI,EAAYK,cADb,EAInC,OADA9E,EAAS7G,OAASwK,EAAQe,qBAAqB1E,EAAS/G,IAAKqL,EAAUvG,aAAcyG,CAAnE,EACXxE,CACR,EACH,KAAKyD,EAAUsB,KACf,KAAKtB,EAAUuB,MACb,OAAO,SAASZ,EAAoBC,EAAuBC,EAA6BC,EAA2BC,EAAuBC,GAClIzE,EAA6B,CACjC/G,IAAKmL,EAAcC,EAAgB,EAAMG,EAAgB,CADxB,EAInC,OADAxE,EAAS7G,OAASwK,EAAQe,qBAAqB1E,EAAS/G,IAAKqL,EAAUvG,aAAcyG,CAAnE,EACXxE,CACR,CA3BL,CA8BF,GAAiB,WAAbA,EACF,OAAQiE,GACN,KAAKR,EAAUwB,QACf,KAAKxB,EAAUyB,IACf,KAAKzB,EAAU0B,SACb,OAAO,SAASC,EAAuBf,EAAuBC,EAA6BC,EAA2BC,EAAuBC,GACrIzE,EAA6B,CACjC7G,OAAQiM,EAAgBf,EAAgBI,EAAYK,cADnB,EAInC,OADA9E,EAAS/G,IAAM0K,EAAQe,qBAAqB1E,EAAS7G,OAAQmL,EAAUvG,aAAcyG,CAAtE,EACRxE,CACR,EACH,KAAKyD,EAAU4B,WACf,KAAK5B,EAAU6B,YACb,OAAO,SAASF,EAAuBf,EAAuBC,EAA6BC,EAA2BC,EAAuBC,GAK3I,MAJmC,CACjCtL,OAAQiM,EACRnM,IAAK0K,EAAQe,qBAAqBU,EAAed,EAAUvG,aAAcyG,CAApE,CAF4B,CAKpC,CAnBL,CAwBF,OADAzK,QAAQF,IAAI,6EAA8EoK,EAAWjE,CAArG,EACO2D,EAAQK,uBAAuBP,EAAUkB,WAAY,KAArD,CACR,EAEMhB,EAAA4B,yBAAP,SAAgCtB,EAAsBjE,GACpD,GAAiB,SAAbA,EACF,OAAQiE,GACN,KAAKR,EAAUwB,QACf,KAAKxB,EAAUkB,WACb,OAAO,SAASa,EAAqBC,EAAsBnB,EAA6BC,EAA2BmB,EAAsBjB,GACvI,MAAO,CACLrL,KAAMoM,EACNtM,MAAOyK,EAAQe,qBAAqBc,EAAalB,EAAUxE,YAAa4F,CAAjE,CAFF,CAIR,EACH,KAAKjC,EAAUuB,MACf,KAAKvB,EAAUU,SACf,KAAKV,EAAU6B,YACb,OAAO,SAASE,EAAqBC,EAAsBnB,EAA6BC,EAA2BmB,EAAsBjB,GACjIzE,EAA+B,CACnC5G,KAAMoM,EAAcC,EAAehB,EAAYkB,gBADZ,EAIrC,OADA3F,EAAS9G,MAAQyK,EAAQe,qBAAqB1E,EAAS5G,KAAMkL,EAAUxE,YAAa4F,CAAnE,EACV1F,CACR,EAEH,KAAKyD,EAAUyB,IACf,KAAKzB,EAAUmB,OACb,OAAO,SAASY,EAAqBC,EAAsBnB,EAA6BC,EAA2BmB,EAAsBjB,GACjIzE,EAA+B,CACnC5G,KAAMoM,EAAeC,EAAe,EAAMC,EAAe,CADtB,EAIrC,OADA1F,EAAS9G,MAAQyK,EAAQe,qBAAqB1E,EAAS5G,KAAMkL,EAAUxE,YAAa4F,CAAnE,EACV1F,CACR,CA5BL,CA+BF,GAAiB,UAAbA,EACF,OAAQiE,GACN,KAAKR,EAAU0B,SACf,KAAK1B,EAAUoB,YACb,OAAO,SAASe,EAAsBH,EAAsBnB,EAA6BC,EAA2BmB,EAAsBjB,GAKxI,MAJmC,CACjCvL,MAAO0M,EACPxM,KAAMuK,EAAQe,qBAAqBkB,EAActB,EAAUxE,YAAa4F,CAAlE,CAF2B,CAKpC,EACH,KAAKjC,EAAUsB,KACf,KAAKtB,EAAUS,QACf,KAAKT,EAAU4B,WACb,OAAO,SAASO,EAAsBH,EAAsBnB,EAA6BC,EAA2BmB,EAAsBjB,GAClIzE,EAA+B,CACnC9G,MAAO0M,EAAeH,EAAehB,EAAYkB,gBADd,EAIrC,OADA3F,EAAS5G,KAAOuK,EAAQe,qBAAqB1E,EAAS9G,MAAOoL,EAAUxE,YAAa4F,CAApE,EACT1F,CACR,CAnBL,CAwBF,OADAjG,QAAQF,IAAI,+EAAgFoK,EAAWjE,CAAvG,EACO2D,EAAQK,uBAAuBP,EAAUkB,WAAY,KAArD,CACR,EAUMhB,EAAAe,qBAAP,SAA4B1E,EAAkB6F,EAA4BC,GACxE,OAAOD,EAAqB7F,EAAW8F,CACxC,EAEOnC,EAAAoC,UAAAC,kBAAR,WACE,IAAIC,EAAMjP,KAAKkP,QAAQ7D,UAAU8D,QAAQ,SAA/B,EACNC,EAAQpP,KAAKkP,QAAQ7D,UAAUgE,YAAY,IAAKJ,CAAxC,EACC,GAATG,GAEgB,MADd/D,EAAYrL,KAAKkP,QAAQ7D,UAAUiE,OAAOF,EAAQ,EAAGH,CAAzC,IAEdjP,KAAKkP,QAAQK,UAAUrL,OAAOmH,CAA9B,CAGL,EAEOsB,EAAAoC,UAAAS,wBAAR,WACMxP,KAAKyP,gBACPzP,KAAK0P,cAAgB,CACnBC,iBAAkB9O,OAAO+O,YAAc/L,SAAS6C,gBAAgBmJ,aAChEC,cAAejP,OAAOkP,WAAalM,SAAS6C,gBAAgBsJ,WAFzC,EAMrBhQ,KAAK0P,cAAgB,CACnBC,iBAAkB3P,KAAKsN,UAAU9E,aAAexI,KAAKsN,UAAUuC,aAC/DC,cAAe9P,KAAKsN,UAAU2C,YAAcjQ,KAAKsN,UAAU0C,WAFxC,CAKxB,EAEOrD,EAAAoC,UAAAtP,QAAR,WACEkH,EAAAsB,OAAOlJ,OAAO,aAAaiB,KAAKkQ,SAAYlQ,KAAKmQ,SAASC,KAAKpQ,IAAnB,EAA0B,CAAA,CAAtE,EACA2G,EAAAsB,OAAOxI,QAAQ,aAAaO,KAAKkQ,SAAYlQ,KAAKsN,SAAlD,EACA3G,EAAAsB,OAAOxI,QAAQ,aAAaO,KAAKkQ,SAAYlQ,KAAKuN,OAAlD,EACA/M,EAAA1B,iBAASC,OAAO,WAAWiB,KAAKkQ,SAAYlQ,KAAKqQ,SAASD,KAAKpQ,IAAnB,EAA0B,CAAA,CAAtE,EACAQ,EAAA1B,iBAASW,QAAQ,WAAWO,KAAKkQ,SAAYlQ,KAAKuN,QAAS,CACzD+C,WAAY,CAAA,EACZC,cAAe,CAAA,EACfC,UAAW,CAAA,EACXC,QAAS,CAAA,EACTC,kBAAmB,CAAA,EACnBC,sBAAuB,CAAA,CANkC,CAA3D,GASI3Q,KAAKyP,gBACP5O,OAGAb,KAAKsN,WAHEhH,iBAAiB,SAAUtG,KAAK4Q,SAASR,KAAKpQ,IAAnB,CAAlC,CAKH,EAEO2M,EAAAoC,UAAA6B,SAAR,WACE,IAEUC,EAFN7Q,KAAK8Q,eACH9Q,KAAK+Q,qBAAuBlQ,OAAOmQ,cAC/BH,EAAOhQ,OAAOmQ,YAAchR,KAAK+Q,mBACvC/Q,KAAKgJ,SAAS/G,KAAO4O,EACrB7Q,KAAKgJ,SAAS7G,OAASwK,EAAQe,qBAAqB1N,KAAKgJ,SAAS/G,IAAKjC,KAAKiR,cAAclK,aAAc/G,KAAKkR,YAAYrB,YAAlG,EACe,QAAlC7P,KAAKmR,0BACPnR,KAAKoR,kBAAkBnP,IAAMjC,KAAKgJ,SAAS/G,IAC3CjC,KAAKkP,QAAQhJ,MAAMjE,IAAMjC,KAAKoR,kBAAkBnP,IAAM,OAEtDjC,KAAKoR,kBAAkBjP,OAASnC,KAAKqR,kBAAL,EAChCrR,KAAKkP,QAAQhJ,MAAM/D,OAASnC,KAAKoR,kBAAkBjP,OAAS,MAE9DnC,KAAK+Q,mBAAqBlQ,OAAOmQ,aAWnChR,KAAKsR,kBAAkB,CAAA,EAAM,CAAA,EAAOtR,KAAKuR,aAAzC,CAEH,EAEO5E,EAAAoC,UAAAoB,SAAR,SAAiBpP,EAAS5B,GAEpBa,KAAKwR,WACPxR,KAAKwR,WAAa,CAAA,EAGpBxR,KAAKsR,kBAAkB,CAAA,EAAM,CAAA,EAAOtR,KAAKuR,aAAzC,CACD,EAUO5E,EAAAoC,UAAAsB,SAAR,SAAiBhR,GACXW,KAAKwR,WACPxR,KAAKwR,WAAa,CAAA,EAGhBxR,KAAKyR,oBAAsBzR,KAAKuN,QAAQrH,MAAMwL,UAChD1R,KAAKyR,kBAAoBzR,KAAKuN,QAAQrH,MAAMwL,QAC5C1R,KAAKsR,kBAAkB,CAAA,EAAM,CAAA,EAAOtR,KAAKuR,aAAzC,EAGH,EAEM5E,EAAAoC,UAAA9O,QAAP,WACE0G,EAAAsB,OAAOhI,QAAQ,aAAaD,KAAKkQ,QAAjC,EACA1P,EAAA1B,iBAASmB,QAAQ,WAAWD,KAAKkQ,QAAjC,EACIlQ,KAAKsN,UAAUqE,SAAS3R,KAAKkP,OAA7B,GACFlP,KAAKsN,UAAUd,YAAYxM,KAAKkP,OAAhC,GAGElP,KAAKyP,gBACP5O,OAGAb,KAAKsN,WAHEjH,oBAAoB,SAAUrG,KAAK4Q,QAA1C,CAKH,EAEMjE,EAAAoC,UAAAuC,kBAAP,SAAyBM,EAAwBC,EAAmBN,GAElE,IAF+CM,EAAA,KAAA,IAAAA,EAAA,CAAA,EAE1CA,IAAc7R,KAAKkP,QAAQ4C,aAIhC,OAAKP,GAAkBvR,KAAKuN,QAAQuE,cAMpC9R,KAAK+Q,mBAAqBlQ,OAAOmQ,YACjChR,KAAK+R,gBAAkB/R,KAAKiN,UAC5BjN,KAAKuR,cAAgBA,EAErBvR,KAAKgS,wBAAwBH,CAA7B,EAEA7R,KAAKiS,wBAAL,EAGAjS,KAAKkS,sBAAwBlS,KAAKmS,oBAAL,EACS,EAAlCnS,KAAKkS,sBAAsBE,MAC7BpS,KAAKqS,4BAAL,EAGFrS,KAAKsS,4BAAL,EAEIV,GACF5R,KAAK4R,cAAL,EAEK5R,KAAKoR,oBAxBLpR,KAAKkP,QAAQK,UAAUoC,SAAS3R,KAAKuS,iBAAmB,SAAxD,GACHvS,KAAKkP,QAAQK,UAAUiD,IAAIxS,KAAKuS,iBAAmB,SAAnD,EAEKvS,KAAKgJ,SAsBf,EAWO2D,EAAAoC,UAAAuD,4BAAR,WACEtS,KAAKoR,kBAAiBqB,EAAA,GAAQzS,KAAKgJ,QAAb,EACtBhJ,KAAKoR,kBAAkBsB,OAASnQ,EAAAa,cAAcuP,aAAd,EAChC3S,KAAKoR,kBAAkBnE,UAAYjN,KAAKiN,UACA,SAApCjN,KAAK4S,2BACP5S,KAAKoR,kBAAkBlP,MAAQ,MAG/BlC,KAAKoR,kBAAkBhP,KAAO,KAC9BpC,KAAKoR,kBAAkBlP,MAAQlC,KAAK6S,iBAAL,GAGK,QAAlC7S,KAAKmR,yBACPnR,KAAKoR,kBAAkBjP,OAAS,MAGhCnC,KAAKoR,kBAAkBnP,IAAM,KAC7BjC,KAAKoR,kBAAkBjP,OAASnC,KAAKqR,kBAAL,EAEnC,EAUO1E,EAAAoC,UAAAoD,oBAAR,WACEnS,KAAK8S,sBAAwB9S,KAAK+S,yBAAL,EAC7B,IAAM/Q,EAAShC,KAAK8S,sBAAsB3Q,OAASnC,KAAK8S,sBAAsB7Q,IACxEF,EAAQ/B,KAAK8S,sBAAsB5Q,MAAQlC,KAAK8S,sBAAsB1Q,KACtE4Q,EAAwB,IAAIC,IA4BlC,OA1BIjT,KAAKkT,kBAAoBxG,EAAwByG,MAAQpR,EAAQ/B,KAAKkR,YAAYlB,aAAehQ,KAAKyP,gBAChE,SAApCzP,KAAK4S,2BACP5S,KAAKgJ,SAAS5G,KAAO,EAErBpC,KAAKgJ,SAAS9G,MAAQ,GAGlBkR,EAAqBpT,KAAKqT,sBAAL,EAC3BrT,KAAKgJ,SAAS5G,KAAOgR,EAAmBhR,KACxCpC,KAAKgJ,SAAS9G,MAAQkR,EAAmBlR,MACzC8Q,EAAsBR,IAAI,YAA1B,GAGExS,KAAKkT,kBAAoBxG,EAAwByG,MAAQnR,EAAShC,KAAKkR,YAAYrB,cAAgB7P,KAAKyP,gBACpE,QAAlCzP,KAAKmR,yBACPnR,KAAKgJ,SAAS/G,IAAM,EAEpBjC,KAAKgJ,SAAS7G,OAAS,GAInBmR,EAAmBtT,KAAKuT,oBAAL,EACzBvT,KAAKgJ,SAAS/G,IAAMqR,EAAiBrR,IACrCjC,KAAKgJ,SAAS7G,OAASmR,EAAiBnR,OACxC6Q,EAAsBR,IAAI,UAA1B,GAEKQ,CACR,EAQOrG,EAAAoC,UAAAkD,wBAAR,WACMjS,KAAKiN,YAAcjN,KAAKwT,mBAC1BxT,KAAKiN,UAAYjN,KAAKwT,iBACtBxT,KAAK4S,2BAA6BjG,EAAQ8G,wBAAwB7T,IAAII,KAAKiN,SAAzC,EAAoDyG,WACtF1T,KAAKmR,yBAA2BxE,EAAQ8G,wBAAwB7T,IAAII,KAAKiN,SAAzC,EAAoD0G,SACpF3T,KAAK4T,oBAAsBjH,EAAQK,uBAAuBhN,KAAKiN,UAAWjN,KAAKmR,wBAApD,EAC3BnR,KAAK6T,sBAAwBlH,EAAQ4B,yBAAyBvO,KAAKiN,UAAWjN,KAAK4S,0BAAtD,EAEhC,EAOOjG,EAAAoC,UAAA+E,aAAR,SAAqBC,GAAA,KAAA,IAAAA,IAAAA,EAAA,IACnBhR,QAAQF,IAAIkR,EAAe,qBAAsB/T,KAAKgJ,SACpD,QACA,CACEkH,SAAUlQ,KAAKkQ,SACf5C,UAAW,CACT0G,KAAMhU,KAAKiR,cACXgD,WAAY,CACVpE,aAAc7P,KAAKsN,UAAU4G,cAAcrE,aAC3CG,YAAahQ,KAAKsN,UAAU4G,cAAclE,YAC1CvE,WAAYzL,KAAKsN,UAAU4G,cAAczI,WACzClI,UAAWvD,KAAKsN,UAAU4G,cAAc3Q,SAJ9B,EAMZ4Q,YAAanU,KAAKsN,UAAUxF,GAC5BgL,sBAAuB9S,KAAK8S,qBATnB,EAWXvF,QAAS,CACP6G,YAAapU,KAAKqU,YAAYD,YAC9BE,aAActU,KAAKqU,YAAYC,aAC/BzE,aAAc7P,KAAKqU,YAAYxE,aAC/BG,YAAahQ,KAAKqU,YAAYrE,YAC9BxH,aAAcxI,KAAKqU,YAAY7L,aAC/ByH,YAAajQ,KAAKqU,YAAYpE,YAC9BiD,iBAAkBlT,KAAKkT,iBAEvBqB,YAAavU,KAAKuN,QAAQiH,UAC1BjC,iBAAkBvS,KAAKuS,gBAVhB,EAYTrD,QAAS,CACPW,aAAc7P,KAAKkR,YAAYrB,aAC/BG,YAAahQ,KAAKkR,YAAYlB,YAC9BxH,aAAcxI,KAAKkR,YAAY1I,aAC/ByH,YAAajQ,KAAKkR,YAAYjB,YAC9BwE,MAAOzU,KAAKkP,QAAQ7D,UACpBqJ,mBAAoB,CAClBC,kBAAmB3U,KAAKkP,QAAQhJ,MAAMjE,IACtC2S,qBAAsB5U,KAAKkP,QAAQhJ,MAAM/D,OACzC0S,mBAAoB7U,KAAKkP,QAAQhJ,MAAM9D,KACvC0S,oBAAqB9U,KAAKkP,QAAQhJ,MAAMhE,KAJtB,CANb,EAaTrB,OAAQ,CACN+O,YAAa/O,OAAO+O,YACpBG,WAAYlP,OAAOkP,WACnBgF,YAAalU,OAAOkU,YACpB/D,YAAanQ,OAAOmQ,WAJd,EAMRtK,gBAAiB,CACfmJ,aAAchM,SAAS6C,gBAAgBmJ,aACvCG,YAAanM,SAAS6C,gBAAgBsJ,YACtCgF,gBAAiBhV,KAAKyP,eAHP,EAKjBwF,WAAYjV,KAAK0P,cACjB6B,cAAevR,KAAKuR,cACpB2D,mBAAoBlV,KAAKkV,mBACzBlM,SAAUhJ,KAAKgJ,SACfoI,kBAAmBpR,KAAKoR,kBACxB+D,SAAU,CACT3B,iBAAkBxT,KAAKwT,iBACvBzB,gBAAiB/R,KAAK+R,gBACtB9E,UAAWjN,KAAKiN,UAChB2F,2BAA4B5S,KAAK4S,2BACjCzB,yBAA0BnR,KAAKmR,wBALtB,CAtDZ,CAFF,CAiED,EAcOxE,EAAAoC,UAAA8D,iBAAR,WACE,OAAI7S,KAAKyP,gBACAzP,KAAKgJ,SAAS9G,OAASlC,KAAKiR,cAAcnI,YAAcjI,OAAOkP,YAClE/P,KAAK0P,cAAcI,cAElB9P,KAAKgJ,SAAS9G,KACtB,EAcOyK,EAAAoC,UAAAsC,kBAAR,WACE,OAAIrR,KAAKyP,gBACAzP,KAAKgJ,SAAS7G,QAAUnC,KAAKiR,cAAclK,aAAelG,OAAO+O,aACpE5P,KAAK0P,cAAcC,iBAElB3P,KAAKgJ,SAAS7G,MACtB,EAEOwK,EAAAoC,UAAA6C,cAAR,WAC0C,SAApC5R,KAAK4S,4BACP5S,KAAKkP,QAAQhJ,MAAM9D,KAAOpC,KAAKoR,kBAAkBhP,KAAO,KACxDpC,KAAKkP,QAAQhJ,MAAMhE,MAAQ,UAE3BlC,KAAKkP,QAAQhJ,MAAMhE,MAAQlC,KAAKoR,kBAAkBlP,MAAQ,KAC1DlC,KAAKkP,QAAQhJ,MAAM9D,KAAO,SAGU,QAAlCpC,KAAKmR,0BACPnR,KAAKkP,QAAQhJ,MAAMjE,IAAMjC,KAAKoR,kBAAkBnP,IAAM,KACtDjC,KAAKkP,QAAQhJ,MAAM/D,OAAS,UAE5BnC,KAAKkP,QAAQhJ,MAAM/D,OAASnC,KAAKoR,kBAAkBjP,OAAS,KAC5DnC,KAAKkP,QAAQhJ,MAAMjE,IAAM,SAG3BjC,KAAKoV,eAAL,CACD,EAEOzI,EAAAoC,UAAAqG,eAAR,WACE,IAEQC,EACAjG,EAGJkG,EAIEC,EAVFvV,KAAK+R,kBAAoB/R,KAAKiN,YAC5BqI,EAAgB,KAAA,EACdD,EAAgBrV,KAAKuS,iBAAgB,cACrCnD,EAAQpP,KAAKkP,QAAQ7D,UAAU8D,QAAQkG,CAA/B,EACRpG,EAAMjP,KAAKkP,QAAQ7D,UAAU8D,QAAQ,IAAKC,EAAQiG,EAAW3W,MAAvD,EAEV4W,EADW,GAATlG,EACiBpP,KAAKkP,QAAQ7D,UAAUiE,OAAOF,EAAOH,EAAIG,CAAzC,EAEAzC,EAAQ8G,wBAAwB7T,IAAII,KAAKwT,gBAAzC,EAAA,MAEjB+B,EAAeF,EAAa1I,EAAQ8G,wBAAwB7T,IAAII,KAAKiN,SAAzC,EAAA,MAChCjN,KAAKkP,QAAQK,UAAU7E,QAAQ4K,EAAkBC,CAAjD,EAEH,EAYO5I,EAAAoC,UAAAiD,wBAAR,SAAgCH,GACzBA,IACH7R,KAAKiR,cAAgB1O,EAAAa,cAAcoS,QAAQxV,KAAKsN,SAA3B,EACrBtN,KAAKwP,wBAAL,GAEFxP,KAAKqU,YAAc9R,EAAAa,cAAcoS,QAAQxV,KAAKuN,OAA3B,EACnBvN,KAAKkR,YAAc3O,EAAAa,cAAcoS,QAAQxV,KAAKkP,OAA3B,CACpB,EAQOvC,EAAAoC,UAAAwE,oBAAR,WAuBE,OApBAvT,KAAKyV,gBAAgBzT,OAA0C,GAAjChC,KAAKqU,YAAY7L,aAAoBxI,KAAKqU,YAAY7L,aAClFxI,KAAKqU,YAAYxE,aACf7P,KAAKuR,eACPvR,KAAKyV,gBAAgBxT,IAAMjC,KAAKqU,YAAYD,YAAcpU,KAAKuR,cAAczP,EAC7E9B,KAAKyV,gBAAgBzT,OAAS,GAE9BhC,KAAKyV,gBAAgBxT,IAAMjC,KAAKiR,cAAc1N,UAAYvD,KAAKqU,YAAYD,YACvEpU,KAAKiR,cAAcmD,YAAcpU,KAAKiR,cAAcyE,UAE1D1V,KAAKyV,gBAAgBrB,YAAcpU,KAAKqU,YAAYD,YAEd,QAAlCpU,KAAKmR,yBACInR,KAAK4T,oBAAoB5T,KAAKyV,gBAAgBxT,IAAKjC,KAAKyV,gBAAgBzT,OAAQhC,KAAKiR,cAC9FjR,KAAKqU,YAAarU,KAAKkR,YAAYrB,aAAc7P,KAAKkV,kBAD7C,GAIXlV,KAAKyV,gBAAgBtT,OAASnC,KAAKiR,cAAclK,aAAe/G,KAAKyV,gBAAgBxT,IAAMjC,KAAKyV,gBAAgBzT,OACrGhC,KAAK4T,oBAAoB5T,KAAKyV,gBAAgBtT,OAAQnC,KAAKyV,gBAAgBzT,OAAQhC,KAAKiR,cACjGjR,KAAKqU,YAAarU,KAAKkR,YAAYrB,aAAc7P,KAAKkV,kBAD7C,EAId,EAQOvI,EAAAoC,UAAAsE,sBAAR,WAwBE,OArBArT,KAAKyV,gBAAgB1T,MAAwC,GAAhC/B,KAAKqU,YAAYpE,YAAmBjQ,KAAKqU,YAAYpE,YAAcjQ,KAAKqU,YAAYrE,YAG7GhQ,KAAKuR,eACPvR,KAAKyV,gBAAgBrT,KAAOpC,KAAKqU,YAAYC,aAAetU,KAAKuR,cAAc1P,EAC/E7B,KAAKyV,gBAAgB1T,MAAQ,GAE7B/B,KAAKyV,gBAAgBrT,KAAOpC,KAAKiR,cAAcxF,WAAazL,KAAKqU,YAAYC,aACzEtU,KAAKiR,cAAcqD,aAAetU,KAAKiR,cAAc0E,WAE3D3V,KAAKyV,gBAAgBnB,aAAetU,KAAKqU,YAAYC,aAEb,SAApCtU,KAAK4S,2BACI5S,KAAK6T,sBAAsB7T,KAAKyV,gBAAgBrT,KAAMpC,KAAKyV,gBAAgB1T,MAAO/B,KAAKiR,cAChGjR,KAAKqU,YAAarU,KAAKkR,YAAYlB,YAAahQ,KAAKkV,kBAD5C,GAIXlV,KAAKyV,gBAAgBvT,MAAQlC,KAAKiR,cAAcnI,YAAc9I,KAAKyV,gBAAgBrT,KAAOpC,KAAKyV,gBAAgB1T,MACpG/B,KAAK6T,sBAAsB7T,KAAKyV,gBAAgBvT,MAAOlC,KAAKyV,gBAAgB1T,MAAO/B,KAAKiR,cACjGjR,KAAKqU,YAAarU,KAAKkR,YAAYlB,YAAahQ,KAAKkV,kBAD5C,EAId,EAQOvI,EAAAoC,UAAAsD,4BAAR,WACMrS,KAAKkT,mBAAqBxG,EAAwByG,OAIlDnT,KAAKkS,sBAAsB0D,IAAI,UAA/B,GACF5V,KAAK6V,oCAAL,EAGE7V,KAAKkS,sBAAsB0D,IAAI,YAA/B,IACF5V,KAAK8V,sCAAL,CAEH,EAEOnJ,EAAAoC,UAAAgH,oBAAR,WACI,IAAMlV,EAAS0B,EAAAa,cAAc4S,UAAd,EACTC,EAAS1T,EAAAa,cAAc8S,UAAd,EACflW,KAAKmW,iBAAmB,CACtBlU,IAAMgU,EAAOnU,EACbM,KAAM6T,EAAOpU,EACbK,MAAOrB,EAAOkP,WAAakG,EAAOpU,EAClCM,OAAQtB,EAAO+O,YAAcqG,EAAOnU,CAJd,CAM3B,EAUO6K,EAAAoC,UAAAgE,yBAAR,WACE,IAmBQqD,EAEAC,EAGFxG,EACAG,EAMFzM,EAQAkI,EAvCJ,OAAIzL,KAAKkT,mBAAqBxG,EAAwB4J,UAC/CtW,KAAKyP,iBACRzP,KAAK+V,oBAAL,EAEK,CACH3T,KAAM,EACNF,MAAOlC,KAAKiR,cAAcnI,YAC1B7G,IAAK,EACLE,OAAQnC,KAAKiR,cAAclK,YAJxB,IAOT/G,KAAK+V,oBAAL,EAEI/V,KAAKyP,gBACAzP,KAAKmW,kBAKNC,EAA8B,EAF9BG,EAAsE,IAA9CvW,KAAKsN,UAAU4G,cAAcrE,cACT,IAA7C7P,KAAKsN,UAAU4G,cAAclE,cAE7BhQ,KAAKsN,UAAU4G,cAAcrE,aAAe7P,KAAKiR,cAAcpB,aAC9DwG,EAAgC,CAACE,GAClCvW,KAAKsN,UAAU4G,cAAclE,YAAchQ,KAAKiR,cAAcjB,YAK/DvE,EADAlI,EADAyM,EADAH,EAAY,KAAA,EAqBT,CACL5N,IAAMsB,GAjBJ6S,GACFvG,EAAe7P,KAAKsN,UAAU4G,cAAcrE,aAChC7P,KAAKsN,UAAU4G,gBAE3BrE,EAAe7P,KAAKiR,cAAcpB,aACtB7P,KAAKiR,gBAHwB1N,UAgBzCpB,OAAQoB,EAAYsM,EACpBzN,KAAMqJ,GAXJ4K,GACFrG,EAAchQ,KAAKsN,UAAU4G,cAAclE,YAC9BhQ,KAAKsN,UAAU4G,gBAE5BlE,EAAchQ,KAAKiR,cAAcjB,YACpBhQ,KAAKiR,gBAHwBxF,WAU1CvJ,MAAOuJ,EAAauE,CAJf,GAOV,EAKOrD,EAAAoC,UAAAyH,wBAAR,SAAgCC,GAC9B,IAAIC,EAIFzU,EAFgB,cAAdwU,GACFC,EAAW1W,KAAK8S,sBACV9S,KAAKyV,gBAAgBxT,MAE3ByU,EAAW1W,KAAKmW,iBACVnW,KAAKyV,gBAAgBrB,aAG7B,MAAsC,QAAlCpU,KAAKmR,yBACAuF,EAASvU,QAAUF,EAAMjC,KAAKyV,gBAAgBzT,QAE9CC,EAAMyU,EAASzU,GAEzB,EAKO0K,EAAAoC,UAAA4H,uBAAR,SAA+BF,GAC7B,IAAIC,EAIFtU,EAFgB,cAAdqU,GACFC,EAAW1W,KAAK8S,sBACT9S,KAAKyV,gBAAgBrT,OAE5BsU,EAAW1W,KAAKmW,iBACTnW,KAAKyV,gBAAgBnB,cAG9B,MAAwC,SAApCtU,KAAK4S,2BACA8D,EAASxU,OAASE,EAAOpC,KAAKyV,gBAAgB1T,OAE9CK,EAAOsU,EAAStU,IAE1B,EAOOuK,EAAAoC,UAAA+G,sCAAR,WACE,IACQc,EACAC,EACAC,EACAC,EACAC,EAGJC,EAOIC,EAGJC,EAlBCnX,KAAKoX,qBAAqB,aAAcpX,KAAKgJ,SAAS5G,KAAMpC,KAAKgJ,SAAS9G,KAA1E,IACG0U,EAAanE,EAAA,GAAyBzS,KAAKgJ,QAA9B,EACb6N,EAAwB7W,KAAK4S,2BAC7BkE,EAAiB9W,KAAKiN,UACtB8J,EAA6B/W,KAAK6T,sBAClCmD,EAA+BhX,KAAK2W,uBAAuB,WAA5B,EACjCM,EAAkC,KAAA,EAEpCA,EADEjX,KAAKqX,oBAC8BrX,KAAK2W,uBAAuB,MAA5B,EAEAK,EAGvChX,KAAKsX,wBAAL,EAEMJ,EAA8BlX,KAAK2W,uBAAuB,WAA5B,EAChCQ,EAAiC,KAAA,EAQjCF,GAAqCE,EAPrCnX,KAAKqX,oBAC6BrX,KAAK2W,uBAAuB,MAA5B,EAEAO,IAKK,EAApCC,GAC0E,GAA1EA,EAAoCF,GAEvCD,EAA+BE,GAA6D,EAA9BA,KAChElX,KAAKgJ,SAAW4N,EAChB5W,KAAK4S,2BAA6BiE,EAClC7W,KAAKiN,UAAY6J,EACjB9W,KAAK6T,sBAAwBkD,EAGlC,EAOOpK,EAAAoC,UAAA8G,oCAAR,WACE,IACQe,EACAC,EACAC,EACAS,EACAC,EAGJC,EAOIC,EAGJC,EAlBC3X,KAAKoX,qBAAqB,WAAYpX,KAAKgJ,SAAS/G,IAAKjC,KAAKgJ,SAAS7G,MAAvE,IACGyU,EAAanE,EAAA,GAAyBzS,KAAKgJ,QAA9B,EACb6N,EAAwB7W,KAAKmR,yBAC7B2F,EAAiB9W,KAAKiN,UACtBsK,EAA2BvX,KAAK4T,oBAChC4D,EAAgCxX,KAAKwW,wBAAwB,WAA7B,EAClCiB,EAAmC,KAAA,EAErCA,EADEzX,KAAKqX,oBAC+BrX,KAAKwW,wBAAwB,MAA7B,EAEAgB,EAGxCxX,KAAK4X,sBAAL,EAEMF,EAA+B1X,KAAKwW,wBAAwB,WAA7B,EACjCmB,EAAkC,KAAA,EAQlCF,GAAsCE,EAPtC3X,KAAKqX,oBAC8BrX,KAAKwW,wBAAwB,MAA7B,EAEAkB,IAKK,EAArCC,GAC4E,GAA5EA,EAAqCF,GAExCD,EAAgCE,GAA+D,EAA/BA,KAClE1X,KAAKgJ,SAAW4N,EAChB5W,KAAKmR,yBAA2B0F,EAChC7W,KAAKiN,UAAY6J,EACjB9W,KAAK4T,oBAAsB2D,EAGhC,EAEO5K,EAAAoC,UAAAqI,qBAAR,SAA6BS,EAAiCzI,EAAeH,GAC3E,MAAa,eAAT4I,GACIC,EAAqB1I,EAAQpP,KAAKkR,YAAYlB,YAC7ChQ,KAAK8S,sBAAsB1Q,MAAQgN,GACnCA,GAASpP,KAAK8S,sBAAsB5Q,OACpClC,KAAK8S,sBAAsB1Q,MAAQ0V,GACnCA,GAAsB9X,KAAK8S,sBAAsB5Q,QAEpD6V,EAAoB3I,EAAQpP,KAAKkR,YAAYrB,aAC5C7P,KAAK8S,sBAAsB7Q,KAAOmN,GAClCA,GAASpP,KAAK8S,sBAAsB3Q,QACpCnC,KAAK8S,sBAAsB7Q,KAAO8V,GAClCA,GAAqB/X,KAAK8S,sBAAsB3Q,OACxD,EAMOwK,EAAAoC,UAAA6I,sBAAR,WACE5X,KAAKiN,UAAYN,EAAQqL,4BAA4BpY,IAAII,KAAKiN,SAA7C,EAAwDjN,KAAKmR,wBAA7D,EACjBnR,KAAKmR,yBAA2BxE,EAAQ8G,wBAAwB7T,IAAII,KAAKiN,SAAzC,EAAoD0G,SACpF3T,KAAK4T,oBAAsBjH,EAAQK,uBAAuBhN,KAAKiN,UAAWjN,KAAKmR,wBAApD,EAC3B,IAAMmC,EAAmBtT,KAAKuT,oBAAL,EACzBvT,KAAKgJ,SAAS/G,IAAMqR,EAAiBrR,IACrCjC,KAAKgJ,SAAS7G,OAASmR,EAAiBnR,MACzC,EAMOwK,EAAAoC,UAAAuI,wBAAR,WACEtX,KAAKiN,UAAYN,EAAQsL,8BAA8BrY,IAAII,KAAKiN,SAA/C,EAA0DjN,KAAK4S,0BAA/D,EACjB5S,KAAK4S,2BAA6BjG,EAAQ8G,wBAAwB7T,IAAII,KAAKiN,SAAzC,EAAoDyG,WACtF1T,KAAK6T,sBAAwBlH,EAAQ4B,yBAAyBvO,KAAKiN,UAAWjN,KAAK4S,0BAAtD,EAC7B,IAAMQ,EAAqBpT,KAAKqT,sBAAL,EAC3BrT,KAAKgJ,SAAS5G,KAAOgR,EAAmBhR,KACxCpC,KAAKgJ,SAAS9G,MAAQkR,EAAmBlR,KAC1C,EAphCgByK,EAAA8G,wBAEf,IAAInT,IAAI,CACN,CAACmM,EAAUwB,QAAe,CAAEyF,WAAY,OAAQC,SAAU,SAAUc,MAAO,SAAjD,GAC1B,CAAChI,EAAUyB,IAAe,CAAEwF,WAAY,OAAQC,SAAU,SAAUc,MAAO,KAAjD,GAC1B,CAAChI,EAAU0B,SAAe,CAAEuF,WAAY,QAASC,SAAU,SAAUc,MAAO,UAAlD,GAC1B,CAAChI,EAAUsB,KAAe,CAAE2F,WAAY,QAASC,SAAU,MAAOc,MAAO,MAA/C,GAC1B,CAAChI,EAAUS,QAAe,CAAEwG,WAAY,QAASC,SAAU,MAAOc,MAAO,SAA/C,GAC1B,CAAChI,EAAU4B,WAAe,CAAEqF,WAAY,QAASC,SAAU,SAAUc,MAAO,YAAlD,GAC1B,CAAChI,EAAUuB,MAAe,CAAE0F,WAAY,OAAQC,SAAU,MAAOc,MAAO,OAA9C,GAC1B,CAAChI,EAAUU,SAAe,CAAEuG,WAAY,OAAQC,SAAU,MAAOc,MAAO,UAA9C,GAC1B,CAAChI,EAAU6B,YAAe,CAAEoF,WAAY,OAAQC,SAAU,SAAUc,MAAO,aAAjD,GAC1B,CAAChI,EAAUkB,WAAe,CAAE+F,WAAY,OAAQC,SAAU,MAAOc,MAAO,YAA9C,GAC1B,CAAChI,EAAUmB,OAAe,CAAE8F,WAAY,OAAQC,SAAU,MAAOc,MAAO,QAA9C,GAC1B,CAAChI,EAAUoB,YAAe,CAAE6F,WAAY,QAASC,SAAU,MAAOc,MAAO,aAA/C,GAZ5B,EAea9H,EAAAqL,4BACb,IAAI1X,IAAI,CACN,CAACmM,EAAUwB,QAAe,SAACjF,GAAqB,OAAAyD,EAAAkB,UAAoB,GACpE,CAAClB,EAAUyB,IAAe,SAAClF,GAAqB,OAAAyD,EAAAmB,MAAgB,GAChE,CAACnB,EAAU0B,SAAe,SAACnF,GAAqB,OAAAyD,EAAAoB,WAAqB,GACrE,CAACpB,EAAUsB,KAAe,SAAC/E,GAAqB,MAAa,QAAbA,EAAqByD,EAAU4B,WAAa5B,EAA5CS,OAA6D,GAC7G,CAACT,EAAUS,QAAe,SAAClE,GAAqB,OAAAyD,EAAA4B,UAAoB,GACpE,CAAC5B,EAAU4B,WAAe,SAACrF,GAAqB,OAAAyD,EAAAS,OAAiB,GACjE,CAACT,EAAUuB,MAAe,SAAChF,GAAqB,MAAa,QAAbA,EAAqByD,EAAU6B,YAAc7B,EAA7CU,QAA+D,GAC/G,CAACV,EAAUU,SAAe,SAACnE,GAAqB,OAAAyD,EAAA6B,WAAqB,GACrE,CAAC7B,EAAU6B,YAAe,SAACtF,GAAqB,OAAAyD,EAAAU,QAAkB,GAClE,CAACV,EAAUkB,WAAe,SAAC3E,GAAqB,OAAAyD,EAAAwB,OAAiB,GACjE,CAACxB,EAAUmB,OAAe,SAAC5E,GAAqB,OAAAyD,EAAAyB,GAAa,GAC7D,CAACzB,EAAUoB,YAAe,SAAC7E,GAAqB,OAAAyD,EAAA0B,QAAkB,GAZpE,EAeaxB,EAAAsL,8BACb,IAAI3X,IAAI,CACN,CAACmM,EAAUwB,QAAe,SAACjF,GAAqB,OAAAyD,EAAA0B,QAAkB,GAClE,CAAC1B,EAAUyB,IAAS,SAAClF,GAAqB,MAAa,SAAbA,EAAsByD,EAAU0B,SAAW1B,EAA3CwB,OAA4D,GACtG,CAACxB,EAAU0B,SAAe,SAACnF,GAAqB,OAAAyD,EAAAwB,OAAiB,GACjE,CAACxB,EAAUsB,KAAe,SAAC/E,GAAqB,OAAAyD,EAAAuB,KAAe,GAC/D,CAACvB,EAAUS,QAAe,SAAClE,GAAqB,OAAAyD,EAAAU,QAAkB,GAClE,CAACV,EAAU4B,WAAe,SAACrF,GAAqB,OAAAyD,EAAA6B,WAAqB,GACrE,CAAC7B,EAAUuB,MAAe,SAAChF,GAAqB,OAAAyD,EAAAsB,IAAc,GAC9D,CAACtB,EAAUU,SAAe,SAACnE,GAAqB,OAAAyD,EAAA4B,UAAoB,GACpE,CAAC5B,EAAU6B,YAAe,SAACtF,GAAqB,OAAAyD,EAAAS,OAAiB,GACjE,CAACT,EAAUkB,WAAe,SAAC3E,GAAqB,OAAAyD,EAAAoB,WAAqB,GACrE,CAACpB,EAAUmB,OAAe,SAAC5E,GAAqB,MAAa,SAAbA,EAAsByD,EAAUoB,YAAcpB,EAA9CkB,UAAkE,GAClH,CAAClB,EAAUoB,YAAe,SAAC7E,GAAqB,OAAAyD,EAAAkB,UAAoB,GAZtE,EAeahB,EAAAuL,0BACb,IAAI5X,IAAI,CACN,CAACmM,EAAUwB,QAAexB,EAAUyB,KACpC,CAACzB,EAAUyB,IAAezB,EAAUyB,KACpC,CAACzB,EAAU0B,SAAe1B,EAAUyB,KACpC,CAACzB,EAAUsB,KAAetB,EAAUsB,MACpC,CAACtB,EAAUS,QAAeT,EAAUsB,MACpC,CAACtB,EAAU4B,WAAe5B,EAAUsB,MACpC,CAACtB,EAAUuB,MAAevB,EAAUuB,OACpC,CAACvB,EAAUU,SAAeV,EAAUuB,OACpC,CAACvB,EAAU6B,YAAe7B,EAAUuB,OACpC,CAACvB,EAAUkB,WAAelB,EAAUmB,QACpC,CAACnB,EAAUmB,OAAenB,EAAUmB,QACpC,CAACnB,EAAUoB,YAAepB,EAAUmB,QAZtC,EAm+BJjB,GAh6BE,SAAAA,EAAYuD,EACVhB,EAAyB5B,EAAwBC,EAAsBN,EACvEkL,EAAkDtL,EAAgC0F,EAClF2C,GApBMlV,KAAAwR,WAAa,CAAA,EAKbxR,KAAAyV,gBAAkH,GAGlHzV,KAAAqX,oBAAsB,CAAA,EA4RtBrX,KAAAyR,kBAAoB,GA/Q1BzR,KAAKkQ,SAAWA,EAChBlQ,KAAKkP,QAAUA,EAIflP,KAAKiR,cAAgB1O,EAAAa,cAAcoS,QAAQlI,CAAtB,EACrBtN,KAAKsN,UAAYA,EACjBtN,KAAKyP,gBAAkBnC,IAAczJ,SAASsB,KAC9CnF,KAAKwP,wBAAL,EACKxP,KAAKyP,kBACRzP,KAAKqX,oBAA6E,EAAvD9U,EAAAa,cAAcgV,uBAAuBpY,KAAKsN,SAA1C,GAG7BtN,KAAKkP,QAAQhJ,MAAMwL,QAAU1R,KAAKkP,QAAQhJ,MAAMwL,QAAQhH,QAAQ,iBAAkB,EAArD,EAC7B1K,KAAKkP,QAAQhJ,MAAMjE,IAAM,MACzBjC,KAAKgP,kBAAL,EAKAhP,KAAKuN,QAAUZ,EAAQC,mBAAmBW,EAASV,CAApC,EACf7M,KAAKuS,iBAAmBA,EACpB2C,EAAmBmD,mBACrBrY,KAAKiN,UAAYN,EAAQuL,0BAA0BtY,IAAIqN,CAAtC,EAEjBjN,KAAKiN,UAAYA,EAEnBjN,KAAKwT,iBAAmBxT,KAAKiN,UAC7BjN,KAAKkT,iBAAmBiF,EACxBnY,KAAKkV,mBAAqBA,EAE1BlV,KAAKgJ,SAAW,CAAE0J,OAAQ,CAAV,EAChB1S,KAAK4S,2BAA6BjG,EAAQ8G,wBAAwB7T,IAAII,KAAKiN,SAAzC,EAAoDyG,WACtF1T,KAAKmR,yBAA2BxE,EAAQ8G,wBAAwB7T,IAAII,KAAKiN,SAAzC,EAAoD0G,SAEpF3T,KAAK4T,oBAAsBjH,EAAQK,uBAAuBhN,KAAKiN,UAAWjN,KAAKmR,wBAApD,EAC3BnR,KAAK6T,sBAAwBlH,EAAQ4B,yBAAyBvO,KAAKiN,UAAWjN,KAAK4S,0BAAtD,EAC7B5S,KAAK8Q,eAAiBvO,EAAAa,cAAckV,gBAAgBtY,KAAKuN,OAAnC,EACtBvN,KAAKP,QAAL,CACD,CAjKUjB,EAAAmO,QAAAA,C,gLC3DZ,IAAApK,EAAArE,EAAA,gBAAA,EACDqa,EAAAra,EAAA,WAAA,EACAoE,EAAApE,EAAA,kBAAA,EAEA,SAAAsa,KAGSA,EAAAC,sBAAP,SAA6BvI,EAC3BwI,EAAiBC,EAAiB1L,EAAuB2L,EACzDT,EAAkDtL,EAAgC0F,EAClFzE,EAAwBa,EAA0B0J,EAClDQ,EAAqBC,GAErB,IAaIC,EAbEC,EAAiBzW,EAAAa,cAAcxD,IAAI8Y,CAAlB,EACjBO,EAAmB1W,EAAAa,cAAcxD,IAAIgZ,CAAlB,EACnBM,EAAiB3W,EAAAa,cAAcxD,IAAI+Y,CAAlB,EAEvB,GAAI,CAACpW,EAAAc,sBAAsB8V,aAAaT,EAAiBO,CAApD,EAMH,OALAlW,QAAQF,IAAI,kCAAmC,CAC5C0P,iBAAkBA,EAClBmG,gBAAiBA,EACjBO,iBAAkBA,CAH0B,CAA/C,EAKO,MAILJ,GAAcC,KAChBC,EAAiB,CAAElX,EAAGiX,EAAahX,EAAG+W,CAArB,GASb3J,EAAU,IAAIqJ,EAAA5L,QAAQuD,EAAU8I,EAAgBC,EAAkBC,EAAgBjM,EAAWkL,EAAyBtL,EAAuB0F,EANpG,CAC7CzE,eAAgBA,EAChBa,iBAAkBA,EAClB0J,mBAAoBA,CAHyB,CAM/B,EAIhB,OAFArY,KAAKoZ,gBAAgBlJ,GAAYhB,GAElBoC,kBAAkB,CAAA,EAAO,CAAA,EAAMyH,CAAvC,CACR,EAGMP,EAAAa,sBAAP,SAA6BnJ,EAAkBwI,EAAiBC,EAAiB1L,EAAuB2L,EACtGT,EAAkDtL,EAAgC0F,EAClFzE,EAAwBa,EAA0B0J,EAClDQ,EAAqBC,GACrB,IAAM5J,EAAUlP,KAAKoZ,gBAAgBlJ,GACrC,OAAIhB,EAKKA,EAAQoC,kBAAkB,CAAA,EAAO,CAAA,EAHlCuH,GAAcC,EACC,CAAEjX,EAAGiX,EAAahX,EAAG+W,CAArB,EAFH,KAAA,CAIX,EAKAL,EAAcC,sBAAsBvI,EAAUwI,EAAiBC,EAAiB1L,EAAY2L,EAAkBT,EAAyBtL,EAAuB0F,EACrKzE,EAAgBa,EAAkB0J,EAClCQ,EAAYC,CAFL,CAIV,EAEMN,EAAAc,2BAAP,SAAkCpJ,GAChC,IAAMhB,EAAUlP,KAAKoZ,gBAAgBlJ,GACjChB,IACFA,EAAQjP,QAAR,EACA,OAAOD,KAAKoZ,gBAAgBlJ,GAE/B,EAEMsI,EAAAe,gCAAP,SAAuC7Z,EAASsZ,GAC9C,IACQ7V,EADJzD,GAAWsZ,IACP7V,EAAmBZ,EAAAa,cAAcxD,IAAIF,CAAlB,KAEvB4C,EAAAsF,MAAMG,sBAAsBrI,EAAQoI,GAAK,iBAAmB,SAACnK,GAAM,OAAA4E,EAAAiX,YAAYC,sBAAsB9b,EAAG,QAAS,WAAM,OAAA,OAAAqb,EAAelH,YAAnE,CAAA,CAAyF,EAC5J3O,EAAImD,iBAAiB,UAAWhE,EAAAsF,MAAMG,sBAAsBrI,EAAQoI,GAAK,iBAAkB,CAAA,CAA3F,EAGL,EAEM0Q,EAAAkB,mCAAP,SAA0Cha,GACxC,IACQyD,EADJzD,IACIyD,EAAmBZ,EAAAa,cAAcxD,IAAIF,CAAlB,KAEvByD,EAAIkD,oBAAoB,UAAW/D,EAAAsF,MAAMG,sBAAsBrI,EAAQoI,GAAK,gBAA5E,EACAxF,EAAAsF,MAAMG,sBAAsBrI,EAAQoI,GAAK,iBAAmB,KAGjE,EAvFM0Q,EAAAY,gBAA6C,GADzC5a,EAAAga,cAyFbA,C,+FC7FC,SAAAmB,K,qCACQA,EAAAC,gBAAP,SAAuBC,EAASC,EAAUC,EAAWC,EAASC,EAASC,GACrEL,EAAQM,WAAa,WACfH,GACFL,EAAYS,2BAA2BP,EAASC,CAAhD,EAEEG,IACFF,EAAUtO,WAAaoO,EAAQpO,WAElC,EAGDU,WAAW,WACT0N,GAAWA,EAAQM,WAAR,CACZ,EAAE,GAFH,EAIAN,EAAQvT,kBAAoBuT,EAAQvT,iBAAiB,SAAUuT,EAAQM,UAA3C,EAC5BtZ,OAAOyF,iBAAiB,SAAUuT,EAAQM,UAA1C,EAEID,GACFP,EAAYU,qBAAqBP,CAAjC,CAEH,EAEMH,EAAAW,kBAAP,SAAyBT,GACnBA,IACFA,EAAQxT,qBAAuBwT,EAAQxT,oBAAoB,SAAUwT,EAAQM,UAA9C,EAC/BtZ,OAAOwF,oBAAoB,SAAUwT,EAAQM,UAA7C,EAEH,EAEMR,EAAAS,2BAAP,SAAkCP,EAASC,GAEzC,IAAIrO,EAAaoO,EAAQpO,WACrB3C,EAAc+Q,EAAQ/Q,YACtBkH,EAAc6J,EAAQ7J,YAEtBuK,EAAW,CAAA,EACXC,EAAY,CAAA,EAEX1R,GAAekH,GAA8B,GAAflH,EAEjC0R,EADAD,EAAW,CAAA,EAGU,GAAd9O,EAEP+O,EAAY,EADZD,EAAW,CAAA,GAGJ7R,KAAK+R,IAAI3R,GAAe2C,EAAauE,EAArC,GAAsD,EAE7DuK,EAAW,EADXC,EAAY,CAAA,GAKZA,EADAD,EAAW,CAAA,EAIbA,EAAWT,EAASvK,UAAUiD,IAAI,qBAAvB,EAAgDsH,EAASvK,UAAUrL,OAAO,qBAA1B,EAC3DsW,EAAYV,EAASvK,UAAUiD,IAAI,sBAAvB,EAAiDsH,EAASvK,UAAUrL,OAAO,sBAA1B,CAC9D,EAEMyV,EAAAU,qBAAP,SAA4BK,GAE1B,IAAMC,EAAOD,EAAanO,iBAAiB,KAA9B,EAEbmO,EAAaE,MAAMrO,iBAAiB,qBAApC,EAA2DlL,QAAQ,SAACwZ,EAAI9c,GAEtE,IAAM+c,EAAMH,EAAK5c,GACXgd,EAASlX,SAASC,cAAc,KAAvB,EAYf,SAASkX,EAAgBC,GACvBA,EAAIxU,eAAJ,EACAwU,EAAIC,gBAAJ,EAGA,IAAMC,GAAaF,EAAIG,QAAUH,EAAIG,QAAQ,GAAWH,GAARI,MAC1CC,EAAsBT,EAAG5K,YACzBsL,EAAoF,QAApE1a,OAAOqG,iBAAiB2T,EAAI,IAA5B,EAAkCzT,iBAAiB,WAAnD,EAA4E,CAAC,EAAI,EACnGoU,EAAqB,EAGzB,SAAS5V,EAAgBqV,GACvBA,EAAIC,gBAAJ,EACMO,GAAWR,EAAIG,QAAUH,EAAIG,QAAQ,GAAWH,GAARI,MACxCK,EAAYJ,GAAuBG,EAAWN,GAAcI,EAAgB,EACnC,EAA3C7S,KAAK+R,IAAIiB,EAAYF,CAArB,IACFA,EAAqBE,EACrBX,EAAO7U,MAAMhE,MAAQ,GACrB6Y,EAAO7U,MAAM9D,KAAUoZ,EAAkB,KAE5C,CAED,SAASrV,IACkB,EAArBqV,IACFX,EAAG3U,MAAMnE,MAAWyZ,EAAkB,KACtCV,EAAI5U,MAAMnE,MAAWyZ,EAAkB,KACvCT,EAAO7U,MAAMhE,MAAQ,IACrB6Y,EAAO7U,MAAM9D,KAAO,GACpB2Y,EAAOxL,UAAUrL,OAAO,oBAAxB,GAGFL,SAASsB,KAAKkB,oBAAoB,YAAaT,CAA/C,EACA/B,SAASsB,KAAKkB,oBAAoB,UAAWF,CAA7C,EACAtC,SAASsB,KAAKkB,oBAAoB,YAAaT,CAA/C,EACA/B,SAASsB,KAAKkB,oBAAoB,WAAYF,CAA9C,CACD,CA1BD4U,EAAOxL,UAAUiD,IAAI,oBAArB,EA4BIyI,aAAeU,YACjB9X,SAASsB,KAAKmB,iBAAiB,YAAaV,EAAiB,CAAEgW,QAAS,CAAA,CAAX,CAA7D,EACA/X,SAASsB,KAAKmB,iBAAiB,WAAYH,EAAe,CAAEyV,QAAS,CAAA,CAAX,CAA1D,IAEA/X,SAASsB,KAAKmB,iBAAiB,YAAaV,EAAiB,CAAEgW,QAAS,CAAA,CAAX,CAA7D,EACA/X,SAASsB,KAAKmB,iBAAiB,UAAWH,EAAe,CAAEyV,QAAS,CAAA,CAAX,CAAzD,EAEH,CAvDDb,EAAOxL,UAAUiD,IAAI,4BAArB,EACAuI,EAAO7U,MAAMlE,OAAY0Y,EAAalS,aAAY,KAElDqS,EAAGzV,YAAY2V,CAAf,EAGAA,EAAOzU,iBAAiB,YAAa0U,CAArC,EACI,iBAAkBna,QACpBka,EAAOzU,iBAAiB,aAAc0U,CAAtC,CAgDH,CA5DD,CA6DD,EA9HWxc,EAAAmb,YA+HdA,C,uCCxHA,SAAAkC,K,sCACSA,EAAAC,0BAAP,SAAiCC,GAC3BA,EAAIzV,kBACNyV,EAAIzV,iBAAiB,QAASuV,EAAaG,cAA3C,CAEH,EAEMH,EAAAI,6BAAP,SAAoCF,GAClCA,EAAI1V,oBAAoB,QAASwV,EAAaG,cAA9C,CACD,EAEcH,EAAAG,eAAf,SAA8Bre,GAC5BA,EAAEud,gBAAF,EACMgB,EAAUve,EAAEwe,cAAkC7L,WAAW,eAAe8L,UAC9DvY,SAASwY,eAAeH,CAAxB,EACRjY,MAAR,CACD,EAEM4X,EAAAS,UAAP,SAAiB5c,GACfA,EAAQwF,aAAa,OAAQ,OAA7B,EACAxF,EAAQuJ,MAAQ,GAChBvJ,EAAQwF,aAAa,OAAQ,MAA7B,CACD,EAEM2W,EAAAU,YAAP,SAAmB7c,GACjB,GAAIA,EAAQ8c,OAAgC,EAAvB9c,EAAQ8c,MAAM9d,OAAY,CAE7C,IADA,IAAI+d,EAAWrb,MAAA,EACNrD,EAAI,EAAGA,EAAI2B,EAAQ8c,MAAM9d,OAAQX,CAAA,GAAK,CAC7C,IAAI2e,EAAOhd,EAAQ8c,MAAMze,GACnB4e,EAAY3c,KAAK4c,aAAaF,CAAlB,EAClBD,EAASpa,KAAK,CACZqB,SAAUgZ,EAAKG,KACfzK,KAAMsK,EAAKtK,KACX0K,UAAWH,EACX9E,KAAM6E,EAAK7E,IAJC,CAAd,CAMD,CAED,OAAO4E,CACR,CACF,EAEcZ,EAAAe,aAAf,SAA4BF,GAC1B,IAAI/Y,EAAM,KAMV,OALkBoZ,MAAdlc,OAAOmc,IACTrZ,EAAM9C,OAAOmc,IAAIC,gBAAgBP,CAA3B,EACuBK,MAApBlc,OAAOqc,YAChBvZ,EAAM9C,OAAOqc,UAAUD,gBAAgBP,CAAjC,GAED/Y,CACR,EAEMkY,EAAAsB,WAAP,SAAkBzd,EAAS0d,EAAOC,EAAMC,EAASpB,EAAQvY,EAAKkZ,EAAMU,EAAUC,EAAeC,EAAeC,EAAaC,GACvH,IAAIC,EAAW,IAAIC,SACfnB,EAAOhd,EAAQ8c,MAAMY,GACrBhL,EAAOsK,EAAKtK,KAEhB,GADAwL,EAASpS,OAAOqR,EAAMH,CAAtB,EACY,MAARW,EACF,IAAK,IAAIre,KAAOqe,EACdO,EAASpS,OAAOxM,EAAKqe,EAAKre,EAA1B,EAGJ,IAAM8e,EAAM,IAAIC,eAoBhB,GAnBAD,EAAIE,mBAAqB,WACA,IAAnBF,EAAIG,aAEFH,EAAII,OAAS,KAAoB,IAAbJ,EAAII,OAE1BX,EAASld,kBAAkBqd,EAAaxB,EAAQ4B,EAAIK,YAApD,EAGFZ,EAASld,kBAAkBod,EAAevB,EAAQ4B,EAAIK,YAAtD,EAEH,EACDL,EAAIM,OAAOC,WAAa,SAAUxY,GAC5ByY,EAAU5V,KAAK6V,MAAM1Y,EAAM2Y,OAASpM,EAAO,GAAjC,EACdmL,EAASld,kBAAkBmd,EAAetB,EAAQoC,CAAlD,CACD,EACDR,EAAIW,QAAU,SAAU9gB,GACtB4f,EAASld,kBAAkBqd,EAAaxB,EAAQ,OAAhD,CACD,EACD4B,EAAIY,KAAKf,EAAQha,EAAK,CAAA,CAAtB,EACe,MAAX2Z,EACF,IAAK,IAAIqB,KAAUrB,EACjBQ,EAAIc,iBAAiBD,EAAQrB,EAAQqB,EAArC,EAGJb,EAAIe,KAAKjB,CAAT,CACD,EAxFUpf,EAAAqd,aAyFbA,C,wHC/FiB,SAAXiD,EAAYC,EAAIC,GAAA,KAAA,IAAAA,IAAAA,EAAA,KAClB,IAAIC,EACA7P,EAAQ,CAAC,IAAI8P,KACjB,OAAO,W,IAAA,IAAAlV,EAAAhK,KAAUmf,EAAA,GAAAC,EAAA,EAAAA,EAAAC,UAAA3gB,OAAA0gB,CAAA,GAAAD,EAAAC,GAAAC,UAAAD,GACb,IAAoBE,EAAU,CAAC,IAAIJ,KAEnCre,OAAO0e,aAAaN,CAApB,EACuBD,GAAnBM,EAAUlQ,GAEV2P,EAAGS,MALOxf,KAKQmf,CAAlB,EACA/P,EAAQkQ,GAIRL,EAAUpe,OAAOsL,WAAW,WAExB4S,EAAGS,MAAMxV,EAAMmV,CAAf,CACH,EAAEH,CAHO,CAKjB,CACJ,CApBD,IAsBMS,EAAW,IAAInf,IAEfof,EAAiB,CACnBC,WAAY,CAAA,CADO,EAIvBC,GAwBIA,EAAA7Q,UAAA8Q,gBAAA,WACI,IAAMC,EAAO9f,KAAK+f,WAAWC,sBAAhB,EACb,MAAO,CACH5d,KAAM0d,EAAK1d,KACXH,IAAK6d,EAAK7d,GAFP,CAIV,EAgGD2d,EAAA7Q,UAAAkR,SAAA,WACI,IAAM1S,EAAUvN,KAAKkgB,SACfvgB,EAAUK,KAAKmgB,SAErB5S,EAAQjH,iBAAiB,YAAatG,KAAKogB,YAAa,CAAA,CAAxD,EACAvf,OAAOyF,iBAAiB,UAAWtG,KAAKqgB,UAAW,CAAA,CAAnD,EACAxc,SAASyC,iBAAiB,YAAatG,KAAKsgB,WAA5C,EACI3gB,EAAQggB,YACR9e,OAAOyF,iBAAiB,SAAUtG,KAAKugB,SAAU,CAAA,CAAjD,CAEP,EAEDX,EAAA7Q,UAAAyR,WAAA,WACoBxgB,KAAKkgB,SAEb7Z,oBAAoB,YAAarG,KAAKogB,YAAa,CAAA,CAA3D,EACAvf,OAAOwF,oBAAoB,UAAWrG,KAAKqgB,UAAW,CAAA,CAAtD,EACAxc,SAASwC,oBAAoB,YAAarG,KAAKsgB,WAA/C,EACItgB,KAAKmgB,SAASR,YACd9e,OAAOwF,oBAAoB,SAAUrG,KAAKugB,SAAU,CAAA,CAApD,CAEP,EAEDX,EAAA7Q,UAAA0R,oBAAA,WACwB,OAAhBzgB,KAAK0gB,SACL1gB,KAAK2gB,SAAW,CAAA,EAChB3gB,KAAK+f,WAAW7a,aAAa,QAASlF,KAAK0gB,MAA3C,EAEP,EACLd,GAlJI,SAAAA,EAAYrS,EAAsBD,EAAwBsT,GAA1D,IAAA5W,EAAAhK,KAPQA,KAAAkgB,SAAwB,KACxBlgB,KAAA+f,WAA0B,KAC1B/f,KAAAmgB,SAAgB,KAChBngB,KAAA6gB,OAAc,KACd7gB,KAAA2gB,SAAoB,CAAA,EACpB3gB,KAAA0gB,OAAiB,KAyBzB1gB,KAAAogB,YAAc,SAACziB,GACX,IAAMiK,EAAQoC,EAAK6W,OAKbzW,GAJNxC,EAAMkZ,SAAW,CAAA,EACjBlZ,EAAMmZ,GAAKpjB,EAAEoI,QACb6B,EAAMoZ,GAAKrjB,EAAEsI,QACb+D,EAAK+V,WAAW7Z,MAAM8C,SAAW,WACXgB,EAAK6V,gBAAL,GAAdzd,EAAIgI,EAAAhI,KAAEH,EAAGmI,EAAAnI,IAEb+H,EAAK2W,WAEL/Y,EAAMqZ,QAAUpd,SAAS6C,gBAAgBmJ,aACnC7F,EAAK+V,WAAWvX,aAAe,EACrCZ,EAAMsZ,QAAUrd,SAAS6C,gBAAgBsJ,YACnChG,EAAK+V,WAAW9P,YAAc,EACpCrI,EAAMqZ,QAAUrZ,EAAMqZ,QAAU,EAAI,EAAIrZ,EAAMqZ,QAC9CrZ,EAAMsZ,QAAUtZ,EAAMsZ,QAAU,EAAI,EAAItZ,EAAMsZ,QAE9ClX,EAAK+V,WAAW7Z,MAAM9D,KAAOA,EAAO,KACpC4H,EAAK+V,WAAW7Z,MAAMjE,IAAMA,EAAM,KAE7B+H,EAAK0W,SACN1W,EAAK0W,OAAS1W,EAAK+V,WAAWoB,aAAa,OAA7B,GAGlBnX,EAAK2W,SAAW,CAAA,GAGpB/Y,EAAMwZ,UAAYhf,EAClBwF,EAAMyZ,UAAYpf,CACrB,EAEDjC,KAAAqgB,UAAY,SAAC1iB,GACT,IAAMiK,EAAQoC,EAAK6W,OAIbzW,GAFNxC,EAAMkZ,SAAW,CAAA,EAEK9W,EAAK6V,gBAAL,GAAdzd,EAAIgI,EAAAhI,KAAEH,EAAGmI,EAAAnI,IACjB2F,EAAMwZ,UAAYhf,EAClBwF,EAAMyZ,UAAYpf,CACrB,EAEDjC,KAAAsgB,YAAcxB,EAAS,SAACnhB,GACpB,IAOQ2jB,EAPF1Z,EAAQoC,EAAK6W,OACfjZ,EAAMkZ,WACFS,EAAO5jB,EAAEoI,QACTyb,EAAO7jB,EAAEsI,QACTwb,EAAOF,EAAO3Z,EAAMmZ,GACpBW,EAAOF,EAAO5Z,EAAMoZ,GAEpBM,EAAU1Z,EAAMwZ,UAAYK,EAC5BE,EAAU/Z,EAAMyZ,UAAYK,EAC5B1X,EAAKmW,SAASR,aACV2B,EAAU,EACVA,EAAU,EAELA,EAAU1Z,EAAMsZ,UACrBI,EAAU1Z,EAAMsZ,SAEhBS,EAAU,EACVA,EAAU,EAELA,EAAU/Z,EAAMqZ,UACrBU,EAAU/Z,EAAMqZ,UAGxBjX,EAAK+V,WAAW7Z,MAAM8C,SAAW,WACjCgB,EAAK+V,WAAW7Z,MAAM0b,OAAS,IAC/B5X,EAAK+V,WAAW7Z,MAAM2b,cAAgB,IACtC7X,EAAK+V,WAAW7Z,MAAM9D,KAAOkf,EAAU,KACvCtX,EAAK+V,WAAW7Z,MAAMjE,IAAM0f,EAAU,KAE7C,EAAE,EA9BW,EA8BPvR,KAAKpQ,IA9BE,EAgCdA,KAAAugB,SAAWzB,EAAS,SAACnhB,GACjB,IAAMiK,EAAQoC,EAAK6W,OAEnBjZ,EAAMqZ,QAAUpd,SAAS6C,gBAAgBmJ,aACnC7F,EAAK+V,WAAWvX,aAAe,EACrCZ,EAAMsZ,QAAUrd,SAAS6C,gBAAgBsJ,YACnChG,EAAK+V,WAAW9P,YAAc,EACpCrI,EAAMqZ,QAAUrZ,EAAMqZ,QAAU,EAAI,EAAIrZ,EAAMqZ,QAC9CrZ,EAAMsZ,QAAUtZ,EAAMsZ,QAAU,EAAI,EAAItZ,EAAMsZ,QAC9CtZ,EAAMyZ,UAAYS,SAAS9X,EAAK+V,WAAW7Z,MAAMjE,GAA/B,EAClB2F,EAAMwZ,UAAYU,SAAS9X,EAAK+V,WAAW7Z,MAAM9D,IAA/B,EACdwF,EAAMyZ,UAAYzZ,EAAMqZ,SACJ,EAAhBrZ,EAAMqZ,UACNjX,EAAK+V,WAAW7Z,MAAMjE,IAAM2F,EAAMqZ,QAAU,MAGhDrZ,EAAMwZ,UAAYxZ,EAAMsZ,UACxBlX,EAAK+V,WAAW7Z,MAAM9D,KAAOwF,EAAMsZ,QAAU,KAEpD,EAAE,EAnBQ,EAmBJ9Q,KAAKpQ,IAnBD,EA/FPA,KAAKkgB,SAAW3S,EAChBvN,KAAK+f,WAAazS,EAClBtN,KAAKmgB,SAAW9Y,OAAO0a,OAAO,GAAIrC,EAAgB,CAC9CC,WAAYiB,CADkC,CAAlC,EAGhB5gB,KAAK6gB,OAAS,CACVC,SAAU,CAAA,EACVC,GAAI,EACJC,GAAI,EACJI,UAAW,EACXC,UAAW,CALD,CAOjB,CA8JI7iB,EAAAwjB,gBAvBT,SAAyBzU,EAAsBD,EAAwBsT,GAAA,KAAA,IAAAA,IAAAA,EAAA,CAAA,GACnE,IAAIqB,EAAUxC,EAAS7f,IAAI2N,CAAb,EACT0U,IACDA,EAAU,IAAIrC,EAAQrS,EAASD,EAAWsT,CAAhC,EACVnB,EAASjgB,IAAI+N,EAAS0U,CAAtB,GAEJA,EAAQhC,SAAR,CACH,EAgByBzhB,EAAA0jB,iBAd1B,SAA0B3U,IAChB0U,EAAUxC,EAAS7f,IAAI2N,CAAb,IAEZ0U,EAAQzB,WAAR,CAEP,EAS2ChiB,EAAA2jB,mBAP5C,SAA4B5U,IAClB0U,EAAUxC,EAAS7f,IAAI2N,CAAb,IAEZ0U,EAAQxB,oBAAR,CAEP,C,4EC/MA,IAAAle,EAAArE,EAAA,WAAA,EACDoE,EAAApE,EAAA,kBAAA,EAEA,SAAAsb,KACSA,EAAA4I,aAAP,SAAoB1iB,EAA2B2iB,EAAmBC,GAG1DrH,EAAMpX,SAAS0e,YAAYF,CAArB,EAEZ,OADApH,EAAIuH,UAAUF,CAAd,EACO5iB,EAAQ+iB,cAAcxH,CAAtB,CACR,EAEMzB,EAAAkJ,oBAAP,SAA2BhjB,EAAS4iB,EAAmB7b,EAAyBxH,GAC7D,SAAX0jB,EAAWxD,GACf,IACSyD,EADHC,EAAM,GACZ,IAASD,KAAKzD,EACF,mBAANyD,IACFC,EAAID,GAAKzD,EAAKyD,IAGlB,IAAME,EAAO3iB,KAAKC,UAAUyiB,EAAK,SAACD,EAAGG,GACnC,OAAIA,aAAaC,KAAa,OAC1BD,aAAaE,OAAe,SACzBF,CACR,EAAE,GAJU,EAMb5W,WAAW,WAAclN,EAAQoB,kBAAkB,SAAUyiB,CAApC,CAA2C,EAAE,CAAtE,EACuB,CAAA,IAAnBrc,GACF0Y,EAAK1Y,eAAL,CAEH,CAjBD,IAmBMtD,EAAMZ,EAAAa,cAAcxD,IAAIF,CAAlB,EACNV,EAASsjB,EAAS,IAAIrjB,EAAQikB,IAGlC/f,EAAI,KAAKnE,GADO,WAAdsjB,EACgBtiB,KAAKmjB,SAAS,WAAM,OAAAR,EAAS,CAAE5S,WAAYlP,OAAOkP,WAAYH,YAAa/O,OAAvD+O,WAAS,CAAT,CAA4E,EAAE,IAAK,CAAA,CAAvG,EAEA+S,EAGpBxf,EAAI,KAAKnE,GAASC,EACjBkE,EAAoBmD,iBAAiBgc,EAAWnf,EAAI,KAAKnE,EAAzD,CACF,EAEMwa,EAAA4J,gCAAP,SAAuC1jB,EAAS4iB,EAAW7b,EAAgBxH,GACnEkE,EAAMZ,EAAAa,cAAcxD,IAAIF,CAAlB,EAERyD,GAAOA,EAAIkgB,mBACbrjB,KAAK0iB,oBAAoBvf,EAAIkgB,kBAAmBf,EAAW7b,EAAgBxH,CAA3E,CAEH,EAEMua,EAAA8J,uBAAP,SAA8B5jB,EAAS4iB,EAAmBrjB,GAClDkE,EAAMZ,EAAAa,cAAcxD,IAAIF,CAAlB,EACNV,EAASsjB,EAAS,IAAIrjB,EAAQikB,IAEhC/f,GACFA,EAAIkD,oBAAoBic,EAAWnf,EAAI,KAAKnE,EAA5C,CAGH,EAEMwa,EAAA+J,eAAP,SAAsBC,EAAcC,GAApC,IAEUtgB,EAFV6G,EAAAhK,KACMwjB,IACIrgB,EAAMZ,EAAAa,cAAcxD,IAAI4jB,CAAlB,EACZC,EAAOA,EAAKC,IAAI,SAAU7hB,GAAK,OAAOA,EAAE8hB,YAAF,CAAkB,CAAjD,EACPrhB,EAAAsF,MAAMG,sBAAsByb,EAAa1b,GAAK,WAAa,SAACnK,GAAM,OAAAqM,EAAK4Z,YAAYjmB,EAAjB8lB,CAAA,CAAyB,EAC1FtgB,EAAoBmD,iBAAiB,UAAWhE,EAAAsF,MAAMG,sBAAsByb,EAAa1b,GAAK,WAAY,CAAA,CAA1G,EAEJ,EAEM0R,EAAAC,sBAAP,SAA6B9b,EAAkBqB,EAAa6kB,GAC1D,GAAIlmB,EAAEqB,IAAI2kB,YAAN,IAAwB3kB,EAAI2kB,YAAJ,GAAqBE,EAAA,EAE/C,OADAlmB,EAAE8I,eAAF,EACO,CAAA,CAEV,EAEM+S,EAAAsK,kBAAP,SAAyBN,GACvB,IACQrgB,EADJqgB,IACIrgB,EAAMZ,EAAAa,cAAcxD,IAAI4jB,CAAlB,KAETrgB,EAAoBkD,oBAAoB,UAAW/D,EAAAsF,MAAMG,sBAAsByb,EAAa1b,GAAK,UAAjG,EACDxF,EAAAsF,MAAMG,sBAAsByb,EAAa1b,GAAK,WAAa,KAGhE,EAEc0R,EAAA2J,SAAf,SAAwBY,EAAMC,EAAMC,GAApC,IACMhF,EADNjV,EAAAhK,KAEE,OAAO,W,IAAC,IAAAmf,EAAA,GAAAC,EAAA,EAAAA,EAAAC,UAAA3gB,OAAA0gB,CAAA,GAAAD,EAAAC,GAAAC,UAAAD,GACN,IAAM8E,EAAUla,EAKVma,EAAUF,GAAa,CAAChF,EAC9BM,aAAaN,CAAb,EACAA,EAAU9S,WANI,WACZ8S,EAAU,KACLgF,GAAWF,EAAKvE,MAAMxV,EAAMmV,CAAjB,CACjB,EAG2B6E,CAAlB,EACNG,GAASJ,EAAKvE,MAAM0E,EAAS/E,CAApB,CACd,CACF,EAEc3F,EAAAoK,YAAf,SAA2BjmB,EAAkB8lB,GAC3C,GAA0C,CAAC,IAAvCA,EAAKtU,QAAQxR,EAAEqB,IAAI2kB,YAAN,CAAb,EAEF,OADAhmB,EAAE8I,eAAF,EACO,CAAA,CAEV,EA1GUjI,EAAAgb,YA2GbA,C,uPC9GC3a,G,gBAAAX,EAAA,cAAA,GACDkmB,GADU3jB,EAAAjC,EAAAK,EAAA,aAAA,eAAA,EACVX,EAAA,sBAAA,GACAmmB,GADS5jB,EAAAjC,EAAA4lB,EAAA,qBAAA,uBAAA,EACTlmB,EAAA,eAAA,GAASuC,EAAAjC,EAAA6lB,EAAA,aAAA,EACT7lB,EAAA8lB,SAAApmB,EAAA,SAAA,C,kHCDA,SAAA4B,K,oCACSA,EAAAkW,UAAP,WACE,MAAO,CACLjG,WAAYlP,OAAOkP,WACnBH,YAAa/O,OAAO+O,WAFf,CAIR,EAEM9P,EAAAF,IAAP,SAAWF,GACT,GAAKA,GAEE,GAAuB,UAAnB,OAAOA,EAAsB,CACtC,GAAgB,WAAZA,EACA,OAAOmB,OACJ,GAAgB,aAAZnB,EACT,OAAOmE,SAETnE,EAAUmE,SAASoB,cAAcvF,CAAvB,CACX,CAAA,MARCA,EAAUmE,SAASsB,KASrB,OAAOzF,CACR,EAEMI,EAAA0V,QAAP,SAAe9V,GACb,IACKG,GAAAA,EADYG,KAAKJ,IAAIF,CAAT,IAEF,GAET6kB,EAAmBvkB,KAAKwkB,sBAAsB3kB,CAA3B,EAkBzB,MAjBiC,CAC/B2G,UAAW3G,EAAW2G,WAAa,EACnCD,WAAY1G,EAAW0G,YAAc,EACrC0J,YAAapQ,EAAWoQ,aAAe,EACvCzH,aAAc3I,EAAW2I,cAAgB,EACzCzB,aAAclH,EAAWkH,cAAgB,EACzC+B,YAAajJ,EAAWiJ,aAAe,EACvC2C,WAAY5L,EAAW4L,YAAc,EACrClI,UAAW1D,EAAW0D,WAAa,EACnCmS,UAAW7V,EAAW6V,WAAa,EACnCC,WAAY9V,EAAW8V,YAAc,EACrC9F,aAAchQ,EAAWgQ,cAAgB,EACzCG,YAAanQ,EAAWmQ,aAAe,EACvC9G,eAAgBrJ,EAAWqJ,gBAAkB,EAC7CkL,YAAa1L,KAAK+b,MAAMF,EAAiBziB,CAA5B,EACbwS,aAAc5L,KAAK+b,MAAMF,EAAiB1iB,CAA5B,CAfiB,CAkBlC,EAEM/B,EAAA0kB,sBAAP,SAA6B9kB,GAC3B,IAQU+L,EACAlI,EATJmhB,EAAyB,CAC7B7iB,EAAG,EACHC,EAAG,CAF0B,EAe/B,OAXgB,OAAZpC,GACEA,EAAQsgB,wBACJ2E,EAAkB9gB,SAAS6C,gBAC3Bke,EAAMllB,EAAQsgB,sBAAR,EACNvU,EAAakZ,EAAgBlZ,WAC7BlI,EAAYohB,EAAgBphB,UAElCmhB,EAAI7iB,EAAI+iB,EAAIxiB,KAAOqJ,EACnBiZ,EAAI5iB,EAAI8iB,EAAI3iB,IAAMsB,GAGfmhB,CACR,EAEM5kB,EAAAkgB,sBAAP,SAA6BtgB,GAC3B,IAAMG,EAAaG,KAAKJ,IAAIF,CAAT,EACnB,OAAIG,GAAcA,EAAWmgB,sBAGpB,CACLje,OAHI+d,EAAOjgB,EAAWmgB,sBAAX,GAGCje,MACZC,OAAQ8d,EAAK9d,OACbC,IAAK6d,EAAK7d,IACVC,MAAO4d,EAAK5d,MACZC,OAAQ2d,EAAK3d,OACbC,KAAM0d,EAAK1d,KACXP,EAAGie,EAAKje,EACRC,EAAGge,EAAKhe,CARH,EAWF,IACR,EAEMhC,EAAA+kB,qBAAP,SAA4BnlB,GACpBG,EAAaG,KAAKJ,IAAIF,CAAT,EACnB,OAAIG,EACEA,EAAWwjB,kBACNrjB,KAAKwV,QAAQ3V,EAAWwjB,iBAAxB,EAEArjB,KAAKwV,QAAQ3V,CAAb,EAGJ,IACR,EAEMC,EAAAuM,iBAAP,WAGE,OAFgBxI,SAASoI,cACNkV,aAAa,IAArB,GAA8B,EAE1C,EAEMrhB,EAAAoW,UAAP,WACE,MAAO,CAAErU,EAAGhB,OAAOkU,YAAajT,EAAGjB,OAAOmQ,WAAnC,CACR,EAEMlR,EAAAglB,SAAP,SAAgBlZ,GACRzI,EAAMnD,KAAKJ,IAAIgM,CAAT,EACZ,OAAQ/H,SAASoI,gBAAkB9I,CACpC,EAEMrD,EAAAilB,aAAP,SAAoBrlB,GACZyD,EAAMnD,KAAKJ,IAAIF,CAAT,EACZ,OAAIyD,EAAYA,EAAI6hB,UACb,IACR,EAEMllB,EAAA6S,aAAP,WACE,OAAOvR,MAAM6jB,KAAKphB,SAAS0I,iBAAiB,GAA1B,CAAX,EAA2C2Y,OAAO,SAACxnB,EAAGC,GAAM,OAAA+K,KAAKE,IAAIlL,EAAG,CAACmD,OAAOqG,iBAAiBvJ,CAAxB,EAA2B+U,QAAxC,CAAA,CAAoD,EAAE,CAAlH,CACR,EAEM5S,EAAAwY,gBAAP,SAAuB5Y,GAErB,IADA,IAAIylB,EAAOnlB,KAAKJ,IAAIF,CAAT,EACJylB,GAAwC,SAAhCA,EAAKC,SAASC,YAAd,GAAwC,CACrD,GAAiF,UAA7ExkB,OAAOqG,iBAAiBie,CAAxB,EAA8B/d,iBAAiB,UAA/C,EAA2Die,YAA3D,EAAwF,MAAO,CAAA,EACnGF,EAAOA,EAAK5Z,UACb,CACD,MAAO,CAAA,CACR,EAEMzL,EAAAsY,uBAAP,SAA8B1Y,GAI5B,IAHA,IAEIgT,EAFAyS,EAAOnlB,KAAKJ,IAAIF,CAAT,EAGJylB,GAAwC,SAAhCA,EAAKC,SAASC,YAAd,GAAwC,CAGrD,GAFAC,EAAiBzkB,OAAOqG,iBAAiBie,CAAxB,EAA8BzS,OAC/CA,EAAS6S,OAAOzD,SAASwD,CAAhB,EACL,CAACC,OAAOC,MAAM9S,CAAb,EACH,OAAOA,EAETyS,EAAOA,EAAK5Z,UACb,CACD,OAAO,IACR,EAEMzL,EAAA2lB,gBAAP,SAAuBC,GAAvB,IAAA1b,EAAAhK,KACM2lB,EAAQ,GAKZ,OAJAD,EAASrkB,QAAQ,SAAAukB,GACfD,EAAMC,EAAG9d,IAAMkC,EAAKwL,QAAQoQ,CAAb,CAChB,CAFD,EAIOD,CACR,EA1JUnnB,EAAAsB,WA2JbA,C,mFC7JC,IAAAyC,EAAArE,EAAA,WAAA,EACDuE,EAAAvE,EAAA,gBAAA,EACAoE,EAAApE,EAAA,kBAAA,EACA2nB,EAAA3nB,EAAA,UAAA,EAGI4nB,EAA0C/I,KAAAA,EACxCgJ,EAAY,IAAIzlB,IAEtB,SAAA0lB,KACSA,EAAAC,iBAAP,SAAwBvmB,GACtBmE,SAASsB,KAAKC,YAAY1F,CAA1B,CACD,EAEMsmB,EAAAE,mBAAP,SAA0BxmB,GACxBmE,SAASsB,KAAKqH,YAAY9M,CAA1B,CACD,EAEMsmB,EAAA7M,aAAP,SAAoBgN,EAAYC,EAAiBC,GAAA,KAAA,IAAAA,IAAAA,EAAA,CAAA,GAC3CC,EAAS/jB,EAAAa,cAAcxD,IAAIwmB,CAAlB,EACb,GAAIE,GAAUH,EAAY,CACxB,GAAIG,aAAkBtD,MAAQmD,aAAsBnD,KAGlD,OAFIqD,EAASC,EAAOC,aAAaJ,EAAYG,EAAOE,UAAvC,EACRF,EAAOlhB,YAAY+gB,CAAnB,EACE,CAAA,EAEPpjB,QAAQF,IAAI,0BAA2ByjB,EAAQH,CAA/C,CAEH,CACD,MAAO,CAAA,CACR,EAEMH,EAAAS,eAAP,SAAsBC,EAAYN,GAC5BE,EAAS/jB,EAAAa,cAAcxD,IAAIwmB,CAAlB,EACTE,GAAUI,GACZJ,EAAO9Z,YAAYka,CAAnB,CAEH,EAEMV,EAAAW,gBAAP,SAAuBjnB,EAAS4Q,GAC9B,IAAInN,EAAmBZ,EAAAa,cAAcxD,IAAIF,CAAlB,EACvB,GAAIyD,EACF,IAAK,IAAInE,KAAOsR,EACdnN,EAAI+B,aAAalG,EAAKsR,EAAWtR,EAAjC,CAGL,EAEMgnB,EAAAY,YAAP,SAAmBlnB,GACZM,KAAK6mB,sBAAsBnnB,CAA3B,GACHM,KAAK8mB,KAAKpnB,EAAQslB,SAAlB,CAEH,EAEcgB,EAAAa,sBAAf,SAAqCnnB,GACnC,IAAIqnB,EAAYljB,SAASmjB,aAAT,EAIZC,GAHuB,EAAvBF,EAAUG,YACZH,EAAUI,gBAAV,EAEUtjB,SAASujB,YAAT,GACZH,EAAMI,WAAW3nB,CAAjB,EACAqnB,EAAUO,SAASL,CAAnB,EACA,IACE,IAAIM,EAAa1jB,SAAS2jB,YAAY,MAArB,EAEjB,OADAT,EAAUI,gBAAV,EACOI,CAIR,CAHC,MAAOE,GAEP,OADAV,EAAUI,gBAAV,EACO,CAAA,CACR,CACF,EAEMnB,EAAAc,KAAP,SAAYhkB,GACL4kB,UAAUC,UAIfD,UAAUC,UAAUC,UAAU9kB,CAA9B,EAAoC+kB,KAAK,WACvC9kB,QAAQF,IAAI,6CAAZ,CACD,EAAE,SAAU4kB,GACX1kB,QAAQ+kB,MAAM,+BAAgCL,CAA9C,CACD,CAJD,EAHEznB,KAAK+nB,4BAA4BjlB,CAAjC,CAQH,EAEckjB,EAAA+B,4BAAf,SAA2CjlB,GACzC,IAAI6H,EAAW9G,SAASC,cAAc,UAAvB,EACf6G,EAAS1B,MAAQnG,EAGjB6H,EAASzE,MAAMjE,IAAM,IACrB0I,EAASzE,MAAM9D,KAAO,IACtBuI,EAASzE,MAAM8C,SAAW,QAE1BnF,SAASsB,KAAKC,YAAYuF,CAA1B,EACAA,EAASyB,MAAT,EACAzB,EAASqd,OAAT,EAEA,IACE,IACIC,EADapkB,SAAS2jB,YAAY,MAArB,EACM,aAAe,eACtCzkB,QAAQF,IAAI,sCAAwColB,CAApD,CAGD,CAFC,MAAOR,GACP1kB,QAAQ+kB,MAAM,iCAAkCL,CAAhD,CACD,CAED5jB,SAASsB,KAAKqH,YAAY7B,CAA1B,CACD,EAEMqb,EAAA5Z,MAAP,SAAaR,EAAUsc,EAA2BC,GAA3B,KAAA,IAAAD,IAAAA,EAAA,CAAA,GAA2B,KAAA,IAAAC,IAAAA,EAA8BtC,EAAMuC,cAAcC,aAClG,IAAIllB,EAAMZ,EAAAa,cAAcxD,IAAIgM,CAAlB,EACV,GAAI,EAAEzI,aAAemlB,aACnB,MAAM,IAAIjqB,MAAM,qCAAV,EAMR,GAJA8E,EAAIiJ,MAAM,CACRmc,cAAeL,CADP,CAAV,EAII/kB,aAAeqlB,kBAAoBrlB,aAAeslB,oBACpD,OAAQN,GACN,KAAKtC,EAAMuC,cAAcM,kBACvBvlB,EAAI6kB,OAAJ,EACA,MACF,KAAKnC,EAAMuC,cAAcO,aACvBxlB,EAAIylB,kBAAkB,EAAG,CAAzB,EACA,MACF,KAAK/C,EAAMuC,cAAcC,YACvBllB,EAAIylB,kBAAkB,CAAC,EAAG,CAAC,CAA3B,CARJ,CAYH,EAGM5C,EAAA9Z,KAAP,SAAYN,GACNzI,EAAMZ,EAAAa,cAAcxD,IAAIgM,CAAlB,EACNzI,GACFA,EAAI+I,KAAJ,CAEH,EAEM8Z,EAAA6C,SAAP,SAAgBjd,EAA4BsI,GACpCxU,EAAU6C,EAAAa,cAAcxD,IAAIgM,CAAlB,EACZsI,GAAiBxU,GAAWA,aAAmB4oB,YACjDpU,EAAc3Q,UAAY7D,EAAQ8G,UACzB9G,GAAWA,aAAmB4oB,aACrC5oB,EAAQopB,eAAe,CAAEC,SAAU,SAAUC,MAAO,UAAWC,OAAQ,OAAhD,CAAvB,CAEL,EAEMjD,EAAAkD,eAAP,SAAsBtd,EAA4BsI,EAA4BiV,GAC5E,IAiBMC,EAhBFC,EADY9mB,EAAAa,cAAcxD,IAAIgM,CAAlB,EACCpF,UACbuf,EAAUnmB,IAAIsU,CAAd,GACAoV,qBAAqBvD,EAAUnmB,IAAIsU,CAAd,CAArB,EAGAiV,GAAY,EACZpD,EAAUvmB,IACN0U,EACAqV,sBAAsB,WAClBrV,EAAc3Q,UAAY8lB,CAC7B,CAFD,CAFJ,GAUED,GADaC,EAAKnV,EAAc3Q,WACR4lB,EAAY,GAE1CpD,EAAUvmB,IACN0U,EACAqV,sBAAsB,WAClBrV,EAAc3Q,WAAa6lB,EACvBlV,EAAc3Q,YAAc8lB,GAC5BrD,EAAmBkD,eAAetd,EAAUsI,EAAeiV,EAAW,EAAtE,CAEP,CALD,CAFJ,EASD,EAEMnD,EAAA1iB,QAAP,SAAekmB,GACb,IAAMC,EAAQC,YAAY,WACxB,IAAMC,EAAW9lB,SAAS6C,gBAAgBnD,WAAaM,SAASsB,KAAK5B,UAE/DqmB,EAAQlhB,KAAKmhB,MADYF,EAAdH,EAAyBA,EAAcG,EAAWA,EAAWH,GAC3C,EAArB,EACVG,IAAaH,EACfM,cAAcL,CAAd,EAEA5oB,OAAOgoB,SAAS,EAAiBc,EAAdH,EAAyBG,EAAWC,EAAQD,EAAWC,CAA1E,CAEH,EAAE,EATW,CAUf,EAGM5D,EAAA+D,aAAP,WAEE,GAAuC,UAAnCC,EADYnmB,SAASoI,eACXzC,QAAQ6b,YAAlB,EAGF,IAFA,IAAI4E,EAASpmB,SAAS6F,qBAAqB,OAA9B,EACTsgB,EAAYnmB,SAASoI,cAChBlO,EAAI,EAAGA,EAAIksB,EAAOvrB,OAAQX,CAAA,GACjC,GAAIksB,EAAOlsB,IAAMisB,EAAW,CAC1B,IAAIE,EAAOD,EAAOlsB,EAAI,GAClBmsB,GAAQA,EAAK9d,OACf8d,EAAK9d,MAAL,EAEF,KACD,CAGN,EAEM4Z,EAAAmE,kBAAP,WACE,IAAIhlB,EAAOtB,SAASsB,KACdilB,EAAe,GAKfC,GAJN,CAAC,WAAY,QAAS,YAAYhpB,QAAQ,SAACrC,GACzCorB,EAAaprB,GAAOmG,EAAKe,MAAMlH,EAChC,CAFD,EAGAsD,EAAAsF,MAAM0iB,kBAAkBjoB,KAAK+nB,CAA7B,EACsBpqB,KAAKuqB,iBAAL,GACtB9nB,EAAA+nB,YAAYC,IAAItlB,EACd,CACE6D,SAAY,WACZjH,MAAS/B,KAAK0qB,aAAL,GAAuC,EAAhBL,EAAoB,eAAeA,EAAa,MAAQ,KACxFM,SAAY,QAHd,CADF,EAMAloB,EAAA+nB,YAAYI,OAAO/mB,SAASsB,KAAM,sBAAlC,CACD,EAEM6gB,EAAA6E,iBAAP,SAAwBC,GAClBA,IACAxoB,EAAAsF,MAAM0iB,kBAAoB,I,MAE1BF,EAAgD,EAAjC9nB,EAAAsF,MAAM0iB,kBAAkB5rB,OAAa4D,EAAAsF,MAAM0iB,kBAAkBS,IAAxB,EAAgC,GAGxFtoB,EAAA+nB,YAAYC,IAAI5mB,SAASsB,KACvB,CACE6D,SAAU,OAAAoB,EAAEggB,EAAA,UAAwBhgB,EAAI,KACxCrI,MAAO,OAAAipB,EAAEZ,EAAA,OAAqBY,EAAI,KAClCL,SAAU,OAAAM,EAAEb,EAAA,UAAwBa,EAAI,IAH1C,CADF,EAMAxoB,EAAA+nB,YAAYU,UAAUrnB,SAASsB,KAAM,sBAArC,CACD,EAEM6gB,EAAA0E,aAAe,WACpB,IAAIC,EAAW9mB,SAASsB,KAAKe,MAAMykB,SACnC,OAAIA,CAAAA,GAAyB,WAAbA,IACT9mB,SAASsB,KAAK4B,cAAgBlG,OAAO+O,aAAe/L,SAAS6C,gBAAgBmJ,aACrF,EAUOmW,EAAAuE,iBAAmB,SAACY,GAC1B,IASQC,EAgBAC,EAzBR,OAD0B,KAAA,IAAAF,IAAAA,EAAA,CAAA,GACF,aAApB,OAAOtnB,SACF,GAGLsnB,CAAAA,GAAiCpO,KAAAA,IAAxB+I,KACLwF,EAAQznB,SAASC,cAAc,KAAvB,GACRoC,MAAMnE,MAAQ,OACpBupB,EAAMplB,MAAMlE,OAAS,SAGfupB,GADAH,EAAQvnB,SAASC,cAAc,KAAvB,GACWoC,OAEd8C,SAAW,WACtBuiB,EAAWtpB,IAAM,IACjBspB,EAAWnpB,KAAO,IAClBmpB,EAAWC,cAAgB,OAC3BD,EAAWE,WAAa,SACxBF,EAAWxpB,MAAQ,QACnBwpB,EAAWvpB,OAAS,QACpBupB,EAAWZ,SAAW,SAEtBS,EAAMhmB,YAAYkmB,CAAlB,EAEAznB,SAASsB,KAAKC,YAAYgmB,CAA1B,EAEMC,EAAiBC,EAAMrb,YAC7Bmb,EAAMllB,MAAMykB,SAAW,SAGnBU,KAFAK,EAAcJ,EAAMrb,eAGtByb,EAAcN,EAAMpb,aAGtBnM,SAASsB,KAAKqH,YAAY4e,CAA1B,EACAtF,EAAsBuF,EAAiBK,GAElC5F,EACR,EA/RUtnB,EAAAwnB,mBAgSbA,C,gGCzSA,aAEAxnB,EAAAmtB,WAAA,CAAA,C,+ECFavD,EAAA5pB,EAAA4pB,gBAAA5pB,EAAA4pB,cAAa,KAKxBA,EAAA,YAAA,GAAA,cAIAA,EAAAA,EAAA,aAAA,GAAA,eAIAA,EAAAA,EAAA,kBAAA,GAAA,mB,8ECHAwD,EAAA7c,UAAA8c,WAAA,SAAWC,GACT,OAAO9rB,KAAK6H,iBAAiBikB,EAC9B,EAWMF,EAAAG,YAAP,WAIE,OAHK/rB,KAAKud,WACRvd,KAAKud,SAAW,IAAIqO,GAEf5rB,KAAKud,QACb,EAzBH,IAAAqO,EA0BAA,EARE,SAAAA,IAdA5rB,KAAA6H,iBAA2C,GAU3C7H,KAAA+H,sBAAyD,GAEzD/H,KAAAsqB,kBAAoB,EAEK,CAlBd9rB,EAAAotB,MAAAA,EA4BAptB,EAAAoJ,MAAQgkB,EAAMG,YAAN,C,4EC/BpB,IAAAltB,EAAAX,EAAA,kBAAA,EAED,SAAAssB,KACSA,EAAAI,OAAP,SAAchf,EAA4BP,G,IACpC3L,EAAUb,EAAAiB,WAAcF,IAAIgM,CAAlB,EACVlM,IACuB,UAArB,OAAO2L,EACT3L,EAAQ6P,UAAUiD,IAAInH,CAAtB,GAEAjB,EAAA1K,EAAQ6P,WAAUiD,IAAGgN,MAAApV,EAAIiB,CAAzB,EAGL,EAEMmf,EAAAU,UAAP,SAAiBtf,EAA4BogB,G,IACvCtsB,EAAUb,EAAAiB,WAAcF,IAAIgM,CAAlB,EACVlM,IACqB,UAAnB,OAAOssB,EACTtsB,EAAQ6P,UAAUrL,OAAO8nB,CAAzB,GAEA5hB,EAAA1K,EAAQ6P,WAAUrL,OAAMsb,MAAApV,EAAI4hB,CAA5B,EAGL,EAEMxB,EAAAyB,mBAAP,SAA0BvsB,EAA2B2L,GAC/CxL,EAAahB,EAAAiB,WAAcF,IAAIF,CAAlB,EACbG,GAAcA,EAAWwjB,mBAC3BxjB,EAAWwjB,kBAAkB9T,UAAUiD,IAAInH,CAA3C,CAEH,EAEMmf,EAAA0B,wBAAP,SAA+BxsB,EAA2B2L,GACpDxL,EAAahB,EAAAiB,WAAcF,IAAIF,CAAlB,EACbG,GAAcA,EAAWwjB,mBAC3BxjB,EAAWwjB,kBAAkB9T,UAAUrL,OAAOmH,CAA9C,CAEH,EAEMmf,EAAA2B,WAAP,SAAkBC,GAChB,OAAOvrB,OAAOsrB,WAAWC,CAAlB,EAAyBC,OACjC,EAEM7B,EAAA8B,SAAP,SAAgB5sB,EAAS6sB,GACvB,OAAI7sB,EAAQsH,aACHtH,EAAQsH,aAAaulB,GACrB1rB,OAAOqG,iBACPrD,SAASsD,YAAYD,iBAAiBxH,EAAS,IAA/C,EAAqD0H,iBAAiBmlB,CAAtE,EADJ,KAAA,CAEN,EAGM/B,EAAAC,IAAP,SAAW/qB,EAAsBmd,EAAuB5T,GACtD,GADsD,KAAA,IAAAA,IAAAA,EAAA,MAClC,UAAhB,OAAO4T,EACT,GAAc,OAAV5T,EAGF,IAFA,IACIujB,EADQ3P,EACc4P,MAAM,GAAZ,EACX1uB,EAAI,EAAGA,EAAIyuB,EAAc9tB,OAAQX,CAAA,GAAK,CAC7C,IAAI2uB,EAAeF,EAAczuB,GAC5B2uB,IACDC,EAAYD,EAAaD,MAAM,GAAnB,EAChB/sB,EAAQwG,MAAM0mB,YAAYD,EAAU,GAAIA,EAAU,EAAlD,EACD,MAGHjtB,EAAQwG,MAAM0mB,YAAY/P,EAAM5T,CAAhC,OAEA,IAAK,IAAIjK,KAAO6d,EACVA,EAAKgQ,eAAe7tB,CAApB,GACFU,EAAQwG,MAAM0mB,YAAY5tB,EAAK6d,EAAK7d,EAApC,CAIP,EAtEUR,EAAAgsB,YAuEbA,C,4ECzECsC,EAAA5uB,EAAA,0BAAA,EAQD2C,OAAOksB,UAAY,CACjBD,QAAOA,CADU,C,sDCRnB,aAEAzlB,OAAA2lB,eAAAxuB,EAAA,aAAA,CAAAyK,MAAA,CAAA,CAAA,CAAA,EAEA,IAAAgkB,EAAA/uB,EAAA,iBAAA,EAEAgvB,EAAA,EAEAC,EAAA,IAEAC,EAAA,IAEAC,EAAA,IAEAC,EAAA,IAEAC,EAAA,EAEAC,EAAA,EAGAC,EAAA,CAAA,CACArQ,MAAA,EACAsQ,QAAA,GACA,EAAA,CACAtQ,MAAA,EACAsQ,QAAA,GACA,EAAA,CACAtQ,MAAA,EACAsQ,QAAA,EACA,EAAA,CACAtQ,MAAA,EACAsQ,QAAA,GACA,EAAA,CACAtQ,MAAA,EACAsQ,QAAA,GACA,EAAA,CACAtQ,MAAA,EACAsQ,QAAA,GACA,EAAA,CACAtQ,MAAA,EACAsQ,QAAA,EACA,EAAA,CACAtQ,MAAA,EACAsQ,QAAA,GACA,EAAA,CACAtQ,MAAA,EACAsQ,QAAA,GACA,EAAA,CACAtQ,MAAA,EACAsQ,QAAA,GACA,GAGA,SAAAC,EAAAC,GACA,IAAAlwB,EAAAkwB,EAAAlwB,EACAmwB,EAAAD,EAAAC,EACAC,EAAAF,EAAAE,EACAC,EAAAd,EAAAe,SAAAtwB,EAAAmwB,EAAAC,CAAA,EACA,MAAA,CACAG,EAAA,IAAAF,EAAAE,EACAC,EAAAH,EAAAG,EACAnL,EAAAgL,EAAAhL,CACA,CACA,CAIA,SAAAoL,EAAAC,GACA,IAAA1wB,EAAA0wB,EAAA1wB,EACAmwB,EAAAO,EAAAP,EACAC,EAAAM,EAAAN,EACA,MAAA,IAAAO,OAAApB,EAAAqB,SAAA5wB,EAAAmwB,EAAAC,EAAA,CAAA,CAAA,CAAA,CACA,CAeA,SAAAS,EAAAR,EAAAhwB,EAAAywB,GAIAC,EADA,IAAA/lB,KAAA+b,MAAAsJ,EAAAE,CAAA,GAAAvlB,KAAA+b,MAAAsJ,EAAAE,CAAA,GAAA,IACAO,EAAA9lB,KAAA+b,MAAAsJ,EAAAE,CAAA,EAAAf,EAAAnvB,EAAA2K,KAAA+b,MAAAsJ,EAAAE,CAAA,EAAAf,EAAAnvB,EAEAywB,EAAA9lB,KAAA+b,MAAAsJ,EAAAE,CAAA,EAAAf,EAAAnvB,EAAA2K,KAAA+b,MAAAsJ,EAAAE,CAAA,EAAAf,EAAAnvB,EASA,OANA0wB,EAAA,EACAA,GAAA,IACA,KAAAA,IACAA,GAAA,KAGAA,CACA,CAEA,SAAAC,EAAAX,EAAAhwB,EAAAywB,GAEA,OAAA,IAAAT,EAAAE,GAAA,IAAAF,EAAAG,EACAH,EAAAG,GAcA,GARAS,EADAH,EACAT,EAAAG,EAAAf,EAAApvB,EACAA,IAAAyvB,EACAO,EAAAG,EAAAf,EAEAY,EAAAG,EAAAd,EAAArvB,KAKA4wB,EAAA,IAKAA,EADAH,GAAAzwB,IAAAwvB,GAAA,GAAAoB,EACA,GAGAA,GAAA,MACAA,EAAA,KAGApJ,OAAAoJ,EAAAC,QAAA,CAAA,CAAA,EACA,CAEA,SAAAC,EAAAd,EAAAhwB,EAAAywB,GAIAvlB,EADAulB,EACAT,EAAAhL,EAAAsK,EAAAtvB,EAEAgwB,EAAAhL,EAAAuK,EAAAvvB,EAOA,OAJA,EAAAkL,IACAA,EAAA,GAGAsc,OAAAtc,EAAA2lB,QAAA,CAAA,CAAA,CACA,CAEA,SAAAE,EAAAC,GAKA,IAJA,IAAAC,EAAA,EAAA3P,UAAA3gB,QAAAqe,KAAAA,IAAAsC,UAAA,GAAAA,UAAA,GAAA,GACA4P,EAAA,GACAC,EAAAjC,EAAAkC,WAAAJ,CAAA,EAEAhxB,EAAAwvB,EAAA,EAAAxvB,EAAAA,EAAAA,EAAA,CACA,IAAAgwB,EAAAJ,EAAAuB,CAAA,EACAE,EAAAjB,EAAAlB,EAAAkC,WAAA,CACAlB,EAAAM,EAAAR,EAAAhwB,EAAA,CAAA,CAAA,EACAmwB,EAAAQ,EAAAX,EAAAhwB,EAAA,CAAA,CAAA,EACAglB,EAAA8L,EAAAd,EAAAhwB,EAAA,CAAA,CAAA,CACA,CAAA,CAAA,EACAkxB,EAAA5sB,KAAA+sB,CAAA,CACA,CAEAH,EAAA5sB,KAAA8rB,EAAAe,CAAA,CAAA,EAEA,IAAA,IAAA9P,EAAA,EAAAA,GAAAoO,EAAApO,GAAA,EAAA,CACA,IAAAiQ,EAAA1B,EAAAuB,CAAA,EAEAI,EAAAnB,EAAAlB,EAAAkC,WAAA,CACAlB,EAAAM,EAAAc,EAAAjQ,CAAA,EACA8O,EAAAQ,EAAAW,EAAAjQ,CAAA,EACA2D,EAAA8L,EAAAQ,EAAAjQ,CAAA,CACA,CAAA,CAAA,EAEA6P,EAAA5sB,KAAAitB,CAAA,CACA,CAGA,MAAA,SAAAN,EAAAO,MACA9B,EAAA/J,IAAA,SAAA8L,GACA,IA7GAC,EA6GArS,EAAAoS,EAAApS,MACAsQ,EAAA8B,EAAA9B,QAEA,OADAS,GA/GAsB,EA+GAxC,EAAAkC,WAAAH,EAAAU,iBAAA,SAAA,EA/GAC,EA+GA1C,EAAAkC,WAAAF,EAAA7R,EAAA,EA/GAwS,EA+GA,IAAAlC,EA9GAnvB,GAAA,IACA,CACAb,GAAAiyB,EAAAjyB,EAAA+xB,EAAA/xB,GAAAa,EAAAkxB,EAAA/xB,EACAmwB,GAAA8B,EAAA9B,EAAA4B,EAAA5B,GAAAtvB,EAAAkxB,EAAA5B,EACAC,GAAA6B,EAAA7B,EAAA2B,EAAA3B,GAAAvvB,EAAAkxB,EAAA3B,CACA,EAyGA,CAEA,CAAA,EAGAmB,CACA,CAEA,IAAAY,EAAA,CACAC,IAAA,UACAC,QAAA,UACAC,OAAA,UACAC,KAAA,UACAC,OAAA,UACAC,KAAA,UACAC,MAAA,UACAC,KAAA,UACAC,KAAA,UACAC,SAAA,UACAC,OAAA,UACAC,QAAA,UACAC,KAAA,SACA,EACAC,EAAA,GACAC,EAAA,GAWAd,GAVAzoB,OAAAoc,KAAAoM,CAAA,EAAAxuB,QAAA,SAAArC,GACA2xB,EAAA3xB,GAAA8vB,EAAAe,EAAA7wB,EAAA,EACA2xB,EAAA3xB,GAAA6xB,QAAAF,EAAA3xB,GAAA,GAEA4xB,EAAA5xB,GAAA8vB,EAAAe,EAAA7wB,GAAA,CACAuwB,MAAA,OACAG,gBAAA,SACA,CAAA,EACAkB,EAAA5xB,GAAA6xB,QAAAD,EAAA5xB,GAAA,EACA,CAAA,EACA2xB,EAAAb,KACAC,EAAAY,EAAAZ,QACAE,EAAAU,EAAAV,KACAD,EAAAW,EAAAX,OACAE,EAAAS,EAAAT,OACAC,EAAAQ,EAAAR,KACAC,EAAAO,EAAAP,MACAC,EAAAM,EAAAN,KAEAE,EAAAI,EAAAJ,SACAC,EAAAG,EAAAH,OACAC,EAAAE,EAAAF,QACAC,EAAAC,EAAAD,KAEAlyB,EAAA8xB,KANAK,EAAAL,KAOA9xB,EAAA6xB,KAAAA,EACA7xB,EAAA+xB,SAAAA,EACA/xB,EAAAswB,SAAAA,EACAtwB,EAAAyxB,KAAAA,EACAzxB,EAAA4xB,MAAAA,EACA5xB,EAAAkyB,KAAAA,EACAlyB,EAAA2xB,KAAAA,EACA3xB,EAAAiyB,QAAAA,EACAjyB,EAAAwxB,OAAAA,EACAxxB,EAAAoyB,mBAAAA,EACApyB,EAAAmyB,eAAAA,EACAnyB,EAAAqxB,oBAAAA,EACArxB,EAAAgyB,OAAAA,EACAhyB,EAAAsxB,IAAAA,EACAtxB,EAAAuxB,QAAAA,EACAvxB,EAAA0xB,OAAAA,C,8CC9PA,aACA7oB,OAAA2lB,eAAAxuB,EAAA,aAAA,CAAAyK,MAAA,CAAA,CAAA,CAAA,EACAzK,EAAAsyB,oBAAAtyB,EAAAuyB,gBAAAvyB,EAAAwyB,oBAAAxyB,EAAAyyB,oBAAAzyB,EAAA0yB,cAAA1yB,EAAA2yB,UAAA3yB,EAAA8vB,SAAA9vB,EAAA4yB,SAAA5yB,EAAAwvB,SAAAxvB,EAAA6yB,SAAA7yB,EAAA8yB,SAAA9yB,EAAA+yB,SAAA,KAAA,EACA,IAAAC,EAAAtzB,EAAA,QAAA,EAwDA,SAAAuzB,EAAAlzB,EAAAmzB,EAAA7zB,GAOA,OANAA,EAAA,IACAA,GAAA,GAEA,EAAAA,GACAA,EAAAA,EAEAA,EAAA,EAAA,EACAU,EAAA,EAAAV,GAAA6zB,EAAAnzB,GAEAV,EAAA,GACA6zB,EAEA7zB,EAAA,EAAA,EACAU,GAAAmzB,EAAAnzB,IAAA,EAAA,EAAAV,GAAA,EAEAU,CACA,CAwJA,SAAA0yB,EAAAU,GACA,OAAAjpB,KAAA+b,MAAA,IAAAxd,WAAA0qB,CAAA,CAAA,EAAAC,SAAA,EAAA,CACA,CAQA,SAAAb,EAAAc,GACA,OAAA/P,SAAA+P,EAAA,EAAA,CACA,CA7NArzB,EAAA+yB,SAPA,SAAA7zB,EAAAmwB,EAAAC,GACA,MAAA,CACApwB,EAAA,KAAA,EAAA8zB,EAAAM,SAAAp0B,EAAA,GAAA,EACAmwB,EAAA,KAAA,EAAA2D,EAAAM,SAAAjE,EAAA,GAAA,EACAC,EAAA,KAAA,EAAA0D,EAAAM,SAAAhE,EAAA,GAAA,CACA,CACA,EAwCAtvB,EAAA8yB,SAjCA,SAAA5zB,EAAAmwB,EAAAC,GACApwB,GAAA,EAAA8zB,EAAAM,SAAAp0B,EAAA,GAAA,EACAmwB,GAAA,EAAA2D,EAAAM,SAAAjE,EAAA,GAAA,EACAC,GAAA,EAAA0D,EAAAM,SAAAhE,EAAA,GAAA,EACA,IAAAllB,EAAAF,KAAAE,IAAAlL,EAAAmwB,EAAAC,CAAA,EACAiE,EAAArpB,KAAAqpB,IAAAr0B,EAAAmwB,EAAAC,CAAA,EACAG,EAAA,EACAC,EAAA,EACA8D,GAAAppB,EAAAmpB,GAAA,EACA,GAAAnpB,IAAAmpB,EAEA9D,EADAC,EAAA,MAGA,CACA,IAAAyD,EAAA/oB,EAAAmpB,EACA7D,EAAA,GAAA8D,EAAAL,GAAA,EAAA/oB,EAAAmpB,GAAAJ,GAAA/oB,EAAAmpB,GACA,OAAAnpB,GACA,KAAAlL,EACAuwB,GAAAJ,EAAAC,GAAA6D,GAAA9D,EAAAC,EAAA,EAAA,GACA,MACA,KAAAD,EACAI,GAAAH,EAAApwB,GAAAi0B,EAAA,EACA,MACA,KAAA7D,EACAG,GAAAvwB,EAAAmwB,GAAA8D,EAAA,CAIA,CACA1D,GAAA,CACA,CACA,MAAA,CAAAA,EAAAA,EAAAC,EAAAA,EAAA8D,EAAAA,CAAA,CACA,EAgDAxzB,EAAA6yB,SAtBA,SAAApD,EAAAC,EAAA8D,GACA,IAeAt0B,EACAmwB,EACAC,EAEA,OAhBAG,GAAA,EAAAuD,EAAAM,SAAA7D,EAAA,GAAA,EACAC,GAAA,EAAAsD,EAAAM,SAAA5D,EAAA,GAAA,EACA8D,GAAA,EAAAR,EAAAM,SAAAE,EAAA,GAAA,EACA,IAAA9D,EAIAxwB,EADAowB,EADAD,EAAAmE,GAOAt0B,EAAA+zB,EADAlzB,EAAA,EAAAyzB,GADAN,EAAAM,EAAA,GAAAA,GAAA,EAAA9D,GAAA8D,EAAA9D,EAAA8D,EAAA9D,GAEAwD,EAAAzD,EAAA,EAAA,CAAA,EACAJ,EAAA4D,EAAAlzB,EAAAmzB,EAAAzD,CAAA,EACAH,EAAA2D,EAAAlzB,EAAAmzB,EAAAzD,EAAA,EAAA,CAAA,GAEA,CAAAvwB,EAAA,IAAAA,EAAAmwB,EAAA,IAAAA,EAAAC,EAAA,IAAAA,CAAA,CACA,EAuCAtvB,EAAAwvB,SA/BA,SAAAtwB,EAAAmwB,EAAAC,GACApwB,GAAA,EAAA8zB,EAAAM,SAAAp0B,EAAA,GAAA,EACAmwB,GAAA,EAAA2D,EAAAM,SAAAjE,EAAA,GAAA,EACAC,GAAA,EAAA0D,EAAAM,SAAAhE,EAAA,GAAA,EACA,IAAAllB,EAAAF,KAAAE,IAAAlL,EAAAmwB,EAAAC,CAAA,EACAiE,EAAArpB,KAAAqpB,IAAAr0B,EAAAmwB,EAAAC,CAAA,EACAG,EAAA,EACAlL,EAAAna,EACA+oB,EAAA/oB,EAAAmpB,EACA7D,EAAA,IAAAtlB,EAAA,EAAA+oB,EAAA/oB,EACA,GAAAA,IAAAmpB,EACA9D,EAAA,MAEA,CACA,OAAArlB,GACA,KAAAlL,EACAuwB,GAAAJ,EAAAC,GAAA6D,GAAA9D,EAAAC,EAAA,EAAA,GACA,MACA,KAAAD,EACAI,GAAAH,EAAApwB,GAAAi0B,EAAA,EACA,MACA,KAAA7D,EACAG,GAAAvwB,EAAAmwB,GAAA8D,EAAA,CAIA,CACA1D,GAAA,CACA,CACA,MAAA,CAAAA,EAAAA,EAAAC,EAAAA,EAAAnL,EAAAA,CAAA,CACA,EAuBAvkB,EAAA4yB,SAfA,SAAAnD,EAAAC,EAAAnL,GACAkL,EAAA,GAAA,EAAAuD,EAAAM,SAAA7D,EAAA,GAAA,EACAC,GAAA,EAAAsD,EAAAM,SAAA5D,EAAA,GAAA,EACAnL,GAAA,EAAAyO,EAAAM,SAAA/O,EAAA,GAAA,EACA,IAAAhlB,EAAA2K,KAAA6V,MAAA0P,CAAA,EAEA1vB,EAAAwkB,GAAA,EAAAmL,GACAwD,EAAA3O,GAAA,GAAA/kB,EAFAiwB,EAAAlwB,GAEAmwB,GAMA,MAAA,CAAAxwB,EAAA,IAHA,CAAAqlB,EAAA2O,EAAAnzB,EAAAA,EAAAV,EAFAklB,GAAA,GAAA,EAAA/kB,GAAAkwB,GAEAnL,GAAAkP,EADAl0B,EAAA,GAIA8vB,EAAA,IAFA,CAAAhwB,EAAAklB,EAAAA,EAAA2O,EAAAnzB,EAAAA,GAAA0zB,GAEAnE,EAAA,IADA,CAAAvvB,EAAAA,EAAAV,EAAAklB,EAAAA,EAAA2O,GAAAO,EACA,CACA,EAuBAzzB,EAAA8vB,SAfA,SAAA5wB,EAAAmwB,EAAAC,EAAAoE,GAOA,OANAC,EAAA,EACA,EAAAX,EAAAY,MAAA1pB,KAAA+b,MAAA/mB,CAAA,EAAAk0B,SAAA,EAAA,CAAA,GACA,EAAAJ,EAAAY,MAAA1pB,KAAA+b,MAAAoJ,CAAA,EAAA+D,SAAA,EAAA,CAAA,GACA,EAAAJ,EAAAY,MAAA1pB,KAAA+b,MAAAqJ,CAAA,EAAA8D,SAAA,EAAA,CAAA,GAGAM,GACAC,EAAA,GAAAE,WAAAF,EAAA,GAAAG,OAAA,CAAA,CAAA,GACAH,EAAA,GAAAE,WAAAF,EAAA,GAAAG,OAAA,CAAA,CAAA,GACAH,EAAA,GAAAE,WAAAF,EAAA,GAAAG,OAAA,CAAA,CAAA,EACAH,EAAA,GAAAG,OAAA,CAAA,EAAAH,EAAA,GAAAG,OAAA,CAAA,EAAAH,EAAA,GAAAG,OAAA,CAAA,EAEAH,EAAAI,KAAA,EAAA,CACA,EA0BA/zB,EAAA2yB,UAjBA,SAAAzzB,EAAAmwB,EAAAC,EAAA1vB,EAAAo0B,GAQA,OAPAL,EAAA,EACA,EAAAX,EAAAY,MAAA1pB,KAAA+b,MAAA/mB,CAAA,EAAAk0B,SAAA,EAAA,CAAA,GACA,EAAAJ,EAAAY,MAAA1pB,KAAA+b,MAAAoJ,CAAA,EAAA+D,SAAA,EAAA,CAAA,GACA,EAAAJ,EAAAY,MAAA1pB,KAAA+b,MAAAqJ,CAAA,EAAA8D,SAAA,EAAA,CAAA,GACA,EAAAJ,EAAAY,MAAAnB,EAAA7yB,CAAA,CAAA,GAGAo0B,GACAL,EAAA,GAAAE,WAAAF,EAAA,GAAAG,OAAA,CAAA,CAAA,GACAH,EAAA,GAAAE,WAAAF,EAAA,GAAAG,OAAA,CAAA,CAAA,GACAH,EAAA,GAAAE,WAAAF,EAAA,GAAAG,OAAA,CAAA,CAAA,GACAH,EAAA,GAAAE,WAAAF,EAAA,GAAAG,OAAA,CAAA,CAAA,EACAH,EAAA,GAAAG,OAAA,CAAA,EAAAH,EAAA,GAAAG,OAAA,CAAA,EAAAH,EAAA,GAAAG,OAAA,CAAA,EAAAH,EAAA,GAAAG,OAAA,CAAA,EAEAH,EAAAI,KAAA,EAAA,CACA,EAeA/zB,EAAA0yB,cATA,SAAAxzB,EAAAmwB,EAAAC,EAAA1vB,GAOA,MANA,EACA,EAAAozB,EAAAY,MAAAnB,EAAA7yB,CAAA,CAAA,GACA,EAAAozB,EAAAY,MAAA1pB,KAAA+b,MAAA/mB,CAAA,EAAAk0B,SAAA,EAAA,CAAA,GACA,EAAAJ,EAAAY,MAAA1pB,KAAA+b,MAAAoJ,CAAA,EAAA+D,SAAA,EAAA,CAAA,GACA,EAAAJ,EAAAY,MAAA1pB,KAAA+b,MAAAqJ,CAAA,EAAA8D,SAAA,EAAA,CAAA,GAEAW,KAAA,EAAA,CACA,EAMA/zB,EAAAyyB,oBAAAA,EAKAzyB,EAAAwyB,oBAHA,SAAA/C,GACA,OAAA8C,EAAA9C,CAAA,EAAA,GACA,EAMAzvB,EAAAuyB,gBAAAA,EAQAvyB,EAAAsyB,oBAPA,SAAA/B,GACA,MAAA,CACArxB,EAAAqxB,GAAA,GACAlB,GAAA,MAAAkB,IAAA,EACAjB,EAAA,IAAAiB,CACA,CACA,C,qCCxPA,aACA1nB,OAAA2lB,eAAAxuB,EAAA,aAAA,CAAAyK,MAAA,CAAA,CAAA,CAAA,EACAzK,EAAAi0B,MAAA,KAAA,EAKAj0B,EAAAi0B,MAAA,CACAC,UAAA,UACAC,aAAA,UACAC,KAAA,UACAC,WAAA,UACAC,MAAA,UACAC,MAAA,UACAC,OAAA,UACAC,MAAA,UACAC,eAAA,UACA5C,KAAA,UACA6C,WAAA,UACAC,MAAA,UACAC,UAAA,UACAC,UAAA,UACAC,WAAA,UACAC,UAAA,UACAC,MAAA,UACAC,eAAA,UACAC,SAAA,UACAC,QAAA,UACAvD,KAAA,UACAwD,SAAA,UACAC,SAAA,UACAC,cAAA,UACAC,SAAA,UACAC,UAAA,UACAC,SAAA,UACAC,UAAA,UACAC,YAAA,UACAC,eAAA,UACAC,WAAA,UACAC,WAAA,UACAC,QAAA,UACAC,WAAA,UACAC,aAAA,UACAC,cAAA,UACAC,cAAA,UACAC,cAAA,UACAC,cAAA,UACAC,WAAA,UACAC,SAAA,UACAC,YAAA,UACAC,QAAA,UACAC,QAAA,UACAC,WAAA,UACAC,UAAA,UACAC,YAAA,UACAC,YAAA,UACAC,QAAA,UACAC,UAAA,UACAC,WAAA,UACAC,UAAA,UACA1F,KAAA,UACA2F,KAAA,UACAxF,MAAA,UACAyF,YAAA,UACAnF,KAAA,UACAoF,SAAA,UACAC,QAAA,UACAC,UAAA,UACAC,OAAA,UACAC,MAAA,UACAC,MAAA,UACAC,cAAA,UACAC,SAAA,UACAC,UAAA,UACAC,aAAA,UACAC,UAAA,UACAC,WAAA,UACAC,UAAA,UACAC,qBAAA,UACAC,UAAA,UACAC,WAAA,UACAC,UAAA,UACAC,UAAA,UACAC,YAAA,UACAC,cAAA,UACAC,aAAA,UACAC,eAAA,UACAC,eAAA,UACAC,eAAA,UACAC,YAAA,UACAnH,KAAA,UACAoH,UAAA,UACAC,MAAA,UACA/G,QAAA,UACAgH,OAAA,UACAC,iBAAA,UACAC,WAAA,UACAC,aAAA,UACAC,aAAA,UACAC,eAAA,UACAC,gBAAA,UACAC,kBAAA,UACAC,gBAAA,UACAC,gBAAA,UACAC,aAAA,UACAC,UAAA,UACAC,UAAA,UACAC,SAAA,UACAC,YAAA,UACAC,KAAA,UACAC,QAAA,UACAC,MAAA,UACAC,UAAA,UACA3I,OAAA,UACA4I,UAAA,UACAC,OAAA,UACAC,cAAA,UACAC,UAAA,UACAC,cAAA,UACAC,cAAA,UACAC,WAAA,UACAC,UAAA,UACAC,KAAA,UACAC,KAAA,UACAC,KAAA,UACAC,WAAA,UACA/I,OAAA,UACAgJ,cAAA,UACA1J,IAAA,UACA2J,UAAA,UACAC,UAAA,UACAC,YAAA,UACAC,OAAA,UACAC,WAAA,UACAC,SAAA,UACAC,SAAA,UACAC,OAAA,UACAC,OAAA,UACAC,QAAA,UACAC,UAAA,UACAC,UAAA,UACAC,UAAA,UACAC,KAAA,UACAC,YAAA,UACAC,UAAA,UACAC,IAAA,UACAC,KAAA,UACAC,QAAA,UACAC,OAAA,UACAC,UAAA,UACAC,OAAA,UACAC,MAAA,UACAC,MAAA,UACAC,WAAA,UACA/K,OAAA,UACAgL,YAAA,SACA,C,0BC5JA,aACA7zB,OAAA2lB,eAAAxuB,EAAA,aAAA,CAAAyK,MAAA,CAAA,CAAA,CAAA,EACAzK,EAAA28B,eAAA38B,EAAA48B,oBAAA58B,EAAA2wB,WAAA,KAAA,EAEA,IAAAkM,EAAAn9B,EAAA,cAAA,EACAo9B,EAAAp9B,EAAA,mBAAA,EACAszB,EAAAtzB,EAAA,QAAA,EAgEAM,EAAA2wB,WA7CA,SAAAJ,GACA,IAIAiD,EAJAuJ,EAAA,CAAA79B,EAAA,EAAAmwB,EAAA,EAAAC,EAAA,CAAA,EACA1vB,EAAA,EACA8vB,EAAA,KAGAsN,EAAA,CAAA,EACA/wB,EAAA,CAAA,EA6BA,MAzBA,UAAA,OAFAskB,EADA,UAAA,OAAAA,EACAqM,EAAArM,CAAA,EAEAA,KACAoM,EAAApM,EAAArxB,CAAA,GAAAy9B,EAAApM,EAAAlB,CAAA,GAAAsN,EAAApM,EAAAjB,CAAA,GACAyN,GAAA,EAAAF,EAAA9J,UAAAxC,EAAArxB,EAAAqxB,EAAAlB,EAAAkB,EAAAjB,CAAA,EACA0N,EAAA,CAAA,EACA/wB,EAAA,MAAAgxB,OAAA1M,EAAArxB,CAAA,EAAA4R,OAAA,CAAA,CAAA,EAAA,OAAA,OAEA6rB,EAAApM,EAAAd,CAAA,GAAAkN,EAAApM,EAAAb,CAAA,GAAAiN,EAAApM,EAAAhM,CAAA,GACAmL,GAAA,EAAAsD,EAAAkK,qBAAA3M,EAAAb,CAAA,EACAnL,GAAA,EAAAyO,EAAAkK,qBAAA3M,EAAAhM,CAAA,EACAwY,GAAA,EAAAF,EAAAjK,UAAArC,EAAAd,EAAAC,EAAAnL,CAAA,EACAyY,EAAA,CAAA,EACA/wB,EAAA,OAEA0wB,EAAApM,EAAAd,CAAA,GAAAkN,EAAApM,EAAAb,CAAA,GAAAiN,EAAApM,EAAAiD,CAAA,IACA9D,GAAA,EAAAsD,EAAAkK,qBAAA3M,EAAAb,CAAA,EACA8D,GAAA,EAAAR,EAAAkK,qBAAA3M,EAAAiD,CAAA,EACAuJ,GAAA,EAAAF,EAAAhK,UAAAtC,EAAAd,EAAAC,EAAA8D,CAAA,EACAwJ,EAAA,CAAA,EACA/wB,EAAA,OAEApD,OAAA0H,UAAA8d,eAAApuB,KAAAswB,EAAA,GAAA,KACA3wB,EAAA2wB,EAAA3wB,GAGAA,GAAA,EAAAozB,EAAAmK,YAAAv9B,CAAA,EACA,CACAo9B,GAAAA,EACA/wB,OAAAskB,EAAAtkB,QAAAA,EACA/M,EAAAgL,KAAAqpB,IAAA,IAAArpB,KAAAE,IAAA2yB,EAAA79B,EAAA,CAAA,CAAA,EACAmwB,EAAAnlB,KAAAqpB,IAAA,IAAArpB,KAAAE,IAAA2yB,EAAA1N,EAAA,CAAA,CAAA,EACAC,EAAAplB,KAAAqpB,IAAA,IAAArpB,KAAAE,IAAA2yB,EAAAzN,EAAA,CAAA,CAAA,EACA1vB,EAAAA,CACA,CACA,EAGA,IAIAw9B,EAAA,MAAAvN,OAFA,uBAEA,OAAA,EAAAA,OAJA,gBAIA,GAAA,EAIAwN,EAAA,cAAAxN,OAAAuN,EAAA,YAAA,EAAAvN,OAAAuN,EAAA,YAAA,EAAAvN,OAAAuN,EAAA,WAAA,EACAE,EAAA,cAAAzN,OAAAuN,EAAA,YAAA,EAAAvN,OAAAuN,EAAA,YAAA,EAAAvN,OAAAuN,EAAA,YAAA,EAAAvN,OAAAuN,EAAA,WAAA,EACAG,EAAA,CACAH,SAAA,IAAAI,OAAAJ,CAAA,EACAL,IAAA,IAAAS,OAAA,MAAAH,CAAA,EACAI,KAAA,IAAAD,OAAA,OAAAF,CAAA,EACAI,IAAA,IAAAF,OAAA,MAAAH,CAAA,EACAM,KAAA,IAAAH,OAAA,OAAAF,CAAA,EACA/N,IAAA,IAAAiO,OAAA,MAAAH,CAAA,EACAO,KAAA,IAAAJ,OAAA,OAAAF,CAAA,EACAO,KAAA,uDACAC,KAAA,uDACAC,KAAA,uEACAC,KAAA,sEACA,EAKA,SAAApB,EAAArM,GAEA,GAAA,KADAA,EAAAA,EAAA0N,KAAA,EAAApX,YAAA,GACA3mB,OACA,MAAA,CAAA,EAEA,IAAAg+B,EAAA,CAAA,EACA,GAAApB,EAAA7I,MAAA1D,GACAA,EAAAuM,EAAA7I,MAAA1D,GACA2N,EAAA,CAAA,OAEA,GAAA,gBAAA3N,EACA,MAAA,CAAArxB,EAAA,EAAAmwB,EAAA,EAAAC,EAAA,EAAA1vB,EAAA,EAAAqM,OAAA,MAAA,EAMA,IAAAkyB,EAAAZ,EAAAR,IAAAqB,KAAA7N,CAAA,EACA,OAAA4N,EACA,CAAAj/B,EAAAi/B,EAAA,GAAA9O,EAAA8O,EAAA,GAAA7O,EAAA6O,EAAA,EAAA,GAEAA,EAAAZ,EAAAE,KAAAW,KAAA7N,CAAA,GAEA,CAAArxB,EAAAi/B,EAAA,GAAA9O,EAAA8O,EAAA,GAAA7O,EAAA6O,EAAA,GAAAv+B,EAAAu+B,EAAA,EAAA,GAEAA,EAAAZ,EAAAG,IAAAU,KAAA7N,CAAA,GAEA,CAAAd,EAAA0O,EAAA,GAAAzO,EAAAyO,EAAA,GAAA3K,EAAA2K,EAAA,EAAA,GAEAA,EAAAZ,EAAAI,KAAAS,KAAA7N,CAAA,GAEA,CAAAd,EAAA0O,EAAA,GAAAzO,EAAAyO,EAAA,GAAA3K,EAAA2K,EAAA,GAAAv+B,EAAAu+B,EAAA,EAAA,GAEAA,EAAAZ,EAAAhO,IAAA6O,KAAA7N,CAAA,GAEA,CAAAd,EAAA0O,EAAA,GAAAzO,EAAAyO,EAAA,GAAA5Z,EAAA4Z,EAAA,EAAA,GAEAA,EAAAZ,EAAAK,KAAAQ,KAAA7N,CAAA,GAEA,CAAAd,EAAA0O,EAAA,GAAAzO,EAAAyO,EAAA,GAAA5Z,EAAA4Z,EAAA,GAAAv+B,EAAAu+B,EAAA,EAAA,GAEAA,EAAAZ,EAAAS,KAAAI,KAAA7N,CAAA,GAEA,CACArxB,GAAA,EAAA29B,EAAAtK,iBAAA4L,EAAA,EAAA,EACA9O,GAAA,EAAAwN,EAAAtK,iBAAA4L,EAAA,EAAA,EACA7O,GAAA,EAAAuN,EAAAtK,iBAAA4L,EAAA,EAAA,EACAv+B,GAAA,EAAAi9B,EAAArK,qBAAA2L,EAAA,EAAA,EACAlyB,OAAAiyB,EAAA,OAAA,MACA,GAEAC,EAAAZ,EAAAO,KAAAM,KAAA7N,CAAA,GAEA,CACArxB,GAAA,EAAA29B,EAAAtK,iBAAA4L,EAAA,EAAA,EACA9O,GAAA,EAAAwN,EAAAtK,iBAAA4L,EAAA,EAAA,EACA7O,GAAA,EAAAuN,EAAAtK,iBAAA4L,EAAA,EAAA,EACAlyB,OAAAiyB,EAAA,OAAA,KACA,GAEAC,EAAAZ,EAAAQ,KAAAK,KAAA7N,CAAA,GAEA,CACArxB,GAAA,EAAA29B,EAAAtK,iBAAA4L,EAAA,GAAAA,EAAA,EAAA,EACA9O,GAAA,EAAAwN,EAAAtK,iBAAA4L,EAAA,GAAAA,EAAA,EAAA,EACA7O,GAAA,EAAAuN,EAAAtK,iBAAA4L,EAAA,GAAAA,EAAA,EAAA,EACAv+B,GAAA,EAAAi9B,EAAArK,qBAAA2L,EAAA,GAAAA,EAAA,EAAA,EACAlyB,OAAAiyB,EAAA,OAAA,MACA,EAEAC,CAAAA,EAAAA,EAAAZ,EAAAM,KAAAO,KAAA7N,CAAA,IAEA,CACArxB,GAAA,EAAA29B,EAAAtK,iBAAA4L,EAAA,GAAAA,EAAA,EAAA,EACA9O,GAAA,EAAAwN,EAAAtK,iBAAA4L,EAAA,GAAAA,EAAA,EAAA,EACA7O,GAAA,EAAAuN,EAAAtK,iBAAA4L,EAAA,GAAAA,EAAA,EAAA,EACAlyB,OAAAiyB,EAAA,OAAA,KACA,CAGA,CAMA,SAAAvB,EAAApM,GACA,OAAA8N,QAAAd,EAAAH,SAAAgB,KAAAnB,OAAA1M,CAAA,CAAA,CAAA,CACA,CAPAvwB,EAAA48B,oBAAAA,EAQA58B,EAAA28B,eAAAA,C,8EC5LA,aACA9zB,OAAA2lB,eAAAxuB,EAAA,aAAA,CAAAyK,MAAA,CAAA,CAAA,CAAA,EACAzK,EAAAs+B,aAAAt+B,EAAAu+B,UAAA,KAAA,EACA,IAAAC,EAAA9+B,EAAA,SAAA,EACAszB,EAAAtzB,EAAA,QAAA,EAgBAM,EAAAu+B,UAXA,SAAAE,EAAAjO,GACA,IAAAkO,EAAA,CACAx/B,GAAA,EAAA8zB,EAAAkK,qBAAAuB,EAAAv/B,CAAA,EACAmwB,GAAA,EAAA2D,EAAAkK,qBAAAuB,EAAApP,CAAA,EACAC,GAAA,EAAA0D,EAAAkK,qBAAAuB,EAAAnP,CAAA,CACA,EAIA,OAHA/Q,KAAAA,IAAAkgB,EAAA7+B,IACA8+B,EAAA9+B,EAAAmnB,OAAA0X,EAAA7+B,CAAA,GAEA,IAAA4+B,EAAAG,UAAAD,EAAAlO,CAAA,CACA,EAUAxwB,EAAAs+B,aAPA,WACA,OAAA,IAAAE,EAAAG,UAAA,CACAz/B,EAAAgL,KAAA00B,OAAA,EACAvP,EAAAnlB,KAAA00B,OAAA,EACAtP,EAAAplB,KAAA00B,OAAA,CACA,CAAA,CACA,C,kDC5BA,aACA/1B,OAAA2lB,eAAAxuB,EAAA,aAAA,CAAAyK,MAAA,CAAA,CAAA,CAAA,EACAzK,EAAAyuB,UAAAzuB,EAAA2+B,UAAA,KAAA,EACA,IAAA9B,EAAAn9B,EAAA,cAAA,EACAo9B,EAAAp9B,EAAA,mBAAA,EACAm/B,EAAAn/B,EAAA,gBAAA,EACAszB,EAAAtzB,EAAA,QAAA,EACAi/B,GAsCAA,EAAApuB,UAAAuuB,OAAA,WACA,OAAAt9B,KAAAu9B,cAAA,EAAA,GACA,EACAJ,EAAApuB,UAAAyuB,QAAA,WACA,MAAA,CAAAx9B,KAAAs9B,OAAA,CACA,EAIAH,EAAApuB,UAAAwuB,cAAA,WAEA,IAAAhC,EAAAv7B,KAAAy9B,MAAA,EACA,OAAA,IAAAlC,EAAA79B,EAAA,IAAA69B,EAAA1N,EAAA,IAAA0N,EAAAzN,GAAA,GACA,EAIAqP,EAAApuB,UAAA2uB,aAAA,WAEA,IAAAnC,EAAAv7B,KAAAy9B,MAAA,EAIAE,EAAApC,EAAA79B,EAAA,IACAkgC,EAAArC,EAAA1N,EAAA,IACAgQ,EAAAtC,EAAAzN,EAAA,IAEAgQ,EADAH,GAAA,OACAA,EAAA,MAIAj1B,KAAAq1B,KAAA,KAAAJ,GAAA,MAAA,GAAA,EAGAK,EADAJ,GAAA,OACAA,EAAA,MAIAl1B,KAAAq1B,KAAA,KAAAH,GAAA,MAAA,GAAA,EAGAK,EADAJ,GAAA,OACAA,EAAA,MAIAn1B,KAAAq1B,KAAA,KAAAF,GAAA,MAAA,GAAA,EAEA,MAAA,MAAAC,EAAA,MAAAE,EAAA,MAAAC,CACA,EAIAd,EAAApuB,UAAAmvB,SAAA,WACA,OAAAl+B,KAAA5B,CACA,EAMA++B,EAAApuB,UAAAovB,SAAA,SAAAC,GAGA,OAFAp+B,KAAA5B,GAAA,EAAAozB,EAAAmK,YAAAyC,CAAA,EACAp+B,KAAAq+B,OAAA31B,KAAA+b,MAAA,IAAAzkB,KAAA5B,CAAA,EAAA,IACA4B,IACA,EAIAm9B,EAAApuB,UAAAuvB,aAAA,WAEA,OAAA,IADAt+B,KAAAu+B,MAAA,EAAArQ,CAEA,EAIAiP,EAAApuB,UAAA4e,MAAA,WACA,IAAAI,GAAA,EAAAsN,EAAArN,UAAAhuB,KAAAtC,EAAAsC,KAAA6tB,EAAA7tB,KAAA8tB,CAAA,EACA,MAAA,CAAAG,EAAA,IAAAF,EAAAE,EAAAC,EAAAH,EAAAG,EAAAnL,EAAAgL,EAAAhL,EAAA3kB,EAAA4B,KAAA5B,CAAA,CACA,EAKA++B,EAAApuB,UAAAyvB,YAAA,WACA,IAAAzQ,GAAA,EAAAsN,EAAArN,UAAAhuB,KAAAtC,EAAAsC,KAAA6tB,EAAA7tB,KAAA8tB,CAAA,EACAG,EAAAvlB,KAAA+b,MAAA,IAAAsJ,EAAAE,CAAA,EACAC,EAAAxlB,KAAA+b,MAAA,IAAAsJ,EAAAG,CAAA,EACAnL,EAAAra,KAAA+b,MAAA,IAAAsJ,EAAAhL,CAAA,EACA,OAAA,IAAA/iB,KAAA5B,EAAA,OAAAiwB,OAAAJ,EAAA,IAAA,EAAAI,OAAAH,EAAA,KAAA,EAAAG,OAAAtL,EAAA,IAAA,EAAA,QAAAsL,OAAAJ,EAAA,IAAA,EAAAI,OAAAH,EAAA,KAAA,EAAAG,OAAAtL,EAAA,KAAA,EAAAsL,OAAAruB,KAAAq+B,OAAA,GAAA,CACA,EAIAlB,EAAApuB,UAAAwvB,MAAA,WACA,IAAArC,GAAA,EAAAb,EAAA/J,UAAAtxB,KAAAtC,EAAAsC,KAAA6tB,EAAA7tB,KAAA8tB,CAAA,EACA,MAAA,CAAAG,EAAA,IAAAiO,EAAAjO,EAAAC,EAAAgO,EAAAhO,EAAA8D,EAAAkK,EAAAlK,EAAA5zB,EAAA4B,KAAA5B,CAAA,CACA,EAKA++B,EAAApuB,UAAA0vB,YAAA,WACA,IAAAvC,GAAA,EAAAb,EAAA/J,UAAAtxB,KAAAtC,EAAAsC,KAAA6tB,EAAA7tB,KAAA8tB,CAAA,EACAG,EAAAvlB,KAAA+b,MAAA,IAAAyX,EAAAjO,CAAA,EACAC,EAAAxlB,KAAA+b,MAAA,IAAAyX,EAAAhO,CAAA,EACA8D,EAAAtpB,KAAA+b,MAAA,IAAAyX,EAAAlK,CAAA,EACA,OAAA,IAAAhyB,KAAA5B,EAAA,OAAAiwB,OAAAJ,EAAA,IAAA,EAAAI,OAAAH,EAAA,KAAA,EAAAG,OAAA2D,EAAA,IAAA,EAAA,QAAA3D,OAAAJ,EAAA,IAAA,EAAAI,OAAAH,EAAA,KAAA,EAAAG,OAAA2D,EAAA,KAAA,EAAA3D,OAAAruB,KAAAq+B,OAAA,GAAA,CACA,EAKAlB,EAAApuB,UAAAof,MAAA,SAAA+D,GAEA,OAAA,EAAAmJ,EAAA/M,UAAAtuB,KAAAtC,EAAAsC,KAAA6tB,EAAA7tB,KAAA8tB,EADAoE,EAAA,KAAA,IAAAA,EAAA,CAAA,EACAA,CAAA,CACA,EAKAiL,EAAApuB,UAAA2vB,YAAA,SAAAxM,GAEA,MAAA,IAAAlyB,KAAAmuB,MADA+D,EAAA,KAAA,IAAAA,EAAA,CAAA,EACAA,CAAA,CACA,EAKAiL,EAAApuB,UAAA4vB,OAAA,SAAAnM,GAEA,OAAA,EAAA6I,EAAAlK,WAAAnxB,KAAAtC,EAAAsC,KAAA6tB,EAAA7tB,KAAA8tB,EAAA9tB,KAAA5B,EADAo0B,EAAA,KAAA,IAAAA,EAAA,CAAA,EACAA,CAAA,CACA,EAKA2K,EAAApuB,UAAA6vB,aAAA,SAAApM,GAEA,MAAA,IAAAxyB,KAAA2+B,OADAnM,EAAA,KAAA,IAAAA,EAAA,CAAA,EACAA,CAAA,CACA,EAKA2K,EAAApuB,UAAA8vB,iBAAA,SAAAC,GAEA,OADA,KAAA,IAAAA,IAAAA,EAAA,CAAA,GACA,IAAA9+B,KAAA5B,EAAA4B,KAAA0+B,YAAAI,CAAA,EAAA9+B,KAAA4+B,aAAAE,CAAA,CACA,EAIA3B,EAAApuB,UAAA0uB,MAAA,WACA,MAAA,CACA//B,EAAAgL,KAAA+b,MAAAzkB,KAAAtC,CAAA,EACAmwB,EAAAnlB,KAAA+b,MAAAzkB,KAAA6tB,CAAA,EACAC,EAAAplB,KAAA+b,MAAAzkB,KAAA8tB,CAAA,EACA1vB,EAAA4B,KAAA5B,CACA,CACA,EAKA++B,EAAApuB,UAAAgwB,YAAA,WACA,IAAArhC,EAAAgL,KAAA+b,MAAAzkB,KAAAtC,CAAA,EACAmwB,EAAAnlB,KAAA+b,MAAAzkB,KAAA6tB,CAAA,EACAC,EAAAplB,KAAA+b,MAAAzkB,KAAA8tB,CAAA,EACA,OAAA,IAAA9tB,KAAA5B,EAAA,OAAAiwB,OAAA3wB,EAAA,IAAA,EAAA2wB,OAAAR,EAAA,IAAA,EAAAQ,OAAAP,EAAA,GAAA,EAAA,QAAAO,OAAA3wB,EAAA,IAAA,EAAA2wB,OAAAR,EAAA,IAAA,EAAAQ,OAAAP,EAAA,IAAA,EAAAO,OAAAruB,KAAAq+B,OAAA,GAAA,CACA,EAIAlB,EAAApuB,UAAAiwB,gBAAA,WACA,SAAAC,EAAAp9B,GAAA,MAAA,GAAAwsB,OAAA3lB,KAAA+b,MAAA,KAAA,EAAA+M,EAAAM,SAAAjwB,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,CACA,MAAA,CACAnE,EAAAuhC,EAAAj/B,KAAAtC,CAAA,EACAmwB,EAAAoR,EAAAj/B,KAAA6tB,CAAA,EACAC,EAAAmR,EAAAj/B,KAAA8tB,CAAA,EACA1vB,EAAA4B,KAAA5B,CACA,CACA,EAIA++B,EAAApuB,UAAAmwB,sBAAA,WACA,SAAAC,EAAAt9B,GAAA,OAAA6G,KAAA+b,MAAA,KAAA,EAAA+M,EAAAM,SAAAjwB,EAAA,GAAA,CAAA,CAAA,CACA,OAAA,IAAA7B,KAAA5B,EACA,OAAAiwB,OAAA8Q,EAAAn/B,KAAAtC,CAAA,EAAA,KAAA,EAAA2wB,OAAA8Q,EAAAn/B,KAAA6tB,CAAA,EAAA,KAAA,EAAAQ,OAAA8Q,EAAAn/B,KAAA8tB,CAAA,EAAA,IAAA,EACA,QAAAO,OAAA8Q,EAAAn/B,KAAAtC,CAAA,EAAA,KAAA,EAAA2wB,OAAA8Q,EAAAn/B,KAAA6tB,CAAA,EAAA,KAAA,EAAAQ,OAAA8Q,EAAAn/B,KAAA8tB,CAAA,EAAA,KAAA,EAAAO,OAAAruB,KAAAq+B,OAAA,GAAA,CACA,EAIAlB,EAAApuB,UAAAqwB,OAAA,WACA,GAAA,IAAAp/B,KAAA5B,EACA,MAAA,cAEA,GAAA4B,EAAAA,KAAA5B,EAAA,GAIA,IADA,IAAA+zB,EAAA,KAAA,EAAAkJ,EAAA/M,UAAAtuB,KAAAtC,EAAAsC,KAAA6tB,EAAA7tB,KAAA8tB,EAAA,CAAA,CAAA,EACA1O,EAAA,EAAAhV,EAAA/C,OAAAtG,QAAAu6B,EAAA7I,KAAA,EAAArT,EAAAhV,EAAA1L,OAAA0gB,CAAA,GAAA,CACA,IAAA4L,EAAA5gB,EAAAgV,GAAApgB,EAAAgsB,EAAA,GACA,GAAAmH,IADAnH,EAAA,GAEA,OAAAhsB,CAEA,CACA,MAAA,CAAA,CACA,EACAm+B,EAAApuB,UAAA6iB,SAAA,SAAAnnB,GACA,IAAA40B,EAAAxC,QAAApyB,CAAA,EAEA60B,GADA70B,EAAAA,MAAAA,EAAAA,EAAAzK,KAAAyK,OACA,CAAA,GACA80B,EAAAv/B,KAAA5B,EAAA,GAAA,GAAA4B,KAAA5B,EAEA,OADAihC,GAAAE,CAAAA,GAAA90B,CAAAA,EAAA4nB,WAAA,KAAA,GAAA,SAAA5nB,GASA,QAAAA,IACA60B,EAAAt/B,KAAA++B,YAAA,GAEA,SAAAt0B,IACA60B,EAAAt/B,KAAAk/B,sBAAA,GAEA,QAAAz0B,GAAA,SAAAA,IACA60B,EAAAt/B,KAAA0+B,YAAA,GAEA,SAAAj0B,IACA60B,EAAAt/B,KAAA0+B,YAAA,CAAA,CAAA,GAEA,SAAAj0B,IACA60B,EAAAt/B,KAAA4+B,aAAA,CAAA,CAAA,GAEA,SAAAn0B,IACA60B,EAAAt/B,KAAA4+B,aAAA,GAEA,SAAAn0B,IACA60B,EAAAt/B,KAAAo/B,OAAA,GAEA,QAAA30B,IACA60B,EAAAt/B,KAAAy+B,YAAA,IAGAa,EADA,QAAA70B,EACAzK,KAAAw+B,YAAA,EAEAc,IAAAt/B,KAAA0+B,YAAA,GAhCA,SAAAj0B,GAAA,IAAAzK,KAAA5B,EACA4B,KAAAo/B,OAAA,EAEAp/B,KAAA++B,YAAA,CA8BA,EACA5B,EAAApuB,UAAAywB,SAAA,WACA,OAAA92B,KAAA+b,MAAAzkB,KAAAtC,CAAA,GAAA,KAAAgL,KAAA+b,MAAAzkB,KAAA6tB,CAAA,GAAA,GAAAnlB,KAAA+b,MAAAzkB,KAAA8tB,CAAA,CACA,EACAqP,EAAApuB,UAAA0wB,MAAA,WACA,OAAA,IAAAtC,EAAAn9B,KAAA4xB,SAAA,CAAA,CACA,EAKAuL,EAAApuB,UAAA2wB,QAAA,SAAA9P,GACA,KAAA,IAAAA,IAAAA,EAAA,IACA,IAAAsM,EAAAl8B,KAAAu+B,MAAA,EAGA,OAFArC,EAAAlK,GAAApC,EAAA,IACAsM,EAAAlK,GAAA,EAAAR,EAAAmO,SAAAzD,EAAAlK,CAAA,EACA,IAAAmL,EAAAjB,CAAA,CACA,EAKAiB,EAAApuB,UAAA6wB,SAAA,SAAAhQ,GACA,KAAA,IAAAA,IAAAA,EAAA,IACA,IAAA2L,EAAAv7B,KAAAy9B,MAAA,EAIA,OAHAlC,EAAA79B,EAAAgL,KAAAE,IAAA,EAAAF,KAAAqpB,IAAA,IAAAwJ,EAAA79B,EAAAgL,KAAA+b,MAAAmL,CAAAA,EAAA,IAAA,GAAA,CAAA,CAAA,EACA2L,EAAA1N,EAAAnlB,KAAAE,IAAA,EAAAF,KAAAqpB,IAAA,IAAAwJ,EAAA1N,EAAAnlB,KAAA+b,MAAAmL,CAAAA,EAAA,IAAA,GAAA,CAAA,CAAA,EACA2L,EAAAzN,EAAAplB,KAAAE,IAAA,EAAAF,KAAAqpB,IAAA,IAAAwJ,EAAAzN,EAAAplB,KAAA+b,MAAAmL,CAAAA,EAAA,IAAA,GAAA,CAAA,CAAA,EACA,IAAAuN,EAAA5B,CAAA,CACA,EAMA4B,EAAApuB,UAAA8wB,OAAA,SAAAjQ,GACA,KAAA,IAAAA,IAAAA,EAAA,IACA,IAAAsM,EAAAl8B,KAAAu+B,MAAA,EAGA,OAFArC,EAAAlK,GAAApC,EAAA,IACAsM,EAAAlK,GAAA,EAAAR,EAAAmO,SAAAzD,EAAAlK,CAAA,EACA,IAAAmL,EAAAjB,CAAA,CACA,EAMAiB,EAAApuB,UAAA+wB,KAAA,SAAAlQ,GAEA,OAAA5vB,KAAA+/B,IAAA,QADAnQ,EAAA,KAAA,IAAAA,EAAA,GACAA,CAAA,CACA,EAMAuN,EAAApuB,UAAAixB,MAAA,SAAApQ,GAEA,OAAA5vB,KAAA+/B,IAAA,QADAnQ,EAAA,KAAA,IAAAA,EAAA,GACAA,CAAA,CACA,EAMAuN,EAAApuB,UAAAkxB,WAAA,SAAArQ,GACA,KAAA,IAAAA,IAAAA,EAAA,IACA,IAAAsM,EAAAl8B,KAAAu+B,MAAA,EAGA,OAFArC,EAAAhO,GAAA0B,EAAA,IACAsM,EAAAhO,GAAA,EAAAsD,EAAAmO,SAAAzD,EAAAhO,CAAA,EACA,IAAAiP,EAAAjB,CAAA,CACA,EAKAiB,EAAApuB,UAAAmxB,SAAA,SAAAtQ,GACA,KAAA,IAAAA,IAAAA,EAAA,IACA,IAAAsM,EAAAl8B,KAAAu+B,MAAA,EAGA,OAFArC,EAAAhO,GAAA0B,EAAA,IACAsM,EAAAhO,GAAA,EAAAsD,EAAAmO,SAAAzD,EAAAhO,CAAA,EACA,IAAAiP,EAAAjB,CAAA,CACA,EAKAiB,EAAApuB,UAAAoxB,UAAA,WACA,OAAAngC,KAAAigC,WAAA,GAAA,CACA,EAKA9C,EAAApuB,UAAAqxB,KAAA,SAAAxQ,GACA,IAAAsM,EAAAl8B,KAAAu+B,MAAA,EACA9P,GAAAyN,EAAAjO,EAAA2B,GAAA,IAEA,OADAsM,EAAAjO,EAAAQ,EAAA,EAAA,IAAAA,EAAAA,EACA,IAAA0O,EAAAjB,CAAA,CACA,EAKAiB,EAAApuB,UAAAgxB,IAAA,SAAAhR,EAAAa,GACA,KAAA,IAAAA,IAAAA,EAAA,IACA,IAAAH,EAAAzvB,KAAAy9B,MAAA,EACA9N,EAAA,IAAAwN,EAAApO,CAAA,EAAA0O,MAAA,EACAl/B,EAAAqxB,EAAA,IAOA,OAAA,IAAAuN,EANA,CACAz/B,GAAAiyB,EAAAjyB,EAAA+xB,EAAA/xB,GAAAa,EAAAkxB,EAAA/xB,EACAmwB,GAAA8B,EAAA9B,EAAA4B,EAAA5B,GAAAtvB,EAAAkxB,EAAA5B,EACAC,GAAA6B,EAAA7B,EAAA2B,EAAA3B,GAAAvvB,EAAAkxB,EAAA3B,EACA1vB,GAAAuxB,EAAAvxB,EAAAqxB,EAAArxB,GAAAG,EAAAkxB,EAAArxB,CACA,CACA,CACA,EACA++B,EAAApuB,UAAAsxB,UAAA,SAAAC,EAAAC,GACA,KAAA,IAAAD,IAAAA,EAAA,GACA,KAAA,IAAAC,IAAAA,EAAA,IACA,IAAArE,EAAAl8B,KAAAu+B,MAAA,EACAiC,EAAA,IAAAD,EACAE,EAAA,CAAAzgC,MACA,IAAAk8B,EAAAjO,GAAAiO,EAAAjO,GAAAuS,EAAAF,GAAA,GAAA,KAAA,IAAA,EAAAA,GACApE,EAAAjO,GAAAiO,EAAAjO,EAAAuS,GAAA,IACAC,EAAAp+B,KAAA,IAAA86B,EAAAjB,CAAA,CAAA,EAEA,OAAAuE,CACA,EAIAtD,EAAApuB,UAAA2xB,WAAA,WACA,IAAAxE,EAAAl8B,KAAAu+B,MAAA,EAEA,OADArC,EAAAjO,GAAAiO,EAAAjO,EAAA,KAAA,IACA,IAAAkP,EAAAjB,CAAA,CACA,EACAiB,EAAApuB,UAAA4xB,cAAA,SAAAL,GACA,KAAA,IAAAA,IAAAA,EAAA,GAOA,IANA,IAAAvS,EAAA/tB,KAAA2tB,MAAA,EACAM,EAAAF,EAAAE,EACAC,EAAAH,EAAAG,EACAnL,EAAAgL,EAAAhL,EACA2B,EAAA,GACAkc,EAAA,EAAAN,EACAA,CAAA,IACA5b,EAAAriB,KAAA,IAAA86B,EAAA,CAAAlP,EAAAA,EAAAC,EAAAA,EAAAnL,EAAAA,CAAA,CAAA,CAAA,EACAA,GAAAA,EAAA6d,GAAA,EAEA,OAAAlc,CACA,EACAyY,EAAApuB,UAAA8xB,gBAAA,WACA,IAAA3E,EAAAl8B,KAAAu+B,MAAA,EACAtQ,EAAAiO,EAAAjO,EACA,MAAA,CACAjuB,KACA,IAAAm9B,EAAA,CAAAlP,GAAAA,EAAA,IAAA,IAAAC,EAAAgO,EAAAhO,EAAA8D,EAAAkK,EAAAlK,CAAA,CAAA,EACA,IAAAmL,EAAA,CAAAlP,GAAAA,EAAA,KAAA,IAAAC,EAAAgO,EAAAhO,EAAA8D,EAAAkK,EAAAlK,CAAA,CAAA,EAEA,EAIAmL,EAAApuB,UAAA+xB,aAAA,SAAAC,GACA,IAAAC,EAAAhhC,KAAAy9B,MAAA,EACAwD,EAAA,IAAA9D,EAAA4D,CAAA,EAAAtD,MAAA,EACAW,EAAA4C,EAAA5iC,EAAA6iC,EAAA7iC,GAAA,EAAA4iC,EAAA5iC,GACA,OAAA,IAAA++B,EAAA,CACAz/B,GAAAsjC,EAAAtjC,EAAAsjC,EAAA5iC,EAAA6iC,EAAAvjC,EAAAujC,EAAA7iC,GAAA,EAAA4iC,EAAA5iC,IAAAggC,EACAvQ,GAAAmT,EAAAnT,EAAAmT,EAAA5iC,EAAA6iC,EAAApT,EAAAoT,EAAA7iC,GAAA,EAAA4iC,EAAA5iC,IAAAggC,EACAtQ,GAAAkT,EAAAlT,EAAAkT,EAAA5iC,EAAA6iC,EAAAnT,EAAAmT,EAAA7iC,GAAA,EAAA4iC,EAAA5iC,IAAAggC,EACAhgC,EAAAggC,CACA,CAAA,CACA,EAIAjB,EAAApuB,UAAAmyB,MAAA,WACA,OAAAlhC,KAAAmhC,OAAA,CAAA,CACA,EAIAhE,EAAApuB,UAAAqyB,OAAA,WACA,OAAAphC,KAAAmhC,OAAA,CAAA,CACA,EAKAhE,EAAApuB,UAAAoyB,OAAA,SAAAvjC,GAKA,IAJA,IAAAs+B,EAAAl8B,KAAAu+B,MAAA,EACAtQ,EAAAiO,EAAAjO,EACAnnB,EAAA,CAAA9G,MACAqhC,EAAA,IAAAzjC,EACAG,EAAA,EAAAA,EAAAH,EAAAG,CAAA,GACA+I,EAAAzE,KAAA,IAAA86B,EAAA,CAAAlP,GAAAA,EAAAlwB,EAAAsjC,GAAA,IAAAnT,EAAAgO,EAAAhO,EAAA8D,EAAAkK,EAAAlK,CAAA,CAAA,CAAA,EAEA,OAAAlrB,CACA,EAIAq2B,EAAApuB,UAAAuyB,OAAA,SAAAvS,GACA,OAAA/uB,KAAA++B,YAAA,IAAA,IAAA5B,EAAApO,CAAA,EAAAgQ,YAAA,CACA,EACA5B,GA9eA,SAAAA,EAAApO,EAAAC,GAKA,GAHA,KAAA,IAAAA,IAAAA,EAAA,KADAD,EAAA,KAAA,IAAAA,EAAA,GAIAA,aAAAoO,EAEA,OAAApO,EAEA,UAAA,OAAAA,IACAA,GAAA,EAAAsM,EAAAvK,qBAAA/B,CAAA,GAEA/uB,KAAAuhC,cAAAxS,EACA,IAAAwM,GAAA,EAAA8B,EAAAlO,YAAAJ,CAAA,EACA/uB,KAAAuhC,cAAAxS,EACA/uB,KAAAtC,EAAA69B,EAAA79B,EACAsC,KAAA6tB,EAAA0N,EAAA1N,EACA7tB,KAAA8tB,EAAAyN,EAAAzN,EACA9tB,KAAA5B,EAAAm9B,EAAAn9B,EACA4B,KAAAq+B,OAAA31B,KAAA+b,MAAA,IAAAzkB,KAAA5B,CAAA,EAAA,IACA4B,KAAAyK,OAAA,OAAAL,EAAA4kB,EAAAvkB,QAAAL,EAAAmxB,EAAA9wB,OACAzK,KAAAwhC,aAAAxS,EAAAwS,aAKAxhC,KAAAtC,EAAA,IACAsC,KAAAtC,EAAAgL,KAAA+b,MAAAzkB,KAAAtC,CAAA,GAEAsC,KAAA6tB,EAAA,IACA7tB,KAAA6tB,EAAAnlB,KAAA+b,MAAAzkB,KAAA6tB,CAAA,GAEA7tB,KAAA8tB,EAAA,IACA9tB,KAAA8tB,EAAAplB,KAAA+b,MAAAzkB,KAAA8tB,CAAA,GAEA9tB,KAAAyhC,QAAAlG,EAAAC,EACA,CA4cAh9B,EAAA2+B,UAAAA,EAOA3+B,EAAAyuB,UALA,SAAA8B,EAAAC,GAGA,OAAA,IAAAmO,EAFApO,EAAA,KAAA,IAAAA,EAAA,GAEAA,EADAC,EAAA,KAAA,IAAAA,EAAA,GACAA,CAAA,CACA,C,kGC9fA,aACA3nB,OAAA2lB,eAAAxuB,EAAA,aAAA,CAAAyK,MAAA,CAAA,CAAA,CAAA,C,0BCDA,aACA,IAAAxI,EAAAT,MAAAA,KAAAS,kBAAA4G,OAAAtI,OAAA,SAAAjB,EAAA4jC,EAAA9e,EAAA+e,GACA5kB,KAAAA,IAAA4kB,IAAAA,EAAA/e,GACA,IAAAgf,EAAAv6B,OAAAw6B,yBAAAH,EAAA9e,CAAA,EACAgf,IAAA,QAAAA,EAAAF,EAAA/V,WAAAiW,CAAAA,EAAAE,UAAAF,CAAAA,EAAAG,gBACAH,EAAA,CAAAI,WAAA,CAAA,EAAApiC,IAAA,WAAA,OAAA8hC,EAAA9e,EAAA,CAAA,GAEAvb,OAAA2lB,eAAAlvB,EAAA6jC,EAAAC,CAAA,CACA,EAAA,SAAA9jC,EAAA4jC,EAAA9e,EAAA+e,GAEA7jC,EADA6jC,EAAA5kB,KAAAA,IAAA4kB,EAAA/e,EACA+e,GAAAD,EAAA9e,EACA,GACAqf,EAAAjiC,MAAAA,KAAAiiC,cAAA,SAAAP,EAAAljC,GACA,IAAA,IAAAD,KAAAmjC,EAAA,YAAAnjC,GAAA8I,OAAA0H,UAAA8d,eAAApuB,KAAAD,EAAAD,CAAA,GAAAkC,EAAAjC,EAAAkjC,EAAAnjC,CAAA,CACA,EAEAy+B,GADA31B,OAAA2lB,eAAAxuB,EAAA,aAAA,CAAAyK,MAAA,CAAA,CAAA,CAAA,EACA/K,EAAA,SAAA,GACA+jC,EAAA/jC,EAAA,SAAA,EAAAM,CAAA,EACAyjC,EAAA/jC,EAAA,mBAAA,EAAAM,CAAA,EACAyjC,EAAA/jC,EAAA,eAAA,EAAAM,CAAA,EACAyjC,EAAA/jC,EAAA,gBAAA,EAAAM,CAAA,EACAyjC,EAAA/jC,EAAA,cAAA,EAAAM,CAAA,EACAyjC,EAAA/jC,EAAA,gBAAA,EAAAM,CAAA,EACAyjC,EAAA/jC,EAAA,UAAA,EAAAM,CAAA,EACAyjC,EAAA/jC,EAAA,cAAA,EAAAM,CAAA,EACAyjC,EAAA/jC,EAAA,cAAA,EAAAM,CAAA,EAEAA,EAAA0jC,QAAAlF,EAAA/P,S,4LC3BA,aACA5lB,OAAA2lB,eAAAxuB,EAAA,aAAA,CAAAyK,MAAA,CAAA,CAAA,CAAA,EACAzK,EAAA2jC,OAAA3jC,EAAA4+B,OAAA,KAAA,EAIA,IAAAJ,EAAA9+B,EAAA,SAAA,EA8HA,SAAAkkC,EAAA3T,GAEA,KAAAA,GAAAA,GAAA,MACAA,GAAA,KAEA,IAAA,IAAArP,EAAA,EAAAijB,EAAA7jC,EAAA2jC,OAAA/iB,EAAAijB,EAAA3jC,OAAA0gB,CAAA,GAAA,CACA,IACA2P,EAAAuT,EADAD,EAAAjjB,EACA,EACA,GAAA2P,EAAAwT,UAAA9T,GAAAM,EAAAwT,SAAA,IAAA9T,GAAAM,EAAAwT,SAAA,GACA,OAAAxT,CAEA,CACA,MAAA1wB,MAAA,iBAAA,CACA,CACA,SAAAmkC,EAAAvb,EAAAwb,GACA,IAIA75B,EAJA,OAAAmU,KAAAA,IAAA0lB,EACA/5B,KAAA6V,MAAA0I,EAAA,GAAAve,KAAA00B,OAAA,GAAAnW,EAAA,GAAA,EAAAA,EAAA,GAAA,GAGAre,EAAAqe,EAAA,IAAA,EACA8K,EAAA9K,EAAA,IAAA,EAEAkY,GADAsD,GAAA,KAAAA,EAAA,OAAA,QACA,OACA/5B,KAAA6V,MAAAwT,EAAAoN,GAAAv2B,EAAAmpB,EAAA,EACA,CACA,SAAAuQ,EAAAI,GACA,IAAAC,EAAAD,EAAAE,YAAA,GAAA,GACAC,EAAAH,EAAAE,YAAAF,EAAAE,YAAAlkC,OAAA,GAAA,GACAokC,EAAAJ,EAAAE,YAAAF,EAAAE,YAAAlkC,OAAA,GAAA,GACAqkC,EAAAL,EAAAE,YAAA,GAAA,GACA,MAAA,CACA/lB,KAAA6lB,EAAA7lB,KACA0lB,SAAAG,EAAAH,SACAK,YAAAF,EAAAE,YACAI,gBAAA,CAAAL,EAAAE,GACAI,gBAAA,CAAAH,EAAAC,EACA,CACA,CAhIAvkC,EAAA4+B,OAlCA,SAAAA,EAAAz9B,GAGA,GAAAod,KAAAA,KAFApd,EAAA,KAAA,IAAAA,EAAA,GAEAA,GAAAkM,OACA,OAAAlM,EAAAkM,MAAA,CACA,IAAAq3B,EAAAvjC,EAAAkM,MACAs3B,EAAA,GAEA,IADAxjC,EAAAkM,MAAAkR,KAAAA,EACAomB,EAAAzkC,OAAAwkC,GAIAvjC,EAAAkM,MAAA,KACAlM,EAAA8iC,OACA9iC,EAAA8iC,MAAA,GAEAU,EAAA9gC,KAAA+6B,EAAAz9B,CAAA,CAAA,EAGA,OADAA,EAAAkM,MAAAq3B,EACAC,CACA,CAEA,IAAAlV,EAaA,SAAAQ,EAAAgU,GAQA,OAFA/d,GAJAA,EAAA8d,EAmEA,SAAAY,GACA,IAAAC,EAAAvhB,SAAAshB,EAAA,EAAA,EACA,GAAA,CAAA7d,OAAAC,MAAA6d,CAAA,GAAAA,EAAA,KAAA,EAAAA,EACA,MAAA,CAAAA,EAAAA,GAEA,GAAA,UAAA,OAAAD,EAAA,CAEA,IADAE,EAAA9kC,EAAA2jC,OAAAoB,KAAA,SAAA3lC,GAAA,OAAAA,EAAAif,OAAAumB,CAAA,CAAA,KAEArU,EAAAuT,EAAAgB,CAAA,GACAf,SACA,OAAAxT,EAAAwT,SAIA,IAAAiB,EADA,IAAAxG,EAAAG,UAAAiG,CAAA,GACA3B,QAEA,MAAA,CADAhT,EAAA+U,EAAA7V,MAAA,EAAAM,EACAQ,EAEA,CACA,MAAA,CAAA,EAAA,IACA,EAxFAA,CAAA,EACAgU,CAAA,GAGA,EACA,IAAA/d,EAEAA,CACA,EAtBA/kB,EAAA8uB,IAAA9uB,EAAA8iC,IAAA,EAEAvU,EAqBA,SAAAO,EAAA9uB,GACA,GAAA,eAAAA,EAAA8uB,IACA,OAAA,EAEA,GAAA,WAAA9uB,EAAA8jC,WACA,OAAAjB,EAAA,CAAA,EAAA,KAAA7iC,EAAA8iC,IAAA,EAEA,IACAE,GAAAK,EADAZ,EAAA3T,CAAA,EAAAuU,iBACA,GACAH,EAAAG,EAAA,GACA,OAAArjC,EAAA8jC,YACA,IAAA,SACAd,EAAA,GACA,MACA,IAAA,OACAA,EAAAE,EAAA,GACA,MACA,IAAA,QACAA,EAAA,EAIA,CACA,OAAAL,EAAA,CAAAG,EAAAE,GAAAljC,EAAA8iC,IAAA,CACA,EA7CAxU,EAAAtuB,CAAA,EAGA+kB,EAAA,CAAAuJ,EAAAA,EAAAC,EAAAA,EAAAnL,EA2CA,SAAA2gB,EAAAC,EAAAhkC,GACA,IAAAmjC,EAkBA,SAAAY,EAAAC,GAEA,IADA,IAAAf,EAAAR,EAAAsB,CAAA,EAAAd,YACA7kC,EAAA,EAAAA,EAAA6kC,EAAAlkC,OAAA,EAAAX,CAAA,GAAA,CACA,IAAA6lC,EAAAhB,EAAA7kC,GAAA,GACA8lC,EAAAjB,EAAA7kC,GAAA,GACA+lC,EAAAlB,EAAA7kC,EAAA,GAAA,GACAgmC,EAAAnB,EAAA7kC,EAAA,GAAA,GACA,GAAA6lC,GAAAD,GAAAA,GAAAG,EAGA,OAFApC,GAAAqC,EAAAF,IAAAC,EAAAF,IAEAD,GADAE,EAAAnC,EAAAkC,EAGA,CACA,OAAA,CACA,EAhCAF,EAAAC,CAAA,EACAZ,EAAA,IACA,OAAApjC,EAAA8jC,YACA,IAAA,OACAV,EAAAD,EAAA,GACA,MACA,IAAA,QACAA,GAAAC,EAAAD,GAAA,EACA,MACA,IAAA,SACAA,EAAA,EACAC,EAAA,GAIA,CACA,OAAAP,EAAA,CAAAM,EAAAC,GAAApjC,EAAA8iC,IAAA,CACA,EA9DAxU,EAAAC,EAAAvuB,CAAA,CACA,EAKA,OAJAod,KAAAA,IAAApd,EAAAy+B,QACA1Z,EAAAtmB,EAAAuB,EAAAy+B,OAGA,IAAApB,EAAAG,UAAAzY,CAAA,CACA,EAqIAlmB,EAAA2jC,OAAA,CACA,CACAtlB,KAAA,aACA0lB,SAAA,KACAK,YAAA,CACA,CAAA,EAAA,GACA,CAAA,IAAA,GAEA,EACA,CACA/lB,KAAA,MACA0lB,SAAA,CAAA,CAAA,GAAA,IACAK,YAAA,CACA,CAAA,GAAA,KACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,IAAA,IAEA,EACA,CACA/lB,KAAA,SACA0lB,SAAA,CAAA,GAAA,IACAK,YAAA,CACA,CAAA,GAAA,KACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,IAAA,IAEA,EACA,CACA/lB,KAAA,SACA0lB,SAAA,CAAA,GAAA,IACAK,YAAA,CACA,CAAA,GAAA,KACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,IAAA,IAEA,EACA,CACA/lB,KAAA,QACA0lB,SAAA,CAAA,GAAA,KACAK,YAAA,CACA,CAAA,GAAA,KACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,IAAA,IAEA,EACA,CACA/lB,KAAA,OACA0lB,SAAA,CAAA,IAAA,KACAK,YAAA,CACA,CAAA,GAAA,KACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,IAAA,IAEA,EACA,CACA/lB,KAAA,SACA0lB,SAAA,CAAA,IAAA,KACAK,YAAA,CACA,CAAA,GAAA,KACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,IAAA,IAEA,EACA,CACA/lB,KAAA,OACA0lB,SAAA,CAAA,IAAA,KACAK,YAAA,CACA,CAAA,GAAA,KACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,GAAA,IACA,CAAA,IAAA,IAEA,E,sCCxRA,aACAv7B,OAAA2lB,eAAAxuB,EAAA,aAAA,CAAAyK,MAAA,CAAA,CAAA,CAAA,EACAzK,EAAAwlC,aAAAxlC,EAAAylC,WAAAzlC,EAAA0lC,YAAA,KAAA,EACA,IAAAlH,EAAA9+B,EAAA,SAAA,EASA,SAAAgmC,EAAAC,EAAAC,GACAC,EAAA,IAAArH,EAAAG,UAAAgH,CAAA,EACAG,EAAA,IAAAtH,EAAAG,UAAAiH,CAAA,EACA,OAAA17B,KAAAE,IAAAy7B,EAAA3G,aAAA,EAAA4G,EAAA5G,aAAA,CAAA,EAAA,MACAh1B,KAAAqpB,IAAAsS,EAAA3G,aAAA,EAAA4G,EAAA5G,aAAA,CAAA,EAAA,IACA,CAeA,SAAAuG,EAAAE,EAAAC,EAAAG,GAEA,KAAA,IAAAA,IAAAA,EAAA,CAAAC,MAAA,KAAApyB,KAAA,OAAA,GADA,IAEAqyB,EAAAP,EAAAC,EAAAC,CAAA,EACA,QAAA,OAAAh6B,EAAAm6B,EAAAC,OAAAp6B,EAAA,OAAA,OAAA4gB,EAAAuZ,EAAAnyB,MAAA4Y,EAAA,UACA,IAAA,UACA,IAAA,WACA,OAAA,KAAAyZ,EACA,IAAA,UACA,OAAA,GAAAA,EACA,IAAA,WACA,OAAA,GAAAA,EACA,QACA,MAAA,CAAA,CACA,CACA,CA7BAjmC,EAAA0lC,YAAAA,EA8BA1lC,EAAAylC,WAAAA,EAqCAzlC,EAAAwlC,aAnBA,SAAAA,EAAAU,EAAAC,EAAAxlB,GAKA,IAHA,IAAAylB,EAAA,KACAC,EAAA,EACAC,GAHA3lB,EAAA,KAAA,IAAAA,EAAA,CAAA2lB,sBAAA,CAAA,EAAAN,MAAA,KAAApyB,KAAA,OAAA,EAGA+M,GAAA2lB,sBAAAN,EAAArlB,EAAAqlB,MAAApyB,EAAA+M,EAAA/M,KACAgN,EAAA,EAAA2lB,EAAAJ,EAAAvlB,EAAA2lB,EAAArmC,OAAA0gB,CAAA,GAAA,CACA,IAAA2P,EAAAgW,EAAA3lB,GACA4lB,EAAAd,EAAAQ,EAAA3V,CAAA,EACA8V,EAAAG,IACAH,EAAAG,EACAJ,EAAA,IAAA5H,EAAAG,UAAApO,CAAA,EAEA,CACA,OAAAkV,EAAAS,EAAAE,EAAA,CAAAJ,MAAAA,EAAApyB,KAAAA,CAAA,CAAA,GAAA,CAAA0yB,EACAF,GAEAzlB,EAAA2lB,sBAAA,CAAA,EACAd,EAAAU,EAAA,CAAA,OAAA,QAAAvlB,CAAA,EACA,C,sCCpFA,aACA9X,OAAA2lB,eAAAxuB,EAAA,aAAA,CAAAyK,MAAA,CAAA,CAAA,CAAA,EACAzK,EAAAymC,WAAA,KAAA,EACA,IAAA5J,EAAAn9B,EAAA,cAAA,EACA8+B,EAAA9+B,EAAA,SAAA,EAeAM,EAAAymC,WAXA,SAAAC,EAAAC,GACA,IAAApW,EAAA,IAAAiO,EAAAG,UAAA+H,CAAA,EACAE,EAAA,KAAA,EAAA/J,EAAAnK,eAAAnC,EAAArxB,EAAAqxB,EAAAlB,EAAAkB,EAAAjB,EAAAiB,EAAA3wB,CAAA,EACAinC,EAAAD,EACA5D,EAAAzS,EAAAyS,aAAA,qBAAA,GAKA,OAJA2D,IACAjX,EAAA,IAAA8O,EAAAG,UAAAgI,CAAA,EACAE,EAAA,KAAA,EAAAhK,EAAAnK,eAAAhD,EAAAxwB,EAAAwwB,EAAAL,EAAAK,EAAAJ,EAAAI,EAAA9vB,CAAA,GAEA,8CAAAiwB,OAAAmT,EAAA,gBAAA,EAAAnT,OAAA+W,EAAA,eAAA,EAAA/W,OAAAgX,EAAA,GAAA,CACA,C,wDClBA,aAiDA,SAAAC,EAAA1nC,GACA,MAAA,UAAA,OAAAA,GAAA,CAAA,IAAAA,EAAAuR,QAAA,GAAA,GAAA,IAAAlI,WAAArJ,CAAA,CACA,CAMA,SAAA2nC,EAAA3nC,GACA,MAAA,UAAA,OAAAA,GAAA,CAAA,IAAAA,EAAAuR,QAAA,GAAA,CACA,CA1DA9H,OAAA2lB,eAAAxuB,EAAA,aAAA,CAAAyK,MAAA,CAAA,CAAA,CAAA,EACAzK,EAAA4zB,KAAA5zB,EAAAk9B,oBAAAl9B,EAAAm9B,WAAAn9B,EAAA+mC,aAAA/mC,EAAA8mC,eAAA9mC,EAAAmhC,QAAAnhC,EAAAszB,QAAA,KAAA,EAiCAtzB,EAAAszB,QA5BA,SAAAl0B,EAAAgL,GAIA,IAAA48B,EAAAD,EAFA3nC,EADA0nC,EAAA1nC,CAAA,EACA,OAEAA,CAAA,EAOA,OANAA,EAAA,MAAAgL,EAAAhL,EAAA8K,KAAAqpB,IAAAnpB,EAAAF,KAAAE,IAAA,EAAA3B,WAAArJ,CAAA,CAAA,CAAA,EAEA4nC,IACA5nC,EAAAkkB,SAAA2Z,OAAA79B,EAAAgL,CAAA,EAAA,EAAA,EAAA,KAGAF,KAAA+R,IAAA7c,EAAAgL,CAAA,EAAA,KACA,EAGA,MAAAA,GAIAhL,EAAA,EAAAA,EAAAgL,EAAAA,EAAAhL,EAAAgL,GAAA3B,WAAAw0B,OAAA7yB,CAAA,CAAA,EAKAhL,EAAAgL,EAAA3B,WAAAw0B,OAAA7yB,CAAA,CAAA,CAGA,EASApK,EAAAmhC,QAHA,SAAA9N,GACA,OAAAnpB,KAAAqpB,IAAA,EAAArpB,KAAAE,IAAA,EAAAipB,CAAA,CAAA,CACA,EAUArzB,EAAA8mC,eAAAA,EAQA9mC,EAAA+mC,aAAAA,EAYA/mC,EAAAm9B,WAPA,SAAAv9B,GAKA,OAJAA,EAAA6I,WAAA7I,CAAA,EAEAA,EADAonB,MAAApnB,CAAA,GAAAA,EAAA,GAAA,EAAAA,EACA,EAEAA,CACA,EAYAI,EAAAk9B,oBANA,SAAA99B,GACA,OAAAA,GAAA,EACA,GAAAywB,OAAA,IAAA9I,OAAA3nB,CAAA,EAAA,GAAA,EAEAA,CACA,EASAY,EAAA4zB,KAHA,SAAAn0B,GACA,OAAA,IAAAA,EAAAS,OAAA,IAAAT,EAAAw9B,OAAAx9B,CAAA,CACA","file":"ant-design-blazor.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i = new Map();\n\n\n static create(key: string, invoker, isDotNetInvoker: boolean = true) {\n // @ts-ignore: TS2304: Cannot find name 'MutationObserver'\n let observer;\n\n if (isDotNetInvoker) {\n observer = new MutationObserver(mutations => mutationObserver.observerCallback(mutations, invoker))\n } else {\n observer = new MutationObserver(mutations => invoker(mutations))\n }\n mutationObserver.mutationObservers.set(key, observer)\n }\n\n static observe(key: string, element, options?: MutationObserverInit) {\n const observer = mutationObserver.mutationObservers.get(key);\n if (observer) {\n let domElement = domInfoHelper.get(element);\n observer.observe(domElement, options);\n }\n }\n\n static disconnect(key: string): void {\n const observer = this.mutationObservers.get(key)\n if (observer) {\n observer.disconnect()\n }\n }\n\n static dispose(key: string): void {\n this.disconnect(key)\n this.mutationObservers.delete(key)\n }\n\n private static observerCallback(mutations, invoker) {\n //TODO: serialize a proper object (check resizeObserver.ts for sample)\n const entriesJson = JSON.stringify(mutations)\n invoker.invokeMethodAsync('Invoke', entriesJson)\n }\n}","export { resizeObserver as resize } from './resizeObserver';\nexport { mutationObserver } from './mutationObserver';","import { infoHelper as domInfoHelper} from '../modules/dom/infoHelper';\nimport { boxSize, domRect } from '../modules/dom/types';\n\nclass ResizeObserverEntry {\n borderBoxSize?: boxSize\n contentBoxSize?: boxSize\n contentRect?: domRect\n target?: Element\n}\n\nexport class resizeObserver {\n\n static isResizeObserverSupported(): boolean {\n return \"ResizeObserver\" in window;\n }\n\n // @ts-ignore: TS2304: Cannot find name 'ResizeObserver'\n private static resizeObservers: Map = new Map();\n\n static create(key, invoker, isDotNetInvoker: boolean = true ) {\n // @ts-ignore: TS2304: Cannot find name 'ResizeObserver'\n let observer;\n \n if (isDotNetInvoker) {\n observer = new ResizeObserver((entries, observer) => resizeObserver.observerCallBack(entries, observer, invoker));\n } else {\n observer = new ResizeObserver((entries, observer) => invoker(entries, observer));\n }\n resizeObserver.resizeObservers.set(key, observer)\n }\n\n static observe(key: string, element) {\n const observer = resizeObserver.resizeObservers.get(key);\n if (observer) {\n let domElement = domInfoHelper.get(element);\n observer.observe(domElement);\n }\n }\n\n static disconnect(key: string): void {\n const observer = this.resizeObservers.get(key)\n if (observer) {\n observer.disconnect()\n }\n }\n\n static unobserve(key: string, element: Element): void {\n const observer = this.resizeObservers.get(key)\n\n if (observer) {\n let domElement = domInfoHelper.get(element);\n observer.unobserve(domElement)\n }\n }\n\n static dispose(key: string): void {\n this.disconnect(key)\n this.resizeObservers.delete(key)\n }\n\n private static observerCallBack(entries, observer, invoker) {\n if (invoker) {\n const mappedEntries = new Array()\n entries.forEach(entry => { \n if (entry) {\n const mEntry = new ResizeObserverEntry()\n if (entry.borderBoxSize) {\n mEntry.borderBoxSize = {\n blockSize: entry.borderBoxSize.blockSize,\n inlineSize: entry.borderBoxSize.inlineSize\n }\n }\n\n if (entry.contentBoxSize) {\n mEntry.contentBoxSize = {\n blockSize: entry.contentBoxSize.blockSize,\n inlineSize: entry.contentBoxSize.inlineSize\n }\n }\n\n if (entry.contentRect) {\n mEntry.contentRect = {\n x: entry.contentRect.x,\n y: entry.contentRect.y,\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n top: entry.contentRect.top,\n right: entry.contentRect.right,\n bottom: entry.contentRect.bottom,\n left: entry.contentRect.left\n }\n\n }\n\n //mEntry.target = entry.target\n mappedEntries.push(mEntry)\n }\n })\n\n const entriesJson = JSON.stringify(mappedEntries)\n invoker.invokeMethodAsync('Invoke', entriesJson)\n }\n }\n\n}","export { state } from './modules/stateProvider';\nexport * as observable from './ObservableApi/observableApi';\nexport { domInfoHelper, domTypes, domManipulationHelper, eventHelper } from './modules/dom/exports';\nexport { styleHelper } from './modules/styleHelper';\nexport {\n backtopHelper,\n iconHelper,\n imageHelper,\n inputHelper,\n mentionsHelper,\n modalHelper,\n overlayHelper,\n tableHelper,\n uploadHelper,\n downloadHelper\n} from './modules/components/export'\nexport { enableDraggable, disableDraggable, resetModalPosition } from \"./modules/dom/dragHelper\";\n\nexport { generate as generateColor } from \"@ant-design/colors\";\n\nexport function log(text) {\n console.log(text);\n}\n","import { domInfoHelper, domManipulationHelper } from '../dom/exports'\n\nexport class backtopHelper {\n static backTop(target: string) {\n let dom = domInfoHelper.get(target);\n if (dom) {\n domManipulationHelper.slideTo(dom.scrollTop);\n } else {\n domManipulationHelper.slideTo(0);\n }\n }\n}","export class downloadHelper {\n static triggerFileDownload(fileName, url) {\n const anchorElement = document.createElement('a');\n anchorElement.href = url;\n anchorElement.download = fileName ?? '';\n anchorElement.click();\n anchorElement.remove();\n }\n}","export { backtopHelper } from './backtopHelper';\nexport { overlayHelper } from './overlayHelper';\nexport { uploadHelper } from './uploadHelper';\nexport { downloadHelper } from './downloadHelper';\nexport { mentionsHelper } from './mentionsHelper';\nexport { modalHelper } from './modalHelper';\nexport { inputHelper } from './inputHelper';\nexport { tableHelper } from './tableHelper';\nexport { iconHelper } from './iconHelper';\nexport { imageHelper } from './imageHelper';","export class iconHelper {\n static createIconFromfontCN(scriptUrl) {\n if (document.querySelector(`[data-namespace=\"${scriptUrl}\"]`)) {\n return;\n }\n const script = document.createElement(\"script\");\n script.setAttribute(\"src\", scriptUrl);\n script.setAttribute(\"data-namespace\", scriptUrl);\n document.body.appendChild(script);\n }\n}\n","export class imageHelper {\n static imgDragAndDrop(element: HTMLImageElement): void {\n if (!element) {\n throw new Error('Element not found.');\n }\n\n let mouseX: number, mouseY: number, imgX: number, imgY: number;\n let isDragging = false;\n\n function handleMouseDown(event: MouseEvent) {\n mouseX = event.clientX;\n mouseY = event.clientY;\n imgX = element.offsetLeft;\n imgY = element.offsetTop;\n isDragging = true;\n\n element.style.cursor = 'grabbing';\n\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n }\n\n function handleMouseMove(event: MouseEvent) {\n if (isDragging) {\n const deltaX = event.clientX - mouseX;\n const deltaY = event.clientY - mouseY;\n\n element.style.left = imgX + deltaX + 'px';\n element.style.top = imgY + deltaY + 'px';\n }\n }\n\n function handleMouseUp() {\n if (isDragging) {\n isDragging = false;\n element.style.cursor = 'grab';\n\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n }\n }\n\n element.addEventListener('mousedown', handleMouseDown);\n\n element.addEventListener('dragstart', (event: DragEvent) => {\n event.preventDefault();\n });\n\n // Handle mouse leaving window\n window.addEventListener('mouseout', (event: MouseEvent) => {\n if (event.target === document.body || event.target === document.documentElement) {\n handleMouseUp();\n }\n });\n }\n}\n","import { domInfoHelper } from '../dom/exports'\nimport { state } from '../stateProvider';\nimport { resize } from '../../ObservableApi/observableApi';\n\nexport class inputHelper {\n\n static getTextAreaInfo(element) {\n if (!element) return null;\n var result = {};\n var dom = domInfoHelper.get(element);\n if (!dom) return null;\n result[\"scrollHeight\"] = dom.scrollHeight || 0;\n\n if (element.currentStyle) {\n result[\"lineHeight\"] = parseFloat(element.currentStyle[\"line-height\"]);\n result[\"paddingTop\"] = parseFloat(element.currentStyle[\"padding-top\"]);\n result[\"paddingBottom\"] = parseFloat(element.currentStyle[\"padding-bottom\"]);\n result[\"borderBottom\"] = parseFloat(element.currentStyle[\"border-bottom\"]);\n result[\"borderTop\"] = parseFloat(element.currentStyle[\"border-top\"]);\n }\n else if (window.getComputedStyle) {\n result[\"lineHeight\"] = parseFloat(document.defaultView.getComputedStyle(element, null).getPropertyValue(\"line-height\"));\n result[\"paddingTop\"] = parseFloat(document.defaultView.getComputedStyle(element, null).getPropertyValue(\"padding-top\"));\n result[\"paddingBottom\"] = parseFloat(document.defaultView.getComputedStyle(element, null).getPropertyValue(\"padding-bottom\"));\n result[\"borderBottom\"] = parseFloat(document.defaultView.getComputedStyle(element, null).getPropertyValue(\"border-bottom\"));\n result[\"borderTop\"] = parseFloat(document.defaultView.getComputedStyle(element, null).getPropertyValue(\"border-top\"));\n }\n //Firefox can return this as NaN, so it has to be handled here like that.\n if (Object.is(NaN, result[\"borderTop\"]))\n result[\"borderTop\"] = 1;\n if (Object.is(NaN, result[\"borderBottom\"]))\n result[\"borderBottom\"] = 1;\n return result;\n }\n\n static registerResizeTextArea(element: HTMLTextAreaElement, minRows: number, maxRows: number, objReference) {\n if (!objReference) {\n this.disposeResizeTextArea(element);\n }\n else {\n state.objReferenceDict[element.id] = objReference;\n state.eventCallbackRegistry[element.id + \"input\"] = function () { inputHelper.resizeTextArea(element, minRows, maxRows); }\n element.addEventListener(\"input\", state.eventCallbackRegistry[element.id + \"input\"]);\n resize.create(element.id + \"-resize\", () => {\n inputHelper.resizeTextArea(element, minRows, maxRows);\n }, false);\n resize.observe(element.id + \"-resize\", element);\n inputHelper.resizeTextArea(element, minRows, maxRows);\n element.style.resize = 'none';\n return this.getTextAreaInfo(element);\n }\n }\n\n static disposeResizeTextArea(element: HTMLTextAreaElement) {\n element.removeEventListener(\"input\", state.eventCallbackRegistry[element.id + \"input\"]);\n resize.unobserve(element.id + \"-resize\", element);\n state.objReferenceDict[element.id] = null;\n state.eventCallbackRegistry[element.id + \"input\"] = null;\n }\n\n static resizeTextArea(element: HTMLTextAreaElement, minRows: number, maxRows: number) {\n let dims = this.getTextAreaInfo(element);\n if (!dims) return;\n\n let rowHeight = dims[\"lineHeight\"];\n let offsetHeight = dims[\"paddingTop\"] + dims[\"paddingBottom\"] + dims[\"borderTop\"] + dims[\"borderBottom\"];\n let oldHeight = parseFloat(element.style.height);\n //use rows attribute to evaluate real scroll height\n let oldRows = element.rows;\n element.rows = minRows;\n element.style.height = 'auto'; \n \n var rows = Math.trunc(element.scrollHeight / rowHeight);\n element.rows = oldRows;\n rows = Math.max(minRows, rows);\n var newHeight = 0;\n if (rows > maxRows) {\n rows = maxRows;\n\n newHeight = (rows * rowHeight + offsetHeight);\n element.style.height = newHeight + \"px\";\n element.style.overflowY = \"visible\";\n }\n else {\n newHeight = rows * rowHeight + offsetHeight;\n element.style.height = newHeight + \"px\";\n element.style.overflowY = \"hidden\";\n }\n if (oldHeight !== newHeight) {\n let textAreaObj = state.objReferenceDict[element.id];\n textAreaObj.invokeMethodAsync(\"ChangeSizeAsyncJs\", element.scrollWidth, newHeight);\n }\n }\n\n static setSelectionStart(element, position: number) {\n if (position >= 0) {\n let dom: HTMLInputElement = domInfoHelper.get(element);\n if (dom) {\n if (position <= dom.value.length) {\n dom.selectionStart = position;\n dom.selectionEnd = position;\n }\n }\n }\n }\n\n}","export class mentionsHelper {\n\n private static isPopShowFlag: boolean;\n\n public static setPopShowFlag = function (show: boolean): void {\n mentionsHelper.isPopShowFlag = show;\n }\n\n public static setEditorKeyHandler = function (Mentions: any, element: HTMLTextAreaElement): void {\n\n var textArea = mentionsHelper.getTextarea(element);\n textArea.onkeydown = async (ev): Promise => {\n //判断isPopShow不能用异步方法\n if (!mentionsHelper.isPopShowFlag) return;\n if (ev.key == \"ArrowUp\") {\n ev.preventDefault();\n await Mentions.invokeMethodAsync(\"PrevOption\");\n } else if (ev.key == \"ArrowDown\") {\n ev.preventDefault();\n await Mentions.invokeMethodAsync(\"NextOption\");\n }\n else if (ev.key == \"Enter\") {\n ev.preventDefault();\n await Mentions.invokeMethodAsync(\"EnterOption\");\n }\n //其他按键在c#中处理\n }\n }\n\n public static getProp = function (e: HTMLElement, propName: string): any {\n var textArea = mentionsHelper.getTextarea(e);\n\n return textArea[propName];\n }\n\n public static getCursorXY = function (element: HTMLElement) {\n var textArea = mentionsHelper.getTextarea(element);\n let format = function (value) {\n value = value.replace(/<|>|`|\"|&/g, '?');\n return value;\n };\n let inputorValue = textArea.value;\n let pos = textArea.selectionStart;\n let start_range = inputorValue.slice(0, pos);\n if (start_range.length > 0) start_range = start_range.substring(0, start_range.length - 1);\n let end_range = inputorValue.slice(pos);\n let html = format(start_range);\n html += \"@\";\n html += format(end_range);\n\n let div_mirror = document.createElement(\"div\");\n div_mirror.className = \"ant-mentions-measure\"\n div_mirror.innerHTML = html;\n textArea.parentNode.append(div_mirror);\n\n let flag: HTMLSpanElement = div_mirror.querySelector(\"span\");\n // let flagPos = flag.getBoundingClientRect();\n // let textAreaPos = textArea.getBoundingClientRect();\n // let bodyPos = document.body.getBoundingClientRect();\n let left = flag.offsetLeft - textArea.scrollLeft + 16;\n let top = flag.offsetTop - textArea.scrollTop + 16;\n\n div_mirror.remove();\n return [left, top];\n };\n\n private static getTextarea(element: HTMLElement) {\n const textAreaTag = \"TEXTAREA\";\n var textarea = element;\n if (element.tagName != textAreaTag) {\n var allTextareas = element.getElementsByTagName(textAreaTag);\n if (allTextareas.length == 0) {\n throw \"Mentions requires a textarea to be rendered, but none were found.\";\n }\n textarea = allTextareas[0] as HTMLTextAreaElement;\n }\n\n return textarea as HTMLTextAreaElement;\n }\n}\n","import { domInfoHelper } from '../dom/exports'\n\nexport class modalHelper {\n static focusDialog(selector: string, count: number = 0) {\n let ele = document.querySelector(selector);\n if (ele) {\n if (ele.hasAttribute(\"disabled\")) {\n let htmlElement = document.activeElement;\n htmlElement?.blur();\n } else {\n setTimeout(() => {\n ele.focus();\n let curId = \"#\" + domInfoHelper.getActiveElement();\n if (curId !== selector) {\n if (count < 10) {\n this.focusDialog(selector, count + 1);\n }\n }\n }, 10);\n }\n }\n }\n\n static destroyAllDialog() {\n document.querySelectorAll('.ant-modal-root')\n .forEach(e => document.body.removeChild(e.parentNode));\n }\n}","import { domInfoHelper, domTypes } from '../dom/exports'\nimport { resize } from '../../ObservableApi/observableApi';\nimport { mutationObserver as mutation } from '../../ObservableApi/mutationObserver';\n\n//Make sure the enum is identical as C# AntDesign.Placement enum\nexport enum Placement {\n TopLeft = 0,\n Top = 2,\n TopRight = 3,\n Left = 4,\n LeftTop = 5,\n LeftBottom = 6,\n Right = 7,\n RightTop = 8,\n RightBottom = 9,\n BottomLeft = 10,\n Bottom = 12,\n BottomRight = 13\n}\n\n//Make sure the enum is identical as C# AntDesign.TriggerBoundyAdjustMode enum\nexport enum TriggerBoundyAdjustMode {\n None = 0,\n InView = 1,\n InScroll = 2\n}\n\ntype verticalPosition = {\n top?: number,\n bottom?: number\n}\n\ntype horizontalPosition = {\n left?: number,\n right?: number\n}\n\nexport type overlayConstraints = {\n verticalOffset: number,\n horizontalOffset: number,\n arrowPointAtCenter: boolean\n}\nexport type coordinates = {\n top?: number,\n bottom?: number,\n left?: number,\n right?: number\n}\n\n\nexport type overlayPosition = {\n top?: number,\n bottom?: number,\n left?: number,\n right?: number,\n zIndex: number,\n placement?: Placement,\n}\n\nexport class Overlay {\n private static appliedStylePositionMap: Map =\n new Map([\n [Placement.TopLeft, { horizontal: \"left\", vertical: \"bottom\", class: \"topLeft\" }],\n [Placement.Top, { horizontal: \"left\", vertical: \"bottom\", class: \"top\" }],\n [Placement.TopRight, { horizontal: \"right\", vertical: \"bottom\", class: \"topRight\" }],\n [Placement.Left, { horizontal: \"right\", vertical: \"top\", class: \"left\" }],\n [Placement.LeftTop, { horizontal: \"right\", vertical: \"top\", class: \"leftTop\" }],\n [Placement.LeftBottom, { horizontal: \"right\", vertical: \"bottom\", class: \"leftBottom\" }],\n [Placement.Right, { horizontal: \"left\", vertical: \"top\", class: \"right\" }],\n [Placement.RightTop, { horizontal: \"left\", vertical: \"top\", class: \"rightTop\" }],\n [Placement.RightBottom, { horizontal: \"left\", vertical: \"bottom\", class: \"rightBottom\" }],\n [Placement.BottomLeft, { horizontal: \"left\", vertical: \"top\", class: \"bottomLeft\" }],\n [Placement.Bottom, { horizontal: \"left\", vertical: \"top\", class: \"bottom\" }],\n [Placement.BottomRight, { horizontal: \"right\", vertical: \"top\", class: \"bottomRight\" }],\n ]);\n\n private static reverseVerticalPlacementMap: Map =\n new Map([\n [Placement.TopLeft, (position: string) => Placement.BottomLeft],\n [Placement.Top, (position: string) => Placement.Bottom],\n [Placement.TopRight, (position: string) => Placement.BottomRight],\n [Placement.Left, (position: string) => position === \"top\" ? Placement.LeftBottom : Placement.LeftTop],\n [Placement.LeftTop, (position: string) => Placement.LeftBottom],\n [Placement.LeftBottom, (position: string) => Placement.LeftTop],\n [Placement.Right, (position: string) => position === \"top\" ? Placement.RightBottom : Placement.RightTop],\n [Placement.RightTop, (position: string) => Placement.RightBottom],\n [Placement.RightBottom, (position: string) => Placement.RightTop],\n [Placement.BottomLeft, (position: string) => Placement.TopLeft],\n [Placement.Bottom, (position: string) => Placement.Top],\n [Placement.BottomRight, (position: string) => Placement.TopRight]\n ]);\n \n private static reverseHorizontalPlacementMap: Map =\n new Map([\n [Placement.TopLeft, (position: string) => Placement.TopRight],\n [Placement.Top, (position: string) => position === \"left\" ? Placement.TopRight : Placement.TopLeft],\n [Placement.TopRight, (position: string) => Placement.TopLeft],\n [Placement.Left, (position: string) => Placement.Right],\n [Placement.LeftTop, (position: string) => Placement.RightTop],\n [Placement.LeftBottom, (position: string) => Placement.RightBottom],\n [Placement.Right, (position: string) => Placement.Left],\n [Placement.RightTop, (position: string) => Placement.LeftBottom],\n [Placement.RightBottom, (position: string) => Placement.LeftTop],\n [Placement.BottomLeft, (position: string) => Placement.BottomRight],\n [Placement.Bottom, (position: string) => position === \"left\" ? Placement.BottomRight : Placement.BottomLeft],\n [Placement.BottomRight, (position: string) => Placement.BottomLeft]\n ]); \n \n private static arrowCenterPlacementMatch: Map =\n new Map([\n [Placement.TopLeft, Placement.Top],\n [Placement.Top, Placement.Top],\n [Placement.TopRight, Placement.Top],\n [Placement.Left, Placement.Left],\n [Placement.LeftTop, Placement.Left],\n [Placement.LeftBottom, Placement.Left],\n [Placement.Right, Placement.Right],\n [Placement.RightTop, Placement.Right],\n [Placement.RightBottom, Placement.Right],\n [Placement.BottomLeft, Placement.Bottom],\n [Placement.Bottom, Placement.Bottom],\n [Placement.BottomRight, Placement.Bottom]\n ]); \n \n private blazorId: string;\n public overlay: HTMLDivElement;\n private container: HTMLElement;\n private trigger: HTMLElement;\n\n private overlayInfo: domTypes.domInfo;\n private containerInfo: domTypes.domInfo;\n private triggerInfo: domTypes.domInfo;\n \n private containerBoundarySize: coordinates;\n private bodyBoundarySize: coordinates;\n \n private placement: Placement;\n private recentPlacement: Placement;\n private initialPlacement?: Placement;\n\n private triggerPrefixCls: string; \n\n private boundyAdjustMode: TriggerBoundyAdjustMode\n public position: overlayPosition;\n public sanitizedPosition: overlayPosition;\n \n private overlayPreset: domTypes.position;\n\n private verticalCalculation:\n (triggerPosition: number, triggerHeight: number, container: domTypes.domInfo,\n trigger: domTypes.domInfo, overlayHeight: number, constraints: overlayConstraints)\n => verticalPosition;\n\n private horizontalCalculation:\n (triggerPosition: number, triggerWidth: number, container: domTypes.domInfo,\n trigger: domTypes.domInfo, overlayWidth: number, constraints: overlayConstraints)\n => horizontalPosition;\n\n private overlayConstraints: overlayConstraints; \n private duringInit = true;\n private selectedVerticalPosition: \"top\" | \"bottom\";\n private selectedHorizontalPosition: \"left\" | \"right\";\n private calculationsToPerform: Set<\"horizontal\"|\"vertical\">;\n\n private triggerPosition: coordinates & { absoluteTop?: number, absoluteLeft?: number, height?: number, width?: number } = { }; \n\n private isContainerBody: boolean;\n private isContainerOverBody = false;\n private isTriggerFixed: boolean; //refers to trigger or any of its parent having \"position:fixed\"\n private lastScrollPosition: number; //used only if isTriggerFixed === true\n\n private scrollbarSize: {\n horizontalHeight: number,\n verticalWidth: number\n } \n\n constructor(blazorId: string,\n overlay: HTMLDivElement, container: HTMLElement, trigger: HTMLElement, placement: Placement, \n triggerBoundyAdjustMode: TriggerBoundyAdjustMode, triggerIsWrappedInDiv: boolean, triggerPrefixCls: string,\n overlayConstraints: overlayConstraints) {\n this.blazorId = blazorId;\n this.overlay = overlay; \n //containerInfo & scrollbars have to be obtained here, because after\n //removal of classes, the overlay goes to left: -9999 what causes artificial \n //scrollbars and viewport dimensions are changing\n this.containerInfo = domInfoHelper.getInfo(container);\n this.container = container;\n this.isContainerBody = container === document.body;\n this.calculateScrollBarSizes()\n if (!this.isContainerBody) {\n this.isContainerOverBody = domInfoHelper.findAncestorWithZIndex(this.container) > 0;\n }\n\n this.overlay.style.cssText = this.overlay.style.cssText.replace(\"display: none;\", \"\");\n this.overlay.style.top = \"0px\"; //reset to prevent scrollbars if do not exist\n this.removeHiddenClass()\n\n //The trigger is actually wrapping div, which can have its own dimensions (coming from styles).\n //So, first valid HTML element is picked and if there is none, the wrapping div is set as trigger.\n //Triggers are always wrapped in div if the instead of is used.\n this.trigger = Overlay.getFirstValidChild(trigger, triggerIsWrappedInDiv);\n this.triggerPrefixCls = triggerPrefixCls;\n if (overlayConstraints.arrowPointAtCenter){ \n this.placement = Overlay.arrowCenterPlacementMatch.get(placement);\n } else {\n this.placement = placement;\n }\n this.initialPlacement = this.placement;\n this.boundyAdjustMode = triggerBoundyAdjustMode; \n this.overlayConstraints = overlayConstraints;\n\n this.position = { zIndex: 0 };\n this.selectedHorizontalPosition = Overlay.appliedStylePositionMap.get(this.placement).horizontal;\n this.selectedVerticalPosition = Overlay.appliedStylePositionMap.get(this.placement).vertical;\n\n this.verticalCalculation = Overlay.setVerticalCalculation(this.placement, this.selectedVerticalPosition);\n this.horizontalCalculation = Overlay.setHorizontalCalculation(this.placement, this.selectedHorizontalPosition);\n this.isTriggerFixed = domInfoHelper.isFixedPosition(this.trigger);\n this.observe();\n }\n\n static getFirstValidChild(element: HTMLElement, triggerIsWrappedInDiv: boolean): HTMLElement {\n if (triggerIsWrappedInDiv)\n { \n for(let i = 0; i < element.childNodes.length; i++) {\n const childElement = element.childNodes[i] as HTMLElement;\n if (childElement.innerHTML)\n return childElement;\n }\n }\n return element\n }\n\n static setVerticalCalculation(placement: Placement, position: \"top\" | \"bottom\") {\n if (position === \"top\") {\n switch (placement) {\n case Placement.LeftTop:\n case Placement.RightTop: \n return function(triggerTop: number, triggerHeight: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayHeight: number, constraints: overlayConstraints) { \n return { \n top: triggerTop,\n bottom: Overlay.reversePositionValue(triggerTop, container.scrollHeight, overlayHeight) \n }; \n }; \n case Placement.BottomLeft:\n case Placement.Bottom:\n case Placement.BottomRight:\n return function(triggerTop: number, triggerHeight: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayHeight: number, constraints: overlayConstraints) { \n const position: verticalPosition = {\n top: triggerTop + triggerHeight + constraints.verticalOffset,\n };\n position.bottom = Overlay.reversePositionValue(position.top, container.scrollHeight, overlayHeight)\n return position;\n }; \n case Placement.Left:\n case Placement.Right:\n return function(triggerTop: number, triggerHeight: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayHeight: number, constraints: overlayConstraints) { \n const position: verticalPosition = { \n top: triggerTop + (triggerHeight / 2) - (overlayHeight / 2)\n };\n position.bottom = Overlay.reversePositionValue(position.top, container.scrollHeight, overlayHeight)\n return position;\n }; \n }\n } \n if (position === \"bottom\") {\n switch (placement) {\n case Placement.TopLeft:\n case Placement.Top:\n case Placement.TopRight:\n return function(triggerBottom: number, triggerHeight: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayHeight: number, constraints: overlayConstraints) { \n const position: verticalPosition = { \n bottom: triggerBottom + triggerHeight + constraints.verticalOffset,\n };\n position.top = Overlay.reversePositionValue(position.bottom, container.scrollHeight, overlayHeight);\n return position;\n }; \n case Placement.LeftBottom:\n case Placement.RightBottom:\n return function(triggerBottom: number, triggerHeight: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayHeight: number, constraints: overlayConstraints) { \n const position: verticalPosition = { \n bottom: triggerBottom,\n top: Overlay.reversePositionValue(triggerBottom, container.scrollHeight, overlayHeight)\n }; \n return position; \n }; \n }\n }\n //fallback - should not happen, but to avoid crashing scenarios, revert to BottomLeft\n console.log(\"Error: setVerticalCalculation did not match, nothing selected!!! Fallback.\", placement, position);\n return Overlay.setVerticalCalculation(Placement.BottomLeft, \"top\");\n }\n\n static setHorizontalCalculation(placement: Placement, position: \"left\" | \"right\") {\n if (position === \"left\") {\n switch (placement) {\n case Placement.TopLeft:\n case Placement.BottomLeft:\n return function(triggerLeft: number, triggerWidth: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayWidth: number, constraints: overlayConstraints) { \n return { \n left: triggerLeft,\n right: Overlay.reversePositionValue(triggerLeft, container.scrollWidth, overlayWidth)\n }; \n }; \n case Placement.Right:\n case Placement.RightTop:\n case Placement.RightBottom:\n return function(triggerLeft: number, triggerWidth: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayWidth: number, constraints: overlayConstraints) { \n const position: horizontalPosition = {\n left: triggerLeft + triggerWidth + constraints.horizontalOffset\n };\n position.right = Overlay.reversePositionValue(position.left, container.scrollWidth, overlayWidth)\n return position;\n };\n\n case Placement.Top:\n case Placement.Bottom:\n return function(triggerLeft: number, triggerWidth: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayWidth: number, constraints: overlayConstraints) { \n const position: horizontalPosition = {\n left: triggerLeft + (triggerWidth / 2) - (overlayWidth / 2)\n };\n position.right = Overlay.reversePositionValue(position.left, container.scrollWidth, overlayWidth)\n return position;\n };\n }\n }\n if (position === \"right\") {\n switch (placement) {\n case Placement.TopRight:\n case Placement.BottomRight:\n return function(triggerRight: number, triggerWidth: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayWidth: number, constraints: overlayConstraints) { \n let position: horizontalPosition = {\n right: triggerRight,\n left: Overlay.reversePositionValue(triggerRight, container.scrollWidth, overlayWidth)\n }; \n return position;\n };\n case Placement.Left:\n case Placement.LeftTop:\n case Placement.LeftBottom:\n return function(triggerRight: number, triggerWidth: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayWidth: number, constraints: overlayConstraints) {\n const position: horizontalPosition = {\n right: triggerRight + triggerWidth + constraints.horizontalOffset\n };\n position.left = Overlay.reversePositionValue(position.right, container.scrollWidth, overlayWidth)\n return position;\n }; \n } \n }\n //fallback - should not happen, but to avoid crashing scenarios, revert to BottomLeft\n console.log(\"Error: setHorizontalCalculation did not match, nothing selected!!! Fallback.\", placement, position);\n return Overlay.setVerticalCalculation(Placement.BottomLeft, \"top\"); \n }\n\n /**\n * Calculates reversed position. So for given left will return right,\n * for top => bottom, etc.\n * @param the value that needs to be reversed (left in scenario: left => right)\n * @param for horizontal (left, right) container width & for vertical (top, bottom) container height\n * @param for horizontal (left, right) overlay width & for vertical (top, bottom) overlay height\n * @returns number\n */\n static reversePositionValue(position: number, containerDimension: number, overlayDimension: number) { \n return containerDimension - position - overlayDimension;\n }\n\n private removeHiddenClass() { \n let end = this.overlay.className.indexOf(\"-hidden\");\n let start = this.overlay.className.lastIndexOf(\" \", end)\n if (start >= 0) {\n let className = this.overlay.className.substr(start + 1, end);\n if (className !== \"\") {\n this.overlay.classList.remove(className);\n }\n }\n }\n\n private calculateScrollBarSizes() {\n if (this.isContainerBody) {\n this.scrollbarSize = { \n horizontalHeight: window.innerHeight - document.documentElement.clientHeight,\n verticalWidth: window.innerWidth - document.documentElement.clientWidth\n }\n } \n else {\n this.scrollbarSize = { \n horizontalHeight: this.container.offsetHeight - this.container.clientHeight, \n verticalWidth: this.container.offsetWidth - this.container.clientWidth \n }\n }\n }\n\n private observe() {\n resize.create(`container-${this.blazorId}`, this.resizing.bind(this), false);\n resize.observe(`container-${this.blazorId}`, this.container); \n resize.observe(`container-${this.blazorId}`, this.trigger); \n mutation.create(`trigger-${this.blazorId}`, this.mutating.bind(this), false);\n mutation.observe(`trigger-${this.blazorId}`, this.trigger, {\n attributes: true,\n characterData: false,\n childList: false,\n subtree: false,\n attributeOldValue: false,\n characterDataOldValue: false\n });\n \n if (this.isContainerBody) {\n window.addEventListener(\"scroll\", this.onScroll.bind(this));\n }\n else {\n this.container.addEventListener(\"scroll\", this.onScroll.bind(this));\n }\n } \n\n private onScroll() {\n if (this.isTriggerFixed) {\n if (this.lastScrollPosition !== window.pageYOffset) { \n const diff = window.pageYOffset - this.lastScrollPosition; //positive -> down, negative -> up \n this.position.top += diff;\n this.position.bottom = Overlay.reversePositionValue(this.position.top, this.containerInfo.scrollHeight, this.overlayInfo.clientHeight); \n if (this.selectedVerticalPosition === \"top\") { \n this.sanitizedPosition.top = this.position.top;\n this.overlay.style.top = this.sanitizedPosition.top + \"px\"; \n } else {\n this.sanitizedPosition.bottom = this.getAdjustedBottom();\n this.overlay.style.bottom = this.sanitizedPosition.bottom + \"px\";\n }\n this.lastScrollPosition = window.pageYOffset;\n }\n } else {\n //Commented out code is a non-optimized calculation only if overlay stops fitting during scroll\n //It misses active check for initialPlacement being different to current placement\n // this.getKeyElementDimensions(false);\n // this.containerBoundarySize = this.getContainerBoundarySize();\n // if (!this.overlayFitsContainer(\"horizontal\", this.position.left, this.position.right)\n // || !this.overlayFitsContainer(\"vertical\", this.position.top, this.position.bottom)) { \n // this.calculatePosition(true, false, this.overlayPreset)\n // } \n this.calculatePosition(true, false, this.overlayPreset);\n }\n }\n\n private resizing(entries, observer) {\n //prevents from recalculation right on the spot during constructor run\n if (this.duringInit) { \n this.duringInit = false;\n return;\n }\n this.calculatePosition(true, false, this.overlayPreset);\n }\n\n private lastStyleMutation = \"\";\n\n /**\n * Mutation observer will fire whenever trigger style changes. This is first and foremost\n * to monitor position/size changes, so overlay can adjust itself to the new position.\n * @param mutations \n * @returns \n */\n private mutating(mutations) {\n if (this.duringInit) { \n this.duringInit = false;\n return;\n } \n if (this.lastStyleMutation !== this.trigger.style.cssText) {\n this.lastStyleMutation = this.trigger.style.cssText;\n this.calculatePosition(true, false, this.overlayPreset);\n }\n \n }\n\n public dispose(): void { \n resize.dispose(`container-${this.blazorId}`);\n mutation.dispose(`trigger-${this.blazorId}`);\n if (this.container.contains(this.overlay)) {\n this.container.removeChild(this.overlay);\n }\n\n if (this.isContainerBody) { \n window.removeEventListener(\"scroll\", this.onScroll);\n }\n else {\n this.container.removeEventListener(\"scroll\", this.onScroll);\n }\n }\n\n public calculatePosition(applyLocation: boolean, firstTime = false, overlayPreset?: domTypes.position): overlayPosition { \n //check if hidden, if yes, no need to recalculate (only if not first time)\n if (!firstTime && !this.overlay.offsetParent) { \n return;\n }\n //trigger no longer visible, hide\n if (!overlayPreset && !this.trigger.offsetParent) { \n if (!this.overlay.classList.contains(this.triggerPrefixCls + \"-hidden\")) {\n this.overlay.classList.add(this.triggerPrefixCls + \"-hidden\");\n }\n return this.position;\n }\n this.lastScrollPosition = window.pageYOffset;\n this.recentPlacement = this.placement;\n this.overlayPreset = overlayPreset;\n\n this.getKeyElementDimensions(firstTime);\n\n this.restoreInitialPlacement();\n\n //add a very basic check - if overlay width exceeds container width, left defaults to 0 \n this.calculationsToPerform = this.getNominalPositions();\n if (this.calculationsToPerform.size > 0) {\n this.adjustToContainerBoundaries();\n }\n\n this.sanitizeCalculatedPositions(); \n //first positioning is applied by blazor - without it, a flicker is visible\n if (applyLocation) {\n this.applyLocation();\n } \n return this.sanitizedPosition;\n }\n\n /**\n * All variants of positions are stored during calculations, but only key positions are \n * returned (so only left or right and only top or bottom).\n * Also, bottom & right positions need to be recalculated, due to the fact that during \n * calculations:\n * - bottom is represented as a value counting from top \n * - right is represented as a value counting from left\n * Browsers use different reference for bottom & right.\n */\n private sanitizeCalculatedPositions() {\n this.sanitizedPosition = { ...this.position};\n this.sanitizedPosition.zIndex = domInfoHelper.getMaxZIndex();\n this.sanitizedPosition.placement = this.placement; \n if (this.selectedHorizontalPosition === \"left\") {\n this.sanitizedPosition.right = null;\n }\n else {\n this.sanitizedPosition.left = null;\n this.sanitizedPosition.right = this.getAdjustedRight();\n }\n\n if (this.selectedVerticalPosition === \"top\") {\n this.sanitizedPosition.bottom = null;\n }\n else {\n this.sanitizedPosition.top = null;\n this.sanitizedPosition.bottom = this.getAdjustedBottom();\n }\n }\n\n /**\n * Gets first calculations of the overlay. For each direction, there is a single scenario\n * when it is immediately known that no further calculation is needed:\n * - for vertical direction - when overlay's height is larger than container vertical boundaries\n * - for vertical direction - when overlay's width is larger than container horizontal boundaries\n * These scenarios are ignored, when boundyAdjustMode === TriggerBoundyAdjustMode.None\n * @returns collection containing directions that will be calculable (not final)\n */\n private getNominalPositions(): Set<\"horizontal\"|\"vertical\"> {\n this.containerBoundarySize = this.getContainerBoundarySize();\n const height = this.containerBoundarySize.bottom - this.containerBoundarySize.top;\n const width = this.containerBoundarySize.right - this.containerBoundarySize.left;\n const directionsToCalculate = new Set<\"horizontal\"|\"vertical\">();\n\n if (this.boundyAdjustMode != TriggerBoundyAdjustMode.None && width < this.overlayInfo.clientWidth && this.isContainerBody) {\n if (this.selectedHorizontalPosition === \"left\") {\n this.position.left = 0;\n } else {\n this.position.right = 0;\n }\n } else {\n const horizontalPosition = this.getHorizontalPosition();\n this.position.left = horizontalPosition.left;\n this.position.right = horizontalPosition.right;\n directionsToCalculate.add(\"horizontal\");\n }\n //same for height exceeding container height - top defaults to 0 \n if (this.boundyAdjustMode != TriggerBoundyAdjustMode.None && height < this.overlayInfo.clientHeight && this.isContainerBody) { \n if (this.selectedVerticalPosition === \"top\") {\n this.position.top = 0;\n } else {\n this.position.bottom = 0;\n }\n } else {\n \n const verticalPosition = this.getVerticalPosition();\n this.position.top = verticalPosition.top;\n this.position.bottom = verticalPosition.bottom; \n directionsToCalculate.add(\"vertical\");\n }\n return directionsToCalculate;\n }\n\n /**\n * Restore initial placement (and following connected variables & functions) on calculation.\n * This never kicks in on first calculation. This is done because the overlay should always\n * try to position itself to the initial placement. So on every recalculation initial settings\n * (used during object creation) are reloaded.\n */\n private restoreInitialPlacement() {\n if (this.placement !== this.initialPlacement) {\n this.placement = this.initialPlacement;\n this.selectedHorizontalPosition = Overlay.appliedStylePositionMap.get(this.placement).horizontal;\n this.selectedVerticalPosition = Overlay.appliedStylePositionMap.get(this.placement).vertical;\n this.verticalCalculation = Overlay.setVerticalCalculation(this.placement, this.selectedVerticalPosition);\n this.horizontalCalculation = Overlay.setHorizontalCalculation(this.placement, this.selectedHorizontalPosition);\n }\n }\n\n /**\n * Very basic logging, useful during debugging.\n * @param extraMessage \n */\n /* istanbul ignore next */\n private logToConsole(extraMessage = \"\") {\n console.log(extraMessage + \" Overlay position:\", this.position,\n \"Input\",\n { \n blazorId: this.blazorId, \n container: {\n info: this.containerInfo,\n parentInfo: {\n clientHeight: this.container.parentElement.clientHeight,\n clientWidth: this.container.parentElement.clientWidth,\n scrollLeft: this.container.parentElement.scrollLeft,\n scrollTop: this.container.parentElement.scrollTop\n },\n containerId: this.container.id, \n containerBoundarySize: this.containerBoundarySize,\n },\n trigger: { \n absoluteTop: this.triggerInfo.absoluteTop,\n absoluteLeft: this.triggerInfo.absoluteLeft,\n clientHeight: this.triggerInfo.clientHeight,\n clientWidth: this.triggerInfo.clientWidth,\n offsetHeight: this.triggerInfo.offsetHeight,\n offsetWidth: this.triggerInfo.offsetWidth,\n boundyAdjustMode: this.boundyAdjustMode,\n //triggerType: this.triggerType,\n triggerHtml: this.trigger.outerHTML,\n triggerPrefixCls: this.triggerPrefixCls\n },\n overlay: { \n clientHeight: this.overlayInfo.clientHeight,\n clientWidth: this.overlayInfo.clientWidth,\n offsetHeight: this.overlayInfo.offsetHeight,\n offsetWidth: this.overlayInfo.offsetWidth,\n class: this.overlay.className,\n appliedCssPosition: {\n overlay_style_top: this.overlay.style.top,\n overlay_style_bottom: this.overlay.style.bottom,\n overlay_style_left: this.overlay.style.left,\n overlay_style_right: this.overlay.style.right\n }\n },\n window: {\n innerHeight: window.innerHeight,\n innerWidth: window.innerWidth,\n pageXOffset: window.pageXOffset,\n pageYOffset: window.pageYOffset,\n }, \n documentElement: {\n clientHeight: document.documentElement.clientHeight,\n clientWidth: document.documentElement.clientWidth,\n containerIsBody: this.isContainerBody,\n },\n scrollbars: this.scrollbarSize,\n overlayPreset: this.overlayPreset,\n overlayConstraints: this.overlayConstraints,\n position: this.position, \n sanitizedPosition: this.sanitizedPosition,\n placment: {\n initialPlacement: this.initialPlacement,\n recentPlacement: this.recentPlacement,\n placement: this.placement,\n selectedHorizontalPosition: this.selectedHorizontalPosition,\n selectedVerticalPosition: this.selectedVerticalPosition\n }\n }\n ); \n }\n\n /**\n * Right in the class is calculated with assumption that it is just reversed Left. \n * This works well for containers that are not body. When in body, then different Right \n * calculation is executed. Example:\n * In a document of width of 5000px, the first Left = 0 and the first Right = 0 as well \n * (and respectively, max Left = 5000 and max Right = 5000). However, browsers are behaving \n * differently. Left indeed is 0 until the document width (5000). Right however is different. \n * Right = 0 means the point of original viewport most Right. So, if you viewport is 1000px \n * wide, Right = 0 will mean same as Left = 1000. So to reach Left = 5000, Right has to \n * be equal to -4000. \n * @returns number - right position\n */\n private getAdjustedRight(): number { \n if (this.isContainerBody) {\n return this.position.right - (this.containerInfo.scrollWidth - window.innerWidth)\n - this.scrollbarSize.verticalWidth;\n }\n return this.position.right; \n }\n\n /**\n * Bottom in the class is calculated with assumption that it is just reversed Top. \n * This works well for containers that are not body. When in body, then different Bottom\n * calculation is executed. Example:\n * In a document of height of 5000px, the first Top = 0 and the first Bottom = 0 as well \n * (and respectively, max Top = 5000 and max Bottom = 5000). However, browsers are behaving \n * differently. Top indeed is 0 until the document height (5000). Bottom however is different. \n * Bottom = 0 means the point of original viewport most bottom. So, if you viewport is 1000px \n * in height, Bottom = 0 will mean same as Top = 1000. So to reach Top = 5000, Bottom has to \n * be equal to -4000. \n * @returns number - bottom position\n */\n private getAdjustedBottom(): number { \n if (this.isContainerBody) {\n return this.position.bottom - (this.containerInfo.scrollHeight - window.innerHeight)\n - this.scrollbarSize.horizontalHeight;\n }\n return this.position.bottom;\n }\n\n private applyLocation() {\n if (this.selectedHorizontalPosition === \"left\") {\n this.overlay.style.left = this.sanitizedPosition.left + \"px\";\n this.overlay.style.right = \"unset\";\n } else {\n this.overlay.style.right = this.sanitizedPosition.right + \"px\";\n this.overlay.style.left = \"unset\";\n }\n\n if (this.selectedVerticalPosition === \"top\") {\n this.overlay.style.top = this.sanitizedPosition.top + \"px\";\n this.overlay.style.bottom = \"unset\";\n } else {\n this.overlay.style.bottom = this.sanitizedPosition.bottom + \"px\";\n this.overlay.style.top = \"unset\";\n }\n\n this.applyPlacement();\n }\n\n private applyPlacement() {\n if (this.recentPlacement !== this.placement) {\n let currentPlacement: string;\n const stringMach = `${this.triggerPrefixCls}-placement-`;\n const start = this.overlay.className.indexOf(stringMach);\n const end = this.overlay.className.indexOf(\" \", start + stringMach.length);\n if (start >= 0) {\n currentPlacement = this.overlay.className.substr(start, end-start);\n } else {\n currentPlacement = Overlay.appliedStylePositionMap.get(this.initialPlacement).class;\n }\n let newPlacement = stringMach + Overlay.appliedStylePositionMap.get(this.placement).class;\n this.overlay.classList.replace(currentPlacement, newPlacement);\n }\n }\n\n /**\n * Loads all important dimensions of the key elements (container of the trigger, trigger & overlay)\n * into domType.domInfo structures. This could be accessed directly, except absolute positions.\n * Also simplifies mocking.\n * @param firstTime - if this method is called first time, then no need to load information on\n * container, as it was already loaded in the constructor. This is due to the fact that first time,\n * when overlay is added it has default left set to -9999 which causes the scrollbars to \n * appear (which will be gone by the time overlay becomes visible). Scrollbars change\n * dimensions, so often calculations were incorrect.\n */\n private getKeyElementDimensions(firstTime: boolean) {\n if (!firstTime) {\n this.containerInfo = domInfoHelper.getInfo(this.container);\n this.calculateScrollBarSizes()\n } \n this.triggerInfo = domInfoHelper.getInfo(this.trigger);\n this.overlayInfo = domInfoHelper.getInfo(this.overlay); \n }\n\n /**\n * Calculates trigger top & bottom positions and trigger height and\n * uses these to return nominal position values depending on placement and\n * expected attachment point (top/bottom)\n * @returns verticalPosition\n */\n private getVerticalPosition(): verticalPosition {\n let position: verticalPosition;\n //usually first offsetHeight is taken, as the measurement contains the borders\n this.triggerPosition.height = this.triggerInfo.offsetHeight != 0 ? this.triggerInfo.offsetHeight \n : this.triggerInfo.clientHeight; \n if (this.overlayPreset) {\n this.triggerPosition.top = this.triggerInfo.absoluteTop + this.overlayPreset.y;\n this.triggerPosition.height = 0;\n } else {\n this.triggerPosition.top = this.containerInfo.scrollTop + this.triggerInfo.absoluteTop\n - this.containerInfo.absoluteTop - this.containerInfo.clientTop;\n }\n this.triggerPosition.absoluteTop = this.triggerInfo.absoluteTop;\n\n if (this.selectedVerticalPosition === \"top\"){\n position = this.verticalCalculation(this.triggerPosition.top, this.triggerPosition.height, this.containerInfo,\n this.triggerInfo, this.overlayInfo.clientHeight, this.overlayConstraints);\n }\n else { //bottom\n this.triggerPosition.bottom = this.containerInfo.scrollHeight - this.triggerPosition.top - this.triggerPosition.height;\n position = this.verticalCalculation(this.triggerPosition.bottom, this.triggerPosition.height, this.containerInfo,\n this.triggerInfo, this.overlayInfo.clientHeight, this.overlayConstraints);\n }\n return position;\n }\n\n /**\n * Calculates trigger left & right positions and trigger width and\n * uses these to return nominal position values depending on placement and\n * expected attachment point (left/right)\n * @returns verticalPosition\n */\n private getHorizontalPosition(): horizontalPosition {\n let position: horizontalPosition;\n //usually first offsetHeight is taken, as the measurement contains the borders \n this.triggerPosition.width = this.triggerInfo.offsetWidth != 0 ? this.triggerInfo.offsetWidth : this.triggerInfo.clientWidth;\n \n //let triggerLeft: number;\n if (this.overlayPreset) {\n this.triggerPosition.left = this.triggerInfo.absoluteLeft + this.overlayPreset.x;\n this.triggerPosition.width = 0;\n } else {\n this.triggerPosition.left = this.containerInfo.scrollLeft + this.triggerInfo.absoluteLeft\n - this.containerInfo.absoluteLeft - this.containerInfo.clientLeft;\n }\n this.triggerPosition.absoluteLeft = this.triggerInfo.absoluteLeft;\n\n if (this.selectedHorizontalPosition === \"left\"){ \n position = this.horizontalCalculation(this.triggerPosition.left, this.triggerPosition.width, this.containerInfo,\n this.triggerInfo, this.overlayInfo.clientWidth, this.overlayConstraints);\n }\n else { //right\n this.triggerPosition.right = this.containerInfo.scrollWidth - this.triggerPosition.left - this.triggerPosition.width;\n position = this.horizontalCalculation(this.triggerPosition.right, this.triggerPosition.width, this.containerInfo,\n this.triggerInfo, this.overlayInfo.clientWidth, this.overlayConstraints);\n }\n return position; \n }\n\n /**\n * Responsible for calling logic that handles situation when calculated overlay position\n * is causing overlay to be partially rendered invisible. The goal is to adjust placement \n * in such a way, so the overlay is fully visible.\n * @returns void\n */\n private adjustToContainerBoundaries() {\n if (this.boundyAdjustMode === TriggerBoundyAdjustMode.None) {\n return;\n } \n\n if (this.calculationsToPerform.has(\"vertical\")) {\n this.adjustVerticalToContainerBoundaries();\n }\n\n if (this.calculationsToPerform.has(\"horizontal\")) {\n this.adjustHorizontalToContainerBoundaries();\n }\n }\n\n private setBodyBoundayrSize() {\n const window = domInfoHelper.getWindow(); \n const scroll = domInfoHelper.getScroll();\n this.bodyBoundarySize = {\n top : scroll.y,\n left: scroll.x,\n right: window.innerWidth + scroll.x,\n bottom: window.innerHeight + scroll.y\n }; \n }\n\n /**\n * Retrieves information on current logical viewport (visible area). For \n * InView this means actual viewport area (what you see in the browser - either the \n * body or the scrolled to area in a container) or for InScroll this means total\n * area of the container (or body).\n * @returns coordinates - absolute values measuring from top = 0 and left = 0 (first \n * pixels of the container)\n */\n private getContainerBoundarySize(): coordinates { \n if (this.boundyAdjustMode === TriggerBoundyAdjustMode.InScroll) { \n if (!this.isContainerBody) {\n this.setBodyBoundayrSize();\n }\n return { \n left: 0,\n right: this.containerInfo.scrollWidth,\n top: 0,\n bottom: this.containerInfo.scrollHeight\n };\n } \n this.setBodyBoundayrSize();\n\n if (this.isContainerBody) { \n return this.bodyBoundarySize;\n } else { \n //special care is needed when evaluating viewport of the container\n const parentIsInsignificant = this.container.parentElement.clientHeight === 0\n || this.container.parentElement.clientWidth === 0;\n const verticalScrollBasedOnParent = !parentIsInsignificant\n && this.container.parentElement.clientHeight < this.containerInfo.clientHeight;\n const horizontalScrollBasedOnParent = !parentIsInsignificant\n && this.container.parentElement.clientWidth < this.containerInfo.clientWidth;\n\n let clientHeight: number;\n let clientWidth: number;\n let scrollTop: number;\n let scrollLeft: number;\n\n if (verticalScrollBasedOnParent) {\n clientHeight = this.container.parentElement.clientHeight;\n scrollTop = this.container.parentElement.scrollTop;\n } else {\n clientHeight = this.containerInfo.clientHeight;\n scrollTop = this.containerInfo.scrollTop;\n }\n\n if (horizontalScrollBasedOnParent) {\n clientWidth = this.container.parentElement.clientWidth;clientWidth;\n scrollLeft = this.container.parentElement.scrollLeft;\n } else {\n clientWidth = this.containerInfo.clientWidth;\n scrollLeft = this.containerInfo.scrollLeft;\n }\n \n return { \n top : scrollTop,\n bottom: scrollTop + clientHeight,\n left: scrollLeft,\n right: scrollLeft + clientWidth\n }; \n } \n }\n\n /**\n * Returns how much height of the overlay is visible in current viewport \n */\n private getOverlayVisibleHeight(visibleIn: \"container\" | \"body\"): number {\n let boundary: coordinates;\n let top: number; \n if (visibleIn === \"container\") {\n boundary = this.containerBoundarySize;\n top = this.triggerPosition.top;\n } else {\n boundary = this.bodyBoundarySize;\n top = this.triggerPosition.absoluteTop;\n }\n\n if (this.selectedVerticalPosition === \"top\") {\n return boundary.bottom - (top + this.triggerPosition.height);\n } else {\n return top - boundary.top;\n } \n }\n\n /**\n * Returns how much width of the overlay is visible in current viewport \n */\n private getOverlayVisibleWidth(visibleIn: \"container\" | \"body\"): number { \n let boundary: coordinates;\n let left: number; \n if (visibleIn === \"container\") {\n boundary = this.containerBoundarySize;\n left = this.triggerPosition.left;\n } else {\n boundary = this.bodyBoundarySize;\n left = this.triggerPosition.absoluteLeft;\n }\n\n if (this.selectedHorizontalPosition === \"left\") {\n return boundary.right - (left + this.triggerPosition.width);\n } else {\n return left - boundary.left;\n }\n }\n\n /**\n * Checks if current position actually fits in the container and if not, then reverses\n * the placement. Then calculates which already calculated placements has the largest horizontal \n * area of the overlay visible and picks the calculation with largest area.\n */\n private adjustHorizontalToContainerBoundaries() {\n if (!this.overlayFitsContainer(\"horizontal\", this.position.left, this.position.right)) {\n const positionCache: overlayPosition = { ...this.position };\n const selectedPositionCache = this.selectedHorizontalPosition;\n const placementCache = this.placement;\n const horizontalCalculationCache = this.horizontalCalculation;\n const visibleWidthBeforeAdjustment = this.getOverlayVisibleWidth(\"container\");\n let visibleWidthInBodyBeforeAdjustment: number;\n if (this.isContainerOverBody) {\n visibleWidthInBodyBeforeAdjustment = this.getOverlayVisibleWidth(\"body\");\n } else {\n visibleWidthInBodyBeforeAdjustment = visibleWidthBeforeAdjustment\n }; \n\n this.getHorizontalAdjustment();\n\n const visibleWidthAfterAdjustment = this.getOverlayVisibleWidth(\"container\");\n let visibleWidthInBodyAfterAdjustment: number;\n if (this.isContainerOverBody) {\n visibleWidthInBodyAfterAdjustment = this.getOverlayVisibleWidth(\"body\");\n } else {\n visibleWidthInBodyAfterAdjustment = visibleWidthAfterAdjustment\n }; \n\n if (\n !(visibleWidthInBodyBeforeAdjustment < visibleWidthInBodyAfterAdjustment \n && visibleWidthInBodyAfterAdjustment > 0\n && visibleWidthInBodyAfterAdjustment - visibleWidthInBodyBeforeAdjustment >= 0) \n ||\n !(visibleWidthBeforeAdjustment < visibleWidthAfterAdjustment && visibleWidthAfterAdjustment > 0)) { \n this.position = positionCache;\n this.selectedHorizontalPosition = selectedPositionCache;\n this.placement = placementCache;\n this.horizontalCalculation = horizontalCalculationCache;\n }\n }\n }\n\n /**\n * Checks if current position actually fits in the container and if not, then reverses\n * the placement. Then calculates which already calculated placements has the largest vertical \n * area of the overlay visible and picks the calculation with largest area.\n */\n private adjustVerticalToContainerBoundaries() {\n if (!this.overlayFitsContainer(\"vertical\", this.position.top, this.position.bottom)) {\n const positionCache: overlayPosition = { ...this.position };\n const selectedPositionCache = this.selectedVerticalPosition;\n const placementCache = this.placement;\n const verticalCalculationCache = this.verticalCalculation;\n const visibleHeightBeforeAdjustment = this.getOverlayVisibleHeight(\"container\");\n let visibleHeightInBodyBeforeAdjustment: number;\n if (this.isContainerOverBody) {\n visibleHeightInBodyBeforeAdjustment = this.getOverlayVisibleHeight(\"body\");\n } else {\n visibleHeightInBodyBeforeAdjustment = visibleHeightBeforeAdjustment\n };\n\n this.getVerticalAdjustment(); \n\n const visibleHeightAfterAdjustment = this.getOverlayVisibleHeight(\"container\");\n let visibleHeightInBodyAfterAdjustment: number;\n if (this.isContainerOverBody) {\n visibleHeightInBodyAfterAdjustment = this.getOverlayVisibleHeight(\"body\");\n } else {\n visibleHeightInBodyAfterAdjustment = visibleHeightAfterAdjustment\n }; \n\n if (\n !(visibleHeightInBodyBeforeAdjustment < visibleHeightInBodyAfterAdjustment \n && visibleHeightInBodyAfterAdjustment > 0 \n && visibleHeightInBodyAfterAdjustment - visibleHeightInBodyBeforeAdjustment >= 0)\n ||\n !(visibleHeightBeforeAdjustment < visibleHeightAfterAdjustment && visibleHeightAfterAdjustment > 0)) { \n this.position = positionCache;\n this.selectedVerticalPosition = selectedPositionCache;\n this.placement = placementCache;\n this.verticalCalculation = verticalCalculationCache;\n }\n }\n }\n\n private overlayFitsContainer(type: \"horizontal\" | \"vertical\", start: number, end: number): boolean { \n if (type === \"horizontal\") {\n const endExpressedAsLeft = start + this.overlayInfo.clientWidth;\n return this.containerBoundarySize.left <= start\n && start <= this.containerBoundarySize.right //overlay left is between container left and right\n && this.containerBoundarySize.left <= endExpressedAsLeft\n && endExpressedAsLeft <= this.containerBoundarySize.right //and overlay right is between container left and right\n }\n const endExpressedAsTop = start + this.overlayInfo.clientHeight;\n return this.containerBoundarySize.top <= start\n && start <= this.containerBoundarySize.bottom //overlay top is between container top and bottom\n && this.containerBoundarySize.top <= endExpressedAsTop \n && endExpressedAsTop <= this.containerBoundarySize.bottom //and overlay bottom is between container top and bottom\n }\n\n /**\n * Applies basic adjustment - switches verticaly placement (top -> bottom & bottom -> top) \n * and recalculates based on the newly set placement \n */\n private getVerticalAdjustment() {\n this.placement = Overlay.reverseVerticalPlacementMap.get(this.placement)(this.selectedVerticalPosition);\n this.selectedVerticalPosition = Overlay.appliedStylePositionMap.get(this.placement).vertical;\n this.verticalCalculation = Overlay.setVerticalCalculation(this.placement, this.selectedVerticalPosition);\n const verticalPosition = this.getVerticalPosition();\n this.position.top = verticalPosition.top;\n this.position.bottom = verticalPosition.bottom;\n }\n\n /**\n * Applies basic adjustment - switches horizontal placement (left -> right & right -> left)\n * and recalculates based on the newly set placement\n */\n private getHorizontalAdjustment() {\n this.placement = Overlay.reverseHorizontalPlacementMap.get(this.placement)(this.selectedHorizontalPosition);\n this.selectedHorizontalPosition = Overlay.appliedStylePositionMap.get(this.placement).horizontal;\n this.horizontalCalculation = Overlay.setHorizontalCalculation(this.placement, this.selectedHorizontalPosition);\n const horizontalPosition = this.getHorizontalPosition();\n this.position.left = horizontalPosition.left;\n this.position.right = horizontalPosition.right; \n } \n}","import { domInfoHelper, eventHelper, domManipulationHelper, domTypes } from '../dom/exports'\nimport { Placement, TriggerBoundyAdjustMode, overlayConstraints, overlayPosition, Overlay } from './overlay'\nimport { state } from '../stateProvider';\n\nexport class overlayHelper {\n static overlayRegistry: { [key: string]: Overlay} = {};\n\n static addOverlayToContainer(blazorId: string, \n overlaySelector, triggerSelector, placement: Placement, containerSelector: string,\n triggerBoundyAdjustMode: TriggerBoundyAdjustMode, triggerIsWrappedInDiv: boolean, triggerPrefixCls: string,\n verticalOffset: number, horizontalOffset: number, arrowPointAtCenter: boolean, \n overlayTop?: number, overlayLeft?: number\n ): overlayPosition { \n const overlayElement = domInfoHelper.get(overlaySelector) as HTMLDivElement; \n const containerElement = domInfoHelper.get(containerSelector) as HTMLElement;\n const triggerElement = domInfoHelper.get(triggerSelector) as HTMLElement; \n\n if (!domManipulationHelper.addElementTo(overlaySelector, containerElement)) {\n console.log(\"Failed to add overlay. Details:\", {\n triggerPrefixCls: triggerPrefixCls,\n overlaySelector: overlaySelector,\n containerElement: containerElement\n } );\n return null;\n } \n\n let overlayPresets: domTypes.position;\n if (overlayTop || overlayLeft) {\n overlayPresets = { x: overlayLeft, y: overlayTop };\n }\n\n const overlayConstraints: overlayConstraints = {\n verticalOffset: verticalOffset,\n horizontalOffset: horizontalOffset,\n arrowPointAtCenter: arrowPointAtCenter\n };\n\n const overlay = new Overlay(blazorId, overlayElement, containerElement, triggerElement, placement, triggerBoundyAdjustMode, triggerIsWrappedInDiv, triggerPrefixCls, overlayConstraints); \n //register object in store, so it can be retrieved during update/dispose\n this.overlayRegistry[blazorId] = overlay;\n \n return overlay.calculatePosition(false, true, overlayPresets);\n }\n\n\n static updateOverlayPosition(blazorId: string, overlaySelector, triggerSelector, placement: Placement, containerSelector: string,\n triggerBoundyAdjustMode: TriggerBoundyAdjustMode, triggerIsWrappedInDiv: boolean, triggerPrefixCls: string,\n verticalOffset: number, horizontalOffset: number, arrowPointAtCenter: boolean, \n overlayTop?: number, overlayLeft?: number): overlayPosition {\n const overlay = this.overlayRegistry[blazorId];\n if (overlay){\n let overlayPresets: domTypes.position;\n if (overlayTop || overlayLeft) {\n overlayPresets = { x: overlayLeft, y: overlayTop };\n } \n return overlay.calculatePosition(false, false, overlayPresets); \n } else {\n //When page is slow, it may happen that rendering of an overlay may not happen, even if \n //blazor thinks it did happen. In such a case, when overlay object is not found, just try\n //to render it again.\n return overlayHelper.addOverlayToContainer(blazorId, overlaySelector, triggerSelector, placement, containerSelector,triggerBoundyAdjustMode, triggerIsWrappedInDiv, triggerPrefixCls, \n verticalOffset, horizontalOffset, arrowPointAtCenter, \n overlayTop, overlayLeft); \n } \n }\n\n static deleteOverlayFromContainer(blazorId: string) {\n const overlay = this.overlayRegistry[blazorId];\n if (overlay) { \n overlay.dispose();\n delete this.overlayRegistry[blazorId];\n }\n }\n\n static addPreventEnterOnOverlayVisible(element, overlayElement) {\n if (element && overlayElement) {\n const dom: HTMLElement = domInfoHelper.get(element);\n if (dom) {\n state.eventCallbackRegistry[element.id + \"keydown:Enter\"] = (e) => eventHelper.preventKeyOnCondition(e, \"enter\", () => overlayElement.offsetParent !== null);\n dom.addEventListener(\"keydown\", state.eventCallbackRegistry[element.id + \"keydown:Enter\"], false);\n }\n }\n }\n\n static removePreventEnterOnOverlayVisible(element) {\n if (element) {\n const dom: HTMLElement = domInfoHelper.get(element);\n if (dom) {\n dom.removeEventListener(\"keydown\", state.eventCallbackRegistry[element.id + \"keydown:Enter\"]);\n state.eventCallbackRegistry[element.id + \"keydown:Enter\"] = null; \n }\n }\n }\n}\n\n","export class tableHelper {\n static bindTableScroll(bodyRef, tableRef, headerRef, scrollX, scrollY, resizable) {\n bodyRef.bindScroll = () => {\n if (scrollX) {\n tableHelper.SetScrollPositionClassName(bodyRef, tableRef);\n }\n if (scrollY) {\n headerRef.scrollLeft = bodyRef.scrollLeft;\n }\n }\n\n // direct setting classlist will not work, so delay 500ms for workaround\n setTimeout(() => {\n bodyRef && bodyRef.bindScroll();\n }, 500);\n\n bodyRef.addEventListener && bodyRef.addEventListener('scroll', bodyRef.bindScroll);\n window.addEventListener('resize', bodyRef.bindScroll);\n\n if (resizable) {\n tableHelper.enableColumnResizing(tableRef);\n }\n }\n\n static unbindTableScroll(bodyRef) {\n if (bodyRef) {\n bodyRef.removeEventListener && bodyRef.removeEventListener('scroll', bodyRef.bindScroll);\n window.removeEventListener('resize', bodyRef.bindScroll);\n }\n }\n\n static SetScrollPositionClassName(bodyRef, tableRef) {\n\n let scrollLeft = bodyRef.scrollLeft;\n let scrollWidth = bodyRef.scrollWidth;\n let clientWidth = bodyRef.clientWidth;\n\n let pingLeft = false;\n let pingRight = false;\n\n if ((scrollWidth == clientWidth && scrollWidth != 0)) {\n pingLeft = false;\n pingRight = false;\n }\n else if (scrollLeft == 0) {\n pingLeft = false;\n pingRight = true;\n }\n else if (Math.abs(scrollWidth - (scrollLeft + clientWidth)) <= 1) {\n pingRight = false;\n pingLeft = true;\n }\n else {\n pingLeft = true;\n pingRight = true;\n }\n\n pingLeft ? tableRef.classList.add(\"ant-table-ping-left\") : tableRef.classList.remove(\"ant-table-ping-left\");\n pingRight ? tableRef.classList.add(\"ant-table-ping-right\") : tableRef.classList.remove(\"ant-table-ping-right\");\n }\n\n static enableColumnResizing(tableElement) {\n\n const cols = tableElement.querySelectorAll('col');\n\n tableElement.tHead.querySelectorAll('.ant-table-thead th').forEach((th, i) => {\n\n const col = cols[i];\n const handle = document.createElement('div');\n handle.classList.add('ant-table-resizable-handle');\n handle.style.height = `${tableElement.offsetHeight}px`;\n\n th.appendChild(handle);\n\n\n handle.addEventListener('mousedown', handleMouseDown);\n if ('ontouchstart' in window) {\n handle.addEventListener('touchstart', handleMouseDown);\n }\n\n function handleMouseDown(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n\n //const th = handle.parentElement;\n const startPageX = evt.touches ? evt.touches[0].pageX : evt.pageX;\n const originalColumnWidth = th.offsetWidth;\n const rtlMultiplier = window.getComputedStyle(th, null).getPropertyValue('direction') === 'rtl' ? -1 : 1;\n let updatedColumnWidth = 0;\n handle.classList.add('ant-table-resizing');\n\n function handleMouseMove(evt) {\n evt.stopPropagation();\n const newPageX = evt.touches ? evt.touches[0].pageX : evt.pageX;\n const nextWidth = originalColumnWidth + (newPageX - startPageX) * rtlMultiplier - 5;\n if (Math.abs(nextWidth - updatedColumnWidth) > 0) {\n updatedColumnWidth = nextWidth;\n handle.style.right = '';\n handle.style.left = `${updatedColumnWidth}px`;\n }\n }\n\n function handleMouseUp() {\n if (updatedColumnWidth > 0) {\n th.style.width = `${updatedColumnWidth}px`;\n col.style.width = `${updatedColumnWidth}px`;\n handle.style.right = '0';\n handle.style.left = '';\n handle.classList.remove('ant-table-resizing');\n }\n\n document.body.removeEventListener('mousemove', handleMouseMove);\n document.body.removeEventListener('mouseup', handleMouseUp);\n document.body.removeEventListener('touchmove', handleMouseMove);\n document.body.removeEventListener('touchend', handleMouseUp);\n }\n\n if (evt instanceof TouchEvent) {\n document.body.addEventListener('touchmove', handleMouseMove, { passive: true });\n document.body.addEventListener('touchend', handleMouseUp, { passive: true });\n } else {\n document.body.addEventListener('mousemove', handleMouseMove, { passive: true });\n document.body.addEventListener('mouseup', handleMouseUp, { passive: true });\n }\n }\n });\n }\n}","type fileInfo = {\n fileName: string,\n size: number,\n objectURL: string,\n type: string\n}\n\nexport class uploadHelper {\n static addFileClickEventListener(btn: HTMLElement) {\n if (btn.addEventListener) {\n btn.addEventListener(\"click\", uploadHelper.fileClickEvent);\n }\n }\n\n static removeFileClickEventListener(btn: HTMLElement) {\n btn.removeEventListener(\"click\", uploadHelper.fileClickEvent);\n }\n\n private static fileClickEvent(e: MouseEvent) {\n e.stopPropagation();\n const fileId = (e.currentTarget as HTMLSpanElement).attributes[\"data-fileid\"].nodeValue;\n const element = document.getElementById(fileId) as HTMLInputElement;\n element.click();\n }\n\n static clearFile(element) {\n element.setAttribute(\"type\", \"input\");\n element.value = '';\n element.setAttribute(\"type\", \"file\");\n }\n\n static getFileInfo(element: HTMLInputElement) {\n if (element.files && element.files.length > 0) {\n let fileInfo = Array();\n for (var i = 0; i < element.files.length; i++) {\n let file = element.files[i];\n const objectUrl = this.getObjectURL(file);\n fileInfo.push({\n fileName: file.name,\n size: file.size,\n objectURL: objectUrl,\n type: file.type\n });\n }\n\n return fileInfo;\n }\n }\n\n private static getObjectURL(file: File): string {\n var url = null;\n if (window.URL != undefined) {\n url = window.URL.createObjectURL(file);\n } else if (window.webkitURL != undefined) {\n url = window.webkitURL.createObjectURL(file);\n }\n return url;\n }\n\n static uploadFile(element, index, data, headers, fileId, url, name, instance, percentMethod, successMethod, errorMethod, method: string) {\n let formData = new FormData();\n var file = element.files[index];\n var size = file.size;\n formData.append(name, file);\n if (data != null) {\n for (var key in data) {\n formData.append(key, data[key]);\n }\n }\n const req = new XMLHttpRequest()\n req.onreadystatechange = function () {\n if (req.readyState === 4) {\n // #1655 Any 2xx response code is okay\n if (req.status < 200 || req.status > 299) {\n // #2857 should get error raw response\n instance.invokeMethodAsync(errorMethod, fileId, req.responseText);\n return;\n }\n instance.invokeMethodAsync(successMethod, fileId, req.responseText);\n }\n }\n req.upload.onprogress = function (event) {\n var percent = Math.floor(event.loaded / size * 100);\n instance.invokeMethodAsync(percentMethod, fileId, percent);\n }\n req.onerror = function (e) {\n instance.invokeMethodAsync(errorMethod, fileId, \"error\");\n }\n req.open(method, url, true)\n if (headers != null) {\n for (var header in headers) {\n req.setRequestHeader(header, headers[header]);\n }\n }\n req.send(formData)\n }\n}","\nconst throttle = (fn, threshold = 160) => {\n let timeout;\n var start = +new Date;\n return function (...args) {\n let context = this, curTime = +new Date() - 0;\n //总是干掉事件回调\n window.clearTimeout(timeout);\n if (curTime - start >= threshold) {\n //只执行一部分方法,这些方法是在某个时间段内执行一次\n fn.apply(context, args);\n start = curTime;\n }\n else {\n //让方法在脱离事件后也能执行一次\n timeout = window.setTimeout(() => {\n //@ts-ignore\n fn.apply(this, args);\n }, threshold);\n }\n };\n}\n\nconst eventMap = new Map();\n\nconst defaultOptions = {\n inViewport: true\n}\n\nclass Dragger {\n\n private _trigger: HTMLElement = null;\n private _container: HTMLElement = null;\n private _options: any = null;\n private _state: any = null;\n private _isFirst: boolean = true;\n private _style: string = null;\n\n constructor(trigger: HTMLElement, container: HTMLElement, dragInViewport: boolean) {\n this._trigger = trigger;\n this._container = container;\n this._options = Object.assign({}, defaultOptions, {\n inViewport: dragInViewport\n });\n this._state = {\n isInDrag: false,\n mX: 0, // mouse x\n mY: 0, // mouse y\n domStartX: 0, // on mousedown, the mouse x\n domStartY: 0, // on mousedown, the mouse y \n }\n }\n\n getContainerPos() {\n const rect = this._container.getBoundingClientRect();\n return {\n left: rect.left,\n top: rect.top\n }\n }\n\n onMousedown = (e) => {\n const state = this._state;\n state.isInDrag = true;\n state.mX = e.clientX;\n state.mY = e.clientY;\n this._container.style.position = \"absolute\";\n const { left, top } = this.getContainerPos();\n\n if (this._isFirst) {\n\n state.domMaxY = document.documentElement.clientHeight\n - this._container.offsetHeight - 1;\n state.domMaxX = document.documentElement.clientWidth\n - this._container.offsetWidth - 1;\n state.domMaxY = state.domMaxY < 0 ? 0 : state.domMaxY;\n state.domMaxX = state.domMaxX < 0 ? 0 : state.domMaxX;\n\n this._container.style.left = left + 'px';\n this._container.style.top = top + 'px';\n\n if (!this._style) {\n this._style = this._container.getAttribute(\"style\");\n }\n\n this._isFirst = false;\n }\n\n state.domStartX = left;\n state.domStartY = top;\n }\n\n onMouseup = (e) => {\n const state = this._state;\n\n state.isInDrag = false;\n\n const { left, top } = this.getContainerPos();\n state.domStartX = left;\n state.domStartY = top;\n }\n\n onMousemove = throttle((e) => {\n const state = this._state;\n if (state.isInDrag) {\n var nowX = e.clientX,\n nowY = e.clientY,\n disX = nowX - state.mX,\n disY = nowY - state.mY;\n\n var newDomX = state.domStartX + disX;\n var newDomY = state.domStartY + disY;\n if (this._options.inViewport) {\n if (newDomX < 0) {\n newDomX = 0;\n }\n else if (newDomX > state.domMaxX) {\n newDomX = state.domMaxX;\n }\n if (newDomY < 0) {\n newDomY = 0;\n }\n else if (newDomY > state.domMaxY) {\n newDomY = state.domMaxY;\n }\n }\n this._container.style.position = \"absolute\";\n this._container.style.margin = \"0\";\n this._container.style.paddingBottom = \"0\";\n this._container.style.left = newDomX + \"px\";\n this._container.style.top = newDomY + \"px\";\n }\n }, 10).bind(this);\n\n onResize = throttle((e) => {\n const state = this._state;\n\n state.domMaxY = document.documentElement.clientHeight\n - this._container.offsetHeight - 1;\n state.domMaxX = document.documentElement.clientWidth\n - this._container.offsetWidth - 1;\n state.domMaxY = state.domMaxY < 0 ? 0 : state.domMaxY;\n state.domMaxX = state.domMaxX < 0 ? 0 : state.domMaxX;\n state.domStartY = parseInt(this._container.style.top);\n state.domStartX = parseInt(this._container.style.left);\n if (state.domStartY > state.domMaxY) {\n if (state.domMaxY > 0) {\n this._container.style.top = state.domMaxY + \"px\";\n }\n }\n if (state.domStartX > state.domMaxX) {\n this._container.style.left = state.domMaxX + \"px\";\n }\n }, 10).bind(this);\n\n bindDrag() {\n const trigger = this._trigger;\n const options = this._options;\n\n trigger.addEventListener(\"mousedown\", this.onMousedown, false);\n window.addEventListener(\"mouseup\", this.onMouseup, false);\n document.addEventListener(\"mousemove\", this.onMousemove);\n if (options.inViewport) {\n window.addEventListener(\"resize\", this.onResize, false);\n }\n }\n\n unbindDrag() {\n const trigger = this._trigger;\n\n trigger.removeEventListener(\"mousedown\", this.onMousedown, false);\n window.removeEventListener(\"mouseup\", this.onMouseup, false);\n document.removeEventListener(\"mousemove\", this.onMousemove);\n if (this._options.inViewport) {\n window.removeEventListener(\"resize\", this.onResize, false);\n }\n }\n\n resetContainerStyle() {\n if (this._style !== null) {\n this._isFirst = true;\n this._container.setAttribute(\"style\", this._style);\n }\n }\n}\n\nfunction enableDraggable(trigger: HTMLElement, container: HTMLElement, dragInViewport: boolean = true) {\n let dragger = eventMap.get(trigger);\n if (!dragger) {\n dragger = new Dragger(trigger, container, dragInViewport);\n eventMap.set(trigger, dragger);\n } \n dragger.bindDrag();\n}\n\nfunction disableDraggable(trigger: HTMLElement) {\n const dragger = eventMap.get(trigger);\n if (dragger) {\n dragger.unbindDrag();\n }\n}\n\nfunction resetModalPosition(trigger: HTMLElement) {\n const dragger = eventMap.get(trigger);\n if (dragger) {\n dragger.resetContainerStyle();\n }\n}\n\nexport { enableDraggable, disableDraggable, resetModalPosition };","import { domInfoHelper } from './exports';\nimport { state } from '../stateProvider';\n\nexport class eventHelper {\n static triggerEvent(element: HTMLInputElement, eventType: string, eventName: string) {\n //TODO: replace with event constructors https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent\n //Not used \n const evt = document.createEvent(eventType);\n evt.initEvent(eventName);\n return element.dispatchEvent(evt);\n }\n\n static addDomEventListener(element, eventName: string, preventDefault: boolean, invoker: any) {\n const callback = args => {\n const obj = {};\n for (let k in args) {\n if (k !== 'originalTarget') { //firefox occasionally raises Permission Denied when this property is being stringified\n obj[k] = args[k];\n }\n }\n const json = JSON.stringify(obj, (k, v) => {\n if (v instanceof Node) return 'Node';\n if (v instanceof Window) return 'Window';\n return v;\n }, ' ');\n\n setTimeout(function () { invoker.invokeMethodAsync('Invoke', json) }, 0);\n if (preventDefault === true) {\n args.preventDefault();\n }\n };\n\n const dom = domInfoHelper.get(element);\n const key = `${eventName}-${invoker._id}`;\n\n if (eventName === 'resize') {\n dom[`e_${key}`] = this.debounce(() => callback({ innerWidth: window.innerWidth, innerHeight: window.innerHeight }), 200, false);\n } else {\n dom[`e_${key}`] = callback;\n }\n\n dom[`i_${key}`] = invoker;\n (dom as HTMLElement).addEventListener(eventName, dom[`e_${key}`]);\n }\n\n static addDomEventListenerToFirstChild(element, eventName, preventDefault, invoker) {\n const dom = domInfoHelper.get(element);\n\n if (dom && dom.firstElementChild) {\n this.addDomEventListener(dom.firstElementChild, eventName, preventDefault, invoker);\n }\n }\n\n static removeDomEventListener(element, eventName: string, invoker) {\n const dom = domInfoHelper.get(element);\n const key = `${eventName}-${invoker._id}`;\n\n if (dom) {\n dom.removeEventListener(eventName, dom[`e_${key}`]);\n //dom[`i_${key}`].dispose();\n }\n }\n\n static addPreventKeys(inputElement, keys: string[]) {\n if (inputElement) {\n const dom = domInfoHelper.get(inputElement);\n keys = keys.map(function (x) { return x.toUpperCase(); })\n state.eventCallbackRegistry[inputElement.id + \"keydown\"] = (e) => this.preventKeys(e, keys);\n (dom as HTMLElement).addEventListener(\"keydown\", state.eventCallbackRegistry[inputElement.id + \"keydown\"], false);\n }\n }\n\n static preventKeyOnCondition(e: KeyboardEvent, key: string, check: () => boolean) {\n if (e.key.toUpperCase() === key.toUpperCase() && check()) {\n e.preventDefault();\n return false;\n }\n }\n\n static removePreventKeys(inputElement) {\n if (inputElement) {\n const dom = domInfoHelper.get(inputElement);\n if (dom) {\n (dom as HTMLElement).removeEventListener(\"keydown\", state.eventCallbackRegistry[inputElement.id + \"keydown\"]);\n state.eventCallbackRegistry[inputElement.id + \"keydown\"] = null;\n }\n }\n }\n\n private static debounce(func, wait, immediate) {\n var timeout;\n return (...args) => {\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(this, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n };\n\n private static preventKeys(e: KeyboardEvent, keys: string[]) {\n if (keys.indexOf(e.key.toUpperCase()) !== -1) {\n e.preventDefault();\n return false;\n }\n }\n}","export { infoHelper as domInfoHelper } from './infoHelper';\nexport { manipulationHelper as domManipulationHelper } from './manipulationHelper';\nexport { eventHelper } from './eventHelper';\nexport * as domTypes from './types';","import { domTypes } from './exports'\n\nexport class infoHelper {\n static getWindow() {\n return {\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight\n };\n }\n\n static get(element: any) {\n if (!element) {\n element = document.body;\n } else if (typeof element === 'string') {\n if (element === 'window') {\n return window;\n } else if (element === 'document') {\n return document;\n }\n element = document.querySelector(element!)\n }\n return element;\n }\n\n static getInfo(element: any): domTypes.domInfo {\n let domElement = this.get(element);\n if (!domElement) {\n domElement = {};\n }\n const absolutePosition = this.getElementAbsolutePos(domElement);\n const result: domTypes.domInfo = {\n offsetTop: domElement.offsetTop || 0,\n offsetLeft: domElement.offsetLeft || 0,\n offsetWidth: domElement.offsetWidth || 0,\n offsetHeight: domElement.offsetHeight || 0,\n scrollHeight: domElement.scrollHeight || 0,\n scrollWidth: domElement.scrollWidth || 0,\n scrollLeft: domElement.scrollLeft || 0,\n scrollTop: domElement.scrollTop || 0,\n clientTop: domElement.clientTop || 0,\n clientLeft: domElement.clientLeft || 0,\n clientHeight: domElement.clientHeight || 0,\n clientWidth: domElement.clientWidth || 0,\n selectionStart: domElement.selectionStart || 0,\n absoluteTop: Math.round(absolutePosition.y),\n absoluteLeft: Math.round(absolutePosition.x)\n };\n return result;\n }\n\n static getElementAbsolutePos(element: any): domTypes.position {\n const res: domTypes.position = {\n x: 0,\n y: 0\n };\n if (element !== null) {\n if (element.getBoundingClientRect) {\n const viewportElement = document.documentElement;\n const box = element.getBoundingClientRect();\n const scrollLeft = viewportElement.scrollLeft;\n const scrollTop = viewportElement.scrollTop;\n\n res.x = box.left + scrollLeft;\n res.y = box.top + scrollTop;\n }\n }\n return res;\n }\n\n static getBoundingClientRect(element: any): domTypes.domRect {\n const domElement = this.get(element);\n if (domElement && domElement.getBoundingClientRect) {\n const rect = domElement.getBoundingClientRect();\n // Fixes #1468. This wrapping is necessary for old browsers. Remove this when one day we no longer support them.\n return {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.x,\n y: rect.y\n };\n }\n return null;\n }\n\n static getFirstChildDomInfo(element: any) {\n const domElement = this.get(element);\n if (domElement) {\n if (domElement.firstElementChild) {\n return this.getInfo(domElement.firstElementChild);\n } else {\n return this.getInfo(domElement);\n }\n }\n return null;\n }\n\n static getActiveElement() {\n const element = document.activeElement;\n const id = element.getAttribute(\"id\") || \"\";\n return id;\n }\n\n static getScroll() {\n return { x: window.pageXOffset, y: window.pageYOffset };\n }\n\n static hasFocus(selector) {\n const dom = this.get(selector);\n return (document.activeElement === dom);\n }\n\n static getInnerText(element) {\n const dom = this.get(element);\n if (dom) return dom.innerText;\n return null;\n }\n\n static getMaxZIndex(): number {\n return Array.from(document.querySelectorAll(\"*\")).reduce((r, e) => Math.max(r, +window.getComputedStyle(e).zIndex || 0), 0)\n }\n\n static isFixedPosition(element) {\n let node = this.get(element);\n while (node && node.nodeName.toLowerCase() !== 'body') {\n if (window.getComputedStyle(node).getPropertyValue('position').toLowerCase() === 'fixed') { return true; }\n node = node.parentNode;\n }\n return false;\n }\n\n static findAncestorWithZIndex(element: HTMLElement): number {\n let node = this.get(element);\n let zIndexAsString: string;\n let zIndex: number;\n while (node && node.nodeName.toLowerCase() !== 'body') {\n zIndexAsString = window.getComputedStyle(node).zIndex;\n zIndex = Number.parseInt(zIndexAsString);\n if (!Number.isNaN(zIndex)) {\n return zIndex;\n }\n node = node.parentNode;\n }\n return null;\n }\n\n static getElementsInfo(elements: any[]): any {\n let infos = {};\n elements.forEach(el => {\n infos[el.id] = this.getInfo(el);\n })\n\n return infos;\n }\n}","import { domInfoHelper } from './exports'\nimport { styleHelper } from '../styleHelper'\nimport { state } from '../stateProvider'\nimport * as enums from '../enums';\n\n\nlet cachedScrollBarSize: number | undefined = undefined;\nconst scrollIds = new Map();\n\nexport class manipulationHelper {\n static addElementToBody(element) {\n document.body.appendChild(element);\n }\n\n static delElementFromBody(element) {\n document.body.removeChild(element);\n }\n\n static addElementTo(addElement, elementSelector, prepend = false): boolean {\n let parent = domInfoHelper.get(elementSelector);\n if (parent && addElement) {\n if (parent instanceof Node && addElement instanceof Node) {\n if (prepend) parent.insertBefore(addElement, parent.firstChild);\n else parent.appendChild(addElement);\n return true;\n } else {\n console.log(\"does not implement node\", parent, addElement);\n }\n }\n return false;\n }\n\n static delElementFrom(delElement, elementSelector) {\n let parent = domInfoHelper.get(elementSelector);\n if (parent && delElement) {\n parent.removeChild(delElement);\n }\n }\n\n static setDomAttribute(element, attributes) {\n let dom: HTMLElement = domInfoHelper.get(element);\n if (dom) {\n for (let key in attributes) {\n dom.setAttribute(key, attributes[key]);\n }\n }\n }\n \n static copyElement(element) {\n if (!this.copyElementAsRichText(element)) {\n this.copy(element.innerText);\n }\n }\n\n private static copyElementAsRichText(element) {\n var selection = document.getSelection();\n if (selection.rangeCount > 0) {\n selection.removeAllRanges();\n }\n var range = document.createRange();\n range.selectNode(element);\n selection.addRange(range);\n try {\n var successful = document.execCommand('copy');\n selection.removeAllRanges();\n return successful;\n } catch (err) {\n selection.removeAllRanges();\n return false;\n }\n }\n\n static copy(text) {\n if (!navigator.clipboard) {\n this.fallbackCopyTextToClipboard(text);\n return;\n }\n navigator.clipboard.writeText(text).then(function () {\n console.log('Async: Copying to clipboard was successful!');\n }, function (err) {\n console.error('Async: Could not copy text: ', err);\n });\n }\n\n private static fallbackCopyTextToClipboard(text) {\n var textArea = document.createElement(\"textarea\");\n textArea.value = text;\n\n // Avoid scrolling to bottom\n textArea.style.top = \"0\";\n textArea.style.left = \"0\";\n textArea.style.position = \"fixed\";\n\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n try {\n var successful = document.execCommand('copy');\n var msg = successful ? 'successful' : 'unsuccessful';\n console.log('Fallback: Copying text command was ' + msg);\n } catch (err) {\n console.error('Fallback: Oops, unable to copy', err);\n }\n\n document.body.removeChild(textArea);\n }\n\n static focus(selector, noScroll: boolean = false, option: enums.FocusBehavior = enums.FocusBehavior.FocusAtLast) {\n let dom = domInfoHelper.get(selector);\n if (!(dom instanceof HTMLElement))\n throw new Error(\"Unable to focus on invalid element.\");\n\n dom.focus({\n preventScroll: noScroll\n });\n\n if (dom instanceof HTMLInputElement || dom instanceof HTMLTextAreaElement) {\n switch (option) {\n case enums.FocusBehavior.FocusAndSelectAll:\n dom.select();\n break;\n case enums.FocusBehavior.FocusAtFirst:\n dom.setSelectionRange(0, 0);\n break;\n case enums.FocusBehavior.FocusAtLast:\n dom.setSelectionRange(-1, -1);\n break;\n }\n }\n }\n\n\n static blur(selector) {\n let dom = domInfoHelper.get(selector);\n if (dom) {\n dom.blur();\n }\n }\n\n static scrollTo(selector: Element | string, parentElement?: HTMLElement) {\n const element = domInfoHelper.get(selector);\n if (parentElement && element && element instanceof HTMLElement) {\n parentElement.scrollTop = element.offsetTop;\n } else if (element && element instanceof HTMLElement) {\n element.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' });\n } \n } \n\n static smoothScrollTo(selector: Element | string, parentElement: HTMLElement, duration: number) {\n const element = domInfoHelper.get(selector);\n let to = element.offsetTop;\n if (scrollIds.get(parentElement)) {\n cancelAnimationFrame(scrollIds.get(parentElement)!);\n }\n // jump to target if duration zero\n if (duration <= 0) {\n scrollIds.set(\n parentElement,\n requestAnimationFrame(() => {\n parentElement.scrollTop = to;\n }),\n );\n\n return;\n }\n const difference = to - parentElement.scrollTop;\n const perTick = (difference / duration) * 10;\n\n scrollIds.set(\n parentElement,\n requestAnimationFrame(() => {\n parentElement.scrollTop += perTick;\n if (parentElement.scrollTop !== to) {\n manipulationHelper.smoothScrollTo(selector, parentElement, duration - 10);\n }\n }),\n );\n }\n\n static slideTo(targetPageY) {\n const timer = setInterval(function () {\n const currentY = document.documentElement.scrollTop || document.body.scrollTop;\n const distance = targetPageY > currentY ? targetPageY - currentY : currentY - targetPageY;\n const speed = Math.ceil(distance / 10);\n if (currentY === targetPageY) {\n clearInterval(timer);\n } else {\n window.scrollTo(0, targetPageY > currentY ? currentY + speed : currentY - speed);\n }\n }, 10);\n }\n\n //copied from https://www.telerik.com/forums/trigger-tab-key-when-enter-key-is-pressed\n static invokeTabKey() {\n var currInput = document.activeElement;\n if (currInput.tagName.toLowerCase() == \"input\") {\n var inputs = document.getElementsByTagName(\"input\");\n var currInput = document.activeElement;\n for (var i = 0; i < inputs.length; i++) {\n if (inputs[i] == currInput) {\n var next = inputs[i + 1];\n if (next && next.focus) {\n next.focus();\n }\n break;\n }\n }\n }\n }\n\n static disableBodyScroll() {\n let body = document.body;\n const oldBodyCache = {};\n [\"position\", \"width\", \"overflow\"].forEach((key) => {\n oldBodyCache[key] = body.style[key];\n });\n state.oldBodyCacheStack.push(oldBodyCache);\n const scrollBarSize = this.getScrollBarSize();\n styleHelper.css(body,\n {\n \"position\": \"relative\",\n \"width\": this.hasScrollbar() && scrollBarSize > 0 ? `calc(100% - ${scrollBarSize}px)` : null,\n \"overflow\": \"hidden\"\n });\n styleHelper.addCls(document.body, \"ant-scrolling-effect\");\n }\n\n static enableBodyScroll(force: boolean | undefined) {\n if (force) {\n state.oldBodyCacheStack = [];\n }\n let oldBodyCache = state.oldBodyCacheStack.length > 0 ? state.oldBodyCacheStack.pop() : {};\n \n\n styleHelper.css(document.body,\n {\n \"position\": oldBodyCache[\"position\"] ?? null,\n \"width\": oldBodyCache[\"width\"] ?? null,\n \"overflow\": oldBodyCache[\"overflow\"] ?? null\n });\n styleHelper.removeCls(document.body, \"ant-scrolling-effect\");\n }\n\n static hasScrollbar = () => {\n let overflow = document.body.style.overflow;\n if (overflow && overflow === \"hidden\") return false;\n return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight);\n }\n\n\n /**\n * getScrollBarSize\n * source https://github.com/react-component/util/blob/master/src/getScrollBarSize.tsx\n * \n * @param fresh force get scrollBar size and don't use cache\n * @returns \n */\n static getScrollBarSize = (fresh: boolean = false) => {\n if (typeof document === \"undefined\") {\n return 0;\n }\n\n if (fresh || cachedScrollBarSize === undefined) {\n const inner = document.createElement(\"div\");\n inner.style.width = \"100%\";\n inner.style.height = \"200px\";\n\n const outer = document.createElement(\"div\");\n const outerStyle = outer.style;\n\n outerStyle.position = \"absolute\";\n outerStyle.top = \"0\";\n outerStyle.left = \"0\";\n outerStyle.pointerEvents = \"none\";\n outerStyle.visibility = \"hidden\";\n outerStyle.width = \"200px\";\n outerStyle.height = \"150px\";\n outerStyle.overflow = \"hidden\";\n\n outer.appendChild(inner);\n\n document.body.appendChild(outer);\n\n const widthContained = inner.offsetWidth;\n outer.style.overflow = \"scroll\";\n let widthScroll = inner.offsetWidth;\n\n if (widthContained === widthScroll) {\n widthScroll = outer.clientWidth;\n }\n\n document.body.removeChild(outer);\n cachedScrollBarSize = widthContained - widthScroll;\n }\n return cachedScrollBarSize;\n };\n}","\"use strict\";\n\nexports.__esModule = true;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZVJvb3QiOiIifQ==","export enum FocusBehavior {\n /// \n /// When focuses, cursor will move to the last character. \n /// This is default behavior.\n /// \n FocusAtLast,\n /// \n /// When focuses, cursor will move to the first character\n /// \n FocusAtFirst,\n /// \n /// When focuses, the content will be selected\n /// \n FocusAndSelectAll\n}","import { eventCallback } from './dom/types'\n\n//Singleton \nexport class State {\n private static instance: State;\n\n //Stores references to dot net objects (components wrapped in DotNetObjectReference)\n objReferenceDict: { [key: string]: any } = {};\n\n //All object references must later be disposed by JS code or by .NET code.\n disposeObj(objReferenceName) {\n delete this.objReferenceDict[objReferenceName];\n }\n\n //Stores callback for events based on a key. Needed when\n //Event needs to be removed - the callback can be retrieved and\n //used to remove the event in question\n eventCallbackRegistry: { [key: string]: eventCallback} = {};\n \n oldBodyCacheStack = [];\n\n private constructor() { }\n\n static getInstance() {\n if (!this.instance) {\n this.instance = new State(); \n }\n return this.instance;\n }\n}\n\nexport const state = State.getInstance();","import { infoHelper as domInfoHelper } from './dom/infoHelper';\n\nexport class styleHelper {\n static addCls(selector: Element | string, className: string | Array) {\n let element = domInfoHelper.get(selector);\n if (element) {\n if (typeof className === \"string\") {\n element.classList.add(className);\n } else {\n element.classList.add(...className);\n }\n }\n }\n\n static removeCls(selector: Element | string, clsName: string | Array) {\n let element = domInfoHelper.get(selector);\n if (element) {\n if (typeof clsName === \"string\") {\n element.classList.remove(clsName);\n } else {\n element.classList.remove(...clsName);\n }\n }\n }\n\n static addClsToFirstChild(element: Element | string, className: string): void {\n var domElement = domInfoHelper.get(element);\n if (domElement && domElement.firstElementChild) {\n domElement.firstElementChild.classList.add(className);\n }\n }\n\n static removeClsFromFirstChild(element: Element | string, className): void {\n var domElement = domInfoHelper.get(element);\n if (domElement && domElement.firstElementChild) {\n domElement.firstElementChild.classList.remove(className);\n }\n }\n\n static matchMedia(query: string): boolean {\n return window.matchMedia(query).matches;\n }\n\n static getStyle(element, styleProp: string) {\n if (element.currentStyle)\n return element.currentStyle[styleProp];\n else if (window.getComputedStyle)\n return document.defaultView.getComputedStyle(element, null).getPropertyValue(styleProp);\n }\n\n //Referenced in Caret, class Mirror\n static css(element: HTMLElement, name: string | object, value: string | null = null) {\n if (typeof name === 'string') {\n if (value === null) {\n let style = name;\n let cssAttributes = style.split(\";\");\n for (let i = 0; i < cssAttributes.length; i++) {\n let cssAttribute = cssAttributes[i];\n if (!cssAttribute) continue;\n let attribute = cssAttribute.split(\":\");\n element.style.setProperty(attribute[0], attribute[1]);\n }\n return;\n }\n element.style.setProperty(name, value);\n } else {\n for (let key in name) {\n if (name.hasOwnProperty(key)) {\n element.style.setProperty(key, name[key]);\n }\n }\n }\n }\n}","import * as interop from \"./core/JsInterop/interop\";\n\ndeclare global {\n interface Window {\n AntDesign: any;\n }\n}\n\nwindow.AntDesign = {\n interop,\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar tinycolor = require('@ctrl/tinycolor');\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = tinycolor.rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(tinycolor.rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = tinycolor.inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(tinycolor.inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(tinycolor.inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(tinycolor.inputToRGB(opts.backgroundColor || '#141414'), tinycolor.inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexports.blue = blue;\nexports.cyan = cyan;\nexports.geekblue = geekblue;\nexports.generate = generate;\nexports.gold = gold;\nexports.green = green;\nexports.grey = grey;\nexports.lime = lime;\nexports.magenta = magenta;\nexports.orange = orange;\nexports.presetDarkPalettes = presetDarkPalettes;\nexports.presetPalettes = presetPalettes;\nexports.presetPrimaryColors = presetPrimaryColors;\nexports.purple = purple;\nexports.red = red;\nexports.volcano = volcano;\nexports.yellow = yellow;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numberInputToObject = exports.parseIntFromHex = exports.convertHexToDecimal = exports.convertDecimalToHex = exports.rgbaToArgbHex = exports.rgbaToHex = exports.rgbToHex = exports.hsvToRgb = exports.rgbToHsv = exports.hslToRgb = exports.rgbToHsl = exports.rgbToRgb = void 0;\nvar util_1 = require(\"./util\");\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nfunction rgbToRgb(r, g, b) {\n return {\n r: (0, util_1.bound01)(r, 255) * 255,\n g: (0, util_1.bound01)(g, 255) * 255,\n b: (0, util_1.bound01)(b, 255) * 255,\n };\n}\nexports.rgbToRgb = rgbToRgb;\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nfunction rgbToHsl(r, g, b) {\n r = (0, util_1.bound01)(r, 255);\n g = (0, util_1.bound01)(g, 255);\n b = (0, util_1.bound01)(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nexports.rgbToHsl = rgbToHsl;\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nfunction hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = (0, util_1.bound01)(h, 360);\n s = (0, util_1.bound01)(s, 100);\n l = (0, util_1.bound01)(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\nexports.hslToRgb = hslToRgb;\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nfunction rgbToHsv(r, g, b) {\n r = (0, util_1.bound01)(r, 255);\n g = (0, util_1.bound01)(g, 255);\n b = (0, util_1.bound01)(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\nexports.rgbToHsv = rgbToHsv;\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nfunction hsvToRgb(h, s, v) {\n h = (0, util_1.bound01)(h, 360) * 6;\n s = (0, util_1.bound01)(s, 100);\n v = (0, util_1.bound01)(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\nexports.hsvToRgb = hsvToRgb;\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [\n (0, util_1.pad2)(Math.round(r).toString(16)),\n (0, util_1.pad2)(Math.round(g).toString(16)),\n (0, util_1.pad2)(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\nexports.rgbToHex = rgbToHex;\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n (0, util_1.pad2)(Math.round(r).toString(16)),\n (0, util_1.pad2)(Math.round(g).toString(16)),\n (0, util_1.pad2)(Math.round(b).toString(16)),\n (0, util_1.pad2)(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\nexports.rgbaToHex = rgbaToHex;\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nfunction rgbaToArgbHex(r, g, b, a) {\n var hex = [\n (0, util_1.pad2)(convertDecimalToHex(a)),\n (0, util_1.pad2)(Math.round(r).toString(16)),\n (0, util_1.pad2)(Math.round(g).toString(16)),\n (0, util_1.pad2)(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\nexports.rgbaToArgbHex = rgbaToArgbHex;\n/** Converts a decimal to a hex value */\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\nexports.convertDecimalToHex = convertDecimalToHex;\n/** Converts a hex value to a decimal */\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\nexports.convertHexToDecimal = convertHexToDecimal;\n/** Parse a base-16 hex value into a base-10 integer */\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexports.parseIntFromHex = parseIntFromHex;\nfunction numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\nexports.numberInputToObject = numberInputToObject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.names = void 0;\n// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexports.names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isValidCSSUnit = exports.stringInputToObject = exports.inputToRGB = void 0;\n/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nvar conversion_1 = require(\"./conversion\");\nvar css_color_names_1 = require(\"./css-color-names\");\nvar util_1 = require(\"./util\");\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nfunction inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = (0, conversion_1.rgbToRgb)(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = (0, util_1.convertToPercentage)(color.s);\n v = (0, util_1.convertToPercentage)(color.v);\n rgb = (0, conversion_1.hsvToRgb)(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = (0, util_1.convertToPercentage)(color.s);\n l = (0, util_1.convertToPercentage)(color.l);\n rgb = (0, conversion_1.hslToRgb)(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = (0, util_1.boundAlpha)(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\nexports.inputToRGB = inputToRGB;\n// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nfunction stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (css_color_names_1.names[color]) {\n color = css_color_names_1.names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: (0, conversion_1.parseIntFromHex)(match[1]),\n g: (0, conversion_1.parseIntFromHex)(match[2]),\n b: (0, conversion_1.parseIntFromHex)(match[3]),\n a: (0, conversion_1.convertHexToDecimal)(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: (0, conversion_1.parseIntFromHex)(match[1]),\n g: (0, conversion_1.parseIntFromHex)(match[2]),\n b: (0, conversion_1.parseIntFromHex)(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: (0, conversion_1.parseIntFromHex)(match[1] + match[1]),\n g: (0, conversion_1.parseIntFromHex)(match[2] + match[2]),\n b: (0, conversion_1.parseIntFromHex)(match[3] + match[3]),\n a: (0, conversion_1.convertHexToDecimal)(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: (0, conversion_1.parseIntFromHex)(match[1] + match[1]),\n g: (0, conversion_1.parseIntFromHex)(match[2] + match[2]),\n b: (0, conversion_1.parseIntFromHex)(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\nexports.stringInputToObject = stringInputToObject;\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nfunction isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\nexports.isValidCSSUnit = isValidCSSUnit;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.legacyRandom = exports.fromRatio = void 0;\nvar index_1 = require(\"./index\");\nvar util_1 = require(\"./util\");\n/**\n * If input is an object, force 1 into \"1.0\" to handle ratios properly\n * String input requires \"1.0\" as input, so 1 will be treated as 1\n */\nfunction fromRatio(ratio, opts) {\n var newColor = {\n r: (0, util_1.convertToPercentage)(ratio.r),\n g: (0, util_1.convertToPercentage)(ratio.g),\n b: (0, util_1.convertToPercentage)(ratio.b),\n };\n if (ratio.a !== undefined) {\n newColor.a = Number(ratio.a);\n }\n return new index_1.TinyColor(newColor, opts);\n}\nexports.fromRatio = fromRatio;\n/** old random function */\nfunction legacyRandom() {\n return new index_1.TinyColor({\n r: Math.random(),\n g: Math.random(),\n b: Math.random(),\n });\n}\nexports.legacyRandom = legacyRandom;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tinycolor = exports.TinyColor = void 0;\nvar conversion_1 = require(\"./conversion\");\nvar css_color_names_1 = require(\"./css-color-names\");\nvar format_input_1 = require(\"./format-input\");\nvar util_1 = require(\"./util\");\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = (0, conversion_1.numberInputToObject)(color);\n }\n this.originalInput = color;\n var rgb = (0, format_input_1.inputToRGB)(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = (0, util_1.boundAlpha)(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = (0, conversion_1.rgbToHsv)(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = (0, conversion_1.rgbToHsv)(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = (0, conversion_1.rgbToHsl)(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = (0, conversion_1.rgbToHsl)(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return (0, conversion_1.rgbToHex)(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return (0, conversion_1.rgbaToHex)(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round((0, util_1.bound01)(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round((0, util_1.bound01)(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + (0, conversion_1.rgbToHex)(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(css_color_names_1.names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = (0, util_1.clamp01)(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = (0, util_1.clamp01)(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = (0, util_1.clamp01)(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = (0, util_1.clamp01)(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexports.TinyColor = TinyColor;\n// kept for backwards compatability with v1\nfunction tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\nexports.tinycolor = tinycolor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar index_1 = require(\"./index\");\n__exportStar(require(\"./index\"), exports);\n__exportStar(require(\"./css-color-names\"), exports);\n__exportStar(require(\"./readability\"), exports);\n__exportStar(require(\"./to-ms-filter\"), exports);\n__exportStar(require(\"./from-ratio\"), exports);\n__exportStar(require(\"./format-input\"), exports);\n__exportStar(require(\"./random\"), exports);\n__exportStar(require(\"./interfaces\"), exports);\n__exportStar(require(\"./conversion\"), exports);\n// kept for backwards compatability with v1\nexports.default = index_1.tinycolor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bounds = exports.random = void 0;\n/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\n// randomColor by David Merfield under the CC0 license\n// https://github.com/davidmerfield/randomColor/\nvar index_1 = require(\"./index\");\nfunction random(options) {\n if (options === void 0) { options = {}; }\n // Check if we need to generate multiple colors\n if (options.count !== undefined &&\n options.count !== null) {\n var totalColors = options.count;\n var colors = [];\n options.count = undefined;\n while (totalColors > colors.length) {\n // Since we're generating multiple colors,\n // incremement the seed. Otherwise we'd just\n // generate the same color each time...\n options.count = null;\n if (options.seed) {\n options.seed += 1;\n }\n colors.push(random(options));\n }\n options.count = totalColors;\n return colors;\n }\n // First we pick a hue (H)\n var h = pickHue(options.hue, options.seed);\n // Then use H to determine saturation (S)\n var s = pickSaturation(h, options);\n // Then use S and H to determine brightness (B).\n var v = pickBrightness(h, s, options);\n var res = { h: h, s: s, v: v };\n if (options.alpha !== undefined) {\n res.a = options.alpha;\n }\n // Then we return the HSB color in the desired format\n return new index_1.TinyColor(res);\n}\nexports.random = random;\nfunction pickHue(hue, seed) {\n var hueRange = getHueRange(hue);\n var res = randomWithin(hueRange, seed);\n // Instead of storing red as two seperate ranges,\n // we group them, using negative numbers\n if (res < 0) {\n res = 360 + res;\n }\n return res;\n}\nfunction pickSaturation(hue, options) {\n if (options.hue === 'monochrome') {\n return 0;\n }\n if (options.luminosity === 'random') {\n return randomWithin([0, 100], options.seed);\n }\n var saturationRange = getColorInfo(hue).saturationRange;\n var sMin = saturationRange[0];\n var sMax = saturationRange[1];\n switch (options.luminosity) {\n case 'bright':\n sMin = 55;\n break;\n case 'dark':\n sMin = sMax - 10;\n break;\n case 'light':\n sMax = 55;\n break;\n default:\n break;\n }\n return randomWithin([sMin, sMax], options.seed);\n}\nfunction pickBrightness(H, S, options) {\n var bMin = getMinimumBrightness(H, S);\n var bMax = 100;\n switch (options.luminosity) {\n case 'dark':\n bMax = bMin + 20;\n break;\n case 'light':\n bMin = (bMax + bMin) / 2;\n break;\n case 'random':\n bMin = 0;\n bMax = 100;\n break;\n default:\n break;\n }\n return randomWithin([bMin, bMax], options.seed);\n}\nfunction getMinimumBrightness(H, S) {\n var lowerBounds = getColorInfo(H).lowerBounds;\n for (var i = 0; i < lowerBounds.length - 1; i++) {\n var s1 = lowerBounds[i][0];\n var v1 = lowerBounds[i][1];\n var s2 = lowerBounds[i + 1][0];\n var v2 = lowerBounds[i + 1][1];\n if (S >= s1 && S <= s2) {\n var m = (v2 - v1) / (s2 - s1);\n var b = v1 - m * s1;\n return m * S + b;\n }\n }\n return 0;\n}\nfunction getHueRange(colorInput) {\n var num = parseInt(colorInput, 10);\n if (!Number.isNaN(num) && num < 360 && num > 0) {\n return [num, num];\n }\n if (typeof colorInput === 'string') {\n var namedColor = exports.bounds.find(function (n) { return n.name === colorInput; });\n if (namedColor) {\n var color = defineColor(namedColor);\n if (color.hueRange) {\n return color.hueRange;\n }\n }\n var parsed = new index_1.TinyColor(colorInput);\n if (parsed.isValid) {\n var hue = parsed.toHsv().h;\n return [hue, hue];\n }\n }\n return [0, 360];\n}\nfunction getColorInfo(hue) {\n // Maps red colors to make picking hue easier\n if (hue >= 334 && hue <= 360) {\n hue -= 360;\n }\n for (var _i = 0, bounds_1 = exports.bounds; _i < bounds_1.length; _i++) {\n var bound = bounds_1[_i];\n var color = defineColor(bound);\n if (color.hueRange && hue >= color.hueRange[0] && hue <= color.hueRange[1]) {\n return color;\n }\n }\n throw Error('Color not found');\n}\nfunction randomWithin(range, seed) {\n if (seed === undefined) {\n return Math.floor(range[0] + Math.random() * (range[1] + 1 - range[0]));\n }\n // Seeded random algorithm from http://indiegamr.com/generate-repeatable-random-numbers-in-js/\n var max = range[1] || 1;\n var min = range[0] || 0;\n seed = (seed * 9301 + 49297) % 233280;\n var rnd = seed / 233280.0;\n return Math.floor(min + rnd * (max - min));\n}\nfunction defineColor(bound) {\n var sMin = bound.lowerBounds[0][0];\n var sMax = bound.lowerBounds[bound.lowerBounds.length - 1][0];\n var bMin = bound.lowerBounds[bound.lowerBounds.length - 1][1];\n var bMax = bound.lowerBounds[0][1];\n return {\n name: bound.name,\n hueRange: bound.hueRange,\n lowerBounds: bound.lowerBounds,\n saturationRange: [sMin, sMax],\n brightnessRange: [bMin, bMax],\n };\n}\n/**\n * @hidden\n */\nexports.bounds = [\n {\n name: 'monochrome',\n hueRange: null,\n lowerBounds: [\n [0, 0],\n [100, 0],\n ],\n },\n {\n name: 'red',\n hueRange: [-26, 18],\n lowerBounds: [\n [20, 100],\n [30, 92],\n [40, 89],\n [50, 85],\n [60, 78],\n [70, 70],\n [80, 60],\n [90, 55],\n [100, 50],\n ],\n },\n {\n name: 'orange',\n hueRange: [19, 46],\n lowerBounds: [\n [20, 100],\n [30, 93],\n [40, 88],\n [50, 86],\n [60, 85],\n [70, 70],\n [100, 70],\n ],\n },\n {\n name: 'yellow',\n hueRange: [47, 62],\n lowerBounds: [\n [25, 100],\n [40, 94],\n [50, 89],\n [60, 86],\n [70, 84],\n [80, 82],\n [90, 80],\n [100, 75],\n ],\n },\n {\n name: 'green',\n hueRange: [63, 178],\n lowerBounds: [\n [30, 100],\n [40, 90],\n [50, 85],\n [60, 81],\n [70, 74],\n [80, 64],\n [90, 50],\n [100, 40],\n ],\n },\n {\n name: 'blue',\n hueRange: [179, 257],\n lowerBounds: [\n [20, 100],\n [30, 86],\n [40, 80],\n [50, 74],\n [60, 60],\n [70, 52],\n [80, 44],\n [90, 39],\n [100, 35],\n ],\n },\n {\n name: 'purple',\n hueRange: [258, 282],\n lowerBounds: [\n [20, 100],\n [30, 87],\n [40, 79],\n [50, 70],\n [60, 65],\n [70, 59],\n [80, 52],\n [90, 45],\n [100, 42],\n ],\n },\n {\n name: 'pink',\n hueRange: [283, 334],\n lowerBounds: [\n [20, 100],\n [30, 90],\n [40, 86],\n [60, 84],\n [80, 80],\n [90, 75],\n [100, 73],\n ],\n },\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mostReadable = exports.isReadable = exports.readability = void 0;\nvar index_1 = require(\"./index\");\n// Readability Functions\n// ---------------------\n// false\n * new TinyColor().isReadable('#000', '#111', { level: 'AA', size: 'large' }) => false\n * ```\n */\nfunction isReadable(color1, color2, wcag2) {\n var _a, _b;\n if (wcag2 === void 0) { wcag2 = { level: 'AA', size: 'small' }; }\n var readabilityLevel = readability(color1, color2);\n switch (((_a = wcag2.level) !== null && _a !== void 0 ? _a : 'AA') + ((_b = wcag2.size) !== null && _b !== void 0 ? _b : 'small')) {\n case 'AAsmall':\n case 'AAAlarge':\n return readabilityLevel >= 4.5;\n case 'AAlarge':\n return readabilityLevel >= 3;\n case 'AAAsmall':\n return readabilityLevel >= 7;\n default:\n return false;\n }\n}\nexports.isReadable = isReadable;\n/**\n * Given a base color and a list of possible foreground or background\n * colors for that base, returns the most readable color.\n * Optionally returns Black or White if the most readable color is unreadable.\n *\n * @param baseColor - the base color.\n * @param colorList - array of colors to pick the most readable one from.\n * @param args - and object with extra arguments\n *\n * Example\n * ```ts\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'], { includeFallbackColors: false }).toHexString(); // \"#112255\"\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'],{ includeFallbackColors: true }).toHexString(); // \"#ffffff\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'large' }).toHexString(); // \"#faf3f3\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'small' }).toHexString(); // \"#ffffff\"\n * ```\n */\nfunction mostReadable(baseColor, colorList, args) {\n if (args === void 0) { args = { includeFallbackColors: false, level: 'AA', size: 'small' }; }\n var bestColor = null;\n var bestScore = 0;\n var includeFallbackColors = args.includeFallbackColors, level = args.level, size = args.size;\n for (var _i = 0, colorList_1 = colorList; _i < colorList_1.length; _i++) {\n var color = colorList_1[_i];\n var score = readability(baseColor, color);\n if (score > bestScore) {\n bestScore = score;\n bestColor = new index_1.TinyColor(color);\n }\n }\n if (isReadable(baseColor, bestColor, { level: level, size: size }) || !includeFallbackColors) {\n return bestColor;\n }\n args.includeFallbackColors = false;\n return mostReadable(baseColor, ['#fff', '#000'], args);\n}\nexports.mostReadable = mostReadable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toMsFilter = void 0;\nvar conversion_1 = require(\"./conversion\");\nvar index_1 = require(\"./index\");\n/**\n * Returns the color represented as a Microsoft filter for use in old versions of IE.\n */\nfunction toMsFilter(firstColor, secondColor) {\n var color = new index_1.TinyColor(firstColor);\n var hex8String = '#' + (0, conversion_1.rgbaToArgbHex)(color.r, color.g, color.b, color.a);\n var secondHex8String = hex8String;\n var gradientType = color.gradientType ? 'GradientType = 1, ' : '';\n if (secondColor) {\n var s = new index_1.TinyColor(secondColor);\n secondHex8String = '#' + (0, conversion_1.rgbaToArgbHex)(s.r, s.g, s.b, s.a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\".concat(gradientType, \"startColorstr=\").concat(hex8String, \",endColorstr=\").concat(secondHex8String, \")\");\n}\nexports.toMsFilter = toMsFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pad2 = exports.convertToPercentage = exports.boundAlpha = exports.isPercentage = exports.isOnePointZero = exports.clamp01 = exports.bound01 = void 0;\n/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nfunction bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\nexports.bound01 = bound01;\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nfunction clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\nexports.clamp01 = clamp01;\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\nfunction isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\nexports.isOnePointZero = isOnePointZero;\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nfunction isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\nexports.isPercentage = isPercentage;\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\nexports.boundAlpha = boundAlpha;\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nfunction convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\nexports.convertToPercentage = convertToPercentage;\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nfunction pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\nexports.pad2 = pad2;\n"]}