{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/chart.js/dist/chunks/helpers.segment.js","webpack:///./node_modules/chart.js/dist/chart.esm.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/get-size/get-size.js","webpack:///./node_modules/sweetalert2/dist/sweetalert2.all.js","webpack:///./node_modules/outlayer/outlayer.js","webpack:///./node_modules/isotope-layout/js/layout-mode.js","webpack:///./node_modules/aos/dist/aos.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/ev-emitter/ev-emitter.js","webpack:///./node_modules/fizzy-ui-utils/utils.js","webpack:///./node_modules/desandro-matches-selector/matches-selector.js","webpack:///./node_modules/glightbox/dist/js/glightbox.min.js","webpack:///./node_modules/isotope-layout/js/isotope.js","webpack:///./app/javascript/packs/_normal.js","webpack:///./app/javascript/packs/sb-admin-2.js","webpack:///./node_modules/outlayer/item.js","webpack:///./node_modules/isotope-layout/js/item.js","webpack:///./node_modules/isotope-layout/js/layout-modes/masonry.js","webpack:///./node_modules/masonry-layout/masonry.js","webpack:///./node_modules/isotope-layout/js/layout-modes/fit-rows.js","webpack:///./node_modules/isotope-layout/js/layout-modes/vertical.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/shared/dom.js","webpack:///./node_modules/swiper/shared/get-support.js","webpack:///./node_modules/swiper/shared/get-device.js","webpack:///./node_modules/swiper/shared/get-browser.js","webpack:///./node_modules/swiper/shared/utils.js","webpack:///./node_modules/swiper/core/events-emitter.js","webpack:///./node_modules/swiper/core/update/updateSlides.js","webpack:///./node_modules/swiper/core/translate/translateTo.js","webpack:///./node_modules/swiper/core/transition/transitionEmit.js","webpack:///./node_modules/swiper/core/slide/slideTo.js","webpack:///./node_modules/swiper/core/events/onTouchStart.js","webpack:///./node_modules/swiper/core/events/onTouchMove.js","webpack:///./node_modules/swiper/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/core/events/onResize.js","webpack:///./node_modules/swiper/core/events/onClick.js","webpack:///./node_modules/swiper/core/events/onScroll.js","webpack:///./node_modules/swiper/core/events/index.js","webpack:///./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/core/classes/addClasses.js","webpack:///./node_modules/swiper/core/check-overflow/index.js","webpack:///./node_modules/swiper/core/defaults.js","webpack:///./node_modules/swiper/core/moduleExtendParams.js","webpack:///./node_modules/swiper/core/core.js","webpack:///./node_modules/swiper/core/update/index.js","webpack:///./node_modules/swiper/core/update/updateSize.js","webpack:///./node_modules/swiper/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/core/update/updateProgress.js","webpack:///./node_modules/swiper/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/core/translate/index.js","webpack:///./node_modules/swiper/core/translate/getTranslate.js","webpack:///./node_modules/swiper/core/translate/setTranslate.js","webpack:///./node_modules/swiper/core/translate/minTranslate.js","webpack:///./node_modules/swiper/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/core/transition/index.js","webpack:///./node_modules/swiper/core/transition/setTransition.js","webpack:///./node_modules/swiper/core/transition/transitionStart.js","webpack:///./node_modules/swiper/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/core/slide/index.js","webpack:///./node_modules/swiper/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/core/slide/slideNext.js","webpack:///./node_modules/swiper/core/slide/slidePrev.js","webpack:///./node_modules/swiper/core/slide/slideReset.js","webpack:///./node_modules/swiper/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/core/loop/index.js","webpack:///./node_modules/swiper/core/loop/loopCreate.js","webpack:///./node_modules/swiper/core/loop/loopFix.js","webpack:///./node_modules/swiper/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/core/grab-cursor/index.js","webpack:///./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/core/breakpoints/index.js","webpack:///./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/core/classes/index.js","webpack:///./node_modules/swiper/core/classes/removeClasses.js","webpack:///./node_modules/swiper/core/images/index.js","webpack:///./node_modules/swiper/core/images/loadImage.js","webpack:///./node_modules/swiper/core/images/preloadImages.js","webpack:///./node_modules/swiper/core/modules/resize/resize.js","webpack:///./node_modules/swiper/core/modules/observer/observer.js","webpack:///./app/javascript/packs/ninestars/_home.js","webpack:///./app/javascript/images/ninestars/about-img.svg","webpack:///./app/javascript/images/ninestars/apple-touch-icon.png","webpack:///./app/javascript/images/ninestars/clients/client-1.png","webpack:///./app/javascript/images/ninestars/clients/client-2.png","webpack:///./app/javascript/images/ninestars/clients/client-3.png","webpack:///./app/javascript/images/ninestars/clients/client-4.png","webpack:///./app/javascript/images/ninestars/clients/client-5.png","webpack:///./app/javascript/images/ninestars/clients/client-6.png","webpack:///./app/javascript/images/ninestars/clients/client-7.png","webpack:///./app/javascript/images/ninestars/clients/client-8.png","webpack:///./app/javascript/images/ninestars/favicon.png","webpack:///./app/javascript/images/ninestars/hero-img.svg","webpack:///./app/javascript/images/ninestars/portfolio/portfolio-1.jpg","webpack:///./app/javascript/images/ninestars/portfolio/portfolio-2.jpg","webpack:///./app/javascript/images/ninestars/portfolio/portfolio-3.jpg","webpack:///./app/javascript/images/ninestars/portfolio/portfolio-4.jpg","webpack:///./app/javascript/images/ninestars/portfolio/portfolio-5.jpg","webpack:///./app/javascript/images/ninestars/portfolio/portfolio-6.jpg","webpack:///./app/javascript/images/ninestars/portfolio/portfolio-7.jpg","webpack:///./app/javascript/images/ninestars/portfolio/portfolio-8.jpg","webpack:///./app/javascript/images/ninestars/portfolio/portfolio-9.jpg","webpack:///./app/javascript/images/ninestars/portfolio/portfolio-details-1.jpg","webpack:///./app/javascript/images/ninestars/portfolio/portfolio-details-2.jpg","webpack:///./app/javascript/images/ninestars/portfolio/portfolio-details-3.jpg","webpack:///./app/javascript/images/ninestars/team/team-1.jpeg","webpack:///./app/javascript/images/ninestars/team/team-2.jpg","webpack:///./app/javascript/images/ninestars/team/team-3.jpg","webpack:///./app/javascript/images/ninestars/team/team-4.jpg","webpack:///./node_modules/sortablejs/modular/sortable.esm.js","webpack:///./app/javascript/packs/application.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/images sync ^\\.\\/.*$","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/createPopper.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack:///./node_modules/@popperjs/core/lib/popper.js","webpack:///./node_modules/@popperjs/core/lib/popper-lite.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","iterator","from","_iterableToArray","_unsupportedIterableToArray","TypeError","_nonIterableSpread","_defineProperty","obj","configurable","writable","_typeof","constructor","_classCallCheck","instance","Constructor","_defineProperties","target","props","length","descriptor","_createClass","protoProps","staticProps","_createForOfIteratorHelper","allowArrayLike","it","F","done","e","_e","f","err","normalCompletion","didErr","step","next","_e2","return","minLen","toString","slice","test","len","arr2","requestAnimFrame","window","callback","requestAnimationFrame","throttled","fn","thisArg","updateFn","updateArgs","args","ticking","_len","arguments","rest","_key","apply","_toLeftRightCenter","align","_alignStartEnd","start","end","noop","id","uid","isNullOrUndef","type","substr","isObject","isNumberFinite","Number","isFinite","finiteOrDefault","defaultValue","valueOrDefault","toDimension","dimension","endsWith","parseFloat","each","loopable","reverse","keys","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","index","clone$1","source","map","klen","k","isValidKey","indexOf","_merger","options","tval","sval","merge","sources","merger","mergeIf","_mergerIf","indexOfDotOrLength","idx","resolveObjectKey","pos","_capitalize","str","charAt","toUpperCase","defined","isFunction","PI","Math","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","niceNum","range","roundedRange","round","almostEquals","niceRange","pow","floor","fraction","isNumber","isNaN","x","y","epsilon","abs","_setMinAndMaxByKey","array","min","max","toRadians","degrees","toDegrees","radians","_decimalPlaces","distanceBetweenPoints","pt1","pt2","sqrt","_angleDiff","a","b","_normalizeAngle","_angleBetween","angle","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","atEdge","elasticIn","sin","elasticOut","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","A","B","C","D","E","hex","h1","h2","eq","_hexString","v","g","isShort","lim","h","p2b","n2b","b2n","n2p","RGB_RE","HUE_RE","hsl2rgbn","undefined","hsv2rgbn","hwb2rgbn","w","rgb","rgb2hsl","calln","hsl2rgb","hue","hueParse","exec","p1","p2","hwb2rgb","hsv2rgb","names$1","map$1","Z","Y","X","W","V","U","T","S","R","Q","P","O","N","M","L","K","G","H","I","J","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","Xe","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Yd","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","Qe","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","nameParse","j","ok","nk","unpacked","tkeys","replace","parseInt","unpack","transparent","toLowerCase","modHSL","ratio","tmp","clone","proto","assign","fromObject","input","functionParse","rgbParse","Color","this","ret","_rgb","_valid","set","concat","_hslString","color","weight","me","w2","c1","c2","w1","val","deg","_rotate","index_esm","isPatternOrGradient","CanvasGradient","CanvasPattern","getHoverColor","saturate","darken","hexString","overrides","getScope$1","node","split","_set","root","scope","values","defaults","Defaults","_descriptors","animation","backgroundColor","borderColor","datasets","devicePixelRatio","context","chart","platform","getDevicePixelRatio","elements","events","font","family","size","style","lineHeight","hover","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","interaction","intersect","maintainAspectRatio","onHover","onClick","parsing","plugins","responsive","scale","scales","showLine","describe","targetScope","targetName","_Object$definePropert","scopeObject","targetScopeObject","privateName","defineProperties","local","_scriptable","startsWith","_indexable","_fallback","_measureText","data","gc","longest","string","textWidth","measureText","width","push","_longestText","arrayOfThings","cache","garbageCollect","save","jlen","thing","nestedThing","restore","gcLen","splice","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","height","drawPoint","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","rotate","drawImage","beginPath","arc","closePath","moveTo","lineTo","SQRT1_2","rect","fill","borderWidth","stroke","_isPointInArea","point","area","margin","left","right","top","bottom","clipArea","clip","unclipArea","_steppedLineTo","previous","flip","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","text","line","opts","lines","strokeWidth","strokeColor","setRenderOpts","strokeStyle","lineWidth","strokeText","maxWidth","fillText","decorateText","translation","fillStyle","textAlign","textBaseline","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","RegExp","FONT_STYLE","toLineHeight","matches","match","_readValueToProps","_step2","objProps","read","prop","_iterator2","toTRBL","toTRBLCorners","toPadding","toFont","fallback","console","warn","toFontString","resolve","inputs","info","cacheable","_lookup","table","cmp","mid","hi","lo","_lookupByKey","_rlookupByKey","arrayEvents","unlistenArrayEvents","listener","stub","_chartjs","listeners","forEach","_arrayUnique","items","Set","add","_createResolver","scopes","_cache","prefixes","rootScopes","getTarget","_resolve","Proxy","deleteProperty","_keys","_cached","_resolveWithPrefixes","getOwnPropertyDescriptor","Reflect","_scopes","getPrototypeOf","has","getKeysFromAllScopes","includes","ownKeys","_storage","_attachContext","proxy","subProxy","descriptorDefaults","_cacheable","_proxy","_context","_subProxy","_stack","setContext","override","receiver","descriptors","isScriptable","Error","join","delete","createSubResolver","_resolveScriptable","isIndexable","filter","_step3","_iterator3","resolver","_resolveArray","needsSubResolver","_resolveWithContext","allKeys","scriptable","indexable","_proxy$_scriptable","_proxy$_indexable","_proxy$_allKeys","_allKeys","readKey","prefix","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","_step4","_iterator4","_rootScopes","allScopes","addScopesFromKey","_getTarget","subGetTarget","_step5","_iterator5","_step6","_iterator6","_step7","_iterator7","_step8","_iterator8","resolveKeysFromAllScopes","EPSILON","getPoint","points","skip","getValueAxis","monotoneAdjust","deltaK","mK","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointsLen","pointAfter","monotoneCompute","delta","pointBefore","valueAxis","iPixel","vPixel","capControlPoint","pt","_updateBezierControlPoints","loop","controlPoints","firstPoint","middlePoint","afterPoint","current","d01","d12","s01","s12","fa","fb","spanGaps","cubicInterpolationMode","slopeDelta","splineCurveMonotone","prev","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_getParentNode","domNode","parentNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","element","positions","getPositionedStyle","styles","suffix","result","getRelativePosition","evt","borderBox","boxSizing","paddings","borders","_getCanvasPosition","native","touches","offsetX","offsetY","box","shadowRoot","useOffsetPos","getBoundingClientRect","clientX","clientY","getCanvasPosition","round1","bbWidth","bbHeight","aspectRatio","margins","maxHeight","containerSize","container","containerStyle","containerBorder","containerPadding","clientWidth","clientHeight","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","addEventListener","removeEventListener","readUsedSize","el","getPropertyValue","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","Map","formatNumber","num","locale","cacheKey","JSON","stringify","formatter","Intl","NumberFormat","getNumberFormat","format","getRtlAdapter","rtl","rectX","_x","setWidth","xPlus","leftForLtr","itemWidth","getRightToLeftAdapter","_x2","_itemWidth","overrideTextDirection","direction","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","_ref","count","_boundSegment","segment","bounds","prevValue","startBound","endBound","_propertyFn2","_getSegment","_propertyFn","getSegment","inside","subStart","shouldStart","shouldStop","_boundSegments","segments","sub","splitByStyles","segmentOptions","_step9","_iterator9","prevStyle","styleChanged","readStyle","p0","doSplitByStyles","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","getOwnPropertyDescriptors","_get","base","_getPrototypeOf","_superPropBase","desc","_inherits","subClass","superClass","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Boolean","valueOf","_isNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","_slicedToArray","_arrayWithHoles","_i","_s","_arr","_n","_d","_iterableToArrayLimit","_nonIterableRest","_e3","animator","Animator","_request","_charts","_running","_lastDate","anims","date","callbacks","numSteps","duration","initial","currentStep","_update","_refresh","Date","now","remaining","running","item","draw","_active","_total","tick","pop","_notify","charts","complete","progress","event","cb","_getAnims","_this$_getAnims$items","reduce","acc","cur","_duration","cancel","interpolators","boolean","to","factor","c0","valid","mix","number","Animation","cfg","currentValue","_fn","_easing","easing","_start","delay","_loop","_target","_prop","_from","_to","_promises","elapsed","remain","promises","Promise","res","rej","resolved","method","colors","properties","numbers","active","resize","show","animations","visible","hide","Animations","config","_chart","_properties","configure","animatedProps","getOwnPropertyNames","_step","_iterator","option","newOptions","$shared","$animations","resolveTargetOptions","_createAnimations","anim","wait","all","awaitAll","then","update","_animateOptions","scaleClip","allowedOverflow","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","_applyStack","stack","dsIndex","otherValue","singleMode","isStacked","meta","stacked","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","controller","parsed","_cachedMeta","_stacks","iScale","iAxis","axis","vAxis","indexScale","valueScale","getStackKey","_top","_bottom","getFirstScaleId","shift","clearStacks","_parsed","isDirectUpdateMode","cloneIfNotShared","cached","shared","DatasetController","_ctx","_cachedDataOpts","getMeta","_type","_parsing","_data","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","$context","_syncList","initialize","linkScales","_stacked","addElements","dataset","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rid","rAxisID","iid","iAxisID","vid","vAxisID","xScale","getScaleForId","yScale","rScale","getDatasetMeta","scaleID","adata","convertObjectDataToArray","isExtensible","_len2","_key2","_dataCheck","datasetElementType","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","_sorted","parseArrayData","parseObjectData","parsePrimitiveData","labels","getLabels","singleScale","_parsed$i","parse","_this$_parsing","_this$_parsing$xAxisK","xAxisKey","_this$_parsing$yAxisK","yAxisKey","parsedValue","NaN","canStack","otherScale","_getOtherScale","NEGATIVE_INFINITY","_getUserBounds","_scale$getUserBounds","getUserBounds","minDefined","maxDefined","otherMin","otherMax","_skip","updateRangeFromParsed","getParsed","label","getLabelForValue","_clip","defaultClip","getMaxOverflow","disabled","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","dataIndex","raw","createDataContext","createDatasetContext","_resolveElementOptions","dataElementType","elementType","sharing","datasetElementScopeKeys","names","resolveNamedOptions","freeze","transition","datasetAnimationScopeKeys","sharedOptions","_animationsDisabled","_resolveAnimations","getSharedOptions","_setStyle","_ref2","arg1","arg2","numMeta","numData","_insertElements","_removeElements","move","updateElements","removed","computeMinSampleSize","curr","$bar","metas","getAllParsedValues","sort","getAllScaleValues","_length","updateMinAndPrev","getPixelForValue","ticks","getPixelForTick","parseValue","entry","startValue","endValue","barStart","barEnd","_custom","parseFloatBar","parseArrayOrPrimitive","isFloatBar","custom","_DatasetController","BarController","_super","_this$_parsing2","_this$_parsing2$xAxis","_this$_parsing2$yAxis","iAxisKey","vAxisKey","bars","reset","getBasePixel","horizontal","isHorizontal","ruler","_getRuler","firstOpts","includeOptions","updateSharedOptions","vpixels","head","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","enableBorderRadius","center","updateElement","last","grouped","_getStacks","pixels","barThickness","_startPixel","_endPixel","stackCount","_getStackCount","categoryPercentage","barPercentage","_me$_cachedMeta","_me$options","baseValue","minBarLength","floating","applyStack","getDataVisibility","actualBase","halfGrid","getLineWidthForValue","skipNull","maxBarThickness","Infinity","percent","chunk","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","_getStackIndex","rects","_index_","offset","grid","_value_","beginAtZero","_DatasetController2","BubbleController","_super2","_this$_parsing3","_this$_parsing3$xAxis","_this$_parsing3$yAxis","_this$_cachedMeta","_me$_cachedMeta2","getPixelForDecimal","tooltip","title","_DatasetController3","DoughnutController","_super3","_this","innerRadius","outerRadius","circumference","isDatasetVisible","_getRotation","_getCircumference","arcs","spacing","getMaxBorderWidth","getMaxOffset","maxSize","cutout","chartWeight","_getRingWeight","_me$_getRotationExten","_getRotationExtents","_getRatioAndOffset","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","getRatioAndOffset","maxRadius","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animateRotate","calculateCircumference","animationOpts","centerX","centerY","animateScale","_circumference","metaData","borderAlign","hoverBorderWidth","hoverOffset","ringWeightOffset","legend","generateLabels","hidden","legendItem","toggleDataVisibility","tooltipItem","dataLabel","formattedValue","_DatasetController4","LineController","_super4","_meta$data","_dataset","animationsDisabled","_getStartAndCountOfVi","pointCount","_iScale$getUserBounds","getStartAndCountOfVisiblePoints","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","scaleRangesChanged","_decimated","animated","_me$_cachedMeta3","maxGapLength","directUpdate","prevParsed","nullData","stop","border","lastPoint","updateControlPoints","_DatasetController5","PolarAreaController","_super5","_this2","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","_this3","angleLines","display","circular","pointLabels","PieController","_DoughnutController","_super6","RadarController","_DatasetController6","_super7","_fullLoop","pointPosition","getPointPositionForValue","ScatterController","_LineController","_super8","DateAdapter","timestamp","_format","amount","unit","weekday","members","adapters","_date","binarySearch","metaset","lookupMethod","_reversePixels","getRange","optimizedEvaluateItems","position","handler","getSortedVisibleDatasetMetas","_metasets$i2","_binarySearch","getIntersectItems","useFinalPosition","_minPadding","inRange","getNearestItems","distanceMetric","useX","useY","deltaX","deltaY","getDistanceMetricForAxis","minDistance","getCenterPoint","distance","getAxisItems","rangeMethod","intersectsItem","_metasets$i","evaluateAllVisibleItems","Interaction","modes","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","params","layout","getPadding","newWidth","outerWidth","newHeight","outerHeight","widthChanged","heightChanged","same","other","getMargins","marginForPositions","fitBoxes","boxes","refit","refitBoxes","_updateDims","fullSize","placeBoxes","userPadding","padding","layouts","_layers","z","layoutItem","minPadding","availableWidth","availableHeight","layoutBoxes","wrapBoxes","wrap","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","vBoxMaxWidth","hBoxMaxHeight","setLayoutDims","updatePos","change","handleMaxPadding","BasePlatform","BasicPlatform","_BasePlatform","_super9","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","eventListenerOptions","passive","removeListener","createAttachObserver","observer","MutationObserver","entries","addedNodes","added","observe","document","childList","subtree","createDetachObserver","removedNodes","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","createResizeObserver","ResizeObserver","contentRect","listenDevicePixelRatioChanges","releaseObserver","disconnect","unlistenDevicePixelRatioChanges","createProxyAndListen","_getRelativePosition$","fromNativeEvent","addListener","_BasePlatform2","DomPlatform","_super10","renderHeight","getAttribute","renderWidth","displayWidth","displayHeight","initCanvas","removeAttribute","setAttribute","proxies","$proxies","attach","detach","Element","_this$getProps","getProps","final","defaultRoutes","formatters","numeric","tickValue","notation","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","logarithmic","Ticks","autoSkip","tickOpts","ticksLimit","maxTicksLimit","tickLength","_tickSize","maxScale","maxChart","_maxLength","determineMaxTicks","majorIndices","major","enabled","getMajorIndices","numMajorIndices","first","newTicks","ceil","skipMajors","evenMajorSpacing","diff","getEvenSpacing","factors","_factorize","calculateSpacing","avgMajorSpacing","majorStart","majorEnd","grace","drawBorder","drawOnChartArea","drawTicks","tickWidth","tickColor","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkipPadding","labelOffset","minor","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","route","offsetFromEdge","edge","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","getTickMarkLength","getTitleHeight","titleAlign","reverseAlign","_Element","Scale","_super11","_this4","_margins","paddingTop","paddingBottom","paddingLeft","paddingRight","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","_me$getUserBounds","getMinMax","xLabels","yLabels","beforeUpdate","minmax","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","beforeFit","fit","afterFit","afterUpdate","startPixel","endPixel","reversePixels","_alignToPixels","alignToPixels","notifyPlugins","_callHooks","beforeTickToLabelConversion","afterTickToLabelConversion","maxLabelDiagonal","numTicks","_isVisible","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","asin","_me$options2","titleOpts","gridOpts","titleHeight","_me$_getLabelSizes","tickPadding","angleRadians","labelHeight","labelWidth","_calculatePadding","_handleMargins","_me$options3","_me$options3$ticks","isRotated","labelsBelowTicks","offsetLeft","offsetRight","_this$options","generateTickLabels","_computeLabelSizes","tickFont","fontString","nestedLabel","caches","widths","heights","widestLabelSize","highestLabelSize","_resolveTickFontOptions","valueAt","decimal","getBaseValue","createTickContext","optionTicks","rot","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","ticksLength","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","positionAxisID","_positionAxisID","_value","limit","optsAtIndex","lineColor","tickBorderDash","tickBorderDashOffset","lineCount","textOffset","tickAndPadding","hTickAndPadding","_getXAxisLabelAlignment","_getYAxisLabelAlignment","_ret","_positionAxisID2","_value2","halfCount","backdrop","labelPadding","_me$options4","_me$options5","_me$options5$ticks","fillRect","findIndex","_computeGridLineItems","drawLine","setLineDash","lineDashOffset","lastLineWidth","_computeLabelArea","_computeLabelItems","_this$options2","_titleArgs","titleX","titleY","titleArgs","drawBackground","drawGrid","drawTitle","drawLabels","tz","gz","axisID","fontSize","TypedRegistry","isPrototypeOf","parentScope","isIChartComponent","register","itemDefaults","routes","propertyParts","sourceName","sourceScope","parts","routeDefaults","registerDefaults","Registry","controllers","_typedRegistries","_each","_len3","_key3","_len4","_key4","_len5","_key5","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len10","_key10","typedRegistry","arg","reg","_getRegistryForType","isForType","_exec","itemReg","registry","component","camelMethod","PluginService","_init","hook","_createDescriptors","plugin","cancelable","_oldCache","_notifyStateChanges","getPlugin","_i2","allPlugins","getOpts","pluginOpts","createDescriptors","previousDescriptors","some","pluginScopeKeys","getIndexAxis","datasetDefaults","determineAxis","scaleOptions","initOptions","chartDefaults","configScales","chartIndexAxis","firstIDs","scaleConf","defaultId","getDefaultScaleIDFromAxis","defaultScaleOptions","defaultID","getAxisFromDefaultScaleID","mergeScaleConfig","initData","keyCache","keysCached","cachedKeys","generate","Config","_config","initConfig","_scopeCache","_resolverCache","clearCache","clear","datasetType","additionalOptionScopes","mainScope","resetCache","keyLists","_cachedScopes","_getResolver","getResolver","subPrefixes","needContext","subResolver","_getResolver2","resolverCache","_descriptors2","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","animationOptions","onComplete","onAnimationProgress","onProgress","isDomSupported","getCanvas","getElementById","instances","getChart","Chart","_this5","initialCanvas","existingChart","chartOptionScopes","_initializePlatform","timeout","acquireContext","_options","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","resizeDelay","clearTimeout","setTimeout","listen","_initialize","error","_this$options3","bindEvents","OffscreenCanvas","_resizeBeforeDraw","_resize","newSize","getMaximumSize","newRatio","onResize","render","axisOptions","scaleOpts","updated","isRadial","dposition","dtype","scaleType","getScale","init","hasUpdated","_destroyDatasetMeta","newControllers","_removeUnreferencedMetasets","order","updateIndex","ControllerClass","getController","_defaults$datasets$ty","getElement","_updateMetasets","_resetElements","animsDisabled","ensureScalesHaveIDs","buildOrUpdateScales","setsEqual","unbindEvents","invalidate","buildOrUpdateControllers","buildOrUpdateElements","_updateLayout","_updateDatasets","_eventHandler","noArea","_me$_layers","_idx","_updateDataset","_me$_resizeBeforeDraw","layers","_drawDatasets","_drawDataset","useClip","setDatasetVisibility","_updateDatasetVisibility","_destroy","remove","releaseContext","_this$canvas","toDataURL","bindUserEvents","bindResponsiveEvents","_add","detached","_remove","isAttached","activeElements","lastActive","_ref4","_updateHoverStyles","notify","replay","hoverOptions","deactivated","activated","updateHoverStyle","_this6","eventFilter","_handleEvent","_me$_active","lastEvent","getElementsAtEventForMode","clipArc","pixelMargin","angleMargin","parseBorderRadius$1","angleDelta","borderRadius","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","innerR","spacingOffset","alpha","avNogSpacingRadius","angleOffset","_parseBorderRadius$","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","_pCenter","_pCenter2","p8","_pCenter3","inner","lineJoin","fullCircles","drawFullCircleBorders","version","unregister","_Element2","ArcElement","_super12","_this7","chartX","chartY","_getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","atan2","getAngleFromPoint","_this$getProps2","rAdjust","_this$getProps3","_this$options4","halfAngle","halfRadius","radiusOffset","drawArc","setStyle","lineCap","pathVars","_params$start","paramsStart","_params$end","paramsEnd","segmentStart","segmentEnd","outside","_pathVars","lineMethod","stepped","getLineMethod","_ref5","_ref5$move","fastPathSegment","prevX","lastY","_pathVars2","_ref6","_ref6$move","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","usePath2D","Path2D","path","_path","strokePathWithCache","segmentMethod","strokePathDirect","_Element3","LineElement","_super13","_this8","_points","_segments","_pointsUpdated","_findStartAndEnd","findStartAndEnd","solidSegments","_computeSegments","_interpolate","_getInterpolationMethod","_segments$i","interpolated","inRange$1","hitRadius","_Element4","PointElement","_super14","_this9","mouseX","mouseY","_this$getProps4","_this$getProps5","hoverRadius","getBarBounds","bar","half","_bar$getProps","parseBorderSkipped","borderSkipped","parseEdge","orig","v2","startEnd","skipOrLimit","boundingRects","maxW","maxH","parseBorderWidth","maxR","enableBorder","parseBorderRadius","outer","_inRange","skipX","skipY","addNormalRectPath","_Element5","BarElement","_super15","_this10","_boundingRects","addRectPath","_this$getProps6","cleanDecimatedDataset","cleanDecimatedData","plugin_decimation","algorithm","beforeElementsUpdate","xAxis","_getStartAndCountOfVi2","_iScale$getUserBounds2","getStartAndCountOfVisiblePointsSimplified","decimated","samples","maxAreaPoint","maxArea","nextA","bucketWidth","sampledIndex","endIndex","avgY","avgRangeStart","avgRangeEnd","avgRangeLength","rangeOffs","rangeTo","_data$a","pointAx","pointAy","lttbDecimation","minIndex","maxIndex","startIndex","xMin","dx","lastIndex","intermediateIndex1","intermediateIndex2","minMaxDecimation","destroy","decodeFill","fillOption","parseFillOption","simpleArc","computeBoundary","computeCircularBoundary","_source$scale","computeLinearBoundary","findSegmentEnd","buildStackLine","sourcePoints","linesBelow","below","isLineAndNotInHideAnimation","unshift","getLinesBelow","createBoundaryLine","addPointsBelow","sourcePoint","postponed","_findPoint","findPoint","interpolate","pointValue","linePoints","firstValue","lastValue","boundary","_ref7","_ref7$x","_ref7$y","_ref8","pointsFromSegments","resolveTarget","propagate","visited","clipY","getBounds","_getEdge","clipBounds","_scale$chart$chartAre","_ref9","interpolatedLineTo","interpolatedPoint","_fill","_step13","_step10","tpoints","_iterator10","_step11","_iterator11","_step12","tgt","subBounds","_iterator12","fillSource","_iterator13","_ref11","src","_src$style","_src$style$background","lineLoop","pathSegment","targetLoop","drawfill","getLineByIndex","lineOpts","_ref12","_ref12$above","above","_ref12$below","doFill","plugin_filler","afterDatasetsUpdate","_args","$filler","beforeDraw","drawTime","beforeDatasetsDraw","beforeDatasetDraw","getBoxSize","labelOpts","_labelOpts$boxHeight","boxHeight","_labelOpts$boxWidth","boxWidth","usePointStyle","itemHeight","_Element6","Legend","_super16","_this11","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","labelFont","_computeTitleHeight","_getBoxSize","_fitRows","_fitCols","hitboxes","totalHeight","row","heightLimit","totalWidth","currentColWidth","currentColHeight","col","_me$options6","_step14","_iterator14","hitbox","boxMap","newBoxes","_step15","_iterator15","_hitbox","_draw","cursor","defaultColor","rtlHelper","fontColor","halfFontSize","_getBoxSize2","textDirection","lineDash","drawOptions","SQRT2","yBoxTop","xBoxLeft","drawLegendBox","_textX","titleFont","titlePadding","topPaddingPlusHalfFontSize","hitBox","lh","onLeave","isListened","hoveredItem","_getLegendItemAt","sameItem","plugin_legend","_element","adjustHitBoxes","afterEvent","handleEvent","ci","_chart$legend$options","_Element7","Title","_super17","_this12","_padding","textSize","fontOpts","_me$_drawArgs","_drawArgs","plugin_title","titleBlock","createTitle","positioners","WeakMap","average","hasValue","tooltipPosition","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","String","getTooltipSize","body","footer","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","before","after","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineXAlign","yAlign","chartWidth","_chart$chartArea","xAlign","caret","caretSize","caretPadding","doesNotFitWithAlign","determineAlignment","determineYAlign","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","_Element8","Tooltip","_super18","_this13","opacity","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","tooltipItems","beforeTitle","afterTitle","bodyItems","scoped","beforeLabel","afterLabel","beforeFooter","afterFooter","_controller$getLabelA","getLabelAndValue","itemSort","labelColor","labelPointStyle","labelTextColor","_createItems","getTitle","getBeforeBody","getBody","getAfterBody","getFooter","positionAndSize","backgroundPoint","external","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","titleColor","colorX","rtlColorX","yOffSet","colorY","multiKeyBackground","outerX","innerX","strokeRect","textColor","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","bodyColor","_drawColorBox","footerAlign","footerColor","tooltipSize","drawCaret","quadraticCurveTo","animX","animY","_updateAnimationTarget","hasTooltipContent","globalAlpha","drawBody","drawFooter","_ref13","positionChanged","_positionChanged","plugin_tooltip","afterInit","afterDraw","labelCount","findOrAddLabel","addIfString","lastIndexOf","_Scale","CategoryScale","_super19","_this14","_startValue","_valueRange","_me$getUserBounds2","_me$getMinMax","getDecimalForPixel","generateTicks$1","generationOptions","dataRange","niceMin","niceMax","numSpaces","rounded","precision","maxTicks","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","minSpacing","decimalPlaces","relativeLabelSize","_ref14","_Scale2","LinearScaleBase","_super20","_this15","_endValue","_me$getUserBounds3","setMin","setMax","minSign","maxSign","stepSize","computeTickLimit","getTickLimit","_maxDigits","_LinearScaleBase","LinearScale","_super21","_me$getMinMax2","handleTickRangeOptions","isMajor","tickVal","_Scale3","LogarithmicScale","_super22","_this16","_zero","_me$getMinMax3","_me$getUserBounds4","exp","endExp","endSignificand","significand","lastTick","generateTicks","getTickBackdropHeight","determineLimits","fitWithPointLabels","furthestLimits","furthestAngles","valueCount","getPointPosition","drawingArea","plFont","_pointLabels","hLimits","vLimits","_setReductions","_pointLabelItems","tickBackdropHeight","outerDistance","extra","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","buildPointLabelItems","pathRadiusLine","param","_LinearScaleBase2","RadialLinearScale","_super23","_this17","_me$getMinMax4","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","scaledDistance","distanceFromCenter","_this$_pointLabelItem","_me$options7","_scale$_pointLabelIte","drawPointLabels","gridLineOpts","drawRadiusLine","animate","INTERVALS","millisecond","common","steps","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","_parse","adapter","_adapter","_scale$_parseOpts","_parseOpts","parser","isoWeekday","startOf","determineUnitForAutoTicks","minUnit","capacity","interval","MAX_SAFE_INTEGER","addTick","time","timestamps","_lookup2","ticksFromTimestamps","majorUnit","setMajorTicks","_Scale4","TimeScale","_super24","_this18","_unit","_majorUnit","_offsets","_normalized","displayFormats","formats","normalized","_me$getUserBounds5","_applyBounds","_getLabelBounds","endOf","getLabelTimestamps","timeOpts","_generate","_filterBetween","_getLabelCapacity","determineUnitForFormatting","determineMajorUnit","initOffsets","getDecimalForValue","hasWeekday","getDataTimestamps","tooltipFormat","datetime","minorFormat","majorFormat","_tickFormatFunction","offsets","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","_getLabelSize","prevSource","nextSource","prevTarget","nextTarget","_lookupByKey2","_table$lo","_table$hi","_lookupByKey3","_table$lo2","_table$hi2","span","TimeSeriesScale","_TimeScale","_super25","_this19","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","webpackPolyfill","deprecate","paths","children","global","factory","noGlobal","getProto","_slice","flat","class2type","hasOwn","fnToString","ObjectFunctionString","support","nodeType","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","code","doc","script","createElement","appendChild","removeChild","toType","jQuery","selector","isArrayLike","jquery","toArray","pushStack","elems","prevObject","elem","even","grep","_elem","odd","extend","copy","copyIsArray","deep","isPlainObject","expando","random","isReady","msg","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","invert","callbackExpect","guid","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","nodeName","dir","childNodes","els","seed","nid","groups","newSelector","newContext","ownerDocument","getElementsByTagName","getElementsByClassName","qsa","testContext","toSelector","querySelectorAll","qsaError","cacheLength","markFunction","assert","addHandle","attrs","attrHandle","siblingCheck","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","attachEvent","className","createComment","getById","getElementsByName","attrId","find","getAttributeNode","tag","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","sortDetached","aup","ap","bp","expr","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","_argument","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","matched","matcher","unmatched","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","submit","tokens","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","_name","unique","isXMLDoc","escapeSelector","_dir","until","truncate","is","_siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","contents","sibling","targets","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","content","rnothtmlwhite","Identity","Thrower","ex","adoptValue","reject","noValue","promise","fail","Callbacks","_","flag","createOptions","firing","memory","_fired","_locked","queue","firingIndex","fire","once","stopOnFalse","empty","disable","lock","locked","fireWith","fired","Deferred","func","tuples","_state","_promise","state","always","deferred","pipe","fns","newDefer","tuple","returned","onFulfilled","onRejected","maxDepth","depth","special","that","mightThrow","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","message","readyException","readyList","completed","catch","readyWait","readyState","doScroll","access","chainable","emptyGet","bulk","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","acceptData","owner","Data","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","getData","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","defer","pnum","rcssNum","cssExpand","composed","getRootNode","isHiddenWithinTree","css","adjustCSS","valueParts","tween","adjusted","maxIterations","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","wrapMap","thead","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","fragment","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","_on","types","one","origFn","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","_handlers","matchedHandlers","matchedSelectors","button","addProp","originalEvent","load","noBubble","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","altKey","bubbles","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","pointerId","pointerType","screenX","screenY","targetTouches","toElement","which","focus","blur","mouseenter","mouseleave","related","on","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","append","prepend","insertBefore","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","insert","rnumnonpx","getStyles","opener","swap","old","rboxStyle","curCSS","computed","minWidth","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","trChild","trStyle","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","isBorderBox","computedVal","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","cssHooks","origName","isCustomProp","scrollboxSizeBuggy","expand","expanded","propHooks","run","eased","fx","scrollTop","scrollLeft","swing","fxNow","inProgress","rfxtypes","rrun","schedule","createFxNow","genFx","includeWidth","createTween","tweeners","stopped","prefilters","currentTime","startTime","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","timer","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","xhr","XMLHttpRequest","xhrSuccessStatus","xhrSupported","cors","_callback","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","_callback2","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","fnOver","fnOut","holdReady","hold","parseJSON","isNumeric","trim","_jQuery","_$","$","noConflict","getStyleSize","logError","measurements","measurementsLength","getZeroSize","innerWidth","innerHeight","isBoxSizeOuter","isSetup","borderStyle","getSize","querySelector","measurement","paddingWidth","paddingHeight","marginWidth","marginRight","marginHeight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderHeight","isBorderBoxSizeOuter","styleWidth","styleHeight","_construct","Parent","Class","Function","DismissReason","close","esc","consolePrefix","capitalizeFirstLetter","nodeList","previousWarnOnceMessages","warnAboutDeprecation","deprecatedParam","useInstead","callIfFunction","hasToPromiseFn","toPromise","asPromise","isPromise","isElement","isJqueryElement","swalClasses","iconTypes","getContainer","elementBySelector","selectorString","elementByClass","getPopup","popup","getIcon","icon","getHtmlContainer","getImage","getProgressSteps","getValidationMessage","getConfirmButton","actions","confirm","getDenyButton","deny","getLoader","loader","getCancelButton","getActions","getTimerProgressBar","getCloseButton","getFocusableElements","focusableElementsWithTabindex","otherFocusableElements","uniqueArray","isVisible","isModal","isToast","classList","states","previousBodyPadding","setInnerHtml","child","applyCustomClass","showClass","removeCustomClasses","customClass","getInput","inputType","getChildByClass","focusInput","condition","applyNumericalStyle","removeProperty","isScrollable","scrollHeight","hasCssAnimation","animDuration","transDuration","animateTimerProgressBar","timerProgressBar","isNodeEnv","sweetHTML","textarea","resetValidationMessage","Swal","oldContainer","oldContainerExisted","rangeOutput","targetElement","toast","setupAccessibility","setupRTL","oninput","onchange","parseHtmlToContainer","HTMLElement","handleObject","handleJqueryElem","animationEndEvent","testEl","transEndEventNames","WebkitAnimation","OAnimation","renderActions","confirmButton","denyButton","cancelButton","showConfirmButton","showDenyButton","showCancelButton","renderButton","buttonsStyling","styled","confirmButtonColor","denyButtonColor","cancelButtonColor","handleButtonsStyling","reverseButtons","loaderHtml","buttonType","renderContainer","background","handleBackdropParam","handlePositionParam","grow","growClass","handleGrowParam","privateProps","innerParams","domCache","inputTypes","showInput","renderInputType","inputContainer","getInputContainer","setAttributes","inputAttributes","attrName","removeAttributes","setCustomClass","setInputPlaceholder","placeholder","inputPlaceholder","setInputLabel","inputLabel","labelClass","innerText","insertAdjacentElement","inputClass","email","tel","inputValue","rangeInput","checkboxContainer","initialPopupWidth","textareaWidth","attributeFilter","renderContent","htmlContainer","rerender","renderInput","applyStyles","iconType","setColor","adjustSuccessIconBackgoundColor","popupBackgroundColor","successIconParts","setContent","iconHtml","iconContent","question","warning","iconColor","renderProgressSteps","progressStepsContainer","progressSteps","currentProgressStep","stepEl","createStepElement","lineEl","progressStepsDistance","createLineElement","addClasses","modal","renderPopup","renderIcon","imageUrl","imageAlt","imageWidth","imageHeight","renderImage","titleText","renderTitle","closeButton","closeButtonHtml","showCloseButton","closeButtonAriaLabel","renderCloseButton","renderFooter","didRender","clickConfirm","showLoading","buttonToReplace","replaceButton","loading","globalState","restoreActiveElement","returnFocus","scrollX","scrollY","restoreFocusTimeout","previousActiveElement","stopTimer","timerProgressBarWidth","timerProgressBarFullWidth","timerProgressBarPercent","stopTimerProgressBar","resumeTimer","bodyClickListenerAdded","clickHandlers","bodyClickListener","template","defaultParams","hideClass","heightAuto","allowOutsideClick","allowEscapeKey","allowEnterKey","stopKeydownPropagation","keydownListenerCapture","preConfirm","preDeny","confirmButtonText","confirmButtonAriaLabel","denyButtonText","denyButtonAriaLabel","cancelButtonText","cancelButtonAriaLabel","focusConfirm","focusDeny","focusCancel","showLoaderOnConfirm","showLoaderOnDeny","inputOptions","inputAutoTrim","inputValidator","returnInputValueOnDeny","validationMessage","willOpen","didOpen","willClose","didClose","didDestroy","scrollbarPadding","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","showWarningsForParams","staticMethods","isUpdatableParameter","argsToParams","clickDeny","clickCancel","getInputLabel","isLoading","hasAttribute","mixin","mixinParams","MixinSwal","priorityMixinParams","enableLoading","getTimerLeft","toggleTimer","increaseTimer","increase","isTimerRunning","isRunning","bindClickHandler","hideLoading","showRelatedButton","fixScrollbar","scrollDiv","scrollbarWidth","measureScrollbar","addBottomPaddingForTallPopups","navigator","userAgent","lockBodyScroll","preventTouchMove","ontouchstart","shouldPreventTouchMove","ontouchmove","isStylys","isZoom","tagName","touchType","privateMethods","swalPromiseResolve","removePopupAndResetState","triggerDidCloseAndDispose","keydownTarget","keydownHandler","capture","keydownHandlerAdded","iosfix","undoIOSfix","shown","resolveValue","prepareResolveValue","handlePopupAnimation","isConfirmed","isDenied","isDismissed","animationIsSupported","animatePopup","swalCloseEventFinishedCallback","setButtonsDisabled","setInputDisabled","radios","Timer","started","defaultInputValidators","setParameters","setDefaultInputValidators","validateCustomTargetElement","currentInstance","swalStringParams","getSwalParams","templateContent","showWarningsForAttributes","getSwalButtons","getSwalImage","getSwalIcon","getSwalInput","optionValue","optionName","getSwalStringParams","paramNames","showWarningsForElements","allowedElements","allowedAttributes","attribute","openPopup","initialBodyOverflow","addClasses$1","setScrollingVisibility","fixScrollContainer","swalOpenAnimationFinished","MSStream","maxTouchPoints","iOSfix","getCheckboxValue","getRadioValue","getFileValue","files","handleInputOptions","processInputOptions","populateInputOptions","formatInputOptions","handleInputValue","renderOption","optionLabel","isSelected","inputOption","radioLabel","radioInput","radioLabelElement","valueFormatted","handleConfirmOrDenyWithInput","getInputValue","handleInputValidator","checkValidity","enableButtons","showValidationMessage","disableInput","enableInput","preDenyValue","closePopup","succeedWith","preConfirmValue","setFocus","focusableElements","arrowKeysNextButton","arrowKeysPreviousButton","dismissWith","handleEnter","handleTab","handleArrows","handleEsc","isComposing","outerHTML","btnIndex","buttonToFocus","handleToastClick","onclick","ignoreOutsideClick","handleModalMousedown","onmousedown","onmouseup","handleContainerMousedown","handleModalClick","prepareParams","userParams","templateParams","getTemplateParams","swalPromise","dismiss","disableButtons","handleConfirmButtonClick","handleDenyButtonClick","handleCancelButtonClick","handlePopupClick","addKeydownHandler","handleInputOptionsAndValue","setupTimer","initFocus","populateDomCache","globalState$$1","focusButton","blurActiveElement","disposeSwal","unsetWeakMaps","instanceMethods","disableLoading","closeModal","closeToast","inputerror","_main","validUpdatableParams","updatedParams","deferDisposalTimer","SweetAlert","outerParams","onFinally","finally","_currentInstance","default","Sweetalert2","swal","sweetAlert","styleSheet","EvEmitter","utils","Item","GUID","Outlayer","queryElement","getQueryElement","$element","outlayerGUID","_create","_getOption","initLayout","originLeft","originTop","resizeContainer","transitionDuration","hiddenStyle","transform","visibleStyle","subclass","SubClass","oldOption","compatOptions","layoutInstant","reloadItems","stamps","stamp","bindResize","_itemize","itemElems","_filterFindItemElements","filterFindElements","itemSelector","getItemElements","_resetLayout","_manageStamps","isInstant","_isLayoutInited","layoutItems","_getMeasurement","_getItemsForLayout","_layoutItems","_postLayout","isIgnored","_emitCompleteOnItems","_getItemLayoutPosition","isLayoutInstant","_processLayoutQueue","updateStagger","_positionItem","stagger","getMilliseconds","goTo","_getContainerSize","_setContainerMeasure","isWidth","elemSize","eventName","dispatchEvent","doneCount","emitArgs","emitEvent","$event","ignore","getItem","unignore","_find","unstamp","removeFrom","_getBoundingRect","_manageStamp","boundingRect","_boundingRect","_getElementOffset","thisRect","isResizeBound","unbindResize","onresize","debounceMethod","needsResizeLayout","addItems","appended","reveal","prepended","previousItems","revealItemElements","getItems","hideItemElements","removeItems","Layout","htmlInit","bridget","msUnits","ms","LayoutMode","isotope","filteredItems","methodName","needsVerticalResizeLayout","getColumnWidth","getSegmentSize","getRowHeight","segmentName","outerSize","firstItemSize","getFirstItemSize","firstItem","Mode","loaded","u","startEvent","throttleDelay","debounceDelay","disableMutationObserver","atob","mobile","phone","tablet","isSupported","refresh","refreshHard","leading","maxWait","trailing","flush","aos","WebKitMutationObserver","MozMutationObserver","vendor","opera","anchor","anchorPlacement","offsetTop","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","ref","cspNonce","setData","csrfParam","csrfToken","CSRFProtection","refreshCSRFTokens","CustomEvent","createEvent","initCustomEvent","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","OPENED","accept","withCredentials","DONE","isCrossDomain","serializeElement","additionalParam","formElements","form","allowAction","handleConfirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","link","action","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded","_events","onceEvents","_onceEvents","onceListeners","allOff","arraySlice","ary","getParent","ffElems","childElems","_class","threshold","timeoutName","docReady","toDashed","$1","$2","WidgetClass","dashedNamespace","dataAttrElems","jsDashElems","dataOptionsAttr","matchesMethod","ElemProto","found","onElement","withCallback","avoidDuplicate","useCapture","parentElement","webkitTransform","MozTransform","msTransform","OTransform","MozAnimation","setInterval","clearInterval","rel","media","keyboard","toLocaleLowerCase","nextSlide","prevSlide","preV","pinchStartLen","zoom","isDoubleTap","touchStart","multipointStart","multipointEnd","pinch","swipe","tap","doubleTap","longTap","singleTap","pressMove","twoFingerPressMove","touchMove","touchEnd","touchCancel","translateContainer","_cancelAllHandler","cancelAll","tapTimeout","singleTapTimeout","longTapTimeout","swipeTimeout","preTapPosition","log","_cancelLongTap","_cancelSingleTap","_preventTap","acos","q","sx2","sy2","_swipeDirection","del","OTransition","MozTransition","WebkitTransition","activeSlide","touchFollowAxis","scaleX","scaleY","touch","img","slide","onclose","setZoomEvents","zoomedIn","dragging","currentX","currentY","initialX","initialY","dragStart","dragEnd","drag","zoomOut","zoomIn","widowWidth","naturalWidth","naturalHeight","setTranslate","isDragging","dragEl","toleranceX","toleranceY","lastDirection","toleranceReached","dragContainer","doSlideChange","preventOutsideClick","doSlideClose","shouldChange","dragAutoSnap","shouldClose","Image","sizes","srcset","alt","description","_hasCustomWidth","_hasCustomHeight","getAllPlayers","plyr","videoProvider","js","Plyr","allow","descPosition","effect","zoomable","draggable","sourceType","setSize","sanitizeValue","substring","DOMException","slideConfig","checkSize","videosWidth","beforeSlideLoad","player","afterSlideLoad","getSlidePlayerInstance","moreLength","smallDescription","slideShortDesc","moreText","descriptionEvents","dragToleranceX","dragToleranceY","slideHTML","slideExtraAttributes","parseConfig","createTouch","msMaxTouchPoints","ee","skin","theme","startAt","autoplayVideos","autofocusVideos","beforeSlideChange","afterSlideChange","slideInserted","slideRemoved","onOpen","onClose","preload","oneSlidePerOpen","touchNavigation","keyboardNavigation","closeOnOutsideClick","fullscreen","iosNative","youtube","noCookie","showinfo","iv_load_policy","vimeo","byline","portrait","openEffect","closeEffect","slideEffect","cssEfects","fade","in","out","slideBack","none","svg","lightboxHTML","te","customOptions","effectsClasses","getAnimationClasses","videoPlayers","apiEvents","fullElementsList","getSelector","baseEvents","getElements","prevActiveSlideIndex","prevActiveSlide","getGalleryElements","getElementIndex","build","overlay","showSlide","prevButton","nextButton","lightboxOpen","slidesContainer","slideAnimateOut","slideAnimateIn","slideNode","slideIndex","slideDescription","slideDescriptionContained","preloadSlide","updateNavigationClasses","goToSlide","getConfig","getActiveSlideIndex","slidePlayerPlay","slidePlayerPause","playing","pause","play","muted","gallery","built","bodyHiddenChildElms","outClose","loopAtEnd","closing","clearAllEvents","Isotope","layoutMode","isJQueryFiltering","sortAscending","itemGUID","_sorters","_getSorters","sortHistory","_initLayoutMode","_updateItemsSortData","initialOpts","_layout","arrange","_getIsInstant","filtered","_filter","_bindArrangeComplete","_isInstant","_noTransition","_hideReveal","_sort","needReveal","needHide","isLayoutComplete","isHideComplete","isRevealComplete","arrangeParallelCallback","hiddenMatched","visibleUnmatched","_getFilterTest","isMatched","isHidden","updateSortData","getSortData","mungeSorter","query","attrMatch","getValue","getValueGetter","sortDataParsers","getItemSorter","sortBys","sortAsc","itemA","itemB","sortBy","sortData","_parseInt","_parseFloat","_getIsSameSortBy","itemSorter","_mode","_filterRevealAdded","filteredInsertItems","shuffle","getFilteredItemElements","collapse","e0","wheelDelta","$anchor","$jsAnalytics","isEmptyObj","docElemStyle","transitionProperty","transformProperty","transitionEndEvent","vendorProperties","transitionDelay","toDashedAll","_transn","ingProperties","clean","onEnd","elemStyle","getPosition","isOriginLeft","isOriginTop","xValue","yValue","layoutSize","layoutPosition","xPadding","xProperty","xResetProperty","getXValue","yPadding","yProperty","yResetProperty","getYValue","percentPosition","_transitionTo","curX","curY","didNotMove","setPosition","isTransitioning","transX","transY","transitionStyle","getTranslate","onTransitionEnd","isCleaning","_nonTransition","_removeStyles","_transition","enableTransition","transitionProps","staggerDelay","onwebkitTransitionEnd","ontransitionend","onotransitionend","dashedVendorProperties","propertyName","disableTransition","removeTransitionStyles","cleanStyle","cleanTransitionStyle","removeElem","getHideRevealTransitionEndProperty","onRevealTransitionEnd","styleProperty","optionStyle","onHideTransitionEnd","sorters","Masonry","MasonryMode","keepModeMethods","measureColumns","isFitWidth","fitWidth","colYs","cols","horizontalColIndex","getContainerWidth","columnWidth","firstItemElem","containerWidth","gutter","remainder","colSpan","colPosition","horizontalOrder","setHeight","_getTopColPosition","colGroup","_getTopColGroup","minimumY","groupCount","_getColGroupY","groupColYs","_getHorizontalColPosition","hasSize","stampSize","firstX","lastX","firstCol","lastCol","stampMaxY","_getContainerFitWidth","unusedCols","previousWidth","FitRows","Vertical","horizontalAlignment","ssrDocument","initEvent","createElementNS","importNode","hostname","origin","pathname","search","getDocument","ssrWindow","history","replaceState","pushState","go","back","screen","matchMedia","cancelAnimationFrame","getWindow","_wrapNativeSuper","Wrapper","Dom7","_Array","arrayFlat","arrayFilter","_html","toCreate","tempParent","arrayUnique","noTrigger","shortcut","_len14","_key14","Methods","_el$classList","_el$classList2","targetSelector","handleLiveEvent","eventData","dom7EventData","_parents","_event","dom7LiveListeners","proxyListener","dom7Listeners","dom7proxy","transitionEnd","dom","fireCallBack","includeMargins","_styles","_styles2","clientTop","clientLeft","_scrollTop","_scrollLeft","compareWith","previousSibling","returnIndex","newChild","tempDiv","nextElementSibling","nextEls","_next","previousElementSibling","prevEls","_prev","_parent","foundElements","deviceCached","nextTick","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MsTransform","m41","m42","isNode","noExtend","keysArray","nextIndex","nextKey","__swiper__","setCSSProperty","varName","varValue","animateCSSModeScroll","swiper","targetPosition","side","startPosition","wrapperEl","scrollSnapType","cssModeFrameID","isOutOfBound","getTime","easeProgress","currentPosition","getSupport","smoothScroll","DocumentTouch","passiveListener","supportsPassive","gestures","calcSupport","getDevice","_temp","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isSafari","isWebView","calcBrowser","transitionEmit","runCallbacks","activeIndex","previousIndex","emit","touchEventsData","animating","preventInteractionOnTransition","cssMode","loopFix","$targetEl","touchEventsTarget","isTouchEvent","isTouched","isMoved","noSwipingClass","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","closestElement","allowClick","swipeHandler","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","allowThresholdMove","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchStart","rtlTranslate","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","isVertical","maxTranslate","minTranslate","diffX","diffY","touchAngle","touchMoveStopPropagation","nested","startTranslate","setTransition","$wrapperEl","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","watchSlidesProgress","updateActiveIndex","updateSlidesClasses","onTouchMove","updateProgress","slidesGrid","currentPos","touchEndTime","timeDiff","pathTree","composedPath","updateClickedSlide","lastClickTime","destroyed","onTouchEnd","stopIndex","groupSize","slidesSizesGrid","slidesPerGroupSkip","slidesPerGroup","_increment","rewindFirstIndex","rewindLastIndex","rewind","isBeginning","virtual","slides","isEnd","longSwipesMs","longSwipes","slideTo","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","breakpoints","setBreakpoint","snapGrid","updateSlides","slidesPerView","centeredSlides","autoplay","paused","watchOverflow","checkOverflow","preventClicks","preventClicksPropagation","onScroll","previousTranslate","translatesDiff","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","passiveListeners","updateOnWindowResize","isGridEnabled","rows","initialSlide","resizeObserver","createElements","autoHeight","setWrapperSize","virtualTranslate","breakpointsBase","spaceBetween","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","maxBackfaceHiddenSlides","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","priority","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","$el","getDirectionLabel","getDirectionPropertyValue","swiperSize","wrongRTL","isVirtual","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","slideSize","gridEnabled","initSlides","shouldResetSlideSize","updateSlide","slideStyles","currentTransform","currentWebKitTransform","_slide$","swiperSlideSize","updateWrapperSize","newSlidesGrid","slidesGridItem","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","updateSlidesOffset","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","activeSlides","getSlideByIndex","visibleSlides","swiperSlideOffset","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","originalProgress","multiplier","wasBeginning","wasEnd","realIndex","emitSlidesClasses","newActiveIndex","previousRealIndex","previousSnapIndex","initialized","slideFound","clickedSlide","clickedIndex","byController","translateTo","translateBounds","internal","newTranslate","isH","_wrapperEl$scrollTo","onTranslateToWrapperTransitionEnd","transitionStart","indexAsNumber","normalizedTranslate","normalizedGrid","normalizedGridNext","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","perGroup","slidesPerViewDynamic","_clientLeft","slidePrev","prevSnapIndex","normalizedSnapGrid","prevSnap","prevIndex","slideReset","slideToClosest","currentSnap","slideToIndex","loopCreate","$selector","blankSlidesNum","blankNode","prependSlides","appendSlides","loopDestroy","moving","isLocked","unsetGrabCursor","attachEvents","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","directionChanged","needsReLoop","changeDirection","isEnabled","enable","containerEl","currentHeight","minRatio","_points$i","wasLocked","lastSlideIndex","lastSlideRightEdge","resultClasses","suffixes","removeClasses","images","loadImage","imageEl","checkForComplete","onReady","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","_swiper$modules","browser","__modules__","mod","extendParams","desktop","swiperParams","passedParams","velocity","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","newDefaults","installModule","cls","slideEl","updates","getSlideClasses","exact","spv","breakLoop","_i3","translateValue","newDirection","needUpdate","currentDirection","mounted","getWrapperSelector","getWrapper","wrapper","mount","deleteInstance","cleanStyles","prototypeGroup","protoMethod","use","animationFrame","resizeHandler","orientationChangeHandler","contentBoxSize","inlineSize","blockSize","unobserve","observers","WebkitMutationObserver","mutations","observerUpdate","characterData","observeParents","observeSlideChildren","containerParents","selectEl","onscroll","navbarlinks","navbarlinksActive","navbarlink","section","scrollto","elementPos","behavior","backtotop","toggleBacktotop","navbar","navbarToggle","portfolioContainer","portfolioIsotope","portfolioFilters","AOS","GLightbox","disableOnInteraction","pagination","clickable","_objectSpread2","_extends","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","getParentOrHost","includeCTX","_throttleTimeout","R_SPACE","selfOnly","appliedTransforms","matrixFn","DOMMatrix","CSSMatrix","MSCSSMatrix","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","containerRect","elMatrix","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","includeDragEl","currentChild","Sortable","ghost","dragged","lastElementChild","getRelativeScrollOffset","winScroller","includeSelf","gotSelf","scrollWidth","elemCSS","isRectEqual","rect1","rect2","throttle","scrollBy","Polymer","Zepto","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","indexOfObject","animateAll","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","calculateRealTime","animationResetTimer","currentRect","translateX","translateY","animatingX","animatingY","forRepaintDummy","repaint","initializeByDefault","PluginManager","pluginName","pluginEvent","sortable","eventCanceled","eventNameGlobal","initializePlugins","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","oldDraggableIndex","newDraggableIndex","putSortable","extraEventProperties","onName","pullMode","lastPutMode","allEventProperties","_excluded","parentEl","ghostEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","pointerEvents","_detectDirection","elCSS","elWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","nearestEmptyInsertDetectEvent","emptyInsertThreshold","insideHorizontally","insideVertically","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","store","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","preventOnFilter","dataTransfer","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","relatedRect","_disableDraggable","_unsilent","_generateId","sum","_nextTick","_cancelNextTick","_getDirection","originalTarget","_saveInputCheckedState","criteria","_prepareDragStart","dragStartFn","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","getSelection","removeAllRanges","_dragStarted","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dy","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","elLastChild","spacer","_ghostIsLast","_ghostIsFirst","targetBeforeFirstSwap","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","_getInsertDirection","_getSwapDirection","dragIndex","moveVector","insertion","_showClone","_offMoveEvents","_offUpEvents","dropEffect","_globalDragOver","useAnimation","dst","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","onSpill","Revert","Remove","_ref3","parentSortable","AutoScroll","forceAutoScrollFallback","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","require","Decimation","Filler","interval1","interval2","interval3","interval4","interval5","interval6","is_requesting","fs","gapi","analytics","$jsData","auth","viewids","authorize","batch1","client","newBatch","batch2","batch3","batch4","batch5","batch6","updateAnalytics","dataActiveusers","dataPageviews","passIndex","startNumber","profileInfo","profileId","totalsForAllResults","$country","startTimestamp","pupolarPath","mostPaths","ind","$pathname","country","countryIndex","nameCountry","viewid","activeusers","realtime","pageviews","execute","responseMap","visibilityState","$pageViewsChart","dataChart","setDate","getDate","getMonth","pointRadius","toLocaleString","Turbolinks","supported","visit","setProgressBarDelay","copyObject","Node","ELEMENT_NODE","uuid","Location","absoluteURL","requestURL","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","toJSON","_t","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","sent","notifyApplicationBeforeRequestStart","setProgress","requestStarted","lengthComputable","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","trickleInterval","BrowserAdapter","showProgressBar","_t3","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","_t4","History","onPageLoad","onPopState","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","_t5","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","_t7","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","scrollPositionChanged","SnapshotCache","snapshots","write","Visit","performScroll","_t8","timingMetrics","recordTimingMetric","request","cancelRender","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","frame","_t9","Controller","clickBubbled","clickCaptured","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","nodeIsVisitable","currentScript","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","md51_array","subarray","Uint8Array","rhex","toUtf8","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","concatenateArrayBuffers","byteLength","buffer","hexToBinaryString","bytes","SparkMD5","clamp","targetArray","sourceArray","begin","appendBinary","_buff","_hash","_finish","getState","setState","hashBinary","classCallCheck","createClass","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","eventInit","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","upload","messages","DirectUploadController","directUpload","hiddenInput","dispatchError","signed_id","alert","uploadRequestDidProgress","DirectUploadsController","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","submitForm","ActiveStorage","channels","webpackEmptyContext","req","webpackContext","webpackContextResolve","basePlacements","viewport","variationPlacements","placement","beforeRead","afterRead","beforeMain","main","afterMain","beforeWrite","afterWrite","modifierPhases","getNodeName","isHTMLElement","isShadowRoot","ShadowRoot","phase","initialStyles","popper","strategy","arrow","reference","requires","getBasePlacement","getLayoutRect","clientRect","rootNode","isSameNode","isTableElement","getDocumentElement","getParentNode","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mergePaddingObject","paddingObject","expandToHashMap","hashMap","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","axisProp","centerOffset","_options$element","requiresIfExists","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","_options$scroll","_options$resize","scrollParents","scrollParent","getOppositePlacement","getOppositeVariationPlacement","getWindowScroll","getWindowScrollBarX","isScrollParent","_getComputedStyle","getScrollParent","listScrollParents","_element$ownerDocumen","isBody","visualViewport","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","getInnerBoundingClientRect","winScroll","getDocumentRect","getClippingRect","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","getVariation","computeOffsets","variation","commonX","commonY","mainAxis","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","referenceElement","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","every","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_offset","_min","_max","_preventedOffset","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","modifiers","modifier","dep","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","cleanupModifierEffects","orderModifiers","merged","existing","mergeByName","_ref3$options","cleanupFn","noopFn","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","_KEY_TO_DIRECTION","eventListeners","SelectorEngine","ancestor","TRANSITION_END","getUID","hrefAttr","getSelectorFromElement","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","floatTransitionDuration","floatTransitionDelay","triggerTransitionEnd","typeCheckConfig","componentName","configTypes","expectedTypes","valueType","findShadowRoot","attachShadow","reflow","getjQuery","DOMContentLoadedCallbacks","isRTL","defineJQueryPlugin","NAME","JQUERY_NO_CONFLICT","jQueryInterface","executeAfterTransition","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","getNextActiveElement","shouldGetNext","isCycleAllowed","listLength","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","customEventsRegex","nativeEvents","getUidEvent","getEvent","findHandler","delegationSelector","uidEventList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","addHandler","oneOff","wrapFn","_normalizeParams2","previousFn","domElements","EventHandler","bootstrapDelegationHandler","bootstrapHandler","removeHandler","_normalizeParams4","inNamespace","isNamespace","elementEvent","storeElementEvent","handlerKey","removeNamespacedHandlers","keyHandlers","jQueryEvent","isNative","nativeDispatch","elementMap","instanceMap","BaseComponent","DATA_KEY","EVENT_KEY","isAnimated","getInstance","EVENT_KEY$b","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API$7","Alert","_BaseComponent","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","_queueCallback","_destroyElement","getOrCreateInstance","alertInstance","handleDismiss","EVENT_KEY$a","SELECTOR_DATA_TOGGLE$5","EVENT_CLICK_DATA_API$6","Button","_BaseComponent2","normalizeData","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","pureKey","getDataAttribute","NAME$a","EVENT_KEY$9","DATA_API_KEY$6","Default$9","DefaultType$9","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","KEY_TO_DIRECTION","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API$2","EVENT_CLICK_DATA_API$5","CLASS_NAME_ACTIVE$2","SELECTOR_ACTIVE_ITEM","POINTER_TYPE_TOUCH","Carousel","_BaseComponent3","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_getConfig","_indicatorsElement","_touchSupported","_pointerEvent","PointerEvent","_addEventListeners","_slide","cycle","_updateInterval","nextWhenVisible","_getItemIndex","absDeltax","_keydown","_addTouchEventListeners","_handleSwipe","itemImg","isNext","eventDirectionName","targetIndex","fromIndex","activeIndicator","indicators","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","_getItemByOrder","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","_triggerSlideEvent","_setActiveIndicatorElement","triggerSlidEvent","ride","carouselInterface","dataApiClickHandler","carousels","NAME$9","DATA_KEY$8","EVENT_KEY$8","Default$8","DefaultType$8","EVENT_SHOW$5","EVENT_SHOWN$5","EVENT_HIDE$5","EVENT_HIDDEN$5","EVENT_CLICK_DATA_API$4","CLASS_NAME_SHOW$8","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","SELECTOR_DATA_TOGGLE$4","Collapse","_BaseComponent4","_isTransitioning","_triggerArray","toggleList","filterElement","foundElem","_selector","_getParent","_addAriaAndCollapsedClass","actives","activesData","tempActiveData","elemActive","collapseInterface","_getDimension","setTransitioning","capitalizedDimension","scrollSize","triggerArrayLength","triggerArray","isOpen","triggerData","NAME$8","EVENT_KEY$7","DATA_API_KEY$4","ESCAPE_KEY$2","SPACE_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","REGEXP_KEYDOWN","EVENT_HIDE$4","EVENT_HIDDEN$4","EVENT_SHOW$4","EVENT_SHOWN$4","EVENT_CLICK","EVENT_CLICK_DATA_API$3","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_SHOW$7","SELECTOR_DATA_TOGGLE$3","SELECTOR_MENU","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$7","popperConfig","autoClose","DefaultType$7","_BaseComponent5","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","getParentFromElement","_getPopperConfig","isDisplayStatic","_completeHide","Default","DefaultType","parentDropdown","popperData","defaultBsPopperConfig","_getPlacement","_getOffset","dropdownInterface","toggles","isMenuTarget","clickEvent","isActive","getToggleButton","clearMenus","_selectMenuItem","dataApiKeydownHandler","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","ScrollBarHelper","documentWidth","getWidth","_disableOverFlow","_setElementAttributes","calculatedValue","_saveInitialAttribute","styleProp","_applyManipulationCallback","_resetElementAttributes","actualValue","callBack","Default$6","clickCallback","DefaultType$6","NAME$7","CLASS_NAME_SHOW$6","EVENT_MOUSEDOWN","Backdrop","_isAppended","_append","_getElement","_emulateAnimation","dispose","NAME$6","EVENT_KEY$6","ESCAPE_KEY$1","Default$5","DefaultType$5","EVENT_HIDE$3","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$3","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_FOCUSIN$2","EVENT_RESIZE","EVENT_CLICK_DISMISS$2","EVENT_KEYDOWN_DISMISS$1","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API$2","CLASS_NAME_OPEN","CLASS_NAME_SHOW$5","CLASS_NAME_STATIC","Modal","_BaseComponent6","_dialog","_backdrop","_initializeBackDrop","_isShown","_ignoreBackdropClick","_scrollBar","_this20","_isAnimated","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_this21","_hideModal","_this22","modalBody","_enforceFocus","_this23","_this24","_triggerBackdropTransition","_this25","_this26","_resetAdjustments","_this27","_this28","_this$_element","isModalOverflowing","isBodyOverflowing","_this29","showEvent","NAME$5","EVENT_KEY$5","DATA_API_KEY$2","EVENT_LOAD_DATA_API$1","Default$4","DefaultType$4","CLASS_NAME_SHOW$4","OPEN_SELECTOR","EVENT_SHOW$2","EVENT_SHOWN$2","EVENT_HIDE$2","EVENT_HIDDEN$2","EVENT_FOCUSIN$1","EVENT_CLICK_DATA_API$1","EVENT_CLICK_DISMISS$1","EVENT_KEYDOWN_DISMISS","Offcanvas","_BaseComponent7","_this30","_this31","_enforceFocusOnElement","_this32","_this33","_this34","_this35","allReadyOpen","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultAllowlist","br","em","hr","h3","h4","h5","h6","li","ol","pre","small","sup","strong","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","createdDocument","allowlistKeys","elName","attributeList","allowedAttributeList","regExp","attrRegex","allowedAttribute","NAME$4","EVENT_KEY$4","CLASS_PREFIX$1","BSCLS_PREFIX_REGEX$1","DISALLOWED_ATTRIBUTES","DefaultType$3","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$3","Event$2","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE$3","CLASS_NAME_MODAL","CLASS_NAME_SHOW$3","HOVER_STATE_SHOW","HOVER_STATE_OUT","TRIGGER_HOVER","TRIGGER_FOCUS","_BaseComponent8","_this36","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","_this37","isWithContent","isInTheDom","tipId","attachment","_getAttachment","_addAttachmentClass","_tip$classList","prevHoverState","_this38","_ref10","_cleanTipClass","setElementContent","dataKey","_getDelegateConfig","_this39","_this40","_handlePopperPlacementChange","updateAttachment","_this41","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","tabClass","tClass","EVENT_KEY$3","CLASS_PREFIX","BSCLS_PREFIX_REGEX","Default$2","DefaultType$2","Event$1","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_Tooltip","_getContent","NAME$2","EVENT_KEY$2","Default$1","DefaultType$1","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE$1","SELECTOR_NAV_LINKS","SELECTOR_LIST_ITEMS","METHOD_POSITION","ScrollSpy","_BaseComponent9","_this42","_scrollElement","_targets","_activeTarget","_scrollHeight","_process","_this43","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetBCR","maxScroll","_getOffsetHeight","_activate","_clear","queries","listGroup","navItem","spy","EVENT_KEY$1","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK_DATA_API","CLASS_NAME_ACTIVE","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","Tab","_BaseComponent10","_this44","listElement","hideEvent","_this45","_transitionComplete","dropdownChild","dropdownElement","dropdown","EVENT_CLICK_DISMISS","EVENT_MOUSEOVER","EVENT_MOUSEOUT","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","autohide","Toast","_BaseComponent11","_this46","_hasMouseInteraction","_hasKeyboardInteraction","_this47","_clearTimeout","_maybeScheduleHide","_this48","_this49","isInteracting","_this50","_onInteraction"],"mappings":";aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,qBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,iBAIjBlC,EAAoBA,EAAoBmC,EAAI,I,+BClFrD,SAASC,EAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAIC,MAAMC,QAAQF,GAAM,OAAOG,EAAkBH,GAN1CI,CAAmBJ,IAI7D,SAA0BK,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOwB,WAA2C,MAAtBD,EAAK,cAAuB,OAAOJ,MAAMM,KAAKF,GAJjFG,CAAiBR,IAAQS,EAA4BT,IAE1H,WAAgC,MAAM,IAAIU,UAAU,wIAF8EC,GAQlI,SAASC,EAAgBC,EAAKvB,EAAKN,GAAiK,OAApJM,KAAOuB,EAAOpC,OAAOC,eAAemC,EAAKvB,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAMmC,cAAc,EAAMC,UAAU,IAAkBF,EAAIvB,GAAON,EAAgB6B,EAE3M,SAASG,EAAQH,GAAmV,OAAtOG,EAArD,oBAAXlC,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,GAEnX,SAASK,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIV,UAAU,qCAEhH,SAASW,EAAkBC,EAAQC,GAAS,IAAK,IAAIxD,EAAI,EAAGA,EAAIwD,EAAMC,OAAQzD,IAAK,CAAE,IAAI0D,EAAaF,EAAMxD,GAAI0D,EAAW9C,WAAa8C,EAAW9C,aAAc,EAAO8C,EAAWX,cAAe,EAAU,UAAWW,IAAYA,EAAWV,UAAW,GAAMtC,OAAOC,eAAe4C,EAAQG,EAAWnC,IAAKmC,IAE7S,SAASC,EAAaN,EAAaO,EAAYC,GAAmJ,OAAhID,GAAYN,EAAkBD,EAAYzB,UAAWgC,GAAiBC,GAAaP,EAAkBD,EAAaQ,GAAqBR,EAEzM,SAASS,EAA2BrD,EAAGsD,GAAkB,IAAIC,EAAuB,qBAAXjD,QAA0BN,EAAEM,OAAOwB,WAAa9B,EAAE,cAAe,IAAKuD,EAAI,CAAE,GAAI9B,MAAMC,QAAQ1B,KAAOuD,EAAKtB,EAA4BjC,KAAOsD,GAAkBtD,GAAyB,kBAAbA,EAAEgD,OAAqB,CAAMO,IAAIvD,EAAIuD,GAAI,IAAIhE,EAAI,EAAOiE,EAAI,aAAiB,MAAO,CAAElC,EAAGkC,EAAGxC,EAAG,WAAe,OAAIzB,GAAKS,EAAEgD,OAAe,CAAES,MAAM,GAAe,CAAEA,MAAM,EAAOjD,MAAOR,EAAET,OAAWmE,EAAG,SAAWC,GAAM,MAAMA,GAAOC,EAAGJ,GAAO,MAAM,IAAItB,UAAU,yIAA4I,IAA6C2B,EAAzCC,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEzC,EAAG,WAAeiC,EAAKA,EAAG7D,KAAKM,IAAOgB,EAAG,WAAe,IAAIgD,EAAOT,EAAGU,OAAsC,OAA9BH,EAAmBE,EAAKP,KAAaO,GAASN,EAAG,SAAWQ,GAAOH,GAAS,EAAMF,EAAMK,GAAQN,EAAG,WAAe,IAAWE,GAAiC,MAAbP,EAAGY,QAAgBZ,EAAGY,SAAY,QAAU,GAAIJ,EAAQ,MAAMF,KAEz9B,SAAS5B,EAA4BjC,EAAGoE,GAAU,GAAKpE,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAO2B,EAAkB3B,EAAGoE,GAAS,IAAIpD,EAAIf,OAAOkB,UAAUkD,SAAS3E,KAAKM,GAAGsE,MAAM,GAAI,GAAiE,MAAnD,WAANtD,GAAkBhB,EAAEyC,cAAazB,EAAIhB,EAAEyC,YAAY3C,MAAgB,QAANkB,GAAqB,QAANA,EAAoBS,MAAMM,KAAK/B,GAAc,cAANgB,GAAqB,2CAA2CuD,KAAKvD,GAAWW,EAAkB3B,EAAGoE,QAAzG,GAE7S,SAASzC,EAAkBH,EAAKgD,IAAkB,MAAPA,GAAeA,EAAMhD,EAAIwB,UAAQwB,EAAMhD,EAAIwB,QAAQ,IAAK,IAAIzD,EAAI,EAAGkF,EAAO,IAAIhD,MAAM+C,GAAMjF,EAAIiF,EAAKjF,IAAOkF,EAAKlF,GAAKiC,EAAIjC,GAAM,OAAOkF,E,w0BAYhL,IAAIC,EACoB,qBAAXC,OACF,SAAUC,GACf,OAAOA,KAIJD,OAAOE,sBAGhB,SAASC,EAAUC,EAAIC,EAASC,GAC9B,IAAIC,EAAaD,GAAY,SAAUE,GACrC,OAAO1D,MAAMN,UAAUmD,MAAM5E,KAAKyF,IAGhCC,GAAU,EACVD,EAAO,GACX,OAAO,WACL,IAAK,IAAIE,EAAOC,UAAUtC,OAAQuC,EAAO,IAAI9D,MAAM4D,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/ED,EAAKC,GAAQF,UAAUE,GAGzBL,EAAOD,EAAWK,GAEbH,IACHA,GAAU,EACVV,EAAiBhF,KAAKiF,QAAQ,WAC5BS,GAAU,EACVL,EAAGU,MAAMT,EAASG,QAoB1B,IAAIO,EAAqB,SAA4BC,GACnD,MAAiB,UAAVA,EAAoB,OAAmB,QAAVA,EAAkB,QAAU,UAG9DC,EAAiB,SAAwBD,EAAOE,EAAOC,GACzD,MAAiB,UAAVH,EAAoBE,EAAkB,QAAVF,EAAkBG,GAAOD,EAAQC,GAAO,GAQ7E,SAASC,KAET,IACMC,EADFC,GACED,EAAK,EACF,WACL,OAAOA,MAIX,SAASE,EAAc1F,GACrB,OAAiB,OAAVA,GAAmC,qBAAVA,EAGlC,SAASkB,EAAQlB,GACf,GAAIiB,MAAMC,SAAWD,MAAMC,QAAQlB,GACjC,OAAO,EAGT,IAAI2F,EAAOlG,OAAOkB,UAAUkD,SAAS3E,KAAKc,GAE1C,MAA0B,YAAtB2F,EAAKC,OAAO,EAAG,IAAwC,WAApBD,EAAKC,QAAQ,GAOtD,SAASC,EAAS7F,GAChB,OAAiB,OAAVA,GAA4D,oBAA1CP,OAAOkB,UAAUkD,SAAS3E,KAAKc,GAG1D,IAAI8F,EAAiB,SAAwB9F,GAC3C,OAAyB,kBAAVA,GAAsBA,aAAiB+F,SAAWC,UAAUhG,IAG7E,SAASiG,EAAgBjG,EAAOkG,GAC9B,OAAOJ,EAAe9F,GAASA,EAAQkG,EAGzC,SAASC,EAAenG,EAAOkG,GAC7B,MAAwB,qBAAVlG,EAAwBkG,EAAelG,EAGvD,IAIIoG,EAAc,SAAqBpG,EAAOqG,GAC5C,MAAwB,kBAAVrG,GAAsBA,EAAMsG,SAAS,KAAOC,WAAWvG,GAAS,IAAMqG,GAAarG,GAGnG,SAASoE,EAASG,EAAII,EAAMH,GAC1B,GAAID,GAAyB,oBAAZA,EAAGrF,KAClB,OAAOqF,EAAGU,MAAMT,EAASG,GAI7B,SAAS6B,EAAKC,EAAUlC,EAAIC,EAASkC,GACnC,IAAI3H,EAAGiF,EAAK2C,EAEZ,GAAIzF,EAAQuF,GAGV,GAFAzC,EAAMyC,EAASjE,OAEXkE,EACF,IAAK3H,EAAIiF,EAAM,EAAGjF,GAAK,EAAGA,IACxBwF,EAAGrF,KAAKsF,EAASiC,EAAS1H,GAAIA,QAGhC,IAAKA,EAAI,EAAGA,EAAIiF,EAAKjF,IACnBwF,EAAGrF,KAAKsF,EAASiC,EAAS1H,GAAIA,QAG7B,GAAI8G,EAASY,GAIlB,IAFAzC,GADA2C,EAAOlH,OAAOkH,KAAKF,IACRjE,OAENzD,EAAI,EAAGA,EAAIiF,EAAKjF,IACnBwF,EAAGrF,KAAKsF,EAASiC,EAASE,EAAK5H,IAAK4H,EAAK5H,IAK/C,SAAS6H,EAAeC,EAAIC,GAC1B,IAAI/H,EAAGgI,EAAMC,EAAIC,EAEjB,IAAKJ,IAAOC,GAAMD,EAAGrE,SAAWsE,EAAGtE,OACjC,OAAO,EAGT,IAAKzD,EAAI,EAAGgI,EAAOF,EAAGrE,OAAQzD,EAAIgI,IAAQhI,EAIxC,GAHAiI,EAAKH,EAAG9H,GACRkI,EAAKH,EAAG/H,GAEJiI,EAAGE,eAAiBD,EAAGC,cAAgBF,EAAGG,QAAUF,EAAGE,MACzD,OAAO,EAIX,OAAO,EAGT,SAASC,EAAQC,GACf,GAAInG,EAAQmG,GACV,OAAOA,EAAOC,IAAIF,GAGpB,GAAIvB,EAASwB,GAAS,CAMpB,IALA,IAAI/E,EAAS7C,OAAOY,OAAO,MACvBsG,EAAOlH,OAAOkH,KAAKU,GACnBE,EAAOZ,EAAKnE,OACZgF,EAAI,EAEDA,EAAID,IAAQC,EACjBlF,EAAOqE,EAAKa,IAAMJ,EAAQC,EAAOV,EAAKa,KAGxC,OAAOlF,EAGT,OAAO+E,EAGT,SAASI,EAAWnH,GAClB,OAAmE,IAA5D,CAAC,YAAa,YAAa,eAAeoH,QAAQpH,GAG3D,SAASqH,EAAQrH,EAAKgC,EAAQ+E,EAAQO,GACpC,GAAKH,EAAWnH,GAAhB,CAIA,IAAIuH,EAAOvF,EAAOhC,GACdwH,EAAOT,EAAO/G,GAEduF,EAASgC,IAAShC,EAASiC,GAC7BC,EAAMF,EAAMC,EAAMF,GAElBtF,EAAOhC,GAAO8G,EAAQU,IAI1B,SAASC,EAAMzF,EAAQ+E,EAAQO,GAC7B,IAAII,EAAU9G,EAAQmG,GAAUA,EAAS,CAACA,GACtCN,EAAOiB,EAAQxF,OAEnB,IAAKqD,EAASvD,GACZ,OAAOA,EAMT,IAFA,IAAI2F,GADJL,EAAUA,GAAW,IACAK,QAAUN,EAEtB5I,EAAI,EAAGA,EAAIgI,IAAQhI,EAG1B,GAAK8G,EAFLwB,EAASW,EAAQjJ,IAQjB,IAFA,IAAI4H,EAAOlH,OAAOkH,KAAKU,GAEdG,EAAI,EAAGD,EAAOZ,EAAKnE,OAAQgF,EAAID,IAAQC,EAC9CS,EAAOtB,EAAKa,GAAIlF,EAAQ+E,EAAQO,GAIpC,OAAOtF,EAGT,SAAS4F,EAAQ5F,EAAQ+E,GACvB,OAAOU,EAAMzF,EAAQ+E,EAAQ,CAC3BY,OAAQE,IAIZ,SAASA,EAAU7H,EAAKgC,EAAQ+E,GAC9B,GAAKI,EAAWnH,GAAhB,CAIA,IAAIuH,EAAOvF,EAAOhC,GACdwH,EAAOT,EAAO/G,GAEduF,EAASgC,IAAShC,EAASiC,GAC7BI,EAAQL,EAAMC,GACJrI,OAAOkB,UAAUC,eAAe1B,KAAKoD,EAAQhC,KACvDgC,EAAOhC,GAAO8G,EAAQU,KAa1B,SAASM,EAAmB9H,EAAK+E,GAC/B,IAAIgD,EAAM/H,EAAIoH,QAHN,IAGmBrC,GAC3B,OAAgB,IAATgD,EAAa/H,EAAIkC,OAAS6F,EAGnC,SAASC,EAAiBzG,EAAKvB,GAC7B,GATgB,KASZA,EACF,OAAOuB,EAMT,IAHA,IAAI0G,EAAM,EACNF,EAAMD,EAAmB9H,EAAKiI,GAE3B1G,GAAOwG,EAAME,GAClB1G,EAAMA,EAAIvB,EAAIsF,OAAO2C,EAAKF,EAAME,IAEhCF,EAAMD,EAAmB9H,EADzBiI,EAAMF,EAAM,GAId,OAAOxG,EAGT,SAAS2G,EAAYC,GACnB,OAAOA,EAAIC,OAAO,GAAGC,cAAgBF,EAAI3E,MAAM,GAGjD,IAAI8E,EAAU,SAAiB5I,GAC7B,MAAwB,qBAAVA,GAGZ6I,EAAa,SAAoB7I,GACnC,MAAwB,oBAAVA,GA4BZ8I,EAAKC,KAAKD,GACVE,EAAM,EAAIF,EACVG,EAAQD,EAAMF,EACdI,EAAWnD,OAAOoD,kBAClBC,EAAcN,EAAK,IACnBO,EAAUP,EAAK,EACfQ,EAAaR,EAAK,EAClBS,EAAqB,EAALT,EAAS,EACzBU,EAAQT,KAAKS,MACbC,EAAOV,KAAKU,KAEhB,SAASC,EAAQC,GACf,IAAIC,EAAeb,KAAKc,MAAMF,GAC9BA,EAAQG,EAAaH,EAAOC,EAAcD,EAAQ,KAAQC,EAAeD,EACzE,IAAII,EAAYhB,KAAKiB,IAAI,GAAIjB,KAAKkB,MAAMT,EAAMG,KAC1CO,EAAWP,EAAQI,EAEvB,OADmBG,GAAY,EAAI,EAAIA,GAAY,EAAI,EAAIA,GAAY,EAAI,EAAI,IACzDH,EAyBxB,SAASI,EAAS3J,GAChB,OAAQ4J,MAAM7D,WAAW/F,KAAOwF,SAASxF,GAG3C,SAASsJ,EAAaO,EAAGC,EAAGC,GAC1B,OAAOxB,KAAKyB,IAAIH,EAAIC,GAAKC,EAQ3B,SAASE,EAAmBC,EAAOpI,EAAQ5B,GACzC,IAAI3B,EAAGgI,EAAM/G,EAEb,IAAKjB,EAAI,EAAGgI,EAAO2D,EAAMlI,OAAQzD,EAAIgI,EAAMhI,IACzCiB,EAAQ0K,EAAM3L,GAAG2B,GAEZ0J,MAAMpK,KACTsC,EAAOqI,IAAM5B,KAAK4B,IAAIrI,EAAOqI,IAAK3K,GAClCsC,EAAOsI,IAAM7B,KAAK6B,IAAItI,EAAOsI,IAAK5K,IAKxC,SAAS6K,GAAUC,GACjB,OAAOA,GAAWhC,EAAK,KAGzB,SAASiC,GAAUC,GACjB,OAAOA,GAAW,IAAMlC,GAG1B,SAASmC,GAAeZ,GACtB,GAAKvE,EAAeuE,GAApB,CAOA,IAHA,IAAInH,EAAI,EACJrC,EAAI,EAEDkI,KAAKc,MAAMQ,EAAInH,GAAKA,IAAMmH,GAC/BnH,GAAK,GACLrC,IAGF,OAAOA,GAmBT,SAASqK,GAAsBC,EAAKC,GAClC,OAAOrC,KAAKsC,KAAKtC,KAAKiB,IAAIoB,EAAIf,EAAIc,EAAId,EAAG,GAAKtB,KAAKiB,IAAIoB,EAAId,EAAIa,EAAIb,EAAG,IAGxE,SAASgB,GAAWC,EAAGC,GACrB,OAAQD,EAAIC,EAAIvC,GAASD,EAAMF,EAGjC,SAAS2C,GAAgBF,GACvB,OAAQA,EAAIvC,EAAMA,GAAOA,EAG3B,SAAS0C,GAAcC,EAAOtG,EAAOC,EAAKsG,GACxC,IAAIL,EAAIE,GAAgBE,GAEpB7K,EAAI2K,GAAgBpG,GAEpBnC,EAAIuI,GAAgBnG,GAEpBuG,EAAeJ,GAAgB3K,EAAIyK,GAEnCO,EAAaL,GAAgBvI,EAAIqI,GAEjCQ,EAAeN,GAAgBF,EAAIzK,GAEnCkL,EAAaP,GAAgBF,EAAIrI,GAErC,OAAOqI,IAAMzK,GAAKyK,IAAMrI,GAAK0I,GAAyB9K,IAAMoC,GAAK2I,EAAeC,GAAcC,EAAeC,EAG/G,SAASC,GAAYjM,EAAO2K,EAAKC,GAC/B,OAAO7B,KAAK6B,IAAID,EAAK5B,KAAK4B,IAAIC,EAAK5K,IAOrC,IAAIkM,GAAS,SAAgBjM,GAC3B,OAAa,IAANA,GAAiB,IAANA,GAGhBkM,GAAY,SAAmBlM,EAAGa,EAAGD,GACvC,OAASkI,KAAKiB,IAAI,EAAG,IAAM/J,GAAK,IAAM8I,KAAKqD,KAAKnM,EAAIa,GAAKkI,EAAMnI,IAG7DwL,GAAa,SAAoBpM,EAAGa,EAAGD,GACzC,OAAOkI,KAAKiB,IAAI,GAAI,GAAK/J,GAAK8I,KAAKqD,KAAKnM,EAAIa,GAAKkI,EAAMnI,GAAK,GAG1DyL,GAAU,CACZC,OAAQ,SAAgBtM,GACtB,OAAOA,GAETuM,WAAY,SAAoBvM,GAC9B,OAAOA,EAAIA,GAEbwM,YAAa,SAAqBxM,GAChC,OAAQA,GAAKA,EAAI,IAEnByM,cAAe,SAAuBzM,GACpC,OAAQA,GAAK,IAAO,EAAI,GAAMA,EAAIA,GAAK,MAASA,GAAKA,EAAI,GAAK,IAEhE0M,YAAa,SAAqB1M,GAChC,OAAOA,EAAIA,EAAIA,GAEjB2M,aAAc,SAAsB3M,GAClC,OAAQA,GAAK,GAAKA,EAAIA,EAAI,GAE5B4M,eAAgB,SAAwB5M,GACtC,OAAQA,GAAK,IAAO,EAAI,GAAMA,EAAIA,EAAIA,EAAI,KAAQA,GAAK,GAAKA,EAAIA,EAAI,IAEtE6M,YAAa,SAAqB7M,GAChC,OAAOA,EAAIA,EAAIA,EAAIA,GAErB8M,aAAc,SAAsB9M,GAClC,SAAUA,GAAK,GAAKA,EAAIA,EAAIA,EAAI,IAElC+M,eAAgB,SAAwB/M,GACtC,OAAQA,GAAK,IAAO,EAAI,GAAMA,EAAIA,EAAIA,EAAIA,GAAK,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAI,IAE/EgN,YAAa,SAAqBhN,GAChC,OAAOA,EAAIA,EAAIA,EAAIA,EAAIA,GAEzBiN,aAAc,SAAsBjN,GAClC,OAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,GAEpCkN,eAAgB,SAAwBlN,GACtC,OAAQA,GAAK,IAAO,EAAI,GAAMA,EAAIA,EAAIA,EAAIA,EAAIA,EAAI,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,IAEtFmN,WAAY,SAAoBnN,GAC9B,OAAgC,EAAxB8I,KAAKsE,IAAIpN,EAAIoJ,IAEvBiE,YAAa,SAAqBrN,GAChC,OAAO8I,KAAKqD,IAAInM,EAAIoJ,IAEtBkE,cAAe,SAAuBtN,GACpC,OAAQ,IAAO8I,KAAKsE,IAAIvE,EAAK7I,GAAK,IAEpCuN,WAAY,SAAoBvN,GAC9B,OAAa,IAANA,EAAU,EAAI8I,KAAKiB,IAAI,EAAG,IAAM/J,EAAI,KAE7CwN,YAAa,SAAqBxN,GAChC,OAAa,IAANA,EAAU,EAA4B,EAAvB8I,KAAKiB,IAAI,GAAI,GAAK/J,IAE1CyN,cAAe,SAAuBzN,GACpC,OAAOiM,GAAOjM,GAAKA,EAAIA,EAAI,GAAM,GAAM8I,KAAKiB,IAAI,EAAG,IAAU,EAAJ/J,EAAQ,IAAM,IAAyC,EAAjC8I,KAAKiB,IAAI,GAAI,IAAU,EAAJ/J,EAAQ,MAE5G0N,WAAY,SAAoB1N,GAC9B,OAAOA,GAAK,EAAIA,IAAM8I,KAAKsC,KAAK,EAAIpL,EAAIA,GAAK,IAE/C2N,YAAa,SAAqB3N,GAChC,OAAO8I,KAAKsC,KAAK,GAAKpL,GAAK,GAAKA,IAElC4N,cAAe,SAAuB5N,GACpC,OAAQA,GAAK,IAAO,GAAK,IAAO8I,KAAKsC,KAAK,EAAIpL,EAAIA,GAAK,GAAK,IAAO8I,KAAKsC,KAAK,GAAKpL,GAAK,GAAKA,GAAK,IAEnG6N,cAAe,SAAuB7N,GACpC,OAAOiM,GAAOjM,GAAKA,EAAIkM,GAAUlM,EAAG,KAAO,KAE7C8N,eAAgB,SAAwB9N,GACtC,OAAOiM,GAAOjM,GAAKA,EAAIoM,GAAWpM,EAAG,KAAO,KAE9C+N,iBAAkB,SAA0B/N,GAC1C,IAAIa,EAAI,MAER,OAAOoL,GAAOjM,GAAKA,EAAIA,EAAI,GAAM,GAAMkM,GAAc,EAAJlM,EAAOa,EADhD,KACwD,GAAM,GAAMuL,GAAe,EAAJpM,EAAQ,EAAGa,EAD1F,MAGVmN,WAAY,SAAoBhO,GAC9B,IAAIa,EAAI,QACR,OAAOb,EAAIA,IAAMa,EAAI,GAAKb,EAAIa,IAEhCoN,YAAa,SAAqBjO,GAChC,IAAIa,EAAI,QACR,OAAQb,GAAK,GAAKA,IAAMa,EAAI,GAAKb,EAAIa,GAAK,GAE5CqN,cAAe,SAAuBlO,GACpC,IAAIa,EAAI,QAER,OAAKb,GAAK,IAAO,EACDA,EAAIA,IAAqB,GAAda,GAAK,QAAcb,EAAIa,GAAzC,GAGF,KAAQb,GAAK,GAAKA,IAAqB,GAAda,GAAK,QAAcb,EAAIa,GAAK,IAE9DsN,aAAc,SAAsBnO,GAClC,OAAO,EAAIqM,GAAQ+B,cAAc,EAAIpO,IAEvCoO,cAAe,SAAuBpO,GACpC,IAAId,EAAI,OACJE,EAAI,KAER,OAAIY,EAAI,EAAIZ,EACHF,EAAIc,EAAIA,EAGbA,EAAI,EAAIZ,EACHF,GAAKc,GAAK,IAAMZ,GAAKY,EAAI,IAG9BA,EAAI,IAAMZ,EACLF,GAAKc,GAAK,KAAOZ,GAAKY,EAAI,MAG5Bd,GAAKc,GAAK,MAAQZ,GAAKY,EAAI,SAEpCqO,gBAAiB,SAAyBrO,GACxC,OAAOA,EAAI,GAAoC,GAA9BqM,GAAQ8B,aAAiB,EAAJnO,GAAkD,GAAnCqM,GAAQ+B,cAAkB,EAAJpO,EAAQ,GAAW,KAU9FqH,GAAM,CACR,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACHiH,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACH3L,EAAG,GACHuI,EAAG,GACHC,EAAG,GACHpM,EAAG,GACHC,EAAG,GACH6D,EAAG,GACHE,EAAG,IAEDwL,GAAM,mBAENC,GAAK,SAAYrD,GACnB,OAAOoD,GAAQ,GAAJpD,IAGTsD,GAAK,SAAYtD,GACnB,OAAOoD,IAAS,IAAJpD,IAAa,GAAKoD,GAAQ,GAAJpD,IAGhCuD,GAAK,SAAYvD,GACnB,OAAY,IAAJA,IAAa,KAAW,GAAJA,IAgC9B,SAASwD,GAAWC,GAClB,IAAI7L,EA9BN,SAAiB6L,GACf,OAAOF,GAAGE,EAAEpP,IAAMkP,GAAGE,EAAEC,IAAMH,GAAGE,EAAEzD,IAAMuD,GAAGE,EAAE1D,GA6BrC4D,CAAQF,GAAKJ,GAAKC,GAC1B,OAAOG,EAAI,IAAM7L,EAAE6L,EAAEpP,GAAKuD,EAAE6L,EAAEC,GAAK9L,EAAE6L,EAAEzD,IAAMyD,EAAE1D,EAAI,IAAMnI,EAAE6L,EAAE1D,GAAK,IAAM0D,EAG1E,SAAS,GAAMA,GACb,OAAOA,EAAI,GAAM,EAGnB,IAAIG,GAAM,SAAaH,EAAGjQ,EAAGqQ,GAC3B,OAAOtG,KAAK6B,IAAI7B,KAAK4B,IAAIsE,EAAGI,GAAIrQ,IAGlC,SAASsQ,GAAIL,GACX,OAAOG,GAAI,GAAU,KAAJH,GAAW,EAAG,KAGjC,SAASM,GAAIN,GACX,OAAOG,GAAI,GAAU,IAAJH,GAAU,EAAG,KAGhC,SAASO,GAAIP,GACX,OAAOG,GAAI,GAAMH,EAAI,MAAQ,IAAK,EAAG,GAGvC,SAASQ,GAAIR,GACX,OAAOG,GAAI,GAAU,IAAJH,GAAU,EAAG,KAGhC,IAAIS,GAAS,uGAkCb,IAAIC,GAAS,+GAEb,SAASC,GAASP,EAAGvO,EAAG9B,GACtB,IAAIuM,EAAIzK,EAAIiI,KAAK4B,IAAI3L,EAAG,EAAIA,GAExBoE,EAAI,SAAW5C,GACjB,IAAIgH,EAAI1C,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,IAAMtE,EAAI6O,EAAI,IAAM,GAC3F,OAAOrQ,EAAIuM,EAAIxC,KAAK6B,IAAI7B,KAAK4B,IAAInD,EAAI,EAAG,EAAIA,EAAG,IAAK,IAGtD,MAAO,CAACpE,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAGxB,SAAS0M,GAAST,EAAGvO,EAAGmO,GACtB,IAAI7L,EAAI,SAAW5C,GACjB,IAAIgH,EAAI1C,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,IAAMtE,EAAI6O,EAAI,IAAM,EAC3F,OAAOJ,EAAIA,EAAInO,EAAIiI,KAAK6B,IAAI7B,KAAK4B,IAAInD,EAAG,EAAIA,EAAG,GAAI,IAGrD,MAAO,CAACpE,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAGxB,SAAS2M,GAASV,EAAGW,EAAGxE,GACtB,IACIzM,EADAkR,EAAML,GAASP,EAAG,EAAG,IASzB,IANIW,EAAIxE,EAAI,IAEVwE,GADAjR,EAAI,GAAKiR,EAAIxE,GAEbA,GAAKzM,GAGFA,EAAI,EAAGA,EAAI,EAAGA,IACjBkR,EAAIlR,IAAM,EAAIiR,EAAIxE,EAClByE,EAAIlR,IAAMiR,EAGZ,OAAOC,EAGT,SAASC,GAAQjB,GACf,IAOII,EAAGvO,EAAGzB,EANNQ,EAAIoP,EAAEpP,EADE,IAERqP,EAAID,EAAEC,EAFE,IAGR1D,EAAIyD,EAAEzD,EAHE,IAIRZ,EAAM7B,KAAK6B,IAAI/K,EAAGqP,EAAG1D,GACrBb,EAAM5B,KAAK4B,IAAI9K,EAAGqP,EAAG1D,GACrBxM,GAAK4L,EAAMD,GAAO,EAUtB,OAPIC,IAAQD,IACVtL,EAAIuL,EAAMD,EACV7J,EAAI9B,EAAI,GAAMK,GAAK,EAAIuL,EAAMD,GAAOtL,GAAKuL,EAAMD,GAE/C0E,EAAQ,IADRA,EAAIzE,IAAQ/K,GAAKqP,EAAI1D,GAAKnM,GAAK6P,EAAI1D,EAAI,EAAI,GAAKZ,IAAQsE,GAAK1D,EAAI3L,GAAKR,EAAI,GAAKQ,EAAIqP,GAAK7P,EAAI,GAC/E,IAGR,CAAK,EAAJgQ,EAAOvO,GAAK,EAAG9B,GAGzB,SAASmR,GAAM/M,EAAGmI,EAAGC,EAAGpM,GACtB,OAAQ6B,MAAMC,QAAQqK,GAAKnI,EAAEmI,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAMnI,EAAEmI,EAAGC,EAAGpM,IAAIkI,IAAIiI,IAGnE,SAASa,GAAQf,EAAGvO,EAAG9B,GACrB,OAAOmR,GAAMP,GAAUP,EAAGvO,EAAG9B,GAW/B,SAASqR,GAAIhB,GACX,OAAQA,EAAI,IAAM,KAAO,IAG3B,SAASiB,GAAS7H,GAChB,IAEIwG,EAFA9P,EAAIwQ,GAAOY,KAAK9H,GAChB8C,EAAI,IAGR,GAAKpM,EAAL,CAIIA,EAAE,KAAO8P,IACX1D,EAAIpM,EAAE,GAAKmQ,IAAKnQ,EAAE,IAAMoQ,IAAKpQ,EAAE,KAGjC,IAAIkQ,EAAIgB,IAAKlR,EAAE,IACXqR,GAAMrR,EAAE,GAAK,IACbsR,GAAMtR,EAAE,GAAK,IAUjB,MAAO,CACLU,GARAoP,EADW,QAAT9P,EAAE,GA7BR,SAAiBkQ,EAAGW,EAAGxE,GACrB,OAAO2E,GAAMJ,GAAUV,EAAGW,EAAGxE,GA6BvBkF,CAAQrB,EAAGmB,EAAIC,GACD,QAATtR,EAAE,GA3Bf,SAAiBkQ,EAAGvO,EAAGmO,GACrB,OAAOkB,GAAML,GAAUT,EAAGvO,EAAGmO,GA2BvB0B,CAAQtB,EAAGmB,EAAIC,GAEfL,GAAQf,EAAGmB,EAAIC,IAId,GACLvB,EAAGD,EAAE,GACLzD,EAAGyD,EAAE,GACL1D,EAAGA,IAyBP,IAyMIqF,GAzMAC,GAAQ,CACVxG,EAAG,OACHyG,EAAG,QACHC,EAAG,KACHC,EAAG,MACHC,EAAG,KACHC,EAAG,SACHC,EAAG,QACH5C,EAAG,KACH6C,EAAG,KACHC,EAAG,KACH7C,EAAG,KACHC,EAAG,QACHC,EAAG,QACH4C,EAAG,KACHC,EAAG,WACH5C,EAAG,KACH6C,EAAG,KACHC,EAAG,KACHC,EAAG,KACHC,EAAG,KACHC,EAAG,QACH5O,EAAG,KACH6O,EAAG,KACHC,EAAG,OACHC,EAAG,KACHC,EAAG,QACHC,EAAG,MAED,GAAQ,CACVC,OAAQ,SACRC,YAAa,SACbC,KAAM,OACNC,UAAW,SACXC,KAAM,SACNC,MAAO,SACPC,OAAQ,SACRC,MAAO,IACPC,aAAc,SACdC,GAAI,KACJC,QAAS,SACTC,KAAM,SACNC,UAAW,SACXC,OAAQ,SACRC,SAAU,SACVC,QAAS,SACTC,IAAK,SACLC,YAAa,SACbC,QAAS,SACTC,QAAS,SACTC,KAAM,OACNC,IAAK,KACLC,MAAO,OACPC,QAAS,SACTC,KAAM,SACNC,KAAM,OACNC,KAAM,SACNC,OAAQ,SACRC,QAAS,SACTC,SAAU,SACVC,OAAQ,SACRC,MAAO,SACPC,IAAK,SACLC,OAAQ,SACRC,OAAQ,SACRC,KAAM,SACNC,MAAO,SACPC,MAAO,SACPC,IAAK,OACLC,OAAQ,SACRC,OAAQ,SACRC,SAAU,OACVC,OAAQ,SACRC,OAAQ,SACRC,SAAU,SACVC,SAAU,SACVC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,IAAK,SACLC,OAAQ,SACRC,IAAK,SACLC,IAAK,OACLC,MAAO,SACPC,IAAK,SACLC,QAAS,SACTC,OAAQ,SACRC,QAAS,SACTC,MAAO,SACPC,KAAM,SACNC,MAAO,SACPC,OAAQ,SACRC,UAAW,SACXC,QAAS,SACTC,WAAY,SACZC,IAAK,SACLC,KAAM,SACNC,MAAO,SACPC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,QAAS,SACTC,IAAK,SACLC,KAAM,OACNC,QAAS,SACTC,IAAK,SACLC,OAAQ,SACRC,MAAO,SACPC,WAAY,SACZC,IAAK,KACLC,MAAO,SACPC,OAAQ,SACRC,OAAQ,SACRC,KAAM,SACNC,UAAW,OACXC,IAAK,SACLC,SAAU,SACVC,WAAY,SACZC,QAAS,SACTC,SAAU,SACVC,QAAS,SACTC,WAAY,SACZC,KAAM,KACNC,OAAQ,SACRC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,QAAS,SACTC,KAAM,SACNC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,WAAY,SACZC,UAAW,SACXC,QAAS,SACTC,KAAM,SACNC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,YAAa,SACbC,GAAI,SACJC,SAAU,SACVC,MAAO,SACPC,UAAW,SACXC,MAAO,SACPC,UAAW,SACXC,MAAO,SACPC,QAAS,SACTC,MAAO,SACPC,OAAQ,SACRC,MAAO,SACPC,IAAK,SACLC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,SAAU,OACVC,OAAQ,SACRC,IAAK,SACLC,IAAK,OACLC,MAAO,SACPC,OAAQ,SACRC,GAAI,SACJC,MAAO,SACPC,IAAK,SACLC,KAAM,SACNC,UAAW,SACXC,GAAI,SACJC,MAAO,UA0BT,SAASC,GAAU7S,GACZmI,MACHA,GAzBJ,WACE,IAGI7R,EAAGwc,EAAG/T,EAAGgU,EAAIC,EAHbC,EAAW,GACX/U,EAAOlH,OAAOkH,KAAK,IACnBgV,EAAQlc,OAAOkH,KAAKkK,IAGxB,IAAK9R,EAAI,EAAGA,EAAI4H,EAAKnE,OAAQzD,IAAK,CAGhC,IAFAyc,EAAKC,EAAK9U,EAAK5H,GAEVwc,EAAI,EAAGA,EAAII,EAAMnZ,OAAQ+Y,IAC5B/T,EAAImU,EAAMJ,GACVE,EAAKA,EAAGG,QAAQpU,EAAGqJ,GAAMrJ,IAG3BA,EAAIqU,SAAS,GAAML,GAAK,IACxBE,EAASD,GAAM,CAACjU,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,GAGjD,OAAOkU,EAOKI,IACFC,YAAc,CAAC,EAAG,EAAG,EAAG,IAGlC,IAAIxQ,EAAIqF,GAAQnI,EAAIuT,eACpB,OAAOzQ,GAAK,CACV1L,EAAG0L,EAAE,GACL2D,EAAG3D,EAAE,GACLC,EAAGD,EAAE,GACLA,EAAgB,IAAbA,EAAE/I,OAAe+I,EAAE,GAAK,KAI/B,SAAS0Q,GAAOhN,EAAGlQ,EAAGmd,GACpB,GAAIjN,EAAG,CACL,IAAIkN,EAAMjM,GAAQjB,GAClBkN,EAAIpd,GAAKgK,KAAK6B,IAAI,EAAG7B,KAAK4B,IAAIwR,EAAIpd,GAAKod,EAAIpd,GAAKmd,EAAa,IAANnd,EAAU,IAAM,IACvEod,EAAM/L,GAAQ+L,GACdlN,EAAEpP,EAAIsc,EAAI,GACVlN,EAAEC,EAAIiN,EAAI,GACVlN,EAAEzD,EAAI2Q,EAAI,IAId,SAASC,GAAMnN,EAAGoN,GAChB,OAAOpN,EAAIxP,OAAO6c,OAAOD,GAAS,GAAIpN,GAAKA,EAG7C,SAASsN,GAAWC,GAClB,IAAIvN,EAAI,CACNpP,EAAG,EACHqP,EAAG,EACH1D,EAAG,EACHD,EAAG,KA0BL,OAvBItK,MAAMC,QAAQsb,GACZA,EAAMha,QAAU,IAClByM,EAAI,CACFpP,EAAG2c,EAAM,GACTtN,EAAGsN,EAAM,GACThR,EAAGgR,EAAM,GACTjR,EAAG,KAGDiR,EAAMha,OAAS,IACjByM,EAAE1D,EAAIgE,GAAIiN,EAAM,OAIpBvN,EAAImN,GAAMI,EAAO,CACf3c,EAAG,EACHqP,EAAG,EACH1D,EAAG,EACHD,EAAG,KAEHA,EAAIgE,GAAIN,EAAE1D,GAGP0D,EAGT,SAASwN,GAAchU,GACrB,MAAsB,MAAlBA,EAAIC,OAAO,GAlbjB,SAAkBD,GAChB,IAEI5I,EAAGqP,EAAG1D,EAFNrM,EAAIuQ,GAAOa,KAAK9H,GAChB8C,EAAI,IAGR,GAAKpM,EAAL,CAIA,GAAIA,EAAE,KAAOU,EAAG,CACd,IAAIoP,GAAK9P,EAAE,GACXoM,EAAI,KAAOpM,EAAE,GAAKmQ,GAAIL,GAAS,IAAJA,GAS7B,OANApP,GAAKV,EAAE,GACP+P,GAAK/P,EAAE,GACPqM,GAAKrM,EAAE,GAIA,CACLU,EAJFA,EAAI,KAAOV,EAAE,GAAKmQ,GAAIzP,GAAKA,GAKzBqP,EAJFA,EAAI,KAAO/P,EAAE,GAAKmQ,GAAIJ,GAAKA,GAKzB1D,EAJFA,EAAI,KAAOrM,EAAE,GAAKmQ,GAAI9D,GAAKA,GAKzBD,EAAGA,IA2ZImR,CAASjU,GAGX6H,GAAS7H,GAGlB,IAAIkU,GAAqB,WACvB,SAASA,EAAMH,GAGb,GAFAta,EAAgB0a,KAAMD,GAElBH,aAAiBG,EACnB,OAAOH,EAGT,IAEIvN,EA3fUxG,EAEZoU,EADA7Y,EAwfE2B,EAAO3D,EAAQwa,GAIN,WAAT7W,EACFsJ,EAAIsN,GAAWC,GACG,WAAT7W,IA9fT3B,GADYyE,EAggBC+T,GA/fHha,OAGC,MAAXiG,EAAI,KACM,IAARzE,GAAqB,IAARA,EACf6Y,EAAM,CACJhd,EAAG,IAAoB,GAAdyH,GAAImB,EAAI,IACjByG,EAAG,IAAoB,GAAd5H,GAAImB,EAAI,IACjB+C,EAAG,IAAoB,GAAdlE,GAAImB,EAAI,IACjB8C,EAAW,IAARvH,EAA0B,GAAdsD,GAAImB,EAAI,IAAW,KAEnB,IAARzE,GAAqB,IAARA,IACtB6Y,EAAM,CACJhd,EAAGyH,GAAImB,EAAI,KAAO,EAAInB,GAAImB,EAAI,IAC9ByG,EAAG5H,GAAImB,EAAI,KAAO,EAAInB,GAAImB,EAAI,IAC9B+C,EAAGlE,GAAImB,EAAI,KAAO,EAAInB,GAAImB,EAAI,IAC9B8C,EAAW,IAARvH,EAAYsD,GAAImB,EAAI,KAAO,EAAInB,GAAImB,EAAI,IAAM,OA+elDwG,EA1eG4N,GA0eoBvB,GAAUkB,IAAUC,GAAcD,IAG3DI,KAAKE,KAAO7N,EACZ2N,KAAKG,SAAW9N,EAuIlB,OApIAvM,EAAaia,EAAO,CAAC,CACnBrc,IAAK,QACLV,IAAK,WACH,OAAOgd,KAAKG,SAEb,CACDzc,IAAK,MACLV,IAAK,WACH,IAAIqP,EAAImN,GAAMQ,KAAKE,MAMnB,OAJI7N,IACFA,EAAE1D,EAAIiE,GAAIP,EAAE1D,IAGP0D,GAET+N,IAAK,SAAanb,GAChB+a,KAAKE,KAAOP,GAAW1a,KAExB,CACDvB,IAAK,YACLN,MAAO,WACL,OAAO4c,KAAKG,QAzcE9N,EAyckB2N,KAAKE,QAxc5B7N,EAAE1D,EAAI,IAAM,QAAQ0R,OAAOhO,EAAEpP,EAAG,MAAMod,OAAOhO,EAAEC,EAAG,MAAM+N,OAAOhO,EAAEzD,EAAG,MAAMyR,OAAOzN,GAAIP,EAAE1D,GAAI,KAAO,OAAO0R,OAAOhO,EAAEpP,EAAG,MAAMod,OAAOhO,EAAEC,EAAG,MAAM+N,OAAOhO,EAAEzD,EAAG,MAwcrHoR,KAAKE,KAzcxD,IAAoB7N,IA2cf,CACD3O,IAAK,YACLN,MAAO,WACL,OAAO4c,KAAKG,OAAS/N,GAAW4N,KAAKE,MAAQF,KAAKE,OAEnD,CACDxc,IAAK,YACLN,MAAO,WACL,OAAO4c,KAAKG,OArVlB,SAAoB9N,GAClB,GAAKA,EAAL,CAIA,IAAI1D,EAAI2E,GAAQjB,GACZI,EAAI9D,EAAE,GACNzK,EAAI2O,GAAIlE,EAAE,IACVvM,EAAIyQ,GAAIlE,EAAE,IACd,OAAO0D,EAAE1D,EAAI,IAAM,QAAQ0R,OAAO5N,EAAG,MAAM4N,OAAOnc,EAAG,OAAOmc,OAAOje,EAAG,OAAOie,OAAOzN,GAAIP,EAAE1D,GAAI,KAAO,OAAO0R,OAAO5N,EAAG,MAAM4N,OAAOnc,EAAG,OAAOmc,OAAOje,EAAG,OA4U9Hke,CAAWN,KAAKE,MAAQF,KAAKE,OAEnD,CACDxc,IAAK,MACLN,MAAO,SAAamd,EAAOC,GACzB,IAAIC,EAAKT,KAET,GAAIO,EAAO,CACT,IAEIG,EAFAC,EAAKF,EAAGpN,IACRuN,EAAKL,EAAMlN,IAEXpP,EAAIuc,IAAWE,EAAK,GAAMF,EAC1BpN,EAAI,EAAInP,EAAI,EACZ0K,EAAIgS,EAAGhS,EAAIiS,EAAGjS,EACdkS,IAAOzN,EAAIzE,KAAO,EAAIyE,GAAKA,EAAIzE,IAAM,EAAIyE,EAAIzE,IAAM,GAAK,EAC5D+R,EAAK,EAAIG,EACTF,EAAG1d,EAAI,IAAO4d,EAAKF,EAAG1d,EAAIyd,EAAKE,EAAG3d,EAAI,GACtC0d,EAAGrO,EAAI,IAAOuO,EAAKF,EAAGrO,EAAIoO,EAAKE,EAAGtO,EAAI,GACtCqO,EAAG/R,EAAI,IAAOiS,EAAKF,EAAG/R,EAAI8R,EAAKE,EAAGhS,EAAI,GACtC+R,EAAGhS,EAAI1K,EAAI0c,EAAGhS,GAAK,EAAI1K,GAAK2c,EAAGjS,EAC/B8R,EAAGpN,IAAMsN,EAGX,OAAOF,IAER,CACD/c,IAAK,QACLN,MAAO,WACL,OAAO,IAAI2c,EAAMC,KAAK3M,OAEvB,CACD3P,IAAK,QACLN,MAAO,SAAeuL,GAEpB,OADAqR,KAAKE,KAAKvR,EAAIgE,GAAIhE,GACXqR,OAER,CACDtc,IAAK,UACLN,MAAO,SAAiBkc,GAGtB,OAFUU,KAAKE,KACXvR,GAAK,EAAI2Q,EACNU,OAER,CACDtc,IAAK,YACLN,MAAO,WACL,IAAIiQ,EAAM2M,KAAKE,KACXY,EAAM,GAAc,GAARzN,EAAIpQ,EAAkB,IAARoQ,EAAIf,EAAmB,IAARe,EAAIzE,GAEjD,OADAyE,EAAIpQ,EAAIoQ,EAAIf,EAAIe,EAAIzE,EAAIkS,EACjBd,OAER,CACDtc,IAAK,UACLN,MAAO,SAAiBkc,GAGtB,OAFUU,KAAKE,KACXvR,GAAK,EAAI2Q,EACNU,OAER,CACDtc,IAAK,SACLN,MAAO,WACL,IAAIiP,EAAI2N,KAAKE,KAIb,OAHA7N,EAAEpP,EAAI,IAAMoP,EAAEpP,EACdoP,EAAEC,EAAI,IAAMD,EAAEC,EACdD,EAAEzD,EAAI,IAAMyD,EAAEzD,EACPoR,OAER,CACDtc,IAAK,UACLN,MAAO,SAAiBkc,GAEtB,OADAD,GAAOW,KAAKE,KAAM,EAAGZ,GACdU,OAER,CACDtc,IAAK,SACLN,MAAO,SAAgBkc,GAErB,OADAD,GAAOW,KAAKE,KAAM,GAAIZ,GACfU,OAER,CACDtc,IAAK,WACLN,MAAO,SAAkBkc,GAEvB,OADAD,GAAOW,KAAKE,KAAM,EAAGZ,GACdU,OAER,CACDtc,IAAK,aACLN,MAAO,SAAoBkc,GAEzB,OADAD,GAAOW,KAAKE,KAAM,GAAIZ,GACfU,OAER,CACDtc,IAAK,SACLN,MAAO,SAAgB2d,GAGrB,OA9bN,SAAiB1O,EAAG0O,GAClB,IAAItO,EAAIa,GAAQjB,GAChBI,EAAE,GAAKgB,GAAIhB,EAAE,GAAKsO,GAClBtO,EAAIe,GAAQf,GACZJ,EAAEpP,EAAIwP,EAAE,GACRJ,EAAEC,EAAIG,EAAE,GACRJ,EAAEzD,EAAI6D,EAAE,GAsbJuO,CAAQhB,KAAKE,KAAMa,GAEZf,SAIJD,EA1JgB,GA6JzB,SAASkB,GAAUrB,GACjB,OAAO,IAAIG,GAAMH,GAGnB,IAAIsB,GAAsB,SAA6B9d,GACrD,OAAOA,aAAiB+d,gBAAkB/d,aAAiBge,eAG7D,SAAS,GAAMhe,GACb,OAAO8d,GAAoB9d,GAASA,EAAQ6d,GAAU7d,GAGxD,SAASie,GAAcje,GACrB,OAAO8d,GAAoB9d,GAASA,EAAQ6d,GAAU7d,GAAOke,SAAS,IAAKC,OAAO,IAAKC,YAGzF,IAAIC,GAAY5e,OAAOY,OAAO,MAC1B,GAAcZ,OAAOY,OAAO,MAEhC,SAASie,GAAWC,EAAMje,GACxB,IAAKA,EACH,OAAOie,EAKT,IAFA,IAAI5X,EAAOrG,EAAIke,MAAM,KAEZzf,EAAI,EAAGyB,EAAImG,EAAKnE,OAAQzD,EAAIyB,IAAKzB,EAAG,CAC3C,IAAIyI,EAAIb,EAAK5H,GACbwf,EAAOA,EAAK/W,KAAO+W,EAAK/W,GAAK/H,OAAOY,OAAO,OAG7C,OAAOke,EAGT,SAASE,GAAKC,EAAMC,EAAOC,GACzB,MAAqB,kBAAVD,EACF5W,EAAMuW,GAAWI,EAAMC,GAAQC,GAGjC7W,EAAMuW,GAAWI,EAAM,IAAKC,GAGrC,IA2GIE,GAAW,IA3Ga,WAC1B,SAASC,EAASC,GAChB7c,EAAgB0a,KAAMkC,GAEtBlC,KAAKoC,eAAYnP,EACjB+M,KAAKqC,gBAAkB,kBACvBrC,KAAKsC,YAAc,kBACnBtC,KAAKO,MAAQ,OACbP,KAAKuC,SAAW,GAEhBvC,KAAKwC,iBAAmB,SAAUC,GAChC,OAAOA,EAAQC,MAAMC,SAASC,uBAGhC5C,KAAK6C,SAAW,GAChB7C,KAAK8C,OAAS,CAAC,YAAa,WAAY,QAAS,aAAc,aAC/D9C,KAAK+C,KAAO,CACVC,OAAQ,qDACRC,KAAM,GACNC,MAAO,SACPC,WAAY,IACZ3C,OAAQ,MAEVR,KAAKoD,MAAQ,GAEbpD,KAAKqD,qBAAuB,SAAUC,EAAKtY,GACzC,OAAOqW,GAAcrW,EAAQqX,kBAG/BrC,KAAKuD,iBAAmB,SAAUD,EAAKtY,GACrC,OAAOqW,GAAcrW,EAAQsX,cAG/BtC,KAAKwD,WAAa,SAAUF,EAAKtY,GAC/B,OAAOqW,GAAcrW,EAAQuV,QAG/BP,KAAKyD,UAAY,IACjBzD,KAAK0D,YAAc,CACjBpgB,KAAM,UACNqgB,WAAW,GAEb3D,KAAK4D,qBAAsB,EAC3B5D,KAAK6D,QAAU,KACf7D,KAAK8D,QAAU,KACf9D,KAAK+D,SAAU,EACf/D,KAAKgE,QAAU,GACfhE,KAAKiE,YAAa,EAClBjE,KAAKkE,WAAQjR,EACb+M,KAAKmE,OAAS,GACdnE,KAAKoE,UAAW,EAChBpE,KAAKqE,SAASlC,GAqDhB,OAlDArc,EAAaoc,EAAU,CAAC,CACtBxe,IAAK,MACLN,MAAO,SAAa2e,EAAOC,GACzB,OAAOH,GAAK7B,KAAM+B,EAAOC,KAE1B,CACDte,IAAK,MACLN,MAAO,SAAa2e,GAClB,OAAOL,GAAW1B,KAAM+B,KAEzB,CACDre,IAAK,WACLN,MAAO,SAAkB2e,EAAOC,GAC9B,OAAOH,GAAK,GAAaE,EAAOC,KAEjC,CACDte,IAAK,WACLN,MAAO,SAAkB2e,EAAOC,GAC9B,OAAOH,GAAKJ,GAAWM,EAAOC,KAE/B,CACDte,IAAK,QACLN,MAAO,SAAe2e,EAAOrf,EAAM4hB,EAAaC,GAC9C,IAAIC,EAEAC,EAAc/C,GAAW1B,KAAM+B,GAC/B2C,EAAoBhD,GAAW1B,KAAMsE,GACrCK,EAAc,IAAMjiB,EACxBG,OAAO+hB,iBAAiBH,GAA0Czf,EAA5Bwf,EAAwB,GAA2CG,EAAa,CACpHvhB,MAAOqhB,EAAY/hB,GACnByC,UAAU,IACRH,EAAgBwf,EAAuB9hB,EAAM,CAC/CK,YAAY,EACZC,IAAK,WACH,IAAI6hB,EAAQ7E,KAAK2E,GACbjf,EAASgf,EAAkBH,GAE/B,OAAItb,EAAS4b,GACJhiB,OAAO6c,OAAO,GAAIha,EAAQmf,GAG5Btb,EAAesb,EAAOnf,IAE/B0a,IAAK,SAAahd,GAChB4c,KAAK2E,GAAevhB,KAEpBohB,QAIDtC,EAxGmB,GA2Gb,CAAa,CAC1B4C,YAAa,SAAqBpiB,GAChC,OAAQA,EAAKqiB,WAAW,OAE1BC,WAAY,SAAoBtiB,GAC9B,MAAgB,WAATA,GAET0gB,MAAO,CACL6B,UAAW,eAEbvB,YAAa,CACXoB,aAAa,EACbE,YAAY,KAYhB,SAASE,GAAa5B,EAAK6B,EAAMC,EAAIC,EAASC,GAC5C,IAAIC,EAAYJ,EAAKG,GAWrB,OATKC,IACHA,EAAYJ,EAAKG,GAAUhC,EAAIkC,YAAYF,GAAQG,MACnDL,EAAGM,KAAKJ,IAGNC,EAAYF,IACdA,EAAUE,GAGLF,EAGT,SAASM,GAAarC,EAAKP,EAAM6C,EAAeC,GAE9C,IAAIV,GADJU,EAAQA,GAAS,IACAV,KAAOU,EAAMV,MAAQ,GAClCC,EAAKS,EAAMC,eAAiBD,EAAMC,gBAAkB,GAEpDD,EAAM9C,OAASA,IACjBoC,EAAOU,EAAMV,KAAO,GACpBC,EAAKS,EAAMC,eAAiB,GAC5BD,EAAM9C,KAAOA,GAGfO,EAAIyC,OACJzC,EAAIP,KAAOA,EACX,IAEI5gB,EAAGwc,EAAGqH,EAAMC,EAAOC,EAFnBb,EAAU,EACVlb,EAAOyb,EAAchgB,OAGzB,IAAKzD,EAAI,EAAGA,EAAIgI,EAAMhI,IAGpB,QAAc8Q,KAFdgT,EAAQL,EAAczjB,KAEe,OAAV8jB,IAAqC,IAAnB3hB,EAAQ2hB,GACnDZ,EAAUH,GAAa5B,EAAK6B,EAAMC,EAAIC,EAASY,QAC1C,GAAI3hB,EAAQ2hB,GACjB,IAAKtH,EAAI,EAAGqH,EAAOC,EAAMrgB,OAAQ+Y,EAAIqH,EAAMrH,SAGrB1L,KAFpBiT,EAAcD,EAAMtH,KAE6B,OAAhBuH,GAAyB5hB,EAAQ4hB,KAChEb,EAAUH,GAAa5B,EAAK6B,EAAMC,EAAIC,EAASa,IAMvD5C,EAAI6C,UACJ,IAAIC,EAAQhB,EAAGxf,OAAS,EAExB,GAAIwgB,EAAQR,EAAchgB,OAAQ,CAChC,IAAKzD,EAAI,EAAGA,EAAIikB,EAAOjkB,WACdgjB,EAAKC,EAAGjjB,IAGjBijB,EAAGiB,OAAO,EAAGD,GAGf,OAAOf,EAGT,SAASiB,GAAY5D,EAAO6D,EAAOd,GACjC,IAAIjD,EAAmBE,EAAM8D,wBACzBC,EAAsB,IAAVhB,EAActZ,KAAK6B,IAAIyX,EAAQ,EAAG,IAAO,EACzD,OAAOtZ,KAAKc,OAAOsZ,EAAQE,GAAajE,GAAoBA,EAAmBiE,EAGjF,SAASC,GAAYC,EAAQrD,IAC3BA,EAAMA,GAAOqD,EAAOC,WAAW,OAC3Bb,OACJzC,EAAIuD,iBACJvD,EAAIwD,UAAU,EAAG,EAAGH,EAAOlB,MAAOkB,EAAOI,QACzCzD,EAAI6C,UAGN,SAASa,GAAU1D,EAAKtY,EAASyC,EAAGC,GAClC,IAAI3E,EAAMke,EAASC,EAASjE,EAAMkE,EAC9BjE,EAAQlY,EAAQoc,WAChBC,EAAWrc,EAAQqc,SACnBC,EAAStc,EAAQsc,OACjBC,GAAOF,GAAY,GAAK7a,EAE5B,GAAI0W,GAA4B,WAAnB9d,EAAQ8d,KAGN,+BAFbna,EAAOma,EAAMjc,aAEwC,+BAAT8B,GAM1C,OALAua,EAAIyC,OACJzC,EAAIkE,UAAU/Z,EAAGC,GACjB4V,EAAImE,OAAOF,GACXjE,EAAIoE,UAAUxE,GAAQA,EAAMuC,MAAQ,GAAIvC,EAAM6D,OAAS,EAAG7D,EAAMuC,MAAOvC,EAAM6D,aAC7EzD,EAAI6C,UAKR,KAAI3Y,MAAM8Z,IAAWA,GAAU,GAA/B,CAMA,OAFAhE,EAAIqE,YAEIzE,GACN,QACEI,EAAIsE,IAAIna,EAAGC,EAAG4Z,EAAQ,EAAGlb,GACzBkX,EAAIuE,YACJ,MAEF,IAAK,WACHvE,EAAIwE,OAAOra,EAAItB,KAAKqD,IAAI+X,GAAOD,EAAQ5Z,EAAIvB,KAAKsE,IAAI8W,GAAOD,GAC3DC,GAAO5a,EACP2W,EAAIyE,OAAOta,EAAItB,KAAKqD,IAAI+X,GAAOD,EAAQ5Z,EAAIvB,KAAKsE,IAAI8W,GAAOD,GAC3DC,GAAO5a,EACP2W,EAAIyE,OAAOta,EAAItB,KAAKqD,IAAI+X,GAAOD,EAAQ5Z,EAAIvB,KAAKsE,IAAI8W,GAAOD,GAC3DhE,EAAIuE,YACJ,MAEF,IAAK,cAEH5E,EAAOqE,GADPH,EAAwB,KAATG,GAEfL,EAAU9a,KAAKsE,IAAI8W,EAAM7a,GAAcuW,EACvCiE,EAAU/a,KAAKqD,IAAI+X,EAAM7a,GAAcuW,EACvCK,EAAIsE,IAAIna,EAAIwZ,EAASvZ,EAAIwZ,EAASC,EAAcI,EAAMrb,EAAIqb,EAAM9a,GAChE6W,EAAIsE,IAAIna,EAAIyZ,EAASxZ,EAAIuZ,EAASE,EAAcI,EAAM9a,EAAS8a,GAC/DjE,EAAIsE,IAAIna,EAAIwZ,EAASvZ,EAAIwZ,EAASC,EAAcI,EAAKA,EAAM9a,GAC3D6W,EAAIsE,IAAIna,EAAIyZ,EAASxZ,EAAIuZ,EAASE,EAAcI,EAAM9a,EAAS8a,EAAMrb,GACrEoX,EAAIuE,YACJ,MAEF,IAAK,OACH,IAAKR,EAAU,CACbpE,EAAO9W,KAAK6b,QAAUV,EACtBhE,EAAI2E,KAAKxa,EAAIwV,EAAMvV,EAAIuV,EAAM,EAAIA,EAAM,EAAIA,GAC3C,MAGFsE,GAAO7a,EAET,IAAK,UACHua,EAAU9a,KAAKsE,IAAI8W,GAAOD,EAC1BJ,EAAU/a,KAAKqD,IAAI+X,GAAOD,EAC1BhE,EAAIwE,OAAOra,EAAIwZ,EAASvZ,EAAIwZ,GAC5B5D,EAAIyE,OAAOta,EAAIyZ,EAASxZ,EAAIuZ,GAC5B3D,EAAIyE,OAAOta,EAAIwZ,EAASvZ,EAAIwZ,GAC5B5D,EAAIyE,OAAOta,EAAIyZ,EAASxZ,EAAIuZ,GAC5B3D,EAAIuE,YACJ,MAEF,IAAK,WACHN,GAAO7a,EAET,IAAK,QACHua,EAAU9a,KAAKsE,IAAI8W,GAAOD,EAC1BJ,EAAU/a,KAAKqD,IAAI+X,GAAOD,EAC1BhE,EAAIwE,OAAOra,EAAIwZ,EAASvZ,EAAIwZ,GAC5B5D,EAAIyE,OAAOta,EAAIwZ,EAASvZ,EAAIwZ,GAC5B5D,EAAIwE,OAAOra,EAAIyZ,EAASxZ,EAAIuZ,GAC5B3D,EAAIyE,OAAOta,EAAIyZ,EAASxZ,EAAIuZ,GAC5B,MAEF,IAAK,OACHA,EAAU9a,KAAKsE,IAAI8W,GAAOD,EAC1BJ,EAAU/a,KAAKqD,IAAI+X,GAAOD,EAC1BhE,EAAIwE,OAAOra,EAAIwZ,EAASvZ,EAAIwZ,GAC5B5D,EAAIyE,OAAOta,EAAIwZ,EAASvZ,EAAIwZ,GAC5B5D,EAAIwE,OAAOra,EAAIyZ,EAASxZ,EAAIuZ,GAC5B3D,EAAIyE,OAAOta,EAAIyZ,EAASxZ,EAAIuZ,GAC5BM,GAAO7a,EACPua,EAAU9a,KAAKsE,IAAI8W,GAAOD,EAC1BJ,EAAU/a,KAAKqD,IAAI+X,GAAOD,EAC1BhE,EAAIwE,OAAOra,EAAIwZ,EAASvZ,EAAIwZ,GAC5B5D,EAAIyE,OAAOta,EAAIwZ,EAASvZ,EAAIwZ,GAC5B5D,EAAIwE,OAAOra,EAAIyZ,EAASxZ,EAAIuZ,GAC5B3D,EAAIyE,OAAOta,EAAIyZ,EAASxZ,EAAIuZ,GAC5B,MAEF,IAAK,OACHA,EAAU9a,KAAKsE,IAAI8W,GAAOD,EAC1BJ,EAAU/a,KAAKqD,IAAI+X,GAAOD,EAC1BhE,EAAIwE,OAAOra,EAAIwZ,EAASvZ,EAAIwZ,GAC5B5D,EAAIyE,OAAOta,EAAIwZ,EAASvZ,EAAIwZ,GAC5B,MAEF,IAAK,OACH5D,EAAIwE,OAAOra,EAAGC,GACd4V,EAAIyE,OAAOta,EAAItB,KAAKsE,IAAI8W,GAAOD,EAAQ5Z,EAAIvB,KAAKqD,IAAI+X,GAAOD,GAI/DhE,EAAI4E,OAEAld,EAAQmd,YAAc,GACxB7E,EAAI8E,UAIR,SAASC,GAAeC,EAAOC,EAAMC,GAEnC,OADAA,EAASA,GAAU,GACZF,GAASA,EAAM7a,EAAI8a,EAAKE,KAAOD,GAAUF,EAAM7a,EAAI8a,EAAKG,MAAQF,GAAUF,EAAM5a,EAAI6a,EAAKI,IAAMH,GAAUF,EAAM5a,EAAI6a,EAAKK,OAASJ,EAG1I,SAASK,GAASvF,EAAKiF,GACrBjF,EAAIyC,OACJzC,EAAIqE,YACJrE,EAAI2E,KAAKM,EAAKE,KAAMF,EAAKI,IAAKJ,EAAKG,MAAQH,EAAKE,KAAMF,EAAKK,OAASL,EAAKI,KACzErF,EAAIwF,OAGN,SAASC,GAAWzF,GAClBA,EAAI6C,UAGN,SAAS6C,GAAe1F,EAAK2F,EAAUvjB,EAAQwjB,EAAM5lB,GACnD,IAAK2lB,EACH,OAAO3F,EAAIyE,OAAOriB,EAAO+H,EAAG/H,EAAOgI,GAGrC,GAAa,WAATpK,EAAmB,CACrB,IAAI6lB,GAAYF,EAASxb,EAAI/H,EAAO+H,GAAK,EACzC6V,EAAIyE,OAAOoB,EAAUF,EAASvb,GAC9B4V,EAAIyE,OAAOoB,EAAUzjB,EAAOgI,OACV,UAATpK,MAAuB4lB,EAChC5F,EAAIyE,OAAOkB,EAASxb,EAAG/H,EAAOgI,GAE9B4V,EAAIyE,OAAOriB,EAAO+H,EAAGwb,EAASvb,GAGhC4V,EAAIyE,OAAOriB,EAAO+H,EAAG/H,EAAOgI,GAG9B,SAAS0b,GAAe9F,EAAK2F,EAAUvjB,EAAQwjB,GAC7C,IAAKD,EACH,OAAO3F,EAAIyE,OAAOriB,EAAO+H,EAAG/H,EAAOgI,GAGrC4V,EAAI+F,cAAcH,EAAOD,EAASK,KAAOL,EAASM,KAAML,EAAOD,EAASO,KAAOP,EAASQ,KAAMP,EAAOxjB,EAAO6jB,KAAO7jB,EAAO4jB,KAAMJ,EAAOxjB,EAAO+jB,KAAO/jB,EAAO8jB,KAAM9jB,EAAO+H,EAAG/H,EAAOgI,GAGrL,SAASgc,GAAWpG,EAAKqG,EAAMlc,EAAGC,EAAGqV,GACnC,IAGI5gB,EAAGynB,EAHHC,EAAO3hB,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,GAC3E4hB,EAAQxlB,EAAQqlB,GAAQA,EAAO,CAACA,GAChCvB,EAASyB,EAAKE,YAAc,GAA0B,KAArBF,EAAKG,YAM1C,IAJA1G,EAAIyC,OACJzC,EAAIP,KAAOA,EAAKuC,OAChB2E,GAAc3G,EAAKuG,GAEd1nB,EAAI,EAAGA,EAAI2nB,EAAMlkB,SAAUzD,EAC9BynB,EAAOE,EAAM3nB,GAETimB,IACEyB,EAAKG,cACP1G,EAAI4G,YAAcL,EAAKG,aAGpBlhB,EAAc+gB,EAAKE,eACtBzG,EAAI6G,UAAYN,EAAKE,aAGvBzG,EAAI8G,WAAWR,EAAMnc,EAAGC,EAAGmc,EAAKQ,WAGlC/G,EAAIgH,SAASV,EAAMnc,EAAGC,EAAGmc,EAAKQ,UAC9BE,GAAajH,EAAK7V,EAAGC,EAAGkc,EAAMC,GAC9Bnc,GAAKqV,EAAKI,WAGZG,EAAI6C,UAGN,SAAS8D,GAAc3G,EAAKuG,GACtBA,EAAKW,aACPlH,EAAIkE,UAAUqC,EAAKW,YAAY,GAAIX,EAAKW,YAAY,IAGjD1hB,EAAc+gB,EAAKxC,WACtB/D,EAAImE,OAAOoC,EAAKxC,UAGdwC,EAAKtJ,QACP+C,EAAImH,UAAYZ,EAAKtJ,OAGnBsJ,EAAKa,YACPpH,EAAIoH,UAAYb,EAAKa,WAGnBb,EAAKc,eACPrH,EAAIqH,aAAed,EAAKc,cAI5B,SAASJ,GAAajH,EAAK7V,EAAGC,EAAGkc,EAAMC,GACrC,GAAIA,EAAKe,eAAiBf,EAAKgB,UAAW,CACxC,IAAIC,EAAUxH,EAAIkC,YAAYoE,GAC1BnB,EAAOhb,EAAIqd,EAAQC,sBACnBrC,EAAQjb,EAAIqd,EAAQE,uBACpBrC,EAAMjb,EAAIod,EAAQG,wBAClBrC,EAASlb,EAAIod,EAAQI,yBACrBC,EAActB,EAAKe,eAAiBjC,EAAMC,GAAU,EAAIA,EAC5DtF,EAAI4G,YAAc5G,EAAImH,UACtBnH,EAAIqE,YACJrE,EAAI6G,UAAYN,EAAKuB,iBAAmB,EACxC9H,EAAIwE,OAAOW,EAAM0C,GACjB7H,EAAIyE,OAAOW,EAAOyC,GAClB7H,EAAI8E,UAIR,SAASiD,GAAmB/H,EAAK2E,GAC/B,IAAIxa,EAAIwa,EAAKxa,EACTC,EAAIua,EAAKva,EACT0F,EAAI6U,EAAK7U,EACTX,EAAIwV,EAAKxV,EACT6U,EAASW,EAAKX,OAClBhE,EAAIsE,IAAIna,EAAI6Z,EAAOgE,QAAS5d,EAAI4Z,EAAOgE,QAAShE,EAAOgE,SAAU7e,EAASP,GAAI,GAC9EoX,EAAIyE,OAAOta,EAAGC,EAAI+E,EAAI6U,EAAOiE,YAC7BjI,EAAIsE,IAAIna,EAAI6Z,EAAOiE,WAAY7d,EAAI+E,EAAI6U,EAAOiE,WAAYjE,EAAOiE,WAAYrf,EAAIO,GAAS,GAC1F6W,EAAIyE,OAAOta,EAAI2F,EAAIkU,EAAOkE,YAAa9d,EAAI+E,GAC3C6Q,EAAIsE,IAAIna,EAAI2F,EAAIkU,EAAOkE,YAAa9d,EAAI+E,EAAI6U,EAAOkE,YAAalE,EAAOkE,YAAa/e,EAAS,GAAG,GAChG6W,EAAIyE,OAAOta,EAAI2F,EAAG1F,EAAI4Z,EAAOmE,UAC7BnI,EAAIsE,IAAIna,EAAI2F,EAAIkU,EAAOmE,SAAU/d,EAAI4Z,EAAOmE,SAAUnE,EAAOmE,SAAU,GAAIhf,GAAS,GACpF6W,EAAIyE,OAAOta,EAAI6Z,EAAOgE,QAAS5d,GAGjC,IAAIge,GAAc,IAAIC,OAAO,wCACzBC,GAAa,IAAID,OAAO,yEAE5B,SAASE,GAAazoB,EAAO6f,GAC3B,IAAI6I,GAAW,GAAK1oB,GAAO2oB,MAAML,IAEjC,IAAKI,GAA0B,WAAfA,EAAQ,GACtB,OAAc,IAAP7I,EAKT,OAFA7f,GAAS0oB,EAAQ,GAETA,EAAQ,IACd,IAAK,KACH,OAAO1oB,EAET,IAAK,IACHA,GAAS,IAIb,OAAO6f,EAAO7f,EAOhB,SAAS4oB,GAAkB5oB,EAAOuC,GAChC,IAYIsmB,EAZAhM,EAAM,GACNiM,EAAWjjB,EAAStD,GACpBoE,EAAOmiB,EAAWrpB,OAAOkH,KAAKpE,GAASA,EACvCwmB,EAAOljB,EAAS7F,GAAS8oB,EAAW,SAAUE,GAChD,OAAO7iB,EAAenG,EAAMgpB,GAAOhpB,EAAMuC,EAAMymB,MAC7C,SAAUA,GACZ,OAAOhpB,EAAMgpB,IACX,WACF,OAAOhpB,GAGLipB,EAAapmB,EAA2B8D,GAG5C,IACE,IAAKsiB,EAAWnoB,MAAO+nB,EAASI,EAAWzoB,KAAKyC,MAAO,CACrD,IAAI+lB,EAAOH,EAAO7oB,MAClB6c,EAAImM,IAAqBD,EAAKC,IArBrB,GAuBX,MAAO3lB,GACP4lB,EAAW/lB,EAAEG,GACb,QACA4lB,EAAW7lB,IAGb,OAAOyZ,EAGT,SAASqM,GAAOlpB,GACd,OAAO4oB,GAAkB5oB,EAAO,CAC9BulB,IAAK,IACLD,MAAO,IACPE,OAAQ,IACRH,KAAM,MAIV,SAAS8D,GAAcnpB,GACrB,OAAO4oB,GAAkB5oB,EAAO,CAAC,UAAW,WAAY,aAAc,gBAGxE,SAASopB,GAAUppB,GACjB,IAAI6B,EAAMqnB,GAAOlpB,GAGjB,OAFA6B,EAAIwgB,MAAQxgB,EAAIwjB,KAAOxjB,EAAIyjB,MAC3BzjB,EAAI8hB,OAAS9hB,EAAI0jB,IAAM1jB,EAAI2jB,OACpB3jB,EAGT,SAASwnB,GAAOzhB,EAAS0hB,GACvB1hB,EAAUA,GAAW,GACrB0hB,EAAWA,GAAYzK,GAASc,KAChC,IAAIE,EAAO1Z,EAAeyB,EAAQiY,KAAMyJ,EAASzJ,MAE7B,kBAATA,IACTA,EAAOhE,SAASgE,EAAM,KAGxB,IAAIC,EAAQ3Z,EAAeyB,EAAQkY,MAAOwJ,EAASxJ,OAE/CA,KAAW,GAAKA,GAAO6I,MAAMH,MAC/Be,QAAQC,KAAK,kCAAoC1J,EAAQ,KACzDA,EAAQ,IAGV,IAAIH,EAAO,CACTC,OAAQzZ,EAAeyB,EAAQgY,OAAQ0J,EAAS1J,QAChDG,WAAY0I,GAAatiB,EAAeyB,EAAQmY,WAAYuJ,EAASvJ,YAAaF,GAClFA,KAAMA,EACNC,MAAOA,EACP1C,OAAQjX,EAAeyB,EAAQwV,OAAQkM,EAASlM,QAChD8E,OAAQ,IAGV,OADAvC,EAAKuC,OAlbP,SAAsBvC,GACpB,OAAKA,GAAQja,EAAcia,EAAKE,OAASna,EAAcia,EAAKC,QACnD,MAGDD,EAAKG,MAAQH,EAAKG,MAAQ,IAAM,KAAOH,EAAKvC,OAASuC,EAAKvC,OAAS,IAAM,IAAMuC,EAAKE,KAAO,MAAQF,EAAKC,OA6alG6J,CAAa9J,GACpBA,EAGT,SAAS+J,GAAQC,EAAQtK,EAASlY,EAAOyiB,GACvC,IACI7qB,EAAGgI,EAAM/G,EADT6pB,GAAY,EAGhB,IAAK9qB,EAAI,EAAGgI,EAAO4iB,EAAOnnB,OAAQzD,EAAIgI,IAAQhI,EAG5C,QAAc8Q,KAFd7P,EAAQ2pB,EAAO5qB,WAMC8Q,IAAZwP,GAA0C,oBAAVrf,IAClCA,EAAQA,EAAMqf,GACdwK,GAAY,QAGAha,IAAV1I,GAAuBjG,EAAQlB,KACjCA,EAAQA,EAAMmH,EAAQnH,EAAMwC,QAC5BqnB,GAAY,QAGAha,IAAV7P,GAKF,OAJI4pB,IAASC,IACXD,EAAKC,WAAY,GAGZ7pB,EAcb,SAAS8pB,GAAQC,EAAO/pB,EAAOgqB,GAC7BA,EAAMA,GAAO,SAAU7iB,GACrB,OAAO4iB,EAAM5iB,GAASnH,GAOxB,IAJA,IAEIiqB,EAFAC,EAAKH,EAAMvnB,OAAS,EACpB2nB,EAAK,EAGFD,EAAKC,EAAK,GAGXH,EAFJC,EAAME,EAAKD,GAAM,GAGfC,EAAKF,EAELC,EAAKD,EAIT,MAAO,CACLE,GAAIA,EACJD,GAAIA,GAIR,IAAIE,GAAe,SAAsBL,EAAOzpB,EAAKN,GACnD,OAAO8pB,GAAQC,EAAO/pB,GAAO,SAAUmH,GACrC,OAAO4iB,EAAM5iB,GAAO7G,GAAON,MAI3BqqB,GAAgB,SAAuBN,EAAOzpB,EAAKN,GACrD,OAAO8pB,GAAQC,EAAO/pB,GAAO,SAAUmH,GACrC,OAAO4iB,EAAM5iB,GAAO7G,IAAQN,MAmBhC,IAAIsqB,GAAc,CAAC,OAAQ,MAAO,QAAS,SAAU,WA0CrD,SAASC,GAAoB7f,EAAO8f,GAClC,IAAIC,EAAO/f,EAAMggB,SAEjB,GAAKD,EAAL,CAIA,IAAIE,EAAYF,EAAKE,UACjBxjB,EAAQwjB,EAAUjjB,QAAQ8iB,IAEf,IAAXrjB,GACFwjB,EAAU1H,OAAO9b,EAAO,GAGtBwjB,EAAUnoB,OAAS,IAIvB8nB,GAAYM,SAAQ,SAAUtqB,UACrBoK,EAAMpK,aAERoK,EAAMggB,WAGf,SAASG,GAAaC,GACpB,IACI/rB,EAAGgI,EADHiW,EAAM,IAAI+N,IAGd,IAAKhsB,EAAI,EAAGgI,EAAO+jB,EAAMtoB,OAAQzD,EAAIgI,IAAQhI,EAC3Cie,EAAIgO,IAAIF,EAAM/rB,IAGhB,OAAIie,EAAI6C,OAAS9Y,EACR+jB,EAGF7pB,MAAMM,KAAKyb,GAGpB,SAASiO,GAAgBC,GACvB,IAAIC,EAEAC,EAAWtmB,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,CAAC,IAChFumB,EAAavmB,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAKomB,EACjF5B,EAAWxkB,UAAUtC,OAAS,EAAIsC,UAAU,QAAK+K,EACjDyb,EAAYxmB,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,WAClF,OAAOomB,EAAO,IAGXtiB,EAAQ0gB,KACXA,EAAWiC,GAAS,YAAaL,IAGnC,IAAIzI,GAAsB7gB,EAAbupB,EAAS,GAA4BrrB,OAAOC,YAAa,UAAW6B,EAAgBupB,EAAQ,cAAc,GAAOvpB,EAAgBupB,EAAQ,UAAWD,GAAStpB,EAAgBupB,EAAQ,cAAeE,GAAazpB,EAAgBupB,EAAQ,YAAa7B,GAAW1nB,EAAgBupB,EAAQ,aAAcG,GAAY1pB,EAAgBupB,EAAQ,YAAY,SAAkBxM,GACpX,OAAOsM,GAAgB,CAACtM,GAAO1B,OAAOlc,EAAmBmqB,IAAUE,EAAUC,EAAY/B,MACvF6B,GACJ,OAAO,IAAIK,MAAM/I,EAAO,CACtBgJ,eAAgB,SAAwBnpB,EAAQ0mB,GAI9C,cAHO1mB,EAAO0mB,UACP1mB,EAAOopB,aACPR,EAAO,GAAGlC,IACV,GAETppB,IAAK,SAAa0C,EAAQ0mB,GACxB,OAAO2C,GAAQrpB,EAAQ0mB,GAAM,WAC3B,OAAO4C,GAAqB5C,EAAMoC,EAAUF,EAAQ5oB,OAGxDupB,yBAA0B,SAAkCvpB,EAAQ0mB,GAClE,OAAO8C,QAAQD,yBAAyBvpB,EAAOypB,QAAQ,GAAI/C,IAE7DgD,eAAgB,WACd,OAAOF,QAAQE,eAAed,EAAO,KAEvCe,IAAK,SAAa3pB,EAAQ0mB,GACxB,OAAOkD,GAAqB5pB,GAAQ6pB,SAASnD,IAE/CoD,QAAS,SAAiB9pB,GACxB,OAAO4pB,GAAqB5pB,IAE9B0a,IAAK,SAAa1a,EAAQ0mB,EAAMhpB,GAK9B,OAJcsC,EAAO+pB,WAAa/pB,EAAO+pB,SAAWf,MAC5CtC,GAAQhpB,SACTsC,EAAO0mB,UACP1mB,EAAOopB,OACP,KAKb,SAASY,GAAeC,EAAOlN,EAASmN,EAAUC,GAChD,IAAIhK,EAAQ,CACViK,YAAY,EACZC,OAAQJ,EACRK,SAAUvN,EACVwN,UAAWL,EACXM,OAAQ,IAAI/B,IACZhM,aAAcA,GAAawN,EAAOE,GAClCM,WAAY,SAAoB7M,GAC9B,OAAOoM,GAAeC,EAAOrM,EAAKsM,EAAUC,IAE9CO,SAAU,SAAkBrO,GAC1B,OAAO2N,GAAeC,EAAMS,SAASrO,GAAQU,EAASmN,EAAUC,KAGpE,OAAO,IAAIjB,MAAM/I,EAAO,CACtBgJ,eAAgB,SAAwBnpB,EAAQ0mB,GAG9C,cAFO1mB,EAAO0mB,UACPuD,EAAMvD,IACN,GAETppB,IAAK,SAAa0C,EAAQ0mB,EAAMiE,GAC9B,OAAOtB,GAAQrpB,EAAQ0mB,GAAM,WAC3B,OA4ER,SAA6B1mB,EAAQ0mB,EAAMiE,GACzC,IAAIN,EAASrqB,EAAOqqB,OAChBC,EAAWtqB,EAAOsqB,SAClBC,EAAYvqB,EAAOuqB,UACnBK,EAAc5qB,EAAOyc,aACrB/e,EAAQ2sB,EAAO3D,GAEfngB,EAAW7I,IAAUktB,EAAYC,aAAanE,KAChDhpB,EAcJ,SAA4BgpB,EAAMhpB,EAAOsC,EAAQ2qB,GAC/C,IAAIN,EAASrqB,EAAOqqB,OAChBC,EAAWtqB,EAAOsqB,SAClBC,EAAYvqB,EAAOuqB,UACnBC,EAASxqB,EAAOwqB,OAEpB,GAAIA,EAAOb,IAAIjD,GACb,MAAM,IAAIoE,MAAM,uBAAyBnsB,MAAMM,KAAKurB,GAAQO,KAAK,MAAQ,KAAOrE,GAGlF8D,EAAO9B,IAAIhC,GAEXhpB,EAAQA,EAAM4sB,EAAUC,GAAaI,GAErCH,EAAOQ,OAAOtE,GAEVnjB,EAAS7F,KACXA,EAAQutB,GAAkBZ,EAAOZ,QAASY,EAAQ3D,EAAMhpB,IAG1D,OAAOA,EAlCGwtB,CAAmBxE,EAAMhpB,EAAOsC,EAAQ2qB,IAG9C/rB,EAAQlB,IAAUA,EAAMwC,SAC1BxC,EAiCJ,SAAuBgpB,EAAMhpB,EAAOsC,EAAQmrB,GAC1C,IAAId,EAASrqB,EAAOqqB,OAChBC,EAAWtqB,EAAOsqB,SAClBC,EAAYvqB,EAAOuqB,UACnBK,EAAc5qB,EAAOyc,aAEzB,GAAInW,EAAQgkB,EAASzlB,QAAUsmB,EAAYzE,GACzChpB,EAAQA,EAAM4sB,EAASzlB,MAAQnH,EAAMwC,aAChC,GAAIqD,EAAS7F,EAAM,IAAK,CAC7B,IAAIgB,EAAMhB,EAENkrB,EAASyB,EAAOZ,QAAQ2B,QAAO,SAAU5sB,GAC3C,OAAOA,IAAME,KAGfhB,EAAQ,GAER,IACI2tB,EADAC,EAAa/qB,EAA2B7B,GAG5C,IACE,IAAK4sB,EAAW9sB,MAAO6sB,EAASC,EAAWptB,KAAKyC,MAAO,CACrD,IACI4qB,EAAWN,GAAkBrC,EAAQyB,EAAQ3D,EADtC2E,EAAO3tB,OAElBA,EAAMsiB,KAAKgK,GAAeuB,EAAUjB,EAAUC,GAAaA,EAAU7D,GAAOkE,KAE9E,MAAO7pB,GACPuqB,EAAW1qB,EAAEG,GACb,QACAuqB,EAAWxqB,KAIf,OAAOpD,EAlEG8tB,CAAc9E,EAAMhpB,EAAOsC,EAAQ4qB,EAAYO,cAGrDM,GAAiB/E,EAAMhpB,KACzBA,EAAQssB,GAAetsB,EAAO4sB,EAAUC,GAAaA,EAAU7D,GAAOkE,IAGxE,OAAOltB,EA/FMguB,CAAoB1rB,EAAQ0mB,EAAMiE,OAG7CpB,yBAA0B,SAAkCvpB,EAAQ0mB,GAClE,OAAO1mB,EAAOyc,aAAakP,QAAUnC,QAAQG,IAAIM,EAAOvD,GAAQ,CAC9DrpB,YAAY,EACZmC,cAAc,QACZ+N,EAAYic,QAAQD,yBAAyBU,EAAOvD,IAE1DgD,eAAgB,WACd,OAAOF,QAAQE,eAAeO,IAEhCN,IAAK,SAAa3pB,EAAQ0mB,GACxB,OAAO8C,QAAQG,IAAIM,EAAOvD,IAE5BoD,QAAS,WACP,OAAON,QAAQM,QAAQG,IAEzBvP,IAAK,SAAa1a,EAAQ0mB,EAAMhpB,GAG9B,OAFAusB,EAAMvD,GAAQhpB,SACPsC,EAAO0mB,IACP,KAKb,SAASjK,GAAawN,GACpB,IAAI1N,EAAW/Z,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,CACjFopB,YAAY,EACZC,WAAW,GAGTC,EAAqB7B,EAAM7K,YAC3BA,OAAqC,IAAvB0M,EAAgCvP,EAASqP,WAAaE,EACpEC,EAAoB9B,EAAM3K,WAC1BA,OAAmC,IAAtByM,EAA+BxP,EAASsP,UAAYE,EACjEC,EAAkB/B,EAAMgC,SACxBA,OAA+B,IAApBD,EAA6BzP,EAASoP,QAAUK,EAE/D,MAAO,CACLL,QAASM,EACTL,WAAYxM,EACZyM,UAAWvM,EACXuL,aAActkB,EAAW6Y,GAAeA,EAAc,WACpD,OAAOA,GAET+L,YAAa5kB,EAAW+Y,GAAcA,EAAa,WACjD,OAAOA,IAKb,IAAI4M,GAAU,SAAiBC,EAAQnvB,GACrC,OAAOmvB,EAASA,EAASjmB,EAAYlJ,GAAQA,GAG3CyuB,GAAmB,SAA0B/E,EAAMhpB,GACrD,OAAO6F,EAAS7F,IAAmB,aAATgpB,GAG5B,SAAS2C,GAAQrpB,EAAQ0mB,EAAMU,GAC7B,IAAI1pB,EAAQsC,EAAO0mB,GAEnB,OAAIpgB,EAAQ5I,KAIZA,EAAQ0pB,IAEJ9gB,EAAQ5I,KACVsC,EAAO0mB,GAAQhpB,IANRA,EA6FX,SAAS0uB,GAAgBpF,EAAUN,EAAMhpB,GACvC,OAAO6I,EAAWygB,GAAYA,EAASN,EAAMhpB,GAASspB,EAGxD,IAAIqF,GAAW,SAAkBruB,EAAKsuB,GACpC,OAAe,IAARtuB,EAAesuB,EAAwB,kBAARtuB,EAAmBgI,EAAiBsmB,EAAQtuB,QAAOuP,GAG3F,SAASgf,GAAU7R,EAAK8R,EAAcxuB,EAAKyuB,GACzC,IACIC,EADAC,EAAapsB,EAA2BisB,GAG5C,IACE,IAAKG,EAAWnuB,MAAOkuB,EAASC,EAAWzuB,KAAKyC,MAAO,CACrD,IAAI2rB,EAASI,EAAOhvB,MAChB2e,EAAQgQ,GAASruB,EAAKsuB,GAE1B,GAAIjQ,EAAO,CACT3B,EAAIgO,IAAIrM,GACR,IAAI2K,EAAWoF,GAAgB/P,EAAMkD,UAAWvhB,EAAKqe,GAErD,GAAI/V,EAAQ0gB,IAAaA,IAAahpB,GAAOgpB,IAAayF,EACxD,OAAOzF,OAEJ,IAAc,IAAV3K,GAAmB/V,EAAQmmB,IAAmBzuB,IAAQyuB,EAC/D,OAAO,MAGX,MAAO1rB,GACP4rB,EAAW/rB,EAAEG,GACb,QACA4rB,EAAW7rB,IAGb,OAAO,EAGT,SAASmqB,GAAkBuB,EAAcjB,EAAU7E,EAAMhpB,GACvD,IAAIqrB,EAAawC,EAASqB,YACtB5F,EAAWoF,GAAgBb,EAAShM,UAAWmH,EAAMhpB,GACrDmvB,EAAY,GAAGlS,OAAOlc,EAAmB+tB,GAAe/tB,EAAmBsqB,IAC3ErO,EAAM,IAAI+N,IACd/N,EAAIgO,IAAIhrB,GACR,IAAIM,EAAM8uB,GAAiBpS,EAAKmS,EAAWnG,EAAMM,GAAYN,GAE7D,OAAY,OAAR1oB,MAIAsI,EAAQ0gB,IAAaA,IAAaN,GAGxB,QAFZ1oB,EAAM8uB,GAAiBpS,EAAKmS,EAAW7F,EAAUhpB,MAO5C2qB,GAAgBhqB,MAAMM,KAAKyb,GAAM,CAAC,IAAKqO,EAAY/B,GAAU,WAClE,OAYJ,SAAsBuE,EAAU7E,EAAMhpB,GACpC,IAAI4uB,EAASf,EAASwB,aAEhBrG,KAAQ4F,IACZA,EAAO5F,GAAQ,IAGjB,IAAI1mB,EAASssB,EAAO5F,GAEpB,GAAI9nB,EAAQoB,IAAWuD,EAAS7F,GAC9B,OAAOA,EAGT,OAAOsC,EAzBEgtB,CAAazB,EAAU7E,EAAMhpB,OAIxC,SAASovB,GAAiBpS,EAAKmS,EAAW7uB,EAAKgpB,GAC7C,KAAOhpB,GACLA,EAAMuuB,GAAU7R,EAAKmS,EAAW7uB,EAAKgpB,GAGvC,OAAOhpB,EAmBT,SAASsrB,GAAqB5C,EAAMoC,EAAUF,EAAQqB,GACpD,IAAIvsB,EAGAuvB,EADAC,EAAa3sB,EAA2BuoB,GAG5C,IACE,IAAKoE,EAAW1uB,MAAOyuB,EAASC,EAAWhvB,KAAKyC,MAAO,CACrD,IAAIwrB,EAASc,EAAOvvB,MAGpB,GAFAA,EAAQurB,GAASiD,GAAQC,EAAQzF,GAAOkC,GAEpCtiB,EAAQ5I,GACV,OAAO+tB,GAAiB/E,EAAMhpB,GAASutB,GAAkBrC,EAAQqB,EAAOvD,EAAMhpB,GAASA,GAG3F,MAAOqD,GACPmsB,EAAWtsB,EAAEG,GACb,QACAmsB,EAAWpsB,KAIf,SAASmoB,GAASjrB,EAAK4qB,GACrB,IACIuE,EADAC,EAAa7sB,EAA2BqoB,GAG5C,IACE,IAAKwE,EAAW5uB,MAAO2uB,EAASC,EAAWlvB,KAAKyC,MAAO,CACrD,IAAI0b,EAAQ8Q,EAAOzvB,MAEnB,GAAK2e,EAAL,CAIA,IAAI3e,EAAQ2e,EAAMre,GAElB,GAAIsI,EAAQ5I,GACV,OAAOA,IAGX,MAAOqD,GACPqsB,EAAWxsB,EAAEG,GACb,QACAqsB,EAAWtsB,KAIf,SAAS8oB,GAAqB5pB,GAC5B,IAAIqE,EAAOrE,EAAOopB,MAMlB,OAJK/kB,IACHA,EAAOrE,EAAOopB,MAMlB,SAAkCR,GAChC,IAGIyE,EAHA3S,EAAM,IAAI+N,IAEV6E,EAAa/sB,EAA2BqoB,GAG5C,IACE,IAAK0E,EAAW9uB,MAAO6uB,EAASC,EAAWpvB,KAAKyC,MAAO,CACrD,IAKI4sB,EALAlR,EAAQgR,EAAO3vB,MAEf8vB,EAAajtB,EAA2BpD,OAAOkH,KAAKgY,GAAO+O,QAAO,SAAUlmB,GAC9E,OAAQA,EAAEma,WAAW,SAIvB,IACE,IAAKmO,EAAWhvB,MAAO+uB,EAASC,EAAWtvB,KAAKyC,MAAO,CACrD,IAAI3C,EAAMuvB,EAAO7vB,MACjBgd,EAAIgO,IAAI1qB,IAEV,MAAO+C,GACPysB,EAAW5sB,EAAEG,GACb,QACAysB,EAAW1sB,MAGf,MAAOC,GACPusB,EAAW1sB,EAAEG,GACb,QACAusB,EAAWxsB,IAGb,OAAOnC,MAAMM,KAAKyb,GAtCM+S,CAAyBztB,EAAOypB,UAGjDplB,EAsCT,IAAIqpB,GAAUjqB,OAAOiqB,SAAW,MAE5BC,GAAW,SAAkBC,EAAQnxB,GACvC,OAAOA,EAAImxB,EAAO1tB,SAAW0tB,EAAOnxB,GAAGoxB,MAAQD,EAAOnxB,IAGpDqxB,GAAe,SAAsB/P,GACvC,MAAqB,MAAdA,EAAoB,IAAM,KA2BnC,SAASgQ,GAAeH,EAAQI,EAAQC,GAKtC,IAJA,IACIC,EAAQC,EAAOC,EAAMC,EAAkBC,EADvCC,EAAYX,EAAO1tB,OAEnBsuB,EAAab,GAASC,EAAQ,GAEzBnxB,EAAI,EAAGA,EAAI8xB,EAAY,IAAK9xB,EACnC6xB,EAAeE,EACfA,EAAab,GAASC,EAAQnxB,EAAI,GAE7B6xB,GAAiBE,IAIlBhnB,EAAawmB,EAAOvxB,GAAI,EAAGixB,IAC7BO,EAAGxxB,GAAKwxB,EAAGxxB,EAAI,GAAK,GAItByxB,EAASD,EAAGxxB,GAAKuxB,EAAOvxB,GACxB0xB,EAAQF,EAAGxxB,EAAI,GAAKuxB,EAAOvxB,IAC3B4xB,EAAmB5nB,KAAKiB,IAAIwmB,EAAQ,GAAKznB,KAAKiB,IAAIymB,EAAO,KAEjC,IAIxBC,EAAO,EAAI3nB,KAAKsC,KAAKslB,GACrBJ,EAAGxxB,GAAKyxB,EAASE,EAAOJ,EAAOvxB,GAC/BwxB,EAAGxxB,EAAI,GAAK0xB,EAAQC,EAAOJ,EAAOvxB,MAItC,SAASgyB,GAAgBb,EAAQK,GAO/B,IANA,IAGIS,EAAOC,EAAaL,EAHpBvQ,EAAYvb,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,IAChFosB,EAAYd,GAAa/P,GACzBwQ,EAAYX,EAAO1tB,OAEnBsuB,EAAab,GAASC,EAAQ,GAEzBnxB,EAAI,EAAGA,EAAI8xB,IAAa9xB,EAK/B,GAJAkyB,EAAcL,EACdA,EAAeE,EACfA,EAAab,GAASC,EAAQnxB,EAAI,GAE7B6xB,EAAL,CAIA,IAAIO,EAASP,EAAavQ,GACtB+Q,EAASR,EAAaM,GAEtBD,IACFD,GAASG,EAASF,EAAY5Q,IAAc,EAC5CuQ,EAAa,MAAM3T,OAAOoD,IAAc8Q,EAASH,EACjDJ,EAAa,MAAM3T,OAAOiU,IAAcE,EAASJ,EAAQT,EAAGxxB,IAG1D+xB,IACFE,GAASF,EAAWzQ,GAAa8Q,GAAU,EAC3CP,EAAa,MAAM3T,OAAOoD,IAAc8Q,EAASH,EACjDJ,EAAa,MAAM3T,OAAOiU,IAAcE,EAASJ,EAAQT,EAAGxxB,KAmClE,SAASsyB,GAAgBC,EAAI3mB,EAAKC,GAChC,OAAO7B,KAAK6B,IAAI7B,KAAK4B,IAAI2mB,EAAI1mB,GAAMD,GA+BrC,SAAS4mB,GAA2BrB,EAAQtoB,EAASud,EAAMqM,EAAMnR,GAC/D,IAAIthB,EAAGgI,EAAMme,EAAOuM,EAxJDC,EAAYC,EAAaC,EAAY3xB,EACpD4lB,EACAgM,EACApuB,EACAquB,EACAC,EACAC,EACAC,EAGAC,EACAC,EAqJJ,GANIvqB,EAAQwqB,WACVlC,EAASA,EAAOxC,QAAO,SAAU4D,GAC/B,OAAQA,EAAGnB,SAIwB,aAAnCvoB,EAAQyqB,wBAvEd,SAA6BnC,GAC3B,IAKInxB,EAAGkyB,EAAaL,EALhBvQ,EAAYvb,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,IAChFosB,EAAYd,GAAa/P,GACzBwQ,EAAYX,EAAO1tB,OACnB8tB,EAASrvB,MAAM4vB,GAAW/L,KAAK,GAC/ByL,EAAKtvB,MAAM4vB,GAEXC,EAAab,GAASC,EAAQ,GAElC,IAAKnxB,EAAI,EAAGA,EAAI8xB,IAAa9xB,EAK3B,GAJAkyB,EAAcL,EACdA,EAAeE,EACfA,EAAab,GAASC,EAAQnxB,EAAI,GAE7B6xB,EAAL,CAIA,GAAIE,EAAY,CACd,IAAIwB,EAAaxB,EAAWzQ,GAAauQ,EAAavQ,GACtDiQ,EAAOvxB,GAAoB,IAAfuzB,GAAoBxB,EAAWI,GAAaN,EAAaM,IAAcoB,EAAa,EAGlG/B,EAAGxxB,GAAMkyB,EAA2BH,EAA6BrnB,EAAK6mB,EAAOvxB,EAAI,MAAQ0K,EAAK6mB,EAAOvxB,IAAM,GAAKuxB,EAAOvxB,EAAI,GAAKuxB,EAAOvxB,IAAM,EAA5FuxB,EAAOvxB,EAAI,GAArCuxB,EAAOvxB,GAGhCsxB,GAAeH,EAAQI,EAAQC,GAC/BQ,GAAgBb,EAAQK,EAAIlQ,GA6C1BkS,CAAoBrC,EAAQ7P,OACvB,CACL,IAAImS,EAAOhB,EAAOtB,EAAOA,EAAO1tB,OAAS,GAAK0tB,EAAO,GAErD,IAAKnxB,EAAI,EAAGgI,EAAOmpB,EAAO1tB,OAAQzD,EAAIgI,IAAQhI,EAC5CmmB,EAAQgL,EAAOnxB,GAtKA2yB,EAuKac,EAvKDb,EAuKOzM,EAvKM0M,EAuKC1B,EAAOnnB,KAAK4B,IAAI5L,EAAI,EAAGgI,GAAQyqB,EAAO,EAAI,IAAMzqB,GAvKrC9G,EAuK4C2H,EAAQ6qB,QAtKxG5M,SACAgM,SACApuB,SACAquB,SACAC,SACAC,SACAC,SAGAC,SACAC,SAVAtM,EAAW6L,EAAWvB,KAAOwB,EAAcD,EAC3CG,EAAUF,EACVluB,EAAOmuB,EAAWzB,KAAOwB,EAAcC,EACvCE,EAAM5mB,GAAsB2mB,EAAShM,GACrCkM,EAAM7mB,GAAsBzH,EAAMouB,GAClCG,EAAMF,GAAOA,EAAMC,GACnBE,EAAMF,GAAOD,EAAMC,GAGnBG,EAAKjyB,GAFT+xB,EAAM5nB,MAAM4nB,GAAO,EAAIA,GAGnBG,EAAKlyB,GAFTgyB,EAAM7nB,MAAM6nB,GAAO,EAAIA,GA8JnBR,EA3JG,CACL5L,SAAU,CACRxb,EAAGwnB,EAAQxnB,EAAI6nB,GAAMzuB,EAAK4G,EAAIwb,EAASxb,GACvCC,EAAGunB,EAAQvnB,EAAI4nB,GAAMzuB,EAAK6G,EAAIub,EAASvb,IAEzC7G,KAAM,CACJ4G,EAAGwnB,EAAQxnB,EAAI8nB,GAAM1uB,EAAK4G,EAAIwb,EAASxb,GACvCC,EAAGunB,EAAQvnB,EAAI6nB,GAAM1uB,EAAK6G,EAAIub,EAASvb,KAqJvC4a,EAAMgB,KAAOuL,EAAc5L,SAASxb,EACpC6a,EAAMkB,KAAOqL,EAAc5L,SAASvb,EACpC4a,EAAMiB,KAAOsL,EAAchuB,KAAK4G,EAChC6a,EAAMmB,KAAOoL,EAAchuB,KAAK6G,EAChCkoB,EAAOtN,EAIPtd,EAAQ8qB,iBArDd,SAAyBxC,EAAQ/K,GAC/B,IAAIpmB,EAAGgI,EAAMme,EAAOyN,EAAQC,EAExBC,EAAa5N,GAAeiL,EAAO,GAAI/K,GAE3C,IAAKpmB,EAAI,EAAGgI,EAAOmpB,EAAO1tB,OAAQzD,EAAIgI,IAAQhI,EAC5C6zB,EAAaD,EACbA,EAASE,EACTA,EAAa9zB,EAAIgI,EAAO,GAAKke,GAAeiL,EAAOnxB,EAAI,GAAIomB,GAEtDwN,IAILzN,EAAQgL,EAAOnxB,GAEX6zB,IACF1N,EAAMgB,KAAOmL,GAAgBnM,EAAMgB,KAAMf,EAAKE,KAAMF,EAAKG,OACzDJ,EAAMkB,KAAOiL,GAAgBnM,EAAMkB,KAAMjB,EAAKI,IAAKJ,EAAKK,SAGtDqN,IACF3N,EAAMiB,KAAOkL,GAAgBnM,EAAMiB,KAAMhB,EAAKE,KAAMF,EAAKG,OACzDJ,EAAMmB,KAAOgL,GAAgBnM,EAAMmB,KAAMlB,EAAKI,IAAKJ,EAAKK,UA+B1DkN,CAAgBxC,EAAQ/K,GAI5B,SAAS2N,GAAeC,GACtB,IAAInE,EAASmE,EAAQC,WAMrB,OAJIpE,GAAgC,wBAAtBA,EAAO/qB,aACnB+qB,EAASA,EAAOqE,MAGXrE,EAGT,SAASsE,GAAcC,EAAY5U,EAAM6U,GACvC,IAAIC,EAYJ,MAV0B,kBAAfF,GACTE,EAAgBxX,SAASsX,EAAY,KAEJ,IAA7BA,EAAWzrB,QAAQ,OACrB2rB,EAAgBA,EAAgB,IAAM9U,EAAKyU,WAAWI,KAGxDC,EAAgBF,EAGXE,EAGT,IAAIC,GAAmB,SAA0BC,GAC/C,OAAOpvB,OAAOmvB,iBAAiBC,EAAS,OAO1C,IAAIC,GAAY,CAAC,MAAO,QAAS,SAAU,QAE3C,SAASC,GAAmBC,EAAQ5T,EAAO6T,GACzC,IAAIC,EAAS,GACbD,EAASA,EAAS,IAAMA,EAAS,GAEjC,IAAK,IAAI50B,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAIwJ,EAAMirB,GAAUz0B,GACpB60B,EAAOrrB,GAAOhC,WAAWmtB,EAAO5T,EAAQ,IAAMvX,EAAMorB,KAAY,EAKlE,OAFAC,EAAOvR,MAAQuR,EAAOvO,KAAOuO,EAAOtO,MACpCsO,EAAOjQ,OAASiQ,EAAOrO,IAAMqO,EAAOpO,OAC7BoO,EAiCT,SAASC,GAAoBC,EAAKxU,GAChC,IAAIiE,EAASjE,EAAMiE,OACfH,EAA0B9D,EAAM8D,wBAChCtD,EAAQwT,GAAiB/P,GACzBwQ,EAAgC,eAApBjU,EAAMkU,UAClBC,EAAWR,GAAmB3T,EAAO,WACrCoU,EAAUT,GAAmB3T,EAAO,SAAU,SAE9CqU,EAlCN,SAA2BL,EAAKvQ,GAC9B,IAMIlZ,EAAGC,EANHpH,EAAI4wB,EAAIM,QAAUN,EAClBO,EAAUnxB,EAAEmxB,QACZhtB,EAASgtB,GAAWA,EAAQ7xB,OAAS6xB,EAAQ,GAAKnxB,EAClDoxB,EAAUjtB,EAAOitB,QACjBC,EAAUltB,EAAOktB,QACjBC,GAAM,EAGV,GAbiB,SAAsBnqB,EAAGC,EAAGhI,GAC7C,OAAQ+H,EAAI,GAAKC,EAAI,MAAQhI,IAAWA,EAAOmyB,YAY3CC,CAAaJ,EAASC,EAASrxB,EAAEZ,QACnC+H,EAAIiqB,EACJhqB,EAAIiqB,MACC,CACL,IAAI1P,EAAOtB,EAAOoR,wBAClBtqB,EAAIhD,EAAOutB,QAAU/P,EAAKQ,KAC1B/a,EAAIjD,EAAOwtB,QAAUhQ,EAAKU,IAC1BiP,GAAM,EAGR,MAAO,CACLnqB,EAAGA,EACHC,EAAGA,EACHkqB,IAAKA,GAYkBM,CAAkBhB,EAAKvQ,GAC5ClZ,EAAI8pB,EAAmB9pB,EACvBC,EAAI6pB,EAAmB7pB,EACvBkqB,EAAML,EAAmBK,IAEzB3Q,EAAUoQ,EAAS5O,MAAQmP,GAAON,EAAQ7O,MAC1CvB,EAAUmQ,EAAS1O,KAAOiP,GAAON,EAAQ3O,KACzClD,EAAQ/C,EAAM+C,MACdsB,EAASrE,EAAMqE,OAOnB,OALIoQ,IACF1R,GAAS4R,EAAS5R,MAAQ6R,EAAQ7R,MAClCsB,GAAUsQ,EAAStQ,OAASuQ,EAAQvQ,QAG/B,CACLtZ,EAAGtB,KAAKc,OAAOQ,EAAIwZ,GAAWxB,EAAQkB,EAAOlB,MAAQe,GACrD9Y,EAAGvB,KAAKc,OAAOS,EAAIwZ,GAAWH,EAASJ,EAAOI,OAASP,IAiC3D,IAAI2R,GAAS,SAAgB9lB,GAC3B,OAAOlG,KAAKc,MAAU,GAAJoF,GAAU,IAG9B,SAAS,GAAesU,EAAQyR,EAASC,EAAUC,GACjD,IAAIpV,EAAQwT,GAAiB/P,GACzB4R,EAAU1B,GAAmB3T,EAAO,UACpCmH,EAAWiM,GAAcpT,EAAMmH,SAAU1D,EAAQ,gBAAkBra,EACnEksB,EAAYlC,GAAcpT,EAAMsV,UAAW7R,EAAQ,iBAAmBra,EACtEmsB,EAtCN,SAA0B9R,EAAQlB,EAAOsB,GACvC,IAAIsD,EAAUmO,EAEd,QAAcvlB,IAAVwS,QAAkCxS,IAAX8T,EAAsB,CAC/C,IAAI2R,EAAYxC,GAAevP,GAE/B,GAAK+R,EAGE,CACL,IAAIzQ,EAAOyQ,EAAUX,wBACjBY,EAAiBjC,GAAiBgC,GAClCE,EAAkB/B,GAAmB8B,EAAgB,SAAU,SAC/DE,EAAmBhC,GAAmB8B,EAAgB,WAC1DlT,EAAQwC,EAAKxC,MAAQoT,EAAiBpT,MAAQmT,EAAgBnT,MAC9DsB,EAASkB,EAAKlB,OAAS8R,EAAiB9R,OAAS6R,EAAgB7R,OACjEsD,EAAWiM,GAAcqC,EAAetO,SAAUqO,EAAW,eAC7DF,EAAYlC,GAAcqC,EAAeH,UAAWE,EAAW,qBAV/DjT,EAAQkB,EAAOmS,YACf/R,EAASJ,EAAOoS,aAapB,MAAO,CACLtT,MAAOA,EACPsB,OAAQA,EACRsD,SAAUA,GAAY/d,EACtBksB,UAAWA,GAAalsB,GAaN0sB,CAAiBrS,EAAQyR,EAASC,GAClD5S,EAAQgT,EAAchT,MACtBsB,EAAS0R,EAAc1R,OAE3B,GAAwB,gBAApB7D,EAAMkU,UAA6B,CACrC,IAAIE,EAAUT,GAAmB3T,EAAO,SAAU,SAC9CmU,EAAWR,GAAmB3T,EAAO,WACzCuC,GAAS4R,EAAS5R,MAAQ6R,EAAQ7R,MAClCsB,GAAUsQ,EAAStQ,OAASuQ,EAAQvQ,OAYtC,OATAtB,EAAQtZ,KAAK6B,IAAI,EAAGyX,EAAQ8S,EAAQ9S,OACpCsB,EAAS5a,KAAK6B,IAAI,EAAGsqB,EAAcnsB,KAAKkB,MAAMoY,EAAQ6S,GAAevR,EAASwR,EAAQxR,QACtFtB,EAAQ0S,GAAOhsB,KAAK4B,IAAI0X,EAAO4E,EAAUoO,EAAcpO,WACvDtD,EAASoR,GAAOhsB,KAAK4B,IAAIgZ,EAAQyR,EAAWC,EAAcD,YAEtD/S,IAAUsB,IACZA,EAASoR,GAAO1S,EAAQ,IAGnB,CACLA,MAAOA,EACPsB,OAAQA,GAIZ,SAASkS,GAAYvW,EAAOwW,EAAYC,GACtC,IAAIC,EAAaF,GAAc,EAC3BG,EAAeltB,KAAKkB,MAAMqV,EAAMqE,OAASqS,GACzCE,EAAcntB,KAAKkB,MAAMqV,EAAM+C,MAAQ2T,GAC3C1W,EAAMqE,OAASsS,EAAeD,EAC9B1W,EAAM+C,MAAQ6T,EAAcF,EAC5B,IAAIzS,EAASjE,EAAMiE,OAOnB,OALIA,EAAOzD,QAAUiW,IAAexS,EAAOzD,MAAM6D,SAAWJ,EAAOzD,MAAMuC,SACvEkB,EAAOzD,MAAM6D,OAAS,GAAG1G,OAAOqC,EAAMqE,OAAQ,MAC9CJ,EAAOzD,MAAMuC,MAAQ,GAAGpF,OAAOqC,EAAM+C,MAAO,QAG1C/C,EAAM8D,0BAA4B4S,GAAczS,EAAOI,SAAWsS,GAAgB1S,EAAOlB,QAAU6T,KACrG5W,EAAM8D,wBAA0B4S,EAChCzS,EAAOI,OAASsS,EAChB1S,EAAOlB,MAAQ6T,EACf5W,EAAMY,IAAIiW,aAAaH,EAAY,EAAG,EAAGA,EAAY,EAAG,IACjD,GAMX,IAAII,GAA+B,WACjC,IAAIC,GAAmB,EAEvB,IACE,IAAIzuB,EAAU,CACZ,cAEE,OADAyuB,GAAmB,GACZ,IAIXlyB,OAAOmyB,iBAAiB,OAAQ,KAAM1uB,GACtCzD,OAAOoyB,oBAAoB,OAAQ,KAAM3uB,GACzC,MAAO1E,IAET,OAAOmzB,EAf0B,GAkBnC,SAASG,GAAajD,EAAS7yB,GAC7B,IAAIV,EA1LN,SAAkBy2B,EAAI/1B,GACpB,OAAO4yB,GAAiBmD,GAAIC,iBAAiBh2B,GAyLjCi2B,CAASpD,EAAS7yB,GAC1BgoB,EAAU1oB,GAASA,EAAM2oB,MAAM,qBACnC,OAAOD,GAAWA,EAAQ,QAAK7Y,EAGjC,SAAS+mB,GAAapmB,EAAIC,EAAIxQ,EAAGC,GAC/B,MAAO,CACLmK,EAAGmG,EAAGnG,EAAIpK,GAAKwQ,EAAGpG,EAAImG,EAAGnG,GACzBC,EAAGkG,EAAGlG,EAAIrK,GAAKwQ,EAAGnG,EAAIkG,EAAGlG,IAI7B,SAASusB,GAAsBrmB,EAAIC,EAAIxQ,EAAGC,GACxC,MAAO,CACLmK,EAAGmG,EAAGnG,EAAIpK,GAAKwQ,EAAGpG,EAAImG,EAAGnG,GACzBC,EAAY,WAATpK,EAAoBD,EAAI,GAAMuQ,EAAGlG,EAAImG,EAAGnG,EAAa,UAATpK,EAAmBD,EAAI,EAAIuQ,EAAGlG,EAAImG,EAAGnG,EAAIrK,EAAI,EAAIwQ,EAAGnG,EAAIkG,EAAGlG,GAI9G,SAASwsB,GAAqBtmB,EAAIC,EAAIxQ,EAAGC,GACvC,IAAI62B,EAAM,CACR1sB,EAAGmG,EAAG2V,KACN7b,EAAGkG,EAAG6V,MAEJ2Q,EAAM,CACR3sB,EAAGoG,EAAGyV,KACN5b,EAAGmG,EAAG2V,MAGJ7a,EAAIqrB,GAAapmB,EAAIumB,EAAK92B,GAE1BuL,EAAIorB,GAAaG,EAAKC,EAAK/2B,GAE3Bb,EAAIw3B,GAAaI,EAAKvmB,EAAIxQ,GAE1BZ,EAAIu3B,GAAarrB,EAAGC,EAAGvL,GAEvBiD,EAAI0zB,GAAaprB,EAAGpM,EAAGa,GAE3B,OAAO22B,GAAav3B,EAAG6D,EAAGjD,GAG5B,IAAIg3B,GAAY,IAAIC,IAepB,SAASC,GAAaC,EAAKC,EAAQzvB,GACjC,OAdF,SAAyByvB,EAAQzvB,GAC/BA,EAAUA,GAAW,GACrB,IAAI0vB,EAAWD,EAASE,KAAKC,UAAU5vB,GACnC6vB,EAAYR,GAAUr3B,IAAI03B,GAO9B,OALKG,IACHA,EAAY,IAAIC,KAAKC,aAAaN,EAAQzvB,GAC1CqvB,GAAUja,IAAIsa,EAAUG,IAGnBA,EAIAG,CAAgBP,EAAQzvB,GAASiwB,OAAOT,GA6CjD,SAASU,GAAcC,EAAKC,EAAO3V,GACjC,OAAO0V,EA3CmB,SAA+BC,EAAO3V,GAChE,MAAO,CACLhY,EAAG,SAAW4tB,GACZ,OAAOD,EAAQA,EAAQ3V,EAAQ4V,GAEjCC,SAAU,SAAkBloB,GAC1BqS,EAAQrS,GAEVsX,UAAW,SAAmBniB,GAC5B,MAAc,WAAVA,EACKA,EAGQ,UAAVA,EAAoB,OAAS,SAEtCgzB,MAAO,SAAe9tB,EAAGrK,GACvB,OAAOqK,EAAIrK,GAEbo4B,WAAY,SAAoB/tB,EAAGguB,GACjC,OAAOhuB,EAAIguB,IAwBFC,CAAsBN,EAAO3V,GAlBnC,CACLhY,EAAG,SAAWkuB,GACZ,OAAOA,GAETL,SAAU,SAAkBloB,KAC5BsX,UAAW,SAAmBniB,GAC5B,OAAOA,GAETgzB,MAAO,SAAe9tB,EAAGrK,GACvB,OAAOqK,EAAIrK,GAEbo4B,WAAY,SAAoB/tB,EAAGmuB,GACjC,OAAOnuB,IASb,SAASouB,GAAsBvY,EAAKwY,GAClC,IAAI5Y,EAAO6Y,EAEO,QAAdD,GAAqC,QAAdA,IAEzBC,EAAW,EADX7Y,EAAQI,EAAIqD,OAAOzD,OACD4W,iBAAiB,aAAc5W,EAAM8Y,oBAAoB,cAC3E9Y,EAAM+Y,YAAY,YAAaH,EAAW,aAC1CxY,EAAI4Y,kBAAoBH,GAI5B,SAASI,GAAqB7Y,EAAKyY,QAChB9oB,IAAb8oB,WACKzY,EAAI4Y,kBACX5Y,EAAIqD,OAAOzD,MAAM+Y,YAAY,YAAaF,EAAS,GAAIA,EAAS,KAIpE,SAASK,GAAWt4B,GAClB,MAAiB,UAAbA,EACK,CACLu4B,QAASvtB,GACTwtB,QAAS5tB,GACT6tB,UAAW1tB,IAIR,CACLwtB,QAAS,SAAiBz4B,EAAGM,EAAGoC,GAC9B,OAAO1C,GAAKuI,KAAK4B,IAAI7J,EAAGoC,IAAM1C,GAAKuI,KAAK6B,IAAI1H,EAAGpC,IAEjDo4B,QAAS,SAAiB3tB,EAAGC,GAC3B,OAAOD,EAAIC,GAEb2tB,UAAW,SAAmB9uB,GAC5B,OAAOA,IAKb,SAAS+uB,GAAiBC,GACxB,IAAIh0B,EAAQg0B,EAAKh0B,MACbC,EAAM+zB,EAAK/zB,IACXg0B,EAAQD,EAAKC,MAGjB,MAAO,CACLj0B,MAAOA,EAAQi0B,EACfh0B,IAAKA,EAAMg0B,EACX9H,KALS6H,EAAK7H,OAKClsB,EAAMD,EAAQ,GAAKi0B,IAAU,EAC5CxZ,MALUuZ,EAAKvZ,OAqDnB,SAASyZ,GAAcC,EAAStJ,EAAQuJ,GACtC,IAAKA,EACH,MAAO,CAACD,GAwCV,IArCA,IAmBIx5B,EAAOklB,EAAOwU,EAnBdh5B,EAAW+4B,EAAO/4B,SAClBi5B,EAAaF,EAAOp0B,MACpBu0B,EAAWH,EAAOn0B,IAClBg0B,EAAQpJ,EAAO1tB,OAEfq3B,EAAeb,GAAWt4B,GAC1Bw4B,EAAUW,EAAaX,QACvBD,EAAUY,EAAaZ,QACvBE,EAAYU,EAAaV,UAEzBW,EA3DN,SAAoBN,EAAStJ,EAAQuJ,GACnC,IAYI16B,EAAGgI,EAZHrG,EAAW+4B,EAAO/4B,SAClBi5B,EAAaF,EAAOp0B,MACpBu0B,EAAWH,EAAOn0B,IAElBy0B,EAAcf,GAAWt4B,GACzBu4B,EAAUc,EAAYd,QACtBE,EAAYY,EAAYZ,UAExBG,EAAQpJ,EAAO1tB,OACf6C,EAAQm0B,EAAQn0B,MAChBC,EAAMk0B,EAAQl0B,IACdksB,EAAOgI,EAAQhI,KAGnB,GAAIA,EAAM,CAIR,IAHAnsB,GAASi0B,EACTh0B,GAAOg0B,EAEFv6B,EAAI,EAAGgI,EAAOuyB,EAAOv6B,EAAIgI,GACvBkyB,EAAQE,EAAUjJ,EAAO7qB,EAAQi0B,GAAO54B,IAAYi5B,EAAYC,KADjC76B,EAKpCsG,IACAC,IAGFD,GAASi0B,EACTh0B,GAAOg0B,EAOT,OAJIh0B,EAAMD,IACRC,GAAOg0B,GAGF,CACLj0B,MAAOA,EACPC,IAAKA,EACLksB,KAAMA,EACN1R,MAAO0Z,EAAQ1Z,OAmBCka,CAAWR,EAAStJ,EAAQuJ,GAC1Cp0B,EAAQy0B,EAAYz0B,MACpBC,EAAMw0B,EAAYx0B,IAClBksB,EAAOsI,EAAYtI,KACnB1R,EAAQga,EAAYha,MAEpB8T,EAAS,GACTqG,GAAS,EACTC,EAAW,KAWXC,EAAc,WAChB,OAAOF,GARAhB,EAAQU,EAAYD,EAAW15B,IAA6C,IAAnCk5B,EAAQS,EAAYD,IAWlEU,EAAa,WACf,OAAQH,GAR4B,IAA7Bf,EAAQU,EAAU55B,IAAgBi5B,EAAQW,EAAUF,EAAW15B,IAW/DjB,EAAIsG,EAAOmtB,EAAOntB,EAAOtG,GAAKuG,IAAOvG,GAC5CmmB,EAAQgL,EAAOnxB,EAAIu6B,IAETnJ,OAIVnwB,EAAQm5B,EAAUjU,EAAMxkB,OAEVg5B,IAIdO,EAAShB,EAAQj5B,EAAO25B,EAAYC,GAEnB,OAAbM,GAAqBC,MACvBD,EAA0C,IAA/BhB,EAAQl5B,EAAO25B,GAAoB56B,EAAIyzB,GAGnC,OAAb0H,GAAqBE,MACvBxG,EAAOtR,KAAK8W,GAAiB,CAC3B/zB,MAAO60B,EACP50B,IAAKvG,EACLyyB,KAAMA,EACN8H,MAAOA,EACPxZ,MAAOA,KAEToa,EAAW,MAGb1H,EAAOzzB,EACP26B,EAAY15B,GAad,OAViB,OAAbk6B,GACFtG,EAAOtR,KAAK8W,GAAiB,CAC3B/zB,MAAO60B,EACP50B,IAAKA,EACLksB,KAAMA,EACN8H,MAAOA,EACPxZ,MAAOA,KAIJ8T,EAGT,SAASyG,GAAe7T,EAAMiT,GAI5B,IAHA,IAAI7F,EAAS,GACT0G,EAAW9T,EAAK8T,SAEXv7B,EAAI,EAAGA,EAAIu7B,EAAS93B,OAAQzD,IAAK,CACxC,IAAIw7B,EAAMhB,GAAce,EAASv7B,GAAIynB,EAAK0J,OAAQuJ,GAE9Cc,EAAI/3B,QACNoxB,EAAOtR,KAAKrd,MAAM2uB,EAAQ7yB,EAAmBw5B,IAIjD,OAAO3G,EAwGT,SAAS4G,GAAcF,EAAUpK,EAAQuK,GACvC,OAAKA,GAAmBA,EAAe1N,YAAemD,EAOxD,SAAyBoK,EAAUpK,EAAQuK,GACzC,IAMIC,EANApB,EAAQpJ,EAAO1tB,OACfoxB,EAAS,GACTvuB,EAAQi1B,EAAS,GAAGj1B,MACpBtG,EAAIsG,EAEJs1B,EAAa93B,EAA2By3B,GAG5C,IACE,IAAKK,EAAW75B,MAAO45B,EAASC,EAAWn6B,KAAKyC,MAAO,CACrD,IAAIu2B,EAAUkB,EAAO16B,MACjB46B,OAAY,EACZ9a,OAAQ,EACR0S,EAAOtC,EAAO7qB,EAAQi0B,GAE1B,IAAKv6B,EAAIsG,EAAQ,EAAGtG,GAAKy6B,EAAQl0B,IAAKvG,IAAK,CACzC,IAAIuyB,EAAKpB,EAAOnxB,EAAIu6B,GAOhBuB,GANJ/a,EAAQgb,GAAUL,EAAe1N,WAAW,CAC1CpnB,KAAM,UACNo1B,GAAIvI,EACJhiB,GAAI8gB,KAGkBsJ,KACtBhH,EAAOtR,KAAK,CACVjd,MAAOA,EACPC,IAAKvG,EAAI,EACTyyB,KAAMgI,EAAQhI,KACd1R,MAAO8a,IAETA,EAAY9a,EACZza,EAAQtG,EAAI,GAGdyzB,EAAOlB,EACPsJ,EAAY9a,EAGVza,EAAQtG,EAAI,IACd60B,EAAOtR,KAAK,CACVjd,MAAOA,EACPC,IAAKvG,EAAI,EACTyyB,KAAMgI,EAAQhI,KACd1R,MAAOA,IAETza,EAAQtG,EAAI,IAGhB,MAAOsE,GACPs3B,EAAWz3B,EAAEG,GACb,QACAs3B,EAAWv3B,IAGb,OAAOwwB,EA1DAoH,CAAgBV,EAAUpK,EAAQuK,GAHhCH,EAgEX,SAASQ,GAAUlzB,GACjB,MAAO,CACLqX,gBAAiBrX,EAAQqX,gBACzBgc,eAAgBrzB,EAAQqzB,eACxBC,WAAYtzB,EAAQszB,WACpBC,iBAAkBvzB,EAAQuzB,iBAC1BC,gBAAiBxzB,EAAQwzB,gBACzBrW,YAAand,EAAQmd,YACrB7F,YAAatX,EAAQsX,aAIzB,SAAS2b,GAAa/a,EAAO8a,GAC3B,OAAOA,GAAarD,KAAKC,UAAU1X,KAAWyX,KAAKC,UAAUoD,GCv1G/D,SAASxO,GAAQ3rB,EAAQ46B,GAAkB,IAAI10B,EAAOlH,OAAOkH,KAAKlG,GAAS,GAAIhB,OAAO67B,sBAAuB,CAAE,IAAIC,EAAU97B,OAAO67B,sBAAsB76B,GAAa46B,IAAkBE,EAAUA,EAAQ7N,QAAO,SAAU8N,GAAO,OAAO/7B,OAAOosB,yBAAyBprB,EAAQ+6B,GAAK77B,eAAkBgH,EAAK2b,KAAKrd,MAAM0B,EAAM40B,GAAY,OAAO50B,EAElV,SAAS80B,GAAcn5B,GAAU,IAAK,IAAIvD,EAAI,EAAGA,EAAI+F,UAAUtC,OAAQzD,IAAK,CAAE,IAAIsI,EAAyB,MAAhBvC,UAAU/F,GAAa+F,UAAU/F,GAAK,GAAQA,EAAI,EAAKqtB,GAAQ3sB,OAAO4H,IAAS,GAAMujB,SAAQ,SAAUtqB,GAAO,GAAgBgC,EAAQhC,EAAK+G,EAAO/G,OAAsBb,OAAOi8B,0BAA6Bj8B,OAAO+hB,iBAAiBlf,EAAQ7C,OAAOi8B,0BAA0Br0B,IAAmB+kB,GAAQ3sB,OAAO4H,IAASujB,SAAQ,SAAUtqB,GAAOb,OAAOC,eAAe4C,EAAQhC,EAAKb,OAAOosB,yBAAyBxkB,EAAQ/G,OAAe,OAAOgC,EAE7gB,SAASq5B,GAAKr5B,EAAQ5B,EAAUusB,GAAuV,OAAtR0O,GAA9B,qBAAZ7P,SAA2BA,QAAQlsB,IAAcksB,QAAQlsB,IAAqB,SAAc0C,EAAQ5B,EAAUusB,GAAY,IAAI2O,EAErL,SAAwBn7B,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASo7B,GAAgBp7B,MAAuC,OAAOA,EAFOq7B,CAAex5B,EAAQ5B,GAAW,GAAKk7B,EAAL,CAAmB,IAAIG,EAAOt8B,OAAOosB,yBAAyB+P,EAAMl7B,GAAW,OAAIq7B,EAAKn8B,IAAcm8B,EAAKn8B,IAAIV,KAAK+tB,GAAoB8O,EAAK/7B,SAAwBsC,EAAQ5B,EAAUusB,GAAY3qB,GAIja,SAAS05B,GAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIx6B,UAAU,sDAAyDu6B,EAASt7B,UAAYlB,OAAOY,OAAO67B,GAAcA,EAAWv7B,UAAW,CAAEsB,YAAa,CAAEjC,MAAOi8B,EAAUl6B,UAAU,EAAMD,cAAc,KAAeo6B,GAAYC,GAAgBF,EAAUC,GAEnX,SAASC,GAAgB38B,EAAGqB,GAA+G,OAA1Gs7B,GAAkB18B,OAAO28B,gBAAkB,SAAyB58B,EAAGqB,GAAsB,OAAjBrB,EAAE68B,UAAYx7B,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASy7B,GAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZ1Q,UAA4BA,QAAQ2Q,UAAW,OAAO,EAAO,GAAI3Q,QAAQ2Q,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlR,MAAsB,OAAO,EAAM,IAAsF,OAAhFmR,QAAQh8B,UAAUi8B,QAAQ19B,KAAK4sB,QAAQ2Q,UAAUE,QAAS,IAAI,iBAAyB,EAAQ,MAAOz5B,GAAK,OAAO,GAN9P25B,GAA6B,OAAO,WAAkC,IAAsCjJ,EAAlCkJ,EAAQjB,GAAgBU,GAAkB,GAAIC,EAA2B,CAAE,IAAIO,EAAYlB,GAAgBjf,MAAM3a,YAAa2xB,EAAS9H,QAAQ2Q,UAAUK,EAAOh4B,UAAWi4B,QAAqBnJ,EAASkJ,EAAM73B,MAAM2X,KAAM9X,WAAc,OAAOk4B,GAA2BpgB,KAAMgX,IAE5Z,SAASoJ,GAA2BC,EAAM/9B,GAAQ,OAAIA,GAA2B,WAAlB,GAAQA,IAAsC,oBAATA,EAA8Cg+B,GAAuBD,GAAtC/9B,EAEnI,SAASg+B,GAAuBD,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIE,eAAe,6DAAgE,OAAOF,EAI/J,SAASpB,GAAgBr8B,GAAwJ,OAAnJq8B,GAAkBp8B,OAAO28B,eAAiB38B,OAAOusB,eAAiB,SAAyBxsB,GAAK,OAAOA,EAAE68B,WAAa58B,OAAOusB,eAAexsB,KAA8BA,GAExM,SAAS49B,GAAep8B,EAAKjC,GAAK,OAMlC,SAAyBiC,GAAO,GAAIC,MAAMC,QAAQF,GAAM,OAAOA,EANtBq8B,CAAgBr8B,IAIzD,SAA+BA,EAAKjC,GAAK,IAAIu+B,EAAY,MAAPt8B,EAAc,KAAyB,qBAAXlB,QAA0BkB,EAAIlB,OAAOwB,WAAaN,EAAI,cAAe,GAAU,MAANs8B,EAAY,OAAQ,IAAkDC,EAAIp6B,EAAlDq6B,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKJ,EAAKA,EAAGp+B,KAAK8B,KAAQy8B,GAAMF,EAAKD,EAAG75B,QAAQR,QAAoBu6B,EAAKlb,KAAKib,EAAGv9B,QAAYjB,GAAKy+B,EAAKh7B,SAAWzD,GAA3D0+B,GAAK,IAAoE,MAAOp6B,GAAOq6B,GAAK,EAAMv6B,EAAKE,EAAO,QAAU,IAAWo6B,GAAsB,MAAhBH,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAII,EAAI,MAAMv6B,GAAQ,OAAOq6B,EAJzbG,CAAsB38B,EAAKjC,IAAM,GAA4BiC,EAAKjC,IAEnI,WAA8B,MAAM,IAAI2C,UAAU,6IAFuFk8B,GAQzI,SAAS,GAAgB/7B,EAAKvB,EAAKN,GAAiK,OAApJM,KAAOuB,EAAOpC,OAAOC,eAAemC,EAAKvB,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAMmC,cAAc,EAAMC,UAAU,IAAkBF,EAAIvB,GAAON,EAAgB6B,EAE3M,SAAS,GAA2BrC,EAAGsD,GAAkB,IAAIC,EAAuB,qBAAXjD,QAA0BN,EAAEM,OAAOwB,WAAa9B,EAAE,cAAe,IAAKuD,EAAI,CAAE,GAAI9B,MAAMC,QAAQ1B,KAAOuD,EAAK,GAA4BvD,KAAOsD,GAAkBtD,GAAyB,kBAAbA,EAAEgD,OAAqB,CAAMO,IAAIvD,EAAIuD,GAAI,IAAIhE,EAAI,EAAOiE,EAAI,aAAiB,MAAO,CAAElC,EAAGkC,EAAGxC,EAAG,WAAe,OAAIzB,GAAKS,EAAEgD,OAAe,CAAES,MAAM,GAAe,CAAEA,MAAM,EAAOjD,MAAOR,EAAET,OAAWmE,EAAG,SAAWQ,GAAO,MAAMA,GAAQN,EAAGJ,GAAO,MAAM,IAAItB,UAAU,yIAA4I,IAA6C2B,EAAzCC,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEzC,EAAG,WAAeiC,EAAKA,EAAG7D,KAAKM,IAAOgB,EAAG,WAAe,IAAIgD,EAAOT,EAAGU,OAAsC,OAA9BH,EAAmBE,EAAKP,KAAaO,GAASN,EAAG,SAAW26B,GAAOt6B,GAAS,EAAMF,EAAMw6B,GAAQz6B,EAAG,WAAe,IAAWE,GAAiC,MAAbP,EAAGY,QAAgBZ,EAAGY,SAAY,QAAU,GAAIJ,EAAQ,MAAMF,KAE39B,SAAS,GAAQxB,GAAmV,OAAtO,GAArD,oBAAX/B,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,GAEnX,SAAS,GAAmBb,GAAO,OAQnC,SAA4BA,GAAO,GAAIC,MAAMC,QAAQF,GAAM,OAAO,GAAkBA,GAR1C,CAAmBA,IAM7D,SAA0BK,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOwB,WAA2C,MAAtBD,EAAK,cAAuB,OAAOJ,MAAMM,KAAKF,GANjF,CAAiBL,IAAQ,GAA4BA,IAE1H,WAAgC,MAAM,IAAIU,UAAU,wIAF8E,GAIlI,SAAS,GAA4BlC,EAAGoE,GAAU,GAAKpE,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAO,GAAkBA,EAAGoE,GAAS,IAAIpD,EAAIf,OAAOkB,UAAUkD,SAAS3E,KAAKM,GAAGsE,MAAM,GAAI,GAAiE,MAAnD,WAANtD,GAAkBhB,EAAEyC,cAAazB,EAAIhB,EAAEyC,YAAY3C,MAAgB,QAANkB,GAAqB,QAANA,EAAoBS,MAAMM,KAAK/B,GAAc,cAANgB,GAAqB,2CAA2CuD,KAAKvD,GAAW,GAAkBhB,EAAGoE,QAAzG,GAM7S,SAAS,GAAkB5C,EAAKgD,IAAkB,MAAPA,GAAeA,EAAMhD,EAAIwB,UAAQwB,EAAMhD,EAAIwB,QAAQ,IAAK,IAAIzD,EAAI,EAAGkF,EAAO,IAAIhD,MAAM+C,GAAMjF,EAAIiF,EAAKjF,IAAOkF,EAAKlF,GAAKiC,EAAIjC,GAAM,OAAOkF,EAEhL,SAAS,GAAgB9B,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIV,UAAU,qCAEhH,SAAS,GAAkBY,EAAQC,GAAS,IAAK,IAAIxD,EAAI,EAAGA,EAAIwD,EAAMC,OAAQzD,IAAK,CAAE,IAAI0D,EAAaF,EAAMxD,GAAI0D,EAAW9C,WAAa8C,EAAW9C,aAAc,EAAO8C,EAAWX,cAAe,EAAU,UAAWW,IAAYA,EAAWV,UAAW,GAAMtC,OAAOC,eAAe4C,EAAQG,EAAWnC,IAAKmC,IAE7S,SAAS,GAAaL,EAAaO,EAAYC,GAAmJ,OAAhID,GAAY,GAAkBP,EAAYzB,UAAWgC,GAAiBC,GAAa,GAAkBR,EAAaQ,GAAqBR,EAWzM,IA4MI07B,GAAW,IA5Ma,WAC1B,SAASC,IACP,GAAgBnhB,KAAMmhB,GAEtBnhB,KAAKohB,SAAW,KAChBphB,KAAKqhB,QAAU,IAAI/G,IACnBta,KAAKshB,UAAW,EAChBthB,KAAKuhB,eAAYtuB,EAkMnB,OA/LA,GAAakuB,EAAU,CAAC,CACtBz9B,IAAK,UACLN,MAAO,SAAiBsf,EAAO8e,EAAOC,EAAM14B,GAC1C,IAAI24B,EAAYF,EAAMzT,UAAUhlB,GAC5B44B,EAAWH,EAAMI,SACrBF,EAAU1T,SAAQ,SAAUrmB,GAC1B,OAAOA,EAAG,CACR+a,MAAOA,EACPmf,QAASL,EAAMK,QACfF,SAAUA,EACVG,YAAa31B,KAAK4B,IAAI0zB,EAAOD,EAAM/4B,MAAOk5B,UAI/C,CACDj+B,IAAK,WACLN,MAAO,WACL,IAAIqd,EAAKT,KAELS,EAAG2gB,WAIP3gB,EAAG6gB,UAAW,EACd7gB,EAAG2gB,SAAW95B,EAAiBhF,KAAKiF,QAAQ,WAC1CkZ,EAAGshB,UAEHthB,EAAG2gB,SAAW,KAEV3gB,EAAG6gB,UACL7gB,EAAGuhB,iBAIR,CACDt+B,IAAK,UACLN,MAAO,WACL,IAAIq+B,EAAOv5B,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK+5B,KAAKC,MAChFzhB,EAAKT,KACLmiB,EAAY,EAEhB1hB,EAAG4gB,QAAQrT,SAAQ,SAAUwT,EAAO9e,GAClC,GAAK8e,EAAMY,SAAYZ,EAAMtT,MAAMtoB,OAAnC,CASA,IALA,IAGIy8B,EAHAnU,EAAQsT,EAAMtT,MACd/rB,EAAI+rB,EAAMtoB,OAAS,EACnB08B,GAAO,EAGJngC,GAAK,IAAKA,GACfkgC,EAAOnU,EAAM/rB,IAEJogC,SACHF,EAAKG,OAAShB,EAAMI,WACtBJ,EAAMI,SAAWS,EAAKG,QAGxBH,EAAKI,KAAKhB,GACVa,GAAO,IAEPpU,EAAM/rB,GAAK+rB,EAAMA,EAAMtoB,OAAS,GAChCsoB,EAAMwU,OAINJ,IACF5f,EAAM4f,OAEN7hB,EAAGkiB,QAAQjgB,EAAO8e,EAAOC,EAAM,aAG5BvT,EAAMtoB,SACT47B,EAAMY,SAAU,EAEhB3hB,EAAGkiB,QAAQjgB,EAAO8e,EAAOC,EAAM,YAE/BD,EAAMK,SAAU,GAGlBM,GAAajU,EAAMtoB,WAGrB6a,EAAG8gB,UAAYE,EAEG,IAAdU,IACF1hB,EAAG6gB,UAAW,KAGjB,CACD59B,IAAK,YACLN,MAAO,SAAmBsf,GACxB,IAAIkgB,EAAS5iB,KAAKqhB,QACdG,EAAQoB,EAAO5/B,IAAI0f,GAevB,OAbK8e,IACHA,EAAQ,CACNY,SAAS,EACTP,SAAS,EACT3T,MAAO,GACPH,UAAW,CACT8U,SAAU,GACVC,SAAU,KAGdF,EAAOxiB,IAAIsC,EAAO8e,IAGbA,IAER,CACD99B,IAAK,SACLN,MAAO,SAAgBsf,EAAOqgB,EAAOC,GACnChjB,KAAKijB,UAAUvgB,GAAOqL,UAAUgV,GAAOrd,KAAKsd,KAE7C,CACDt/B,IAAK,MACLN,MAAO,SAAasf,EAAOwL,GACzB,IAAIgV,EAEChV,GAAUA,EAAMtoB,SAIpBs9B,EAAwBljB,KAAKijB,UAAUvgB,GAAOwL,OAAOxI,KAAKrd,MAAM66B,EAAuB,GAAmBhV,MAE5G,CACDxqB,IAAK,MACLN,MAAO,SAAasf,GAClB,OAAO1C,KAAKijB,UAAUvgB,GAAOwL,MAAMtoB,OAAS,IAE7C,CACDlC,IAAK,QACLN,MAAO,SAAesf,GACpB,IAAI8e,EAAQxhB,KAAKqhB,QAAQr+B,IAAI0f,GAExB8e,IAILA,EAAMY,SAAU,EAChBZ,EAAM/4B,MAAQw5B,KAAKC,MACnBV,EAAMI,SAAWJ,EAAMtT,MAAMiV,QAAO,SAAUC,EAAKC,GACjD,OAAOl3B,KAAK6B,IAAIo1B,EAAKC,EAAIC,aACxB,GAEHtjB,KAAKgiB,cAEN,CACDt+B,IAAK,UACLN,MAAO,SAAiBsf,GACtB,IAAK1C,KAAKshB,SACR,OAAO,EAGT,IAAIE,EAAQxhB,KAAKqhB,QAAQr+B,IAAI0f,GAE7B,SAAK8e,GAAUA,EAAMY,SAAYZ,EAAMtT,MAAMtoB,UAM9C,CACDlC,IAAK,OACLN,MAAO,SAAcsf,GACnB,IAAI8e,EAAQxhB,KAAKqhB,QAAQr+B,IAAI0f,GAE7B,GAAK8e,GAAUA,EAAMtT,MAAMtoB,OAA3B,CAOA,IAHA,IAAIsoB,EAAQsT,EAAMtT,MACd/rB,EAAI+rB,EAAMtoB,OAAS,EAEhBzD,GAAK,IAAKA,EACf+rB,EAAM/rB,GAAGohC,SAGX/B,EAAMtT,MAAQ,GAEdlO,KAAK2iB,QAAQjgB,EAAO8e,EAAOS,KAAKC,MAAO,eAExC,CACDx+B,IAAK,SACLN,MAAO,SAAgBsf,GACrB,OAAO1C,KAAKqhB,QAAQ3Q,OAAOhO,OAIxBye,EAzMmB,IA6MxBhiB,GAAc,cACdqkB,GAAgB,CAClBC,QAAS,SAAiB9+B,EAAM++B,EAAIC,GAClC,OAAOA,EAAS,GAAMD,EAAK/+B,GAE7B4b,MAAO,SAAe5b,EAAM++B,EAAIC,GAC9B,IAAIC,EAAK,GAAOj/B,GAAQwa,IAEpBwB,EAAKijB,EAAGC,OAAS,GAAOH,GAAMvkB,IAElC,OAAOwB,GAAMA,EAAGkjB,MAAQljB,EAAGmjB,IAAIF,EAAID,GAAQniB,YAAckiB,GAE3DK,OAAQ,SAAgBp/B,EAAM++B,EAAIC,GAChC,OAAOh/B,GAAQ++B,EAAK/+B,GAAQg/B,IAI5B,GAAyB,WAC3B,SAASK,EAAUC,EAAKv+B,EAAQ0mB,EAAMsX,GACpC,GAAgB1jB,KAAMgkB,GAEtB,IAAIE,EAAex+B,EAAO0mB,GAC1BsX,EAAK5W,GAAQ,CAACmX,EAAIP,GAAIA,EAAIQ,EAAcD,EAAIt/B,OAC5C,IAAIA,EAAOmoB,GAAQ,CAACmX,EAAIt/B,KAAMu/B,EAAcR,IAC5C1jB,KAAKuiB,SAAU,EACfviB,KAAKmkB,IAAMF,EAAIt8B,IAAM67B,GAAcS,EAAIl7B,MAAQ,GAAQpE,IACvDqb,KAAKokB,QAAU10B,GAAQu0B,EAAII,SAAW30B,GAAQC,OAC9CqQ,KAAKskB,OAASn4B,KAAKkB,MAAM40B,KAAKC,OAAS+B,EAAIM,OAAS,IACpDvkB,KAAKsjB,UAAYtjB,KAAKwiB,OAASr2B,KAAKkB,MAAM42B,EAAIrC,UAC9C5hB,KAAKwkB,QAAUP,EAAIrP,KACnB5U,KAAKykB,QAAU/+B,EACfsa,KAAK0kB,MAAQtY,EACbpM,KAAK2kB,MAAQhgC,EACbqb,KAAK4kB,IAAMlB,EACX1jB,KAAK6kB,eAAY5xB,EA6FnB,OA1FA,GAAa+wB,EAAW,CAAC,CACvBtgC,IAAK,SACLN,MAAO,WACL,OAAO4c,KAAKuiB,UAEb,CACD7+B,IAAK,SACLN,MAAO,SAAgB6gC,EAAKP,EAAIjC,GAC9B,IAAIhhB,EAAKT,KAET,GAAIS,EAAG8hB,QAAS,CACd9hB,EAAGkiB,SAAQ,GAEX,IAAIuB,EAAezjB,EAAGgkB,QAAQhkB,EAAGikB,OAC7BI,EAAUrD,EAAOhhB,EAAG6jB,OACpBS,EAAStkB,EAAG6iB,UAAYwB,EAC5BrkB,EAAG6jB,OAAS7C,EACZhhB,EAAG6iB,UAAYn3B,KAAKkB,MAAMlB,KAAK6B,IAAI+2B,EAAQd,EAAIrC,WAC/CnhB,EAAG+hB,QAAUsC,EACbrkB,EAAG+jB,QAAUP,EAAIrP,KACjBnU,EAAGmkB,IAAM9X,GAAQ,CAACmX,EAAIP,GAAIA,EAAIQ,EAAcD,EAAIt/B,OAChD8b,EAAGkkB,MAAQ7X,GAAQ,CAACmX,EAAIt/B,KAAMu/B,EAAcR,OAG/C,CACDhgC,IAAK,SACLN,MAAO,WACL,IAAIqd,EAAKT,KAELS,EAAG8hB,UACL9hB,EAAGgiB,KAAKR,KAAKC,OACbzhB,EAAG8hB,SAAU,EAEb9hB,EAAGkiB,SAAQ,MAGd,CACDj/B,IAAK,OACLN,MAAO,SAAcq+B,GACnB,IAOIkC,EAPAljB,EAAKT,KACL8kB,EAAUrD,EAAOhhB,EAAG6jB,OACpB1C,EAAWnhB,EAAG6iB,UACdlX,EAAO3L,EAAGikB,MACV//B,EAAO8b,EAAGkkB,MACV/P,EAAOnU,EAAG+jB,MACVd,EAAKjjB,EAAGmkB,IAIZ,GAFAnkB,EAAG8hB,QAAU59B,IAAS++B,IAAO9O,GAAQkQ,EAAUlD,IAE1CnhB,EAAG8hB,QAKN,OAJA9hB,EAAGgkB,QAAQrY,GAAQsX,OAEnBjjB,EAAGkiB,SAAQ,GAKTmC,EAAU,EACZrkB,EAAGgkB,QAAQrY,GAAQznB,GAIrBg/B,EAASmB,EAAUlD,EAAW,EAC9B+B,EAAS/O,GAAQ+O,EAAS,EAAI,EAAIA,EAASA,EAC3CA,EAASljB,EAAG2jB,QAAQj4B,KAAK4B,IAAI,EAAG5B,KAAK6B,IAAI,EAAG21B,KAC5CljB,EAAGgkB,QAAQrY,GAAQ3L,EAAG0jB,IAAIx/B,EAAM++B,EAAIC,MAErC,CACDjgC,IAAK,OACLN,MAAO,WACL,IAAI4hC,EAAWhlB,KAAK6kB,YAAc7kB,KAAK6kB,UAAY,IACnD,OAAO,IAAII,SAAQ,SAAUC,EAAKC,GAChCH,EAAStf,KAAK,CACZwf,IAAKA,EACLC,IAAKA,SAIV,CACDzhC,IAAK,UACLN,MAAO,SAAiBgiC,GAItB,IAHA,IAAIC,EAASD,EAAW,MAAQ,MAC5BJ,EAAWhlB,KAAK6kB,WAAa,GAExB1iC,EAAI,EAAGA,EAAI6iC,EAASp/B,OAAQzD,IACnC6iC,EAAS7iC,GAAGkjC,SAKXrB,EA9GoB,GAmH7B/hB,GAAS7B,IAAI,YAAa,CACxBmkB,WAAOtxB,EACP2uB,SAAU,IACVyC,OAAQ,eACR18B,QAAIsL,EACJtO,UAAMsO,EACN2hB,UAAM3hB,EACNywB,QAAIzwB,EACJlK,UAAMkK,IAER,IAAI,GAAmBpQ,OAAOkH,KAAKkY,GAASG,WAC5CH,GAASoC,SAAS,YAAa,CAC7BY,WAAW,EACXD,YAAY,EACZF,YAAa,SAAqBpiB,GAChC,MAAgB,eAATA,GAAkC,eAATA,GAAkC,OAATA,KAG7Duf,GAAS7B,IAAI,aAAc,CACzBklB,OAAQ,CACNv8B,KAAM,QACNw8B,WAtBS,CAAC,QAAS,cAAe,oBAwBpCC,QAAS,CACPz8B,KAAM,SACNw8B,WA3BU,CAAC,IAAK,IAAK,cAAe,SAAU,cA8BlDtjB,GAASoC,SAAS,aAAc,CAC9BY,UAAW,cAEbhD,GAAS7B,IAAI,cAAe,CAC1BqlB,OAAQ,CACNrjB,UAAW,CACTwf,SAAU,MAGd8D,OAAQ,CACNtjB,UAAW,CACTwf,SAAU,IAGd+D,KAAM,CACJC,WAAY,CACVN,OAAQ,CACN3gC,KAAM,eAERkhC,QAAS,CACP98B,KAAM,UACN64B,SAAU,KAIhBkE,KAAM,CACJF,WAAY,CACVN,OAAQ,CACN5B,GAAI,eAENmC,QAAS,CACP98B,KAAM,UACNs7B,OAAQ,SACR18B,GAAI,SAAY0K,GACd,OAAW,EAAJA,QAOjB,IAAI,GAA0B,WAC5B,SAAS0zB,EAAWrjB,EAAOsjB,GACzB,GAAgBhmB,KAAM+lB,GAEtB/lB,KAAKimB,OAASvjB,EACd1C,KAAKkmB,YAAc,IAAI5L,IACvBta,KAAKmmB,UAAUH,GA4HjB,OAzHA,GAAaD,EAAY,CAAC,CACxBriC,IAAK,YACLN,MAAO,SAAmB4iC,GACxB,GAAK/8B,EAAS+8B,GAAd,CAIA,IAAII,EAAgBpmB,KAAKkmB,YACzBrjC,OAAOwjC,oBAAoBL,GAAQhY,SAAQ,SAAUtqB,GACnD,IAAIugC,EAAM+B,EAAOtiC,GAEjB,GAAKuF,EAASg7B,GAAd,CAIA,IAGIqC,EAHAlB,EAAW,GAEXmB,EAAY,GAA2B,IAG3C,IACE,IAAKA,EAAUriC,MAAOoiC,EAAQC,EAAU3iC,KAAKyC,MAAO,CAClD,IAAImgC,EAASF,EAAMljC,MACnBgiC,EAASoB,GAAUvC,EAAIuC,IAEzB,MAAO//B,GACP8/B,EAAUjgC,EAAEG,GACZ,QACA8/B,EAAU//B,KAGXlC,EAAQ2/B,EAAIsB,aAAetB,EAAIsB,YAAc,CAAC7hC,IAAMsqB,SAAQ,SAAU5B,GACjEA,IAAS1oB,GAAQ0iC,EAAc/W,IAAIjD,IACrCga,EAAchmB,IAAIgM,EAAMgZ,aAK/B,CACD1hC,IAAK,kBACLN,MAAO,SAAyBsC,EAAQsc,GACtC,IAAIykB,EAAazkB,EAAOhX,QACpBA,EAiGV,SAA8BtF,EAAQ+gC,GACpC,IAAKA,EACH,OAGF,IAAIz7B,EAAUtF,EAAOsF,QAErB,IAAKA,EAEH,YADAtF,EAAOsF,QAAUy7B,GAIfz7B,EAAQ07B,UACVhhC,EAAOsF,QAAUA,EAAUnI,OAAO6c,OAAO,GAAI1U,EAAS,CACpD07B,SAAS,EACTC,YAAa,MAIjB,OAAO37B,EApHW47B,CAAqBlhC,EAAQ+gC,GAE3C,IAAKz7B,EACH,MAAO,GAGT,IAAI46B,EAAa5lB,KAAK6mB,kBAAkB77B,EAASy7B,GAQjD,OANIA,EAAWC,SA0ErB,SAAkBd,EAAYL,GAI5B,IAHA,IAAInD,EAAU,GACVr4B,EAAOlH,OAAOkH,KAAKw7B,GAEdpjC,EAAI,EAAGA,EAAI4H,EAAKnE,OAAQzD,IAAK,CACpC,IAAI2kC,EAAOlB,EAAW77B,EAAK5H,IAEvB2kC,GAAQA,EAAKrB,UACfrD,EAAQ1c,KAAKohB,EAAKC,QAItB,OAAO9B,QAAQ+B,IAAI5E,GArFb6E,CAASvhC,EAAOsF,QAAQ27B,YAAaF,GAAYS,MAAK,WACpDxhC,EAAOsF,QAAUy7B,KAChB,eAGEb,IAER,CACDliC,IAAK,oBACLN,MAAO,SAA2BsC,EAAQsc,GACxC,IAKI7f,EALAikC,EAAgBpmB,KAAKkmB,YACrBN,EAAa,GACbxD,EAAU18B,EAAOihC,cAAgBjhC,EAAOihC,YAAc,IACtDhhC,EAAQ9C,OAAOkH,KAAKiY,GACpByf,EAAOQ,KAAKC,MAGhB,IAAK//B,EAAIwD,EAAMC,OAAS,EAAGzD,GAAK,IAAKA,EAAG,CACtC,IAAIiqB,EAAOzmB,EAAMxD,GAEjB,GAAuB,MAAnBiqB,EAAKtgB,OAAO,GAIhB,GAAa,YAATsgB,EAAJ,CAKA,IAAIhpB,EAAQ4e,EAAOoK,GACfhK,EAAYggB,EAAQhW,GACpB6X,EAAMmC,EAAcpjC,IAAIopB,GAE5B,GAAIhK,EAAW,CACb,GAAI6hB,GAAO7hB,EAAUqjB,SAAU,CAC7BrjB,EAAU+kB,OAAOlD,EAAK7gC,EAAOq+B,GAC7B,SAEArf,EAAUmhB,SAITU,GAAQA,EAAIrC,UAKjBQ,EAAQhW,GAAQhK,EAAY,IAAI,GAAU6hB,EAAKv+B,EAAQ0mB,EAAMhpB,GAC7DwiC,EAAWlgB,KAAKtD,IALd1c,EAAO0mB,GAAQhpB,OAlBfwiC,EAAWlgB,KAAKrd,MAAMu9B,EAAY,GAAmB5lB,KAAKonB,gBAAgB1hC,EAAQsc,KA0BtF,OAAO4jB,IAER,CACDliC,IAAK,SACLN,MAAO,SAAgBsC,EAAQsc,GAC7B,GAA8B,IAA1BhC,KAAKkmB,YAAYjjB,KAArB,CAKA,IAAI2iB,EAAa5lB,KAAK6mB,kBAAkBnhC,EAAQsc,GAEhD,OAAI4jB,EAAWhgC,QACbs7B,GAAS9S,IAAIpO,KAAKimB,OAAQL,IACnB,QAFT,EANE/iC,OAAO6c,OAAOha,EAAQsc,OAarB+jB,EAlIqB,GA0K9B,SAASsB,GAAUnjB,EAAOojB,GACxB,IAAIzd,EAAO3F,GAASA,EAAMlZ,SAAW,GACjClB,EAAU+f,EAAK/f,QACfiE,OAAmBkF,IAAb4W,EAAK9b,IAAoBu5B,EAAkB,EACjDt5B,OAAmBiF,IAAb4W,EAAK7b,IAAoBs5B,EAAkB,EACrD,MAAO,CACL7+B,MAAOqB,EAAUkE,EAAMD,EACvBrF,IAAKoB,EAAUiE,EAAMC,GAwCzB,SAASu5B,GAAwB7kB,EAAO8kB,GACtC,IAIIrlC,EAAGgI,EAJHJ,EAAO,GAEP09B,EAAW/kB,EAAMglB,uBAAuBF,GAI5C,IAAKrlC,EAAI,EAAGgI,EAAOs9B,EAAS7hC,OAAQzD,EAAIgI,IAAQhI,EAC9C4H,EAAK2b,KAAK+hB,EAAStlC,GAAGoI,OAGxB,OAAOR,EAGT,SAAS49B,GAAYC,EAAOxkC,EAAOykC,EAAS78B,GAC1C,IAEI7I,EAAGgI,EAAMG,EAAcw9B,EAFvB/9B,EAAO69B,EAAM79B,KACbg+B,EAA8B,WAAjB/8B,EAAQ1H,KAGzB,GAAc,OAAVF,EAAJ,CAIA,IAAKjB,EAAI,EAAGgI,EAAOJ,EAAKnE,OAAQzD,EAAIgI,IAAQhI,EAAG,CAG7C,IAFAmI,GAAgBP,EAAK5H,MAEA0lC,EAAS,CAC5B,GAAI78B,EAAQg8B,IACV,SAGF,MAGFc,EAAaF,EAAM5lB,OAAO1X,GAEtBpB,EAAe4+B,KAAgBC,GAAwB,IAAV3kC,GAAeyJ,EAAKzJ,KAAWyJ,EAAKi7B,MACnF1kC,GAAS0kC,GAIb,OAAO1kC,GAmBT,SAAS4kC,GAAU9jB,EAAO+jB,GACxB,IAAIC,EAAUhkB,GAASA,EAAMlZ,QAAQk9B,QACrC,OAAOA,QAAuBj1B,IAAZi1B,QAAwCj1B,IAAfg1B,EAAKL,MAoBlD,SAASO,GAAiBC,EAAQC,EAAUC,GAC1C,IAAIC,EAAWH,EAAOC,KAAcD,EAAOC,GAAY,IACvD,OAAOE,EAASD,KAAgBC,EAASD,GAAc,IAGzD,SAASE,GAAoBZ,EAAOa,EAAQC,GAC1C,IACIzc,EADAI,EAAa,GAA2Boc,EAAOE,wBAAwB,OAAO7+B,WAGlF,IACE,IAAKuiB,EAAWnoB,MAAO+nB,EAASI,EAAWzoB,KAAKyC,MAAO,CACrD,IAAI4hC,EAAOhc,EAAO7oB,MACdA,EAAQwkC,EAAMK,EAAK19B,OAEvB,GAAIm+B,GAAYtlC,EAAQ,IAAMslC,GAAYtlC,EAAQ,EAChD,OAAO6kC,EAAK19B,OAGhB,MAAO9D,GACP4lB,EAAW/lB,EAAEG,GACb,QACA4lB,EAAW7lB,IAGb,OAAO,KAGT,SAASoiC,GAAaC,EAAYC,GAahC,IAZA,IAUIlB,EAVAllB,EAAQmmB,EAAWnmB,MACnBulB,EAAOY,EAAWE,YAClBX,EAAS1lB,EAAMsmB,UAAYtmB,EAAMsmB,QAAU,IAC3CC,EAAShB,EAAKgB,OACdR,EAASR,EAAKQ,OACdn+B,EAAe29B,EAAK19B,MACpB2+B,EAAQD,EAAOE,KACfC,EAAQX,EAAOU,KACfzlC,EArDN,SAAqB2lC,EAAYC,EAAYrB,GAC3C,MAAO,GAAG5nB,OAAOgpB,EAAWzgC,GAAI,KAAKyX,OAAOipB,EAAW1gC,GAAI,KAAKyX,OAAO4nB,EAAKL,OAASK,EAAKl/B,MAoDhFwgC,CAAYN,EAAQR,EAAQR,GAClC99B,EAAO2+B,EAAOljC,OAGTzD,EAAI,EAAGA,EAAIgI,IAAQhI,EAAG,CAC7B,IAAIkgC,EAAOyG,EAAO3mC,GACdoI,EAAQ83B,EAAK6G,GACb9lC,EAAQi/B,EAAK+G,IAEjBxB,GADiBvF,EAAK2G,UAAY3G,EAAK2G,QAAU,KAC9BI,GAASjB,GAAiBC,EAAQ1kC,EAAK6G,IACpDD,GAAgBlH,EACtBwkC,EAAM4B,KAAOhB,GAAoBZ,EAAOa,GAAQ,GAChDb,EAAM6B,QAAUjB,GAAoBZ,EAAOa,GAAQ,IAIvD,SAASiB,GAAgBhnB,EAAOymB,GAC9B,IAAIhlB,EAASzB,EAAMyB,OACnB,OAAOthB,OAAOkH,KAAKoa,GAAQ2M,QAAO,SAAUptB,GAC1C,OAAOygB,EAAOzgB,GAAKylC,OAASA,KAC3BQ,QA2BL,SAASC,GAAY3B,EAAM/Z,GACzB,IAAIib,EAAOlB,EAAKQ,QAAUR,EAAKQ,OAAOU,KAEtC,GAAKA,EAAL,CAMA,IACIpY,EADAC,EAAa,GAFjB9C,EAAQA,GAAS+Z,EAAK4B,SAKtB,IACE,IAAK7Y,EAAW9sB,MAAO6sB,EAASC,EAAWptB,KAAKyC,MAAO,CACrD,IACI+hC,EADSrX,EAAO3tB,MACA4lC,QAEpB,IAAKZ,QAA2Bn1B,IAAjBm1B,EAAOe,SAAoDl2B,IAA7Bm1B,EAAOe,GAAMlB,EAAK19B,OAC7D,cAGK69B,EAAOe,GAAMlB,EAAK19B,QAE3B,MAAO9D,GACPuqB,EAAW1qB,EAAEG,GACb,QACAuqB,EAAWxqB,MAIf,IAAIsjC,GAAqB,SAA4BxmC,GACnD,MAAgB,UAATA,GAA6B,SAATA,GAGzBymC,GAAmB,SAA0BC,EAAQC,GACvD,OAAOA,EAASD,EAASnnC,OAAO6c,OAAO,GAAIsqB,IAGzC,GAAiC,WACnC,SAASE,EAAkBxnB,EAAOpY,GAChC,GAAgB0V,KAAMkqB,GAEtBlqB,KAAK0C,MAAQA,EACb1C,KAAKmqB,KAAOznB,EAAMY,IAClBtD,KAAKzV,MAAQD,EACb0V,KAAKoqB,gBAAkB,GACvBpqB,KAAK+oB,YAAc/oB,KAAKqqB,UACxBrqB,KAAKsqB,MAAQtqB,KAAK+oB,YAAYhgC,KAC9BiX,KAAKhV,aAAUiI,EACf+M,KAAKuqB,UAAW,EAChBvqB,KAAKwqB,WAAQv3B,EACb+M,KAAKyqB,iBAAcx3B,EACnB+M,KAAK0qB,oBAAiBz3B,EACtB+M,KAAK2qB,gBAAa13B,EAClB+M,KAAK4qB,gBAAa33B,EAClB+M,KAAK6qB,qBAAsB,EAC3B7qB,KAAK8qB,cAAW73B,EAChB+M,KAAK+qB,UAAY,GACjB/qB,KAAKgrB,aA8uBP,OA3uBA,GAAad,EAAmB,CAAC,CAC/BxmC,IAAK,aACLN,MAAO,WACL,IAAIqd,EAAKT,KACLioB,EAAOxnB,EAAGsoB,YACdtoB,EAAG0lB,YACH1lB,EAAGwqB,aACHhD,EAAKiD,SAAWlD,GAAUC,EAAKQ,OAAQR,GACvCxnB,EAAG0qB,gBAEJ,CACDznC,IAAK,cACLN,MAAO,SAAqBkH,GACtB0V,KAAKzV,QAAUD,GACjBs/B,GAAY5pB,KAAK+oB,aAGnB/oB,KAAKzV,MAAQD,IAEd,CACD5G,IAAK,aACLN,MAAO,WACL,IAAIqd,EAAKT,KACL0C,EAAQjC,EAAGiC,MACXulB,EAAOxnB,EAAGsoB,YACVqC,EAAU3qB,EAAG4qB,aAEbC,EAAW,SAAkBnC,EAAM17B,EAAGC,EAAGzK,GAC3C,MAAgB,MAATkmC,EAAe17B,EAAa,MAAT07B,EAAelmC,EAAIyK,GAG3C69B,EAAMtD,EAAKuD,QAAUjiC,EAAe6hC,EAAQI,QAAS9B,GAAgBhnB,EAAO,MAC5E+oB,EAAMxD,EAAKyD,QAAUniC,EAAe6hC,EAAQM,QAAShC,GAAgBhnB,EAAO,MAC5EipB,EAAM1D,EAAK2D,QAAUriC,EAAe6hC,EAAQQ,QAASlC,GAAgBhnB,EAAO,MAC5Ee,EAAYwkB,EAAKxkB,UACjBooB,EAAM5D,EAAK6D,QAAUR,EAAS7nB,EAAW8nB,EAAKE,EAAKE,GACnDI,EAAM9D,EAAK+D,QAAUV,EAAS7nB,EAAWgoB,EAAKF,EAAKI,GACvD1D,EAAKgE,OAASxrB,EAAGyrB,cAAcX,GAC/BtD,EAAKkE,OAAS1rB,EAAGyrB,cAAcT,GAC/BxD,EAAKmE,OAAS3rB,EAAGyrB,cAAcP,GAC/B1D,EAAKgB,OAASxoB,EAAGyrB,cAAcL,GAC/B5D,EAAKQ,OAAShoB,EAAGyrB,cAAcH,KAEhC,CACDroC,IAAK,aACLN,MAAO,WACL,OAAO4c,KAAK0C,MAAMyC,KAAK5C,SAASvC,KAAKzV,SAEtC,CACD7G,IAAK,UACLN,MAAO,WACL,OAAO4c,KAAK0C,MAAM2pB,eAAersB,KAAKzV,SAEvC,CACD7G,IAAK,gBACLN,MAAO,SAAuBkpC,GAC5B,OAAOtsB,KAAK0C,MAAMyB,OAAOmoB,KAE1B,CACD5oC,IAAK,iBACLN,MAAO,SAAwB8gB,GAC7B,IAAI+jB,EAAOjoB,KAAK+oB,YAChB,OAAO7kB,IAAU+jB,EAAKgB,OAAShB,EAAKQ,OAASR,EAAKgB,SAEnD,CACDvlC,IAAK,QACLN,MAAO,WACL4c,KAAK+hB,QAAQ,WAEd,CACDr+B,IAAK,WACLN,MAAO,WACL,IAAI6kC,EAAOjoB,KAAK+oB,YAEZ/oB,KAAKwqB,OACP7c,GAAoB3N,KAAKwqB,MAAOxqB,MAG9BioB,EAAKiD,UACPtB,GAAY3B,KAGf,CACDvkC,IAAK,aACLN,MAAO,WACL,ID0gCqB0K,EAAO8f,EC1gCxBnN,EAAKT,KACLorB,EAAU3qB,EAAG4qB,aACblmB,EAAOimB,EAAQjmB,OAASimB,EAAQjmB,KAAO,IACvCqlB,EAAQ/pB,EAAG+pB,MAEf,GAAIvhC,EAASkc,GACX1E,EAAG+pB,MAjRX,SAAkCrlB,GAChC,IAEIhjB,EAAGgI,EAAMzG,EAFTqG,EAAOlH,OAAOkH,KAAKob,GACnBonB,EAAQ,IAAIloC,MAAM0F,EAAKnE,QAG3B,IAAKzD,EAAI,EAAGgI,EAAOJ,EAAKnE,OAAQzD,EAAIgI,IAAQhI,EAC1CuB,EAAMqG,EAAK5H,GACXoqC,EAAMpqC,GAAK,CACTsL,EAAG/J,EACHgK,EAAGyX,EAAKzhB,IAIZ,OAAO6oC,EAoQUC,CAAyBrnB,QAC/B,GAAIqlB,IAAUrlB,EAAM,CACzB,GAAIqlB,EAAO,CACT7c,GAAoB6c,EAAO/pB,GAC3B,IAAIwnB,EAAOxnB,EAAGsoB,YACda,GAAY3B,GACZA,EAAK4B,QAAU,GAGb1kB,GAAQtiB,OAAO4pC,aAAatnB,KD2/BNyI,EC1/BAnN,GD0/BP3S,EC1/BCqX,GD2/BhB2I,SACRhgB,EAAMggB,SAASC,UAAUrI,KAAKkI,IAKhC/qB,OAAOC,eAAegL,EAAO,WAAY,CACvC5I,cAAc,EACdnC,YAAY,EACZK,MAAO,CACL2qB,UAAW,CAACH,MAGhBF,GAAYM,SAAQ,SAAUtqB,GAC5B,IAAI2hC,EAAS,UAAYz5B,EAAYlI,GAEjCs7B,EAAOlxB,EAAMpK,GACjBb,OAAOC,eAAegL,EAAOpK,EAAK,CAChCwB,cAAc,EACdnC,YAAY,EACZK,MAAO,WACL,IAAK,IAAIspC,EAAQxkC,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAMqoC,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF5kC,EAAK4kC,GAASzkC,UAAUykC,GAG1B,IAAIzH,EAAMlG,EAAK32B,MAAM2X,KAAMjY,GAQ3B,OANA+F,EAAMggB,SAASC,UAAUC,SAAQ,SAAUnqB,GACX,oBAAnBA,EAAOwhC,IAChBxhC,EAAOwhC,GAAQh9B,MAAMxE,EAAQkE,MAI1Bm9B,UCzhCPzkB,EAAGsqB,UAAY,GACftqB,EAAG+pB,MAAQrlB,KAGd,CACDzhB,IAAK,cACLN,MAAO,WACL,IAAIqd,EAAKT,KACLioB,EAAOxnB,EAAGsoB,YAEdtoB,EAAGmsB,aAECnsB,EAAGosB,qBACL5E,EAAKmD,QAAU,IAAI3qB,EAAGosB,sBAGzB,CACDnpC,IAAK,wBACLN,MAAO,SAA+B0pC,GACpC,IAAIrsB,EAAKT,KACLioB,EAAOxnB,EAAGsoB,YACVqC,EAAU3qB,EAAG4qB,aACb0B,GAAe,EAEnBtsB,EAAGmsB,aAEH,IAAII,EAAa/E,EAAKiD,SACtBjD,EAAKiD,SAAWlD,GAAUC,EAAKQ,OAAQR,GAEnCA,EAAKL,QAAUwD,EAAQxD,QACzBmF,GAAe,EACfnD,GAAY3B,GACZA,EAAKL,MAAQwD,EAAQxD,OAGvBnnB,EAAGwsB,gBAAgBH,IAEfC,GAAgBC,IAAe/E,EAAKiD,WACtCtC,GAAanoB,EAAIwnB,EAAK4B,WAGzB,CACDnmC,IAAK,YACLN,MAAO,WACL,IAAIqd,EAAKT,KACLgmB,EAASvlB,EAAGiC,MAAMsjB,OAClBkH,EAAYlH,EAAOmH,iBAAiB1sB,EAAG6pB,OACvChc,EAAS0X,EAAOoH,gBAAgB3sB,EAAG4qB,aAAc6B,GAAW,GAChEzsB,EAAGzV,QAAUg7B,EAAOqH,eAAe/e,EAAQ7N,EAAGmG,cAC9CnG,EAAG8pB,SAAW9pB,EAAGzV,QAAQ+Y,UAE1B,CACDrgB,IAAK,QACLN,MAAO,SAAeqF,EAAOi0B,GAC3B,IAQIv6B,EAAGkhC,EAAKyF,EARRroB,EAAKT,KACLioB,EAAOxnB,EAAGsoB,YACV5jB,EAAO1E,EAAG+pB,MACVvB,EAAShB,EAAKgB,OACdiC,EAAWjD,EAAKiD,SAChBhC,EAAQD,EAAOE,KACfmE,EAAmB,IAAV7kC,GAAei0B,IAAUvX,EAAKvf,QAAgBqiC,EAAKsF,QAC5D3X,EAAOntB,EAAQ,GAAKw/B,EAAK4B,QAAQphC,EAAQ,GAG7C,IAAoB,IAAhBgY,EAAG8pB,SACLtC,EAAK4B,QAAU1kB,EACf8iB,EAAKsF,SAAU,EACfzE,EAAS3jB,MACJ,CAEH2jB,EADExkC,EAAQ6gB,EAAK1c,IACNgY,EAAG+sB,eAAevF,EAAM9iB,EAAM1c,EAAOi0B,GACrCzzB,EAASkc,EAAK1c,IACdgY,EAAGgtB,gBAAgBxF,EAAM9iB,EAAM1c,EAAOi0B,GAEtCjc,EAAGitB,mBAAmBzF,EAAM9iB,EAAM1c,EAAOi0B,GAOpD,IAAKv6B,EAAI,EAAGA,EAAIu6B,IAASv6B,EACvB8lC,EAAK4B,QAAQ1nC,EAAIsG,GAAS46B,EAAMyF,EAAO3mC,GAEnCmrC,KANkB,OAAfjK,EAAI6F,IAAmBtT,GAAQyN,EAAI6F,GAAStT,EAAKsT,MAQpDoE,GAAS,GAGX1X,EAAOyN,GAIX4E,EAAKsF,QAAUD,EAGbpC,GACFtC,GAAanoB,EAAIqoB,KAGpB,CACDplC,IAAK,qBACLN,MAAO,SAA4B6kC,EAAM9iB,EAAM1c,EAAOi0B,GACpD,IAOIv6B,EAAGgI,EAAMI,EAPT0+B,EAAShB,EAAKgB,OACdR,EAASR,EAAKQ,OACdS,EAAQD,EAAOE,KACfC,EAAQX,EAAOU,KACfwE,EAAS1E,EAAO2E,YAChBC,EAAc5E,IAAWR,EACzBK,EAAS,IAAIzkC,MAAMq4B,GAGvB,IAAKv6B,EAAI,EAAGgI,EAAOuyB,EAAOv6B,EAAIgI,IAAQhI,EAAG,CACvC,IAAI2rC,EAEJvjC,EAAQpI,EAAIsG,EACZqgC,EAAO3mC,IAAsB,GAAhB2rC,EAAY,GAA+B5E,EAAO2E,GAAe5E,EAAO8E,MAAMJ,EAAOpjC,GAAQA,IAAS,GAAgBujC,EAAW1E,EAAOX,EAAOsF,MAAM5oB,EAAK5a,GAAQA,IAASujC,GAG1L,OAAOhF,IAER,CACDplC,IAAK,iBACLN,MAAO,SAAwB6kC,EAAM9iB,EAAM1c,EAAOi0B,GAChD,IAGIv6B,EAAGgI,EAAMI,EAAO83B,EAHhB4J,EAAShE,EAAKgE,OACdE,EAASlE,EAAKkE,OACdrD,EAAS,IAAIzkC,MAAMq4B,GAGvB,IAAKv6B,EAAI,EAAGgI,EAAOuyB,EAAOv6B,EAAIgI,IAAQhI,EAEpCkgC,EAAOld,EADP5a,EAAQpI,EAAIsG,GAEZqgC,EAAO3mC,GAAK,CACVsL,EAAGw+B,EAAO8B,MAAM1L,EAAK,GAAI93B,GACzBmD,EAAGy+B,EAAO4B,MAAM1L,EAAK,GAAI93B,IAI7B,OAAOu+B,IAER,CACDplC,IAAK,kBACLN,MAAO,SAAyB6kC,EAAM9iB,EAAM1c,EAAOi0B,GACjD,IAQIv6B,EAAGgI,EAAMI,EAAO83B,EARhB4J,EAAShE,EAAKgE,OACdE,EAASlE,EAAKkE,OACd6B,EAAiBhuB,KAAKuqB,SACtB0D,EAAwBD,EAAeE,SACvCA,OAAqC,IAA1BD,EAAmC,IAAMA,EACpDE,EAAwBH,EAAeI,SACvCA,OAAqC,IAA1BD,EAAmC,IAAMA,EACpDrF,EAAS,IAAIzkC,MAAMq4B,GAGvB,IAAKv6B,EAAI,EAAGgI,EAAOuyB,EAAOv6B,EAAIgI,IAAQhI,EAEpCkgC,EAAOld,EADP5a,EAAQpI,EAAIsG,GAEZqgC,EAAO3mC,GAAK,CACVsL,EAAGw+B,EAAO8B,MAAMriC,EAAiB22B,EAAM6L,GAAW3jC,GAClDmD,EAAGy+B,EAAO4B,MAAMriC,EAAiB22B,EAAM+L,GAAW7jC,IAItD,OAAOu+B,IAER,CACDplC,IAAK,YACLN,MAAO,SAAmBmH,GACxB,OAAOyV,KAAK+oB,YAAYc,QAAQt/B,KAEjC,CACD7G,IAAK,iBACLN,MAAO,SAAwBmH,GAC7B,OAAOyV,KAAK+oB,YAAY5jB,KAAK5a,KAE9B,CACD7G,IAAK,aACLN,MAAO,SAAoB8gB,EAAO4kB,EAAQxlC,GACxC,IAAIof,EAAQ1C,KAAK0C,MACbulB,EAAOjoB,KAAK+oB,YACZ3lC,EAAQ0lC,EAAO5kB,EAAMilB,MAKzB,OAAOxB,GAJK,CACV59B,KAAMw9B,GAAwB7kB,GAAO,GACrCV,OAAQ8mB,EAAOE,QAAQ9kB,EAAMilB,OAEL/lC,EAAO6kC,EAAK19B,MAAO,CAC3CjH,KAAMA,MAGT,CACDI,IAAK,wBACLN,MAAO,SAA+B2J,EAAOmX,EAAO4kB,EAAQlB,GAC1D,IAAIyG,EAAcvF,EAAO5kB,EAAMilB,MAC3B/lC,EAAwB,OAAhBirC,EAAuBC,IAAMD,EACrCrsB,EAAS4lB,GAASkB,EAAOE,QAAQ9kB,EAAMilB,MAEvCvB,GAAS5lB,IACX4lB,EAAM5lB,OAASA,EACfjV,EAAMgB,IAAM5B,KAAK4B,IAAIhB,EAAMgB,IAAK3K,GAChC2J,EAAMiB,IAAM7B,KAAK6B,IAAIjB,EAAMiB,IAAK5K,GAChCA,EAAQukC,GAAYC,EAAOyG,EAAaruB,KAAK+oB,YAAYx+B,MAAO,CAC9Dy8B,KAAK,KAITj6B,EAAMgB,IAAM5B,KAAK4B,IAAIhB,EAAMgB,IAAK3K,GAChC2J,EAAMiB,IAAM7B,KAAK6B,IAAIjB,EAAMiB,IAAK5K,KAEjC,CACDM,IAAK,YACLN,MAAO,SAAmB8gB,EAAOqqB,GAC/B,IAqBIpsC,EAAGiB,EAAO0lC,EAAQhB,EArBlBrnB,EAAKT,KACLioB,EAAOxnB,EAAGsoB,YACVc,EAAU5B,EAAK4B,QACfyD,EAASrF,EAAKsF,SAAWrpB,IAAU+jB,EAAKgB,OACxC9+B,EAAO0/B,EAAQjkC,OAEf4oC,EAAa/tB,EAAGguB,eAAevqB,GAE/B0jB,EAAQ2G,GAAYtG,EAAKiD,UAAY,CACvCnhC,KAAMw9B,GAAwB9mB,EAAGiC,OAAO,GACxCV,OAAQ,MAENjV,EAAQ,CACVgB,IAAK5E,OAAOoD,kBACZyB,IAAK7E,OAAOulC,mBAGVC,EAxeV,SAAuBzqB,GACrB,IAAI0qB,EAAuB1qB,EAAM2qB,gBAC7B9gC,EAAM6gC,EAAqB7gC,IAC3BC,EAAM4gC,EAAqB5gC,IAC3B8gC,EAAaF,EAAqBE,WAClCC,EAAaH,EAAqBG,WAEtC,MAAO,CACLhhC,IAAK+gC,EAAa/gC,EAAM5E,OAAOulC,kBAC/B1gC,IAAK+gC,EAAa/gC,EAAM7E,OAAOoD,mBA+dR,CAAciiC,GAC/BQ,EAAWL,EAAe5gC,IAC1BkhC,EAAWN,EAAe3gC,IAI9B,SAASkhC,IAIP,OAHApG,EAASe,EAAQ1nC,GACjBiB,EAAQ0lC,EAAO5kB,EAAMilB,MACrBrB,EAAagB,EAAO0F,EAAWrF,OACvBjgC,EAAe9F,IAAU4rC,EAAWlH,GAAcmH,EAAWnH,EAGvE,IAAK3lC,EAAI,EAAGA,EAAIgI,IACV+kC,MAIJzuB,EAAG0uB,sBAAsBpiC,EAAOmX,EAAO4kB,EAAQlB,IAE3C0F,MAPkBnrC,GAYxB,GAAImrC,EACF,IAAKnrC,EAAIgI,EAAO,EAAGhI,GAAK,IAAKA,EAC3B,IAAI+sC,IAAJ,CAIAzuB,EAAG0uB,sBAAsBpiC,EAAOmX,EAAO4kB,EAAQlB,GAC/C,MAIJ,OAAO76B,IAER,CACDrJ,IAAK,qBACLN,MAAO,SAA4B8gB,GACjC,IAEI/hB,EAAGgI,EAAM/G,EAFT0lC,EAAS9oB,KAAK+oB,YAAYc,QAC1B7nB,EAAS,GAGb,IAAK7f,EAAI,EAAGgI,EAAO2+B,EAAOljC,OAAQzD,EAAIgI,IAAQhI,EAC5CiB,EAAQ0lC,EAAO3mC,GAAG+hB,EAAMilB,MAEpBjgC,EAAe9F,IACjB4e,EAAO0D,KAAKtiB,GAIhB,OAAO4e,IAER,CACDte,IAAK,iBACLN,MAAO,WACL,OAAO,IAER,CACDM,IAAK,mBACLN,MAAO,SAA0BmH,GAC/B,IACI09B,EADKjoB,KACK+oB,YACVE,EAAShB,EAAKgB,OACdR,EAASR,EAAKQ,OACdK,EAJK9oB,KAIOovB,UAAU7kC,GAC1B,MAAO,CACL8kC,MAAOpG,EAAS,GAAKA,EAAOqG,iBAAiBxG,EAAOG,EAAOE,OAAS,GACpE/lC,MAAOqlC,EAAS,GAAKA,EAAO6G,iBAAiBxG,EAAOL,EAAOU,OAAS,MAGvE,CACDzlC,IAAK,UACLN,MAAO,SAAiBE,GACtB,IA9oBUF,EACVC,EAAGJ,EAAG2L,EAAGxM,EA6oBLqe,EAAKT,KACLioB,EAAOxnB,EAAGsoB,YACdtoB,EAAG0lB,YACH1lB,EAAG2pB,gBAAkB,GACrB3pB,EAAG0mB,OAAO7jC,GAAQ,WAClB2kC,EAAKsH,OAhpBLtmC,EAHU7F,EAmpBUmG,EAAekX,EAAGzV,QAAQ8d,KAlqBpD,SAAqBmjB,EAAQE,EAAQ7E,GACnC,IAAwB,IAApBA,EACF,OAAO,EAGT,IAAI75B,EAAI45B,GAAU4E,EAAQ3E,GACtB55B,EAAI25B,GAAU8E,EAAQ7E,GAC1B,MAAO,CACL3e,IAAKjb,EAAEhF,IACPggB,MAAOjb,EAAE/E,IACTkgB,OAAQlb,EAAEjF,MACVggB,KAAMhb,EAAEhF,OAupB8C+mC,CAAYvH,EAAKgE,OAAQhE,EAAKkE,OAAQ1rB,EAAGgvB,qBA/oB/FpsC,EAAID,EAAMulB,IACV1lB,EAAIG,EAAMslB,MACV9Z,EAAIxL,EAAMwlB,OACVxmB,EAAIgB,EAAMqlB,MAEVplB,EAAIJ,EAAI2L,EAAIxM,EAAIgB,EAGX,CACLulB,IAAKtlB,EACLqlB,MAAOzlB,EACP2lB,OAAQha,EACR6Z,KAAMrmB,EACNstC,UAAoB,IAAVtsC,MAooBT,CACDM,IAAK,SACLN,MAAO,SAAgBE,MACtB,CACDI,IAAK,OACLN,MAAO,WACL,IASIjB,EATAse,EAAKT,KACLsD,EAAM7C,EAAG0pB,KACTznB,EAAQjC,EAAGiC,MACXulB,EAAOxnB,EAAGsoB,YACVlmB,EAAWolB,EAAK9iB,MAAQ,GACxBoD,EAAO7F,EAAMitB,UACblK,EAAS,GACTh9B,EAAQgY,EAAGkqB,YAAc,EACzBjO,EAAQjc,EAAGmqB,YAAc/nB,EAASjd,OAAS6C,EAO/C,IAJIw/B,EAAKmD,SACPnD,EAAKmD,QAAQ9I,KAAKhf,EAAKiF,EAAM9f,EAAOi0B,GAGjCv6B,EAAIsG,EAAOtG,EAAIsG,EAAQi0B,IAASv6B,EAAG,CACtC,IAAIw0B,EAAU9T,EAAS1gB,GAEnBw0B,EAAQ8O,OACVA,EAAO/f,KAAKiR,GAEZA,EAAQ2L,KAAKhf,EAAKiF,GAItB,IAAKpmB,EAAI,EAAGA,EAAIsjC,EAAO7/B,SAAUzD,EAC/BsjC,EAAOtjC,GAAGmgC,KAAKhf,EAAKiF,KAGvB,CACD7kB,IAAK,WACLN,MAAO,SAAkBmH,EAAOk7B,GAC9B,IAAIniC,EAAOmiC,EAAS,SAAW,UAC/B,YAAiBxyB,IAAV1I,GAAuByV,KAAK+oB,YAAYqC,QAAUprB,KAAK4vB,6BAA6BtsC,GAAQ0c,KAAK6vB,0BAA0BtlC,GAAS,EAAGjH,KAE/I,CACDI,IAAK,aACLN,MAAO,SAAoBmH,EAAOk7B,EAAQniC,GACxC,IAEImf,EAFAhC,EAAKT,KACLorB,EAAU3qB,EAAG4qB,aAGjB,GAAI9gC,GAAS,GAAKA,EAAQkW,EAAGsoB,YAAY5jB,KAAKvf,OAAQ,CACpD,IAAI+wB,EAAUlW,EAAGsoB,YAAY5jB,KAAK5a,IAClCkY,EAAUkU,EAAQmU,WAAanU,EAAQmU,SA1hB/C,SAA2B9Y,EAAQznB,EAAOosB,GACxC,OAAO9zB,OAAO6c,OAAO7c,OAAOY,OAAOuuB,GAAS,CAC1CyT,QAAQ,EACRqK,UAAWvlC,EACXu+B,YAAQ71B,EACR88B,SAAK98B,EACL0jB,QAASA,EACTpsB,MAAOA,EACPjH,KAAM,UACNyF,KAAM,SAihBgDinC,CAAkBvvB,EAAGmG,aAAcrc,EAAOosB,KACpFmS,OAASroB,EAAG2uB,UAAU7kC,GAC9BkY,EAAQstB,IAAM3E,EAAQjmB,KAAK5a,GAC3BkY,EAAQlY,MAAQkY,EAAQqtB,UAAYvlC,OAEpCkY,EAAUhC,EAAGqqB,WAAarqB,EAAGqqB,SA1iBrC,SAA8B9Y,EAAQznB,GACpC,OAAO1H,OAAO6c,OAAO7c,OAAOY,OAAOuuB,GAAS,CAC1CyT,QAAQ,EACR2F,aAASn4B,EACT3I,aAAcC,EACdA,MAAOA,EACPjH,KAAM,UACNyF,KAAM,YAmiBsCknC,CAAqBxvB,EAAGiC,MAAMkE,aAAcnG,EAAGlW,SAC/E6gC,QAAUA,EAClB3oB,EAAQlY,MAAQkY,EAAQnY,aAAemW,EAAGlW,MAK5C,OAFAkY,EAAQgjB,SAAWA,EACnBhjB,EAAQnf,KAAOA,EACRmf,IAER,CACD/e,IAAK,+BACLN,MAAO,SAAsCE,GAC3C,OAAO0c,KAAKkwB,uBAAuBlwB,KAAK6sB,mBAAmBjkC,GAAItF,KAEhE,CACDI,IAAK,4BACLN,MAAO,SAAmCmH,EAAOjH,GAC/C,OAAO0c,KAAKkwB,uBAAuBlwB,KAAKmwB,gBAAgBvnC,GAAItF,EAAMiH,KAEnE,CACD7G,IAAK,yBACLN,MAAO,SAAgCgtC,GACrC,IAAI9sC,EAAO4E,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,UAC3EqC,EAAQrC,UAAUtC,OAAS,EAAIsC,UAAU,QAAK+K,EAC9CwN,EAAKT,KACLylB,EAAkB,WAATniC,EACTuiB,EAAQpF,EAAG2pB,gBACX1P,EAAW0V,EAAc,IAAM9sC,EAC/B0mC,EAASnkB,EAAM6U,GACf2V,EAAU5vB,EAAGoqB,qBAAuB7+B,EAAQzB,GAEhD,GAAIy/B,EACF,OAAOD,GAAiBC,EAAQqG,GAGlC,IAAIrK,EAASvlB,EAAGiC,MAAMsjB,OAClBkH,EAAYlH,EAAOsK,wBAAwB7vB,EAAG6pB,MAAO8F,GACrD5hB,EAAWiX,EAAS,CAAC,GAAGplB,OAAO+vB,EAAa,SAAU,QAASA,EAAa,IAAM,CAACA,EAAa,IAChG9hB,EAAS0X,EAAOoH,gBAAgB3sB,EAAG4qB,aAAc6B,GACjDqD,EAAQ1tC,OAAOkH,KAAKkY,GAASY,SAASutB,IAEtC3tB,EAAU,WACZ,OAAOhC,EAAGmG,WAAWrc,EAAOk7B,IAG1BzjB,EAASgkB,EAAOwK,oBAAoBliB,EAAQiiB,EAAO9tB,EAAS+L,GAOhE,OALIxM,EAAO0kB,UACT1kB,EAAO0kB,QAAU2J,EACjBxqB,EAAM6U,GAAY73B,OAAO4tC,OAAO1G,GAAiB/nB,EAAQquB,KAGpDruB,IAER,CACDte,IAAK,qBACLN,MAAO,SAA4BmH,EAAOmmC,EAAYjL,GACpD,IAUIz6B,EAVAyV,EAAKT,KACL0C,EAAQjC,EAAGiC,MACXmD,EAAQpF,EAAG2pB,gBACX1P,EAAW,aAAara,OAAOqwB,GAC/B1G,EAASnkB,EAAM6U,GAEnB,GAAIsP,EACF,OAAOA,EAKT,IAAgC,IAA5BtnB,EAAM1X,QAAQoX,UAAqB,CACrC,IAAI4jB,EAASvlB,EAAGiC,MAAMsjB,OAClBkH,EAAYlH,EAAO2K,0BAA0BlwB,EAAG6pB,MAAOoG,GACvDpiB,EAAS0X,EAAOoH,gBAAgB3sB,EAAG4qB,aAAc6B,GACrDliC,EAAUg7B,EAAOqH,eAAe/e,EAAQ7N,EAAGmG,WAAWrc,EAAOk7B,EAAQiL,IAGvE,IAAI9K,EAAa,IAAI,GAAWljB,EAAO1X,GAAWA,EAAQ46B,YAM1D,OAJI56B,GAAWA,EAAQ8kB,aACrBjK,EAAM6U,GAAY73B,OAAO4tC,OAAO7K,IAG3BA,IAER,CACDliC,IAAK,mBACLN,MAAO,SAA0B4H,GAC/B,GAAKA,EAAQ07B,QAIb,OAAO1mB,KAAK0qB,iBAAmB1qB,KAAK0qB,eAAiB7nC,OAAO6c,OAAO,GAAI1U,MAExE,CACDtH,IAAK,iBACLN,MAAO,SAAwBE,EAAMstC,GACnC,OAAQA,GAAiB9G,GAAmBxmC,IAAS0c,KAAK0C,MAAMmuB,sBAEjE,CACDntC,IAAK,gBACLN,MAAO,SAAuBuzB,EAASpsB,EAAOg7B,EAAYjiC,GACpDwmC,GAAmBxmC,GACrBT,OAAO6c,OAAOiX,EAAS4O,GAEvBvlB,KAAK8wB,mBAAmBvmC,EAAOjH,GAAM6jC,OAAOxQ,EAAS4O,KAGxD,CACD7hC,IAAK,sBACLN,MAAO,SAA6BwtC,EAAettC,EAAMmjC,GACnDmK,IAAkB9G,GAAmBxmC,IACvC0c,KAAK8wB,wBAAmB79B,EAAW3P,GAAM6jC,OAAOyJ,EAAenK,KAGlE,CACD/iC,IAAK,YACLN,MAAO,SAAmBuzB,EAASpsB,EAAOjH,EAAMmiC,GAC9C9O,EAAQ8O,OAASA,EACjB,IAAIz6B,EAAUgV,KAAK+Z,SAASxvB,EAAOk7B,GAEnCzlB,KAAK8wB,mBAAmBvmC,EAAOjH,EAAMmiC,GAAQ0B,OAAOxQ,EAAS,CAC3D3rB,SAAUy6B,GAAUzlB,KAAK+wB,iBAAiB/lC,IAAYA,MAGzD,CACDtH,IAAK,mBACLN,MAAO,SAA0BuzB,EAASrsB,EAAcC,GACtDyV,KAAKgxB,UAAUra,EAASpsB,EAAO,UAAU,KAE1C,CACD7G,IAAK,gBACLN,MAAO,SAAuBuzB,EAASrsB,EAAcC,GACnDyV,KAAKgxB,UAAUra,EAASpsB,EAAO,UAAU,KAE1C,CACD7G,IAAK,2BACLN,MAAO,WACL,IAAIuzB,EAAU3W,KAAK+oB,YAAYqC,QAE3BzU,GACF3W,KAAKgxB,UAAUra,OAAS1jB,EAAW,UAAU,KAGhD,CACDvP,IAAK,wBACLN,MAAO,WACL,IAAIuzB,EAAU3W,KAAK+oB,YAAYqC,QAE3BzU,GACF3W,KAAKgxB,UAAUra,OAAS1jB,EAAW,UAAU,KAGhD,CACDvP,IAAK,kBACLN,MAAO,SAAyB0pC,GAC9B,IAKI1a,EALA3R,EAAKT,KACLmF,EAAO1E,EAAG+pB,MACV3nB,EAAWpC,EAAGsoB,YAAY5jB,KAE1BkN,EAAa,GAA2B5R,EAAGsqB,WAG/C,IACE,IAAK1Y,EAAWnuB,MAAOkuB,EAASC,EAAWzuB,KAAKyC,MAAO,CACrD,IAEI4qC,EAAQzQ,GAFApO,EAAOhvB,MAEe,GAE9BiiC,EAAS4L,EAAM,GACfC,EAAOD,EAAM,GACbE,EAAOF,EAAM,GACjBxwB,EAAG4kB,GAAQ6L,EAAMC,IAEnB,MAAO1qC,GACP4rB,EAAW/rB,EAAEG,GACb,QACA4rB,EAAW7rB,IAGbia,EAAGsqB,UAAY,GACf,IAAIqG,EAAUvuB,EAASjd,OACnByrC,EAAUlsB,EAAKvf,OACf82B,EAAQvwB,KAAK4B,IAAIsjC,EAASD,GAE1B1U,GACFjc,EAAGstB,MAAM,EAAGrR,GAGV2U,EAAUD,EACZ3wB,EAAG6wB,gBAAgBF,EAASC,EAAUD,EAAStE,GACtCuE,EAAUD,GACnB3wB,EAAG8wB,gBAAgBF,EAASD,EAAUC,KAGzC,CACD3tC,IAAK,kBACLN,MAAO,SAAyBqF,EAAOi0B,GACrC,IAKIv6B,EALA2qC,IAAmB5kC,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,KAAmBA,UAAU,GAClFuY,EAAKT,KACLioB,EAAOxnB,EAAGsoB,YACV5jB,EAAO8iB,EAAK9iB,KACZzc,EAAMD,EAAQi0B,EAGd8U,EAAO,SAAcptC,GAGvB,IAFAA,EAAIwB,QAAU82B,EAETv6B,EAAIiC,EAAIwB,OAAS,EAAGzD,GAAKuG,EAAKvG,IACjCiC,EAAIjC,GAAKiC,EAAIjC,EAAIu6B,IAMrB,IAFA8U,EAAKrsB,GAEAhjB,EAAIsG,EAAOtG,EAAIuG,IAAOvG,EACzBgjB,EAAKhjB,GAAK,IAAIse,EAAG0vB,gBAGf1vB,EAAG8pB,UACLiH,EAAKvJ,EAAK4B,SAGZppB,EAAGstB,MAAMtlC,EAAOi0B,GAEZoQ,GACFrsB,EAAGgxB,eAAetsB,EAAM1c,EAAOi0B,EAAO,WAGzC,CACDh5B,IAAK,iBACLN,MAAO,SAAwBuzB,EAASluB,EAAOi0B,EAAOp5B,MACrD,CACDI,IAAK,kBACLN,MAAO,SAAyBqF,EAAOi0B,GACrC,IACIuL,EADKjoB,KACK+oB,YAEd,GAHS/oB,KAGFuqB,SAAU,CACf,IAAImH,EAAUzJ,EAAK4B,QAAQxjB,OAAO5d,EAAOi0B,GAErCuL,EAAKiD,UACPtB,GAAY3B,EAAMyJ,GAItBzJ,EAAK9iB,KAAKkB,OAAO5d,EAAOi0B,KAEzB,CACDh5B,IAAK,cACLN,MAAO,WACL,IAAIs5B,EAAQx0B,UAAUtC,OAEtBoa,KAAK+qB,UAAUrlB,KAAK,CAAC,kBAAmB1F,KAAKqrB,aAAalmB,KAAKvf,OAAS82B,EAAOA,MAEhF,CACDh5B,IAAK,aACLN,MAAO,WACL4c,KAAK+qB,UAAUrlB,KAAK,CAAC,kBAAmB1F,KAAK+oB,YAAY5jB,KAAKvf,OAAS,EAAG,MAE3E,CACDlC,IAAK,eACLN,MAAO,WACL4c,KAAK+qB,UAAUrlB,KAAK,CAAC,kBAAmB,EAAG,MAE5C,CACDhiB,IAAK,gBACLN,MAAO,SAAuBqF,EAAOi0B,GACnC1c,KAAK+qB,UAAUrlB,KAAK,CAAC,kBAAmBjd,EAAOi0B,IAE/C1c,KAAK+qB,UAAUrlB,KAAK,CAAC,kBAAmBjd,EAAOP,UAAUtC,OAAS,MAEnE,CACDlC,IAAK,iBACLN,MAAO,WACL4c,KAAK+qB,UAAUrlB,KAAK,CAAC,kBAAmB,EAAGxd,UAAUtC,aAIlDskC,EAlwB4B,GA0xBrC,SAASyH,GAAqBztB,GAC5B,IAEI/hB,EAAGgI,EAAMynC,EAAMhc,EAFf5T,EAlBN,SAA2BkC,GACzB,IAAKA,EAAMqK,OAAOsjB,KAAM,CAItB,IAHA,IAAIC,EAAQ5tB,EAAMykB,wBAAwB,OACtC3mB,EAAS,GAEJ7f,EAAI,EAAGgI,EAAO2nC,EAAMlsC,OAAQzD,EAAIgI,EAAMhI,IAC7C6f,EAASA,EAAO3B,OAAOyxB,EAAM3vC,GAAG0mC,WAAWkJ,mBAAmB7tB,IAGhEA,EAAMqK,OAAOsjB,KAAO5jB,GAAajM,EAAOgwB,MAAK,SAAUrjC,EAAGC,GACxD,OAAOD,EAAIC,MAIf,OAAOsV,EAAMqK,OAAOsjB,KAIPI,CAAkB/tB,GAC3BnW,EAAMmW,EAAMguB,QAGZC,EAAmB,WACR,QAATP,IAA4B,QAAVA,IAIlB5lC,EAAQ4pB,KACV7nB,EAAM5B,KAAK4B,IAAIA,EAAK5B,KAAKyB,IAAIgkC,EAAOhc,IAAS7nB,IAG/C6nB,EAAOgc,IAGT,IAAKzvC,EAAI,EAAGgI,EAAO6X,EAAOpc,OAAQzD,EAAIgI,IAAQhI,EAC5CyvC,EAAO1tB,EAAMkuB,iBAAiBpwB,EAAO7f,IACrCgwC,IAKF,IAFAvc,OAAO3iB,EAEF9Q,EAAI,EAAGgI,EAAO+Z,EAAMmuB,MAAMzsC,OAAQzD,EAAIgI,IAAQhI,EACjDyvC,EAAO1tB,EAAMouB,gBAAgBnwC,GAC7BgwC,IAGF,OAAOpkC,EAsET,SAASwkC,GAAWC,EAAOnQ,EAAMoG,EAAQtmC,GAOvC,OANImC,EAAQkuC,GAzBd,SAAuBA,EAAOnQ,EAAMoG,EAAQtmC,GAC1C,IAAIswC,EAAahK,EAAOsF,MAAMyE,EAAM,GAAIrwC,GACpCuwC,EAAWjK,EAAOsF,MAAMyE,EAAM,GAAIrwC,GAClC4L,EAAM5B,KAAK4B,IAAI0kC,EAAYC,GAC3B1kC,EAAM7B,KAAK6B,IAAIykC,EAAYC,GAC3BC,EAAW5kC,EACX6kC,EAAS5kC,EAET7B,KAAKyB,IAAIG,GAAO5B,KAAKyB,IAAII,KAC3B2kC,EAAW3kC,EACX4kC,EAAS7kC,GAGXs0B,EAAKoG,EAAOU,MAAQyJ,EACpBvQ,EAAKwQ,QAAU,CACbF,SAAUA,EACVC,OAAQA,EACRnqC,MAAOgqC,EACP/pC,IAAKgqC,EACL3kC,IAAKA,EACLC,IAAKA,GAML8kC,CAAcN,EAAOnQ,EAAMoG,EAAQtmC,GAEnCkgC,EAAKoG,EAAOU,MAAQV,EAAOsF,MAAMyE,EAAOrwC,GAGnCkgC,EAGT,SAAS0Q,GAAsB9K,EAAM9iB,EAAM1c,EAAOi0B,GAChD,IAKIv6B,EAAGgI,EAAMk4B,EAAMmQ,EALfvJ,EAAShB,EAAKgB,OACdR,EAASR,EAAKQ,OACdkF,EAAS1E,EAAO2E,YAChBC,EAAc5E,IAAWR,EACzBK,EAAS,GAGb,IAAK3mC,EAAIsG,EAAO0B,EAAO1B,EAAQi0B,EAAOv6B,EAAIgI,IAAQhI,EAChDqwC,EAAQrtB,EAAKhjB,IACbkgC,EAAO,IACF4G,EAAOE,MAAQ0E,GAAe5E,EAAO8E,MAAMJ,EAAOxrC,GAAIA,GAC3D2mC,EAAOpjB,KAAK6sB,GAAWC,EAAOnQ,EAAMoG,EAAQtmC,IAG9C,OAAO2mC,EAGT,SAASkK,GAAWC,GAClB,OAAOA,QAA8BhgC,IAApBggC,EAAON,eAA4C1/B,IAAlBggC,EAAOL,OArJ3D,GAAkB3wB,SAAW,GAC7B,GAAkBle,UAAU8oC,mBAAqB,KACjD,GAAkB9oC,UAAUosC,gBAAkB,KAsJ9C,IAAI,GAA6B,SAAU+C,GACzC9T,GAAU+T,EAAeD,GAEzB,IAAIE,EAAS1T,GAAayT,GAE1B,SAASA,IAGP,OAFA,GAAgBnzB,KAAMmzB,GAEfC,EAAO/qC,MAAM2X,KAAM9X,WAgV5B,OA7UA,GAAairC,EAAe,CAAC,CAC3BzvC,IAAK,qBACLN,MAAO,SAA4B6kC,EAAM9iB,EAAM1c,EAAOi0B,GACpD,OAAOqW,GAAsB9K,EAAM9iB,EAAM1c,EAAOi0B,KAEjD,CACDh5B,IAAK,iBACLN,MAAO,SAAwB6kC,EAAM9iB,EAAM1c,EAAOi0B,GAChD,OAAOqW,GAAsB9K,EAAM9iB,EAAM1c,EAAOi0B,KAEjD,CACDh5B,IAAK,kBACLN,MAAO,SAAyB6kC,EAAM9iB,EAAM1c,EAAOi0B,GACjD,IAUIv6B,EAAGgI,EAAMk4B,EAAMp9B,EAVfgkC,EAAShB,EAAKgB,OACdR,EAASR,EAAKQ,OACd4K,EAAkBrzB,KAAKuqB,SACvB+I,EAAwBD,EAAgBnF,SACxCA,OAAqC,IAA1BoF,EAAmC,IAAMA,EACpDC,EAAwBF,EAAgBjF,SACxCA,OAAqC,IAA1BmF,EAAmC,IAAMA,EACpDC,EAA2B,MAAhBvK,EAAOE,KAAe+E,EAAWE,EAC5CqF,EAA2B,MAAhBhL,EAAOU,KAAe+E,EAAWE,EAC5CtF,EAAS,GAGb,IAAK3mC,EAAIsG,EAAO0B,EAAO1B,EAAQi0B,EAAOv6B,EAAIgI,IAAQhI,EAChD8C,EAAMkgB,EAAKhjB,IACXkgC,EAAO,IACF4G,EAAOE,MAAQF,EAAO8E,MAAMriC,EAAiBzG,EAAKuuC,GAAWrxC,GAClE2mC,EAAOpjB,KAAK6sB,GAAW7mC,EAAiBzG,EAAKwuC,GAAWpR,EAAMoG,EAAQtmC,IAGxE,OAAO2mC,IAER,CACDplC,IAAK,wBACLN,MAAO,SAA+B2J,EAAOmX,EAAO4kB,EAAQlB,GAC1D7I,GAAKE,GAAgBkU,EAAcpvC,WAAY,wBAAyBic,MAAM1d,KAAK0d,KAAMjT,EAAOmX,EAAO4kB,EAAQlB,GAE/G,IAAIqL,EAASnK,EAAO+J,QAEhBI,GAAU/uB,IAAUlE,KAAK+oB,YAAYN,SACvC17B,EAAMgB,IAAM5B,KAAK4B,IAAIhB,EAAMgB,IAAKklC,EAAOllC,KACvChB,EAAMiB,IAAM7B,KAAK6B,IAAIjB,EAAMiB,IAAKilC,EAAOjlC,QAG1C,CACDtK,IAAK,iBACLN,MAAO,WACL,OAAO,IAER,CACDM,IAAK,mBACLN,MAAO,SAA0BmH,GAC/B,IACI09B,EADKjoB,KACK+oB,YACVE,EAAShB,EAAKgB,OACdR,EAASR,EAAKQ,OACdK,EAJK9oB,KAIOovB,UAAU7kC,GACtB0oC,EAASnK,EAAO+J,QAChBzvC,EAAQ4vC,GAAWC,GAAU,IAAMA,EAAOxqC,MAAQ,KAAOwqC,EAAOvqC,IAAM,IAAM,GAAK+/B,EAAO6G,iBAAiBxG,EAAOL,EAAOU,OAC3H,MAAO,CACLkG,MAAO,GAAKpG,EAAOqG,iBAAiBxG,EAAOG,EAAOE,OAClD/lC,MAAOA,KAGV,CACDM,IAAK,aACLN,MAAO,WACL,IAAIqd,EAAKT,KACTS,EAAGoqB,qBAAsB,EAEzB9L,GAAKE,GAAgBkU,EAAcpvC,WAAY,aAAcic,MAAM1d,KAAK0d,MAE7DS,EAAGsoB,YACTnB,MAAQnnB,EAAG4qB,aAAazD,QAE9B,CACDlkC,IAAK,SACLN,MAAO,SAAgBE,GACrB,IACI2kC,EADKjoB,KACK+oB,YADL/oB,KAENyxB,eAAexJ,EAAK9iB,KAAM,EAAG8iB,EAAK9iB,KAAKvf,OAAQtC,KAEnD,CACDI,IAAK,iBACLN,MAAO,SAAwBswC,EAAMjrC,EAAOi0B,EAAOp5B,GACjD,IAAImd,EAAKT,KACL2zB,EAAiB,UAATrwC,EACRmlC,EAAShoB,EAAGsoB,YAAYN,OACxBzJ,EAAOyJ,EAAOmL,eACdC,EAAapL,EAAOqL,eAEpBC,EAAQtzB,EAAGuzB,YAEXC,EAAYxzB,EAAGovB,0BAA0BpnC,EAAOnF,GAChDstC,EAAgBnwB,EAAGswB,iBAAiBkD,GACpCC,EAAiBzzB,EAAGyzB,eAAe5wC,EAAMstC,GAC7CnwB,EAAG0zB,oBAAoBvD,EAAettC,EAAM2wC,GAE5C,IAAK,IAAI9xC,EAAIsG,EAAOtG,EAAIsG,EAAQi0B,EAAOv6B,IAAK,CAC1C,IAAI2mC,EAASroB,EAAG2uB,UAAUjtC,GACtBiyC,EAAUT,GAAS7qC,EAAcggC,EAAOL,EAAOU,OAAS,CAC1DnK,KAAMA,EACNqV,KAAMrV,GACJve,EAAG6zB,yBAAyBnyC,GAE5BoyC,EAAU9zB,EAAG+zB,yBAAyBryC,EAAG4xC,GAEzCnM,GAASkB,EAAOE,SAAW,IAAIP,EAAOU,MACtC5D,EAAa,CACfsO,WAAYA,EACZ7U,KAAMoV,EAAQpV,KACdyV,oBAAqB7M,GAASoL,GAAWlK,EAAO+J,UAAYpyB,EAAGlW,QAAUq9B,EAAM4B,MAAQ/oB,EAAGlW,QAAUq9B,EAAM6B,QAC1Gh8B,EAAGomC,EAAaO,EAAQC,KAAOE,EAAQG,OACvChnC,EAAGmmC,EAAaU,EAAQG,OAASN,EAAQC,KACzCttB,OAAQ8sB,EAAaU,EAAQtxB,KAAO9W,KAAKyB,IAAIwmC,EAAQnxB,MACrDwC,MAAOouB,EAAa1nC,KAAKyB,IAAIwmC,EAAQnxB,MAAQsxB,EAAQtxB,MAGnDixB,IACF3O,EAAWv6B,QAAU4lC,GAAiBnwB,EAAGovB,0BAA0B1tC,EAAGuxC,EAAKvxC,GAAGsjC,OAAS,SAAWniC,IAGpGmd,EAAGk0B,cAAcjB,EAAKvxC,GAAIA,EAAGojC,EAAYjiC,MAG5C,CACDI,IAAK,aACLN,MAAO,SAAoBwxC,EAAM9E,GAC/B,IAOI3tC,EAAGkgC,EALH4G,EAFKjpB,KACK+oB,YACIE,OACdxB,EAAWwB,EAAON,wBAHb3oB,KAGwCsqB,OAC7CpC,EAAUe,EAAOj+B,QAAQk9B,QACzB/9B,EAAOs9B,EAAS7hC,OAChBwiC,EAAS,GAGb,IAAKjmC,EAAI,EAAGA,EAAIgI,IAAQhI,EAGtB,IAFAkgC,EAAOoF,EAAStlC,IAEN0mC,WAAW79B,QAAQ6pC,QAA7B,CAIA,GAAyB,qBAAd/E,EAA2B,CACpC,IAAIhvB,EAAMuhB,EAAKwG,WAAWuG,UAAUU,GAAWzN,EAAKwG,WAAWE,YAAYN,OAAOU,MAElF,GAAIrgC,EAAcgY,IAAQtT,MAAMsT,GAC9B,SAQJ,KAJgB,IAAZonB,IAAqD,IAAhCE,EAAOt9B,QAAQu3B,EAAKuF,aAA6B30B,IAAZi1B,QAAwCj1B,IAAfovB,EAAKuF,QAC1FQ,EAAO1iB,KAAK2c,EAAKuF,OAGfvF,EAAK93B,QAAUqqC,EACjB,MAQJ,OAJKxM,EAAOxiC,QACVwiC,EAAO1iB,UAAKzS,GAGPm1B,IAER,CACD1kC,IAAK,iBACLN,MAAO,SAAwBmH,GAC7B,OAAOyV,KAAK80B,gBAAW7hC,EAAW1I,GAAO3E,SAE1C,CACDlC,IAAK,iBACLN,MAAO,SAAwBkH,EAAc5H,EAAMotC,GACjD,IAAI1H,EAASpoB,KAAK80B,WAAWxqC,EAAcwlC,GAEvCvlC,OAAiB0I,IAATvQ,EAAqB0lC,EAAOt9B,QAAQpI,IAAS,EACzD,OAAkB,IAAX6H,EAAe69B,EAAOxiC,OAAS,EAAI2E,IAE3C,CACD7G,IAAK,YACLN,MAAO,WACL,IAKIjB,EAAGgI,EALHsW,EAAKT,KACL6J,EAAOpJ,EAAGzV,QACVi9B,EAAOxnB,EAAGsoB,YACVE,EAAShB,EAAKgB,OACd8L,EAAS,GAGb,IAAK5yC,EAAI,EAAGgI,EAAO89B,EAAK9iB,KAAKvf,OAAQzD,EAAIgI,IAAQhI,EAC/C4yC,EAAOrvB,KAAKujB,EAAOmJ,iBAAiB3xB,EAAG2uB,UAAUjtC,GAAG8mC,EAAOE,MAAOhnC,IAGpE,IAAI6yC,EAAenrB,EAAKmrB,aAExB,MAAO,CACLjnC,IAFQinC,GAAgBrD,GAAqB1I,GAG7C8L,OAAQA,EACRtsC,MAAOwgC,EAAOgM,YACdvsC,IAAKugC,EAAOiM,UACZC,WAAY10B,EAAG20B,iBACflxB,MAAO+kB,EACP4L,QAAShrB,EAAKgrB,QACdv1B,MAAO01B,EAAe,EAAInrB,EAAKwrB,mBAAqBxrB,EAAKyrB,iBAG5D,CACD5xC,IAAK,2BACLN,MAAO,SAAkCmH,GACvC,IAaI8pC,EAAMpxB,EAbNxC,EAAKT,KACLu1B,EAAkB90B,EAAGsoB,YACrBN,EAAS8M,EAAgB9M,OACzByC,EAAWqK,EAAgBrK,SAC3BsK,EAAc/0B,EAAGzV,QACjByqC,EAAYD,EAAYxW,KACxB0W,EAAeF,EAAYE,aAC3B5M,EAASroB,EAAG2uB,UAAU7kC,GACtB0oC,EAASnK,EAAO+J,QAChB8C,EAAW3C,GAAWC,GACtB7vC,EAAQ0lC,EAAOL,EAAOU,MACtB1gC,EAAQ,EACR7C,EAASslC,EAAWzqB,EAAGm1B,WAAWnN,EAAQK,EAAQoC,GAAY9nC,EAG9DwC,IAAWxC,IACbqF,EAAQ7C,EAASxC,EACjBwC,EAASxC,GAGPuyC,IACFvyC,EAAQ6vC,EAAON,SACf/sC,EAASqtC,EAAOL,OAASK,EAAON,SAElB,IAAVvvC,GAAeyJ,EAAKzJ,KAAWyJ,EAAKomC,EAAOL,UAC7CnqC,EAAQ,GAGVA,GAASrF,GAGX,IAAIqvC,EAAc3pC,EAAc2sC,IAAeE,EAAuBltC,EAAZgtC,EACtDzW,EAAOyJ,EAAO2J,iBAAiBK,GAQnCxvB,GALEoxB,EADEr0B,KAAK0C,MAAMmzB,kBAAkBtrC,GACxBk+B,EAAO2J,iBAAiB3pC,EAAQ7C,GAEhCo5B,GAGKA,OAEO/rB,IAAjByiC,GAA8BvpC,KAAKyB,IAAIqV,GAAQyyB,IACjDzyB,EAAOA,EAAO,GAAKyyB,EAAeA,EAEpB,IAAVtyC,IACF47B,GAAQ/b,EAAO,GAGjBoxB,EAAOrV,EAAO/b,GAGhB,IAAI6yB,EAAaL,GAAa,EAE9B,GAAIzW,IAASyJ,EAAO2J,iBAAiB0D,GAAa,CAChD,IAAIC,EAAWtN,EAAOuN,qBAAqBF,GAAc,EAErD7yB,EAAO,GACT+b,GAAQ+W,EACR9yB,GAAQ8yB,GACC9yB,EAAO,IAChB+b,GAAQ+W,EACR9yB,GAAQ8yB,GAIZ,MAAO,CACL9yB,KAAMA,EACN+b,KAAMA,EACNqV,KAAMA,EACNK,OAAQL,EAAOpxB,EAAO,KAGzB,CACDvf,IAAK,2BACLN,MAAO,SAAkCmH,EAAOwpC,GAC9C,IAKIW,EAAQzxB,EALRxC,EAAKT,KACLkE,EAAQ6vB,EAAM7vB,MACdlZ,EAAUyV,EAAGzV,QACbirC,EAAWjrC,EAAQirC,SACnBC,EAAkB3sC,EAAeyB,EAAQkrC,gBAAiBC,KAG9D,GAAIpC,EAAMc,QAAS,CACjB,IAAIM,EAAac,EAAWx1B,EAAG20B,eAAe7qC,GAASwpC,EAAMoB,WACzDpoC,EAAiC,SAAzB/B,EAAQgqC,aApY5B,SAAmCzqC,EAAOwpC,EAAO/oC,EAASmqC,GACxD,IAAIJ,EAAShB,EAAMgB,OACfnD,EAAOmD,EAAOxqC,GACdqrB,EAAOrrB,EAAQ,EAAIwqC,EAAOxqC,EAAQ,GAAK,KACvC1D,EAAO0D,EAAQwqC,EAAOnvC,OAAS,EAAImvC,EAAOxqC,EAAQ,GAAK,KACvD6rC,EAAUprC,EAAQqqC,mBAET,OAATzf,IACFA,EAAOgc,GAAiB,OAAT/qC,EAAgBktC,EAAMrrC,IAAMqrC,EAAMtrC,MAAQ5B,EAAO+qC,IAGrD,OAAT/qC,IACFA,EAAO+qC,EAAOA,EAAOhc,GAGvB,IAAIntB,EAAQmpC,GAAQA,EAAOzlC,KAAK4B,IAAI6nB,EAAM/uB,IAAS,EAAIuvC,EAEvD,MAAO,CACLC,MAFSlqC,KAAKyB,IAAI/G,EAAO+uB,GAAQ,EAAIwgB,EAEvBjB,EACd71B,MAAOtU,EAAQsqC,cACf7sC,MAAOA,GAgX2C6tC,CAA0B/rC,EAAOwpC,EAAO/oC,EAASmqC,GAvZvG,SAAkC5qC,EAAOwpC,EAAO/oC,EAASmqC,GACvD,IACIlyB,EAAM3D,EADNi3B,EAAYvrC,EAAQgqC,aAWxB,OARIlsC,EAAcytC,IAChBtzB,EAAO8wB,EAAMhmC,IAAM/C,EAAQqqC,mBAC3B/1B,EAAQtU,EAAQsqC,gBAEhBryB,EAAOszB,EAAYpB,EACnB71B,EAAQ,GAGH,CACL+2B,MAAOpzB,EAAOkyB,EACd71B,MAAOA,EACP7W,MAAOsrC,EAAMgB,OAAOxqC,GAAS0Y,EAAO,GAwY6EuzB,CAAyBjsC,EAAOwpC,EAAO/oC,EAASmqC,GAEzJsB,EAAah2B,EAAGi2B,eAAej2B,EAAGlW,MAAOkW,EAAGsoB,YAAYnB,MAAOqO,EAAW1rC,OAAQ0I,GAEtFyhC,EAAS3nC,EAAMtE,MAAQsE,EAAMspC,MAAQI,EAAa1pC,EAAMspC,MAAQ,EAChEpzB,EAAO9W,KAAK4B,IAAImoC,EAAiBnpC,EAAMspC,MAAQtpC,EAAMuS,YAErDo1B,EAASxwB,EAAMkuB,iBAAiB3xB,EAAG2uB,UAAU7kC,GAAO2Z,EAAMilB,MAAO5+B,GACjE0Y,EAAO9W,KAAK4B,IAAImoC,EAAiBnC,EAAMhmC,IAAMgmC,EAAMz0B,OAGrD,MAAO,CACL0f,KAAM0V,EAASzxB,EAAO,EACtBoxB,KAAMK,EAASzxB,EAAO,EACtByxB,OAAQA,EACRzxB,KAAMA,KAGT,CACDvf,IAAK,OACLN,MAAO,WAQL,IAPA,IAAIqd,EAAKT,KACLioB,EAAOxnB,EAAGsoB,YACVN,EAASR,EAAKQ,OACdkO,EAAQ1O,EAAK9iB,KACbhb,EAAOwsC,EAAM/wC,OACbzD,EAAI,EAEDA,EAAIgI,IAAQhI,EACoB,OAAjCse,EAAG2uB,UAAUjtC,GAAGsmC,EAAOU,OACzBwN,EAAMx0C,GAAGmgC,KAAK7hB,EAAG0pB,UAMlBgJ,EAxVwB,CAyV/B,IAEF,GAAcvqC,GAAK,MACnB,GAAcqZ,SAAW,CACvB4qB,oBAAoB,EACpBsD,gBAAiB,MACjBkF,mBAAoB,GACpBC,cAAe,GACfT,SAAS,EACTjP,WAAY,CACVJ,QAAS,CACPz8B,KAAM,SACNw8B,WAAY,CAAC,IAAK,IAAK,OAAQ,QAAS,aAI9C,GAAc9jB,UAAY,CACxBiC,YAAa,CACXpgB,KAAM,SAER6gB,OAAQ,CACNyyB,QAAS,CACP7tC,KAAM,WACN8tC,QAAQ,EACRC,KAAM,CACJD,QAAQ,IAGZE,QAAS,CACPhuC,KAAM,SACNiuC,aAAa,KAKnB,IAAI,GAAgC,SAAUC,GAC5C7X,GAAU8X,EAAkBD,GAE5B,IAAIE,EAAUzX,GAAawX,GAE3B,SAASA,IAGP,OAFA,GAAgBl3B,KAAMk3B,GAEfC,EAAQ9uC,MAAM2X,KAAM9X,WAkI7B,OA/HA,GAAagvC,EAAkB,CAAC,CAC9BxzC,IAAK,aACLN,MAAO,WACL4c,KAAK6qB,qBAAsB,EAE3B9L,GAAKE,GAAgBiY,EAAiBnzC,WAAY,aAAcic,MAAM1d,KAAK0d,QAE5E,CACDtc,IAAK,kBACLN,MAAO,SAAyB6kC,EAAM9iB,EAAM1c,EAAOi0B,GACjD,IAQIv6B,EAAGgI,EAAMk4B,EART4J,EAAShE,EAAKgE,OACdE,EAASlE,EAAKkE,OACdiL,EAAkBp3B,KAAKuqB,SACvB8M,EAAwBD,EAAgBlJ,SACxCA,OAAqC,IAA1BmJ,EAAmC,IAAMA,EACpDC,EAAwBF,EAAgBhJ,SACxCA,OAAqC,IAA1BkJ,EAAmC,IAAMA,EACpDxO,EAAS,GAGb,IAAK3mC,EAAIsG,EAAO0B,EAAO1B,EAAQi0B,EAAOv6B,EAAIgI,IAAQhI,EAChDkgC,EAAOld,EAAKhjB,GACZ2mC,EAAOpjB,KAAK,CACVjY,EAAGw+B,EAAO8B,MAAMriC,EAAiB22B,EAAM6L,GAAW/rC,GAClDuL,EAAGy+B,EAAO4B,MAAMriC,EAAiB22B,EAAM+L,GAAWjsC,GAClD0wC,QAASxQ,GAAQA,EAAKp/B,IAAMo/B,EAAKp/B,IAIrC,OAAO6lC,IAER,CACDplC,IAAK,iBACLN,MAAO,WAML,IALA,IAAIm0C,EAAoBv3B,KAAK+oB,YACzB5jB,EAAOoyB,EAAkBpyB,KACzB0kB,EAAU0N,EAAkB1N,QAC5B77B,EAAM,EAED7L,EAAIgjB,EAAKvf,OAAS,EAAGzD,GAAK,IAAKA,EACtC6L,EAAM7B,KAAK6B,IAAIA,EAAKmX,EAAKhjB,GAAG8gB,OAAS,EAAG4mB,EAAQ1nC,GAAG0wC,SAGrD,OAAO7kC,EAAM,GAAKA,IAEnB,CACDtK,IAAK,mBACLN,MAAO,SAA0BmH,GAC/B,IACI09B,EADKjoB,KACK+oB,YACVkD,EAAShE,EAAKgE,OACdE,EAASlE,EAAKkE,OACdrD,EAJK9oB,KAIOovB,UAAU7kC,GACtBkD,EAAIw+B,EAAOqD,iBAAiBxG,EAAOr7B,GACnCC,EAAIy+B,EAAOmD,iBAAiBxG,EAAOp7B,GACnCzK,EAAI6lC,EAAO+J,QACf,MAAO,CACLxD,MAAOpH,EAAKoH,MACZjsC,MAAO,IAAMqK,EAAI,KAAOC,GAAKzK,EAAI,KAAOA,EAAI,IAAM,OAGrD,CACDS,IAAK,SACLN,MAAO,SAAgBE,GACrB,IACIgwB,EADKtT,KACO+oB,YAAY5jB,KADnBnF,KAENyxB,eAAene,EAAQ,EAAGA,EAAO1tB,OAAQtC,KAE7C,CACDI,IAAK,iBACLN,MAAO,SAAwBkwB,EAAQ7qB,EAAOi0B,EAAOp5B,GAYnD,IAXA,IAAImd,EAAKT,KACL2zB,EAAiB,UAATrwC,EACRk0C,EAAmB/2B,EAAGsoB,YACtBE,EAASuO,EAAiBvO,OAC1BR,EAAS+O,EAAiB/O,OAC1BwL,EAAYxzB,EAAGovB,0BAA0BpnC,EAAOnF,GAChDstC,EAAgBnwB,EAAGswB,iBAAiBkD,GACpCC,EAAiBzzB,EAAGyzB,eAAe5wC,EAAMstC,GACzC1H,EAAQD,EAAOE,KACfC,EAAQX,EAAOU,KAEVhnC,EAAIsG,EAAOtG,EAAIsG,EAAQi0B,EAAOv6B,IAAK,CAC1C,IAAImmB,EAAQgL,EAAOnxB,GACf2mC,GAAU6K,GAASlzB,EAAG2uB,UAAUjtC,GAChCojC,EAAa,GACbhR,EAASgR,EAAW2D,GAASyK,EAAQ1K,EAAOwO,mBAAmB,IAAOxO,EAAOmJ,iBAAiBtJ,EAAOI,IACrG1U,EAAS+Q,EAAW6D,GAASuK,EAAQlL,EAAOmL,eAAiBnL,EAAO2J,iBAAiBtJ,EAAOM,IAChG7D,EAAWhS,KAAO/lB,MAAM+mB,IAAW/mB,MAAMgnB,GAErC0f,IACF3O,EAAWv6B,QAAUyV,EAAGovB,0BAA0B1tC,EAAGmmB,EAAMmd,OAAS,SAAWniC,GAE3EqwC,IACFpO,EAAWv6B,QAAQsc,OAAS,IAIhC7G,EAAGk0B,cAAcrsB,EAAOnmB,EAAGojC,EAAYjiC,GAGzCmd,EAAG0zB,oBAAoBvD,EAAettC,EAAM2wC,KAE7C,CACDvwC,IAAK,4BACLN,MAAO,SAAmCmH,EAAOjH,GAC/C,IAAIwlC,EAAS9oB,KAAKovB,UAAU7kC,GAExByX,EAAS+c,GAAKE,GAAgBiY,EAAiBnzC,WAAY,4BAA6Bic,MAAM1d,KAAK0d,KAAMzV,EAAOjH,GAEhH0e,EAAO0kB,UACT1kB,EAASnf,OAAO6c,OAAO,GAAIsC,EAAQ,CACjC0kB,SAAS,KAIb,IAAIpf,EAAStF,EAAOsF,OAOpB,MALa,WAAThkB,IACF0e,EAAOsF,OAAS,GAGlBtF,EAAOsF,QAAU/d,EAAeu/B,GAAUA,EAAO+J,QAASvrB,GACnDtF,MAIJk1B,EA1I2B,CA2IlC,IAEF,GAAiBtuC,GAAK,SACtB,GAAiBqZ,SAAW,CAC1B4qB,oBAAoB,EACpBsD,gBAAiB,QACjBvK,WAAY,CACVJ,QAAS,CACPz8B,KAAM,SACNw8B,WAAY,CAAC,IAAK,IAAK,cAAe,aAI5C,GAAiB9jB,UAAY,CAC3B0C,OAAQ,CACN1W,EAAG,CACD1E,KAAM,UAER2E,EAAG,CACD3E,KAAM,WAGVib,QAAS,CACP0zB,QAAS,CACPhW,UAAW,CACTiW,MAAO,WACL,MAAO,QA+CjB,IAAI,GAAkC,SAAUC,GAC9CxY,GAAUyY,EAAoBD,GAE9B,IAAIE,EAAUpY,GAAamY,GAE3B,SAASA,EAAmBn1B,EAAOpY,GACjC,IAAIytC,EAUJ,OARA,GAAgB/3B,KAAM63B,IAEtBE,EAAQD,EAAQx1C,KAAK0d,KAAM0C,EAAOpY,IAC5BugC,qBAAsB,EAC5BkN,EAAMC,iBAAc/kC,EACpB8kC,EAAME,iBAAchlC,EACpB8kC,EAAMrgB,aAAUzkB,EAChB8kC,EAAMpgB,aAAU1kB,EACT8kC,EAiRT,OA9QA,GAAaF,EAAoB,CAAC,CAChCn0C,IAAK,aACLN,MAAO,cACN,CACDM,IAAK,QACLN,MAAO,SAAeqF,EAAOi0B,GAC3B,IAEIv6B,EAAGgI,EAFHgb,EAAOnF,KAAKqrB,aAAalmB,KACzB8iB,EAAOjoB,KAAK+oB,YAGhB,IAAK5mC,EAAIsG,EAAO0B,EAAO1B,EAAQi0B,EAAOv6B,EAAIgI,IAAQhI,EAChD8lC,EAAK4B,QAAQ1nC,IAAMgjB,EAAKhjB,KAG3B,CACDuB,IAAK,eACLN,MAAO,WACL,OAAO6K,GAAU+R,KAAKhV,QAAQqc,SAAW,MAE1C,CACD3jB,IAAK,oBACLN,MAAO,WACL,OAAO6K,GAAU+R,KAAKhV,QAAQktC,iBAE/B,CACDx0C,IAAK,sBACLN,MAAO,WAKL,IAJA,IAAI2K,EAAM3B,EACN4B,GAAO5B,EACPqU,EAAKT,KAEA7d,EAAI,EAAGA,EAAIse,EAAGiC,MAAMyC,KAAK5C,SAAS3c,SAAUzD,EACnD,GAAIse,EAAGiC,MAAMy1B,iBAAiBh2C,GAAI,CAChC,IAAI0mC,EAAapoB,EAAGiC,MAAM2pB,eAAelqC,GAAG0mC,WAExCxhB,EAAWwhB,EAAWuP,eAEtBF,EAAgBrP,EAAWwP,oBAE/BtqC,EAAM5B,KAAK4B,IAAIA,EAAKsZ,GACpBrZ,EAAM7B,KAAK6B,IAAIA,EAAKqZ,EAAW6wB,GAInC,MAAO,CACL7wB,SAAUtZ,EACVmqC,cAAelqC,EAAMD,KAGxB,CACDrK,IAAK,SACLN,MAAO,SAAgBE,GACrB,IDnyEmCF,EAAOqG,ECmyEtCgX,EAAKT,KAEL2vB,EADQlvB,EAAGiC,MACOitB,UAClB1H,EAAOxnB,EAAGsoB,YACVuP,EAAOrQ,EAAK9iB,KACZozB,EAAU93B,EAAG+3B,oBAAsB/3B,EAAGg4B,aAAaH,GAAQ73B,EAAGzV,QAAQutC,QACtEG,EAAUvsC,KAAK6B,KAAK7B,KAAK4B,IAAI4hC,EAAUlqB,MAAOkqB,EAAU5oB,QAAUwxB,GAAW,EAAG,GAChFI,EAASxsC,KAAK4B,KD1yEiB3K,EC0yEAqd,EAAGzV,QAAQ2tC,OD1yEJlvC,EC0yEYivC,EDzyElC,kBAAVt1C,GAAsBA,EAAMsG,SAAS,KAAOC,WAAWvG,GAAS,IAAMA,EAAQqG,GCyyExB,GAE5DmvC,EAAcn4B,EAAGo4B,eAAep4B,EAAGlW,OAEnCuuC,EAAwBr4B,EAAGs4B,sBAC3Bb,EAAgBY,EAAsBZ,cAGtCc,EA9HV,SAA2B3xB,EAAU6wB,EAAeS,GAClD,IAAIM,EAAS,EACTC,EAAS,EACTxhB,EAAU,EACVC,EAAU,EAEd,GAAIugB,EAAgB9rC,EAAK,CACvB,IAAI+sC,EAAa9xB,EACb+xB,EAAWD,EAAajB,EACxBmB,EAASltC,KAAKsE,IAAI0oC,GAClBG,EAASntC,KAAKqD,IAAI2pC,GAClBI,EAAOptC,KAAKsE,IAAI2oC,GAChBI,EAAOrtC,KAAKqD,IAAI4pC,GAEhBK,EAAU,SAAiB1qC,EAAOJ,EAAGC,GACvC,OAAOE,GAAcC,EAAOoqC,EAAYC,GAAU,GAAQ,EAAIjtC,KAAK6B,IAAIW,EAAGA,EAAIgqC,EAAQ/pC,EAAGA,EAAI+pC,IAG3Fe,EAAU,SAAiB3qC,EAAOJ,EAAGC,GACvC,OAAOE,GAAcC,EAAOoqC,EAAYC,GAAU,IAAS,EAAIjtC,KAAK4B,IAAIY,EAAGA,EAAIgqC,EAAQ/pC,EAAGA,EAAI+pC,IAG5FgB,EAAOF,EAAQ,EAAGJ,EAAQE,GAC1BK,EAAOH,EAAQhtC,EAAS6sC,EAAQE,GAChCK,EAAOH,EAAQxtC,EAAImtC,EAAQE,GAC3BO,EAAOJ,EAAQxtC,EAAKO,EAAS6sC,EAAQE,GACzCP,GAAUU,EAAOE,GAAQ,EACzBX,GAAUU,EAAOE,GAAQ,EACzBpiB,IAAYiiB,EAAOE,GAAQ,EAC3BliB,IAAYiiB,EAAOE,GAAQ,EAG7B,MAAO,CACLb,OAAQA,EACRC,OAAQA,EACRxhB,QAASA,EACTC,QAASA,GA0FkBoiB,CAFVjB,EAAsBzxB,SAEgB6wB,EAAeS,GAChEM,EAASD,EAAmBC,OAC5BC,EAASF,EAAmBE,OAC5BxhB,EAAUshB,EAAmBthB,QAC7BC,EAAUqhB,EAAmBrhB,QAE7BtN,GAAYslB,EAAUlqB,MAAQ8yB,GAAWU,EACzCzgB,GAAamX,EAAU5oB,OAASwxB,GAAWW,EAC3Cc,EAAY7tC,KAAK6B,IAAI7B,KAAK4B,IAAIsc,EAAUmO,GAAa,EAAG,GACxDyf,EAAczuC,EAAYiX,EAAGzV,QAAQsc,OAAQ0yB,GAG7CC,GAAgBhC,EAFF9rC,KAAK6B,IAAIiqC,EAAcU,EAAQ,IAEAl4B,EAAGy5B,gCAEpDz5B,EAAGiX,QAAUA,EAAUugB,EACvBx3B,EAAGkX,QAAUA,EAAUsgB,EACvBhQ,EAAKkS,MAAQ15B,EAAG25B,iBAChB35B,EAAGw3B,YAAcA,EAAcgC,EAAex5B,EAAG45B,qBAAqB55B,EAAGlW,OACzEkW,EAAGu3B,YAAc7rC,KAAK6B,IAAIyS,EAAGw3B,YAAcgC,EAAerB,EAAa,GACvEn4B,EAAGgxB,eAAe6G,EAAM,EAAGA,EAAK1yC,OAAQtC,KAEzC,CACDI,IAAK,iBACLN,MAAO,SAAwBjB,EAAGwxC,GAChC,IAAIlzB,EAAKT,KACL6J,EAAOpJ,EAAGzV,QACVi9B,EAAOxnB,EAAGsoB,YAEVmP,EAAgBz3B,EAAG43B,oBAEvB,OAAI1E,GAAS9pB,EAAKzH,UAAUk4B,gBAAkBt6B,KAAK0C,MAAMmzB,kBAAkB1zC,IAA0B,OAApB8lC,EAAK4B,QAAQ1nC,GACrF,EAGFse,EAAG85B,uBAAuBtS,EAAK4B,QAAQ1nC,GAAK+1C,EAAgB9rC,KAEpE,CACD1I,IAAK,iBACLN,MAAO,SAAwBk1C,EAAM7vC,EAAOi0B,EAAOp5B,GACjD,IAiBInB,EAjBAse,EAAKT,KACL2zB,EAAiB,UAATrwC,EACRof,EAAQjC,EAAGiC,MACXitB,EAAYjtB,EAAMitB,UAElB6K,EADO93B,EAAM1X,QACQoX,UACrBq4B,GAAW9K,EAAUlnB,KAAOknB,EAAUjnB,OAAS,EAC/CgyB,GAAW/K,EAAUhnB,IAAMgnB,EAAU/mB,QAAU,EAC/C+xB,EAAehH,GAAS6G,EAAcG,aACtC3C,EAAc2C,EAAe,EAAIl6B,EAAGu3B,YACpCC,EAAc0C,EAAe,EAAIl6B,EAAGw3B,YACpChE,EAAYxzB,EAAGovB,0BAA0BpnC,EAAOnF,GAChDstC,EAAgBnwB,EAAGswB,iBAAiBkD,GACpCC,EAAiBzzB,EAAGyzB,eAAe5wC,EAAMstC,GAEzCuI,EAAa14B,EAAG23B,eAIpB,IAAKj2C,EAAI,EAAGA,EAAIsG,IAAStG,EACvBg3C,GAAc14B,EAAGm6B,eAAez4C,EAAGwxC,GAGrC,IAAKxxC,EAAIsG,EAAOtG,EAAIsG,EAAQi0B,IAASv6B,EAAG,CACtC,IAAI+1C,EAAgBz3B,EAAGm6B,eAAez4C,EAAGwxC,GAErC/rB,EAAM0wB,EAAKn2C,GACXojC,EAAa,CACf93B,EAAGgtC,EAAUh6B,EAAGiX,QAChBhqB,EAAGgtC,EAAUj6B,EAAGkX,QAChBwhB,WAAYA,EACZC,SAAUD,EAAajB,EACvBA,cAAeA,EACfD,YAAaA,EACbD,YAAaA,GAGX9D,IACF3O,EAAWv6B,QAAU4lC,GAAiBnwB,EAAGovB,0BAA0B1tC,EAAGylB,EAAI6d,OAAS,SAAWniC,IAGhG61C,GAAcjB,EACdz3B,EAAGk0B,cAAc/sB,EAAKzlB,EAAGojC,EAAYjiC,GAGvCmd,EAAG0zB,oBAAoBvD,EAAettC,EAAM2wC,KAE7C,CACDvwC,IAAK,iBACLN,MAAO,WACL,IAGIjB,EAHA8lC,EAAOjoB,KAAK+oB,YACZ8R,EAAW5S,EAAK9iB,KAChBg1B,EAAQ,EAGZ,IAAKh4C,EAAI,EAAGA,EAAI04C,EAASj1C,OAAQzD,IAAK,CACpC,IAAIiB,EAAQ6kC,EAAK4B,QAAQ1nC,GAEX,OAAViB,IAAmBoK,MAAMpK,IAAU4c,KAAK0C,MAAMmzB,kBAAkB1zC,KAClEg4C,GAAShuC,KAAKyB,IAAIxK,IAItB,OAAO+2C,IAER,CACDz2C,IAAK,yBACLN,MAAO,SAAgCA,GACrC,IAAI+2C,EAAQn6B,KAAK+oB,YAAYoR,MAE7B,OAAIA,EAAQ,IAAM3sC,MAAMpK,GACfgJ,GAAOD,KAAKyB,IAAIxK,GAAS+2C,GAG3B,IAER,CACDz2C,IAAK,mBACLN,MAAO,SAA0BmH,GAC/B,IACI09B,EADKjoB,KACK+oB,YACVrmB,EAFK1C,KAEM0C,MACXirB,EAASjrB,EAAMyC,KAAKwoB,QAAU,GAC9BvqC,EAAQm3B,GAAa0N,EAAK4B,QAAQt/B,GAAQmY,EAAM1X,QAAQyvB,QAC5D,MAAO,CACL4U,MAAO1B,EAAOpjC,IAAU,GACxBnH,MAAOA,KAGV,CACDM,IAAK,oBACLN,MAAO,SAA2Bk1C,GAChC,IAGIn2C,EAAGgI,EAAM89B,EAAMY,EAAY79B,EAF3BgD,EAAM,EACN0U,EAFK1C,KAEM0C,MAGf,IAAK41B,EACH,IAAKn2C,EAAI,EAAGgI,EAAOuY,EAAMyC,KAAK5C,SAAS3c,OAAQzD,EAAIgI,IAAQhI,EACzD,GAAIugB,EAAMy1B,iBAAiBh2C,GAAI,CAE7Bm2C,GADArQ,EAAOvlB,EAAM2pB,eAAelqC,IAChBgjB,MACZ0jB,EAAaZ,EAAKY,cAVf7oB,MAaD6oB,EAAW1C,YAGb,MAKN,IAAKmS,EACH,OAAO,EAGT,IAAKn2C,EAAI,EAAGgI,EAAOmuC,EAAK1yC,OAAQzD,EAAIgI,IAAQhI,EAGd,WAF5B6I,EAAU69B,EAAWgH,0BAA0B1tC,IAEnC24C,cACV9sC,EAAM7B,KAAK6B,IAAIA,EAAKhD,EAAQmd,aAAe,EAAGnd,EAAQ+vC,kBAAoB,IAI9E,OAAO/sC,IAER,CACDtK,IAAK,eACLN,MAAO,SAAsBk1C,GAG3B,IAFA,IAAItqC,EAAM,EAED7L,EAAI,EAAGgI,EAAOmuC,EAAK1yC,OAAQzD,EAAIgI,IAAQhI,EAAG,CACjD,IAAI6I,EAAUgV,KAAK6vB,0BAA0B1tC,GAC7C6L,EAAM7B,KAAK6B,IAAIA,EAAKhD,EAAQ6rC,QAAU,EAAG7rC,EAAQgwC,aAAe,GAGlE,OAAOhtC,IAER,CACDtK,IAAK,uBACLN,MAAO,SAA8BkH,GAGnC,IAFA,IAAI2wC,EAAmB,EAEd94C,EAAI,EAAGA,EAAImI,IAAgBnI,EAC9B6d,KAAK0C,MAAMy1B,iBAAiBh2C,KAC9B84C,GAAoBj7B,KAAK64B,eAAe12C,IAI5C,OAAO84C,IAER,CACDv3C,IAAK,iBACLN,MAAO,SAAwBkH,GAC7B,OAAO6B,KAAK6B,IAAIzE,EAAeyW,KAAK0C,MAAMyC,KAAK5C,SAASjY,GAAckW,OAAQ,GAAI,KAEnF,CACD9c,IAAK,gCACLN,MAAO,WACL,OAAO4c,KAAKq6B,qBAAqBr6B,KAAK0C,MAAMyC,KAAK5C,SAAS3c,SAAW,MAIlEiyC,EAjS6B,CAkSpC,IAEF,GAAmBjvC,GAAK,WACxB,GAAmBqZ,SAAW,CAC5B4qB,oBAAoB,EACpBsD,gBAAiB,MACjB/tB,UAAW,CACTk4B,eAAe,EACfK,cAAc,GAEhB/U,WAAY,CACVJ,QAAS,CACPz8B,KAAM,SACNw8B,WAAY,CAAC,gBAAiB,WAAY,cAAe,cAAe,aAAc,IAAK,IAAK,SAAU,cAAe,aAG7HoT,OAAQ,MACRtxB,SAAU,EACV6wB,cAAe,IACf5wB,OAAQ,OACRixB,QAAS,EACT90B,UAAW,KAEb,GAAmB6M,YAAc,CAC/BxL,YAAa,SAAqBpiB,GAChC,MAAgB,YAATA,GAETsiB,WAAY,SAAoBtiB,GAC9B,MAAgB,YAATA,IAGX,GAAmB+e,UAAY,CAC7B6W,YAAa,EACbtU,QAAS,CACPk3B,OAAQ,CACNvN,OAAQ,CACNwN,eAAgB,SAAwBz4B,GACtC,IAAIyC,EAAOzC,EAAMyC,KAEjB,GAAIA,EAAKwoB,OAAO/nC,QAAUuf,EAAK5C,SAAS3c,OAAQ,CAC9C,IAAIwhB,EAAa1E,EAAMw4B,OAAOlwC,QAAQ2iC,OAAOvmB,WAC7C,OAAOjC,EAAKwoB,OAAOjjC,KAAI,SAAU2kC,EAAOltC,GACtC,IACI+gB,EADOR,EAAM2pB,eAAe,GACfxD,WAAW9O,SAAS53B,GACrC,MAAO,CACLwnB,KAAM0lB,EACN5kB,UAAWvH,EAAMb,gBACjB6H,YAAahH,EAAMZ,YACnB6H,UAAWjH,EAAMiF,YACjBf,WAAYA,EACZg0B,QAAS14B,EAAMmzB,kBAAkB1zC,GACjCoI,MAAOpI,MAKb,MAAO,KAGX2hB,QAAS,SAAiBxd,EAAG+0C,EAAYH,GACvCA,EAAOx4B,MAAM44B,qBAAqBD,EAAW9wC,OAC7C2wC,EAAOx4B,MAAMykB,WAGjBuQ,QAAS,CACPhW,UAAW,CACTiW,MAAO,WACL,MAAO,IAETtI,MAAO,SAAekM,GACpB,IAAIC,EAAYD,EAAYlM,MACxBjsC,EAAQ,KAAOm4C,EAAYE,eAS/B,OAPIn3C,EAAQk3C,IACVA,EAAYA,EAAUt0C,SACZ,IAAM9D,EAEhBo4C,GAAap4C,EAGRo4C,OAOjB,IAAI,GAA8B,SAAUE,GAC1Ctc,GAAUuc,EAAgBD,GAE1B,IAAIE,EAAUlc,GAAaic,GAE3B,SAASA,IAGP,OAFA,GAAgB37B,KAAM27B,GAEfC,EAAQvzC,MAAM2X,KAAM9X,WAsH7B,OAnHA,GAAayzC,EAAgB,CAAC,CAC5Bj4C,IAAK,aACLN,MAAO,WACL4c,KAAK6qB,qBAAsB,EAE3B9L,GAAKE,GAAgB0c,EAAe53C,WAAY,aAAcic,MAAM1d,KAAK0d,QAE1E,CACDtc,IAAK,SACLN,MAAO,SAAgBE,GACrB,IAAImd,EAAKT,KACLioB,EAAOxnB,EAAGsoB,YACVnf,EAAOqe,EAAKmD,QACZyQ,EAAa5T,EAAK9iB,KAClBmO,OAAwB,IAAfuoB,EAAwB,GAAKA,EACtCC,EAAW7T,EAAK6T,SAChBC,EAAqBt7B,EAAGiC,MAAMmuB,oBAE9BmL,EAsHV,SAAyC/T,EAAM3U,EAAQyoB,GACrD,IAAIE,EAAa3oB,EAAO1tB,OACpB6C,EAAQ,EACRi0B,EAAQuf,EAEZ,GAAIhU,EAAKsF,QAAS,CAChB,IAAItE,EAAShB,EAAKgB,OACdY,EAAU5B,EAAK4B,QACfV,EAAOF,EAAOE,KAEd+S,EAAwBjT,EAAO4F,gBAC/B9gC,EAAMmuC,EAAsBnuC,IAC5BC,EAAMkuC,EAAsBluC,IAC5B8gC,EAAaoN,EAAsBpN,WACnCC,EAAamN,EAAsBnN,WAEnCD,IACFrmC,EAAQ4G,GAAYlD,KAAK4B,IAAIyf,GAAaqc,EAASZ,EAAOE,KAAMp7B,GAAKwf,GAAIwuB,EAAqBE,EAAazuB,GAAa8F,EAAQ6V,EAAMF,EAAOmJ,iBAAiBrkC,IAAMwf,IAAK,EAAG0uB,EAAa,IAIzLvf,EADEqS,EACM1/B,GAAYlD,KAAK6B,IAAIwf,GAAaqc,EAASZ,EAAOE,KAAMn7B,GAAKsf,GAAK,EAAGyuB,EAAqB,EAAIvuB,GAAa8F,EAAQ6V,EAAMF,EAAOmJ,iBAAiBpkC,IAAMsf,GAAK,GAAI7kB,EAAOwzC,GAAcxzC,EAErLwzC,EAAaxzC,EAIzB,MAAO,CACLA,MAAOA,EACPi0B,MAAOA,GAnJuByf,CAAgClU,EAAM3U,EAAQyoB,GACtEtzC,EAAQuzC,EAAsBvzC,MAC9Bi0B,EAAQsf,EAAsBtf,MAElCjc,EAAGkqB,WAAaliC,EAChBgY,EAAGmqB,WAAalO,EAkJtB,SAA4BuL,GAC1B,IAAIgE,EAAShE,EAAKgE,OACdE,EAASlE,EAAKkE,OACdiQ,EAAenU,EAAKmU,aACpBC,EAAY,CACdC,KAAMrQ,EAAOl+B,IACbwuC,KAAMtQ,EAAOj+B,IACbwuC,KAAMrQ,EAAOp+B,IACb0uC,KAAMtQ,EAAOn+B,KAGf,IAAKouC,EAEH,OADAnU,EAAKmU,aAAeC,GACb,EAGT,IAAIK,EAAUN,EAAaE,OAASrQ,EAAOl+B,KAAOquC,EAAaG,OAAStQ,EAAOj+B,KAAOouC,EAAaI,OAASrQ,EAAOp+B,KAAOquC,EAAaK,OAAStQ,EAAOn+B,IAEvJ,OADAnL,OAAO6c,OAAO08B,EAAcC,GACrBK,EAlKCC,CAAmB1U,KACrBx/B,EAAQ,EACRi0B,EAAQpJ,EAAO1tB,QAGjBgkB,EAAKgzB,aAAed,EAASc,WAC7BhzB,EAAK0J,OAASA,EACd,IAAItoB,EAAUyV,EAAGmvB,6BAA6BtsC,GAEzCmd,EAAGzV,QAAQoZ,WACdpZ,EAAQmd,YAAc,GAGxBnd,EAAQ4xB,QAAUnc,EAAGzV,QAAQ4xB,QAC7Bnc,EAAGk0B,cAAc/qB,OAAM3W,EAAW,CAChC4pC,UAAWd,EACX/wC,QAASA,GACR1H,GACHmd,EAAGgxB,eAAene,EAAQ7qB,EAAOi0B,EAAOp5B,KAEzC,CACDI,IAAK,iBACLN,MAAO,SAAwBkwB,EAAQ7qB,EAAOi0B,EAAOp5B,GAiBnD,IAhBA,IAAImd,EAAKT,KACL2zB,EAAiB,UAATrwC,EACRw5C,EAAmBr8B,EAAGsoB,YACtBE,EAAS6T,EAAiB7T,OAC1BR,EAASqU,EAAiBrU,OAC1ByC,EAAW4R,EAAiB5R,SAC5B+I,EAAYxzB,EAAGovB,0BAA0BpnC,EAAOnF,GAChDstC,EAAgBnwB,EAAGswB,iBAAiBkD,GACpCC,EAAiBzzB,EAAGyzB,eAAe5wC,EAAMstC,GACzC1H,EAAQD,EAAOE,KACfC,EAAQX,EAAOU,KACf3T,EAAW/U,EAAGzV,QAAQwqB,SACtBunB,EAAexvC,EAASioB,GAAYA,EAAWrsB,OAAOoD,kBACtDywC,EAAev8B,EAAGiC,MAAMmuB,qBAAuB8C,GAAkB,SAATrwC,EACxD25C,EAAax0C,EAAQ,GAAKgY,EAAG2uB,UAAU3mC,EAAQ,GAE1CtG,EAAIsG,EAAOtG,EAAIsG,EAAQi0B,IAASv6B,EAAG,CAC1C,IAAImmB,EAAQgL,EAAOnxB,GACf2mC,EAASroB,EAAG2uB,UAAUjtC,GACtBojC,EAAayX,EAAe10B,EAAQ,GACpC40B,EAAWp0C,EAAcggC,EAAOM,IAChC7U,EAASgR,EAAW2D,GAASD,EAAOmJ,iBAAiBtJ,EAAOI,GAAQ/mC,GACpEqyB,EAAS+Q,EAAW6D,GAASuK,GAASuJ,EAAWzU,EAAOmL,eAAiBnL,EAAO2J,iBAAiBlH,EAAWzqB,EAAGm1B,WAAWnN,EAAQK,EAAQoC,GAAYpC,EAAOM,GAAQjnC,GACzKojC,EAAWhS,KAAO/lB,MAAM+mB,IAAW/mB,MAAMgnB,IAAW0oB,EACpD3X,EAAW4X,KAAOh7C,EAAI,GAAK2mC,EAAOI,GAAS+T,EAAW/T,GAAS6T,EAC/DxX,EAAWuD,OAASA,EAEhBoL,IACF3O,EAAWv6B,QAAU4lC,GAAiBnwB,EAAGovB,0BAA0B1tC,EAAGmmB,EAAMmd,OAAS,SAAWniC,IAG7F05C,GACHv8B,EAAGk0B,cAAcrsB,EAAOnmB,EAAGojC,EAAYjiC,GAGzC25C,EAAanU,EAGfroB,EAAG0zB,oBAAoBvD,EAAettC,EAAM2wC,KAE7C,CACDvwC,IAAK,iBACLN,MAAO,WACL,IAAIqd,EAAKT,KACLioB,EAAOxnB,EAAGsoB,YACVqC,EAAUnD,EAAKmD,QACfgS,EAAShS,EAAQpgC,SAAWogC,EAAQpgC,QAAQmd,aAAe,EAC3DhD,EAAO8iB,EAAK9iB,MAAQ,GAExB,IAAKA,EAAKvf,OACR,OAAOw3C,EAGT,IAAItoB,EAAa3P,EAAK,GAAGlC,KAAKxC,EAAGovB,0BAA0B,IACvDwN,EAAYl4B,EAAKA,EAAKvf,OAAS,GAAGqd,KAAKxC,EAAGovB,0BAA0B1qB,EAAKvf,OAAS,IACtF,OAAOuG,KAAK6B,IAAIovC,EAAQtoB,EAAYuoB,GAAa,IAElD,CACD35C,IAAK,OACLN,MAAO,WACL,IAAI6kC,EAAOjoB,KAAK+oB,YAChBd,EAAKmD,QAAQkS,oBAAoBt9B,KAAK0C,MAAMitB,UAAW1H,EAAKgB,OAAOE,MAEnEpK,GAAKE,GAAgB0c,EAAe53C,WAAY,OAAQic,MAAM1d,KAAK0d,UAIhE27B,EA9HyB,CA+HhC,IAEF,GAAe/yC,GAAK,OACpB,GAAeqZ,SAAW,CACxB4qB,mBAAoB,OACpBsD,gBAAiB,QACjB/rB,UAAU,EACVoR,UAAU,GAEZ,GAAe/T,UAAY,CACzB0C,OAAQ,CACNyyB,QAAS,CACP7tC,KAAM,YAERguC,QAAS,CACPhuC,KAAM,YA2DZ,IAAI,GAAmC,SAAUw0C,GAC/Cne,GAAUoe,EAAqBD,GAE/B,IAAIE,EAAU/d,GAAa8d,GAE3B,SAASA,EAAoB96B,EAAOpY,GAClC,IAAIozC,EAOJ,OALA,GAAgB19B,KAAMw9B,IAEtBE,EAASD,EAAQn7C,KAAK0d,KAAM0C,EAAOpY,IAC5B0tC,iBAAc/kC,EACrByqC,EAAOzF,iBAAchlC,EACdyqC,EAiHT,OA9GA,GAAaF,EAAqB,CAAC,CACjC95C,IAAK,mBACLN,MAAO,SAA0BmH,GAC/B,IACI09B,EADKjoB,KACK+oB,YACVrmB,EAFK1C,KAEM0C,MACXirB,EAASjrB,EAAMyC,KAAKwoB,QAAU,GAC9BvqC,EAAQm3B,GAAa0N,EAAK4B,QAAQt/B,GAAOtH,EAAGyf,EAAM1X,QAAQyvB,QAC9D,MAAO,CACL4U,MAAO1B,EAAOpjC,IAAU,GACxBnH,MAAOA,KAGV,CACDM,IAAK,SACLN,MAAO,SAAgBE,GACrB,IAAIg1C,EAAOt4B,KAAK+oB,YAAY5jB,KAE5BnF,KAAK29B,gBAEL39B,KAAKyxB,eAAe6G,EAAM,EAAGA,EAAK1yC,OAAQtC,KAE3C,CACDI,IAAK,gBACLN,MAAO,WACL,IAAIqd,EAAKT,KACL0C,EAAQjC,EAAGiC,MACXitB,EAAYjtB,EAAMitB,UAClB9lB,EAAOnH,EAAM1X,QACb4yC,EAAUzxC,KAAK4B,IAAI4hC,EAAUjnB,MAAQinB,EAAUlnB,KAAMknB,EAAU/mB,OAAS+mB,EAAUhnB,KAClFsvB,EAAc9rC,KAAK6B,IAAI4vC,EAAU,EAAG,GAEpC3D,GAAgBhC,EADF9rC,KAAK6B,IAAI6b,EAAKg0B,iBAAmB5F,EAAc,IAAMpuB,EAAKg0B,iBAAmB,EAAG,IACjDn7B,EAAMo7B,yBACvDr9B,EAAGw3B,YAAcA,EAAcgC,EAAex5B,EAAGlW,MACjDkW,EAAGu3B,YAAcv3B,EAAGw3B,YAAcgC,IAEnC,CACDv2C,IAAK,iBACLN,MAAO,SAAwBk1C,EAAM7vC,EAAOi0B,EAAOp5B,GACjD,IAWInB,EAXAse,EAAKT,KACL2zB,EAAiB,UAATrwC,EACRof,EAAQjC,EAAGiC,MACX0oB,EAAU3qB,EAAG4qB,aAEbmP,EADO93B,EAAM1X,QACQoX,UACrB8B,EAAQzD,EAAGsoB,YAAYqD,OACvBqO,EAAUv2B,EAAM65B,QAChBrD,EAAUx2B,EAAM85B,QAChBC,EAAoB/5B,EAAMg6B,cAAc,GAAK,GAAMhyC,EACnD6C,EAAQkvC,EAERE,EAAe,IAAM19B,EAAG29B,uBAE5B,IAAKj8C,EAAI,EAAGA,EAAIsG,IAAStG,EACvB4M,GAAS0R,EAAG49B,cAAcl8C,EAAGmB,EAAM66C,GAGrC,IAAKh8C,EAAIsG,EAAOtG,EAAIsG,EAAQi0B,EAAOv6B,IAAK,CACtC,IAAIylB,EAAM0wB,EAAKn2C,GACXg3C,EAAapqC,EAEbqqC,EAAWrqC,EAAQ0R,EAAG49B,cAAcl8C,EAAGmB,EAAM66C,GAE7ClG,EAAcv1B,EAAMmzB,kBAAkB1zC,GAAK+hB,EAAMo6B,8BAA8BlT,EAAQjmB,KAAKhjB,IAAM,EACtG4M,EAAQqqC,EAEJzF,IACE6G,EAAcG,eAChB1C,EAAc,GAGZuC,EAAcF,gBAChBnB,EAAaC,EAAW6E,IAI5B,IAAI1Y,EAAa,CACf93B,EAAGgtC,EACH/sC,EAAGgtC,EACH1C,YAAa,EACbC,YAAaA,EACbkB,WAAYA,EACZC,SAAUA,EACVpuC,QAASyV,EAAGovB,0BAA0B1tC,EAAGylB,EAAI6d,OAAS,SAAWniC,IAEnEmd,EAAGk0B,cAAc/sB,EAAKzlB,EAAGojC,EAAYjiC,MAGxC,CACDI,IAAK,uBACLN,MAAO,WACL,IAAIm7C,EAASv+B,KAETorB,EAAUprB,KAAKqrB,aACfpD,EAAOjoB,KAAK+oB,YACZrM,EAAQ,EAMZ,OALAuL,EAAK9iB,KAAK6I,SAAQ,SAAU2I,EAASpsB,IAC9BiD,MAAM49B,EAAQjmB,KAAK5a,KAAWg0C,EAAO77B,MAAMmzB,kBAAkBtrC,IAChEmyB,OAGGA,IAER,CACDh5B,IAAK,gBACLN,MAAO,SAAuBmH,EAAOjH,EAAM66C,GACzC,OAAOn+B,KAAK0C,MAAMmzB,kBAAkBtrC,GAAS0D,GAAU+R,KAAK6vB,0BAA0BtlC,EAAOjH,GAAMyL,OAASovC,GAAgB,MAIzHX,EA9H8B,CA+HrC,IAEF,GAAoB50C,GAAK,YACzB,GAAoBqZ,SAAW,CAC7BkuB,gBAAiB,MACjB/tB,UAAW,CACTk4B,eAAe,EACfK,cAAc,GAEhB/U,WAAY,CACVJ,QAAS,CACPz8B,KAAM,SACNw8B,WAAY,CAAC,IAAK,IAAK,aAAc,WAAY,cAAe,iBAGpE9hB,UAAW,IACX01B,WAAY,GAEd,GAAoB13B,UAAY,CAC9B6W,YAAa,EACbtU,QAAS,CACPk3B,OAAQ,CACNvN,OAAQ,CACNwN,eAAgB,SAAwBz4B,GACtC,IAAIyC,EAAOzC,EAAMyC,KAEjB,GAAIA,EAAKwoB,OAAO/nC,QAAUuf,EAAK5C,SAAS3c,OAAQ,CAC9C,IAAIwhB,EAAa1E,EAAMw4B,OAAOlwC,QAAQ2iC,OAAOvmB,WAC7C,OAAOjC,EAAKwoB,OAAOjjC,KAAI,SAAU2kC,EAAOltC,GACtC,IACI+gB,EADOR,EAAM2pB,eAAe,GACfxD,WAAW9O,SAAS53B,GACrC,MAAO,CACLwnB,KAAM0lB,EACN5kB,UAAWvH,EAAMb,gBACjB6H,YAAahH,EAAMZ,YACnB6H,UAAWjH,EAAMiF,YACjBf,WAAYA,EACZg0B,QAAS14B,EAAMmzB,kBAAkB1zC,GACjCoI,MAAOpI,MAKb,MAAO,KAGX2hB,QAAS,SAAiBxd,EAAG+0C,EAAYH,GACvCA,EAAOx4B,MAAM44B,qBAAqBD,EAAW9wC,OAC7C2wC,EAAOx4B,MAAMykB,WAGjBuQ,QAAS,CACPhW,UAAW,CACTiW,MAAO,WACL,MAAO,IAETtI,MAAO,SAAe5sB,GACpB,OAAOA,EAAQC,MAAMyC,KAAKwoB,OAAOlrB,EAAQqtB,WAAa,KAAOrtB,EAAQg5B,mBAK7Et3B,OAAQ,CACNlhB,EAAG,CACD8F,KAAM,eACNy1C,WAAY,CACVC,SAAS,GAEXzH,aAAa,EACbF,KAAM,CACJ4H,UAAU,GAEZC,YAAa,CACXF,SAAS,GAEXtF,WAAY,KAKlB,IAAIyF,GAA6B,SAAUC,GACzCzf,GAAUwf,EAAeC,GAEzB,IAAIC,EAAUpf,GAAakf,GAE3B,SAASA,IAGP,OAFA,GAAgB5+B,KAAM4+B,GAEfE,EAAQz2C,MAAM2X,KAAM9X,WAG7B,OAAO02C,EAXwB,CAY/B,IAEFA,GAAch2C,GAAK,MACnBg2C,GAAc38B,SAAW,CACvB02B,OAAQ,EACRtxB,SAAU,EACV6wB,cAAe,IACf5wB,OAAQ,QAGV,IAAIy3B,GAA+B,SAAUC,GAC3C5f,GAAU2f,EAAiBC,GAE3B,IAAIC,EAAUvf,GAAaqf,GAE3B,SAASA,IAGP,OAFA,GAAgB/+B,KAAM++B,GAEfE,EAAQ52C,MAAM2X,KAAM9X,WAmE7B,OAhEA,GAAa62C,EAAiB,CAAC,CAC7Br7C,IAAK,mBACLN,MAAO,SAA0BmH,GAC/B,IACIk+B,EADKzoB,KACO+oB,YAAYN,OACxBK,EAFK9oB,KAEOovB,UAAU7kC,GAC1B,MAAO,CACL8kC,MAAO5G,EAAOmF,YAAYrjC,GAC1BnH,MAAO,GAAKqlC,EAAO6G,iBAAiBxG,EAAOL,EAAOU,UAGrD,CACDzlC,IAAK,SACLN,MAAO,SAAgBE,GACrB,IAAImd,EAAKT,KACLioB,EAAOxnB,EAAGsoB,YACVnf,EAAOqe,EAAKmD,QACZ9X,EAAS2U,EAAK9iB,MAAQ,GACtBwoB,EAAS1F,EAAKgB,OAAO2E,YAGzB,GAFAhkB,EAAK0J,OAASA,EAED,WAAThwB,EAAmB,CACrB,IAAI0H,EAAUyV,EAAGmvB,6BAA6BtsC,GAEzCmd,EAAGzV,QAAQoZ,WACdpZ,EAAQmd,YAAc,GAGxB,IAAIod,EAAa,CACff,OAAO,EACP0a,UAAWvR,EAAO/nC,SAAW0tB,EAAO1tB,OACpCoF,QAASA,GAEXyV,EAAGk0B,cAAc/qB,OAAM3W,EAAWsyB,EAAYjiC,GAGhDmd,EAAGgxB,eAAene,EAAQ,EAAGA,EAAO1tB,OAAQtC,KAE7C,CACDI,IAAK,iBACLN,MAAO,SAAwBkwB,EAAQ7qB,EAAOi0B,EAAOp5B,GAMnD,IALA,IAAImd,EAAKT,KACLorB,EAAU3qB,EAAG4qB,aACbnnB,EAAQzD,EAAGsoB,YAAYqD,OACvBuH,EAAiB,UAATrwC,EAEHnB,EAAIsG,EAAOtG,EAAIsG,EAAQi0B,EAAOv6B,IAAK,CAC1C,IAAImmB,EAAQgL,EAAOnxB,GACf6I,EAAUyV,EAAGovB,0BAA0B1tC,EAAGmmB,EAAMmd,OAAS,SAAWniC,GACpE67C,EAAgBj7B,EAAMk7B,yBAAyBj9C,EAAGipC,EAAQjmB,KAAKhjB,IAC/DsL,EAAIkmC,EAAQzvB,EAAM65B,QAAUoB,EAAc1xC,EAC1CC,EAAIimC,EAAQzvB,EAAM85B,QAAUmB,EAAczxC,EAC1C63B,EAAa,CACf93B,EAAGA,EACHC,EAAGA,EACHqB,MAAOowC,EAAcpwC,MACrBwkB,KAAM/lB,MAAMC,IAAMD,MAAME,GACxB1C,QAASA,GAEXyV,EAAGk0B,cAAcrsB,EAAOnmB,EAAGojC,EAAYjiC,QAKtCy7C,EA3E0B,CA4EjC,IAEFA,GAAgBn2C,GAAK,QACrBm2C,GAAgB98B,SAAW,CACzB4qB,mBAAoB,OACpBsD,gBAAiB,QACjB1sB,UAAW,IACXW,UAAU,EACVvB,SAAU,CACR+G,KAAM,CACJ1B,KAAM,WAIZ62B,GAAgBt9B,UAAY,CAC1B6W,YAAa,EACbnU,OAAQ,CACNlhB,EAAG,CACD8F,KAAM,kBAKZ,IAAIs2C,GAAiC,SAAUC,GAC7ClgB,GAAUigB,EAAmBC,GAE7B,IAAIC,EAAU7f,GAAa2f,GAE3B,SAASA,IAGP,OAFA,GAAgBr/B,KAAMq/B,GAEfE,EAAQl3C,MAAM2X,KAAM9X,WAG7B,OAAOm3C,EAX4B,CAYnC,IAEFA,GAAkBz2C,GAAK,UACvBy2C,GAAkBp9B,SAAW,CAC3BmC,UAAU,EACV8D,MAAM,GAERm3B,GAAkB59B,UAAY,CAC5BiC,YAAa,CACXpgB,KAAM,SAER0gB,QAAS,CACP0zB,QAAS,CACPhW,UAAW,CACTiW,MAAO,WACL,MAAO,IAETtI,MAAO,SAAehN,GACpB,MAAO,IAAMA,EAAKgN,MAAQ,KAAOhN,EAAKoZ,eAAiB,QAK/Dt3B,OAAQ,CACN1W,EAAG,CACD1E,KAAM,UAER2E,EAAG,CACD3E,KAAM,YAgBZ,SAAS,KACP,MAAM,IAAIynB,MAAM,mFAGlB,IAAIgvB,GAA2B,WAC7B,SAASA,EAAYx0C,GACnB,GAAgBgV,KAAMw/B,GAEtBx/B,KAAKhV,QAAUA,GAAW,GAwC5B,OArCA,GAAaw0C,EAAa,CAAC,CACzB97C,IAAK,UACLN,MAAO,WACL,OAAO,OAER,CACDM,IAAK,QACLN,MAAO,SAAeA,EAAO63B,GAC3B,OAAO,OAER,CACDv3B,IAAK,SACLN,MAAO,SAAgBq8C,EAAWC,GAChC,OAAO,OAER,CACDh8C,IAAK,MACLN,MAAO,SAAaq8C,EAAWE,EAAQC,GACrC,OAAO,OAER,CACDl8C,IAAK,OACLN,MAAO,SAAcuL,EAAGC,EAAGgxC,GACzB,OAAO,OAER,CACDl8C,IAAK,UACLN,MAAO,SAAiBq8C,EAAWG,EAAMC,GACvC,OAAO,OAER,CACDn8C,IAAK,QACLN,MAAO,SAAeq8C,EAAWG,GAC/B,OAAO,SAIJJ,EA5CsB,GA+C/BA,GAAYpvB,SAAW,SAAU0vB,GAC/Bj9C,OAAO6c,OAAO8/B,GAAYz7C,UAAW+7C,IAGvC,IAAIC,GAAW,CACbC,MAAOR,IAGT,SAAS,GAAoBl5C,EAAGoc,GAC9B,MAAI,WAAYpc,EACP,CACLmH,EAAGnH,EAAEmH,EACLC,EAAGpH,EAAEoH,GAIFupB,GAAsB3wB,EAAGoc,GAsBlC,SAASu9B,GAAaC,EAAS/W,EAAM/lC,EAAOugB,GAC1C,IAAIklB,EAAaqX,EAAQrX,WACrB1jB,EAAO+6B,EAAQ/6B,KACfooB,EAAU2S,EAAQ3S,QAClBtE,EAASJ,EAAWE,YAAYE,OAEpC,GAAIA,GAAUE,IAASF,EAAOE,MAAQoE,GAAWpoB,EAAKvf,OAAQ,CAC5D,IAAIu6C,EAAelX,EAAOmX,eAAiB3yB,GAAgBD,GAE3D,IAAK7J,EACH,OAAOw8B,EAAah7B,EAAMgkB,EAAM/lC,GAC3B,GAAIylC,EAAW6B,eAAgB,CACpC,IAAI7Q,EAAK1U,EAAK,GACVpY,EAA+B,oBAAhB8sB,EAAGwmB,UAA2BxmB,EAAGwmB,SAASlX,GAE7D,GAAIp8B,EAAO,CACT,IAAItE,EAAQ03C,EAAah7B,EAAMgkB,EAAM/lC,EAAQ2J,GACzCrE,EAAMy3C,EAAah7B,EAAMgkB,EAAM/lC,EAAQ2J,GAC3C,MAAO,CACLwgB,GAAI9kB,EAAM8kB,GACVD,GAAI5kB,EAAI4kB,MAMhB,MAAO,CACLC,GAAI,EACJD,GAAInI,EAAKvf,OAAS,GAItB,SAAS06C,GAAuB59B,EAAOymB,EAAMoX,EAAUC,EAAS78B,GAI9D,IAHA,IAAI8jB,EAAW/kB,EAAM+9B,+BACjBr9C,EAAQm9C,EAASpX,GAEZhnC,EAAI,EAAGgI,EAAOs9B,EAAS7hC,OAAQzD,EAAIgI,IAAQhI,EASlD,IARA,IAAIu+C,EAAejZ,EAAStlC,GACxBoI,EAAQm2C,EAAan2C,MACrB4a,EAAOu7B,EAAav7B,KAEpBw7B,EAAgBV,GAAaxY,EAAStlC,GAAIgnC,EAAM/lC,EAAOugB,GACvD4J,EAAKozB,EAAcpzB,GACnBD,EAAKqzB,EAAcrzB,GAEd3O,EAAI4O,EAAI5O,GAAK2O,IAAM3O,EAAG,CAC7B,IAAIgY,EAAUxR,EAAKxG,GAEdgY,EAAQpD,MACXitB,EAAQ7pB,EAASpsB,EAAOoU,IAgBhC,SAASiiC,GAAkBl+B,EAAO69B,EAAUpX,EAAM0X,GAChD,IAAI3yB,EAAQ,GAEZ,IAAK7F,GAAek4B,EAAU79B,EAAMitB,UAAWjtB,EAAMo+B,aACnD,OAAO5yB,EAcT,OADAoyB,GAAuB59B,EAAOymB,EAAMoX,GAVf,SAAwB5pB,EAASrsB,EAAcC,GAC9DosB,EAAQoqB,QAAQR,EAAS9yC,EAAG8yC,EAAS7yC,EAAGmzC,IAC1C3yB,EAAMxI,KAAK,CACTiR,QAASA,EACTrsB,aAAcA,EACdC,MAAOA,OAKiD,GACvD2jB,EAGT,SAAS8yB,GAAgBt+B,EAAO69B,EAAUpX,EAAMxlB,EAAWk9B,GACzD,IAAII,EAhCN,SAAkC9X,GAChC,IAAI+X,GAA8B,IAAvB/X,EAAKr+B,QAAQ,KACpBq2C,GAA8B,IAAvBhY,EAAKr+B,QAAQ,KACxB,OAAO,SAAUyD,EAAKC,GACpB,IAAI4yC,EAASF,EAAO/0C,KAAKyB,IAAIW,EAAId,EAAIe,EAAIf,GAAK,EAC1C4zC,EAASF,EAAOh1C,KAAKyB,IAAIW,EAAIb,EAAIc,EAAId,GAAK,EAC9C,OAAOvB,KAAKsC,KAAKtC,KAAKiB,IAAIg0C,EAAQ,GAAKj1C,KAAKiB,IAAIi0C,EAAQ,KA0BrCC,CAAyBnY,GAC1CoY,EAAcp4C,OAAOoD,kBACrB2hB,EAAQ,GAEZ,IAAK7F,GAAek4B,EAAU79B,EAAMitB,UAAWjtB,EAAMo+B,aACnD,OAAO5yB,EAiCT,OADAoyB,GAAuB59B,EAAOymB,EAAMoX,GA7Bf,SAAwB5pB,EAASrsB,EAAcC,GAClE,IAAIoZ,GAAcgT,EAAQoqB,QAAQR,EAAS9yC,EAAG8yC,EAAS7yC,EAAGmzC,GAA1D,CAIA,IAAInM,EAAS/d,EAAQ6qB,eAAeX,GAEpC,GAAKx4B,GAAeqsB,EAAQhyB,EAAMitB,UAAWjtB,EAAMo+B,aAAnD,CAIA,IAAIW,EAAWR,EAAeV,EAAU7L,GAEpC+M,EAAWF,GACbrzB,EAAQ,CAAC,CACPyI,QAASA,EACTrsB,aAAcA,EACdC,MAAOA,IAETg3C,EAAcE,GACLA,IAAaF,GACtBrzB,EAAMxI,KAAK,CACTiR,QAASA,EACTrsB,aAAcA,EACdC,MAAOA,SAMN2jB,EAGT,SAASwzB,GAAah/B,EAAOpc,EAAG0E,EAAS61C,GACvC,IAAIN,EAAW,GAAoBj6C,EAAGoc,GAClCwL,EAAQ,GACRib,EAAOn+B,EAAQm+B,KACfwY,EAAuB,MAATxY,EAAe,WAAa,WAC1CyY,GAAiB,EAerB,OAvKF,SAAiCl/B,EAAO89B,GAItC,IAHA,IACIj2C,EAAO4a,EAAMwR,EADb8Q,EAAW/kB,EAAM+9B,+BAGZt+C,EAAI,EAAGgI,EAAOs9B,EAAS7hC,OAAQzD,EAAIgI,IAAQhI,EAAG,CACrD,IAAI0/C,EAAcpa,EAAStlC,GAC3BoI,EAAQs3C,EAAYt3C,MAGpB,IAAK,IAAIoU,EAAI,EAAGqH,GAFhBb,EAAO08B,EAAY18B,MAESvf,OAAQ+Y,EAAIqH,IAAQrH,GAC9CgY,EAAUxR,EAAKxG,IAEF4U,MACXitB,EAAQ7pB,EAASpsB,EAAOoU,IA4I9BmjC,CAAwBp/B,GAAO,SAAUiU,EAASrsB,EAAcC,GAC1DosB,EAAQgrB,GAAapB,EAASpX,GAAO0X,IACvC3yB,EAAMxI,KAAK,CACTiR,QAASA,EACTrsB,aAAcA,EACdC,MAAOA,IAIPosB,EAAQoqB,QAAQR,EAAS9yC,EAAG8yC,EAAS7yC,EAAGmzC,KAC1Ce,GAAiB,MAIjB52C,EAAQ2Y,YAAci+B,EACjB,GAGF1zB,EAGT,IAAI6zB,GAAc,CAChBC,MAAO,CACLz3C,MAAO,SAAemY,EAAOpc,EAAG0E,EAAS61C,GACvC,IAAIN,EAAW,GAAoBj6C,EAAGoc,GAClCymB,EAAOn+B,EAAQm+B,MAAQ,IACvBjb,EAAQljB,EAAQ2Y,UAAYi9B,GAAkBl+B,EAAO69B,EAAUpX,EAAM0X,GAAoBG,GAAgBt+B,EAAO69B,EAAUpX,GAAM,EAAO0X,GACvIh+B,EAAW,GAEf,OAAKqL,EAAMtoB,QAIX8c,EAAM+9B,+BAA+BzyB,SAAQ,SAAUia,GACrD,IAAI19B,EAAQ2jB,EAAM,GAAG3jB,MACjBosB,EAAUsR,EAAK9iB,KAAK5a,GAEpBosB,IAAYA,EAAQpD,MACtB1Q,EAAS6C,KAAK,CACZiR,QAASA,EACTrsB,aAAc29B,EAAK19B,MACnBA,MAAOA,OAINsY,GAfE,IAiBXuoB,QAAS,SAAiB1oB,EAAOpc,EAAG0E,EAAS61C,GAC3C,IAAIN,EAAW,GAAoBj6C,EAAGoc,GAClCymB,EAAOn+B,EAAQm+B,MAAQ,KACvBjb,EAAQljB,EAAQ2Y,UAAYi9B,GAAkBl+B,EAAO69B,EAAUpX,EAAM0X,GAAoBG,GAAgBt+B,EAAO69B,EAAUpX,GAAM,EAAO0X,GAE3I,GAAI3yB,EAAMtoB,OAAS,EAAG,CACpB,IAAI0E,EAAe4jB,EAAM,GAAG5jB,aACxB6a,EAAOzC,EAAM2pB,eAAe/hC,GAAc6a,KAC9C+I,EAAQ,GAER,IAAK,IAAI/rB,EAAI,EAAGA,EAAIgjB,EAAKvf,SAAUzD,EACjC+rB,EAAMxI,KAAK,CACTiR,QAASxR,EAAKhjB,GACdmI,aAAcA,EACdC,MAAOpI,IAKb,OAAO+rB,GAET5F,MAAO,SAAe5F,EAAOpc,EAAG0E,EAAS61C,GAGvC,OAAOD,GAAkBl+B,EAFV,GAAoBpc,EAAGoc,GAC3B1X,EAAQm+B,MAAQ,KACqB0X,IAElDoB,QAAS,SAAiBv/B,EAAOpc,EAAG0E,EAAS61C,GAG3C,OAAOG,GAAgBt+B,EAFR,GAAoBpc,EAAGoc,GAC3B1X,EAAQm+B,MAAQ,KACmBn+B,EAAQ2Y,UAAWk9B,IAEnEpzC,EAAG,SAAWiV,EAAOpc,EAAG0E,EAAS61C,GAE/B,OADA71C,EAAQm+B,KAAO,IACRuY,GAAah/B,EAAOpc,EAAG0E,EAAS61C,IAEzCnzC,EAAG,SAAWgV,EAAOpc,EAAG0E,EAAS61C,GAE/B,OADA71C,EAAQm+B,KAAO,IACRuY,GAAah/B,EAAOpc,EAAG0E,EAAS61C,MAIzCqB,GAAmB,CAAC,OAAQ,MAAO,QAAS,UAEhD,SAASC,GAAiBr0C,EAAOyyC,GAC/B,OAAOzyC,EAAMgjB,QAAO,SAAUze,GAC5B,OAAOA,EAAE1G,MAAQ40C,KAIrB,SAAS6B,GAA4Bt0C,EAAOq7B,GAC1C,OAAOr7B,EAAMgjB,QAAO,SAAUze,GAC5B,OAA4C,IAArC6vC,GAAiBp3C,QAAQuH,EAAE1G,MAAe0G,EAAEulB,IAAIuR,OAASA,KAIpE,SAASkZ,GAAav0C,EAAOhE,GAC3B,OAAOgE,EAAMkkC,MAAK,SAAUrjC,EAAGC,GAC7B,IAAIxE,EAAKN,EAAU8E,EAAID,EACnBtE,EAAKP,EAAU6E,EAAIC,EACvB,OAAOxE,EAAGoW,SAAWnW,EAAGmW,OAASpW,EAAGG,MAAQF,EAAGE,MAAQH,EAAGoW,OAASnW,EAAGmW,UA2D1E,SAAS8hC,GAAeC,EAAY5S,EAAWhhC,EAAGC,GAChD,OAAOzC,KAAK6B,IAAIu0C,EAAW5zC,GAAIghC,EAAUhhC,IAAMxC,KAAK6B,IAAIu0C,EAAW3zC,GAAI+gC,EAAU/gC,IAGnF,SAAS4zC,GAAiBD,EAAYE,GACpCF,EAAW55B,IAAMxc,KAAK6B,IAAIu0C,EAAW55B,IAAK85B,EAAW95B,KACrD45B,EAAW95B,KAAOtc,KAAK6B,IAAIu0C,EAAW95B,KAAMg6B,EAAWh6B,MACvD85B,EAAW35B,OAASzc,KAAK6B,IAAIu0C,EAAW35B,OAAQ65B,EAAW75B,QAC3D25B,EAAW75B,MAAQvc,KAAK6B,IAAIu0C,EAAW75B,MAAO+5B,EAAW/5B,OAG3D,SAASg6B,GAAW/S,EAAWgT,EAAQC,GACrC,IAAIhrB,EAAMgrB,EAAOhrB,IACb2qB,EAAa5S,EAAU4S,WAEtBt5C,EAAS25C,EAAOj3C,OACfi3C,EAAO3/B,OACT0sB,EAAUiT,EAAOj3C,MAAQi3C,EAAO3/B,MAGlC2/B,EAAO3/B,KAAO2/B,EAAO/O,WAAajc,EAAI7Q,OAAS6Q,EAAInS,MACnDkqB,EAAUiT,EAAOj3C,MAAQi3C,EAAO3/B,MAG9B2U,EAAIirB,YACNL,GAAiBD,EAAY3qB,EAAIirB,cAGnC,IAAIC,EAAW32C,KAAK6B,IAAI,EAAG20C,EAAOI,WAAaT,GAAeC,EAAY5S,EAAW,OAAQ,UACzFqT,EAAY72C,KAAK6B,IAAI,EAAG20C,EAAOM,YAAcX,GAAeC,EAAY5S,EAAW,MAAO,WAC1FuT,EAAeJ,IAAanT,EAAUv8B,EACtC+vC,EAAgBH,IAAcrT,EAAUl9B,EAG5C,OAFAk9B,EAAUv8B,EAAI0vC,EACdnT,EAAUl9B,EAAIuwC,EACPJ,EAAO/O,WAAa,CACzBuP,KAAMF,EACNG,MAAOF,GACL,CACFC,KAAMD,EACNE,MAAOH,GAmBX,SAASI,GAAWzP,EAAYlE,GAC9B,IAAI4S,EAAa5S,EAAU4S,WAE3B,SAASgB,EAAmB3sB,GAC1B,IAAIpO,EAAS,CACXC,KAAM,EACNE,IAAK,EACLD,MAAO,EACPE,OAAQ,GAKV,OAHAgO,EAAU5I,SAAQ,SAAUriB,GAC1B6c,EAAO7c,GAAOQ,KAAK6B,IAAI2hC,EAAUhkC,GAAM42C,EAAW52C,OAE7C6c,EAGT,OAAoB+6B,EAAb1P,EAAgC,CAAC,OAAQ,SAA+B,CAAC,MAAO,WAGzF,SAAS2P,GAASC,EAAO9T,EAAWgT,GAClC,IACIxgD,EAAGgI,EAAMy4C,EAAQhrB,EAAK8rB,EAAOhH,EAD7BiH,EAAa,GAGjB,IAAKxhD,EAAI,EAAGgI,EAAOs5C,EAAM79C,OAAQ89C,EAAQ,EAAGvhD,EAAIgI,IAAQhI,EAAG,EAEzDy1B,GADAgrB,EAASa,EAAMthD,IACFy1B,KACTuP,OAAOyb,EAAOn9B,OAASkqB,EAAUv8B,EAAGwvC,EAAO77B,QAAU4oB,EAAUl9B,EAAG6wC,GAAWV,EAAO/O,WAAYlE,IAEpG,IAAIiU,EAAclB,GAAW/S,EAAWgT,EAAQC,GAC5CQ,EAAOQ,EAAYR,KACnBC,EAAQO,EAAYP,MAExBK,GAASN,GAAQO,EAAW/9C,OAC5B82C,EAAUA,GAAW2G,EAEhBzrB,EAAIisB,UACPF,EAAWj+B,KAAKk9B,GAIpB,OAAOc,GAASF,GAASG,EAAYhU,EAAWgT,IAAWjG,EAG7D,SAASoH,GAAWL,EAAO9T,EAAWgT,GACpC,IAGIxgD,EAAGgI,EAAMy4C,EAAQhrB,EAHjBmsB,EAAcpB,EAAOqB,QACrBv2C,EAAIkiC,EAAUliC,EACdC,EAAIiiC,EAAUjiC,EAGlB,IAAKvL,EAAI,EAAGgI,EAAOs5C,EAAM79C,OAAQzD,EAAIgI,IAAQhI,EAE3Cy1B,GADAgrB,EAASa,EAAMthD,IACFy1B,IAETgrB,EAAO/O,YACTjc,EAAInP,KAAOmP,EAAIisB,SAAWE,EAAYt7B,KAAOknB,EAAUlnB,KACvDmP,EAAIlP,MAAQkP,EAAIisB,SAAWlB,EAAOI,WAAagB,EAAYr7B,MAAQinB,EAAUlnB,KAAOknB,EAAUv8B,EAC9FwkB,EAAIjP,IAAMjb,EACVkqB,EAAIhP,OAASlb,EAAIkqB,EAAI7Q,OACrB6Q,EAAInS,MAAQmS,EAAIlP,MAAQkP,EAAInP,KAC5B/a,EAAIkqB,EAAIhP,SAERgP,EAAInP,KAAOhb,EACXmqB,EAAIlP,MAAQjb,EAAImqB,EAAInS,MACpBmS,EAAIjP,IAAMiP,EAAIisB,SAAWE,EAAYp7B,IAAMgnB,EAAUhnB,IACrDiP,EAAIhP,OAASgP,EAAIisB,SAAWlB,EAAOM,YAAcc,EAAYn7B,OAAS+mB,EAAUhnB,IAAMgnB,EAAUl9B,EAChGmlB,EAAI7Q,OAAS6Q,EAAIhP,OAASgP,EAAIjP,IAC9Blb,EAAImqB,EAAIlP,OAIZinB,EAAUliC,EAAIA,EACdkiC,EAAUjiC,EAAIA,EAGhBuU,GAAS7B,IAAI,SAAU,CACrB4jC,QAAS,CACPr7B,IAAK,EACLD,MAAO,EACPE,OAAQ,EACRH,KAAM,KAGV,IAAIw7B,GACM,SAAgBvhC,EAAO2f,GACxB3f,EAAM+gC,QACT/gC,EAAM+gC,MAAQ,IAGhBphB,EAAKwhB,SAAWxhB,EAAKwhB,WAAY,EACjCxhB,EAAKke,SAAWle,EAAKke,UAAY,MACjCle,EAAK7hB,OAAS6hB,EAAK7hB,QAAU,EAE7B6hB,EAAK6hB,QAAU7hB,EAAK6hB,SAAW,WAC7B,MAAO,CAAC,CACNC,EAAG,EACH7hB,KAAM,SAAcqN,GAClBtN,EAAKC,KAAKqN,OAKhBjtB,EAAM+gC,MAAM/9B,KAAK2c,IAnBjB4hB,GAqBS,SAAmBvhC,EAAO0hC,GACnC,IAAI75C,EAAQmY,EAAM+gC,MAAQ/gC,EAAM+gC,MAAM34C,QAAQs5C,IAAe,GAE9C,IAAX75C,GACFmY,EAAM+gC,MAAMp9B,OAAO9b,EAAO,IAzB5B05C,GA4BS,SAAmBvhC,EAAO2f,EAAMr3B,GACzCq3B,EAAKwhB,SAAW74C,EAAQ64C,SACxBxhB,EAAKke,SAAWv1C,EAAQu1C,SACxBle,EAAK7hB,OAASxV,EAAQwV,QA/BtByjC,GAiCM,SAAgBvhC,EAAO+C,EAAOsB,EAAQs9B,GAC5C,GAAK3hC,EAAL,CAIA,IAAIshC,EAAUx3B,GAAU9J,EAAM1X,QAAQ43C,OAAOoB,SACzCM,EAAiBn4C,KAAK6B,IAAIyX,EAAQu+B,EAAQv+B,MAAO,GACjD8+B,EAAkBp4C,KAAK6B,IAAI+Y,EAASi9B,EAAQj9B,OAAQ,GACpD08B,EA1MR,SAA0BA,GACxB,IAAIe,EAnCN,SAAmBf,GACjB,IACIthD,EAAGgI,EAAMytB,EADT4sB,EAAc,GAGlB,IAAKriD,EAAI,EAAGgI,GAAQs5C,GAAS,IAAI79C,OAAQzD,EAAIgI,IAAQhI,EACnDy1B,EAAM6rB,EAAMthD,GACZqiD,EAAY9+B,KAAK,CACfnb,MAAOpI,EACPy1B,IAAKA,EACLjsB,IAAKisB,EAAI2oB,SACT1M,WAAYjc,EAAIkc,eAChBtzB,OAAQoX,EAAIpX,SAIhB,OAAOgkC,EAoBWC,CAAUhB,GACxBI,EAAWxB,GAAamC,EAAY1zB,QAAO,SAAU4zB,GACvD,OAAOA,EAAK9sB,IAAIisB,aACd,GACAp7B,EAAO45B,GAAaF,GAAiBqC,EAAa,SAAS,GAC3D97B,EAAQ25B,GAAaF,GAAiBqC,EAAa,UACnD77B,EAAM05B,GAAaF,GAAiBqC,EAAa,QAAQ,GACzD57B,EAASy5B,GAAaF,GAAiBqC,EAAa,WACpDG,EAAmBvC,GAA4BoC,EAAa,KAC5DI,EAAiBxC,GAA4BoC,EAAa,KAC9D,MAAO,CACLX,SAAUA,EACVgB,WAAYp8B,EAAKpI,OAAOsI,GACxBm8B,eAAgBp8B,EAAMrI,OAAOukC,GAAgBvkC,OAAOuI,GAAQvI,OAAOskC,GACnEhV,UAAWwS,GAAiBqC,EAAa,aACzCO,SAAUt8B,EAAKpI,OAAOqI,GAAOrI,OAAOukC,GACpC/Q,WAAYlrB,EAAItI,OAAOuI,GAAQvI,OAAOskC,IAyL1BK,CAAiBtiC,EAAM+gC,OAC/BwB,EAAgBxB,EAAMsB,SACtBG,EAAkBzB,EAAM5P,WAC5BjqC,EAAK8Y,EAAM+gC,OAAO,SAAU7rB,GACM,oBAArBA,EAAIutB,cACbvtB,EAAIutB,kBAGR,IAAIC,EAA0BH,EAAc9hB,QAAO,SAAUgX,EAAOuK,GAClE,OAAOA,EAAK9sB,IAAI5sB,UAAwC,IAA7B05C,EAAK9sB,IAAI5sB,QAAQyzC,QAAoBtE,EAAQA,EAAQ,IAC/E,IAAM,EACLwI,EAAS9/C,OAAO4tC,OAAO,CACzBsS,WAAYt9B,EACZw9B,YAAal8B,EACbi9B,QAASA,EACTM,eAAgBA,EAChBC,gBAAiBA,EACjBc,aAAcf,EAAiB,EAAIc,EACnCE,cAAef,EAAkB,IAE/BhC,EAAa1/C,OAAO6c,OAAO,GAAIskC,GACnCxB,GAAiBD,EAAY/1B,GAAU63B,IACvC,IAAI1U,EAAY9sC,OAAO6c,OAAO,CAC5B6iC,WAAYA,EACZnvC,EAAGkxC,EACH7xC,EAAG8xC,EACH92C,EAAGu2C,EAAQv7B,KACX/a,EAAGs2C,EAAQr7B,KACVq7B,IAtPP,SAAuBC,EAAStB,GAC9B,IAAIxgD,EAAGgI,EAAMy4C,EAEb,IAAKzgD,EAAI,EAAGgI,EAAO85C,EAAQr+C,OAAQzD,EAAIgI,IAAQhI,GAC7CygD,EAASqB,EAAQ9hD,IAEN0xC,YACT+O,EAAOn9B,MAAQm9B,EAAOhrB,IAAIisB,UAAYlB,EAAO2B,eAC7C1B,EAAO77B,OAAS47B,EAAO2C,gBAEvB1C,EAAOn9B,MAAQk9B,EAAO0C,aACtBzC,EAAO77B,OAAS67B,EAAOhrB,IAAIisB,UAAYlB,EAAO4B,iBA4OhDgB,CAAcN,EAAc5kC,OAAO6kC,GAAkBvC,GACrDa,GAASC,EAAMI,SAAUlU,EAAWgT,GACpCa,GAASyB,EAAetV,EAAWgT,GAE/Ba,GAAS0B,EAAiBvV,EAAWgT,IACvCa,GAASyB,EAAetV,EAAWgT,GA5KzC,SAA0BhT,GACxB,IAAI4S,EAAa5S,EAAU4S,WAE3B,SAASiD,EAAU75C,GACjB,IAAI85C,EAASt5C,KAAK6B,IAAIu0C,EAAW52C,GAAOgkC,EAAUhkC,GAAM,GAExD,OADAgkC,EAAUhkC,IAAQ85C,EACXA,EAGT9V,EAAUjiC,GAAK83C,EAAU,OACzB7V,EAAUliC,GAAK+3C,EAAU,QACzBA,EAAU,SACVA,EAAU,UAmKRE,CAAiB/V,GACjBmU,GAAWL,EAAMoB,WAAYlV,EAAWgT,GACxChT,EAAUliC,GAAKkiC,EAAUv8B,EACzBu8B,EAAUjiC,GAAKiiC,EAAUl9B,EACzBqxC,GAAWL,EAAMqB,eAAgBnV,EAAWgT,GAC5CjgC,EAAMitB,UAAY,CAChBlnB,KAAMknB,EAAUlnB,KAChBE,IAAKgnB,EAAUhnB,IACfD,MAAOinB,EAAUlnB,KAAOknB,EAAUv8B,EAClCwV,OAAQ+mB,EAAUhnB,IAAMgnB,EAAUl9B,EAClCsU,OAAQ4oB,EAAUl9B,EAClBgT,MAAOkqB,EAAUv8B,GAEnBxJ,EAAK65C,EAAM9T,WAAW,SAAUiT,GAC9B,IAAIhrB,EAAMgrB,EAAOhrB,IACjB/0B,OAAO6c,OAAOkY,EAAKlV,EAAMitB,WACzB/X,EAAIuP,OAAOwI,EAAUv8B,EAAGu8B,EAAUl9B,QAKpCkzC,GAA4B,WAC9B,SAASA,IACP,GAAgB3lC,KAAM2lC,GAuCxB,OApCA,GAAaA,EAAc,CAAC,CAC1BjiD,IAAK,iBACLN,MAAO,SAAwBujB,EAAQ2R,MACtC,CACD50B,IAAK,iBACLN,MAAO,SAAwBqf,GAC7B,OAAO,IAER,CACD/e,IAAK,mBACLN,MAAO,SAA0Bsf,EAAO3Z,EAAM6kB,MAC7C,CACDlqB,IAAK,sBACLN,MAAO,SAA6Bsf,EAAO3Z,EAAM6kB,MAChD,CACDlqB,IAAK,sBACLN,MAAO,WACL,OAAO,IAER,CACDM,IAAK,iBACLN,MAAO,SAAwBuzB,EAASlR,EAAOsB,EAAQuR,GAGrD,OAFA7S,EAAQtZ,KAAK6B,IAAI,EAAGyX,GAASkR,EAAQlR,OACrCsB,EAASA,GAAU4P,EAAQ5P,OACpB,CACLtB,MAAOA,EACPsB,OAAQ5a,KAAK6B,IAAI,EAAGsqB,EAAcnsB,KAAKkB,MAAMoY,EAAQ6S,GAAevR,MAGvE,CACDrjB,IAAK,aACLN,MAAO,SAAoBujB,GACzB,OAAO,MAIJg/B,EAzCuB,GA4C5BC,GAA6B,SAAUC,GACzCzmB,GAAUwmB,EAAeC,GAEzB,IAAIC,EAAUpmB,GAAakmB,GAE3B,SAASA,IAGP,OAFA,GAAgB5lC,KAAM4lC,GAEfE,EAAQz9C,MAAM2X,KAAM9X,WAU7B,OAPA,GAAa09C,EAAe,CAAC,CAC3BliD,IAAK,iBACLN,MAAO,SAAwBi/B,GAC7B,OAAOA,GAAQA,EAAKzb,YAAcyb,EAAKzb,WAAW,OAAS,SAIxDg/B,EAlBwB,CAmB/BD,IAGEI,GAAc,CAChBC,WAAY,YACZC,UAAW,YACXC,SAAU,UACVC,aAAc,aACdC,YAAa,YACbC,YAAa,YACbC,UAAW,UACXC,aAAc,WACdC,WAAY,YAGVC,GAAgB,SAAuBrjD,GACzC,OAAiB,OAAVA,GAA4B,KAAVA,GA4C3B,IAAIsjD,KAAuBltB,IAA+B,CACxDmtB,SAAS,GAOX,SAASC,GAAelkC,EAAO3Z,EAAM6kB,GACnClL,EAAMiE,OAAOgT,oBAAoB5wB,EAAM6kB,EAAU84B,IAmBnD,SAASG,GAAqBnkC,EAAO3Z,EAAM6kB,GACzC,IAAIjH,EAASjE,EAAMiE,OAIfgQ,EAFYhQ,GAAUuP,GAAevP,IAEdA,EACvBmgC,EAAW,IAAIC,kBAAiB,SAAUC,GAC5C,IAAIh1B,EAASkE,GAAeS,GAE5BqwB,EAAQh5B,SAAQ,SAAUwkB,GACxB,IAAK,IAAIrwC,EAAI,EAAGA,EAAIqwC,EAAMyU,WAAWrhD,OAAQzD,IAAK,CAChD,IAAI+kD,EAAQ1U,EAAMyU,WAAW9kD,GAEzB+kD,IAAUvwB,GAAWuwB,IAAUl1B,GACjCpE,EAAS4kB,EAAM9sC,eASvB,OAJAohD,EAASK,QAAQC,SAAU,CACzBC,WAAW,EACXC,SAAS,IAEJR,EAGT,SAASS,GAAqB7kC,EAAO3Z,EAAM6kB,GACzC,IAAIjH,EAASjE,EAAMiE,OAEf+R,EAAY/R,GAAUuP,GAAevP,GAEzC,GAAK+R,EAAL,CAIA,IAAIouB,EAAW,IAAIC,kBAAiB,SAAUC,GAC5CA,EAAQh5B,SAAQ,SAAUwkB,GACxB,IAAK,IAAIrwC,EAAI,EAAGA,EAAIqwC,EAAMgV,aAAa5hD,OAAQzD,IAC7C,GAAIqwC,EAAMgV,aAAarlD,KAAOwkB,EAAQ,CACpCiH,IACA,aAQR,OAHAk5B,EAASK,QAAQzuB,EAAW,CAC1B2uB,WAAW,IAENP,GAGT,IAAIW,GAAqB,IAAIntB,IACzBotB,GAAsB,EAE1B,SAASC,KACP,IAAIC,EAAMrgD,OAAOib,iBAEbolC,IAAQF,KAIZA,GAAsBE,EACtBH,GAAmBz5B,SAAQ,SAAU0X,EAAQhjB,GACvCA,EAAM8D,0BAA4BohC,GACpCliB,QAqBN,SAASmiB,GAAqBnlC,EAAO3Z,EAAM6kB,GACzC,IAAIjH,EAASjE,EAAMiE,OAEf+R,EAAY/R,GAAUuP,GAAevP,GAEzC,GAAK+R,EAAL,CAIA,IAAIgN,EAASh+B,GAAU,SAAU+d,EAAOsB,GACtC,IAAI3T,EAAIslB,EAAUI,YAClBlL,EAASnI,EAAOsB,GAEZ3T,EAAIslB,EAAUI,aAChBlL,MAEDrmB,QACCu/C,EAAW,IAAIgB,gBAAe,SAAUd,GAC1C,IAAIxU,EAAQwU,EAAQ,GAChBvhC,EAAQ+sB,EAAMuV,YAAYtiC,MAC1BsB,EAASyrB,EAAMuV,YAAYhhC,OAEjB,IAAVtB,GAA0B,IAAXsB,GAInB2e,EAAOjgB,EAAOsB,MAIhB,OAFA+/B,EAASK,QAAQzuB,GA5CnB,SAAuChW,EAAOgjB,GACvC+hB,GAAmBxkC,MACtB1b,OAAOmyB,iBAAiB,SAAUiuB,IAGpCF,GAAmBrnC,IAAIsC,EAAOgjB,GAwC9BsiB,CAA8BtlC,EAAOgjB,GAC9BohB,GAGT,SAASmB,GAAgBvlC,EAAO3Z,EAAM+9C,GAChCA,GACFA,EAASoB,aAGE,WAATn/C,GA9CN,SAAyC2Z,GACvC+kC,GAAmB/2B,OAAOhO,GAErB+kC,GAAmBxkC,MACtB1b,OAAOoyB,oBAAoB,SAAUguB,IA2CrCQ,CAAgCzlC,GAIpC,SAAS0lC,GAAqB1lC,EAAO3Z,EAAM6kB,GACzC,IAAIjH,EAASjE,EAAMiE,OACfgJ,EAAQjoB,GAAU,SAAUq7B,GACZ,OAAdrgB,EAAMY,KACRsK,EApJN,SAAyBmV,EAAOrgB,GAC9B,IAAI3Z,EAAOg9C,GAAYhjB,EAAMh6B,OAASg6B,EAAMh6B,KAExCs/C,EAAwBpxB,GAAsB8L,EAAOrgB,GACrDjV,EAAI46C,EAAsB56C,EAC1BC,EAAI26C,EAAsB36C,EAE9B,MAAO,CACL3E,KAAMA,EACN2Z,MAAOA,EACP8U,OAAQuL,EACRt1B,OAASwF,IAANxF,EAAkBA,EAAI,KACzBC,OAASuF,IAANvF,EAAkBA,EAAI,MAwId46C,CAAgBvlB,EAAOrgB,MAEjCA,GAAO,SAAU3a,GAClB,IAAIg7B,EAAQh7B,EAAK,GACjB,MAAO,CAACg7B,EAAOA,EAAMrL,QAASqL,EAAMpL,YAGtC,OAnKF,SAAqBhW,EAAM5Y,EAAM6kB,GAC/BjM,EAAK+X,iBAAiB3wB,EAAM6kB,EAAU84B,IAiKtC6B,CAAY5hC,EAAQ5d,EAAM4mB,GACnBA,EAGT,IAAI,GAA2B,SAAU64B,GACvCppB,GAAUqpB,EAAaD,GAEvB,IAAIE,EAAWhpB,GAAa+oB,GAE5B,SAASA,IAGP,OAFA,GAAgBzoC,KAAMyoC,GAEfC,EAASrgD,MAAM2X,KAAM9X,WA6F9B,OA1FA,GAAaugD,EAAa,CAAC,CACzB/kD,IAAK,iBACLN,MAAO,SAAwBujB,EAAQ2R,GACrC,IAAI7V,EAAUkE,GAAUA,EAAOC,YAAcD,EAAOC,WAAW,MAE/D,OAAInE,GAAWA,EAAQkE,SAAWA,GAnOxC,SAAoBA,EAAQ2R,GAC1B,IAAIpV,EAAQyD,EAAOzD,MACfylC,EAAehiC,EAAOiiC,aAAa,UACnCC,EAAcliC,EAAOiiC,aAAa,SAetC,GAdAjiC,EAAkB,SAAI,CACpBkb,QAAS,CACP9a,OAAQ4hC,EACRljC,MAAOojC,EACP3lC,MAAO,CACLu7B,QAASv7B,EAAMu7B,QACf13B,OAAQ7D,EAAM6D,OACdtB,MAAOvC,EAAMuC,SAInBvC,EAAMu7B,QAAUv7B,EAAMu7B,SAAW,QACjCv7B,EAAMkU,UAAYlU,EAAMkU,WAAa,aAEjCqvB,GAAcoC,GAAc,CAC9B,IAAIC,EAAelvB,GAAajT,EAAQ,cAEnB1T,IAAjB61C,IACFniC,EAAOlB,MAAQqjC,GAInB,GAAIrC,GAAckC,GAChB,GAA4B,KAAxBhiC,EAAOzD,MAAM6D,OACfJ,EAAOI,OAASJ,EAAOlB,OAAS6S,GAAe,OAC1C,CACL,IAAIywB,EAAgBnvB,GAAajT,EAAQ,eAEnB1T,IAAlB81C,IACFpiC,EAAOI,OAASgiC,IAmMhBC,CAAWriC,EAAQ2R,GACZ7V,GAGF,OAER,CACD/e,IAAK,iBACLN,MAAO,SAAwBqf,GAC7B,IAAIkE,EAASlE,EAAQkE,OAErB,IAAKA,EAAkB,SACrB,OAAO,EAGT,IAAIkb,EAAUlb,EAAkB,SAAEkb,QAClC,CAAC,SAAU,SAAS7T,SAAQ,SAAU5B,GACpC,IAAIhpB,EAAQy+B,EAAQzV,GAEhBtjB,EAAc1F,GAChBujB,EAAOsiC,gBAAgB78B,GAEvBzF,EAAOuiC,aAAa98B,EAAMhpB,MAG9B,IAAI8f,EAAQ2e,EAAQ3e,OAAS,GAM7B,OALArgB,OAAOkH,KAAKmZ,GAAO8K,SAAQ,SAAUtqB,GACnCijB,EAAOzD,MAAMxf,GAAOwf,EAAMxf,MAE5BijB,EAAOlB,MAAQkB,EAAOlB,aACfkB,EAAkB,UAClB,IAER,CACDjjB,IAAK,mBACLN,MAAO,SAA0Bsf,EAAO3Z,EAAM6kB,GAC5C5N,KAAK2Z,oBAAoBjX,EAAO3Z,GAChC,IAAIogD,EAAUzmC,EAAM0mC,WAAa1mC,EAAM0mC,SAAW,IAM9C5I,EALW,CACb6I,OAAQxC,GACRyC,OAAQ/B,GACR7hB,OAAQmiB,IAEa9+C,IAASq/C,GAChCe,EAAQpgD,GAAQy3C,EAAQ99B,EAAO3Z,EAAM6kB,KAEtC,CACDlqB,IAAK,sBACLN,MAAO,SAA6Bsf,EAAO3Z,GACzC,IAAIogD,EAAUzmC,EAAM0mC,WAAa1mC,EAAM0mC,SAAW,IAC9Cz5B,EAAQw5B,EAAQpgD,GAEf4mB,KAIU,CACb05B,OAAQpB,GACRqB,OAAQrB,GACRviB,OAAQuiB,IAEal/C,IAAS69C,IACxBlkC,EAAO3Z,EAAM4mB,GACrBw5B,EAAQpgD,QAAQkK,KAEjB,CACDvP,IAAK,sBACLN,MAAO,WACL,OAAOmE,OAAOib,mBAEf,CACD9e,IAAK,iBACLN,MAAO,SAAwBujB,EAAQlB,EAAOsB,EAAQuR,GACpD,OAAO,GAAgB3R,EAAQlB,EAAOsB,EAAQuR,KAE/C,CACD50B,IAAK,aACLN,MAAO,SAAoBujB,GACzB,IAAI+R,EAAYxC,GAAevP,GAE/B,SAAU+R,IAAaxC,GAAewC,QAInC+vB,EArGsB,CAsG7B9C,IAEE,GAAuB,WACzB,SAAS4D,IACP,GAAgBvpC,KAAMupC,GAEtBvpC,KAAKvS,OAAIwF,EACT+M,KAAKtS,OAAIuF,EACT+M,KAAKylB,QAAS,EACdzlB,KAAKhV,aAAUiI,EACf+M,KAAK2mB,iBAAc1zB,EAsCrB,OAnCA,GAAas2C,EAAS,CAAC,CACrB7lD,IAAK,kBACLN,MAAO,SAAyBy9C,GAC9B,IAAI2I,EAAiBxpC,KAAKypC,SAAS,CAAC,IAAK,KAAM5I,GAI/C,MAAO,CACLpzC,EAJM+7C,EAAe/7C,EAKrBC,EAJM87C,EAAe97C,KAOxB,CACDhK,IAAK,WACLN,MAAO,WACL,OAAOmK,EAASyS,KAAKvS,IAAMF,EAASyS,KAAKtS,KAE1C,CACDhK,IAAK,WACLN,MAAO,SAAkBuC,EAAO+jD,GAC9B,IAAIjpC,EAAKT,KACLwhB,EAAQxhB,KAAK2mB,YAEjB,IAAK+iB,IAAUloB,EACb,OAAO/gB,EAGT,IAAIR,EAAM,GAIV,OAHAta,EAAMqoB,SAAQ,SAAU5B,GACtBnM,EAAImM,GAAQoV,EAAMpV,IAASoV,EAAMpV,GAAMqZ,SAAWjE,EAAMpV,GAAMwY,IAAMnkB,EAAG2L,MAElEnM,MAIJspC,EA9CkB,GAiD3B,GAAQtnC,SAAW,GACnB,GAAQ0nC,mBAAgB12C,EACxB,IAAI22C,GAAa,CACf5nC,OAAQ,SAAgB5e,GACtB,OAAOkB,EAAQlB,GAASA,EAAQ,GAAKA,GAEvCymD,QAAS,SAAiBC,EAAWv/C,EAAO8nC,GAC1C,GAAkB,IAAdyX,EACF,MAAO,IAGT,IACIC,EADAtvB,EAASza,KAAK0C,MAAM1X,QAAQyvB,OAE5BrG,EAAQ01B,EAEZ,GAAIzX,EAAMzsC,OAAS,EAAG,CACpB,IAAIokD,EAAU79C,KAAK6B,IAAI7B,KAAKyB,IAAIykC,EAAM,GAAGjvC,OAAQ+I,KAAKyB,IAAIykC,EAAMA,EAAMzsC,OAAS,GAAGxC,SAE9E4mD,EAAU,MAAQA,EAAU,QAC9BD,EAAW,cAGb31B,EA4BN,SAAwB01B,EAAWzX,GACjC,IAAIje,EAAQie,EAAMzsC,OAAS,EAAIysC,EAAM,GAAGjvC,MAAQivC,EAAM,GAAGjvC,MAAQivC,EAAM,GAAGjvC,MAAQivC,EAAM,GAAGjvC,MAEvF+I,KAAKyB,IAAIwmB,IAAU,GAAK01B,IAAc39C,KAAKkB,MAAMy8C,KACnD11B,EAAQ01B,EAAY39C,KAAKkB,MAAMy8C,IAGjC,OAAO11B,EAnCK61B,CAAeH,EAAWzX,GAGpC,IAAI6X,EAAWt9C,EAAMT,KAAKyB,IAAIwmB,IAC1B+1B,EAAah+C,KAAK6B,IAAI7B,KAAK4B,KAAK,EAAI5B,KAAKkB,MAAM68C,GAAW,IAAK,GAC/Dl/C,EAAU,CACZ++C,SAAUA,EACVK,sBAAuBD,EACvBE,sBAAuBF,GAGzB,OADAtnD,OAAO6c,OAAO1U,EAASgV,KAAKhV,QAAQqnC,MAAMpX,QACnCV,GAAauvB,EAAWrvB,EAAQzvB,IAEzCs/C,YAAa,SAAqBR,EAAWv/C,EAAO8nC,GAClD,GAAkB,IAAdyX,EACF,MAAO,IAGT,IAAI/kB,EAAS+kB,EAAY39C,KAAKiB,IAAI,GAAIjB,KAAKkB,MAAMT,EAAMk9C,KAEvD,OAAe,IAAX/kB,GAA2B,IAAXA,GAA2B,IAAXA,EAC3B6kB,GAAWC,QAAQvnD,KAAK0d,KAAM8pC,EAAWv/C,EAAO8nC,GAGlD,KAcX,IAAIkY,GAAQ,CACVX,WAAYA,IAiFd,SAASY,GAAStmC,EAAOmuB,GACvB,IAAIoY,EAAWvmC,EAAMlZ,QAAQqnC,MACzBqY,EAAaD,EAASE,eA+B5B,SAA2BzmC,GACzB,IAAI2yB,EAAS3yB,EAAMlZ,QAAQ6rC,OAEvB+T,EAAa1mC,EAAM2mC,YAEnBC,EAAW5mC,EAAMguB,QAAU0Y,GAAc/T,EAAS,EAAI,GACtDkU,EAAW7mC,EAAM8mC,WAAaJ,EAClC,OAAOz+C,KAAKkB,MAAMlB,KAAK4B,IAAI+8C,EAAUC,IAtCME,CAAkB/mC,GACzDgnC,EAAeT,EAASU,MAAMC,QA6DpC,SAAyB/Y,GACvB,IACIlwC,EAAGgI,EADH6sB,EAAS,GAGb,IAAK70B,EAAI,EAAGgI,EAAOkoC,EAAMzsC,OAAQzD,EAAIgI,EAAMhI,IACrCkwC,EAAMlwC,GAAGgpD,OACXn0B,EAAOtR,KAAKvjB,GAIhB,OAAO60B,EAvEqCq0B,CAAgBhZ,GAAS,GACjEiZ,EAAkBJ,EAAatlD,OAC/B2lD,EAAQL,EAAa,GACrBtW,EAAOsW,EAAaI,EAAkB,GACtCE,EAAW,GAEf,GAAIF,EAAkBZ,EAEpB,OAkEJ,SAAoBrY,EAAOmZ,EAAUN,EAAc3S,GACjD,IAEIp2C,EAFAu6B,EAAQ,EACR71B,EAAOqkD,EAAa,GAIxB,IAFA3S,EAAUpsC,KAAKs/C,KAAKlT,GAEfp2C,EAAI,EAAGA,EAAIkwC,EAAMzsC,OAAQzD,IACxBA,IAAM0E,IACR2kD,EAAS9lC,KAAK2sB,EAAMlwC,IAEpB0E,EAAOqkD,IADPxuB,EAC4B6b,IA7E9BmT,CAAWrZ,EAAOmZ,EAAUN,EAAcI,EAAkBZ,GACrDc,EAGT,IAAIjT,EA6BN,SAA0B2S,EAAc7Y,EAAOqY,GAC7C,IAAIiB,EA4EN,SAAwBvnD,GACtB,IACIjC,EAAGypD,EADHxkD,EAAMhD,EAAIwB,OAGd,GAAIwB,EAAM,EACR,OAAO,EAGT,IAAKwkD,EAAOxnD,EAAI,GAAIjC,EAAI,EAAGA,EAAIiF,IAAOjF,EACpC,GAAIiC,EAAIjC,GAAKiC,EAAIjC,EAAI,KAAOypD,EAC1B,OAAO,EAIX,OAAOA,EA1FgBC,CAAeX,GAClC3S,EAAUlG,EAAMzsC,OAAS8kD,EAE7B,IAAKiB,EACH,OAAOx/C,KAAK6B,IAAIuqC,EAAS,GAK3B,IAFA,IAAIuT,EDrqIN,SAAoB1oD,GAClB,IAEIjB,EAFA60B,EAAS,GACTvoB,EAAOtC,KAAKsC,KAAKrL,GAGrB,IAAKjB,EAAI,EAAGA,EAAIsM,EAAMtM,IAChBiB,EAAQjB,IAAM,IAChB60B,EAAOtR,KAAKvjB,GACZ60B,EAAOtR,KAAKtiB,EAAQjB,IAWxB,OAPIsM,KAAiB,EAAPA,IACZuoB,EAAOtR,KAAKjX,GAGduoB,EAAOgb,MAAK,SAAUrjC,EAAGC,GACvB,OAAOD,EAAIC,KACV8zB,MACI1L,ECkpIO+0B,CAAWJ,GAEhBxpD,EAAI,EAAGgI,EAAO2hD,EAAQlmD,OAAS,EAAGzD,EAAIgI,EAAMhI,IAAK,CACxD,IAAIwhC,EAASmoB,EAAQ3pD,GAErB,GAAIwhC,EAAS4U,EACX,OAAO5U,EAIX,OAAOx3B,KAAK6B,IAAIuqC,EAAS,GA/CXyT,CAAiBd,EAAc7Y,EAAOqY,GAEpD,GAAIY,EAAkB,EAAG,CACvB,IAAInpD,EAAGgI,EACH8hD,EAAkBX,EAAkB,EAAIn/C,KAAKc,OAAO2nC,EAAO2W,IAAUD,EAAkB,IAAM,KAGjG,IAFA,GAAKjZ,EAAOmZ,EAAUjT,EAASzvC,EAAcmjD,GAAmB,EAAIV,EAAQU,EAAiBV,GAExFppD,EAAI,EAAGgI,EAAOmhD,EAAkB,EAAGnpD,EAAIgI,EAAMhI,IAChD,GAAKkwC,EAAOmZ,EAAUjT,EAAS2S,EAAa/oD,GAAI+oD,EAAa/oD,EAAI,IAInE,OADA,GAAKkwC,EAAOmZ,EAAUjT,EAAS3D,EAAM9rC,EAAcmjD,GAAmB5Z,EAAMzsC,OAASgvC,EAAOqX,GACrFT,EAIT,OADA,GAAKnZ,EAAOmZ,EAAUjT,GACfiT,EA8DT,SAAS,GAAKnZ,EAAOmZ,EAAUjT,EAAS2T,EAAYC,GAClD,IAGIvmD,EAAQzD,EAAG0E,EAHX4B,EAAQc,EAAe2iD,EAAY,GACnCxjD,EAAMyD,KAAK4B,IAAIxE,EAAe4iD,EAAU9Z,EAAMzsC,QAASysC,EAAMzsC,QAC7D82B,EAAQ,EAWZ,IATA6b,EAAUpsC,KAAKs/C,KAAKlT,GAEhB4T,IAEF5T,GADA3yC,EAASumD,EAAWD,GACD//C,KAAKkB,MAAMzH,EAAS2yC,IAGzC1xC,EAAO4B,EAEA5B,EAAO,GACZ61B,IACA71B,EAAOsF,KAAKc,MAAMxE,EAAQi0B,EAAQ6b,GAGpC,IAAKp2C,EAAIgK,KAAK6B,IAAIvF,EAAO,GAAItG,EAAIuG,EAAKvG,IAChCA,IAAM0E,IACR2kD,EAAS9lC,KAAK2sB,EAAMlwC,IACpBu6B,IACA71B,EAAOsF,KAAKc,MAAMxE,EAAQi0B,EAAQ6b,IAlMxCt2B,GAAS7B,IAAI,QAAS,CACpBq+B,SAAS,EACT5H,QAAQ,EACR/sC,SAAS,EACTktC,aAAa,EACbna,OAAQ,QACRuvB,MAAO,EACPtV,KAAM,CACJ2H,SAAS,EACTt0B,UAAW,EACXkiC,YAAY,EACZC,iBAAiB,EACjBC,WAAW,EACX3B,WAAY,EACZ4B,UAAW,SAAmBriB,EAAMn/B,GAClC,OAAOA,EAAQmf,WAEjBsiC,UAAW,SAAmBtiB,EAAMn/B,GAClC,OAAOA,EAAQuV,OAEjBs2B,QAAQ,EACRvY,WAAY,GACZC,iBAAkB,EAClBpW,YAAa,GAEfwvB,MAAO,CACL8G,SAAS,EACT90B,KAAM,GACNq6B,QAAS,CACPr7B,IAAK,EACLC,OAAQ,IAGZypB,MAAO,CACLqa,YAAa,EACbC,YAAa,GACbC,QAAQ,EACRC,gBAAiB,EACjBC,gBAAiB,GACjB9I,QAAS,EACTvF,SAAS,EACT+L,UAAU,EACVuC,gBAAiB,EACjBC,YAAa,EACbxlD,SAAU+iD,GAAMX,WAAW5nC,OAC3BirC,MAAO,GACP9B,MAAO,GACP5iD,MAAO,SACP2kD,WAAY,OACZC,mBAAmB,EACnBC,cAAe,4BACfC,gBAAiB,KAGrBprC,GAASqrC,MAAM,cAAe,QAAS,GAAI,SAC3CrrC,GAASqrC,MAAM,aAAc,QAAS,GAAI,eAC1CrrC,GAASqrC,MAAM,aAAc,cAAe,GAAI,eAChDrrC,GAASqrC,MAAM,cAAe,QAAS,GAAI,SAC3CrrC,GAASoC,SAAS,QAAS,CACzBY,WAAW,EACXH,YAAa,SAAqBpiB,GAChC,OAAQA,EAAKqiB,WAAW,YAAcriB,EAAKqiB,WAAW,UAAqB,aAATriB,GAAgC,WAATA,GAE3FsiB,WAAY,SAAoBtiB,GAC9B,MAAgB,eAATA,GAAkC,mBAATA,KAGpCuf,GAASoC,SAAS,SAAU,CAC1BY,UAAW,UAEbhD,GAASoC,SAAS,cAAe,CAC/BS,YAAa,SAAqBpiB,GAChC,MAAgB,oBAATA,GAAuC,aAATA,GAEvCsiB,WAAY,SAAoBtiB,GAC9B,MAAgB,oBAATA,KA6IX,IAII6qD,GAAiB,SAAwBrpC,EAAOspC,EAAM3W,GACxD,MAAgB,QAAT2W,GAA2B,SAATA,EAAkBtpC,EAAMspC,GAAQ3W,EAAS3yB,EAAMspC,GAAQ3W,GAGlF,SAAS4W,GAAOrpD,EAAKspD,GAMnB,IALA,IAAI12B,EAAS,GACT22B,EAAYvpD,EAAIwB,OAAS8nD,EACzBtmD,EAAMhD,EAAIwB,OACVzD,EAAI,EAEDA,EAAIiF,EAAKjF,GAAKwrD,EACnB32B,EAAOtR,KAAKthB,EAAI+H,KAAKkB,MAAMlL,KAG7B,OAAO60B,EAGT,SAAS42B,GAAoB1pC,EAAO3Z,EAAOsjD,GACzC,IAMIhX,EANAjxC,EAASse,EAAMmuB,MAAMzsC,OACrBkoD,EAAa3hD,KAAK4B,IAAIxD,EAAO3E,EAAS,GACtC6C,EAAQyb,EAAM+wB,YACdvsC,EAAMwb,EAAMgxB,UACZvnC,EAAU,KACVogD,EAAY7pC,EAAMouB,gBAAgBwb,GAGtC,KAAID,IAEAhX,EADa,IAAXjxC,EACOuG,KAAK6B,IAAI+/C,EAAYtlD,EAAOC,EAAMqlD,GACxB,IAAVxjD,GACC2Z,EAAMouB,gBAAgB,GAAKyb,GAAa,GAExCA,EAAY7pC,EAAMouB,gBAAgBwb,EAAa,IAAM,GAGjEC,GAAaD,EAAavjD,EAAQssC,GAAUA,GAE5BpuC,EAAQkF,GAAWogD,EAAYrlD,EAAMiF,IAKvD,OAAOogD,EAmBT,SAASC,GAAkBhjD,GACzB,OAAOA,EAAQuhD,UAAYvhD,EAAQ4/C,WAAa,EAGlD,SAASqD,GAAejjD,EAAS0hB,GAC/B,IAAK1hB,EAAQyzC,QACX,OAAO,EAGT,IAAI17B,EAAO0J,GAAOzhB,EAAQ+X,KAAM2J,GAC5Bs3B,EAAUx3B,GAAUxhB,EAAQg5C,SAEhC,OADY1/C,EAAQ0G,EAAQ2e,MAAQ3e,EAAQ2e,KAAK/jB,OAAS,GAC3Cmd,EAAKI,WAAa6gC,EAAQj9B,OAkB3C,SAASmnC,GAAW3lD,EAAOg4C,EAAUz2C,GACnC,IAAImW,EAAM3X,EAAmBC,GAM7B,OAJIuB,GAAwB,UAAby2C,IAAyBz2C,GAAwB,UAAby2C,KACjDtgC,EAnGe,SAAsB1X,GACvC,MAAiB,SAAVA,EAAmB,QAAoB,UAAVA,EAAoB,OAASA,EAkGzD4lD,CAAaluC,IAGdA,EA6BT,IAAI,GAAqB,SAAUmuC,GACjChvB,GAAUivB,EAAOD,GAEjB,IAAIE,EAAW5uB,GAAa2uB,GAE5B,SAASA,EAAMpqB,GACb,IAAIsqB,EAoDJ,OAlDA,GAAgBvuC,KAAMquC,IAEtBE,EAASD,EAAShsD,KAAK0d,OAChBpX,GAAKq7B,EAAIr7B,GAChB2lD,EAAOxlD,KAAOk7B,EAAIl7B,KAClBwlD,EAAOvjD,aAAUiI,EACjBs7C,EAAOjrC,IAAM2gB,EAAI3gB,IACjBirC,EAAO7rC,MAAQuhB,EAAIvhB,MACnB6rC,EAAO5lC,SAAM1V,EACbs7C,EAAO3lC,YAAS3V,EAChBs7C,EAAO9lC,UAAOxV,EACds7C,EAAO7lC,WAAQzV,EACfs7C,EAAO9oC,WAAQxS,EACfs7C,EAAOxnC,YAAS9T,EAChBs7C,EAAOC,SAAW,CAChB/lC,KAAM,EACNC,MAAO,EACPC,IAAK,EACLC,OAAQ,GAEV2lC,EAAOlkC,cAAWpX,EAClBs7C,EAAO/1B,eAAYvlB,EACnBs7C,EAAOE,gBAAax7C,EACpBs7C,EAAOG,mBAAgBz7C,EACvBs7C,EAAOI,iBAAc17C,EACrBs7C,EAAOK,kBAAe37C,EACtBs7C,EAAOplB,UAAOl2B,EACds7C,EAAOM,mBAAgB57C,EACvBs7C,EAAOxgD,SAAMkF,EACbs7C,EAAOvgD,SAAMiF,EACbs7C,EAAOO,YAAS77C,EAChBs7C,EAAOlc,MAAQ,GACfkc,EAAOQ,eAAiB,KACxBR,EAAOS,YAAc,KACrBT,EAAOU,YAAc,KACrBV,EAAOrc,QAAU,EACjBqc,EAAOvD,WAAa,EACpBuD,EAAOW,kBAAoB,GAC3BX,EAAOtZ,iBAAchiC,EACrBs7C,EAAOrZ,eAAYjiC,EACnBs7C,EAAOnO,gBAAiB,EACxBmO,EAAOY,cAAWl8C,EAClBs7C,EAAOa,cAAWn8C,EAClBs7C,EAAOc,mBAAgBp8C,EACvBs7C,EAAOe,mBAAgBr8C,EACvBs7C,EAAOgB,aAAe,EACtBhB,EAAOiB,aAAe,EACtBjB,EAAOhgC,OAAS,GAChBggC,EAAOkB,mBAAoB,EAC3BlB,EAAOzjB,cAAW73B,EACXs7C,EA02CT,OAv2CA,GAAaF,EAAO,CAAC,CACnB3qD,IAAK,OACLN,MAAO,SAAc4H,GACnB,IAAIyV,EAAKT,KACTS,EAAGzV,QAAUA,EAAQmlB,WAAW1P,EAAGmG,cACnCnG,EAAG0oB,KAAOn+B,EAAQm+B,KAClB1oB,EAAG2uC,SAAW3uC,EAAGstB,MAAM/iC,EAAQ+C,KAC/B0S,EAAG0uC,SAAW1uC,EAAGstB,MAAM/iC,EAAQgD,KAC/ByS,EAAG6uC,cAAgB7uC,EAAGstB,MAAM/iC,EAAQ0kD,cACpCjvC,EAAG4uC,cAAgB5uC,EAAGstB,MAAM/iC,EAAQ2kD,gBAErC,CACDjsD,IAAK,QACLN,MAAO,SAAe2sC,EAAKxlC,GACzB,OAAOwlC,IAER,CACDrsC,IAAK,gBACLN,MAAO,WACL,IAAIgsD,EAAWpvC,KAAKovC,SAChBD,EAAWnvC,KAAKmvC,SAChBG,EAAgBtvC,KAAKsvC,cACrBD,EAAgBrvC,KAAKqvC,cAKzB,OAJAD,EAAW/lD,EAAgB+lD,EAAUjmD,OAAOoD,mBAC5C4iD,EAAW9lD,EAAgB8lD,EAAUhmD,OAAOulC,mBAC5C4gB,EAAgBjmD,EAAgBimD,EAAenmD,OAAOoD,mBACtD8iD,EAAgBhmD,EAAgBgmD,EAAelmD,OAAOulC,mBAC/C,CACL3gC,IAAK1E,EAAgB+lD,EAAUE,GAC/BthD,IAAK3E,EAAgB8lD,EAAUE,GAC/BvgB,WAAY5lC,EAAekmD,GAC3BrgB,WAAY7lC,EAAeimD,MAG9B,CACDzrD,IAAK,YACLN,MAAO,SAAmBmrC,GACxB,IAQIxhC,EARA0T,EAAKT,KAEL4vC,EAAoBnvC,EAAGouB,gBACvB9gC,EAAM6hD,EAAkB7hD,IACxBC,EAAM4hD,EAAkB5hD,IACxB8gC,EAAa8gB,EAAkB9gB,WAC/BC,EAAa6gB,EAAkB7gB,WAInC,GAAID,GAAcC,EAChB,MAAO,CACLhhC,IAAKA,EACLC,IAAKA,GAMT,IAFA,IAAI8jC,EAAQrxB,EAAGkoB,0BAENxmC,EAAI,EAAGgI,EAAO2nC,EAAMlsC,OAAQzD,EAAIgI,IAAQhI,EAC/C4K,EAAQ+kC,EAAM3vC,GAAG0mC,WAAWgnB,UAAUpvC,EAAI8tB,GAErCO,IACH/gC,EAAM5B,KAAK4B,IAAIA,EAAKhB,EAAMgB,MAGvBghC,IACH/gC,EAAM7B,KAAK6B,IAAIA,EAAKjB,EAAMiB,MAI9B,MAAO,CACLD,IAAK1E,EAAgB0E,EAAK1E,EAAgB2E,EAAKD,IAC/CC,IAAK3E,EAAgB2E,EAAK3E,EAAgB0E,EAAKC,OAGlD,CACDtK,IAAK,aACLN,MAAO,WACL,IAAIqd,EAAKT,KACT,MAAO,CACLyI,KAAMhI,EAAGkuC,aAAe,EACxBhmC,IAAKlI,EAAGguC,YAAc,EACtB/lC,MAAOjI,EAAGmuC,cAAgB,EAC1BhmC,OAAQnI,EAAGiuC,eAAiB,KAG/B,CACDhrD,IAAK,WACLN,MAAO,WACL,OAAO4c,KAAKqyB,QAEb,CACD3uC,IAAK,YACLN,MAAO,WACL,IAAI+hB,EAAOnF,KAAK0C,MAAMyC,KACtB,OAAOnF,KAAKhV,QAAQ2iC,SAAW3tB,KAAK8zB,eAAiB3uB,EAAK2qC,QAAU3qC,EAAK4qC,UAAY5qC,EAAKwoB,QAAU,KAErG,CACDjqC,IAAK,eACLN,MAAO,WACL4c,KAAKuO,OAAS,GACdvO,KAAKyvC,mBAAoB,IAE1B,CACD/rD,IAAK,eACLN,MAAO,WACLoE,EAASwY,KAAKhV,QAAQglD,aAAc,CAAChwC,SAEtC,CACDtc,IAAK,SACLN,MAAO,SAAgBinB,EAAUmO,EAAWD,GAC1C,ID7+Fa03B,EAAQ7D,EACrBr+C,EACAC,EC2+FIyS,EAAKT,KACLyqC,EAAWhqC,EAAGzV,QAAQqnC,MACtB6d,EAAazF,EAASyF,WAC1BzvC,EAAGuvC,eACHvvC,EAAG4J,SAAWA,EACd5J,EAAG+X,UAAYA,EACf/X,EAAG+tC,SAAWj2B,EAAU11B,OAAO6c,OAAO,CACpC+I,KAAM,EACNC,MAAO,EACPC,IAAK,EACLC,OAAQ,GACP2P,GACH9X,EAAG4xB,MAAQ,KACX5xB,EAAGwuC,YAAc,KACjBxuC,EAAGsuC,eAAiB,KACpBtuC,EAAGuuC,YAAc,KACjBvuC,EAAG0vC,sBACH1vC,EAAG2vC,gBACH3vC,EAAG4vC,qBACH5vC,EAAGuqC,WAAavqC,EAAGqzB,eAAiBrzB,EAAGgF,MAAQ8S,EAAQ9P,KAAO8P,EAAQ7P,MAAQjI,EAAGsG,OAASwR,EAAQ5P,IAAM4P,EAAQ3P,OAE3GnI,EAAGgvC,oBACNhvC,EAAG6vC,mBACH7vC,EAAG8vC,sBACH9vC,EAAG+vC,kBACH/vC,EAAGquC,QDtgGQmB,ECsgGWxvC,EDtgGH2rC,ECsgGO3rC,EAAGzV,QAAQohD,MDrgGvCr+C,EAAMkiD,EAAOliD,IACbC,EAAMiiD,EAAOjiD,IACV,CACLD,IAAKA,EAAM5B,KAAKyB,IAAIpE,EAAY4iD,EAAOr+C,IACvCC,IAAKA,EAAMxE,EAAY4iD,EAAOp+C,KCkgG1ByS,EAAGgvC,mBAAoB,GAGzBhvC,EAAGgwC,mBACHhwC,EAAG4xB,MAAQ5xB,EAAGiwC,cAAgB,GAC9BjwC,EAAGkwC,kBACH,IAAIC,EAAkBV,EAAazvC,EAAG4xB,MAAMzsC,OAE5C6a,EAAGowC,sBAAsBD,EAAkBnD,GAAOhtC,EAAG4xB,MAAO6d,GAAczvC,EAAG4xB,OAE7E5xB,EAAG0lB,YACH1lB,EAAGqwC,+BACHrwC,EAAGswC,yBACHtwC,EAAGuwC,8BAECvG,EAAShM,UAAYgM,EAASD,UAAgC,SAApBC,EAAShgD,UACrDgW,EAAG4xB,MAAQmY,GAAS/pC,EAAIA,EAAG4xB,OAC3B5xB,EAAGwuC,YAAc,MAGf2B,GACFnwC,EAAGowC,sBAAsBpwC,EAAG4xB,OAG9B5xB,EAAGwwC,YACHxwC,EAAGywC,MACHzwC,EAAG0wC,WACH1wC,EAAG2wC,gBAEJ,CACD1tD,IAAK,YACLN,MAAO,WACL,IAEIiuD,EAAYC,EAFZ7wC,EAAKT,KACLuxC,EAAgB9wC,EAAGzV,QAAQlB,QAG3B2W,EAAGqzB,gBACLud,EAAa5wC,EAAGgI,KAChB6oC,EAAW7wC,EAAGiI,QAEd2oC,EAAa5wC,EAAGkI,IAChB2oC,EAAW7wC,EAAGmI,OACd2oC,GAAiBA,GAGnB9wC,EAAGw0B,YAAcoc,EACjB5wC,EAAGy0B,UAAYoc,EACf7wC,EAAG2/B,eAAiBmR,EACpB9wC,EAAGyxB,QAAUof,EAAWD,EACxB5wC,EAAG+wC,eAAiB/wC,EAAGzV,QAAQymD,gBAEhC,CACD/tD,IAAK,cACLN,MAAO,WACLoE,EAASwY,KAAKhV,QAAQomD,YAAa,CAACpxC,SAErC,CACDtc,IAAK,sBACLN,MAAO,WACLoE,EAASwY,KAAKhV,QAAQmlD,oBAAqB,CAACnwC,SAE7C,CACDtc,IAAK,gBACLN,MAAO,WACL,IAAIqd,EAAKT,KAELS,EAAGqzB,gBACLrzB,EAAGgF,MAAQhF,EAAG4J,SACd5J,EAAGgI,KAAO,EACVhI,EAAGiI,MAAQjI,EAAGgF,QAEdhF,EAAGsG,OAAStG,EAAG+X,UACf/X,EAAGkI,IAAM,EACTlI,EAAGmI,OAASnI,EAAGsG,QAGjBtG,EAAGkuC,YAAc,EACjBluC,EAAGguC,WAAa,EAChBhuC,EAAGmuC,aAAe,EAClBnuC,EAAGiuC,cAAgB,IAEpB,CACDhrD,IAAK,qBACLN,MAAO,WACLoE,EAASwY,KAAKhV,QAAQqlD,mBAAoB,CAACrwC,SAE5C,CACDtc,IAAK,aACLN,MAAO,SAAoBV,GACzB,IAAI+d,EAAKT,KACTS,EAAGiC,MAAMgvC,cAAchvD,EAAM+d,EAAGmG,cAChCpf,EAASiZ,EAAGzV,QAAQtI,GAAO,CAAC+d,MAE7B,CACD/c,IAAK,mBACLN,MAAO,WACL4c,KAAK2xC,WAAW,sBAEjB,CACDjuD,IAAK,sBACLN,MAAO,cACN,CACDM,IAAK,kBACLN,MAAO,WACL4c,KAAK2xC,WAAW,qBAEjB,CACDjuD,IAAK,mBACLN,MAAO,WACL4c,KAAK2xC,WAAW,sBAEjB,CACDjuD,IAAK,aACLN,MAAO,WACL,MAAO,KAER,CACDM,IAAK,kBACLN,MAAO,WACL4c,KAAK2xC,WAAW,qBAEjB,CACDjuD,IAAK,8BACLN,MAAO,WACLoE,EAASwY,KAAKhV,QAAQ4mD,4BAA6B,CAAC5xC,SAErD,CACDtc,IAAK,qBACLN,MAAO,SAA4BivC,GACjC,IAEIlwC,EAAGgI,EAAMs4B,EADTgoB,EADKzqC,KACShV,QAAQqnC,MAG1B,IAAKlwC,EAAI,EAAGgI,EAAOkoC,EAAMzsC,OAAQzD,EAAIgI,EAAMhI,KACzCsgC,EAAO4P,EAAMlwC,IACRktC,MAAQ7nC,EAASijD,EAASjjD,SAAU,CAACi7B,EAAKr/B,MAAOjB,EAAGkwC,GANlDryB,QASV,CACDtc,IAAK,6BACLN,MAAO,WACLoE,EAASwY,KAAKhV,QAAQ6mD,2BAA4B,CAAC7xC,SAEpD,CACDtc,IAAK,+BACLN,MAAO,WACLoE,EAASwY,KAAKhV,QAAQ8lD,6BAA8B,CAAC9wC,SAEtD,CACDtc,IAAK,yBACLN,MAAO,WACL,IAOIopD,EAAWh0B,EAAWs5B,EAPtBrxC,EAAKT,KACLhV,EAAUyV,EAAGzV,QACby/C,EAAWz/C,EAAQqnC,MACnB0f,EAAWtxC,EAAG4xB,MAAMzsC,OACpB8mD,EAAcjC,EAASiC,aAAe,EACtCC,EAAclC,EAASkC,YACvBkC,EAAgBnC,EAGpB,IAAKjsC,EAAGuxC,eAAiBvH,EAAShM,SAAWiO,GAAeC,GAAeoF,GAAY,IAAMtxC,EAAGqzB,eAC9FrzB,EAAGouC,cAAgBnC,MADrB,CAKA,IAAIuF,EAAaxxC,EAAGyxC,iBAEhBC,EAAgBF,EAAWG,OAAO3sC,MAClC4sC,EAAiBJ,EAAWK,QAAQvrC,OAEpCsD,EAAWhb,GAAYoR,EAAGiC,MAAM+C,MAAQ0sC,EAAe,EAAG1xC,EAAG4J,UAI7D8nC,EAAgB,GAFpB3F,EAAYxhD,EAAQ6rC,OAASp2B,EAAG4J,SAAW0nC,EAAW1nC,GAAY0nC,EAAW,MAG3EvF,EAAYniC,GAAY0nC,GAAY/mD,EAAQ6rC,OAAS,GAAM,IAC3Dre,EAAY/X,EAAG+X,UAAYw1B,GAAkBhjD,EAAQ8rC,MAAQ2T,EAASzG,QAAUiK,GAAejjD,EAAQ2sC,MAAOl3B,EAAGiC,MAAM1X,QAAQ+X,MAC/H+uC,EAAmB3lD,KAAKsC,KAAK0jD,EAAgBA,EAAgBE,EAAiBA,GAC9ExD,EAAgB1gD,GAAUhC,KAAK4B,IAAI5B,KAAKomD,KAAKpmD,KAAK4B,KAAKkkD,EAAWK,QAAQvrC,OAAS,GAAKylC,EAAW,IAAKrgD,KAAKomD,KAAKpmD,KAAK4B,IAAIyqB,EAAYs5B,EAAkB,IAAM3lD,KAAKomD,KAAKF,EAAiBP,KAC1LjD,EAAgB1iD,KAAK6B,IAAI0+C,EAAavgD,KAAK4B,IAAI4+C,EAAakC,KAG9DpuC,EAAGouC,cAAgBA,KAEpB,CACDnrD,IAAK,8BACLN,MAAO,WACLoE,EAASwY,KAAKhV,QAAQgmD,4BAA6B,CAAChxC,SAErD,CACDtc,IAAK,YACLN,MAAO,WACLoE,EAASwY,KAAKhV,QAAQimD,UAAW,CAACjxC,SAEnC,CACDtc,IAAK,MACLN,MAAO,WACL,IAAIqd,EAAKT,KACL49B,EAAU,CACZn4B,MAAO,EACPsB,OAAQ,GAENrE,EAAQjC,EAAGiC,MACX8vC,EAAe/xC,EAAGzV,QAClBy/C,EAAW+H,EAAangB,MACxBogB,EAAYD,EAAa7a,MACzB+a,EAAWF,EAAa1b,KAExB2H,EAAUh+B,EAAGuxC,aAEble,EAAerzB,EAAGqzB,eAEtB,GAAI2K,EAAS,CACX,IAAIkU,EAAc1E,GAAewE,EAAW/vC,EAAM1X,QAAQ+X,MAU1D,GARI+wB,GACF8J,EAAQn4B,MAAQhF,EAAG4J,SACnBuzB,EAAQ72B,OAASinC,GAAkB0E,GAAYC,IAE/C/U,EAAQ72B,OAAStG,EAAG+X,UACpBolB,EAAQn4B,MAAQuoC,GAAkB0E,GAAYC,GAG5ClI,EAAShM,SAAWh+B,EAAG4xB,MAAMzsC,OAAQ,CACvC,IAAIgtD,EAAqBnyC,EAAGyxC,iBACxB3G,EAAQqH,EAAmBrH,MAC3B3W,EAAOge,EAAmBhe,KAC1Bwd,EAASQ,EAAmBR,OAC5BE,EAAUM,EAAmBN,QAE7BO,EAAiC,EAAnBpI,EAASzG,QACvB8O,EAAe7kD,GAAUwS,EAAGouC,eAC5Bp+C,EAAMtE,KAAKsE,IAAIqiD,GACftjD,EAAMrD,KAAKqD,IAAIsjD,GAEnB,GAAIhf,EAAc,CAChB,IAAIif,EAActI,EAASmC,OAAS,EAAIp9C,EAAM4iD,EAAO3sC,MAAQhV,EAAM6hD,EAAQvrC,OAC3E62B,EAAQ72B,OAAS5a,KAAK4B,IAAI0S,EAAG+X,UAAWolB,EAAQ72B,OAASgsC,EAAcF,OAClE,CACL,IAAIG,EAAavI,EAASmC,OAAS,EAAIn8C,EAAM2hD,EAAO3sC,MAAQjW,EAAM8iD,EAAQvrC,OAC1E62B,EAAQn4B,MAAQtZ,KAAK4B,IAAI0S,EAAG4J,SAAUuzB,EAAQn4B,MAAQutC,EAAaH,GAGrEpyC,EAAGwyC,kBAAkB1H,EAAO3W,EAAMplC,EAAKiB,IAI3CgQ,EAAGyyC,iBAECpf,GACFrzB,EAAGgF,MAAQhF,EAAGyxB,QAAUxvB,EAAM+C,MAAQhF,EAAG+tC,SAAS/lC,KAAOhI,EAAG+tC,SAAS9lC,MACrEjI,EAAGsG,OAAS62B,EAAQ72B,SAEpBtG,EAAGgF,MAAQm4B,EAAQn4B,MACnBhF,EAAGsG,OAAStG,EAAGyxB,QAAUxvB,EAAMqE,OAAStG,EAAG+tC,SAAS7lC,IAAMlI,EAAG+tC,SAAS5lC,UAGzE,CACDllB,IAAK,oBACLN,MAAO,SAA2BmoD,EAAO3W,EAAMplC,EAAKiB,GAClD,IAAIgQ,EAAKT,KACLmzC,EAAe1yC,EAAGzV,QAClBooD,EAAqBD,EAAa9gB,MAClC9pC,EAAQ6qD,EAAmB7qD,MAC3By7C,EAAUoP,EAAmBpP,QAC7BzD,EAAW4S,EAAa5S,SACxB8S,EAAiC,IAArB5yC,EAAGouC,cACfyE,EAAgC,QAAb/S,GAAkC,MAAZ9/B,EAAG0oB,KAEhD,GAAI1oB,EAAGqzB,eAAgB,CACrB,IAAIyf,EAAa9yC,EAAG6xB,gBAAgB,GAAK7xB,EAAGgI,KACxC+qC,EAAc/yC,EAAGiI,MAAQjI,EAAG6xB,gBAAgB7xB,EAAG4xB,MAAMzsC,OAAS,GAC9D+oD,EAAc,EACdC,EAAe,EAEfyE,EACEC,GACF3E,EAAcl+C,EAAM86C,EAAM9lC,MAC1BmpC,EAAep/C,EAAMolC,EAAK7tB,SAE1B4nC,EAAcn/C,EAAM+7C,EAAMxkC,OAC1B6nC,EAAen+C,EAAMmkC,EAAKnvB,OAET,UAAVld,EACTqmD,EAAeha,EAAKnvB,MACD,QAAVld,EACTomD,EAAcpD,EAAM9lC,OAEpBkpC,EAAcpD,EAAM9lC,MAAQ,EAC5BmpC,EAAeha,EAAKnvB,MAAQ,GAG9BhF,EAAGkuC,YAAcxiD,KAAK6B,KAAK2gD,EAAc4E,EAAavP,GAAWvjC,EAAGgF,OAAShF,EAAGgF,MAAQ8tC,GAAa,GACrG9yC,EAAGmuC,aAAeziD,KAAK6B,KAAK4gD,EAAe4E,EAAcxP,GAAWvjC,EAAGgF,OAAShF,EAAGgF,MAAQ+tC,GAAc,OACpG,CACL,IAAI/E,EAAa7Z,EAAK7tB,OAAS,EAC3B2nC,EAAgBnD,EAAMxkC,OAAS,EAErB,UAAVxe,GACFkmD,EAAa,EACbC,EAAgBnD,EAAMxkC,QACH,QAAVxe,IACTkmD,EAAa7Z,EAAK7tB,OAClB2nC,EAAgB,GAGlBjuC,EAAGguC,WAAaA,EAAazK,EAC7BvjC,EAAGiuC,cAAgBA,EAAgB1K,KAGtC,CACDtgD,IAAK,iBACLN,MAAO,WACL,IAAIqd,EAAKT,KAELS,EAAG+tC,WACL/tC,EAAG+tC,SAAS/lC,KAAOtc,KAAK6B,IAAIyS,EAAGkuC,YAAaluC,EAAG+tC,SAAS/lC,MACxDhI,EAAG+tC,SAAS7lC,IAAMxc,KAAK6B,IAAIyS,EAAGguC,WAAYhuC,EAAG+tC,SAAS7lC,KACtDlI,EAAG+tC,SAAS9lC,MAAQvc,KAAK6B,IAAIyS,EAAGmuC,aAAcnuC,EAAG+tC,SAAS9lC,OAC1DjI,EAAG+tC,SAAS5lC,OAASzc,KAAK6B,IAAIyS,EAAGiuC,cAAejuC,EAAG+tC,SAAS5lC,WAG/D,CACDllB,IAAK,WACLN,MAAO,WACLoE,EAASwY,KAAKhV,QAAQmmD,SAAU,CAACnxC,SAElC,CACDtc,IAAK,eACLN,MAAO,WACL,IAAIqwD,EAAgBzzC,KAAKhV,QACrBm+B,EAAOsqB,EAActqB,KACrBoX,EAAWkT,EAAclT,SAC7B,MAAoB,QAAbA,GAAmC,WAAbA,GAAkC,MAATpX,IAEvD,CACDzlC,IAAK,aACLN,MAAO,WACL,OAAO4c,KAAKhV,QAAQ64C,WAErB,CACDngD,IAAK,wBACLN,MAAO,SAA+BivC,GACpC,IAGIlwC,EAAGgI,EAHHsW,EAAKT,KAKT,IAJAS,EAAGmxC,8BACHnxC,EAAGizC,mBAAmBrhB,GAGjBlwC,EAAI,EAAGgI,EAAOkoC,EAAMzsC,OAAQzD,EAAIgI,EAAMhI,IACrC2G,EAAcupC,EAAMlwC,GAAGktC,SACzBgD,EAAMhsB,OAAOlkB,EAAG,GAChBgI,IACAhI,KAIJse,EAAGoxC,+BAEJ,CACDnuD,IAAK,iBACLN,MAAO,WACL,IAAIqd,EAAKT,KACLiyC,EAAaxxC,EAAGwuC,YAEpB,IAAKgD,EAAY,CACf,IAAI/B,EAAazvC,EAAGzV,QAAQqnC,MAAM6d,WAC9B7d,EAAQ5xB,EAAG4xB,MAEX6d,EAAa7d,EAAMzsC,SACrBysC,EAAQob,GAAOpb,EAAO6d,IAGxBzvC,EAAGwuC,YAAcgD,EAAaxxC,EAAGkzC,mBAAmBthB,EAAOA,EAAMzsC,QAGnE,OAAOqsD,IAER,CACDvuD,IAAK,qBACLN,MAAO,SAA4BivC,EAAOzsC,GACxC,IAMIzD,EAAGwc,EAAGqH,EAAMqpB,EAAOukB,EAAUC,EAAYhuC,EAAO1C,EAAYsC,EAAOsB,EAAQ+sC,EAN3ExwC,EAAMtD,KAAKsD,IACXywC,EAAS/zC,KAAKkvC,kBACd8E,EAAS,GACTC,EAAU,GACVC,EAAkB,EAClBC,EAAmB,EAGvB,IAAKhyD,EAAI,EAAGA,EAAIyD,IAAUzD,EAAG,CAW3B,GAVAktC,EAAQgD,EAAMlwC,GAAGktC,MACjBukB,EAAW5zC,KAAKo0C,wBAAwBjyD,GACxCmhB,EAAIP,KAAO8wC,EAAaD,EAAStuC,OACjCO,EAAQkuC,EAAOF,GAAcE,EAAOF,IAAe,CACjD1uC,KAAM,GACNC,GAAI,IAENjC,EAAaywC,EAASzwC,WACtBsC,EAAQsB,EAAS,EAEZje,EAAcumC,IAAW/qC,EAAQ+qC,IAG/B,GAAI/qC,EAAQ+qC,GACjB,IAAK1wB,EAAI,EAAGqH,EAAOqpB,EAAMzpC,OAAQ+Y,EAAIqH,IAAQrH,EAGtC7V,EAFLgrD,EAAczkB,EAAM1wB,KAEgBra,EAAQwvD,KAC1CruC,EAAQP,GAAa5B,EAAKuC,EAAMV,KAAMU,EAAMT,GAAIK,EAAOquC,GACvD/sC,GAAU5D,QARdsC,EAAQP,GAAa5B,EAAKuC,EAAMV,KAAMU,EAAMT,GAAIK,EAAO4pB,GACvDtoB,EAAS5D,EAYX6wC,EAAOtuC,KAAKD,GACZwuC,EAAQvuC,KAAKqB,GACbmtC,EAAkB/nD,KAAK6B,IAAIyX,EAAOyuC,GAClCC,EAAmBhoD,KAAK6B,IAAI+Y,EAAQotC,IAtrB5C,SAAwBJ,EAAQnuD,GAC9BgE,EAAKmqD,GAAQ,SAAUluC,GACrB,IAEI1jB,EAFAijB,EAAKS,EAAMT,GACXgB,EAAQhB,EAAGxf,OAAS,EAGxB,GAAIwgB,EAAQxgB,EAAQ,CAClB,IAAKzD,EAAI,EAAGA,EAAIikB,IAASjkB,SAChB0jB,EAAMV,KAAKC,EAAGjjB,IAGvBijB,EAAGiB,OAAO,EAAGD,OA8qBbN,CAAeiuC,EAAQnuD,GACvB,IAAIwsD,EAAS4B,EAAOlpD,QAAQopD,GACxB5B,EAAU2B,EAAQnpD,QAAQqpD,GAE1BE,EAAU,SAAiB5oD,GAC7B,MAAO,CACLga,MAAOuuC,EAAOvoD,IAAQ,EACtBsb,OAAQktC,EAAQxoD,IAAQ,IAI5B,MAAO,CACL8/C,MAAO8I,EAAQ,GACfzf,KAAMyf,EAAQzuD,EAAS,GACvBwsD,OAAQiC,EAAQjC,GAChBE,QAAS+B,EAAQ/B,GACjB0B,OAAQA,EACRC,QAASA,KAGZ,CACDvwD,IAAK,mBACLN,MAAO,SAA0BA,GAC/B,OAAOA,IAER,CACDM,IAAK,mBACLN,MAAO,SAA0BA,EAAOmH,GACtC,OAAO+jC,MAER,CACD5qC,IAAK,mBACLN,MAAO,SAA0BmjB,MAChC,CACD7iB,IAAK,kBACLN,MAAO,SAAyBmH,GAC9B,IAAI8nC,EAAQryB,KAAKqyB,MAEjB,OAAI9nC,EAAQ,GAAKA,EAAQ8nC,EAAMzsC,OAAS,EAC/B,KAGFoa,KAAKoyB,iBAAiBC,EAAM9nC,GAAOnH,SAE3C,CACDM,IAAK,qBACLN,MAAO,SAA4BkxD,GACjC,IAAI7zC,EAAKT,KAELS,EAAG2/B,iBACLkU,EAAU,EAAIA,GAGhB,IAAI/tC,EAAQ9F,EAAGw0B,YAAcqf,EAAU7zC,EAAGyxB,QAC1C,ODh6JG7iC,GCg6JgBoR,EAAG+wC,eAAiBlrC,GAAY7F,EAAGiC,MAAO6D,EAAO,GAAKA,GDh6JlD,MAAO,SCk6J/B,CACD7iB,IAAK,qBACLN,MAAO,SAA4BmjB,GACjC,IAAI+tC,GAAW/tC,EAAQvG,KAAKi1B,aAAej1B,KAAKkyB,QAChD,OAAOlyB,KAAKogC,eAAiB,EAAIkU,EAAUA,IAE5C,CACD5wD,IAAK,eACLN,MAAO,WACL,OAAO4c,KAAKoyB,iBAAiBpyB,KAAKu0C,kBAEnC,CACD7wD,IAAK,eACLN,MAAO,WACL,IAAI2K,EAAMiS,KAAKjS,IACXC,EAAMgS,KAAKhS,IACf,OAAOD,EAAM,GAAKC,EAAM,EAAIA,EAAMD,EAAM,GAAKC,EAAM,EAAID,EAAM,IAE9D,CACDrK,IAAK,aACLN,MAAO,SAAoBmH,GACzB,IAvuBsBynB,EAAQ9N,EAuuB1BzD,EAAKT,KACLqyB,EAAQ5xB,EAAG4xB,OAAS,GAExB,GAAI9nC,GAAS,GAAKA,EAAQ8nC,EAAMzsC,OAAQ,CACtC,IAAI68B,EAAO4P,EAAM9nC,GACjB,OAAOk4B,EAAKqI,WAAarI,EAAKqI,SAruBtC,SAA2B9Y,EAAQznB,EAAOk4B,GACxC,OAAO5/B,OAAO6c,OAAO7c,OAAOY,OAAOuuB,GAAS,CAC1CyQ,KAAMA,EACNl4B,MAAOA,EACPxB,KAAM,SAiuBuCyrD,CAAkB/zC,EAAGmG,aAAcrc,EAAOk4B,IAGrF,OAAOhiB,EAAGqqB,WAAarqB,EAAGqqB,UA/uBJ9Y,EA+uBkCvR,EAAGiC,MAAMkE,aA/uBnC1C,EA+uBiDzD,EA9uB5E5d,OAAO6c,OAAO7c,OAAOY,OAAOuuB,GAAS,CAC1C9N,MAAOA,EACPnb,KAAM,cA8uBL,CACDrF,IAAK,YACLN,MAAO,WACL,IAAIqd,EAAKT,KACLy0C,EAAch0C,EAAGzV,QAAQqnC,MACzBqiB,EAAMzmD,GAAUwS,EAAGouC,eACnBp+C,EAAMtE,KAAKyB,IAAIzB,KAAKsE,IAAIikD,IACxBllD,EAAMrD,KAAKyB,IAAIzB,KAAKqD,IAAIklD,IAExBzC,EAAaxxC,EAAGyxC,iBAEhBlO,EAAUyQ,EAAY1H,iBAAmB,EACzC35C,EAAI6+C,EAAaA,EAAWG,OAAO3sC,MAAQu+B,EAAU,EACrDvxC,EAAIw/C,EAAaA,EAAWK,QAAQvrC,OAASi9B,EAAU,EAC3D,OAAOvjC,EAAGqzB,eAAiBrhC,EAAIhC,EAAM2C,EAAI5D,EAAM4D,EAAI3C,EAAMgC,EAAIjD,EAAMiD,EAAIjD,EAAM4D,EAAI3C,EAAMgC,EAAIhC,EAAM2C,EAAI5D,IAEtG,CACD9L,IAAK,aACLN,MAAO,WACL,IAAIq7C,EAAUz+B,KAAKhV,QAAQyzC,QAE3B,MAAgB,SAAZA,IACOA,EAGJz+B,KAAK2oB,0BAA0B/iC,OAAS,IAEhD,CACDlC,IAAK,wBACLN,MAAO,SAA+BusC,GACpC,IAoBIglB,EAAaxyD,EAAG4rD,EAAW6G,EAC3BC,EAAKC,EAAKC,EAAKC,EAAKC,EAAIC,EAAIC,EAAIC,EArBhC30C,EAAKT,KACLmpB,EAAO1oB,EAAG0oB,KACVzmB,EAAQjC,EAAGiC,MACX1X,EAAUyV,EAAGzV,QACb8rC,EAAO9rC,EAAQ8rC,KACfyJ,EAAWv1C,EAAQu1C,SACnB1J,EAASC,EAAKD,OACd/C,EAAerzB,EAAGqzB,eAElBuhB,EADQ50C,EAAG4xB,MACSzsC,QAAUixC,EAAS,EAAI,GAC3Cye,EAAKtH,GAAkBlX,GACvB5oB,EAAQ,GACRqnC,EAAaze,EAAK3mB,WAAW1P,EAAGmG,cAChC4uC,EAAYD,EAAWlJ,WAAakJ,EAAWptC,YAAc,EAC7DstC,EAAgBD,EAAY,EAE5BE,EAAmB,SAA0BnvC,GAC/C,OAAOD,GAAY5D,EAAO6D,EAAOivC,IAMnC,GAAiB,QAAbjV,EACFoU,EAAce,EAAiBj1C,EAAGmI,QAClCksC,EAAMr0C,EAAGmI,OAAS0sC,EAClBN,EAAML,EAAcc,EACpBP,EAAKQ,EAAiB/lB,EAAUhnB,KAAO8sC,EACvCL,EAAKzlB,EAAU/mB,YACV,GAAiB,WAAb23B,EACToU,EAAce,EAAiBj1C,EAAGkI,KAClCusC,EAAKvlB,EAAUhnB,IACfysC,EAAKM,EAAiB/lB,EAAU/mB,QAAU6sC,EAC1CX,EAAMH,EAAcc,EACpBT,EAAMv0C,EAAGkI,IAAM2sC,OACV,GAAiB,SAAb/U,EACToU,EAAce,EAAiBj1C,EAAGiI,OAClCmsC,EAAMp0C,EAAGiI,MAAQ4sC,EACjBP,EAAMJ,EAAcc,EACpBR,EAAKS,EAAiB/lB,EAAUlnB,MAAQgtC,EACxCN,EAAKxlB,EAAUjnB,WACV,GAAiB,UAAb63B,EACToU,EAAce,EAAiBj1C,EAAGgI,MAClCwsC,EAAKtlB,EAAUlnB,KACf0sC,EAAKO,EAAiB/lB,EAAUjnB,OAAS+sC,EACzCZ,EAAMF,EAAcc,EACpBV,EAAMt0C,EAAGgI,KAAO6sC,OACX,GAAa,MAATnsB,EAAc,CACvB,GAAiB,WAAboX,EACFoU,EAAce,GAAkB/lB,EAAUhnB,IAAMgnB,EAAU/mB,QAAU,EAAI,SACnE,GAAI3f,EAASs3C,GAAW,CAC7B,IAAIoV,EAAiB9yD,OAAOkH,KAAKw2C,GAAU,GACvCn9C,EAAQm9C,EAASoV,GACrBhB,EAAce,EAAiBj1C,EAAGiC,MAAMyB,OAAOwxC,GAAgBvjB,iBAAiBhvC,IAGlF8xD,EAAKvlB,EAAUhnB,IACfysC,EAAKzlB,EAAU/mB,OAEfosC,GADAF,EAAMH,EAAcc,GACRH,OACP,GAAa,MAATnsB,EAAc,CACvB,GAAiB,WAAboX,EACFoU,EAAce,GAAkB/lB,EAAUlnB,KAAOknB,EAAUjnB,OAAS,QAC/D,GAAIzf,EAASs3C,GAAW,CAC7B,IAAIqV,EAAkB/yD,OAAOkH,KAAKw2C,GAAU,GACxCsV,EAAStV,EAASqV,GACtBjB,EAAce,EAAiBj1C,EAAGiC,MAAMyB,OAAOyxC,GAAiBxjB,iBAAiByjB,IAInFd,GADAF,EAAMF,EAAcc,GACRH,EACZL,EAAKtlB,EAAUlnB,KACf0sC,EAAKxlB,EAAUjnB,MAGjB,IAAIotC,EAAQvsD,EAAeyB,EAAQqnC,MAAMsY,cAAe0K,GACpDzuD,EAAOuF,KAAK6B,IAAI,EAAG7B,KAAKs/C,KAAK4J,EAAcS,IAE/C,IAAK3zD,EAAI,EAAGA,EAAIkzD,EAAalzD,GAAKyE,EAAM,CACtC,IAAImvD,EAAcjf,EAAK3mB,WAAW1P,EAAGmG,WAAWzkB,IAC5CgoB,EAAY4rC,EAAY5rC,UACxB6rC,EAAYD,EAAYx1C,MACxB+d,EAAawY,EAAKxY,YAAc,GAChCC,EAAmBw3B,EAAYx3B,iBAC/BiuB,EAAYuJ,EAAYvJ,UACxBC,EAAYsJ,EAAYtJ,UACxBwJ,EAAiBF,EAAYE,gBAAkB,GAC/CC,EAAuBH,EAAYG,0BAGrBjjD,KAFlB86C,EAAYH,GAAoBntC,EAAIte,EAAG00C,MAMvC+d,EAAmBtuC,GAAY5D,EAAOqrC,EAAW5jC,GAE7C2pB,EACF+gB,EAAME,EAAME,EAAKE,EAAKP,EAEtBE,EAAME,EAAME,EAAKE,EAAKR,EAGxB1mC,EAAMxI,KAAK,CACTmvC,IAAKA,EACLC,IAAKA,EACLC,IAAKA,EACLC,IAAKA,EACLC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJ3vC,MAAO0E,EACP5J,MAAOy1C,EACP13B,WAAYA,EACZC,iBAAkBA,EAClBiuB,UAAWA,EACXC,UAAWA,EACXwJ,eAAgBA,EAChBC,qBAAsBA,KAM1B,OAFAz1C,EAAG8uC,aAAe8F,EAClB50C,EAAG+uC,aAAemF,EACXzmC,IAER,CACDxqB,IAAK,qBACLN,MAAO,SAA4BusC,GACjC,IAgBIxtC,EAAGgI,EAAYklC,EAAO5hC,EAAGC,EAAGgd,EAAWnE,EAAOxD,EAAMI,EAAYgzC,EAAWC,EAhB3E31C,EAAKT,KACLmpB,EAAO1oB,EAAG0oB,KACVn+B,EAAUyV,EAAGzV,QACbu1C,EAAWv1C,EAAQu1C,SACnBkU,EAAczpD,EAAQqnC,MACtByB,EAAerzB,EAAGqzB,eAClBzB,EAAQ5xB,EAAG4xB,MACX9pC,EAAQksD,EAAYlsD,MACpB2kD,EAAauH,EAAYvH,WACzBlJ,EAAUyQ,EAAYzQ,QACtB4I,EAAS6H,EAAY7H,OACrB0I,EAAKtH,GAAkBhjD,EAAQ8rC,MAC/Buf,EAAiBf,EAAKtR,EACtBsS,EAAkB1J,GAAU5I,EAAUqS,EACtChvC,GAAYpZ,GAAUwS,EAAGouC,eACzB3gC,EAAQ,GAERvD,EAAe,SAEnB,GAAiB,QAAb41B,EACF7yC,EAAI+S,EAAGmI,OAAS0tC,EAChB5rC,EAAYjK,EAAG81C,+BACV,GAAiB,WAAbhW,EACT7yC,EAAI+S,EAAGkI,IAAM2tC,EACb5rC,EAAYjK,EAAG81C,+BACV,GAAiB,SAAbhW,EAAqB,CAC9B,IAAItgC,EAAMQ,EAAG+1C,wBAAwBlB,GAErC5qC,EAAYzK,EAAIyK,UAChBjd,EAAIwS,EAAIxS,OACH,GAAiB,UAAb8yC,EAAsB,CAC/B,IAAIkW,EAAOh2C,EAAG+1C,wBAAwBlB,GAEtC5qC,EAAY+rC,EAAK/rC,UACjBjd,EAAIgpD,EAAKhpD,OACJ,GAAa,MAAT07B,EAAc,CACvB,GAAiB,WAAboX,EACF7yC,GAAKiiC,EAAUhnB,IAAMgnB,EAAU/mB,QAAU,EAAIytC,OACxC,GAAIptD,EAASs3C,GAAW,CAC7B,IAAIoV,EAAiB9yD,OAAOkH,KAAKw2C,GAAU,GACvCn9C,EAAQm9C,EAASoV,GACrBjoD,EAAI+S,EAAGiC,MAAMyB,OAAOwxC,GAAgBvjB,iBAAiBhvC,GAASizD,EAGhE3rC,EAAYjK,EAAG81C,+BACV,GAAa,MAATptB,EAAc,CACvB,GAAiB,WAAboX,EACF9yC,GAAKkiC,EAAUlnB,KAAOknB,EAAUjnB,OAAS,EAAI2tC,OACxC,GAAIptD,EAASs3C,GAAW,CAC7B,IAAImW,EAAmB7zD,OAAOkH,KAAKw2C,GAAU,GACzCoW,EAAUpW,EAASmW,GACvBjpD,EAAIgT,EAAGiC,MAAMyB,OAAOuyC,GAAkBtkB,iBAAiBukB,GAGzDjsC,EAAYjK,EAAG+1C,wBAAwBlB,GAAI5qC,UAGhC,MAATye,IACY,UAAV5gC,EACFoiB,EAAe,MACI,QAAVpiB,IACToiB,EAAe,WAInB,IAAIsnC,EAAaxxC,EAAGyxC,iBAEpB,IAAK/vD,EAAI,EAAGgI,EAAOkoC,EAAMzsC,OAAQzD,EAAIgI,IAAQhI,EAAG,CAE9CktC,EADOgD,EAAMlwC,GACAktC,MACb,IAAI0mB,EAActB,EAAYtkC,WAAW1P,EAAGmG,WAAWzkB,IACvDokB,EAAQ9F,EAAG6xB,gBAAgBnwC,GAAKsyD,EAAYzH,YAE5C7pC,GADAJ,EAAOtC,EAAG2zC,wBAAwBjyD,IAChBghB,WAElB,IAAIyzC,GADJT,EAAY7xD,EAAQ+qC,GAASA,EAAMzpC,OAAS,GAChB,EACxB2a,EAAQw1C,EAAYx1C,MACpByJ,EAAc+rC,EAAYjJ,gBAC1B/iC,EAAcgsC,EAAYlJ,gBAE1B/Y,GACFrmC,EAAI8Y,EAIA6vC,EAFa,QAAb7V,EACiB,SAAf2M,GAAsC,IAAb7lC,GACb8uC,EAAYhzC,EAAaA,EAAa,EAC5B,WAAf+pC,GACK+E,EAAWK,QAAQvrC,OAAS,EAAI6vC,EAAYzzC,EAAaA,GAEzD8uC,EAAWK,QAAQvrC,OAAS5D,EAAa,EAGtC,SAAf+pC,GAAsC,IAAb7lC,EACdlE,EAAa,EACF,WAAf+pC,EACI+E,EAAWK,QAAQvrC,OAAS,EAAI6vC,EAAYzzC,EAE5C8uC,EAAWK,QAAQvrC,OAASovC,EAAYhzC,EAIrDypC,IACFwJ,IAAe,KAGjB1oD,EAAI6Y,EACJ6vC,GAAc,EAAID,GAAahzC,EAAa,GAG9C,IAAI0zC,OAAW,EAEf,GAAId,EAAY5I,kBAAmB,CACjC,IAAI2J,EAAetqC,GAAUupC,EAAY1I,iBACrCtmC,EAASkrC,EAAWgC,QAAQ9xD,GAC5BsjB,EAAQwsC,EAAW+B,OAAO7xD,GAC1BwmB,EAAMjb,EAAI0oD,EAAaU,EAAanuC,IACpCF,EAAOhb,EAAIqpD,EAAaruC,KAE5B,OAAQkC,GACN,IAAK,SACHhC,GAAO5B,EAAS,EAChB,MAEF,IAAK,SACH4B,GAAO5B,EAIX,OAAQ2D,GACN,IAAK,SACHjC,GAAQhD,EAAQ,EAChB,MAEF,IAAK,QACHgD,GAAQhD,EAIZoxC,EAAW,CACTpuC,KAAMA,EACNE,IAAKA,EACLlD,MAAOA,EAAQqxC,EAAarxC,MAC5BsB,OAAQA,EAAS+vC,EAAa/vC,OAC9BxG,MAAOw1C,EAAY3I,eAIvBl/B,EAAMxI,KAAK,CACT2B,SAAUA,EACVgoB,MAAOA,EACPtsB,KAAMA,EACNxC,MAAOA,EACPyJ,YAAaA,EACbD,YAAaA,EACbqsC,WAAYA,EACZ1rC,UAAWA,EACXC,aAAcA,EACdH,YAAa,CAAC/c,EAAGC,GACjBmpD,SAAUA,IAId,OAAO3oC,IAER,CACDxqB,IAAK,0BACLN,MAAO,WACL,IACI2zD,EADK/2C,KACahV,QAClBu1C,EAAWwW,EAAaxW,SACxBlO,EAAQ0kB,EAAa1kB,MAGzB,IAFgBpkC,GAJP+R,KAIoB6uC,eAG3B,MAAoB,QAAbtO,EAAqB,OAAS,QAGvC,IAAIh4C,EAAQ,SAQZ,MANoB,UAAhB8pC,EAAM9pC,MACRA,EAAQ,OACiB,QAAhB8pC,EAAM9pC,QACfA,EAAQ,SAGHA,IAER,CACD7E,IAAK,0BACLN,MAAO,SAAiCkyD,GACtC,IAYI5qC,EACAjd,EAbAgT,EAAKT,KACLg3C,EAAev2C,EAAGzV,QAClBu1C,EAAWyW,EAAazW,SACxB0W,EAAqBD,EAAa3kB,MAClC6a,EAAa+J,EAAmB/J,WAChCN,EAASqK,EAAmBrK,OAC5B5I,EAAUiT,EAAmBjT,QAI7BqS,EAAiBf,EAAKtR,EACtBoO,EAHa3xC,EAAGyxC,iBAGIE,OAAO3sC,MA0C/B,MAtCiB,SAAb86B,EACEqM,GACFliC,EAAY,OACZjd,EAAIgT,EAAGiI,MAAQs7B,IAEfv2C,EAAIgT,EAAGiI,MAAQ2tC,EAEI,SAAfnJ,EACFxiC,EAAY,QACY,WAAfwiC,GACTxiC,EAAY,SACZjd,GAAK2kD,EAAS,IAEd1nC,EAAY,OACZjd,EAAIgT,EAAGgI,OAGW,UAAb83B,EACLqM,GACFliC,EAAY,QACZjd,EAAIgT,EAAGgI,KAAOu7B,IAEdv2C,EAAIgT,EAAGgI,KAAO4tC,EAEK,SAAfnJ,EACFxiC,EAAY,OACY,WAAfwiC,GACTxiC,EAAY,SACZjd,GAAK2kD,EAAS,IAEd1nC,EAAY,QACZjd,EAAIgT,EAAGiI,QAIXgC,EAAY,QAGP,CACLA,UAAWA,EACXjd,EAAGA,KAGN,CACD/J,IAAK,oBACLN,MAAO,WACL,IAAIqd,EAAKT,KAET,IAAIS,EAAGzV,QAAQqnC,MAAMua,OAArB,CAIA,IAAIlqC,EAAQjC,EAAGiC,MACX69B,EAAW9/B,EAAGzV,QAAQu1C,SAE1B,MAAiB,SAAbA,GAAoC,UAAbA,EAClB,CACL53B,IAAK,EACLF,KAAMhI,EAAGgI,KACTG,OAAQlG,EAAMqE,OACd2B,MAAOjI,EAAGiI,OAIG,QAAb63B,GAAmC,WAAbA,EACjB,CACL53B,IAAKlI,EAAGkI,IACRF,KAAM,EACNG,OAAQnI,EAAGmI,OACXF,MAAOhG,EAAM+C,YALjB,KASD,CACD/hB,IAAK,iBACLN,MAAO,WACL,IAAIkgB,EAAMtD,KAAKsD,IACXjB,EAAkBrC,KAAKhV,QAAQqX,gBAC/BoG,EAAOzI,KAAKyI,KACZE,EAAM3I,KAAK2I,IACXlD,EAAQzF,KAAKyF,MACbsB,EAAS/G,KAAK+G,OAEd1E,IACFiB,EAAIyC,OACJzC,EAAImH,UAAYpI,EAChBiB,EAAI4zC,SAASzuC,EAAME,EAAKlD,EAAOsB,GAC/BzD,EAAI6C,aAGP,CACDziB,IAAK,uBACLN,MAAO,SAA8BA,GACnC,IAAIqd,EAAKT,KACL82B,EAAOr2B,EAAGzV,QAAQ8rC,KAEtB,IAAKr2B,EAAGuxC,eAAiBlb,EAAK2H,QAC5B,OAAO,EAGT,IACIl0C,EADQkW,EAAG4xB,MACG8kB,WAAU,SAAU9zD,GACpC,OAAOA,EAAED,QAAUA,KAGrB,OAAImH,GAAS,EACAusC,EAAK3mB,WAAW1P,EAAGmG,WAAWrc,IAC7B4f,UAGP,IAER,CACDzmB,IAAK,WACLN,MAAO,SAAkBusC,GACvB,IAMIxtC,EAAGgI,EANHsW,EAAKT,KACL82B,EAAOr2B,EAAGzV,QAAQ8rC,KAClBxzB,EAAM7C,EAAG6C,IAET4K,EAAQzN,EAAGsuC,iBAAmBtuC,EAAGsuC,eAAiBtuC,EAAG22C,sBAAsBznB,IAI3E0nB,EAAW,SAAkBzjD,EAAIC,EAAIqP,GAClCA,EAAMuC,OAAUvC,EAAM3C,QAI3B+C,EAAIyC,OACJzC,EAAI6G,UAAYjH,EAAMuC,MACtBnC,EAAI4G,YAAchH,EAAM3C,MACxB+C,EAAIg0C,YAAYp0C,EAAMob,YAAc,IACpChb,EAAIi0C,eAAiBr0C,EAAMqb,iBAC3Bjb,EAAIqE,YACJrE,EAAIwE,OAAOlU,EAAGnG,EAAGmG,EAAGlG,GACpB4V,EAAIyE,OAAOlU,EAAGpG,EAAGoG,EAAGnG,GACpB4V,EAAI8E,SACJ9E,EAAI6C,YAGN,GAAI2wB,EAAK2H,QACP,IAAKt8C,EAAI,EAAGgI,EAAO+jB,EAAMtoB,OAAQzD,EAAIgI,IAAQhI,EAAG,CAC9C,IAAIkgC,EAAOnU,EAAM/rB,GAEb20C,EAAKwV,iBACP+K,EAAS,CACP5pD,EAAG40B,EAAK4yB,GACRvnD,EAAG20B,EAAK6yB,IACP,CACDznD,EAAG40B,EAAK8yB,GACRznD,EAAG20B,EAAK+yB,IACP/yB,GAGDyU,EAAKyV,WACP8K,EAAS,CACP5pD,EAAG40B,EAAKwyB,IACRnnD,EAAG20B,EAAKyyB,KACP,CACDrnD,EAAG40B,EAAK0yB,IACRrnD,EAAG20B,EAAK2yB,KACP,CACDz0C,MAAO8hB,EAAKoqB,UACZhnC,MAAO4c,EAAKmqB,UACZluB,WAAY+D,EAAK4zB,eACjB13B,iBAAkB8D,EAAK6zB,0BAMhC,CACDxyD,IAAK,aACLN,MAAO,WACL,IAAIqd,EAAKT,KACL0C,EAAQjC,EAAGiC,MACXY,EAAM7C,EAAG6C,IACTwzB,EAAOr2B,EAAGzV,QAAQ8rC,KAClBye,EAAaze,EAAK3mB,WAAW1P,EAAGmG,cAChC4uC,EAAY1e,EAAKuV,WAAakJ,EAAWptC,YAAc,EAE3D,GAAKqtC,EAAL,CAIA,IAEIP,EAAIE,EAAID,EAAIE,EAFZoC,EAAgB1gB,EAAK3mB,WAAW1P,EAAGmG,WAAW,IAAIuD,UAClDwqC,EAAcl0C,EAAG+uC,aAGjB/uC,EAAGqzB,gBACLmhB,EAAK3uC,GAAY5D,EAAOjC,EAAGgI,KAAM+sC,GAAaA,EAAY,EAC1DL,EAAK7uC,GAAY5D,EAAOjC,EAAGiI,MAAO8uC,GAAiBA,EAAgB,EACnEtC,EAAKE,EAAKT,IAEVO,EAAK5uC,GAAY5D,EAAOjC,EAAGkI,IAAK6sC,GAAaA,EAAY,EACzDJ,EAAK9uC,GAAY5D,EAAOjC,EAAGmI,OAAQ4uC,GAAiBA,EAAgB,EACpEvC,EAAKE,EAAKR,GAGZrxC,EAAIyC,OACJzC,EAAI6G,UAAYorC,EAAWptC,YAC3B7E,EAAI4G,YAAcqrC,EAAWjzC,YAC7BgB,EAAIqE,YACJrE,EAAIwE,OAAOmtC,EAAIC,GACf5xC,EAAIyE,OAAOotC,EAAIC,GACf9xC,EAAI8E,SACJ9E,EAAI6C,aAEL,CACDziB,IAAK,aACLN,MAAO,SAAoBusC,GACzB,IAAIlvB,EAAKT,KAGT,GAFkBS,EAAGzV,QAAQqnC,MAEZoM,QAAjB,CAIA,IAAIn7B,EAAM7C,EAAG6C,IAETiF,EAAO9H,EAAGg3C,oBAEVlvC,GACFM,GAASvF,EAAKiF,GAGhB,IAEIpmB,EAAGgI,EAFH+jB,EAAQzN,EAAGuuC,cAAgBvuC,EAAGuuC,YAAcvuC,EAAGi3C,mBAAmB/nB,IAItE,IAAKxtC,EAAI,EAAGgI,EAAO+jB,EAAMtoB,OAAQzD,EAAIgI,IAAQhI,EAAG,CAC9C,IAAIkgC,EAAOnU,EAAM/rB,GACbyxD,EAAWvxB,EAAKtf,KAChBssB,EAAQhN,EAAKgN,MAEbhN,EAAKw0B,WACPvzC,EAAImH,UAAY4X,EAAKw0B,SAASt2C,MAC9B+C,EAAI4zC,SAAS70B,EAAKw0B,SAASpuC,KAAM4Z,EAAKw0B,SAASluC,IAAK0Z,EAAKw0B,SAASpxC,MAAO4c,EAAKw0B,SAAS9vC,SAIzF2C,GAAWpG,EAAK+rB,EAAO,EADfhN,EAAK+zB,WACgBxC,EAAUvxB,GAGrC9Z,GACFQ,GAAWzF,MAGd,CACD5f,IAAK,YACLN,MAAO,WACL,IAAIkgB,EAAMtD,KAAKsD,IACXq0C,EAAiB33C,KAAKhV,QACtBu1C,EAAWoX,EAAepX,SAC1B5I,EAAQggB,EAAehgB,MACvB7tC,EAAU6tD,EAAe7tD,QAE7B,GAAK6tC,EAAM8G,QAAX,CAIA,IAAI17B,EAAO0J,GAAOkrB,EAAM50B,MACpBihC,EAAUx3B,GAAUmrB,EAAMqM,SAC1Bz7C,EAAQovC,EAAMpvC,MACdsuC,EAAS9zB,EAAKI,WAAa,EAEd,WAAbo9B,GACF1J,GAAUmN,EAAQp7B,OAEdtkB,EAAQqzC,EAAMhuB,QAChBktB,GAAU9zB,EAAKI,YAAcw0B,EAAMhuB,KAAK/jB,OAAS,KAGnDixC,GAAUmN,EAAQr7B,IAGpB,IAAIivC,EAx1CV,SAAmB1zC,EAAO2yB,EAAQ0J,EAAUh4C,GAC1C,IAKI8hB,EAAUwtC,EAAQC,EALlBnvC,EAAMzE,EAAMyE,IACZF,EAAOvE,EAAMuE,KACbG,EAAS1E,EAAM0E,OACfF,EAAQxE,EAAMwE,MACdrB,EAAW,EAaf,OAVInD,EAAM4vB,gBACR+jB,EAASrvD,EAAeD,EAAOkgB,EAAMC,GACrCovC,EAASvK,GAAerpC,EAAOq8B,EAAU1J,GACzCxsB,EAAW3B,EAAQD,IAEnBovC,EAAStK,GAAerpC,EAAOq8B,EAAU1J,GACzCihB,EAAStvD,EAAeD,EAAOqgB,EAAQD,GACvCtB,EAAwB,SAAbk5B,GAAuB9zC,EAAUA,GAGvC,CACLorD,OAAQA,EACRC,OAAQA,EACRztC,SAAUA,EACVhD,SAAUA,GAk0CS0wC,CAAU/3C,KAAM62B,EAAQ0J,EAAUh4C,GAC/CsvD,EAASD,EAAWC,OACpBC,EAASF,EAAWE,OACpBztC,EAAWutC,EAAWvtC,SACtBhD,EAAWuwC,EAAWvwC,SAE1BqC,GAAWpG,EAAKq0B,EAAMhuB,KAAM,EAAG,EAAG5G,EAAM,CACtCxC,MAAOo3B,EAAMp3B,MACb8J,SAAUA,EACVhD,SAAUA,EACVqD,UAAWwjC,GAAW3lD,EAAOg4C,EAAUz2C,GACvC6gB,aAAc,SACdH,YAAa,CAACqtC,EAAQC,QAGzB,CACDp0D,IAAK,OACLN,MAAO,SAAcusC,GACnB,IAAIlvB,EAAKT,KAEJS,EAAGuxC,eAIRvxC,EAAGu3C,iBACHv3C,EAAGw3C,SAAStoB,GACZlvB,EAAG4rC,aACH5rC,EAAGy3C,YACHz3C,EAAG03C,WAAWxoB,MAEf,CACDjsC,IAAK,UACLN,MAAO,WACL,IAAIqd,EAAKT,KACL6J,EAAOpJ,EAAGzV,QACVotD,EAAKvuC,EAAKwoB,OAASxoB,EAAKwoB,MAAM8R,GAAK,EACnCkU,EAAKxuC,EAAKitB,MAAQjtB,EAAKitB,KAAKqN,GAAK,EAErC,OAAK1jC,EAAGuxC,cAAgBvxC,EAAG6hB,OAAS+rB,EAAMtqD,UAAUu+B,KAS7C,CAAC,CACN6hB,EAAGkU,EACH/1B,KAAM,SAAcqN,GAClBlvB,EAAGu3C,iBACHv3C,EAAGw3C,SAAStoB,GACZlvB,EAAGy3C,cAEJ,CACD/T,EAAGkU,EAAK,EACR/1B,KAAM,WACJ7hB,EAAG4rC,eAEJ,CACDlI,EAAGiU,EACH91B,KAAM,SAAcqN,GAClBlvB,EAAG03C,WAAWxoB,MAvBT,CAAC,CACNwU,EAAGiU,EACH91B,KAAM,SAAcqN,GAClBlvB,EAAG6hB,KAAKqN,QAwBf,CACDjsC,IAAK,0BACLN,MAAO,SAAiC2F,GACtC,IAII5G,EAAGgI,EAJHsW,EAAKT,KACL8xB,EAAQrxB,EAAGiC,MAAM+9B,+BACjB6X,EAAS73C,EAAG0oB,KAAO,SACnBnS,EAAS,GAGb,IAAK70B,EAAI,EAAGgI,EAAO2nC,EAAMlsC,OAAQzD,EAAIgI,IAAQhI,EAAG,CAC9C,IAAI8lC,EAAO6J,EAAM3vC,GAEb8lC,EAAKqwB,KAAY73C,EAAG7X,IAAQG,GAAQk/B,EAAKl/B,OAASA,GACpDiuB,EAAOtR,KAAKuiB,GAIhB,OAAOjR,IAER,CACDtzB,IAAK,0BACLN,MAAO,SAAiCmH,GAEtC,OAAOkiB,GADIzM,KAAKhV,QAAQqnC,MAAMliB,WAAWnQ,KAAK4G,WAAWrc,IACtCwY,QAEpB,CACDrf,IAAK,aACLN,MAAO,WACL,IAAIqd,EAAKT,KAELu4C,EAAW93C,EAAG2zC,wBAAwB,GAAGjxC,WAE7C,OAAQ1C,EAAGqzB,eAAiBrzB,EAAGgF,MAAQhF,EAAGsG,QAAUwxC,MAIjDlK,EAp6CgB,CAq6CvB,IAEE,GAA6B,WAC/B,SAASmK,EAAczvD,EAAMgZ,EAAOqO,GAClC,GAAgBpQ,KAAMw4C,GAEtBx4C,KAAKjX,KAAOA,EACZiX,KAAK+B,MAAQA,EACb/B,KAAKoQ,SAAWA,EAChBpQ,KAAKkO,MAAQrrB,OAAOY,OAAO,MAkE7B,OA/DA,GAAa+0D,EAAe,CAAC,CAC3B90D,IAAK,YACLN,MAAO,SAAmB2F,GACxB,OAAOlG,OAAOkB,UAAU00D,cAAcn2D,KAAK0d,KAAKjX,KAAKhF,UAAWgF,EAAKhF,aAEtE,CACDL,IAAK,WACLN,MAAO,SAAkBi/B,GACvB,IAEIq2B,EAFAj4C,EAAKT,KACLP,EAAQ5c,OAAOusB,eAAeiT,IAkFxC,SAA2B5iB,GACzB,MAAO,OAAQA,GAAS,aAAcA,GAhF9Bk5C,CAAkBl5C,KACpBi5C,EAAcj4C,EAAGm4C,SAASn5C,IAG5B,IAAIyO,EAAQzN,EAAGyN,MACXtlB,EAAKy5B,EAAKz5B,GACVmZ,EAAQtB,EAAGsB,MAAQ,IAAMnZ,EAE7B,IAAKA,EACH,MAAM,IAAI4nB,MAAM,2BAA6B6R,GAG/C,OAAIz5B,KAAMslB,IAIVA,EAAMtlB,GAAMy5B,EAsClB,SAA0BA,EAAMtgB,EAAO22C,GACrC,IAAIG,EAAe1tD,EAAMtI,OAAOY,OAAO,MAAO,CAACi1D,EAAcz2C,GAASjf,IAAI01D,GAAe,GAAIz2C,GAASjf,IAAI+e,GAAQsgB,EAAKpgB,WACvHA,GAAS7B,IAAI2B,EAAO82C,GAEhBx2B,EAAKsnB,eASX,SAAuB5nC,EAAO+2C,GAC5Bj2D,OAAOkH,KAAK+uD,GAAQ9qC,SAAQ,SAAUlqB,GACpC,IAAIi1D,EAAgBj1D,EAAS8d,MAAM,KAC/Bo3C,EAAaD,EAAcr2B,MAC3Bu2B,EAAc,CAACl3C,GAAO1B,OAAO04C,GAAetoC,KAAK,KACjDyoC,EAAQJ,EAAOh1D,GAAU8d,MAAM,KAC/B2C,EAAa20C,EAAMx2B,MACnBpe,EAAc40C,EAAMzoC,KAAK,KAC7BxO,GAASqrC,MAAM2L,EAAaD,EAAY10C,EAAaC,MAhBrD40C,CAAcp3C,EAAOsgB,EAAKsnB,eAGxBtnB,EAAK/R,aACPrO,GAASoC,SAAStC,EAAOsgB,EAAK/R,aA9C5B8oC,CAAiB/2B,EAAMtgB,EAAO22C,GAE1Bj4C,EAAG2P,UACLnO,GAASmO,SAASiS,EAAKz5B,GAAIy5B,EAAK5gB,YAPzBM,IAYV,CACDre,IAAK,MACLN,MAAO,SAAawF,GAClB,OAAOoX,KAAKkO,MAAMtlB,KAEnB,CACDlF,IAAK,aACLN,MAAO,SAAoBi/B,GACzB,IAAInU,EAAQlO,KAAKkO,MACbtlB,EAAKy5B,EAAKz5B,GACVmZ,EAAQ/B,KAAK+B,MAEbnZ,KAAMslB,UACDA,EAAMtlB,GAGXmZ,GAASnZ,KAAMqZ,GAASF,YACnBE,GAASF,GAAOnZ,GAEnBoX,KAAKoQ,iBACA3O,GAAU7Y,QAMlB4vD,EAzEwB,GAyGjC,IAkLI,GAAW,IAlLa,WAC1B,SAASa,IACP,GAAgBr5C,KAAMq5C,GAEtBr5C,KAAKs5C,YAAc,IAAI,GAAc,GAAmB,YAAY,GACpEt5C,KAAK6C,SAAW,IAAI,GAAc,GAAS,YAC3C7C,KAAKgE,QAAU,IAAI,GAAcnhB,OAAQ,WACzCmd,KAAKmE,OAAS,IAAI,GAAc,GAAO,UACvCnE,KAAKu5C,iBAAmB,CAACv5C,KAAKs5C,YAAat5C,KAAKmE,OAAQnE,KAAK6C,UAuK/D,OApKA,GAAaw2C,EAAU,CAAC,CACtB31D,IAAK,MACLN,MAAO,WACL,IAAK,IAAI6E,EAAOC,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAM4D,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/EL,EAAKK,GAAQF,UAAUE,GAGzB4X,KAAKw5C,MAAM,WAAYzxD,KAExB,CACDrE,IAAK,SACLN,MAAO,WACL,IAAK,IAAIspC,EAAQxkC,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAMqoC,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF5kC,EAAK4kC,GAASzkC,UAAUykC,GAG1B3sB,KAAKw5C,MAAM,aAAczxD,KAE1B,CACDrE,IAAK,iBACLN,MAAO,WACL,IAAK,IAAIq2D,EAAQvxD,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAMo1D,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF3xD,EAAK2xD,GAASxxD,UAAUwxD,GAG1B15C,KAAKw5C,MAAM,WAAYzxD,EAAMiY,KAAKs5C,eAEnC,CACD51D,IAAK,cACLN,MAAO,WACL,IAAK,IAAIu2D,EAAQzxD,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAMs1D,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF7xD,EAAK6xD,GAAS1xD,UAAU0xD,GAG1B55C,KAAKw5C,MAAM,WAAYzxD,EAAMiY,KAAK6C,YAEnC,CACDnf,IAAK,aACLN,MAAO,WACL,IAAK,IAAIy2D,EAAQ3xD,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAMw1D,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF/xD,EAAK+xD,GAAS5xD,UAAU4xD,GAG1B95C,KAAKw5C,MAAM,WAAYzxD,EAAMiY,KAAKgE,WAEnC,CACDtgB,IAAK,YACLN,MAAO,WACL,IAAK,IAAI22D,EAAQ7xD,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAM01D,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFjyD,EAAKiyD,GAAS9xD,UAAU8xD,GAG1Bh6C,KAAKw5C,MAAM,WAAYzxD,EAAMiY,KAAKmE,UAEnC,CACDzgB,IAAK,gBACLN,MAAO,SAAuBwF,GAC5B,OAAOoX,KAAK+e,KAAKn2B,EAAIoX,KAAKs5C,YAAa,gBAExC,CACD51D,IAAK,aACLN,MAAO,SAAoBwF,GACzB,OAAOoX,KAAK+e,KAAKn2B,EAAIoX,KAAK6C,SAAU,aAErC,CACDnf,IAAK,YACLN,MAAO,SAAmBwF,GACxB,OAAOoX,KAAK+e,KAAKn2B,EAAIoX,KAAKgE,QAAS,YAEpC,CACDtgB,IAAK,WACLN,MAAO,SAAkBwF,GACvB,OAAOoX,KAAK+e,KAAKn2B,EAAIoX,KAAKmE,OAAQ,WAEnC,CACDzgB,IAAK,oBACLN,MAAO,WACL,IAAK,IAAI62D,EAAQ/xD,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAM41D,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFnyD,EAAKmyD,GAAShyD,UAAUgyD,GAG1Bl6C,KAAKw5C,MAAM,aAAczxD,EAAMiY,KAAKs5C,eAErC,CACD51D,IAAK,iBACLN,MAAO,WACL,IAAK,IAAI+2D,EAAQjyD,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAM81D,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFryD,EAAKqyD,GAASlyD,UAAUkyD,GAG1Bp6C,KAAKw5C,MAAM,aAAczxD,EAAMiY,KAAK6C,YAErC,CACDnf,IAAK,gBACLN,MAAO,WACL,IAAK,IAAIi3D,EAAQnyD,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAMg2D,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFvyD,EAAKuyD,GAASpyD,UAAUoyD,GAG1Bt6C,KAAKw5C,MAAM,aAAczxD,EAAMiY,KAAKgE,WAErC,CACDtgB,IAAK,eACLN,MAAO,WACL,IAAK,IAAIm3D,EAASryD,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAMk2D,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFzyD,EAAKyyD,GAAUtyD,UAAUsyD,GAG3Bx6C,KAAKw5C,MAAM,aAAczxD,EAAMiY,KAAKmE,UAErC,CACDzgB,IAAK,QACLN,MAAO,SAAeiiC,EAAQt9B,EAAM0yD,GAClC,IAAIh6C,EAAKT,KAET,GAAmBjY,GAAMimB,SAAQ,SAAU0sC,GACzC,IAAIC,EAAMF,GAAiBh6C,EAAGm6C,oBAAoBF,GAE9CD,GAAiBE,EAAIE,UAAUH,IAAQC,IAAQl6C,EAAGuD,SAAW02C,EAAI9xD,GACnE6X,EAAGq6C,MAAMz1B,EAAQs1B,EAAKD,GAEtB9wD,EAAK8wD,GAAK,SAAUr4B,GAClB,IAAI04B,EAAUN,GAAiBh6C,EAAGm6C,oBAAoBv4B,GAEtD5hB,EAAGq6C,MAAMz1B,EAAQ01B,EAAS14B,WAKjC,CACD3+B,IAAK,QACLN,MAAO,SAAeiiC,EAAQ21B,EAAUC,GACtC,IAAIC,EAActvD,EAAYy5B,GAE9B79B,EAASyzD,EAAU,SAAWC,GAAc,GAAID,GAChDD,EAAS31B,GAAQ41B,GACjBzzD,EAASyzD,EAAU,QAAUC,GAAc,GAAID,KAEhD,CACDv3D,IAAK,sBACLN,MAAO,SAA6B2F,GAClC,IAAK,IAAI5G,EAAI,EAAGA,EAAI6d,KAAKu5C,iBAAiB3zD,OAAQzD,IAAK,CACrD,IAAIw4D,EAAM36C,KAAKu5C,iBAAiBp3D,GAEhC,GAAIw4D,EAAIE,UAAU9xD,GAChB,OAAO4xD,EAIX,OAAO36C,KAAKgE,UAEb,CACDtgB,IAAK,OACLN,MAAO,SAAcwF,EAAI6xD,EAAe1xD,GACtC,IAAIs5B,EAAOo4B,EAAcz3D,IAAI4F,GAE7B,QAAaqK,IAATovB,EACF,MAAM,IAAI7R,MAAM,IAAM5nB,EAAK,yBAA2BG,EAAO,KAG/D,OAAOs5B,MAIJg3B,EA/KmB,IAoLxB,GAA6B,WAC/B,SAAS8B,IACP,GAAgBn7C,KAAMm7C,GAEtBn7C,KAAKo7C,MAAQ,GAsGf,OAnGA,GAAaD,EAAe,CAAC,CAC3Bz3D,IAAK,SACLN,MAAO,SAAgBsf,EAAO24C,EAAMtzD,EAAM+oB,GACxC,IAAIrQ,EAAKT,KAEI,eAATq7C,IACF56C,EAAG26C,MAAQ36C,EAAG66C,mBAAmB54C,GAAO,GAExCjC,EAAGkiB,QAAQliB,EAAG26C,MAAO14C,EAAO,YAG9B,IAAI4N,EAAcQ,EAASrQ,EAAG0B,aAAaO,GAAOoO,OAAOA,GAAUrQ,EAAG0B,aAAaO,GAE/EsU,EAASvW,EAAGkiB,QAAQrS,EAAa5N,EAAO24C,EAAMtzD,GAQlD,MANa,YAATszD,IACF56C,EAAGkiB,QAAQrS,EAAa5N,EAAO,QAE/BjC,EAAGkiB,QAAQliB,EAAG26C,MAAO14C,EAAO,cAGvBsU,IAER,CACDtzB,IAAK,UACLN,MAAO,SAAiBktB,EAAa5N,EAAO24C,EAAMtzD,GAChDA,EAAOA,GAAQ,GAEf,IACI4qB,EADAC,EAAa,GAA2BtC,GAG5C,IACE,IAAKsC,EAAW1uB,MAAOyuB,EAASC,EAAWhvB,KAAKyC,MAAO,CACrD,IAAIR,EAAa8sB,EAAOvvB,MACpBm4D,EAAS11D,EAAW01D,OAIxB,IAAyC,IAArC/zD,EAHS+zD,EAAOF,GACP,CAAC34C,EAAO3a,EAAMlC,EAAWmF,SAETuwD,IAAqBxzD,EAAKyzD,WACrD,OAAO,GAGX,MAAO/0D,GACPmsB,EAAWtsB,EAAEG,GACb,QACAmsB,EAAWpsB,IAGb,OAAO,IAER,CACD9C,IAAK,aACLN,MAAO,WACA0F,EAAckX,KAAKuO,UACtBvO,KAAKy7C,UAAYz7C,KAAKuO,OACtBvO,KAAKuO,YAAStb,KAGjB,CACDvP,IAAK,eACLN,MAAO,SAAsBsf,GAC3B,GAAI1C,KAAKuO,OACP,OAAOvO,KAAKuO,OAGd,IAAI+B,EAActQ,KAAKuO,OAASvO,KAAKs7C,mBAAmB54C,GAIxD,OAFA1C,KAAK07C,oBAAoBh5C,GAElB4N,IAER,CACD5sB,IAAK,qBACLN,MAAO,SAA4Bsf,EAAOskB,GACxC,IAAIhB,EAAStjB,GAASA,EAAMsjB,OACxBh7B,EAAUzB,EAAey8B,EAAOh7B,SAAWg7B,EAAOh7B,QAAQgZ,QAAS,IACnEA,EA0BV,SAAoBgiB,GAIlB,IAHA,IAAIhiB,EAAU,GACVja,EAAOlH,OAAOkH,KAAK,GAASia,QAAQkK,OAE/B/rB,EAAI,EAAGA,EAAI4H,EAAKnE,OAAQzD,IAC/B6hB,EAAQ0B,KAAK,GAASi2C,UAAU5xD,EAAK5H,KAKvC,IAFA,IAAI0iB,EAAQmhB,EAAOhiB,SAAW,GAErB43C,EAAM,EAAGA,EAAM/2C,EAAMjf,OAAQg2D,IAAO,CAC3C,IAAIL,EAAS12C,EAAM+2C,IAEc,IAA7B53C,EAAQlZ,QAAQywD,IAClBv3C,EAAQ0B,KAAK61C,GAIjB,OAAOv3C,EA5CW63C,CAAW71B,GACzB,OAAmB,IAAZh7B,GAAsBg8B,EA0DnC,SAA2BtkB,EAAOsB,EAAShZ,EAASg8B,GAIlD,IAHA,IAAIhQ,EAAS,GACTvU,EAAUC,EAAMkE,aAEXzkB,EAAI,EAAGA,EAAI6hB,EAAQpe,OAAQzD,IAAK,CACvC,IAAIo5D,EAASv3C,EAAQ7hB,GAEjB0nB,EAAOiyC,GAAQ9wD,EADVuwD,EAAO3yD,IACgBo+B,GAEnB,OAATnd,GAIJmN,EAAOtR,KAAK,CACV61C,OAAQA,EACRvwD,QAAS+wD,GAAWr5C,EAAMsjB,OAAQu1B,EAAQ1xC,EAAMpH,KAIpD,OAAOuU,EA7EqCglC,CAAkBt5C,EAAOsB,EAAShZ,EAASg8B,GAAhD,KAEpC,CACDtjC,IAAK,sBACLN,MAAO,SAA6Bsf,GAClC,IAAIu5C,EAAsBj8C,KAAKy7C,WAAa,GACxCnrC,EAActQ,KAAKuO,OAEnBq9B,EAAO,SAAcj9C,EAAGC,GAC1B,OAAOD,EAAEmiB,QAAO,SAAUrjB,GACxB,OAAQmB,EAAEstD,MAAK,SAAUxuD,GACvB,OAAOD,EAAE8tD,OAAO3yD,KAAO8E,EAAE6tD,OAAO3yD,UAKtCoX,KAAK2iB,QAAQipB,EAAKqQ,EAAqB3rC,GAAc5N,EAAO,QAE5D1C,KAAK2iB,QAAQipB,EAAKt7B,EAAa2rC,GAAsBv5C,EAAO,aAIzDy4C,EA1GwB,GAkIjC,SAASW,GAAQ9wD,EAASg8B,GACxB,OAAKA,IAAmB,IAAZh8B,GAII,IAAZA,EACK,GAGFA,EAPE,KAgCX,SAAS+wD,GAAW/1B,EAAQu1B,EAAQ1xC,EAAMpH,GACxC,IAAI1Y,EAAOi8B,EAAOm2B,gBAAgBZ,GAC9BjtC,EAAS0X,EAAOoH,gBAAgBvjB,EAAM9f,GAC1C,OAAOi8B,EAAOqH,eAAe/e,EAAQ7L,EAAS,CAAC,IAAK,CAClD6O,YAAY,EACZC,WAAW,EACXF,SAAS,IAIb,SAAS+qC,GAAarzD,EAAMiC,GAC1B,IAAIqxD,EAAkBp6C,GAASM,SAASxZ,IAAS,GAEjD,QADsBiC,EAAQuX,UAAY,IAAIxZ,IAAS,IACjC0a,WAAazY,EAAQyY,WAAa44C,EAAgB54C,WAAa,IA6BvF,SAAS64C,GAAc1zD,EAAI2zD,GACzB,MAAW,MAAP3zD,GAAqB,MAAPA,EACTA,EAGF2zD,EAAapzB,OAdH,SADOoX,EAeqBgc,EAAahc,WAdnB,WAAbA,EACjB,IAGQ,SAAbA,GAAoC,UAAbA,EAClB,SADT,IAUuE33C,EAAGkD,OAAO,GAAGsT,cAftF,IAA0BmhC,EAyD1B,SAASic,GAAYx2B,GACnB,IAAIh7B,EAAUg7B,EAAOh7B,UAAYg7B,EAAOh7B,QAAU,IAClDA,EAAQgZ,QAAUza,EAAeyB,EAAQgZ,QAAS,IAClDhZ,EAAQmZ,OA1CV,SAA0B6hB,EAAQh7B,GAChC,IAAIyxD,EAAgBh7C,GAAUukB,EAAOj9B,OAAS,CAC5Cob,OAAQ,IAENu4C,EAAe1xD,EAAQmZ,QAAU,GACjCw4C,EAAiBP,GAAap2B,EAAOj9B,KAAMiC,GAC3C4xD,EAAW/5D,OAAOY,OAAO,MACzB0gB,EAASthB,OAAOY,OAAO,MA6B3B,OA5BAZ,OAAOkH,KAAK2yD,GAAc1uC,SAAQ,SAAUplB,GAC1C,IAAIi0D,EAAYH,EAAa9zD,GACzBugC,EAAOmzB,GAAc1zD,EAAIi0D,GACzBC,EAjCR,SAAmC3zB,EAAM1lB,GACvC,OAAO0lB,IAAS1lB,EAAY,UAAY,UAgCtBs5C,CAA0B5zB,EAAMwzB,GAC5CK,EAAsBP,EAAct4C,QAAU,GAClDy4C,EAASzzB,GAAQyzB,EAASzzB,IAASvgC,EACnCub,EAAOvb,GAAM0C,EAAQzI,OAAOY,OAAO,MAAO,CAAC,CACzC0lC,KAAMA,GACL0zB,EAAWG,EAAoB7zB,GAAO6zB,EAAoBF,QAE/D92B,EAAO7gB,KAAK5C,SAASyL,SAAQ,SAAUod,GACrC,IAAIriC,EAAOqiC,EAAQriC,MAAQi9B,EAAOj9B,KAC9B0a,EAAY2nB,EAAQ3nB,WAAa24C,GAAarzD,EAAMiC,GAEpDgyD,GADkBv7C,GAAU1Y,IAAS,IACCob,QAAU,GACpDthB,OAAOkH,KAAKizD,GAAqBhvC,SAAQ,SAAUivC,GACjD,IAAI9zB,EA1DV,SAAmCvgC,EAAI6a,GACrC,IAAI0lB,EAAOvgC,EAQX,MANW,YAAPA,EACFugC,EAAO1lB,EACS,YAAP7a,IACTugC,EAAqB,MAAd1lB,EAAoB,IAAM,KAG5B0lB,EAiDQ+zB,CAA0BD,EAAWx5C,GAC5C7a,EAAKwiC,EAAQjC,EAAO,WAAayzB,EAASzzB,IAASA,EACvDhlB,EAAOvb,GAAMub,EAAOvb,IAAO/F,OAAOY,OAAO,MACzC6H,EAAQ6Y,EAAOvb,GAAK,CAAC,CACnBugC,KAAMA,GACLuzB,EAAa9zD,GAAKo0D,EAAoBC,WAG7Cp6D,OAAOkH,KAAKoa,GAAQ6J,SAAQ,SAAUtqB,GACpC,IAAIwgB,EAAQC,EAAOzgB,GACnB4H,EAAQ4Y,EAAO,CAACjC,GAASkC,OAAOD,EAAMnb,MAAOkZ,GAASiC,WAEjDC,EAMUg5C,CAAiBn3B,EAAQh7B,GAG5C,SAASoyD,GAASj4C,GAIhB,OAHAA,EAAOA,GAAQ,IACV5C,SAAW4C,EAAK5C,UAAY,GACjC4C,EAAKwoB,OAASxoB,EAAKwoB,QAAU,GACtBxoB,EAUT,IAAIk4C,GAAW,IAAI/iC,IACfgjC,GAAa,IAAInvC,IAErB,SAASovC,GAAW7iC,EAAU8iC,GAC5B,IAAIzzD,EAAOszD,GAASr6D,IAAI03B,GAQxB,OANK3wB,IACHA,EAAOyzD,IACPH,GAASj9C,IAAIsa,EAAU3wB,GACvBuzD,GAAWlvC,IAAIrkB,IAGVA,EAGT,IAAI,GAAa,SAAoBqW,EAAKnb,EAAKvB,GAC7C,IAAImmB,EAAOne,EAAiBzG,EAAKvB,QAEpBuP,IAAT4W,GACFzJ,EAAIgO,IAAIvE,IAIR,GAAsB,WACxB,SAAS4zC,EAAOz3B,GACd,GAAgBhmB,KAAMy9C,GAEtBz9C,KAAK09C,QAlCT,SAAoB13B,GAIlB,OAHAA,EAASA,GAAU,IACZ7gB,KAAOi4C,GAASp3B,EAAO7gB,MAC9Bq3C,GAAYx2B,GACLA,EA8BU23B,CAAW33B,GAC1BhmB,KAAK49C,YAAc,IAAItjC,IACvBta,KAAK69C,eAAiB,IAAIvjC,IAkM5B,OA/LA,GAAamjC,EAAQ,CAAC,CACpB/5D,IAAK,OACLV,IAAK,WACH,OAAOgd,KAAK09C,QAAQ30D,MAEtBqX,IAAK,SAAarX,GAChBiX,KAAK09C,QAAQ30D,KAAOA,IAErB,CACDrF,IAAK,OACLV,IAAK,WACH,OAAOgd,KAAK09C,QAAQv4C,MAEtB/E,IAAK,SAAa+E,GAChBnF,KAAK09C,QAAQv4C,KAAOi4C,GAASj4C,KAE9B,CACDzhB,IAAK,UACLV,IAAK,WACH,OAAOgd,KAAK09C,QAAQ1yD,SAEtBoV,IAAK,SAAapV,GAChBgV,KAAK09C,QAAQ1yD,QAAUA,IAExB,CACDtH,IAAK,UACLV,IAAK,WACH,OAAOgd,KAAK09C,QAAQ15C,UAErB,CACDtgB,IAAK,SACLN,MAAO,WACL,IAAI4iC,EAAShmB,KAAK09C,QAClB19C,KAAK89C,aACLtB,GAAYx2B,KAEb,CACDtiC,IAAK,aACLN,MAAO,WACL4c,KAAK49C,YAAYG,QAEjB/9C,KAAK69C,eAAeE,UAErB,CACDr6D,IAAK,mBACLN,MAAO,SAA0B46D,GAC/B,OAAOT,GAAWS,GAAa,WAC7B,MAAO,CAAC,CAAC,YAAY39C,OAAO29C,GAAc,UAG7C,CACDt6D,IAAK,4BACLN,MAAO,SAAmC46D,EAAattB,GACrD,OAAO6sB,GAAW,GAAGl9C,OAAO29C,EAAa,gBAAgB39C,OAAOqwB,IAAa,WAC3E,MAAO,CAAC,CAAC,YAAYrwB,OAAO29C,EAAa,iBAAiB39C,OAAOqwB,GAAa,eAAerwB,OAAOqwB,IAAc,CAAC,YAAYrwB,OAAO29C,GAAc,UAGvJ,CACDt6D,IAAK,0BACLN,MAAO,SAAiC46D,EAAa5tB,GACnD,OAAOmtB,GAAW,GAAGl9C,OAAO29C,EAAa,KAAK39C,OAAO+vB,IAAc,WACjE,MAAO,CAAC,CAAC,YAAY/vB,OAAO29C,EAAa,cAAc39C,OAAO+vB,GAAc,YAAY/vB,OAAO29C,GAAc,YAAY39C,OAAO+vB,GAAc,UAGjJ,CACD1sC,IAAK,kBACLN,MAAO,SAAyBm4D,GAC9B,IAAI3yD,EAAK2yD,EAAO3yD,GACZG,EAAOiX,KAAKjX,KAChB,OAAOw0D,GAAW,GAAGl9C,OAAOtX,EAAM,YAAYsX,OAAOzX,IAAK,WACxD,MAAO,CAAC,CAAC,WAAWyX,OAAOzX,IAAKyX,OAAO,GAAmBk7C,EAAO0C,wBAA0B,WAG9F,CACDv6D,IAAK,gBACLN,MAAO,SAAuB86D,EAAWC,GACvC,IAAIP,EAAc59C,KAAK49C,YAEnB/3C,EAAQ+3C,EAAY56D,IAAIk7D,GAQ5B,OANKr4C,IAASs4C,IACZt4C,EAAQ,IAAIyU,IAEZsjC,EAAYx9C,IAAI89C,EAAWr4C,IAGtBA,IAER,CACDniB,IAAK,kBACLN,MAAO,SAAyB86D,EAAWE,EAAUD,GACnD,IAAInzD,EAAUgV,KAAKhV,QACfjC,EAAOiX,KAAKjX,KAEZ8c,EAAQ7F,KAAKq+C,cAAcH,EAAWC,GAEtCn0B,EAASnkB,EAAM7iB,IAAIo7D,GAEvB,GAAIp0B,EACF,OAAOA,EAGT,IAAI1b,EAAS,IAAIH,IACjBiwC,EAASpwC,SAAQ,SAAUjkB,GACrBm0D,IACF5vC,EAAOF,IAAI8vC,GACXn0D,EAAKikB,SAAQ,SAAUtqB,GACrB,OAAO,GAAW4qB,EAAQ4vC,EAAWx6D,OAIzCqG,EAAKikB,SAAQ,SAAUtqB,GACrB,OAAO,GAAW4qB,EAAQtjB,EAAStH,MAErCqG,EAAKikB,SAAQ,SAAUtqB,GACrB,OAAO,GAAW4qB,EAAQ7M,GAAU1Y,IAAS,GAAIrF,MAEnDqG,EAAKikB,SAAQ,SAAUtqB,GACrB,OAAO,GAAW4qB,EAAQrM,GAAUve,MAEtCqG,EAAKikB,SAAQ,SAAUtqB,GACrB,OAAO,GAAW4qB,EAAQ,GAAa5qB,SAG3C,IAAIoK,EAAQzJ,MAAMM,KAAK2pB,GAMvB,OAJIgvC,GAAWjuC,IAAI+uC,IACjBv4C,EAAMzF,IAAIg+C,EAAUtwD,GAGfA,IAER,CACDpK,IAAK,oBACLN,MAAO,WACL,IAAI4H,EAAUgV,KAAKhV,QACfjC,EAAOiX,KAAKjX,KAChB,MAAO,CAACiC,EAASyW,GAAU1Y,IAAS,GAAIkZ,GAASM,SAASxZ,IAAS,GAAI,CACrEA,KAAMA,GACLkZ,GAAU,MAEd,CACDve,IAAK,sBACLN,MAAO,SAA6BkrB,EAAQiiB,EAAO9tB,GACjD,IAAI+L,EAAWtmB,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,CAAC,IAChF8uB,EAAS,CACX0P,SAAS,GAGP43B,EAAeC,GAAYv+C,KAAK69C,eAAgBvvC,EAAQE,GACxDyC,EAAWqtC,EAAartC,SACxButC,EAAcF,EAAaE,YAE3BxzD,EAAUimB,EAEd,GAAIwtC,GAAYxtC,EAAUsf,GAAQ,CAChCvZ,EAAO0P,SAAU,EACjBjkB,EAAUxW,EAAWwW,GAAWA,IAAYA,EAC5C,IAAIi8C,EAAc1+C,KAAKqtB,eAAe/e,EAAQ7L,EAAS+7C,GACvDxzD,EAAU0kB,GAAeuB,EAAUxO,EAASi8C,GAG9C,IACI7rC,EADAC,EAAa,GAA2Byd,GAG5C,IACE,IAAKzd,EAAW5uB,MAAO2uB,EAASC,EAAWlvB,KAAKyC,MAAO,CACrD,IAAI+lB,EAAOyG,EAAOzvB,MAClB4zB,EAAO5K,GAAQphB,EAAQohB,IAEzB,MAAO3lB,GACPqsB,EAAWxsB,EAAEG,GACb,QACAqsB,EAAWtsB,IAGb,OAAOwwB,IAER,CACDtzB,IAAK,iBACLN,MAAO,SAAwBkrB,EAAQ7L,GACrC,IAAI+L,EAAWtmB,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,CAAC,IAChF2nB,EAAqB3nB,UAAUtC,OAAS,EAAIsC,UAAU,QAAK+K,EAE3D0rD,EAAgBJ,GAAYv+C,KAAK69C,eAAgBvvC,EAAQE,GACzDyC,EAAW0tC,EAAc1tC,SAE7B,OAAOhoB,EAASwZ,GAAWiN,GAAeuB,EAAUxO,OAASxP,EAAW4c,GAAsBoB,MAI3FwsC,EAxMiB,GA2M1B,SAASc,GAAYK,EAAetwC,EAAQE,GAC1C,IAAI3I,EAAQ+4C,EAAc57D,IAAIsrB,GAEzBzI,IACHA,EAAQ,IAAIyU,IACZskC,EAAcx+C,IAAIkO,EAAQzI,IAG5B,IAAI6U,EAAWlM,EAASiC,OACpBuZ,EAASnkB,EAAM7iB,IAAI03B,GAElBsP,IAGHA,EAAS,CACP/Y,SAHa5C,GAAgBC,EAAQE,GAIrCgwC,YAAahwC,EAASsC,QAAO,SAAU7sB,GACrC,OAAQA,EAAEmb,cAAcmQ,SAAS,aAGrC1J,EAAMzF,IAAIsa,EAAUsP,IAGtB,OAAOA,EAGT,SAASy0B,GAAY9uC,EAAO4gB,GAC1B,IAKIxd,EALA8rC,EAAgB18C,GAAawN,GAC7BY,EAAesuC,EAActuC,aAC7BM,EAAcguC,EAAchuC,YAE5BmC,EAAa,GAA2Bud,GAG5C,IACE,IAAKvd,EAAW9uB,MAAO6uB,EAASC,EAAWpvB,KAAKyC,MAAO,CACrD,IAAI+lB,EAAO2G,EAAO3vB,MAElB,GAAImtB,EAAanE,IAASngB,EAAW0jB,EAAMvD,KAAUyE,EAAYzE,IAAS9nB,EAAQqrB,EAAMvD,IACtF,OAAO,GAGX,MAAO3lB,GACPusB,EAAW1sB,EAAEG,GACb,QACAusB,EAAWxsB,IAGb,OAAO,EAGT,IACIs4D,GAAkB,CAAC,MAAO,SAAU,OAAQ,QAAS,aAEzD,SAASC,GAAqBxe,EAAUpX,GACtC,MAAoB,QAAboX,GAAmC,WAAbA,IAAgE,IAAvCue,GAAgBh0D,QAAQy1C,IAA6B,MAATpX,EAGpG,SAAS61B,GAAcC,EAAIC,GACzB,OAAO,SAAUvwD,EAAGC,GAClB,OAAOD,EAAEswD,KAAQrwD,EAAEqwD,GAAMtwD,EAAEuwD,GAAMtwD,EAAEswD,GAAMvwD,EAAEswD,GAAMrwD,EAAEqwD,IAIvD,SAASE,GAAqB18C,GAC5B,IAAIC,EAAQD,EAAQC,MAChB08C,EAAmB18C,EAAM1X,QAAQoX,UACrCM,EAAMgvC,cAAc,eACpBlqD,EAAS43D,GAAoBA,EAAiBC,WAAY,CAAC58C,GAAUC,GAGvE,SAAS48C,GAAoB78C,GAC3B,IAAIC,EAAQD,EAAQC,MAChB08C,EAAmB18C,EAAM1X,QAAQoX,UACrC5a,EAAS43D,GAAoBA,EAAiBG,WAAY,CAAC98C,GAAUC,GAGvE,SAAS88C,KACP,MAAyB,qBAAXj4D,QAA8C,qBAAb6/C,SAGjD,SAASqY,GAAUp9B,GAWjB,OAVIm9B,MAAoC,kBAATn9B,EAC7BA,EAAO+kB,SAASsY,eAAer9B,GACtBA,GAAQA,EAAKz8B,SACtBy8B,EAAOA,EAAK,IAGVA,GAAQA,EAAK1b,SACf0b,EAAOA,EAAK1b,QAGP0b,EAGT,IAAIs9B,GAAY,GAEZC,GAAW,SAAkBl8D,GAC/B,IAAIijB,EAAS84C,GAAU/7D,GACvB,OAAOb,OAAOmf,OAAO29C,IAAW7uC,QAAO,SAAUtuB,GAC/C,OAAOA,EAAEmkB,SAAWA,KACnB+b,OAGD,GAAqB,WACvB,SAASm9B,EAAMx9B,EAAM2D,GACnB,IAAI85B,EAAS9/C,KAEb,GAAgBA,KAAM6/C,GAEtB,IAAIp/C,EAAKT,KACTA,KAAKgmB,OAASA,EAAS,IAAI,GAAOA,GAClC,IAAI+5B,EAAgBN,GAAUp9B,GAC1B29B,EAAgBJ,GAASG,GAE7B,GAAIC,EACF,MAAM,IAAIxvC,MAAM,4CAA+CwvC,EAAcp3D,GAA7D,wDAGlB,IAAIoC,EAAUg7B,EAAOqH,eAAerH,EAAOi6B,oBAAqBx/C,EAAGmG,cACnE5G,KAAK2C,SAAWlC,EAAGy/C,oBAAoBH,EAAe/5B,GACtD,ID/9Ncr+B,EAAI48B,EAChB47B,EC89NE19C,EAAUhC,EAAGkC,SAASy9C,eAAeL,EAAe/0D,EAAQstB,aAC5D3R,EAASlE,GAAWA,EAAQkE,OAC5BI,EAASJ,GAAUA,EAAOI,OAC1BtB,EAAQkB,GAAUA,EAAOlB,MAC7BzF,KAAKpX,GAAKC,IACVmX,KAAKsD,IAAMb,EACXzC,KAAK2G,OAASA,EACd3G,KAAKyF,MAAQA,EACbzF,KAAK+G,OAASA,EACd/G,KAAKqgD,SAAWr1D,EAChBgV,KAAKsgD,aAAetgD,KAAKsY,YACzBtY,KAAKkkC,QAAU,GACflkC,KAAKugD,UAAY,GACjBvgD,KAAKgpB,aAAU/1B,EACf+M,KAAKyjC,MAAQ,GACbzjC,KAAKwG,6BAA0BvT,EAC/B+M,KAAK2vB,eAAY18B,EACjB+M,KAAKuiB,QAAU,GACfviB,KAAKwgD,gBAAavtD,EAClB+M,KAAKygD,WAAa,GAClBzgD,KAAK0gD,0BAAuBztD,EAC5B+M,KAAK2gD,gBAAkB,GACvB3gD,KAAKmE,OAAS,GACdnE,KAAKkE,WAAQjR,EACb+M,KAAK4gD,SAAW,IAAI,GACpB5gD,KAAKopC,SAAW,GAChBppC,KAAK6gD,eAAiB,GACtB7gD,KAAK8gD,UAAW,EAChB9gD,KAAK6wB,yBAAsB59B,EAC3B+M,KAAK8qB,cAAW73B,EAChB+M,KAAK+gD,WD7/NSp5D,EC6/NY,WACxB,OAAOm4D,EAAO34B,OAAO,WD9/NL5C,EC+/Nfv5B,EAAQg2D,aAAe,ED7/NrB,WAQL,OAPIz8B,GACF08B,aAAad,GACbA,EAAUe,WAAWv5D,EAAI48B,IAEzB58B,IAGK48B,ICs/NPo7B,GAAUl/C,EAAG7X,IAAM6X,EAEdgC,GAAYkE,GAKjBua,GAASigC,OAAO1gD,EAAI,WAAY0+C,IAChCj+B,GAASigC,OAAO1gD,EAAI,WAAY6+C,IAEhC7+C,EAAG2gD,cAEC3gD,EAAGqgD,UACLrgD,EAAG0mB,UAVHxa,QAAQ00C,MAAM,qEAi/BlB,OAn+BA,GAAaxB,EAAO,CAAC,CACnBn8D,IAAK,cACLV,IAAK,WACH,IAAIs+D,EAAiBthD,KAAKhV,QACtBstB,EAAcgpC,EAAehpC,YAC7B1U,EAAsB09C,EAAe19C,oBACrC6B,EAAQzF,KAAKyF,MACbsB,EAAS/G,KAAK+G,OACdu5C,EAAetgD,KAAKsgD,aAExB,OAAKx3D,EAAcwvB,GAIf1U,GAAuB08C,EAClBA,EAGFv5C,EAAStB,EAAQsB,EAAS,KAPxBuR,IASV,CACD50B,IAAK,OACLV,IAAK,WACH,OAAOgd,KAAKgmB,OAAO7gB,MAErB/E,IAAK,SAAa+E,GAChBnF,KAAKgmB,OAAO7gB,KAAOA,IAEpB,CACDzhB,IAAK,UACLV,IAAK,WACH,OAAOgd,KAAKqgD,UAEdjgD,IAAK,SAAapV,GAChBgV,KAAKgmB,OAAOh7B,QAAUA,IAEvB,CACDtH,IAAK,cACLN,MAAO,WACL,IAAIqd,EAAKT,KAWT,OAVAS,EAAGixC,cAAc,cAEbjxC,EAAGzV,QAAQiZ,WACbxD,EAAGilB,SAEHzM,GAAYxY,EAAIA,EAAGzV,QAAQwX,kBAG7B/B,EAAG8gD,aACH9gD,EAAGixC,cAAc,aACVjxC,IAER,CACD/c,IAAK,sBACLN,MAAO,SAA6BujB,EAAQqf,GAC1C,OAAIA,EAAOrjB,SACF,IAAIqjB,EAAOrjB,UACR68C,MAA+C,qBAApBgC,iBAAmC76C,aAAkB66C,gBACnF,IAAI5b,GAGN,IAAI,KAEZ,CACDliD,IAAK,QACLN,MAAO,WAEL,OADAsjB,GAAY1G,KAAK2G,OAAQ3G,KAAKsD,KACvBtD,OAER,CACDtc,IAAK,OACLN,MAAO,WAEL,OADA89B,GAASic,KAAKn9B,MACPA,OAER,CACDtc,IAAK,SACLN,MAAO,SAAgBqiB,EAAOsB,GACvBma,GAASkB,QAAQpiB,MAGpBA,KAAKyhD,kBAAoB,CACvBh8C,MAAOA,EACPsB,OAAQA,GAJV/G,KAAK0hD,QAAQj8C,EAAOsB,KAQvB,CACDrjB,IAAK,UACLN,MAAO,SAAiBqiB,EAAOsB,GAC7B,IAAItG,EAAKT,KACLhV,EAAUyV,EAAGzV,QACb2b,EAASlG,EAAGkG,OACZ2R,EAActtB,EAAQ4Y,qBAAuBnD,EAAG6X,YAChDqpC,EAAUlhD,EAAGkC,SAASi/C,eAAej7C,EAAQlB,EAAOsB,EAAQuR,GAC5DupC,EAAW72D,EAAQwX,kBAAoB/B,EAAGkC,SAASC,sBACvDnC,EAAGgF,MAAQk8C,EAAQl8C,MACnBhF,EAAGsG,OAAS46C,EAAQ56C,OACpBtG,EAAG6/C,aAAe7/C,EAAG6X,YAEhBW,GAAYxY,EAAIohD,GAAU,KAI/BphD,EAAGixC,cAAc,SAAU,CACzBzuC,KAAM0+C,IAERn6D,EAASwD,EAAQ82D,SAAU,CAACrhD,EAAIkhD,GAAUlhD,GAEtCA,EAAGqgD,UACDrgD,EAAGsgD,aACLtgD,EAAGshD,YAIR,CACDr+D,IAAK,sBACLN,MAAO,WAGLwG,EAFcoW,KAAKhV,QACSmZ,QAAU,IAClB,SAAU69C,EAAa1J,GACzC0J,EAAYp5D,GAAK0vD,OAGpB,CACD50D,IAAK,sBACLN,MAAO,WACL,IAAIqd,EAAKT,KACLhV,EAAUyV,EAAGzV,QACbi3D,EAAYj3D,EAAQmZ,OACpBA,EAAS1D,EAAG0D,OACZ+9C,EAAUr/D,OAAOkH,KAAKoa,GAAQgf,QAAO,SAAUl+B,EAAK2D,GAEtD,OADA3D,EAAI2D,IAAM,EACH3D,IACN,IACCipB,EAAQ,GAER+zC,IACF/zC,EAAQA,EAAM7N,OAAOxd,OAAOkH,KAAKk4D,GAAWv3D,KAAI,SAAU9B,GACxD,IAAI2zD,EAAe0F,EAAUr5D,GACzBugC,EAAOmzB,GAAc1zD,EAAI2zD,GACzB4F,EAAoB,MAATh5B,EACX2K,EAAwB,MAAT3K,EACnB,MAAO,CACLn+B,QAASuxD,EACT6F,UAAWD,EAAW,YAAcruB,EAAe,SAAW,OAC9DuuB,MAAOF,EAAW,eAAiBruB,EAAe,WAAa,eAKrElqC,EAAKskB,GAAO,SAAUmU,GACpB,IAAIk6B,EAAel6B,EAAKr3B,QACpBpC,EAAK2zD,EAAa3zD,GAClBugC,EAAOmzB,GAAc1zD,EAAI2zD,GACzB+F,EAAY/4D,EAAegzD,EAAaxzD,KAAMs5B,EAAKggC,YAEzBpvD,IAA1BspD,EAAahc,UAA0Bwe,GAAqBxC,EAAahc,SAAUpX,KAAU41B,GAAqB18B,EAAK+/B,aACzH7F,EAAahc,SAAWle,EAAK+/B,WAG/BF,EAAQt5D,IAAM,EACd,IAAIsb,EAAQ,KAERtb,KAAMub,GAAUA,EAAOvb,GAAIG,OAASu5D,EACtCp+C,EAAQC,EAAOvb,IAGfsb,EAAQ,IADS,GAASq+C,SAASD,GAC3B,CAAe,CACrB15D,GAAIA,EACJG,KAAMu5D,EACNh/C,IAAK7C,EAAG6C,IACRZ,MAAOjC,IAET0D,EAAOD,EAAMtb,IAAMsb,GAGrBA,EAAMs+C,KAAKjG,EAAcvxD,MAE3BpB,EAAKs4D,GAAS,SAAUO,EAAY75D,GAC7B65D,UACIt+C,EAAOvb,MAGlBgB,EAAKua,GAAQ,SAAUD,GACrB+/B,GAAkBxjC,EAAIyD,EAAOA,EAAMlZ,SACnCi5C,GAAexjC,EAAIyD,QAGtB,CACDxgB,IAAK,kBACLN,MAAO,WACL,IAAIqd,EAAKT,KACLynB,EAAWhnB,EAAG8/C,UACdlvB,EAAU5wB,EAAG0E,KAAK5C,SAAS3c,OAC3BwrC,EAAU3J,EAAS7hC,OAKvB,GAJA6hC,EAASuK,MAAK,SAAUrjC,EAAGC,GACzB,OAAOD,EAAEpE,MAAQqE,EAAErE,SAGjB6mC,EAAUC,EAAS,CACrB,IAAK,IAAIlvC,EAAIkvC,EAASlvC,EAAIivC,IAAWjvC,EACnCse,EAAGiiD,oBAAoBvgE,GAGzBslC,EAASphB,OAAOgrB,EAASD,EAAUC,GAGrC5wB,EAAGkgD,gBAAkBl5B,EAASvgC,MAAM,GAAG8qC,KAAKgtB,GAAc,QAAS,YAEpE,CACDt7D,IAAK,8BACLN,MAAO,WACL,IAAIqd,EAAKT,KACLynB,EAAWhnB,EAAG8/C,UACdh+C,EAAW9B,EAAG0E,KAAK5C,SAEnBklB,EAAS7hC,OAAS2c,EAAS3c,eACtB6a,EAAGuoB,QAGZvB,EAASzZ,SAAQ,SAAUia,EAAM19B,GAGjB,IAFVgY,EAASuO,QAAO,SAAUrjB,GAC5B,OAAOA,IAAMw6B,EAAK6T,YACjBl2C,QACD6a,EAAGiiD,oBAAoBn4D,QAI5B,CACD7G,IAAK,2BACLN,MAAO,WACL,IAGIjB,EAAGgI,EAHHsW,EAAKT,KACL2iD,EAAiB,GACjBpgD,EAAW9B,EAAG0E,KAAK5C,SAKvB,IAFA9B,EAAGmiD,8BAEEzgE,EAAI,EAAGgI,EAAOoY,EAAS3c,OAAQzD,EAAIgI,EAAMhI,IAAK,CACjD,IAAIipC,EAAU7oB,EAASpgB,GACnB8lC,EAAOxnB,EAAG4rB,eAAelqC,GACzB4G,EAAOqiC,EAAQriC,MAAQ0X,EAAGulB,OAAOj9B,KAerC,GAbIk/B,EAAKl/B,MAAQk/B,EAAKl/B,OAASA,IAC7B0X,EAAGiiD,oBAAoBvgE,GAEvB8lC,EAAOxnB,EAAG4rB,eAAelqC,IAG3B8lC,EAAKl/B,KAAOA,EACZk/B,EAAKxkB,UAAY2nB,EAAQ3nB,WAAa24C,GAAarzD,EAAM0X,EAAGzV,SAC5Di9B,EAAK46B,MAAQz3B,EAAQy3B,OAAS,EAC9B56B,EAAK19B,MAAQpI,EACb8lC,EAAKoH,MAAQ,GAAKjE,EAAQiE,MAC1BpH,EAAKpC,QAAUplB,EAAG03B,iBAAiBh2C,GAE/B8lC,EAAKY,WACPZ,EAAKY,WAAWi6B,YAAY3gE,GAC5B8lC,EAAKY,WAAWoC,iBACX,CACL,IAAI83B,EAAkB,GAASC,cAAcj6D,GACzCk6D,EAAwBhhD,GAASM,SAASxZ,GAC1C8jC,EAAqBo2B,EAAsBp2B,mBAC3CsD,EAAkB8yB,EAAsB9yB,gBAC5CttC,OAAO6c,OAAOqjD,EAAgBh/D,UAAW,CACvCosC,gBAAiB,GAAS+yB,WAAW/yB,GACrCtD,mBAAoBA,GAAsB,GAASq2B,WAAWr2B,KAEhE5E,EAAKY,WAAa,IAAIk6B,EAAgBtiD,EAAIte,GAC1CwgE,EAAej9C,KAAKuiB,EAAKY,aAM7B,OAFApoB,EAAG0iD,kBAEIR,IAER,CACDj/D,IAAK,iBACLN,MAAO,WACL,IAAIqd,EAAKT,KACTpW,EAAK6W,EAAG0E,KAAK5C,UAAU,SAAU6oB,EAAS9gC,GACxCmW,EAAG4rB,eAAe/hC,GAAcu+B,WAAW8K,UAC1ClzB,KAEJ,CACD/c,IAAK,QACLN,MAAO,WACL4c,KAAKojD,iBAELpjD,KAAK0xC,cAAc,WAEpB,CACDhuD,IAAK,SACLN,MAAO,SAAgBE,GACrB,IAAImd,EAAKT,KACLgmB,EAASvlB,EAAGulB,OAChBA,EAAOmB,SACP1mB,EAAG4/C,SAAWr6B,EAAOqH,eAAerH,EAAOi6B,oBAAqBx/C,EAAGmG,cACnEhd,EAAK6W,EAAG0D,QAAQ,SAAUD,GACxB+/B,GAAkBxjC,EAAIyD,MAExB,IAAIm/C,EAAgB5iD,EAAGowB,qBAAuBpwB,EAAGzV,QAAQoX,UAazD,GAZA3B,EAAG6iD,sBACH7iD,EAAG8iD,sBD9jOO,SAAmB50D,EAAGC,GACpC,GAAID,EAAEsU,OAASrU,EAAEqU,KACf,OAAO,EAGT,IACIqjB,EADAC,EAAYtgC,EAA2B0I,GAG3C,IACE,IAAK43B,EAAUriC,MAAOoiC,EAAQC,EAAU3iC,KAAKyC,MAAO,CAClD,IAAIg8B,EAAOiE,EAAMljC,MAEjB,IAAKwL,EAAEygB,IAAIgT,GACT,OAAO,GAGX,MAAO57B,GACP8/B,EAAUjgC,EAAEG,GACZ,QACA8/B,EAAU//B,IAGZ,OAAO,EC4iOEg9D,CAHgB,IAAIr1C,IAAItrB,OAAOkH,KAAK0W,EAAGggD,aAC5B,IAAItyC,IAAI1N,EAAGzV,QAAQ8X,YAEY9C,KAAK0gD,uBAAyBjgD,EAAGzV,QAAQiZ,aACtFxD,EAAGgjD,eACHhjD,EAAG8gD,cAGL9gD,EAAGmgD,SAAS8C,cAKL,IAHHjjD,EAAGixC,cAAc,eAAgB,CACnCpuD,KAAMA,EACNk4D,YAAY,IAFd,CAOA,IAAImH,EAAiBliD,EAAGkjD,2BACxBljD,EAAGixC,cAAc,wBAGjB,IAFA,IAAIrN,EAAa,EAERliD,EAAI,EAAGgI,EAAOsW,EAAG0E,KAAK5C,SAAS3c,OAAQzD,EAAIgI,EAAMhI,IAAK,CAC7D,IACI0mC,EADqBpoB,EAAG4rB,eAAelqC,GACP0mC,WAEhC8K,GAAS0vB,IAAyD,IAAxCV,EAAe73D,QAAQ+9B,GACrDA,EAAW+6B,sBAAsBjwB,GACjC0Q,EAAal4C,KAAK6B,KAAK66B,EAAW4G,iBAAkB4U,GAGtD5jC,EAAGqgC,YAAcuD,EAEjB5jC,EAAGojD,cAAcxf,GAEZgf,GACHz5D,EAAK+4D,GAAgB,SAAU95B,GAC7BA,EAAW8K,WAIflzB,EAAGqjD,gBAAgBxgE,GAEnBmd,EAAGixC,cAAc,cAAe,CAC9BpuD,KAAMA,IAGRmd,EAAGyjC,QAAQlS,KAAKgtB,GAAc,IAAK,SAE/Bv+C,EAAG+/C,YACL//C,EAAGsjD,cAActjD,EAAG+/C,YAAY,GAGlC//C,EAAGshD,YAEJ,CACDr+D,IAAK,gBACLN,MAAO,SAAuBihD,GAC5B,IAAI5jC,EAAKT,KAET,IAEO,IAFHS,EAAGixC,cAAc,eAAgB,CACnC8J,YAAY,IADd,CAMAvX,GAAexjC,EAAIA,EAAGgF,MAAOhF,EAAGsG,OAAQs9B,GACxC,IAAI97B,EAAO9H,EAAGkvB,UACVq0B,EAASz7C,EAAK9C,OAAS,GAAK8C,EAAKxB,QAAU,EAC/CtG,EAAGyjC,QAAU,GACbt6C,EAAK6W,EAAGgjC,OAAO,SAAU7rB,GACvB,IAAIqsC,EAEAD,GAA2B,cAAjBpsC,EAAI2oB,WAId3oB,EAAIuO,WACNvO,EAAIuO,aAGL89B,EAAcxjD,EAAGyjC,SAASx+B,KAAKrd,MAAM47D,EAAa,GAAmBrsC,EAAIssB,eACzEzjC,GAEHA,EAAGyjC,QAAQl2B,SAAQ,SAAUqU,EAAM93B,GACjC83B,EAAK6hC,KAAO35D,KAGdkW,EAAGixC,cAAc,kBAElB,CACDhuD,IAAK,kBACLN,MAAO,SAAyBE,GAC9B,IAAImd,EAAKT,KACL/T,EAA6B,oBAAT3I,EAExB,IAGO,IAHHmd,EAAGixC,cAAc,uBAAwB,CAC3CpuD,KAAMA,EACNk4D,YAAY,IAFd,CAOA,IAAK,IAAIr5D,EAAI,EAAGgI,EAAOsW,EAAG0E,KAAK5C,SAAS3c,OAAQzD,EAAIgI,IAAQhI,EAC1Dse,EAAG0jD,eAAehiE,EAAG8J,EAAa3I,EAAK,CACrCgH,aAAcnI,IACXmB,GAGPmd,EAAGixC,cAAc,sBAAuB,CACtCpuD,KAAMA,OAGT,CACDI,IAAK,iBACLN,MAAO,SAAwBmH,EAAOjH,GACpC,IAAImd,EAAKT,KACLioB,EAAOxnB,EAAG4rB,eAAe9hC,GACzBxC,EAAO,CACTkgC,KAAMA,EACN19B,MAAOA,EACPjH,KAAMA,EACNk4D,YAAY,IAGwC,IAAlD/6C,EAAGixC,cAAc,sBAAuB3pD,KAI5CkgC,EAAKY,WAAW9G,QAAQz+B,GAExByE,EAAKyzD,YAAa,EAClB/6C,EAAGixC,cAAc,qBAAsB3pD,MAExC,CACDrE,IAAK,SACLN,MAAO,WACL,IAAIqd,EAAKT,MAIF,IAFHS,EAAGixC,cAAc,eAAgB,CACnC8J,YAAY,MAKVt6B,GAAS7R,IAAI5O,GACXA,EAAGqgD,WAAa5/B,GAASkB,QAAQ3hB,IACnCygB,GAASz4B,MAAMgY,IAGjBA,EAAG6hB,OACH68B,GAAqB,CACnBz8C,MAAOjC,QAIZ,CACD/c,IAAK,OACLN,MAAO,WACL,IACIjB,EADAse,EAAKT,KAGT,GAAIS,EAAGghD,kBAAmB,CACxB,IAAI2C,EAAwB3jD,EAAGghD,kBAC3Bh8C,EAAQ2+C,EAAsB3+C,MAC9BsB,EAASq9C,EAAsBr9C,OAEnCtG,EAAGihD,QAAQj8C,EAAOsB,GAElBtG,EAAGghD,kBAAoB,KAKzB,GAFAhhD,EAAGs9C,UAECt9C,EAAGgF,OAAS,GAAKhF,EAAGsG,QAAU,KAM3B,IAFHtG,EAAGixC,cAAc,aAAc,CACjC8J,YAAY,IADd,CAMA,IAAI6I,EAAS5jD,EAAGyjC,QAEhB,IAAK/hD,EAAI,EAAGA,EAAIkiE,EAAOz+D,QAAUy+D,EAAOliE,GAAGgiD,GAAK,IAAKhiD,EACnDkiE,EAAOliE,GAAGmgC,KAAK7hB,EAAGkvB,WAKpB,IAFAlvB,EAAG6jD,gBAEIniE,EAAIkiE,EAAOz+D,SAAUzD,EAC1BkiE,EAAOliE,GAAGmgC,KAAK7hB,EAAGkvB,WAGpBlvB,EAAGixC,cAAc,gBAElB,CACDhuD,IAAK,yBACLN,MAAO,SAAgCokC,GACrC,IAGIrlC,EAAGgI,EAFHs9B,EADKznB,KACS2gD,gBACd3pC,EAAS,GAGb,IAAK70B,EAAI,EAAGgI,EAAOs9B,EAAS7hC,OAAQzD,EAAIgI,IAAQhI,EAAG,CACjD,IAAI8lC,EAAOR,EAAStlC,GAEfqlC,IAAiBS,EAAKpC,SACzB7O,EAAOtR,KAAKuiB,GAIhB,OAAOjR,IAER,CACDtzB,IAAK,+BACLN,MAAO,WACL,OAAO4c,KAAK0nB,wBAAuB,KAEpC,CACDhkC,IAAK,gBACLN,MAAO,WACL,IAAIqd,EAAKT,KAET,IAEO,IAFHS,EAAGixC,cAAc,qBAAsB,CACzC8J,YAAY,IADd,CAQA,IAFA,IAAI/zB,EAAWhnB,EAAGggC,+BAETt+C,EAAIslC,EAAS7hC,OAAS,EAAGzD,GAAK,IAAKA,EAC1Cse,EAAG8jD,aAAa98B,EAAStlC,IAG3Bse,EAAGixC,cAAc,wBAElB,CACDhuD,IAAK,eACLN,MAAO,SAAsB6kC,GAC3B,IAAIxnB,EAAKT,KACLsD,EAAM7C,EAAG6C,IACTwF,EAAOmf,EAAKsH,MACZi1B,GAAW17C,EAAK4mB,SAChBnnB,EAAO9H,EAAGkvB,UACV5nC,EAAO,CACTkgC,KAAMA,EACN19B,MAAO09B,EAAK19B,MACZixD,YAAY,IAGsC,IAAhD/6C,EAAGixC,cAAc,oBAAqB3pD,KAItCy8D,GACF37C,GAASvF,EAAK,CACZmF,MAAoB,IAAdK,EAAKL,KAAiB,EAAIF,EAAKE,KAAOK,EAAKL,KACjDC,OAAsB,IAAfI,EAAKJ,MAAkBjI,EAAGgF,MAAQ8C,EAAKG,MAAQI,EAAKJ,MAC3DC,KAAkB,IAAbG,EAAKH,IAAgB,EAAIJ,EAAKI,IAAMG,EAAKH,IAC9CC,QAAwB,IAAhBE,EAAKF,OAAmBnI,EAAGsG,OAASwB,EAAKK,OAASE,EAAKF,SAInEqf,EAAKY,WAAWvG,OAEZkiC,GACFz7C,GAAWzF,GAGbvb,EAAKyzD,YAAa,EAClB/6C,EAAGixC,cAAc,mBAAoB3pD,MAEtC,CACDrE,IAAK,4BACLN,MAAO,SAAmCkD,EAAGhD,EAAM0H,EAAS61C,GAC1D,IAAIxb,EAAS0c,GAAYC,MAAM1+C,GAE/B,MAAsB,oBAAX+hC,EACFA,EAAOrlB,KAAM1Z,EAAG0E,EAAS61C,GAG3B,KAER,CACDn9C,IAAK,iBACLN,MAAO,SAAwBkH,GAC7B,IACI8gC,EADKprB,KACQmF,KAAK5C,SAASjY,GAC3Bm9B,EAFKznB,KAESugD,UACdt4B,EAAOR,EAAS3W,QAAO,SAAUrjB,GACnC,OAAOA,GAAKA,EAAEquC,WAAa1Q,KAC1B1I,MAoBH,OAlBKuF,IACHA,EAAO,CACLl/B,KAAM,KACNoc,KAAM,GACNimB,QAAS,KACTvC,WAAY,KACZuS,OAAQ,KACR5P,QAAS,KACTE,QAAS,KACTm3B,MAAOz3B,GAAWA,EAAQy3B,OAAS,EACnCt4D,MAAOD,EACPwxC,SAAU1Q,EACVvB,QAAS,GACT0D,SAAS,GAEX9F,EAAS/hB,KAAKuiB,IAGTA,IAER,CACDvkC,IAAK,aACLN,MAAO,WACL,OAAO4c,KAAK8qB,WAAa9qB,KAAK8qB,SAAW,CACvCpoB,MAAO1C,KACPjX,KAAM,YAGT,CACDrF,IAAK,yBACLN,MAAO,WACL,OAAO4c,KAAKygC,+BAA+B76C,SAE5C,CACDlC,IAAK,mBACLN,MAAO,SAA0BkH,GAC/B,IAAI8gC,EAAUprB,KAAKmF,KAAK5C,SAASjY,GAEjC,IAAK8gC,EACH,OAAO,EAGT,IAAInD,EAAOjoB,KAAKqsB,eAAe/hC,GAC/B,MAA8B,mBAAhB29B,EAAKmT,QAAwBnT,EAAKmT,QAAUhQ,EAAQgQ,SAEnE,CACD13C,IAAK,uBACLN,MAAO,SAA8BkH,EAAcu7B,GACtC7lB,KAAKqsB,eAAe/hC,GAC1B8wC,QAAUvV,IAEhB,CACDniC,IAAK,uBACLN,MAAO,SAA8BmH,GACnCyV,KAAK6gD,eAAet2D,IAAUyV,KAAK6gD,eAAet2D,KAEnD,CACD7G,IAAK,oBACLN,MAAO,SAA2BmH,GAChC,OAAQyV,KAAK6gD,eAAet2D,KAE7B,CACD7G,IAAK,2BACLN,MAAO,SAAkCkH,EAAcu7B,GACrD,IAAIplB,EAAKT,KACL1c,EAAOuiC,EAAU,OAAS,OAC1BoC,EAAOxnB,EAAG4rB,eAAe/hC,GAEzBk3B,EAAQyG,EAAKY,WAAWiI,wBAAmB79B,EAAW3P,GAE1Dmd,EAAGgkD,qBAAqBn6D,EAAcu7B,GACtCrE,EAAM2F,OAAOc,EAAM,CACjBpC,QAASA,IAEXplB,EAAG0mB,QAAO,SAAU7jB,GAClB,OAAOA,EAAIhZ,eAAiBA,EAAehH,OAAO2P,OAGrD,CACDvP,IAAK,OACLN,MAAO,SAAckH,GACnB0V,KAAK0kD,yBAAyBp6D,GAAc,KAE7C,CACD5G,IAAK,OACLN,MAAO,SAAckH,GACnB0V,KAAK0kD,yBAAyBp6D,GAAc,KAE7C,CACD5G,IAAK,sBACLN,MAAO,SAA6BkH,GAClC,IAAImW,EAAKT,KACLioB,EAAOxnB,EAAG8/C,WAAa9/C,EAAG8/C,UAAUj2D,GAEpC29B,GAAQA,EAAKY,aACfZ,EAAKY,WAAW87B,kBAETlkD,EAAG8/C,UAAUj2D,MAGvB,CACD5G,IAAK,UACLN,MAAO,WACL,IAGIjB,EAAGgI,EAHHsW,EAAKT,KACL2G,EAASlG,EAAGkG,OACZrD,EAAM7C,EAAG6C,IAKb,IAHA7C,EAAG08B,OACHjc,GAAS0jC,OAAOnkD,GAEXte,EAAI,EAAGgI,EAAOsW,EAAG0E,KAAK5C,SAAS3c,OAAQzD,EAAIgI,IAAQhI,EACtDse,EAAGiiD,oBAAoBvgE,GAGzBse,EAAGulB,OAAO83B,aAENn3C,IACFlG,EAAGgjD,eACH/8C,GAAYC,EAAQrD,GACpB7C,EAAGkC,SAASkiD,eAAevhD,GAC3B7C,EAAGkG,OAAS,KACZlG,EAAG6C,IAAM,MAGX7C,EAAGixC,cAAc,kBACViO,GAAUl/C,EAAG7X,MAErB,CACDlF,IAAK,gBACLN,MAAO,WACL,IAAI0hE,EAEJ,OAAQA,EAAe9kD,KAAK2G,QAAQo+C,UAAU18D,MAAMy8D,EAAc58D,aAEnE,CACDxE,IAAK,aACLN,MAAO,WACL4c,KAAKglD,iBAEDhlD,KAAKhV,QAAQiZ,WACfjE,KAAKilD,uBAELjlD,KAAK8gD,UAAW,IAGnB,CACDp9D,IAAK,iBACLN,MAAO,WACL,IAAIqd,EAAKT,KACL+N,EAAYtN,EAAGggD,WACf99C,EAAWlC,EAAGkC,SAOdiL,EAAW,SAAkBtnB,EAAGmH,EAAGC,GACrCpH,EAAEoxB,QAAUjqB,EACZnH,EAAEqxB,QAAUjqB,EAEZ+S,EAAGsjD,cAAcz9D,IAGnBsD,EAAK6W,EAAGzV,QAAQ8X,QAAQ,SAAU/Z,GAChC,OAbS,SAAcA,EAAM6kB,GAC7BjL,EAAS+W,iBAAiBjZ,EAAI1X,EAAM6kB,GACpCG,EAAUhlB,GAAQ6kB,EAWXs3C,CAAKn8D,EAAM6kB,QAGrB,CACDlqB,IAAK,uBACLN,MAAO,WACL,IAAIqd,EAAKT,KAEJS,EAAGigD,uBACNjgD,EAAGigD,qBAAuB,IAG5B,IAqBIyE,EArBAp3C,EAAYtN,EAAGigD,qBACf/9C,EAAWlC,EAAGkC,SAEduiD,EAAO,SAAcn8D,EAAM6kB,GAC7BjL,EAAS+W,iBAAiBjZ,EAAI1X,EAAM6kB,GACpCG,EAAUhlB,GAAQ6kB,GAGhBw3C,EAAU,SAAiBr8D,EAAM6kB,GAC/BG,EAAUhlB,KACZ4Z,EAASgX,oBAAoBlZ,EAAI1X,EAAM6kB,UAChCG,EAAUhlB,KAIjB6kB,EAAW,SAAkBnI,EAAOsB,GAClCtG,EAAGkG,QACLlG,EAAGilB,OAAOjgB,EAAOsB,IAMjB+5C,EAAW,SAASA,IACtBsE,EAAQ,SAAUtE,GAElBrgD,EAAGqgD,UAAW,EACdrgD,EAAGilB,SAEHw/B,EAAK,SAAUt3C,GAEfs3C,EAAK,SAAUC,IAGjBA,EAAW,WACT1kD,EAAGqgD,UAAW,EAEdsE,EAAQ,SAAUx3C,GAElBs3C,EAAK,SAAUpE,IAGbn+C,EAAS0iD,WAAW5kD,EAAGkG,QACzBm6C,IAEAqE,MAGH,CACDzhE,IAAK,eACLN,MAAO,WACL,IAAIqd,EAAKT,KACTpW,EAAK6W,EAAGggD,YAAY,SAAU7yC,EAAU7kB,GACtC0X,EAAGkC,SAASgX,oBAAoBlZ,EAAI1X,EAAM6kB,MAE5CnN,EAAGggD,WAAa,GAChB72D,EAAK6W,EAAGigD,sBAAsB,SAAU9yC,EAAU7kB,GAChD0X,EAAGkC,SAASgX,oBAAoBlZ,EAAI1X,EAAM6kB,MAE5CnN,EAAGigD,0BAAuBztD,IAE3B,CACDvP,IAAK,mBACLN,MAAO,SAA0B8qB,EAAO5qB,EAAM8nD,GAC5C,IACU/oB,EAAMlgC,EAAGgI,EADf0nB,EAASu5B,EAAU,MAAQ,SAQ/B,IALa,YAAT9nD,GACK0c,KAAKqsB,eAAene,EAAM,GAAG5jB,cAC/Bu+B,WAAW,IAAMhX,EAAS,uBAG5B1vB,EAAI,EAAGgI,EAAO+jB,EAAMtoB,OAAQzD,EAAIgI,IAAQhI,EAAG,CAE9C,IAAI0mC,GADJxG,EAAOnU,EAAM/rB,KACY6d,KAAKqsB,eAAehK,EAAK/3B,cAAcu+B,WAE5DA,GACFA,EAAWhX,EAAS,cAAcwQ,EAAK1L,QAAS0L,EAAK/3B,aAAc+3B,EAAK93B,UAI7E,CACD7G,IAAK,oBACLN,MAAO,WACL,OAAO4c,KAAKuiB,SAAW,KAExB,CACD7+B,IAAK,oBACLN,MAAO,SAA2BkiE,GAChC,IAAI7kD,EAAKT,KACLulD,EAAa9kD,EAAG8hB,SAAW,GAC3BkD,EAAS6/B,EAAe56D,KAAI,SAAU86D,GACxC,IAAIl7D,EAAek7D,EAAMl7D,aACrBC,EAAQi7D,EAAMj7D,MACd09B,EAAOxnB,EAAG4rB,eAAe/hC,GAE7B,IAAK29B,EACH,MAAM,IAAIzX,MAAM,6BAA+BlmB,GAGjD,MAAO,CACLA,aAAcA,EACdqsB,QAASsR,EAAK9iB,KAAK5a,GACnBA,MAAOA,OAGIP,EAAey7B,EAAQ8/B,KAGpC9kD,EAAG8hB,QAAUkD,EAEbhlB,EAAGglD,mBAAmBhgC,EAAQ8/B,MAGjC,CACD7hE,IAAK,gBACLN,MAAO,SAAuBi4D,EAAMtzD,EAAM+oB,GACxC,OAAO9Q,KAAK4gD,SAAS8E,OAAO1lD,KAAMq7C,EAAMtzD,EAAM+oB,KAE/C,CACDptB,IAAK,qBACLN,MAAO,SAA4BqiC,EAAQ8/B,EAAYI,GACrD,IAAIllD,EAAKT,KACL4lD,EAAenlD,EAAGzV,QAAQoY,MAE1BwoC,EAAO,SAAcj9C,EAAGC,GAC1B,OAAOD,EAAEmiB,QAAO,SAAUrjB,GACxB,OAAQmB,EAAEstD,MAAK,SAAUxuD,GACvB,OAAOD,EAAEnD,eAAiBoD,EAAEpD,cAAgBmD,EAAElD,QAAUmD,EAAEnD,aAK5Ds7D,EAAcja,EAAK2Z,EAAY9/B,GAC/BqgC,EAAYH,EAASlgC,EAASmmB,EAAKnmB,EAAQ8/B,GAE3CM,EAAYjgE,QACd6a,EAAGslD,iBAAiBF,EAAaD,EAAatiE,MAAM,GAGlDwiE,EAAUlgE,QAAUggE,EAAatiE,MACnCmd,EAAGslD,iBAAiBD,EAAWF,EAAatiE,MAAM,KAGrD,CACDI,IAAK,gBACLN,MAAO,SAAuBkD,EAAGq/D,GAC/B,IAAIK,EAAShmD,KAETS,EAAKT,KACLjY,EAAO,CACTg7B,MAAOz8B,EACPq/D,OAAQA,EACRnK,YAAY,GAGVyK,EAAc,SAAqB1K,GACrC,OAAQA,EAAOvwD,QAAQ8X,QAAUkjD,EAAOh7D,QAAQ8X,QAAQyM,SAASjpB,EAAEyC,OAGrE,IAA2D,IAAvD0X,EAAGixC,cAAc,cAAe3pD,EAAMk+D,GAA1C,CAIA,IAAIvpB,EAAUj8B,EAAGylD,aAAa5/D,EAAGq/D,GASjC,OAPA59D,EAAKyzD,YAAa,EAClB/6C,EAAGixC,cAAc,aAAc3pD,EAAMk+D,IAEjCvpB,GAAW30C,EAAK20C,UAClBj8B,EAAGshD,SAGEthD,KAER,CACD/c,IAAK,eACLN,MAAO,SAAsBkD,EAAGq/D,GAC9B,IAOIjpB,EAPAj8B,EAAKT,KACLmmD,EAAc1lD,EAAG8hB,QACjBgjC,OAA6B,IAAhBY,EAAyB,GAAKA,EAC3Cn7D,EAAUyV,EAAGzV,QACb46D,EAAe56D,EAAQoY,MACvBy9B,EAAmB8kB,EACnBlgC,EAAS,GAET2gC,EAAY,KA0BhB,MAxBe,aAAX9/D,EAAEyC,OACJ08B,EAAShlB,EAAG4lD,0BAA0B//D,EAAGs/D,EAAatiE,KAAMsiE,EAAc/kB,GAC1EulB,EAAuB,UAAX9/D,EAAEyC,KAAmB0X,EAAG+/C,WAAal6D,GAGnDma,EAAG+/C,WAAa,KAEZn4C,GAAe/hB,EAAGma,EAAGkvB,UAAWlvB,EAAGqgC,eACrCt5C,EAASwD,EAAQ6Y,QAAS,CAACvd,EAAGm/B,EAAQhlB,GAAKA,GAE5B,YAAXna,EAAEyC,MAAiC,UAAXzC,EAAEyC,MAA+B,gBAAXzC,EAAEyC,MAClDvB,EAASwD,EAAQ8Y,QAAS,CAACxd,EAAGm/B,EAAQhlB,GAAKA,MAI/Ci8B,GAAW1yC,EAAey7B,EAAQ8/B,KAEnBI,KACbllD,EAAG8hB,QAAUkD,EAEbhlB,EAAGglD,mBAAmBhgC,EAAQ8/B,EAAYI,IAG5CllD,EAAG+/C,WAAa4F,EACT1pB,MAIJmjB,EAtiCgB,GAyiCrB,GAAoB,WACtB,OAAOj2D,EAAK,GAAM+1D,WAAW,SAAUj9C,GACrC,OAAOA,EAAMk+C,SAAS8C,iBAItB3gE,IAAa,EA0CjB,SAASujE,GAAQhjD,EAAKqT,EAASyiB,GAC7B,IAAID,EAAaxiB,EAAQwiB,WACrBotB,EAAc5vC,EAAQ4vC,YACtB94D,EAAIkpB,EAAQlpB,EACZC,EAAIipB,EAAQjpB,EACZuqC,EAActhB,EAAQshB,YACtBD,EAAcrhB,EAAQqhB,YACtBwuB,EAAcD,EAActuB,EAChC30B,EAAIqE,YACJrE,EAAIsE,IAAIna,EAAGC,EAAGuqC,EAAakB,EAAaqtB,EAAaptB,EAAWotB,GAE5DxuB,EAAcuuB,GAChBC,EAAcD,EAAcvuB,EAC5B10B,EAAIsE,IAAIna,EAAGC,EAAGsqC,EAAaoB,EAAWotB,EAAartB,EAAaqtB,GAAa,IAE7EljD,EAAIsE,IAAIna,EAAGC,EAAG64D,EAAantB,EAAW3sC,EAAS0sC,EAAa1sC,GAG9D6W,EAAIuE,YACJvE,EAAIwF,OAON,SAAS29C,GAAoB7+C,EAAKowB,EAAaC,EAAayuB,GAC1D,IAAI9jE,EAJGopB,GAIiBpE,EAAI5c,QAAQ27D,aAJJ,CAAC,aAAc,WAAY,aAAc,aAKrEC,GAAiB3uB,EAAcD,GAAe,EAC9C6uB,EAAa16D,KAAK4B,IAAI64D,EAAeF,EAAa1uB,EAAc,GAEhE8uB,EAAoB,SAA2BhmD,GACjD,IAAIimD,GAAiB9uB,EAAc9rC,KAAK4B,IAAI64D,EAAe9lD,IAAQ4lD,EAAa,EAChF,OAAOr3D,GAAYyR,EAAK,EAAG3U,KAAK4B,IAAI64D,EAAeG,KAGrD,MAAO,CACLC,WAAYF,EAAkBlkE,EAAEokE,YAChCC,SAAUH,EAAkBlkE,EAAEqkE,UAC9BC,WAAY73D,GAAYzM,EAAEskE,WAAY,EAAGL,GACzCM,SAAU93D,GAAYzM,EAAEukE,SAAU,EAAGN,IAIzC,SAASO,GAAWnkE,EAAGokE,EAAO55D,EAAGC,GAC/B,MAAO,CACLD,EAAGA,EAAIxK,EAAIkJ,KAAKsE,IAAI42D,GACpB35D,EAAGA,EAAIzK,EAAIkJ,KAAKqD,IAAI63D,IAIxB,SAASC,GAAQhkD,EAAKqT,EAASkgB,EAAQ0B,EAAS7vC,GAC9C,IAAI+E,EAAIkpB,EAAQlpB,EACZC,EAAIipB,EAAQjpB,EACZjF,EAAQkuB,EAAQwiB,WAChBotB,EAAc5vC,EAAQ4vC,YACtBgB,EAAS5wC,EAAQqhB,YACjBC,EAAc9rC,KAAK6B,IAAI2oB,EAAQshB,YAAcM,EAAU1B,EAAS0vB,EAAa,GAC7EvuB,EAAcuvB,EAAS,EAAIA,EAAShvB,EAAU1B,EAAS0vB,EAAc,EACrEiB,EAAgB,EAChBC,EAAQ/+D,EAAMD,EAElB,GAAI8vC,EAAS,CACX,IAEImvB,IAFuBH,EAAS,EAAIA,EAAShvB,EAAU,IAChCN,EAAc,EAAIA,EAAcM,EAAU,IACI,EAEzEivB,GAAiBC,GAD0B,IAAvBC,EAA2BD,EAAQC,GAAsBA,EAAqBnvB,GAAWkvB,IACnE,EAG5C,IACIE,GAAeF,EADRt7D,KAAK6B,IAAI,KAAOy5D,EAAQxvB,EAAcpB,EAAS3qC,GAAM+rC,GAC7B,EAC/BkB,EAAa1wC,EAAQk/D,EAAcH,EACnCpuB,EAAW1wC,EAAMi/D,EAAcH,EAE/BI,EAAsBnB,GAAoB9vC,EAASqhB,EAAaC,EAAamB,EAAWD,GACxF6tB,EAAaY,EAAoBZ,WACjCC,EAAWW,EAAoBX,SAC/BC,EAAaU,EAAoBV,WACjCC,EAAWS,EAAoBT,SAE/BU,EAA2B5vB,EAAc+uB,EACzCc,EAAyB7vB,EAAcgvB,EACvCc,EAA0B5uB,EAAa6tB,EAAaa,EACpDG,EAAwB5uB,EAAW6tB,EAAWa,EAC9CG,EAA2BjwB,EAAckvB,EACzCgB,EAAyBlwB,EAAcmvB,EACvCgB,EAA0BhvB,EAAa+tB,EAAae,EACpDG,EAAwBhvB,EAAW+tB,EAAWe,EAIlD,GAHA5kD,EAAIqE,YACJrE,EAAIsE,IAAIna,EAAGC,EAAGuqC,EAAa8vB,EAAyBC,GAEhDf,EAAW,EAAG,CAChB,IAAIoB,EAAUjB,GAAWU,EAAwBE,EAAuBv6D,EAAGC,GAC3E4V,EAAIsE,IAAIygD,EAAQ56D,EAAG46D,EAAQ36D,EAAGu5D,EAAUe,EAAuB5uB,EAAW3sC,GAG5E,IAAI67D,EAAKlB,GAAWc,EAAwB9uB,EAAU3rC,EAAGC,GAGzD,GAFA4V,EAAIyE,OAAOugD,EAAG76D,EAAG66D,EAAG56D,GAEhBy5D,EAAW,EAAG,CAChB,IAAIoB,EAAWnB,GAAWc,EAAwBE,EAAuB36D,EAAGC,GAE5E4V,EAAIsE,IAAI2gD,EAAS96D,EAAG86D,EAAS76D,EAAGy5D,EAAU/tB,EAAW3sC,EAAS27D,EAAwBj8D,KAAKD,IAK7F,GAFAoX,EAAIsE,IAAIna,EAAGC,EAAGsqC,EAAaoB,EAAW+tB,EAAWnvB,EAAamB,EAAa+tB,EAAalvB,GAAa,GAEjGkvB,EAAa,EAAG,CAClB,IAAIsB,EAAYpB,GAAWa,EAA0BE,EAAyB16D,EAAGC,GAEjF4V,EAAIsE,IAAI4gD,EAAU/6D,EAAG+6D,EAAU96D,EAAGw5D,EAAYiB,EAA0Bh8D,KAAKD,GAAIitC,EAAa1sC,GAGhG,IAAIg8D,EAAKrB,GAAWS,EAA0B1uB,EAAY1rC,EAAGC,GAG7D,GAFA4V,EAAIyE,OAAO0gD,EAAGh7D,EAAGg7D,EAAG/6D,GAEhBs5D,EAAa,EAAG,CAClB,IAAI0B,EAAYtB,GAAWS,EAA0BE,EAAyBt6D,EAAGC,GAEjF4V,EAAIsE,IAAI8gD,EAAUj7D,EAAGi7D,EAAUh7D,EAAGs5D,EAAY7tB,EAAa1sC,EAASs7D,GAGtEzkD,EAAIuE,YA2DN,SAAS,GAAWvE,EAAKqT,EAASkgB,EAAQ0B,EAASa,GACjD,IAAIpuC,EAAU2rB,EAAQ3rB,QAClB29D,EAAgC,UAAxB39D,EAAQ8vC,YAEf9vC,EAAQmd,cAITwgD,GACFrlD,EAAI6G,UAAkC,EAAtBnf,EAAQmd,YACxB7E,EAAIslD,SAAW,UAEftlD,EAAI6G,UAAYnf,EAAQmd,YACxB7E,EAAIslD,SAAW,SAGbjyC,EAAQkyC,aA7Cd,SAA+BvlD,EAAKqT,EAASgyC,GAC3C,IAOIxmE,EAPAsL,EAAIkpB,EAAQlpB,EACZC,EAAIipB,EAAQjpB,EACZyrC,EAAaxiB,EAAQwiB,WACrBotB,EAAc5vC,EAAQ4vC,YACtBsC,EAAclyC,EAAQkyC,YACtB5wB,EAAc9rC,KAAK6B,IAAI2oB,EAAQshB,YAAcsuB,EAAa,GAC1DvuB,EAAcrhB,EAAQqhB,YAAcuuB,EAUxC,IAPIoC,GACFrC,GAAQhjD,EAAKqT,EAASwiB,EAAa/sC,GAGrCkX,EAAIqE,YACJrE,EAAIsE,IAAIna,EAAGC,EAAGsqC,EAAamB,EAAa/sC,EAAK+sC,GAAY,GAEpDh3C,EAAI,EAAGA,EAAI0mE,IAAe1mE,EAC7BmhB,EAAI8E,SAMN,IAHA9E,EAAIqE,YACJrE,EAAIsE,IAAIna,EAAGC,EAAGuqC,EAAakB,EAAYA,EAAa/sC,GAE/CjK,EAAI,EAAGA,EAAI0mE,IAAe1mE,EAC7BmhB,EAAI8E,SAqBJ0gD,CAAsBxlD,EAAKqT,EAASgyC,GAGlCA,GACFrC,GAAQhjD,EAAKqT,EAASyiB,GAGxBkuB,GAAQhkD,EAAKqT,EAASkgB,EAAQ0B,EAASa,GACvC91B,EAAI8E,UAxPNvlB,OAAO+hB,iBAAiB,GAAO,CAC7B3C,SAAU,CACRlf,WAAYA,GACZK,MAAO6e,IAET09C,UAAW,CACT58D,WAAYA,GACZK,MAAOu8D,IAETl+C,UAAW,CACT1e,WAAYA,GACZK,MAAOqe,IAETu5C,SAAU,CACRj4D,WAAYA,GACZK,MAAO,IAET2lE,QAAS,CACPhmE,WAAYA,GACZK,MAxnCU,SA0nCZw8D,SAAU,CACR78D,WAAYA,GACZK,MAAOw8D,IAEThH,SAAU,CACR71D,WAAYA,GACZK,MAAO,WACL,GAASgrB,IAAI/lB,MAAM,GAAUH,WAC7B,OAGJ8gE,WAAY,CACVjmE,WAAYA,GACZK,MAAO,WACL,GAASwhE,OAAOv8D,MAAM,GAAUH,WAChC,SAuNN,IAAI,GAA0B,SAAU+gE,GACtC7pC,GAAU8pC,EAAYD,GAEtB,IAAIE,EAAWzpC,GAAawpC,GAE5B,SAASA,EAAWjlC,GAClB,IAAImlC,EAkBJ,OAhBA,GAAgBppD,KAAMkpD,IAEtBE,EAASD,EAAS7mE,KAAK0d,OAChBhV,aAAUiI,EACjBm2D,EAAOlxB,mBAAgBjlC,EACvBm2D,EAAOjwB,gBAAalmC,EACpBm2D,EAAOhwB,cAAWnmC,EAClBm2D,EAAOpxB,iBAAc/kC,EACrBm2D,EAAOnxB,iBAAchlC,EACrBm2D,EAAO7C,YAAc,EACrB6C,EAAOP,YAAc,EAEjB5kC,GACFphC,OAAO6c,OAAO4gB,GAAuB8oC,GAASnlC,GAGzCmlC,EA2FT,OAxFA,GAAaF,EAAY,CAAC,CACxBxlE,IAAK,UACLN,MAAO,SAAiBimE,EAAQC,EAAQzoB,GACtC,IAEI0oB,EDh6PV,SAA2BC,EAAaC,GACtC,IAAIC,EAAsBD,EAAWh8D,EAAI+7D,EAAY/7D,EACjDk8D,EAAsBF,EAAW/7D,EAAI87D,EAAY97D,EACjDk8D,EAA2Bz9D,KAAKsC,KAAKi7D,EAAsBA,EAAsBC,EAAsBA,GACvG56D,EAAQ5C,KAAK09D,MAAMF,EAAqBD,GAM5C,OAJI36D,GAAS,GAAM7C,IACjB6C,GAAS3C,GAGJ,CACL2C,MAAOA,EACP0yC,SAAUmoB,GCo5PiBE,CAFb9pD,KAAKypC,SAAS,CAAC,IAAK,KAAM5I,GAEY,CAChDpzC,EAAG47D,EACH37D,EAAG47D,IAEDv6D,EAAQw6D,EAAmBx6D,MAC3B0yC,EAAW8nB,EAAmB9nB,SAE9BsoB,EAAkB/pD,KAAKypC,SAAS,CAAC,aAAc,WAAY,cAAe,cAAe,iBAAkB5I,GAC3G1H,EAAa4wB,EAAgB5wB,WAC7BC,EAAW2wB,EAAgB3wB,SAC3BpB,EAAc+xB,EAAgB/xB,YAC9BC,EAAc8xB,EAAgB9xB,YAC9BC,EAAgB6xB,EAAgB7xB,cAEhC8xB,EAAUhqD,KAAKhV,QAAQutC,QAAU,EAKrC,OAHoBL,GAAiB9rC,GAAO0C,GAAcC,EAAOoqC,EAAYC,MAE1DqI,GAAYzJ,EAAcgyB,GAAWvoB,GAAYxJ,EAAc+xB,KAGnF,CACDtmE,IAAK,iBACLN,MAAO,SAAwBy9C,GAC7B,IAAIopB,EAAkBjqD,KAAKypC,SAAS,CAAC,IAAK,IAAK,aAAc,WAAY,cAAe,cAAe,iBAAkB5I,GACrHpzC,EAAIw8D,EAAgBx8D,EACpBC,EAAIu8D,EAAgBv8D,EACpByrC,EAAa8wB,EAAgB9wB,WAC7BC,EAAW6wB,EAAgB7wB,SAC3BpB,EAAciyB,EAAgBjyB,YAC9BC,EAAcgyB,EAAgBhyB,YAE9BiyB,EAAiBlqD,KAAKhV,QACtB6rC,EAASqzB,EAAerzB,OAExBszB,GAAahxB,EAAaC,GAAY,EACtCgxB,GAAcpyB,EAAcC,EAFlBiyB,EAAe3xB,QAE2B1B,GAAU,EAClE,MAAO,CACLppC,EAAGA,EAAItB,KAAKsE,IAAI05D,GAAaC,EAC7B18D,EAAGA,EAAIvB,KAAKqD,IAAI26D,GAAaC,KAGhC,CACD1mE,IAAK,kBACLN,MAAO,SAAyBy9C,GAC9B,OAAO7gC,KAAKwhC,eAAeX,KAE5B,CACDn9C,IAAK,OACLN,MAAO,SAAckgB,GACnB,IAAI7C,EAAKT,KACLhV,EAAUyV,EAAGzV,QACbktC,EAAgBz3B,EAAGy3B,cACnBrB,GAAU7rC,EAAQ6rC,QAAU,GAAK,EACjC0B,GAAWvtC,EAAQutC,SAAW,GAAK,EAIvC,GAHA93B,EAAG8lD,YAAsC,UAAxBv7D,EAAQ8vC,YAA0B,IAAO,EAC1Dr6B,EAAGooD,YAAc3wB,EAAgB9rC,EAAMD,KAAKkB,MAAM6qC,EAAgB9rC,GAAO,IAEnD,IAAlB8rC,GAAuBz3B,EAAGu3B,YAAc,GAAKv3B,EAAGw3B,YAAc,GAAlE,CAIA30B,EAAIyC,OACJ,IAAIskD,EAAe,EAEnB,GAAIxzB,EAAQ,CACVwzB,EAAexzB,EAAS,EACxB,IAAIszB,GAAa1pD,EAAG04B,WAAa14B,EAAG24B,UAAY,EAChD91B,EAAIkE,UAAUrb,KAAKsE,IAAI05D,GAAaE,EAAcl+D,KAAKqD,IAAI26D,GAAaE,GAEpE5pD,EAAGy3B,eAAiBhsC,IACtBm+D,EAAexzB,GAInBvzB,EAAImH,UAAYzf,EAAQqX,gBACxBiB,EAAI4G,YAAclf,EAAQsX,YAC1B,IAAI82B,EAjMV,SAAiB91B,EAAKqT,EAASkgB,EAAQ0B,GACrC,IAAIswB,EAAclyC,EAAQkyC,YACtB1vB,EAAaxiB,EAAQwiB,WACrBjB,EAAgBvhB,EAAQuhB,cACxBkB,EAAWziB,EAAQyiB,SAEvB,GAAIyvB,EAAa,CACfvB,GAAQhkD,EAAKqT,EAASkgB,EAAQ0B,EAASY,EAAa/sC,GAEpD,IAAK,IAAIjK,EAAI,EAAGA,EAAI0mE,IAAe1mE,EACjCmhB,EAAI4E,OAGD1a,MAAM0qC,KACTkB,EAAWD,EAAajB,EAAgB9rC,EAEpC8rC,EAAgB9rC,IAAQ,IAC1BgtC,GAAYhtC,IAOlB,OAFAk7D,GAAQhkD,EAAKqT,EAASkgB,EAAQ0B,EAASa,GACvC91B,EAAI4E,OACGkxB,EAyKYkxB,CAAQhnD,EAAK7C,EAAI4pD,EAAc9xB,GAC9C,GAAWj1B,EAAK7C,EAAI4pD,EAAc9xB,EAASa,GAC3C91B,EAAI6C,eAID+iD,EAnHqB,CAoH5B,IAgBF,SAASqB,GAASjnD,EAAKtY,GACrB,IAAIkY,EAAQhb,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK8C,EAChFsY,EAAIknD,QAAUjhE,EAAe2Z,EAAMmb,eAAgBrzB,EAAQqzB,gBAC3D/a,EAAIg0C,YAAY/tD,EAAe2Z,EAAMob,WAAYtzB,EAAQszB,aACzDhb,EAAIi0C,eAAiBhuD,EAAe2Z,EAAMqb,iBAAkBvzB,EAAQuzB,kBACpEjb,EAAIslD,SAAWr/D,EAAe2Z,EAAMsb,gBAAiBxzB,EAAQwzB,iBAC7Dlb,EAAI6G,UAAY5gB,EAAe2Z,EAAMiF,YAAand,EAAQmd,aAC1D7E,EAAI4G,YAAc3gB,EAAe2Z,EAAMZ,YAAatX,EAAQsX,aAG9D,SAASyF,GAAOzE,EAAK2F,EAAUvjB,GAC7B4d,EAAIyE,OAAOriB,EAAO+H,EAAG/H,EAAOgI,GAe9B,SAAS+8D,GAASn3C,EAAQsJ,GACxB,IAAI+lB,EAASz6C,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,GAC7Ew0B,EAAQpJ,EAAO1tB,OACf8kE,EAAgB/nB,EAAOl6C,MACvBkiE,OAAgC,IAAlBD,EAA2B,EAAIA,EAC7CE,EAAcjoB,EAAOj6C,IACrBmiE,OAA4B,IAAhBD,EAAyBluC,EAAQ,EAAIkuC,EACjDE,EAAeluC,EAAQn0B,MACvBsiE,EAAanuC,EAAQl0B,IACrBD,EAAQ0D,KAAK6B,IAAI28D,EAAaG,GAC9BpiE,EAAMyD,KAAK4B,IAAI88D,EAAWE,GAC1BC,EAAUL,EAAcG,GAAgBD,EAAYC,GAAgBH,EAAcI,GAAcF,EAAYE,EAChH,MAAO,CACLruC,MAAOA,EACPj0B,MAAOA,EACPmsB,KAAMgI,EAAQhI,KACdzqB,KAAMzB,EAAMD,IAAUuiE,EAAUtuC,EAAQh0B,EAAMD,EAAQC,EAAMD,GAIhE,SAAS,GAAY6a,EAAKsG,EAAMgT,EAAS+lB,GACvC,IAgBIxgD,EAAGmmB,EAAOsN,EAhBVtC,EAAS1J,EAAK0J,OACdtoB,EAAU4e,EAAK5e,QAEfigE,EAAYR,GAASn3C,EAAQsJ,EAAS+lB,GACtCjmB,EAAQuuC,EAAUvuC,MAClBj0B,EAAQwiE,EAAUxiE,MAClBmsB,EAAOq2C,EAAUr2C,KACjBzqB,EAAO8gE,EAAU9gE,KAEjB+gE,EA1CN,SAAuBlgE,GACrB,OAAIA,EAAQmgE,QACHniD,GAGLhe,EAAQ6qB,SAA8C,aAAnC7qB,EAAQyqB,uBACtBrM,GAGFrB,GAiCUqjD,CAAcpgE,GAE3BqgE,EAAQ1oB,GAAU,GAClB2oB,EAAaD,EAAM75B,KACnBA,OAAsB,IAAf85B,GAA+BA,EACtCxhE,EAAUuhE,EAAMvhE,QAIpB,IAAK3H,EAAI,EAAGA,GAAKgI,IAAQhI,GACvBmmB,EAAQgL,GAAQ7qB,GAASqB,EAAUK,EAAOhI,EAAIA,IAAMu6B,IAE1CnJ,OAECie,GACTluB,EAAIwE,OAAOQ,EAAM7a,EAAG6a,EAAM5a,GAC1B8jC,GAAO,GAEP05B,EAAW5nD,EAAKsS,EAAMtN,EAAOxe,EAASkB,EAAQmgE,SAGhDv1C,EAAOtN,GAQT,OALIsM,GAEFs2C,EAAW5nD,EAAKsS,EADhBtN,EAAQgL,GAAQ7qB,GAASqB,EAAUK,EAAO,IAAMuyB,GACnB5yB,EAASkB,EAAQmgE,WAGvCv2C,EAGX,SAAS22C,GAAgBjoD,EAAKsG,EAAMgT,EAAS+lB,GAC3C,IAcIxgD,EAAGmmB,EAAOkjD,EAAO1xB,EAAMF,EAAM6xB,EAd7Bn4C,EAAS1J,EAAK0J,OAEdo4C,EAAajB,GAASn3C,EAAQsJ,EAAS+lB,GACvCjmB,EAAQgvC,EAAWhvC,MACnBj0B,EAAQijE,EAAWjjE,MACnB0B,EAAOuhE,EAAWvhE,KAElBwhE,EAAQhpB,GAAU,GAClBipB,EAAaD,EAAMn6B,KACnBA,OAAsB,IAAfo6B,GAA+BA,EACtC9hE,EAAU6hE,EAAM7hE,QAEhB+hE,EAAO,EACPC,EAAS,EAGTC,EAAa,SAAoBxhE,GACnC,OAAQ9B,GAASqB,EAAUK,EAAOI,EAAQA,IAAUmyB,GAGlDsvC,EAAQ,WACNlyB,IAASF,IACXt2B,EAAIyE,OAAO8jD,EAAMjyB,GACjBt2B,EAAIyE,OAAO8jD,EAAM/xB,GACjBx2B,EAAIyE,OAAO8jD,EAAMJ,KASrB,IALIj6B,IACFlpB,EAAQgL,EAAOy4C,EAAW,IAC1BzoD,EAAIwE,OAAOQ,EAAM7a,EAAG6a,EAAM5a,IAGvBvL,EAAI,EAAGA,GAAKgI,IAAQhI,EAGvB,KAFAmmB,EAAQgL,EAAOy4C,EAAW5pE,KAEhBoxB,KAAV,CAIA,IAAI9lB,EAAI6a,EAAM7a,EACVC,EAAI4a,EAAM5a,EACVu+D,EAAa,EAAJx+D,EAETw+D,IAAWT,GACT99D,EAAIosC,EACNA,EAAOpsC,EACEA,EAAIksC,IACbA,EAAOlsC,GAGTm+D,GAAQC,EAASD,EAAOp+D,KAAOq+D,IAE/BE,IACA1oD,EAAIyE,OAAOta,EAAGC,GACd89D,EAAQS,EACRH,EAAS,EACThyB,EAAOF,EAAOlsC,GAGhB+9D,EAAQ/9D,EAGVs+D,IAGF,SAASE,GAAkBtiD,GACzB,IAAIC,EAAOD,EAAK5e,QACZszB,EAAazU,EAAKyU,YAAczU,EAAKyU,WAAW14B,OAEpD,OADmBgkB,EAAKgzB,aAAehzB,EAAK4a,QAAU3a,EAAKgM,SAA2C,aAAhChM,EAAK4L,yBAA0C5L,EAAKshD,UAAY7sC,EACjHitC,GAAkB,GA7KzC,GAAW3iE,GAAK,MAChB,GAAWqZ,SAAW,CACpB64B,YAAa,SACbx4B,YAAa,OACbqkD,aAAc,EACdx+C,YAAa,EACb0uB,OAAQ,EACR0B,QAAS,EACTxpC,WAAOkE,GAET,GAAW02C,cAAgB,CACzBtnC,gBAAiB,mBA+NnB,IAAI8pD,GAA8B,oBAAXC,OAEvB,SAAS,GAAM9oD,EAAKsG,EAAMnhB,EAAOi0B,GAC3ByvC,IAAsC,IAAzBviD,EAAK8T,SAAS93B,OAjDjC,SAA6B0d,EAAKsG,EAAMnhB,EAAOi0B,GAC7C,IAAI2vC,EAAOziD,EAAK0iD,MAEXD,IACHA,EAAOziD,EAAK0iD,MAAQ,IAAIF,OAEpBxiD,EAAKyiD,KAAKA,EAAM5jE,EAAOi0B,IACzB2vC,EAAKxkD,aAIT0iD,GAASjnD,EAAKsG,EAAK5e,SACnBsY,EAAI8E,OAAOikD,GAsCTE,CAAoBjpD,EAAKsG,EAAMnhB,EAAOi0B,GAnC1C,SAA0BpZ,EAAKsG,EAAMnhB,EAAOi0B,GAC1C,IAMIzJ,EANAyK,EAAW9T,EAAK8T,SAChB1yB,EAAU4e,EAAK5e,QAEfwhE,EAAgBN,GAAkBtiD,GAElCsJ,EAAa,GAA2BwK,GAG5C,IACE,IAAKxK,EAAWhvB,MAAO+uB,EAASC,EAAWtvB,KAAKyC,MAAO,CACrD,IAAIu2B,EAAU3J,EAAO7vB,MACrBmnE,GAASjnD,EAAKtY,EAAS4xB,EAAQ1Z,OAC/BI,EAAIqE,YAEA6kD,EAAclpD,EAAKsG,EAAMgT,EAAS,CACpCn0B,MAAOA,EACPC,IAAKD,EAAQi0B,EAAQ,KAErBpZ,EAAIuE,YAGNvE,EAAI8E,UAEN,MAAO3hB,GACPysB,EAAW5sB,EAAEG,GACb,QACAysB,EAAW1sB,KAUXimE,CAAiBnpD,EAAKsG,EAAMnhB,EAAOi0B,GAIvC,IAAI,GAA2B,SAAUgwC,GACvCttC,GAAUutC,EAAaD,GAEvB,IAAIE,EAAWltC,GAAaitC,GAE5B,SAASA,EAAY1oC,GACnB,IAAI4oC,EAmBJ,OAjBA,GAAgB7sD,KAAM2sD,IAEtBE,EAASD,EAAStqE,KAAK0d,OAChB68B,UAAW,EAClBgwB,EAAO7hE,aAAUiI,EACjB45D,EAAOroC,WAAQvxB,EACf45D,EAAO3tB,eAAYjsC,EACnB45D,EAAOP,WAAQr5D,EACf45D,EAAOC,aAAU75D,EACjB45D,EAAOE,eAAY95D,EACnB45D,EAAOjwB,YAAa,EACpBiwB,EAAOG,gBAAiB,EAEpB/oC,GACFphC,OAAO6c,OAAO4gB,GAAuBusC,GAAS5oC,GAGzC4oC,EA6JT,OA1JA,GAAaF,EAAa,CAAC,CACzBjpE,IAAK,sBACLN,MAAO,SAA6BusC,EAAWlsB,GAC7C,IAAIhD,EAAKT,KACLhV,EAAUyV,EAAGzV,QAEjB,IAAKA,EAAQ6qB,SAA8C,aAAnC7qB,EAAQyqB,0BAA2CzqB,EAAQmgE,UAAY1qD,EAAGusD,eAAgB,CAChH,IAAIp4C,EAAO5pB,EAAQwqB,SAAW/U,EAAG+jB,MAAQ/jB,EAAGy+B,UAE5CvqB,GAA2BlU,EAAGqsD,QAAS9hE,EAAS2kC,EAAW/a,EAAMnR,GAEjEhD,EAAGusD,gBAAiB,KAGvB,CACDtpE,IAAK,SACLV,IAAK,WACH,OAAOgd,KAAK8sD,SAEd1sD,IAAK,SAAakT,GAChB,IAAI7S,EAAKT,KACTS,EAAGqsD,QAAUx5C,SACN7S,EAAGssD,iBACHtsD,EAAG6rD,MACV7rD,EAAGusD,gBAAiB,IAErB,CACDtpE,IAAK,WACLV,IAAK,WACH,OAAOgd,KAAK+sD,YAAc/sD,KAAK+sD,UDp/KrC,SAA0BnjD,EAAMiU,GAC9B,IAAIvK,EAAS1J,EAAK0J,OACdkC,EAAW5L,EAAK5e,QAAQwqB,SACxBkH,EAAQpJ,EAAO1tB,OAEnB,IAAK82B,EACH,MAAO,GAGT,IAAI9H,IAAShL,EAAK4a,MAEdyoC,EApFN,SAAyB35C,EAAQoJ,EAAO9H,EAAMY,GAC5C,IAAI/sB,EAAQ,EACRC,EAAMg0B,EAAQ,EAElB,GAAI9H,IAASY,EACX,KAAO/sB,EAAQi0B,IAAUpJ,EAAO7qB,GAAO8qB,MACrC9qB,IAIJ,KAAOA,EAAQi0B,GAASpJ,EAAO7qB,GAAO8qB,MACpC9qB,IASF,IANAA,GAASi0B,EAEL9H,IACFlsB,GAAOD,GAGFC,EAAMD,GAAS6qB,EAAO5qB,EAAMg0B,GAAOnJ,MACxC7qB,IAIF,MAAO,CACLD,MAAOA,EACPC,IAHFA,GAAOg0B,GA4DgBwwC,CAAgB55C,EAAQoJ,EAAO9H,EAAMY,GACxD/sB,EAAQwkE,EAAiBxkE,MACzBC,EAAMukE,EAAiBvkE,IAE3B,OACSk1B,IADQ,IAAbpI,EACmB,CAAC,CACpB/sB,MAAOA,EACPC,IAAKA,EACLksB,KAAMA,IA7DZ,SAAuBtB,EAAQ7qB,EAAOuF,EAAK4mB,GACzC,IAIIlsB,EAJAg0B,EAAQpJ,EAAO1tB,OACfoxB,EAAS,GACT4d,EAAOnsC,EACPmtB,EAAOtC,EAAO7qB,GAGlB,IAAKC,EAAMD,EAAQ,EAAGC,GAAOsF,IAAOtF,EAAK,CACvC,IAAI26B,EAAM/P,EAAO5qB,EAAMg0B,GAEnB2G,EAAI9P,MAAQ8P,EAAI8Z,KACbvnB,EAAKrC,OACRqB,GAAO,EACPoC,EAAOtR,KAAK,CACVjd,MAAOA,EAAQi0B,EACfh0B,KAAMA,EAAM,GAAKg0B,EACjB9H,KAAMA,IAERnsB,EAAQmsC,EAAOvR,EAAI8Z,KAAOz0C,EAAM,OAGlCksC,EAAOlsC,EAEHktB,EAAKrC,OACP9qB,EAAQC,IAIZktB,EAAOyN,EAWT,OARa,OAATuR,GACF5d,EAAOtR,KAAK,CACVjd,MAAOA,EAAQi0B,EACfh0B,IAAKksC,EAAOlY,EACZ9H,KAAMA,IAIHoC,EA4Bcm2C,CAAc75C,EAAQ7qB,EAFjCC,EAAMD,EAAQC,EAAMg0B,EAAQh0B,IACjBkhB,EAAKs1B,WAAuB,IAAVz2C,GAAeC,IAAQg0B,EAAQ,GAJhEpJ,EAAQuK,GCg+KiCuvC,CAAiBptD,KAAMA,KAAKhV,QAAQ4xB,YAEhF,CACDl5B,IAAK,QACLN,MAAO,WACL,IAAIs6B,EAAW1d,KAAK0d,SAChBpK,EAAStT,KAAKsT,OAClB,OAAOoK,EAAS93B,QAAU0tB,EAAOoK,EAAS,GAAGj1B,SAE9C,CACD/E,IAAK,OACLN,MAAO,WACL,IAAIs6B,EAAW1d,KAAK0d,SAChBpK,EAAStT,KAAKsT,OACdoJ,EAAQgB,EAAS93B,OACrB,OAAO82B,GAASpJ,EAAOoK,EAAShB,EAAQ,GAAGh0B,OAE5C,CACDhF,IAAK,cACLN,MAAO,SAAqBklB,EAAOxkB,GACjC,IAAI2c,EAAKT,KACLhV,EAAUyV,EAAGzV,QACb5H,EAAQklB,EAAMxkB,GACdwvB,EAAS7S,EAAG6S,OAEZoK,EAAWD,GAAehd,EAAI,CAChC3c,SAAUA,EACV2E,MAAOrF,EACPsF,IAAKtF,IAGP,GAAKs6B,EAAS93B,OAAd,CAIA,IAIIzD,EAAGgI,EAJH6sB,EAAS,GAETq2C,EAlKV,SAAiCriE,GAC/B,OAAIA,EAAQmgE,QACHlxC,GAGLjvB,EAAQ6qB,SAA8C,aAAnC7qB,EAAQyqB,uBACtByE,GAGFF,GAyJgBszC,CAAwBtiE,GAI3C,IAAK7I,EAAI,EAAGgI,EAAOuzB,EAAS93B,OAAQzD,EAAIgI,IAAQhI,EAAG,CACjD,IAAIorE,EAAc7vC,EAASv7B,GACvBsG,EAAQ8kE,EAAY9kE,MACpBC,EAAM6kE,EAAY7kE,IAClBkL,EAAK0f,EAAO7qB,GACZoL,EAAKyf,EAAO5qB,GAEhB,GAAIkL,IAAOC,EAAX,CAKA,IAEI25D,EAAeH,EAAaz5D,EAAIC,EAF5B1H,KAAKyB,KAAKxK,EAAQwQ,EAAG9P,KAAc+P,EAAG/P,GAAY8P,EAAG9P,KAElBkH,EAAQmgE,SAEnDqC,EAAa1pE,GAAYwkB,EAAMxkB,GAC/BkzB,EAAOtR,KAAK8nD,QATVx2C,EAAOtR,KAAK9R,GAYhB,OAAyB,IAAlBojB,EAAOpxB,OAAeoxB,EAAO,GAAKA,KAE1C,CACDtzB,IAAK,cACLN,MAAO,SAAqBkgB,EAAKsZ,EAAS+lB,GAGxC,OAFoBupB,GAAkBlsD,KAE/BwsD,CAAclpD,EAAKtD,KAAM4c,EAAS+lB,KAE1C,CACDj/C,IAAK,OACLN,MAAO,SAAckgB,EAAK7a,EAAOi0B,GAC/B,IAAIjc,EAAKT,KACL0d,EAAWjd,EAAGid,SAEd8uC,EAAgBN,GAAkBzrD,GAElCmU,EAAOnU,EAAG+jB,MACd/7B,EAAQA,GAAS,EACjBi0B,EAAQA,GAASjc,EAAG6S,OAAO1tB,OAAS6C,EAEpC,IACIq1B,EADAC,EAAa,GAA2BL,GAG5C,IACE,IAAKK,EAAW75B,MAAO45B,EAASC,EAAWn6B,KAAKyC,MAAO,CAErDuuB,GAAQ43C,EAAclpD,EAAK7C,EADbqd,EAAO16B,MACmB,CACtCqF,MAAOA,EACPC,IAAKD,EAAQi0B,EAAQ,KAGzB,MAAOj2B,GACPs3B,EAAWz3B,EAAEG,GACb,QACAs3B,EAAWv3B,IAGb,QAASouB,IAEV,CACDlxB,IAAK,OACLN,MAAO,SAAckgB,EAAKqsB,EAAWlnC,EAAOi0B,GAC1C,IAAIjc,EAAKT,KACLhV,EAAUyV,EAAGzV,SAAW,IACfyV,EAAG6S,QAAU,IAEd1tB,QAAWoF,EAAQmd,cAI/B7E,EAAIyC,OAEJ,GAAMzC,EAAK7C,EAAIhY,EAAOi0B,GAEtBpZ,EAAI6C,UAEA1F,EAAGo8B,WACLp8B,EAAGusD,gBAAiB,EACpBvsD,EAAG6rD,WAAQr5D,QAKV05D,EAtLsB,CAuL7B,IA2BF,SAASc,GAAU5zC,EAAIluB,EAAKw9B,EAAM0X,GAChC,IAAI71C,EAAU6uB,EAAG7uB,QAGb5H,EADey2B,EAAG4vB,SAAS,CAACtgB,GAAO0X,GACd1X,GAEzB,OAAOh9B,KAAKyB,IAAIjC,EAAMvI,GAAS4H,EAAQsc,OAAStc,EAAQ0iE,UA/B1D,GAAY9kE,GAAK,OACjB,GAAYqZ,SAAW,CACrBoc,eAAgB,OAChBC,WAAY,GACZC,iBAAkB,EAClBC,gBAAiB,QACjBrW,YAAa,EACb2N,iBAAiB,EACjBL,uBAAwB,UACxBvN,MAAM,EACNsN,UAAU,EACV21C,SAAS,EACTt1C,QAAS,GAEX,GAAY8zB,cAAgB,CAC1BtnC,gBAAiB,kBACjBC,YAAa,eAEf,GAAYgO,YAAc,CACxBxL,aAAa,EACbE,WAAY,SAAoBtiB,GAC9B,MAAgB,eAATA,GAAkC,SAATA,IAapC,IAAI,GAA4B,SAAUirE,GACxCvuC,GAAUwuC,EAAcD,GAExB,IAAIE,EAAWnuC,GAAakuC,GAE5B,SAASA,EAAa3pC,GACpB,IAAI6pC,EAcJ,OAZA,GAAgB9tD,KAAM4tD,IAEtBE,EAASD,EAASvrE,KAAK0d,OAChBhV,aAAUiI,EACjB66D,EAAOhlC,YAAS71B,EAChB66D,EAAOv6C,UAAOtgB,EACd66D,EAAO3wB,UAAOlqC,EAEVgxB,GACFphC,OAAO6c,OAAO4gB,GAAuBwtC,GAAS7pC,GAGzC6pC,EAoET,OAjEA,GAAaF,EAAc,CAAC,CAC1BlqE,IAAK,UACLN,MAAO,SAAiB2qE,EAAQC,EAAQntB,GACtC,IAAI71C,EAAUgV,KAAKhV,QAEfijE,EAAkBjuD,KAAKypC,SAAS,CAAC,IAAK,KAAM5I,GAC5CpzC,EAAIwgE,EAAgBxgE,EACpBC,EAAIugE,EAAgBvgE,EAExB,OAAOvB,KAAKiB,IAAI2gE,EAAStgE,EAAG,GAAKtB,KAAKiB,IAAI4gE,EAAStgE,EAAG,GAAKvB,KAAKiB,IAAIpC,EAAQ0iE,UAAY1iE,EAAQsc,OAAQ,KAEzG,CACD5jB,IAAK,WACLN,MAAO,SAAkB2qE,EAAQltB,GAC/B,OAAO4sB,GAAUztD,KAAM+tD,EAAQ,IAAKltB,KAErC,CACDn9C,IAAK,WACLN,MAAO,SAAkB4qE,EAAQntB,GAC/B,OAAO4sB,GAAUztD,KAAMguD,EAAQ,IAAKntB,KAErC,CACDn9C,IAAK,iBACLN,MAAO,SAAwBy9C,GAC7B,IAAIqtB,EAAkBluD,KAAKypC,SAAS,CAAC,IAAK,KAAM5I,GAIhD,MAAO,CACLpzC,EAJMygE,EAAgBzgE,EAKtBC,EAJMwgE,EAAgBxgE,KAOzB,CACDhK,IAAK,OACLN,MAAO,SAAc4H,GAEnB,IAAIsc,GADJtc,EAAUA,GAAWgV,KAAKhV,SAAW,IAChBsc,QAAU,EAG/B,OAAgC,IAFhCA,EAASnb,KAAK6B,IAAIsZ,EAAQA,GAAUtc,EAAQmjE,aAAe,KACzC7mD,GAAUtc,EAAQmd,aAAe,MAGpD,CACDzkB,IAAK,OACLN,MAAO,SAAckgB,GACnB,IAAI7C,EAAKT,KACLhV,EAAUyV,EAAGzV,QAEbyV,EAAG8S,MAAQvoB,EAAQsc,OAAS,KAIhChE,EAAI4G,YAAclf,EAAQsX,YAC1BgB,EAAI6G,UAAYnf,EAAQmd,YACxB7E,EAAImH,UAAYzf,EAAQqX,gBACxB2E,GAAU1D,EAAKtY,EAASyV,EAAGhT,EAAGgT,EAAG/S,MAElC,CACDhK,IAAK,WACLN,MAAO,WACL,IAAI4H,EAAUgV,KAAKhV,SAAW,GAC9B,OAAOA,EAAQsc,OAAStc,EAAQ0iE,cAI7BE,EAxFuB,CAyF9B,IAiBF,SAASQ,GAAaC,EAAKxtB,GACzB,IAOIp4B,EAAMC,EAAOC,EAAKC,EAAQ0lD,EAP1BC,EAAgBF,EAAI5kB,SAAS,CAAC,IAAK,IAAK,OAAQ,QAAS,UAAW5I,GACpEpzC,EAAI8gE,EAAc9gE,EAClBC,EAAI6gE,EAAc7gE,EAClBsxB,EAAOuvC,EAAcvvC,KACrBvZ,EAAQ8oD,EAAc9oD,MACtBsB,EAASwnD,EAAcxnD,OAkB3B,OAdIsnD,EAAIx6B,YACNy6B,EAAOvnD,EAAS,EAChB0B,EAAOtc,KAAK4B,IAAIN,EAAGuxB,GACnBtW,EAAQvc,KAAK6B,IAAIP,EAAGuxB,GACpBrW,EAAMjb,EAAI4gE,EACV1lD,EAASlb,EAAI4gE,IAGb7lD,EAAOhb,GADP6gE,EAAO7oD,EAAQ,GAEfiD,EAAQjb,EAAI6gE,EACZ3lD,EAAMxc,KAAK4B,IAAIL,EAAGsxB,GAClBpW,EAASzc,KAAK6B,IAAIN,EAAGsxB,IAGhB,CACLvW,KAAMA,EACNE,IAAKA,EACLD,MAAOA,EACPE,OAAQA,GAIZ,SAAS4lD,GAAmBH,GAC1B,IAAI7gB,EAAO6gB,EAAIrjE,QAAQyjE,cACnBvpC,EAAM,GAEV,OAAKsoB,GAKLtoB,EADAsoB,EAAO6gB,EAAIx6B,WAAa66B,GAAUlhB,EAAM,OAAQ,QAAS6gB,EAAIrvC,KAAOqvC,EAAI5gE,GAAKihE,GAAUlhB,EAAM,SAAU,MAAO6gB,EAAIrvC,KAAOqvC,EAAI3gE,KACjH,EACLw3B,GALEA,EAQX,SAASwpC,GAAUlhB,EAAM7+C,EAAGC,EAAG9E,GAW/B,IAAc6kE,EAAMtkE,EAAIukE,EAHtB,OAPI9kE,GAUkB8kE,EATChgE,EACrB4+C,EAAOqhB,GADPrhB,GASUmhB,EATEnhB,MASInjD,EATEsE,GAUCigE,EAAKD,IAASC,EAAKvkE,EAAKskE,EATrB//D,EAAGD,IAEzB6+C,EAAOqhB,GAASrhB,EAAM7+C,EAAGC,GAGpB4+C,EAOT,SAASqhB,GAASx8D,EAAG5J,EAAOC,GAC1B,MAAa,UAAN2J,EAAgB5J,EAAc,QAAN4J,EAAc3J,EAAM2J,EAGrD,SAASy8D,GAAYv7C,EAAMnwB,EAAO2K,EAAKC,GACrC,OAAOulB,EAAO,EAAIpnB,KAAK6B,IAAI7B,KAAK4B,IAAI3K,EAAO4K,GAAMD,GAgCnD,SAASghE,GAAcV,GACrB,IAAIxxC,EAASuxC,GAAaC,GACtB5oD,EAAQoX,EAAOnU,MAAQmU,EAAOpU,KAC9B1B,EAAS8V,EAAOjU,OAASiU,EAAOlU,IAChCy0B,EAjCN,SAA0BixB,EAAKW,EAAMC,GACnC,IAAI7rE,EAAQirE,EAAIrjE,QAAQmd,YACpBoL,EAAOi7C,GAAmBH,GAC1BzrE,EAAI0pB,GAAOlpB,GACf,MAAO,CACLC,EAAGyrE,GAAYv7C,EAAK5K,IAAK/lB,EAAE+lB,IAAK,EAAGsmD,GACnChsE,EAAG6rE,GAAYv7C,EAAK7K,MAAO9lB,EAAE8lB,MAAO,EAAGsmD,GACvCpgE,EAAGkgE,GAAYv7C,EAAK3K,OAAQhmB,EAAEgmB,OAAQ,EAAGqmD,GACzC7sE,EAAG0sE,GAAYv7C,EAAK9K,KAAM7lB,EAAE6lB,KAAM,EAAGumD,IAyB1BE,CAAiBb,EAAK5oD,EAAQ,EAAGsB,EAAS,GACnDO,EAtBN,SAA2B+mD,EAAKW,EAAMC,GACpC,IACIx6B,EADiB45B,EAAI5kB,SAAS,CAAC,uBACKhV,mBAEpCrxC,EAAQirE,EAAIrjE,QAAQ27D,aACpB/jE,EAAI2pB,GAAcnpB,GAClB+rE,EAAOhjE,KAAK4B,IAAIihE,EAAMC,GACtB17C,EAAOi7C,GAAmBH,GAC1Be,EAAe36B,GAAsBxrC,EAAS7F,GAClD,MAAO,CACLkoB,QAASwjD,IAAaM,GAAgB77C,EAAK5K,KAAO4K,EAAK9K,KAAM7lB,EAAE0oB,QAAS,EAAG6jD,GAC3E1jD,SAAUqjD,IAAaM,GAAgB77C,EAAK5K,KAAO4K,EAAK7K,MAAO9lB,EAAE6oB,SAAU,EAAG0jD,GAC9E5jD,WAAYujD,IAAaM,GAAgB77C,EAAK3K,QAAU2K,EAAK9K,KAAM7lB,EAAE2oB,WAAY,EAAG4jD,GACpF3jD,YAAasjD,IAAaM,GAAgB77C,EAAK3K,QAAU2K,EAAK7K,MAAO9lB,EAAE4oB,YAAa,EAAG2jD,IAS5EE,CAAkBhB,EAAK5oD,EAAQ,EAAGsB,EAAS,GACxD,MAAO,CACLuoD,MAAO,CACL7hE,EAAGovB,EAAOpU,KACV/a,EAAGmvB,EAAOlU,IACVvV,EAAGqS,EACHhT,EAAGsU,EACHO,OAAQA,GAEVqhD,MAAO,CACLl7D,EAAGovB,EAAOpU,KAAO20B,EAAOh7C,EACxBsL,EAAGmvB,EAAOlU,IAAMy0B,EAAO/5C,EACvB+P,EAAGqS,EAAQ23B,EAAOh7C,EAAIg7C,EAAOn6C,EAC7BwP,EAAGsU,EAASq2B,EAAO/5C,EAAI+5C,EAAOxuC,EAC9B0Y,OAAQ,CACNgE,QAASnf,KAAK6B,IAAI,EAAGsZ,EAAOgE,QAAUnf,KAAK6B,IAAIovC,EAAO/5C,EAAG+5C,EAAOh7C,IAChEqpB,SAAUtf,KAAK6B,IAAI,EAAGsZ,EAAOmE,SAAWtf,KAAK6B,IAAIovC,EAAO/5C,EAAG+5C,EAAOn6C,IAClEsoB,WAAYpf,KAAK6B,IAAI,EAAGsZ,EAAOiE,WAAapf,KAAK6B,IAAIovC,EAAOxuC,EAAGwuC,EAAOh7C,IACtEopB,YAAarf,KAAK6B,IAAI,EAAGsZ,EAAOkE,YAAcrf,KAAK6B,IAAIovC,EAAOxuC,EAAGwuC,EAAOn6C,OAMhF,SAASssE,GAASlB,EAAK5gE,EAAGC,EAAGmzC,GAC3B,IAAI2uB,EAAc,OAAN/hE,EACRgiE,EAAc,OAAN/hE,EAERmvB,EAASwxC,KADEmB,GAASC,IACSrB,GAAaC,EAAKxtB,GACnD,OAAOhkB,IAAW2yC,GAAS/hE,GAAKovB,EAAOpU,MAAQhb,GAAKovB,EAAOnU,SAAW+mD,GAAS/hE,GAAKmvB,EAAOlU,KAAOjb,GAAKmvB,EAAOjU,QAOhH,SAAS8mD,GAAkBpsD,EAAK2E,GAC9B3E,EAAI2E,KAAKA,EAAKxa,EAAGwa,EAAKva,EAAGua,EAAK7U,EAAG6U,EAAKxV,GA1JxC,GAAa7J,GAAK,QAClB,GAAaqZ,SAAW,CACtBkG,YAAa,EACbulD,UAAW,EACX3yB,iBAAkB,EAClBozB,YAAa,EACb/mD,WAAY,SACZE,OAAQ,EACRD,SAAU,GAEZ,GAAasiC,cAAgB,CAC3BtnC,gBAAiB,kBACjBC,YAAa,eAiJf,IAAI,GAA0B,SAAUqtD,GACtCvwC,GAAUwwC,EAAYD,GAEtB,IAAIE,EAAWnwC,GAAakwC,GAE5B,SAASA,EAAW3rC,GAClB,IAAI6rC,EAeJ,OAbA,GAAgB9vD,KAAM4vD,IAEtBE,EAAUD,EAASvtE,KAAK0d,OAChBhV,aAAUiI,EAClB68D,EAAQj8B,gBAAa5gC,EACrB68D,EAAQ9wC,UAAO/rB,EACf68D,EAAQrqD,WAAQxS,EAChB68D,EAAQ/oD,YAAS9T,EAEbgxB,GACFphC,OAAO6c,OAAO4gB,GAAuBwvC,GAAU7rC,GAG1C6rC,EAkET,OA/DA,GAAaF,EAAY,CAAC,CACxBlsE,IAAK,OACLN,MAAO,SAAckgB,GACnB,IAnCagE,EAmCTtc,EAAUgV,KAAKhV,QAEf+kE,EAAiBhB,GAAc/uD,MAC/B2oD,EAAQoH,EAAepH,MACvB2G,EAAQS,EAAeT,MAEvBU,GAzCS1oD,EAyCegoD,EAAMhoD,QAxCxBgE,SAAWhE,EAAOmE,UAAYnE,EAAOiE,YAAcjE,EAAOkE,YAwCxBH,GAAqBqkD,GACjEpsD,EAAIyC,OAEAupD,EAAMl8D,IAAMu1D,EAAMv1D,GAAKk8D,EAAM78D,IAAMk2D,EAAMl2D,IAC3C6Q,EAAIqE,YACJqoD,EAAY1sD,EAAKgsD,GACjBhsD,EAAIwF,OACJknD,EAAY1sD,EAAKqlD,GACjBrlD,EAAImH,UAAYzf,EAAQsX,YACxBgB,EAAI4E,KAAK,YAGX5E,EAAIqE,YACJqoD,EAAY1sD,EAAKqlD,GACjBrlD,EAAImH,UAAYzf,EAAQqX,gBACxBiB,EAAI4E,OACJ5E,EAAI6C,YAEL,CACDziB,IAAK,UACLN,MAAO,SAAiB2qE,EAAQC,EAAQntB,GACtC,OAAO0uB,GAASvvD,KAAM+tD,EAAQC,EAAQntB,KAEvC,CACDn9C,IAAK,WACLN,MAAO,SAAkB2qE,EAAQltB,GAC/B,OAAO0uB,GAASvvD,KAAM+tD,EAAQ,KAAMltB,KAErC,CACDn9C,IAAK,WACLN,MAAO,SAAkB4qE,EAAQntB,GAC/B,OAAO0uB,GAASvvD,KAAM,KAAMguD,EAAQntB,KAErC,CACDn9C,IAAK,iBACLN,MAAO,SAAwBy9C,GAC7B,IAAIovB,EAAkBjwD,KAAKypC,SAAS,CAAC,IAAK,IAAK,OAAQ,cAAe5I,GAClEpzC,EAAIwiE,EAAgBxiE,EACpBC,EAAIuiE,EAAgBviE,EACpBsxB,EAAOixC,EAAgBjxC,KACvB6U,EAAao8B,EAAgBp8B,WAEjC,MAAO,CACLpmC,EAAGomC,GAAcpmC,EAAIuxB,GAAQ,EAAIvxB,EACjCC,EAAGmmC,EAAanmC,GAAKA,EAAIsxB,GAAQ,KAGpC,CACDt7B,IAAK,WACLN,MAAO,SAAkB+lC,GACvB,MAAgB,MAATA,EAAenpB,KAAKyF,MAAQ,EAAIzF,KAAK+G,OAAS,MAIlD6oD,EAvFqB,CAwF5B,IAEF,GAAWhnE,GAAK,MAChB,GAAWqZ,SAAW,CACpBwsD,cAAe,QACftmD,YAAa,EACbw+C,aAAc,EACdlyB,oBAAoB,EACpBrtB,gBAAYnU,GAEd,GAAW02C,cAAgB,CACzBtnC,gBAAiB,kBACjBC,YAAa,eA8Hf,SAAS4tD,GAAsB9kC,GAC7B,GAAIA,EAAQwR,WAAY,CACtB,IAAIz3B,EAAOimB,EAAQZ,aACZY,EAAQwR,kBACRxR,EAAQZ,MACf3nC,OAAOC,eAAesoC,EAAS,OAAQ,CACrChoC,MAAO+hB,KAKb,SAASgrD,GAAmBztD,GAC1BA,EAAMyC,KAAK5C,SAASyL,SAAQ,SAAUod,GACpC8kC,GAAsB9kC,MAgC1B,IAAIglC,GAAoB,CACtBxnE,GAAI,aACJqZ,SAAU,CACRouD,UAAW,UACXjlB,SAAS,GAEXklB,qBAAsB,SAA8B5tD,EAAO3a,EAAMiD,GAC/D,GAAKA,EAAQogD,QAAb,CAKA,IAAI9G,EAAiB5hC,EAAM+C,MAC3B/C,EAAMyC,KAAK5C,SAASyL,SAAQ,SAAUod,EAAS9gC,GAC7C,IAAIkgC,EAAQY,EAAQZ,MAChB/mB,EAAY2nB,EAAQ3nB,UACpBwkB,EAAOvlB,EAAM2pB,eAAe/hC,GAC5B6a,EAAOqlB,GAASY,EAAQjmB,KAE5B,GAAsD,MAAlD2H,GAAQ,CAACrJ,EAAWf,EAAM1X,QAAQyY,aAIpB,SAAdwkB,EAAKl/B,KAAT,CAIA,IAAIwnE,EAAQ7tD,EAAMyB,OAAO8jB,EAAKuD,SAE9B,IAAmB,WAAf+kC,EAAMxnE,MAAoC,SAAfwnE,EAAMxnE,QAIjC2Z,EAAM1X,QAAQ+Y,QAAlB,CAIA,IAAIysD,EAjEV,SAAmDvoC,EAAM3U,GACvD,IAAI2oB,EAAa3oB,EAAO1tB,OACpB6C,EAAQ,EAERwgC,EAAShB,EAAKgB,OAEdwnC,EAAyBxnC,EAAO4F,gBAChC9gC,EAAM0iE,EAAuB1iE,IAC7BC,EAAMyiE,EAAuBziE,IAC7B8gC,EAAa2hC,EAAuB3hC,WACpCC,EAAa0hC,EAAuB1hC,WAYxC,OAVID,IACFrmC,EAAQ4G,GAAYme,GAAa8F,EAAQ2V,EAAOE,KAAMp7B,GAAKwf,GAAI,EAAG0uB,EAAa,IAS1E,CACLxzC,MAAOA,EACPi0B,MAREqS,EACM1/B,GAAYme,GAAa8F,EAAQ2V,EAAOE,KAAMn7B,GAAKsf,GAAK,EAAG7kB,EAAOwzC,GAAcxzC,EAEhFwzC,EAAaxzC,GA8CUioE,CAA0CzoC,EAAM9iB,GACzE1c,EAAQ+nE,EAAuB/nE,MAC/Bi0B,EAAQ8zC,EAAuB9zC,MAEnC,GAAIA,GAAS,EAAI4nB,EACf4rB,GAAsB9kC,OADxB,CAoBA,IAAIulC,EAEJ,OAjBI7nE,EAAc0hC,KAChBY,EAAQZ,MAAQrlB,SACTimB,EAAQjmB,KACftiB,OAAOC,eAAesoC,EAAS,OAAQ,CACrClmC,cAAc,EACdnC,YAAY,EACZC,IAAK,WACH,OAAOgd,KAAK48B,YAEdx8B,IAAK,SAAa3d,GAChBud,KAAKwqB,MAAQ/nC,MAOXuI,EAAQqlE,WACd,IAAK,OACHM,EAlOV,SAAwBxrD,EAAM1c,EAAOi0B,EAAO4nB,EAAgBt5C,GAC1D,IAAI4lE,EAAU5lE,EAAQ4lE,SAAWtsB,EAEjC,GAAIssB,GAAWl0C,EACb,OAAOvX,EAAKje,MAAMuB,EAAOA,EAAQi0B,GAGnC,IAKIv6B,EAAG0uE,EAAcC,EAASvoD,EAAMwoD,EALhCJ,EAAY,GACZK,GAAet0C,EAAQ,IAAMk0C,EAAU,GACvCK,EAAe,EACfC,EAAWzoE,EAAQi0B,EAAQ,EAC3B/tB,EAAIlG,EAIR,IAFAkoE,EAAUM,KAAkB9rD,EAAKxW,GAE5BxM,EAAI,EAAGA,EAAIyuE,EAAU,EAAGzuE,IAAK,CAChC,IAAI0pE,EAAO,EACPsF,EAAO,EACPxyD,OAAI,EACJyyD,EAAgBjlE,KAAKkB,OAAOlL,EAAI,GAAK6uE,GAAe,EAAIvoE,EACxD4oE,EAAcllE,KAAK4B,IAAI5B,KAAKkB,OAAOlL,EAAI,GAAK6uE,GAAe,EAAGt0C,GAASj0B,EACvE6oE,EAAiBD,EAAcD,EAEnC,IAAKzyD,EAAIyyD,EAAezyD,EAAI0yD,EAAa1yD,IACvCktD,GAAQ1mD,EAAKxG,GAAGlR,EAChB0jE,GAAQhsD,EAAKxG,GAAGjR,EAGlBm+D,GAAQyF,EACRH,GAAQG,EACR,IAAIC,EAAYplE,KAAKkB,MAAMlL,EAAI6uE,GAAe,EAAIvoE,EAC9C+oE,EAAUrlE,KAAKkB,OAAOlL,EAAI,GAAK6uE,GAAe,EAAIvoE,EAClDgpE,EAAUtsD,EAAKxW,GACf+iE,EAAUD,EAAQhkE,EAClBkkE,EAAUF,EAAQ/jE,EAGtB,IAFAojE,EAAUvoD,GAAQ,EAEb5J,EAAI4yD,EAAW5yD,EAAI6yD,EAAS7yD,KAC/B4J,EAAO,GAAMpc,KAAKyB,KAAK8jE,EAAU7F,IAAS1mD,EAAKxG,GAAGjR,EAAIikE,IAAYD,EAAUvsD,EAAKxG,GAAGlR,IAAM0jE,EAAOQ,KAEtFb,IACTA,EAAUvoD,EACVsoD,EAAe1rD,EAAKxG,GACpBoyD,EAAQpyD,GAIZgyD,EAAUM,KAAkBJ,EAC5BliE,EAAIoiE,EAIN,OADAJ,EAAUM,KAAkB9rD,EAAK+rD,GAC1BP,EA8KaiB,CAAezsD,EAAM1c,EAAOi0B,EAAO4nB,EAAgBt5C,GAC/D,MAEF,IAAK,UACH2lE,EA/KV,SAA0BxrD,EAAM1c,EAAOi0B,EAAO4nB,GAC5C,IAEIniD,EAAGmmB,EAAO7a,EAAGC,EAAG89D,EAAOqG,EAAUC,EAAUC,EAAYj4B,EAAMF,EAF7DiyB,EAAO,EACPC,EAAS,EAET6E,EAAY,GACZO,EAAWzoE,EAAQi0B,EAAQ,EAC3Bs1C,EAAO7sD,EAAK1c,GAAOgF,EAEnBwkE,EADO9sD,EAAK+rD,GAAUzjE,EACVukE,EAEhB,IAAK7vE,EAAIsG,EAAOtG,EAAIsG,EAAQi0B,IAASv6B,EAAG,CAEtCsL,IADA6a,EAAQnD,EAAKhjB,IACFsL,EAAIukE,GAAQC,EAAK3tB,EAC5B52C,EAAI4a,EAAM5a,EACV,IAAIu+D,EAAa,EAAJx+D,EAEb,GAAIw+D,IAAWT,EACT99D,EAAIosC,GACNA,EAAOpsC,EACPmkE,EAAW1vE,GACFuL,EAAIksC,IACbA,EAAOlsC,EACPokE,EAAW3vE,GAGb0pE,GAAQC,EAASD,EAAOvjD,EAAM7a,KAAOq+D,MAChC,CACL,IAAIoG,EAAY/vE,EAAI,EAEpB,IAAK2G,EAAc+oE,KAAc/oE,EAAcgpE,GAAW,CACxD,IAAIK,EAAqBhmE,KAAK4B,IAAI8jE,EAAUC,GACxCM,EAAqBjmE,KAAK6B,IAAI6jE,EAAUC,GAExCK,IAAuBJ,GAAcI,IAAuBD,GAC9DvB,EAAUjrD,KAAKmZ,GAAcA,GAAc,GAAI1Z,EAAKgtD,IAAsB,GAAI,CAC5E1kE,EAAGo+D,KAIHuG,IAAuBL,GAAcK,IAAuBF,GAC9DvB,EAAUjrD,KAAKmZ,GAAcA,GAAc,GAAI1Z,EAAKitD,IAAsB,GAAI,CAC5E3kE,EAAGo+D,KAKL1pE,EAAI,GAAK+vE,IAAcH,GACzBpB,EAAUjrD,KAAKP,EAAK+sD,IAGtBvB,EAAUjrD,KAAK4C,GACfkjD,EAAQS,EACRH,EAAS,EACThyB,EAAOF,EAAOlsC,EACdmkE,EAAWC,EAAWC,EAAa5vE,GAIvC,OAAOwuE,EAqHa0B,CAAiBltD,EAAM1c,EAAOi0B,EAAO4nB,GACjD,MAEF,QACE,MAAM,IAAI9zB,MAAM,qCAAqCnQ,OAAOrV,EAAQqlE,UAAW,MAGnFjlC,EAAQwR,WAAa+zB,aApErBR,GAAmBztD,IAuEvB4vD,QAAS,SAAiB5vD,GACxBytD,GAAmBztD,KA8BvB,SAAS6vD,GAAW3oD,EAAMrf,EAAOmyB,GAC/B,IAAIxU,EArBN,SAAyB0B,GACvB,IAAI5e,EAAU4e,EAAK5e,QACfwnE,EAAaxnE,EAAQkd,KACrBA,EAAO3e,EAAeipE,GAAcA,EAAW9sE,OAAQ8sE,GAM3D,YAJav/D,IAATiV,IACFA,IAASld,EAAQqX,kBAGN,IAAT6F,GAA2B,OAATA,KAIT,IAATA,EACK,SAGFA,GAIIuqD,CAAgB7oD,GAE3B,GAAI3gB,EAASif,GACX,OAAO1a,MAAM0a,EAAK9kB,QAAiB8kB,EAGrC,IAAIxiB,EAASiE,WAAWue,GAExB,OAAIhf,EAAexD,IAAWyG,KAAKkB,MAAM3H,KAAYA,GACnC,MAAZwiB,EAAK,IAA0B,MAAZA,EAAK,KAC1BxiB,EAAS6E,EAAQ7E,KAGfA,IAAW6E,GAAS7E,EAAS,GAAKA,GAAUg3B,IAIzCh3B,GAGF,CAAC,SAAU,QAAS,MAAO,SAASoF,QAAQod,IAAS,GAAKA,EA+BnE,IAAI,GAAyB,WAC3B,SAASwqD,EAAU7oD,GACjB,GAAgB7J,KAAM0yD,GAEtB1yD,KAAKvS,EAAIoc,EAAKpc,EACduS,KAAKtS,EAAImc,EAAKnc,EACdsS,KAAKsH,OAASuC,EAAKvC,OA+BrB,OA5BA,GAAaorD,EAAW,CAAC,CACvBhvE,IAAK,cACLN,MAAO,SAAqBkgB,EAAKuZ,EAAQhT,GACvC,IAAIpc,EAAIuS,KAAKvS,EACTC,EAAIsS,KAAKtS,EACT4Z,EAAStH,KAAKsH,OAMlB,OALAuV,EAASA,GAAU,CACjBp0B,MAAO,EACPC,IAAK0D,GAEPkX,EAAIsE,IAAIna,EAAGC,EAAG4Z,EAAQuV,EAAOn0B,IAAKm0B,EAAOp0B,OAAO,IACxCohB,EAAKgT,SAEd,CACDn5B,IAAK,cACLN,MAAO,SAAqBklB,GAC1B,IAAI7a,EAAIuS,KAAKvS,EACTC,EAAIsS,KAAKtS,EACT4Z,EAAStH,KAAKsH,OACdvY,EAAQuZ,EAAMvZ,MAClB,MAAO,CACLtB,EAAGA,EAAItB,KAAKsE,IAAI1B,GAASuY,EACzB5Z,EAAGA,EAAIvB,KAAKqD,IAAIT,GAASuY,EACzBvY,MAAOA,OAKN2jE,EArCoB,GA4E7B,SAASC,GAAgBloE,GAGvB,OAFYA,EAAOyZ,OAAS,IAElBk7B,yBAvCZ,SAAiC30C,GAC/B,IAOItI,EAAGuyC,EAAQtxC,EAPX8gB,EAAQzZ,EAAOyZ,MACfgE,EAAOzd,EAAOyd,KACdld,EAAUkZ,EAAMlZ,QAChBpF,EAASse,EAAM0pB,YAAYhoC,OAC3BF,EAAS,GACT+C,EAAQuC,EAAQlB,QAAUoa,EAAMlW,IAAMkW,EAAMnW,IAC5CrF,EAAMsC,EAAQlB,QAAUoa,EAAMnW,IAAMmW,EAAMlW,IAa9C,GATE5K,EADW,UAAT8kB,EACMzf,EACU,QAATyf,EACDxf,EACCO,EAASif,GACVA,EAAK9kB,MAEL8gB,EAAMqwC,eAGZvpD,EAAQ8rC,KAAK4H,SAEf,OADAhK,EAASxwB,EAAMk7B,yBAAyB,EAAG32C,GACpC,IAAI,GAAU,CACnBgF,EAAGinC,EAAOjnC,EACVC,EAAGgnC,EAAOhnC,EACV4Z,OAAQpD,EAAMo6B,8BAA8Bl7C,KAIhD,IAAKjB,EAAI,EAAGA,EAAIyD,IAAUzD,EACxBuD,EAAOggB,KAAKxB,EAAMk7B,yBAAyBj9C,EAAGiB,IAGhD,OAAOsC,EAOEktE,CAAwBnoE,GA5GnC,SAA+BA,GAC7B,IAIIopC,EAJAg/B,EAAgBpoE,EAAOyZ,MACvBA,OAA0B,IAAlB2uD,EAA2B,GAAKA,EACxC3qD,EAAOzd,EAAOyd,KACdxiB,EAAS,KAab,MAVa,UAATwiB,EACFxiB,EAASwe,EAAM0E,OACG,QAATV,EACTxiB,EAASwe,EAAMyE,IACN1f,EAASif,GAClBxiB,EAASwe,EAAMkuB,iBAAiBlqB,EAAK9kB,OAC5B8gB,EAAM0vB,eACfluC,EAASwe,EAAM0vB,gBAGb1qC,EAAexD,GAEV,CACL+H,GAFFomC,EAAa3vB,EAAM4vB,gBAEDpuC,EAAS,KACzBgI,EAAGmmC,EAAa,KAAOnuC,GAIpB,KAsFAotE,CAAsBroE,GAG/B,SAASsoE,GAAetqE,EAAOC,EAAK4qB,GAClC,KAAO5qB,EAAMD,EAAOC,IAAO,CACzB,IAAI4f,EAAQgL,EAAO5qB,GAEnB,IAAK8E,MAAM8a,EAAM7a,KAAOD,MAAM8a,EAAM5a,GAClC,MAIJ,OAAOhF,EA0CT,SAASsqE,GAAevoE,GACtB,IAAIiY,EAAQjY,EAAOiY,MACfwB,EAAQzZ,EAAOyZ,MACf3Z,EAAQE,EAAOF,MACfqf,EAAOnf,EAAOmf,KACd0J,EAAS,GACToK,EAAW9T,EAAK8T,SAChBu1C,EAAerpD,EAAK0J,OACpB4/C,EAwBN,SAAuBxwD,EAAOnY,GAI5B,IAHA,IAAI4oE,EAAQ,GACRrhC,EAAQpvB,EAAM+9B,+BAETt+C,EAAI,EAAGA,EAAI2vC,EAAMlsC,OAAQzD,IAAK,CACrC,IAAI8lC,EAAO6J,EAAM3vC,GAEjB,GAAI8lC,EAAK19B,QAAUA,EACjB,MAGE6oE,GAA4BnrC,IAC9BkrC,EAAME,QAAQprC,EAAKmD,SAIvB,OAAO+nC,EAxCUG,CAAc5wD,EAAOnY,GACtC2oE,EAAWxtD,KAAK6tD,GAAmB,CACjC9lE,EAAG,KACHC,EAAGwW,EAAM0E,QACRgB,IAEH,IAAK,IAAIznB,EAAI,EAAGA,EAAIu7B,EAAS93B,OAAQzD,IAGnC,IAFA,IAAIy6B,EAAUc,EAASv7B,GAEdwc,EAAIie,EAAQn0B,MAAOkW,GAAKie,EAAQl0B,IAAKiW,IAC5C60D,GAAelgD,EAAQ2/C,EAAat0D,GAAIu0D,GAI5C,OAAO,IAAI,GAAY,CACrB5/C,OAAQA,EACRtoB,QAAS,KAIb,IAAIooE,GAA8B,SAAqCnrC,GACrE,MAAqB,SAAdA,EAAKl/B,OAAoBk/B,EAAKmT,QAsBvC,SAASo4B,GAAelgD,EAAQmgD,EAAaP,GAG3C,IAFA,IAAIQ,EAAY,GAEP/0D,EAAI,EAAGA,EAAIu0D,EAAWttE,OAAQ+Y,IAAK,CAC1C,IAEIg1D,EAAaC,GAFNV,EAAWv0D,GAEW80D,EAAa,KAC1CloB,EAAQooB,EAAWpoB,MACnB3W,EAAO++B,EAAW/+B,KAClBtsB,EAAQqrD,EAAWrrD,MAEvB,MAAKA,GAASijC,GAAS3W,GAIvB,GAAI2W,EACFmoB,EAAUL,QAAQ/qD,QAIlB,GAFAgL,EAAO5N,KAAK4C,IAEPssB,EACH,MAKNthB,EAAO5N,KAAKrd,MAAMirB,EAAQogD,GAG5B,SAASE,GAAUhqD,EAAM6pD,EAAa3vE,GACpC,IAAIwkB,EAAQsB,EAAKiqD,YAAYJ,EAAa3vE,GAE1C,IAAKwkB,EACH,MAAO,GAST,IANA,IAAIwrD,EAAaxrD,EAAMxkB,GACnB45B,EAAW9T,EAAK8T,SAChBq2C,EAAanqD,EAAK0J,OAClBi4B,GAAQ,EACR3W,GAAO,EAEFzyC,EAAI,EAAGA,EAAIu7B,EAAS93B,OAAQzD,IAAK,CACxC,IAAIy6B,EAAUc,EAASv7B,GACnB6xE,EAAaD,EAAWn3C,EAAQn0B,OAAO3E,GACvCmwE,EAAYF,EAAWn3C,EAAQl0B,KAAK5E,GAExC,GAAIgwE,GAAcE,GAAcF,GAAcG,EAAW,CACvD1oB,EAAQuoB,IAAeE,EACvBp/B,EAAOk/B,IAAeG,EACtB,OAIJ,MAAO,CACL1oB,MAAOA,EACP3W,KAAMA,EACNtsB,MAAOA,GA0BX,SAASirD,GAAmBW,EAAUtqD,GACpC,IAAI0J,EAAS,GACTkR,GAAQ,EASZ,OAPIlgC,EAAQ4vE,IACV1vC,GAAQ,EACRlR,EAAS4gD,GAET5gD,EArLJ,SAA4B4gD,EAAUtqD,GACpC,IAAIuqD,EAAQD,GAAY,GACpBE,EAAUD,EAAM1mE,EAChBA,OAAgB,IAAZ2mE,EAAqB,KAAOA,EAChCC,EAAUF,EAAMzmE,EAChBA,OAAgB,IAAZ2mE,EAAqB,KAAOA,EAEhCN,EAAanqD,EAAK0J,OAClBA,EAAS,GA4Bb,OA3BA1J,EAAK8T,SAAS1P,SAAQ,SAAUsmD,GAC9B,IAAI7rE,EAAQ6rE,EAAM7rE,MACdC,EAAM4rE,EAAM5rE,IAChBA,EAAMqqE,GAAetqE,EAAOC,EAAKqrE,GACjC,IAAIxoB,EAAQwoB,EAAWtrE,GACnBmsC,EAAOm/B,EAAWrrE,GAEZ,OAANgF,GACF4lB,EAAO5N,KAAK,CACVjY,EAAG89C,EAAM99C,EACTC,EAAGA,IAEL4lB,EAAO5N,KAAK,CACVjY,EAAGmnC,EAAKnnC,EACRC,EAAGA,KAEU,OAAND,IACT6lB,EAAO5N,KAAK,CACVjY,EAAGA,EACHC,EAAG69C,EAAM79C,IAEX4lB,EAAO5N,KAAK,CACVjY,EAAGA,EACHC,EAAGknC,EAAKlnC,QAIP4lB,EAiJIihD,CAAmBL,EAAUtqD,GAGjC0J,EAAO1tB,OAAS,IAAI,GAAY,CACrC0tB,OAAQA,EACRtoB,QAAS,CACP6qB,QAAS,GAEX2O,MAAOA,EACP0a,UAAW1a,IACR,KAGP,SAASgwC,GAAcppE,EAASb,EAAOkqE,GACrC,IAGI/uE,EAFAwiB,EADS9c,EAAQb,GACH2d,KACdwsD,EAAU,CAACnqE,GAGf,IAAKkqE,EACH,OAAOvsD,EAGT,MAAgB,IAATA,IAA6C,IAA3BwsD,EAAQ5pE,QAAQod,IAAc,CACrD,IAAKhf,EAAegf,GAClB,OAAOA,EAKT,KAFAxiB,EAAS0F,EAAQ8c,IAGf,OAAO,EAGT,GAAIxiB,EAAOmgC,QACT,OAAO3d,EAGTwsD,EAAQhvD,KAAKwC,GACbA,EAAOxiB,EAAOwiB,KAGhB,OAAO,EAGT,SAASqnB,GAAMjsB,EAAK5d,EAAQivE,GAC1BrxD,EAAIqE,YACJjiB,EAAO2mE,KAAK/oD,GACZA,EAAIyE,OAAOriB,EAAOkvC,OAAOnnC,EAAGknE,GAC5BrxD,EAAIyE,OAAOriB,EAAO6lD,QAAQ99C,EAAGknE,GAC7BrxD,EAAIuE,YACJvE,EAAIwF,OAGN,SAAS8rD,GAAU9wE,EAAUynD,EAAO3W,EAAMhgB,GACxC,IAAIA,EAAJ,CAIA,IAAInsB,EAAQ8iD,EAAMznD,GACd4E,EAAMksC,EAAK9wC,GAOf,MALiB,UAAbA,IACF2E,EAAQoG,GAAgBpG,GACxBC,EAAMmG,GAAgBnG,IAGjB,CACL5E,SAAUA,EACV2E,MAAOA,EACPC,IAAKA,IAIT,SAASmsE,GAASlmE,EAAGC,EAAGwd,EAAMzkB,GAC5B,OAAIgH,GAAKC,EACAjH,EAAGgH,EAAEyd,GAAOxd,EAAEwd,IAGhBzd,EAAIA,EAAEyd,GAAQxd,EAAIA,EAAEwd,GAAQ,EA4ErC,SAAS0oD,GAAWxxD,EAAKY,EAAO2Y,GAC9B,IAAIk4C,EAAwB7wD,EAAMxB,MAAMitB,UACpChnB,EAAMosD,EAAsBpsD,IAC5BC,EAASmsD,EAAsBnsD,OAE/BosD,EAAQn4C,GAAU,GAClB/4B,EAAWkxE,EAAMlxE,SACjB2E,EAAQusE,EAAMvsE,MACdC,EAAMssE,EAAMtsE,IAEC,MAAb5E,IACFwf,EAAIqE,YACJrE,EAAI2E,KAAKxf,EAAOkgB,EAAKjgB,EAAMD,EAAOmgB,EAASD,GAC3CrF,EAAIwF,QAIR,SAASmsD,GAAmB3xD,EAAK5d,EAAQ4iB,EAAOxkB,GAC9C,IAAIoxE,EAAoBxvE,EAAOmuE,YAAYvrD,EAAOxkB,GAE9CoxE,GACF5xD,EAAIyE,OAAOmtD,EAAkBznE,EAAGynE,EAAkBxnE,GAItD,SAASynE,GAAM7xD,EAAK2gB,GAClB,IASImxC,EATAxrD,EAAOqa,EAAIra,KACXlkB,EAASu+B,EAAIv+B,OACb5B,EAAWmgC,EAAIngC,SACfyc,EAAQ0jB,EAAI1jB,MACZ2D,EAAQ+f,EAAI/f,MAEZwZ,EAzGN,SAAmB9T,EAAMlkB,EAAQ5B,GAC/B,IAMIuxE,EANA33C,EAAW9T,EAAK8T,SAChBpK,EAAS1J,EAAK0J,OACdgiD,EAAU5vE,EAAO4tB,OACjB4lC,EAAQ,GAERqc,EAAc,GAA2B73C,GAG7C,IACE,IAAK63C,EAAYrxE,MAAOmxE,EAAUE,EAAY3xE,KAAKyC,MAAO,CACxD,IAAIu2B,EAAUy4C,EAAQjyE,MAClBqF,EAAQm0B,EAAQn0B,MAChBC,EAAMk0B,EAAQl0B,IAClBA,EAAMqqE,GAAetqE,EAAOC,EAAK4qB,GACjC,IAAIuJ,EAAS+3C,GAAU9wE,EAAUwvB,EAAO7qB,GAAQ6qB,EAAO5qB,GAAMk0B,EAAQhI,MAErE,GAAKlvB,EAAOg4B,SAAZ,CAUA,IAGI83C,EADAC,EAAc,GAFGh4C,GAAe/3B,EAAQm3B,IAK5C,IACE,IAAK44C,EAAYvxE,MAAOsxE,EAAUC,EAAY7xE,KAAKyC,MAAO,CACxD,IAMIqvE,EANAC,EAAMH,EAAQpyE,MACdwyE,EAAYhB,GAAU9wE,EAAUwxE,EAAQK,EAAIltE,OAAQ6sE,EAAQK,EAAIjtE,KAAMitE,EAAI/gD,MAI1EihD,EAAc,GAFAl5C,GAAcC,EAAStJ,EAAQsiD,IAKjD,IACE,IAAKC,EAAY3xE,MAAOwxE,EAAUG,EAAYjyE,KAAKyC,MAAO,CACxD,IAAIyvE,EAAaJ,EAAQtyE,MACzB81D,EAAMxzC,KAAK,CACTjb,OAAQqrE,EACRpwE,OAAQiwE,EACRltE,MAAO,GAAgB,GAAI3E,EAAU+wE,GAASh4C,EAAQ+4C,EAAW,QAASzpE,KAAK6B,MAC/EtF,IAAK,GAAgB,GAAI5E,EAAU+wE,GAASh4C,EAAQ+4C,EAAW,MAAOzpE,KAAK4B,SAG/E,MAAOtH,GACPovE,EAAYvvE,EAAEG,GACd,QACAovE,EAAYrvE,MAGhB,MAAOC,GACPgvE,EAAYnvE,EAAEG,GACd,QACAgvE,EAAYjvE,UA3CZ0yD,EAAMxzC,KAAK,CACTjb,OAAQmyB,EACRl3B,OAAQm3B,EACRp0B,MAAO6qB,EAAO7qB,GACdC,IAAK4qB,EAAO5qB,MA0ClB,MAAOjC,GACP8uE,EAAYjvE,EAAEG,GACd,QACA8uE,EAAY/uE,IAGd,OAAO0yD,EAmCQ6T,CAAUnjD,EAAMlkB,EAAQ5B,GAEnCiyE,EAAc,GAA2Br4C,GAG7C,IACE,IAAKq4C,EAAY7xE,MAAOkxE,EAAUW,EAAYnyE,KAAKyC,MAAO,CACxD,IAAI2vE,EAASZ,EAAQhyE,MACjB6yE,EAAMD,EAAOvrE,OACbkrE,EAAMK,EAAOtwE,OACb+C,EAAQutE,EAAOvtE,MACfC,EAAMstE,EAAOttE,IACbwtE,EAAaD,EAAI/yD,MAEjBizD,GADJD,OAA4B,IAAfA,EAAwB,GAAKA,GACH7zD,gBACnCA,OAA4C,IAA1B8zD,EAAmC51D,EAAQ41D,EACjE7yD,EAAIyC,OACJzC,EAAImH,UAAYpI,EAChByyD,GAAWxxD,EAAKY,EAAO0wD,GAAU9wE,EAAU2E,EAAOC,IAClD4a,EAAIqE,YACJ,IAAIyuD,IAAaxsD,EAAKysD,YAAY/yD,EAAK2yD,GAEnCG,EACF9yD,EAAIuE,YAEJotD,GAAmB3xD,EAAK5d,EAAQgD,EAAK5E,GAGvC,IAAIwyE,IAAe5wE,EAAO2wE,YAAY/yD,EAAKqyD,EAAK,CAC9CnkC,KAAM4kC,EACNtsE,SAAS,IAEP8qB,EAAOwhD,GAAYE,EAElB1hD,GACHqgD,GAAmB3xD,EAAK5d,EAAQ+C,EAAO3E,GAGzCwf,EAAIuE,YACJvE,EAAI4E,KAAK0M,EAAO,UAAY,WAC5BtR,EAAI6C,WAEN,MAAO1f,GACPsvE,EAAYzvE,EAAEG,GACd,QACAsvE,EAAYvvE,KA0ChB,SAAS+vE,GAASjzD,EAAK7Y,EAAQ8d,GAC7B,IAAI7iB,EAjTN,SAAmB+E,GACjB,IAAIiY,EAAQjY,EAAOiY,MACfwF,EAAOzd,EAAOyd,KACd0B,EAAOnf,EAAOmf,KAElB,GAAI1gB,EAAegf,GACjB,OA7UJ,SAAwBxF,EAAOnY,GAC7B,IAAI09B,EAAOvlB,EAAM2pB,eAAe9hC,GAEhC,OADc09B,GAAQvlB,EAAMy1B,iBAAiB5tC,GAC5B09B,EAAKmD,QAAU,KA0UvBorC,CAAe9zD,EAAOwF,GAG/B,GAAa,UAATA,EACF,OAAO8qD,GAAevoE,GAGxB,IAAIypE,EAAWvB,GAAgBloE,GAE/B,OAAIypE,aAAoB,GACfA,EAGFX,GAAmBW,EAAUtqD,GA8RvB8E,CAAUjkB,GACnBmf,EAAOnf,EAAOmf,KACd1F,EAAQzZ,EAAOyZ,MACfilB,EAAO1+B,EAAO0+B,KACdstC,EAAW7sD,EAAK5e,QAChBwnE,EAAaiE,EAASvuD,KACtB3H,EAAQk2D,EAASp0D,gBAEjBq0D,EAASlE,GAAc,GACvBmE,EAAeD,EAAOE,MACtBA,OAAyB,IAAjBD,EAA0Bp2D,EAAQo2D,EAC1CE,EAAeH,EAAOvD,MACtBA,OAAyB,IAAjB0D,EAA0Bt2D,EAAQs2D,EAE1CnxE,GAAUkkB,EAAK0J,OAAO1tB,SACxBijB,GAASvF,EAAKiF,GAtDlB,SAAgBjF,EAAK2gB,GACnB,IAAIra,EAAOqa,EAAIra,KACXlkB,EAASu+B,EAAIv+B,OACbkxE,EAAQ3yC,EAAI2yC,MACZzD,EAAQlvC,EAAIkvC,MACZ5qD,EAAO0b,EAAI1b,KACXrE,EAAQ+f,EAAI/f,MACZpgB,EAAW8lB,EAAK4a,MAAQ,QAAUP,EAAIkF,KAC1C7lB,EAAIyC,OAEa,MAAbjiB,GAAoBqvE,IAAUyD,IAChCrnC,GAAMjsB,EAAK5d,EAAQ6iB,EAAKI,KAExBwsD,GAAM7xD,EAAK,CACTsG,KAAMA,EACNlkB,OAAQA,EACR6a,MAAOq2D,EACP1yD,MAAOA,EACPpgB,SAAUA,IAGZwf,EAAI6C,UACJ7C,EAAIyC,OAEJwpB,GAAMjsB,EAAK5d,EAAQ6iB,EAAKK,SAG1BusD,GAAM7xD,EAAK,CACTsG,KAAMA,EACNlkB,OAAQA,EACR6a,MAAO4yD,EACPjvD,MAAOA,EACPpgB,SAAUA,IAGZwf,EAAI6C,UAoBF2wD,CAAOxzD,EAAK,CACVsG,KAAMA,EACNlkB,OAAQA,EACRkxE,MAAOA,EACPzD,MAAOA,EACP5qD,KAAMA,EACNrE,MAAOA,EACPilB,KAAMA,IAERpgB,GAAWzF,IAIf,IAAIyzD,GAAgB,CAClBnuE,GAAI,SACJouE,oBAAqB,SAA6Bt0D,EAAOu0D,EAAOjsE,GAC9D,IAEIi9B,EAAM9lC,EAAGynB,EAAMnf,EAFfiyB,GAASha,EAAMyC,KAAK5C,UAAY,IAAI3c,OACpCwF,EAAU,GAGd,IAAKjJ,EAAI,EAAGA,EAAIu6B,IAASv6B,EAGvBsI,EAAS,MADTmf,GADAqe,EAAOvlB,EAAM2pB,eAAelqC,IAChBipC,UAGAxhB,EAAK5e,SAAW4e,aAAgB,KAC1Cnf,EAAS,CACPo7B,QAASnjB,EAAMy1B,iBAAiBh2C,GAChCoI,MAAOpI,EACP+lB,KAAMqqD,GAAW3oD,EAAMznB,EAAGu6B,GAC1Bha,MAAOA,EACPymB,KAAMlB,EAAKY,WAAW79B,QAAQyY,UAC9BS,MAAO+jB,EAAKQ,OACZ7e,KAAMA,IAIVqe,EAAKivC,QAAUzsE,EACfW,EAAQsa,KAAKjb,GAGf,IAAKtI,EAAI,EAAGA,EAAIu6B,IAASv6B,GACvBsI,EAASW,EAAQjJ,MAEc,IAAhBsI,EAAOyd,OAItBzd,EAAOyd,KAAOssD,GAAcppE,EAASjJ,EAAG6I,EAAQypE,aAGpD0C,WAAY,SAAoBz0D,EAAOu0D,EAAOjsE,GAK5C,IAJA,IAAIs3B,EAA4B,eAArBt3B,EAAQosE,SACf3vC,EAAW/kB,EAAM+9B,+BACjBl4B,EAAO7F,EAAMitB,UAERxtC,EAAIslC,EAAS7hC,OAAS,EAAGzD,GAAK,IAAKA,EAAG,CAC7C,IAAIsI,EAASg9B,EAAStlC,GAAG+0E,QAEpBzsE,IAILA,EAAOmf,KAAK0zB,oBAAoB/0B,EAAM9d,EAAO0+B,MAEzC7G,GACFi0C,GAAS7zD,EAAMY,IAAK7Y,EAAQ8d,MAIlC8uD,mBAAoB,SAA4B30D,EAAOu0D,EAAOjsE,GAC5D,GAAyB,uBAArBA,EAAQosE,SAMZ,IAFA,IAAI3vC,EAAW/kB,EAAM+9B,+BAEZt+C,EAAIslC,EAAS7hC,OAAS,EAAGzD,GAAK,IAAKA,EAAG,CAC7C,IAAIsI,EAASg9B,EAAStlC,GAAG+0E,QAErBzsE,GACF8rE,GAAS7zD,EAAMY,IAAK7Y,EAAQiY,EAAMitB,aAIxC2nC,kBAAmB,SAA2B50D,EAAO3a,EAAMiD,GACzD,IAAIP,EAAS1C,EAAKkgC,KAAKivC,QAElBzsE,IAA0B,IAAhBA,EAAOyd,MAAuC,sBAArBld,EAAQosE,UAIhDb,GAAS7zD,EAAMY,IAAK7Y,EAAQiY,EAAMitB,YAEpC1tB,SAAU,CACRwyD,WAAW,EACX2C,SAAU,sBAIVG,GAAa,SAAoBC,EAAWjf,GAC9C,IAAIkf,EAAuBD,EAAUE,UACjCA,OAAqC,IAAzBD,EAAkClf,EAAWkf,EACzDE,EAAsBH,EAAUI,SAChCA,OAAmC,IAAxBD,EAAiCpf,EAAWof,EAO3D,OALIH,EAAUK,gBACZH,EAAYvrE,KAAK4B,IAAI2pE,EAAWnf,GAChCqf,EAAWzrE,KAAK4B,IAAI6pE,EAAUrf,IAGzB,CACLqf,SAAUA,EACVF,UAAWA,EACXI,WAAY3rE,KAAK6B,IAAIuqD,EAAUmf,KAQ/B,GAAsB,SAAUK,GAClC34C,GAAU44C,EAAQD,GAElB,IAAIE,EAAWv4C,GAAas4C,GAE5B,SAASA,EAAOhyC,GACd,IAAIkyC,EA2BJ,OAzBA,GAAgBl4D,KAAMg4D,IAEtBE,EAAUD,EAAS31E,KAAK0d,OAChBm4D,QAAS,EACjBD,EAAQE,eAAiB,GACzBF,EAAQG,aAAe,KACvBH,EAAQI,cAAe,EACvBJ,EAAQx1D,MAAQsjB,EAAOtjB,MACvBw1D,EAAQltE,QAAUg7B,EAAOh7B,QACzBktE,EAAQ50D,IAAM0iB,EAAO1iB,IACrB40D,EAAQK,iBAActlE,EACtBilE,EAAQM,iBAAcvlE,EACtBilE,EAAQO,gBAAaxlE,EACrBilE,EAAQ1/C,eAAYvlB,EACpBilE,EAAQ7tD,cAAWpX,EACnBilE,EAAQvvD,SAAM1V,EACdilE,EAAQtvD,YAAS3V,EACjBilE,EAAQzvD,UAAOxV,EACfilE,EAAQxvD,WAAQzV,EAChBilE,EAAQnxD,YAAS9T,EACjBilE,EAAQzyD,WAAQxS,EAChBilE,EAAQ1pB,cAAWv7C,EACnBilE,EAAQ33B,cAAWttC,EACnBilE,EAAQ13D,YAASvN,EACjBilE,EAAQr0B,cAAW5wC,EACZilE,EA2gBT,OAxgBA,GAAaF,EAAQ,CAAC,CACpBt0E,IAAK,SACLN,MAAO,SAAgBinB,EAAUmO,EAAWD,GAC1C,IAAI9X,EAAKT,KACTS,EAAG4J,SAAWA,EACd5J,EAAG+X,UAAYA,EACf/X,EAAG+tC,SAAWj2B,EACd9X,EAAG2vC,gBACH3vC,EAAGi4D,cACHj4D,EAAGywC,QAEJ,CACDxtD,IAAK,gBACLN,MAAO,WACL,IAAIqd,EAAKT,KAELS,EAAGqzB,gBACLrzB,EAAGgF,MAAQhF,EAAG4J,SACd5J,EAAGgI,KAAOhI,EAAG+tC,SAAS/lC,KACtBhI,EAAGiI,MAAQjI,EAAGgF,QAEdhF,EAAGsG,OAAStG,EAAG+X,UACf/X,EAAGkI,IAAMlI,EAAG+tC,SAAS7lC,IACrBlI,EAAGmI,OAASnI,EAAGsG,UAGlB,CACDrjB,IAAK,cACLN,MAAO,WACL,IAAIqd,EAAKT,KACLw3D,EAAY/2D,EAAGzV,QAAQ2iC,QAAU,GACjC4qC,EAAc/wE,EAASgwE,EAAUr8B,eAAgB,CAAC16B,EAAGiC,OAAQjC,IAAO,GAEpE+2D,EAAU1mD,SACZynD,EAAcA,EAAYznD,QAAO,SAAUuR,GACzC,OAAOm1C,EAAU1mD,OAAOuR,EAAM5hB,EAAGiC,MAAMyC,UAIvCqyD,EAAUxlC,OACZumC,EAAcA,EAAYvmC,MAAK,SAAUrjC,EAAGC,GAC1C,OAAO4oE,EAAUxlC,KAAKrjC,EAAGC,EAAG6R,EAAGiC,MAAMyC,UAIrC1E,EAAGzV,QAAQlB,SACbyuE,EAAYzuE,UAGd2W,EAAG83D,YAAcA,IAElB,CACD70E,IAAK,MACLN,MAAO,WACL,IAAIqd,EAAKT,KACLhV,EAAUyV,EAAGzV,QACbsY,EAAM7C,EAAG6C,IAEb,GAAKtY,EAAQyzC,QAAb,CAKA,IAUIh5B,EAAOsB,EAVPywD,EAAYxsE,EAAQ2iC,OACpBgrC,EAAYlsD,GAAO+qD,EAAUz0D,MAC7Bw1C,EAAWogB,EAAU11D,KAErB0vC,EAAclyC,EAAGm4D,sBAEjBC,EAActB,GAAWC,EAAWjf,GACpCqf,EAAWiB,EAAYjB,SACvBE,EAAae,EAAYf,WAG7Bx0D,EAAIP,KAAO41D,EAAUrzD,OAEjB7E,EAAGqzB,gBACLruB,EAAQhF,EAAG4J,SACXtD,EAAStG,EAAGq4D,SAASnmB,EAAa4F,EAAUqf,EAAUE,GAAc,KAEpE/wD,EAAStG,EAAG+X,UACZ/S,EAAQhF,EAAGs4D,SAASpmB,EAAa4F,EAAUqf,EAAUE,GAAc,IAGrEr3D,EAAGgF,MAAQtZ,KAAK4B,IAAI0X,EAAOza,EAAQqf,UAAY5J,EAAG4J,UAClD5J,EAAGsG,OAAS5a,KAAK4B,IAAIgZ,EAAQ/b,EAAQwtB,WAAa/X,EAAG+X,gBA1BnD/X,EAAGgF,MAAQhF,EAAGsG,OAAS,IA4B1B,CACDrjB,IAAK,WACLN,MAAO,SAAkBuvD,EAAa4F,EAAUqf,EAAUE,GACxD,IAAIr3D,EAAKT,KACLsD,EAAM7C,EAAG6C,IACT+G,EAAW5J,EAAG4J,SACd25B,EAAUvjC,EAAGzV,QAAQ2iC,OAAOqW,QAC5Bg1B,EAAWv4D,EAAG23D,eAAiB,GAC/BK,EAAah4D,EAAGg4D,WAAa,CAAC,GAC9Bt1D,EAAa20D,EAAa9zB,EAC1Bi1B,EAActmB,EAClBrvC,EAAIoH,UAAY,OAChBpH,EAAIqH,aAAe,SACnB,IAAIuuD,GAAO,EACPvwD,GAAOxF,EAoBX,OAnBA1C,EAAG83D,YAAYvqD,SAAQ,SAAUqtB,EAAYl5C,GAC3C,IAAIs5B,EAAYm8C,EAAWrf,EAAW,EAAIj1C,EAAIkC,YAAY61B,EAAW1xB,MAAMlE,OAEjE,IAANtjB,GAAWs2E,EAAWA,EAAW7yE,OAAS,GAAK61B,EAAY,EAAIuoB,EAAU35B,KAC3E4uD,GAAe91D,EACfs1D,EAAWA,EAAW7yE,QAAUzD,EAAI,EAAI,EAAI,IAAM,EAClDwmB,GAAOxF,EACP+1D,KAGFF,EAAS72E,GAAK,CACZsmB,KAAM,EACNE,IAAKA,EACLuwD,IAAKA,EACLzzD,MAAOgW,EACP1U,OAAQ+wD,GAEVW,EAAWA,EAAW7yE,OAAS,IAAM61B,EAAYuoB,KAE5Ci1B,IAER,CACDv1E,IAAK,WACLN,MAAO,SAAkBuvD,EAAa4F,EAAUqf,EAAUE,GACxD,IAAIr3D,EAAKT,KACLsD,EAAM7C,EAAG6C,IACTkV,EAAY/X,EAAG+X,UACfwrB,EAAUvjC,EAAGzV,QAAQ2iC,OAAOqW,QAC5Bg1B,EAAWv4D,EAAG23D,eAAiB,GAC/BI,EAAc/3D,EAAG+3D,YAAc,GAC/BW,EAAc3gD,EAAYm6B,EAC1BymB,EAAap1B,EACbq1B,EAAkB,EAClBC,EAAmB,EACnB7wD,EAAO,EACP8wD,EAAM,EA8BV,OA7BA94D,EAAG83D,YAAYvqD,SAAQ,SAAUqtB,EAAYl5C,GAC3C,IAAIs5B,EAAYm8C,EAAWrf,EAAW,EAAIj1C,EAAIkC,YAAY61B,EAAW1xB,MAAMlE,MAEvEtjB,EAAI,GAAKm3E,EAAmBxB,EAAa,EAAI9zB,EAAUm1B,IACzDC,GAAcC,EAAkBr1B,EAChCw0B,EAAY9yD,KAAK,CACfD,MAAO4zD,EACPtyD,OAAQuyD,IAEV7wD,GAAQ4wD,EAAkBr1B,EAC1Bu1B,IACAF,EAAkBC,EAAmB,GAGvCN,EAAS72E,GAAK,CACZsmB,KAAMA,EACNE,IAAK2wD,EACLC,IAAKA,EACL9zD,MAAOgW,EACP1U,OAAQ+wD,GAEVuB,EAAkBltE,KAAK6B,IAAIqrE,EAAiB59C,GAC5C69C,GAAoBxB,EAAa9zB,KAEnCo1B,GAAcC,EACdb,EAAY9yD,KAAK,CACfD,MAAO4zD,EACPtyD,OAAQuyD,IAEHF,IAER,CACD11E,IAAK,iBACLN,MAAO,WACL,IAAIqd,EAAKT,KAET,GAAKS,EAAGzV,QAAQyzC,QAAhB,CAIA,IAAIkU,EAAclyC,EAAGm4D,sBAEjBI,EAAWv4D,EAAG23D,eACdoB,EAAe/4D,EAAGzV,QAClBzC,EAAQixE,EAAajxE,MACrBy7C,EAAUw1B,EAAa7rC,OAAOqW,QAC9B7oB,EAAMq+C,EAAar+C,IAEvB,GAAInb,KAAK8zB,eAAgB,CACvB,IAKI2lC,EALAP,EAAM,EAENzwD,EAAOjgB,EAAeD,EAAOkY,EAAGgI,KAAOu7B,EAASvjC,EAAGiI,MAAQjI,EAAGg4D,WAAWS,IAEzEQ,EAAc,GAA2BV,GAG7C,IACE,IAAKU,EAAYx1E,MAAOu1E,EAAUC,EAAY91E,KAAKyC,MAAO,CACxD,IAAIszE,EAASF,EAAQr2E,MAEjB81E,IAAQS,EAAOT,MACjBA,EAAMS,EAAOT,IACbzwD,EAAOjgB,EAAeD,EAAOkY,EAAGgI,KAAOu7B,EAASvjC,EAAGiI,MAAQjI,EAAGg4D,WAAWS,KAG3ES,EAAOhxD,KAAOlI,EAAGkI,IAAMgqC,EAAc3O,EACrC21B,EAAOlxD,KAAOA,EACdA,GAAQkxD,EAAOl0D,MAAQu+B,GAEzB,MAAOv9C,GACPizE,EAAYpzE,EAAEG,GACd,QACAizE,EAAYlzE,IAGd,GAAI20B,EAAK,CACP,IAAIy+C,EAASZ,EAAS71C,QAAO,SAAUz4B,EAAKktB,GAG1C,OAFAltB,EAAIktB,EAAIshD,KAAOxuE,EAAIktB,EAAIshD,MAAQ,GAC/BxuE,EAAIktB,EAAIshD,KAAKxzD,KAAKkS,GACXltB,IACN,IACCmvE,EAAW,GACfh3E,OAAOkH,KAAK6vE,GAAQ5rD,SAAQ,SAAUtqB,GACpCk2E,EAAOl2E,GAAKoG,UACZ+vE,EAASn0D,KAAKrd,MAAMwxE,EAAU,GAAmBD,EAAOl2E,QAE1D+c,EAAG23D,eAAiByB,OAEjB,CACL,IAKIC,EALAP,EAAM,EAEN5wD,EAAMngB,EAAeD,EAAOkY,EAAGkI,IAAMgqC,EAAc3O,EAASvjC,EAAGmI,OAASnI,EAAG+3D,YAAYe,GAAKxyD,QAE5FgzD,EAAc,GAA2Bf,GAG7C,IACE,IAAKe,EAAY71E,MAAO41E,EAAUC,EAAYn2E,KAAKyC,MAAO,CACxD,IAAI2zE,EAAUF,EAAQ12E,MAElB42E,EAAQT,MAAQA,IAClBA,EAAMS,EAAQT,IACd5wD,EAAMngB,EAAeD,EAAOkY,EAAGkI,IAAMgqC,EAAc3O,EAASvjC,EAAGmI,OAASnI,EAAG+3D,YAAYe,GAAKxyD,SAG9FizD,EAAQrxD,IAAMA,EACdqxD,EAAQvxD,MAAQhI,EAAGgI,KAAOu7B,EAC1Br7B,GAAOqxD,EAAQjzD,OAASi9B,GAE1B,MAAOv9C,GACPszE,EAAYzzE,EAAEG,GACd,QACAszE,EAAYvzE,SAIjB,CACD9C,IAAK,eACLN,MAAO,WACL,MAAiC,QAA1B4c,KAAKhV,QAAQu1C,UAAgD,WAA1BvgC,KAAKhV,QAAQu1C,WAExD,CACD78C,IAAK,OACLN,MAAO,WACL,IAAIqd,EAAKT,KAET,GAAIS,EAAGzV,QAAQyzC,QAAS,CACtB,IAAIn7B,EAAM7C,EAAG6C,IACbuF,GAASvF,EAAK7C,GAEdA,EAAGw5D,QAEHlxD,GAAWzF,MAGd,CACD5f,IAAK,QACLN,MAAO,WACL,IAcI82E,EAdAz5D,EAAKT,KACL6J,EAAOpJ,EAAGzV,QACVwtE,EAAc/3D,EAAG+3D,YACjBC,EAAah4D,EAAGg4D,WAChBn1D,EAAM7C,EAAG6C,IACT/a,EAAQshB,EAAKthB,MACbivE,EAAY3tD,EAAK8jB,OACjBwsC,EAAel4D,GAAS1B,MACxB65D,EAAYl/C,GAAcrR,EAAKsR,IAAK1a,EAAGgI,KAAMhI,EAAGgF,OAChDkzD,EAAYlsD,GAAO+qD,EAAUz0D,MAC7Bs3D,EAAY7C,EAAUj3D,MACtByjC,EAAUwzB,EAAUxzB,QACpBuU,EAAWogB,EAAU11D,KACrBq3D,EAAe/hB,EAAW,EAE9B93C,EAAGy3C,YACH50C,EAAIoH,UAAY0vD,EAAU1vD,UAAU,QACpCpH,EAAIqH,aAAe,SACnBrH,EAAI6G,UAAY,GAChB7G,EAAIP,KAAO41D,EAAUrzD,OAErB,IAAIi1D,EAAehD,GAAWC,EAAWjf,GACrCqf,EAAW2C,EAAa3C,SACxBF,EAAY6C,EAAa7C,UACzBI,EAAayC,EAAazC,WAgE1BhkC,EAAerzB,EAAGqzB,eAElB6e,EAAc3yC,KAAK44D,sBAGrBsB,EADEpmC,EACO,CACPrmC,EAAGjF,EAAeD,EAAOkY,EAAGgI,KAAOu7B,EAASvjC,EAAGiI,MAAQ+vD,EAAW,IAClE/qE,EAAG+S,EAAGkI,IAAMq7B,EAAU2O,EACtB/oC,KAAM,GAGC,CACPnc,EAAGgT,EAAGgI,KAAOu7B,EACbt2C,EAAGlF,EAAeD,EAAOkY,EAAGkI,IAAMgqC,EAAc3O,EAASvjC,EAAGmI,OAAS4vD,EAAY,GAAGzxD,QACpF6C,KAAM,GAIViS,GAAsBpb,EAAG6C,IAAKuG,EAAK2wD,eACnC,IAAIr3D,EAAa20D,EAAa9zB,EAC9BvjC,EAAG83D,YAAYvqD,SAAQ,SAAUqtB,EAAYl5C,GAC3CmhB,EAAI4G,YAAcmxB,EAAWg/B,WAAaA,EAC1C/2D,EAAImH,UAAY4wB,EAAWg/B,WAAaA,EACxC,IAAI90D,EAAYjC,EAAIkC,YAAY61B,EAAW1xB,MAAMlE,MAC7CiF,EAAY0vD,EAAU1vD,UAAU2wB,EAAW3wB,YAAc2wB,EAAW3wB,UAAY8sD,EAAU9sD,YAC1FjF,EAAQmyD,EAAW0C,EAAe/0D,EAClC9X,EAAIysE,EAAOzsE,EACXC,EAAIwsE,EAAOxsE,EACf0sE,EAAU9+C,SAAS7a,EAAGgF,OAElBquB,EACE3xC,EAAI,GAAKsL,EAAIgY,EAAQu+B,EAAUvjC,EAAGiI,QACpChb,EAAIwsE,EAAOxsE,GAAKyV,EAChB+2D,EAAOtwD,OACPnc,EAAIysE,EAAOzsE,EAAIjF,EAAeD,EAAOkY,EAAGgI,KAAOu7B,EAASvjC,EAAGiI,MAAQ+vD,EAAWyB,EAAOtwD,QAE9EznB,EAAI,GAAKuL,EAAIyV,EAAa1C,EAAGmI,SACtCnb,EAAIysE,EAAOzsE,EAAIA,EAAI+qE,EAAY0B,EAAOtwD,MAAMnE,MAAQu+B,EACpDk2B,EAAOtwD,OACPlc,EAAIwsE,EAAOxsE,EAAIlF,EAAeD,EAAOkY,EAAGkI,IAAMgqC,EAAc3O,EAASvjC,EAAGmI,OAAS4vD,EAAY0B,EAAOtwD,MAAM7C,SArG1F,SAAuBtZ,EAAGC,EAAG2tC,GAC/C,KAAI7tC,MAAMoqE,IAAaA,GAAY,GAAKpqE,MAAMkqE,IAAcA,EAAY,GAAxE,CAIAp0D,EAAIyC,OACJ,IAAIoE,EAAY5gB,EAAe8xC,EAAWlxB,UAAW,GASrD,GARA7G,EAAImH,UAAYlhB,EAAe8xC,EAAW5wB,UAAW0vD,GACrD72D,EAAIknD,QAAUjhE,EAAe8xC,EAAWmvB,QAAS,QACjDlnD,EAAIi0C,eAAiBhuD,EAAe8xC,EAAWkc,eAAgB,GAC/Dj0C,EAAIslD,SAAWr/D,EAAe8xC,EAAWutB,SAAU,SACnDtlD,EAAI6G,UAAYA,EAChB7G,EAAI4G,YAAc3gB,EAAe8xC,EAAWnxB,YAAaiwD,GACzD72D,EAAIg0C,YAAY/tD,EAAe8xC,EAAWo/B,SAAU,KAEhDjD,EAAUK,cAAe,CAC3B,IAAI6C,EAAc,CAChBpzD,OAAQswD,EAAWzrE,KAAKwuE,MAAQ,EAChCvzD,WAAYi0B,EAAWj0B,WACvBC,SAAUg0B,EAAWh0B,SACrBc,YAAagC,GAEXswB,EAAU2/B,EAAU7+C,MAAM9tB,EAAGmqE,EAAW,GAE5C5wD,GAAU1D,EAAKo3D,EAAajgC,EADd/sC,EAAI4sE,OAEb,CACL,IAAIM,EAAUltE,EAAIvB,KAAK6B,KAAKuqD,EAAWmf,GAAa,EAAG,GACnDmD,EAAWT,EAAU5+C,WAAW/tB,EAAGmqE,GACnCjR,EAAep6C,GAAc8uB,EAAWsrB,cAC5CrjD,EAAIqE,YAEA9kB,OAAOmf,OAAO2kD,GAAczK,MAAK,SAAU7pD,GAC7C,OAAa,IAANA,KAEPgZ,GAAmB/H,EAAK,CACtB7V,EAAGotE,EACHntE,EAAGktE,EACHxnE,EAAGwkE,EACHnlE,EAAGilE,EACHpwD,OAAQq/C,IAGVrjD,EAAI2E,KAAK4yD,EAAUD,EAAShD,EAAUF,GAGxCp0D,EAAI4E,OAEc,IAAdiC,GACF7G,EAAI8E,SAIR9E,EAAI6C,WAqDJ20D,CADYV,EAAU3sE,EAAEA,GACHC,EAAG2tC,GACxB5tC,EDjkVK,SAAgBlF,EAAOkgB,EAAMC,EAAOyS,GAE/C,OAAO5yB,KADK4yB,EAAM,OAAS,SACFzS,EAAkB,WAAVngB,GAAsBkgB,EAAOC,GAAS,EAAID,EC+jVjEsyD,CAAOrwD,EAAWjd,EAAImqE,EAAW0C,EAAcxmC,EAAermC,EAAIgY,EAAQhF,EAAGiI,MAAOmB,EAAKsR,KAnDhF,SAAkB1tB,EAAGC,EAAG2tC,GACrC3xB,GAAWpG,EAAK+3B,EAAW1xB,KAAMlc,EAAGC,EAAIoqE,EAAa,EAAGa,EAAW,CACjE/tD,cAAeywB,EAAWD,OAC1B1wB,UAAW0vD,EAAU1vD,UAAU2wB,EAAW3wB,aAiD5CJ,CAAS8vD,EAAU3sE,EAAEA,GAAIC,EAAG2tC,GAExBvH,EACFomC,EAAOzsE,GAAKgY,EAAQu+B,EAEpBk2B,EAAOxsE,GAAKyV,KAGhBgZ,GAAqB1b,EAAG6C,IAAKuG,EAAK2wD,iBAEnC,CACD92E,IAAK,YACLN,MAAO,WACL,IAAIqd,EAAKT,KACL6J,EAAOpJ,EAAGzV,QACVynD,EAAY5oC,EAAK8tB,MACjBqjC,EAAYvuD,GAAOgmC,EAAU1vC,MAC7Bk4D,EAAezuD,GAAUimC,EAAUzO,SAEvC,GAAKyO,EAAUhU,QAAf,CAIA,IAKI/wC,EALA0sE,EAAYl/C,GAAcrR,EAAKsR,IAAK1a,EAAGgI,KAAMhI,EAAGgF,OAChDnC,EAAM7C,EAAG6C,IACTi9B,EAAWkS,EAAUlS,SACrB+5B,EAAeU,EAAU/3D,KAAO,EAChCi4D,EAA6BD,EAAatyD,IAAM2xD,EAEhD7xD,EAAOhI,EAAGgI,KACV4B,EAAW5J,EAAGgF,MAElB,GAAIzF,KAAK8zB,eACPzpB,EAAWle,KAAK6B,IAAI3F,MAAM8D,KAAM,GAAmBsU,EAAGg4D,aACtD/qE,EAAI+S,EAAGkI,IAAMuyD,EACbzyD,EAAOjgB,EAAeqhB,EAAKthB,MAAOkgB,EAAMhI,EAAGiI,MAAQ2B,OAC9C,CACL,IAAImO,EAAY/X,EAAG+3D,YAAYr1C,QAAO,SAAUC,EAAKngB,GACnD,OAAO9W,KAAK6B,IAAIo1B,EAAKngB,EAAK8D,UACzB,GACHrZ,EAAIwtE,EAA6B1yE,EAAeqhB,EAAKthB,MAAOkY,EAAGkI,IAAKlI,EAAGmI,OAAS4P,EAAY3O,EAAK8jB,OAAOqW,QAAUvjC,EAAGm4D,uBAGvH,IAAInrE,EAAIjF,EAAe+3C,EAAU93B,EAAMA,EAAO4B,GAE9C/G,EAAIoH,UAAY0vD,EAAU1vD,UAAUpiB,EAAmBi4C,IACvDj9B,EAAIqH,aAAe,SACnBrH,EAAI4G,YAAcuoC,EAAUlyC,MAC5B+C,EAAImH,UAAYgoC,EAAUlyC,MAC1B+C,EAAIP,KAAOi4D,EAAU11D,OACrBoE,GAAWpG,EAAKmvC,EAAU9oC,KAAMlc,EAAGC,EAAGstE,MAEvC,CACDt3E,IAAK,sBACLN,MAAO,WACL,IAAIqvD,EAAYzyC,KAAKhV,QAAQ2sC,MACzBqjC,EAAYvuD,GAAOgmC,EAAU1vC,MAC7Bk4D,EAAezuD,GAAUimC,EAAUzO,SACvC,OAAOyO,EAAUhU,QAAUu8B,EAAU73D,WAAa83D,EAAal0D,OAAS,IAEzE,CACDrjB,IAAK,mBACLN,MAAO,SAA0BqK,EAAGC,GAClC,IACIvL,EAAGg5E,EAAQC,EADX36D,EAAKT,KAGT,GAAIvS,GAAKgT,EAAGgI,MAAQhb,GAAKgT,EAAGiI,OAAShb,GAAK+S,EAAGkI,KAAOjb,GAAK+S,EAAGmI,OAG1D,IAFAwyD,EAAK36D,EAAG23D,eAEHj2E,EAAI,EAAGA,EAAIi5E,EAAGx1E,SAAUzD,EAG3B,GAAIsL,IAFJ0tE,EAASC,EAAGj5E,IAEIsmB,MAAQhb,GAAK0tE,EAAO1yD,KAAO0yD,EAAO11D,OAAS/X,GAAKytE,EAAOxyD,KAAOjb,GAAKytE,EAAOxyD,IAAMwyD,EAAOp0D,OACrG,OAAOtG,EAAG83D,YAAYp2E,GAK5B,OAAO,OAER,CACDuB,IAAK,cACLN,MAAO,SAAqBkD,GAC1B,IAAIma,EAAKT,KACL6J,EAAOpJ,EAAGzV,QAEd,GA4BN,SAAoBjC,EAAM8gB,GACxB,GAAa,cAAT9gB,IAAyB8gB,EAAKhG,SAAWgG,EAAKwxD,SAChD,OAAO,EAGT,GAAIxxD,EAAK/F,UAAqB,UAAT/a,GAA6B,YAATA,GACvC,OAAO,EAGT,OAAO,EArCEuyE,CAAWh1E,EAAEyC,KAAM8gB,GAAxB,CAIA,IA3hB+Blb,EAAGC,EA2hB9B2sE,EAAc96D,EAAG+6D,iBAAiBl1E,EAAEmH,EAAGnH,EAAEoH,GAE7C,GAAe,cAAXpH,EAAEyC,KAAsB,CAC1B,IAAIkgB,EAAWxI,EAAG43D,aACdoD,GA/hB4B7sE,EA+hBI2sE,EA9hB7B,QADsB5sE,EA+hBHsa,IA9hBL,OAANra,GAAcD,EAAErE,eAAiBsE,EAAEtE,cAAgBqE,EAAEpE,QAAUqE,EAAErE,OAgiB5E0e,IAAawyD,GACfj0E,EAASqiB,EAAKwxD,QAAS,CAAC/0E,EAAG2iB,EAAUxI,GAAKA,GAG5CA,EAAG43D,aAAekD,EAEdA,IAAgBE,GAClBj0E,EAASqiB,EAAKhG,QAAS,CAACvd,EAAGi1E,EAAa96D,GAAKA,QAEtC86D,GACT/zE,EAASqiB,EAAK/F,QAAS,CAACxd,EAAGi1E,EAAa96D,GAAKA,QAK5Cu3D,EA5iBiB,CA6iBxB,IAcF,IAAI0D,GAAgB,CAClB9yE,GAAI,SACJ+yE,SAAU,GACVlzE,MAAO,SAAeia,EAAOu0D,EAAOjsE,GAClC,IAAIkwC,EAASx4B,EAAMw4B,OAAS,IAAI,GAAO,CACrC53B,IAAKZ,EAAMY,IACXtY,QAASA,EACT0X,MAAOA,IAETuhC,GAAkBvhC,EAAOw4B,EAAQlwC,GACjCi5C,GAAevhC,EAAOw4B,IAExBiC,KAAM,SAAcz6B,GAClBuhC,GAAkBvhC,EAAOA,EAAMw4B,eACxBx4B,EAAMw4B,QAEf8U,aAAc,SAAsBttC,EAAOu0D,EAAOjsE,GAChD,IAAIkwC,EAASx4B,EAAMw4B,OACnB+I,GAAkBvhC,EAAOw4B,EAAQlwC,GACjCkwC,EAAOlwC,QAAUA,GAEnBomD,YAAa,SAAqB1uC,GAChC,IAAIw4B,EAASx4B,EAAMw4B,OACnBA,EAAOw9B,cACPx9B,EAAO0gC,kBAETC,WAAY,SAAoBn5D,EAAO3a,GAChCA,EAAK49D,QACRjjD,EAAMw4B,OAAO4gC,YAAY/zE,EAAKg7B,QAGlC9gB,SAAU,CACRw8B,SAAS,EACT8B,SAAU,MACVh4C,MAAO,SACPs7C,UAAU,EACV/5C,SAAS,EACT0W,OAAQ,IACRsD,QAAS,SAAiBxd,EAAG+0C,EAAYH,GACvC,IAAI3wC,EAAQ8wC,EAAW/wC,aACnByxE,EAAK7gC,EAAOx4B,MAEZq5D,EAAG5jC,iBAAiB5tC,IACtBwxE,EAAGj2C,KAAKv7B,GACR8wC,EAAWD,QAAS,IAEpB2gC,EAAGp2C,KAAKp7B,GACR8wC,EAAWD,QAAS,IAGxBv3B,QAAS,KACTw3D,QAAS,KACT1tC,OAAQ,CACNptB,MAAO,SAAe+C,GACpB,OAAOA,EAAIZ,MAAM1X,QAAQuV,OAE3Bq3D,SAAU,GACV5zB,QAAS,GACT7I,eAAgB,SAAwBz4B,GACtC,IAAIH,EAAWG,EAAMyC,KAAK5C,SACtBy5D,EAAwBt5D,EAAMw4B,OAAOlwC,QAAQ2iC,OAC7CkqC,EAAgBmE,EAAsBnE,cACtCzwD,EAAa40D,EAAsB50D,WACnCsD,EAAYsxD,EAAsBtxD,UAClCnK,EAAQy7D,EAAsBz7D,MAClC,OAAOmC,EAAMglB,yBAAyBh9B,KAAI,SAAUu9B,GAClD,IAAI/kB,EAAQ+kB,EAAKY,WAAW9O,SAAS89C,EAAgB,OAAI5kE,GACrDkV,EAAcqE,GAAUtJ,EAAMiF,aAClC,MAAO,CACLwB,KAAMpH,EAAS0lB,EAAK19B,OAAO8kC,MAC3B5kB,UAAWvH,EAAMb,gBACjBg4D,UAAW95D,EACX66B,QAASnT,EAAKpC,QACd2kC,QAAStnD,EAAMmb,eACfo8C,SAAUv3D,EAAMob,WAChBi5B,eAAgBr0C,EAAMqb,iBACtBqqC,SAAU1lD,EAAMsb,gBAChBrU,WAAYhC,EAAY1C,MAAQ0C,EAAYpB,QAAU,EACtDmD,YAAahH,EAAMZ,YACnB8E,WAAYA,GAAclE,EAAMkE,WAChCC,SAAUnE,EAAMmE,SAChBqD,UAAWA,GAAaxH,EAAMwH,UAC9Bi8C,aAAc,EACdr8D,aAAc29B,EAAK19B,SAEpByV,QAGP23B,MAAO,CACLp3B,MAAO,SAAe+C,GACpB,OAAOA,EAAIZ,MAAM1X,QAAQuV,OAE3Bk+B,SAAS,EACT8B,SAAU,SACV52B,KAAM,KAGV2G,YAAa,CACXxL,YAAa,SAAqBpiB,GAChC,OAAQA,EAAKqiB,WAAW,OAE1B4oB,OAAQ,CACN7oB,YAAa,SAAqBpiB,GAChC,OAAQ,CAAC,iBAAkB,SAAU,QAAQ6sB,SAAS7sB,OAM1D,GAAqB,SAAUu5E,GACjC78C,GAAU88C,EAAOD,GAEjB,IAAIE,EAAWz8C,GAAaw8C,GAE5B,SAASA,EAAMl2C,GACb,IAAIo2C,EAkBJ,OAhBA,GAAgBp8D,KAAMk8D,IAEtBE,EAAUD,EAAS75E,KAAK0d,OAChB0C,MAAQsjB,EAAOtjB,MACvB05D,EAAQpxE,QAAUg7B,EAAOh7B,QACzBoxE,EAAQ94D,IAAM0iB,EAAO1iB,IACrB84D,EAAQC,cAAWppE,EACnBmpE,EAAQzzD,SAAM1V,EACdmpE,EAAQxzD,YAAS3V,EACjBmpE,EAAQ3zD,UAAOxV,EACfmpE,EAAQ1zD,WAAQzV,EAChBmpE,EAAQ32D,WAAQxS,EAChBmpE,EAAQr1D,YAAS9T,EACjBmpE,EAAQ77B,cAAWttC,EACnBmpE,EAAQ57D,YAASvN,EACjBmpE,EAAQv4B,cAAW5wC,EACZmpE,EAwGT,OArGA,GAAaF,EAAO,CAAC,CACnBx4E,IAAK,SACLN,MAAO,SAAgBinB,EAAUmO,GAC/B,IAAI/X,EAAKT,KACL6J,EAAOpJ,EAAGzV,QAId,GAHAyV,EAAGgI,KAAO,EACVhI,EAAGkI,IAAM,EAEJkB,EAAK40B,QAAV,CAKAh+B,EAAGgF,MAAQhF,EAAGiI,MAAQ2B,EACtB5J,EAAGsG,OAAStG,EAAGmI,OAAS4P,EACxB,IAAI29B,EAAY7xD,EAAQulB,EAAKF,MAAQE,EAAKF,KAAK/jB,OAAS,EACxD6a,EAAG47D,SAAW7vD,GAAU3C,EAAKm6B,SAE7B,IAAIs4B,EAAWnmB,EAAY1pC,GAAO5C,EAAK9G,MAAMI,WAAa1C,EAAG47D,SAASt1D,OAElEtG,EAAGqzB,eACLrzB,EAAGsG,OAASu1D,EAEZ77D,EAAGgF,MAAQ62D,OAdX77D,EAAGgF,MAAQhF,EAAGsG,OAAStG,EAAGiI,MAAQjI,EAAGmI,OAAS,IAiBjD,CACDllB,IAAK,eACLN,MAAO,WACL,IAAIuI,EAAMqU,KAAKhV,QAAQu1C,SACvB,MAAe,QAAR50C,GAAyB,WAARA,IAEzB,CACDjI,IAAK,YACLN,MAAO,SAAmByzC,GACxB,IAOIxsB,EAAUwtC,EAAQC,EAPlBnvC,EAAM3I,KAAK2I,IACXF,EAAOzI,KAAKyI,KACZG,EAAS5I,KAAK4I,OACdF,EAAQ1I,KAAK0I,MACb1d,EAAUgV,KAAKhV,QACfzC,EAAQyC,EAAQzC,MAChB8e,EAAW,EAqBf,OAlBIrH,KAAK8zB,gBACP+jB,EAASrvD,EAAeD,EAAOkgB,EAAMC,GACrCovC,EAASnvC,EAAMkuB,EACfxsB,EAAW3B,EAAQD,IAEM,SAArBzd,EAAQu1C,UACVsX,EAASpvC,EAAOouB,EAChBihB,EAAStvD,EAAeD,EAAOqgB,EAAQD,GACvCtB,GAAiB,GAANnb,IAEX2rD,EAASnvC,EAAQmuB,EACjBihB,EAAStvD,EAAeD,EAAOogB,EAAKC,GACpCvB,EAAgB,GAALnb,GAGbme,EAAWzB,EAASD,GAGf,CACLkvC,OAAQA,EACRC,OAAQA,EACRztC,SAAUA,EACVhD,SAAUA,KAGb,CACD3jB,IAAK,OACLN,MAAO,WACL,IAAIqd,EAAKT,KACLsD,EAAM7C,EAAG6C,IACTuG,EAAOpJ,EAAGzV,QAEd,GAAK6e,EAAK40B,QAAV,CAIA,IAAI89B,EAAW9vD,GAAO5C,EAAK9G,MAEvB8zB,EADa0lC,EAASp5D,WACA,EAAI1C,EAAG47D,SAAS1zD,IAEtC6zD,EAAgB/7D,EAAGg8D,UAAU5lC,GAC7BghB,EAAS2kB,EAAc3kB,OACvBC,EAAS0kB,EAAc1kB,OACvBztC,EAAWmyD,EAAcnyD,SACzBhD,EAAWm1D,EAAcn1D,SAE7BqC,GAAWpG,EAAKuG,EAAKF,KAAM,EAAG,EAAG4yD,EAAU,CACzCh8D,MAAOsJ,EAAKtJ,MACZ8J,SAAUA,EACVhD,SAAUA,EACVqD,UAAWpiB,EAAmBuhB,EAAKthB,OACnCoiB,aAAc,SACdH,YAAa,CAACqtC,EAAQC,UAKrBokB,EAhIgB,CAiIvB,IAaF,IAAIQ,GAAe,CACjB9zE,GAAI,QACJ+yE,SAAU,GACVlzE,MAAO,SAAeia,EAAOu0D,EAAOjsE,IAdtC,SAAqB0X,EAAO+vC,GAC1B,IAAI9a,EAAQ,IAAI,GAAM,CACpBr0B,IAAKZ,EAAMY,IACXtY,QAASynD,EACT/vC,MAAOA,IAETuhC,GAAkBvhC,EAAOi1B,EAAO8a,GAChCxO,GAAevhC,EAAOi1B,GACtBj1B,EAAMi6D,WAAahlC,EAOjBilC,CAAYl6D,EAAO1X,IAErBmyC,KAAM,SAAcz6B,GAClB,IAAIi6D,EAAaj6D,EAAMi6D,WACvB14B,GAAkBvhC,EAAOi6D,UAClBj6D,EAAMi6D,YAEf3sB,aAAc,SAAsBttC,EAAOu0D,EAAOjsE,GAChD,IAAI2sC,EAAQj1B,EAAMi6D,WAClB14B,GAAkBvhC,EAAOi1B,EAAO3sC,GAChC2sC,EAAM3sC,QAAUA,GAElBiX,SAAU,CACR1Z,MAAO,SACPk2C,SAAS,EACT17B,KAAM,CACJvC,OAAQ,QAEVqjC,UAAU,EACVG,QAAS,GACTzD,SAAU,MACV52B,KAAM,GACNnJ,OAAQ,KAEVmpC,cAAe,CACbppC,MAAO,SAET+P,YAAa,CACXxL,aAAa,EACbE,YAAY,IA6CZ63D,IA1CM,IAAIC,QA0CI,CAChBC,QAAS,SAAiB7uD,GACxB,IAAKA,EAAMtoB,OACT,OAAO,EAGT,IAAIzD,EAAGiF,EACHqG,EAAI,EACJC,EAAI,EACJgvB,EAAQ,EAEZ,IAAKv6B,EAAI,EAAGiF,EAAM8mB,EAAMtoB,OAAQzD,EAAIiF,IAAOjF,EAAG,CAC5C,IAAI03B,EAAK3L,EAAM/rB,GAAGw0B,QAElB,GAAIkD,GAAMA,EAAGmjD,WAAY,CACvB,IAAIrxE,EAAMkuB,EAAGojD,kBACbxvE,GAAK9B,EAAI8B,EACTC,GAAK/B,EAAI+B,IACPgvB,GAIN,MAAO,CACLjvB,EAAGA,EAAIivB,EACPhvB,EAAGA,EAAIgvB,IAGXulB,QAAS,SAAiB/zB,EAAOgvD,GAC/B,IAAKhvD,EAAMtoB,OACT,OAAO,EAGT,IAGIzD,EAAGiF,EAAK+1E,EAHR1vE,EAAIyvE,EAAczvE,EAClBC,EAAIwvE,EAAcxvE,EAClB6zC,EAAcp4C,OAAOoD,kBAGzB,IAAKpK,EAAI,EAAGiF,EAAM8mB,EAAMtoB,OAAQzD,EAAIiF,IAAOjF,EAAG,CAC5C,IAAI03B,EAAK3L,EAAM/rB,GAAGw0B,QAElB,GAAIkD,GAAMA,EAAGmjD,WAAY,CACvB,IACIv6E,EAAI6L,GAAsB4uE,EADjBrjD,EAAG2nB,kBAGZ/+C,EAAI8+C,IACNA,EAAc9+C,EACd06E,EAAiBtjD,IAKvB,GAAIsjD,EAAgB,CAClB,IAAIC,EAAKD,EAAeF,kBACxBxvE,EAAI2vE,EAAG3vE,EACPC,EAAI0vE,EAAG1vE,EAGT,MAAO,CACLD,EAAGA,EACHC,EAAGA,MAKT,SAAS2vE,GAAar+C,EAAMs+C,GAS1B,OARIA,IACEh5E,EAAQg5E,GACVj5E,MAAMN,UAAU2hB,KAAKrd,MAAM22B,EAAMs+C,GAEjCt+C,EAAKtZ,KAAK43D,IAIPt+C,EAGT,SAASu+C,GAAc1xE,GACrB,OAAoB,kBAARA,GAAoBA,aAAe2xE,SAAW3xE,EAAIf,QAAQ,OAAS,EACtEe,EAAI+V,MAAM,MAGZ/V,EA0BT,SAAS4xE,GAAe/lC,EAAS1sC,GAC/B,IAAIsY,EAAMo0B,EAAQzR,OAAO3iB,IACrBo6D,EAAOhmC,EAAQgmC,KACfC,EAASjmC,EAAQimC,OACjBhmC,EAAQD,EAAQC,MAChBigC,EAAW5sE,EAAQ4sE,SACnBF,EAAY1sE,EAAQ0sE,UACpBkG,EAAWnxD,GAAOzhB,EAAQ4yE,UAC1B5C,EAAYvuD,GAAOzhB,EAAQgwE,WAC3B6C,EAAapxD,GAAOzhB,EAAQ6yE,YAC5BC,EAAiBnmC,EAAM/xC,OACvBm4E,EAAkBJ,EAAO/3E,OACzBo4E,EAAoBN,EAAK93E,OACzBo+C,EAAUx3B,GAAUxhB,EAAQg5C,SAC5Bj9B,EAASi9B,EAAQj9B,OACjBtB,EAAQ,EACRw4D,EAAqBP,EAAKv6C,QAAO,SAAUzG,EAAOwhD,GACpD,OAAOxhD,EAAQwhD,EAASC,OAAOv4E,OAASs4E,EAASp0D,MAAMlkB,OAASs4E,EAASE,MAAMx4E,SAC9E,IACHq4E,GAAsBvmC,EAAQ2mC,WAAWz4E,OAAS8xC,EAAQ4mC,UAAU14E,OAEhEk4E,IACF/2D,GAAU+2D,EAAiB9C,EAAU73D,YAAc26D,EAAiB,GAAK9yE,EAAQuzE,aAAevzE,EAAQwzE,mBAGtGP,KAEFl3D,GAAUi3D,GADWhzE,EAAQyzE,cAAgBtyE,KAAK6B,IAAI0pE,EAAWkG,EAASz6D,YAAcy6D,EAASz6D,aACjD86D,EAAqBD,GAAqBJ,EAASz6D,YAAc86D,EAAqB,GAAKjzE,EAAQ0zE,aAGjJX,IACFh3D,GAAU/b,EAAQ2zE,gBAAkBZ,EAAkBF,EAAW16D,YAAc46D,EAAkB,GAAK/yE,EAAQ4zE,eAGhH,IAAIC,EAAe,EAEfC,EAAe,SAAsBl1D,GACvCnE,EAAQtZ,KAAK6B,IAAIyX,EAAOnC,EAAIkC,YAAYoE,GAAMnE,MAAQo5D,IAmBxD,OAhBAv7D,EAAIyC,OACJzC,EAAIP,KAAOi4D,EAAU11D,OACrB1b,EAAK8tC,EAAQC,MAAOmnC,GACpBx7D,EAAIP,KAAO66D,EAASt4D,OACpB1b,EAAK8tC,EAAQ2mC,WAAWh+D,OAAOq3B,EAAQ4mC,WAAYQ,GACnDD,EAAe7zE,EAAQyzE,cAAgB7G,EAAW,EAAI,EACtDhuE,EAAK8zE,GAAM,SAAUQ,GACnBt0E,EAAKs0E,EAASC,OAAQW,GACtBl1E,EAAKs0E,EAASp0D,MAAOg1D,GACrBl1E,EAAKs0E,EAASE,MAAOU,MAEvBD,EAAe,EACfv7D,EAAIP,KAAO86D,EAAWv4D,OACtB1b,EAAK8tC,EAAQimC,OAAQmB,GACrBx7D,EAAI6C,UAEG,CACLV,MAFFA,GAASu+B,EAAQv+B,MAGfsB,OAAQA,GA+BZ,SAASg4D,GAAgBr8D,EAAO1X,EAASiY,EAAM+7D,GAC7C,IAAIvxE,EAAIwV,EAAKxV,EACTgY,EAAQxC,EAAKwC,MACbw5D,EAAav8D,EAAM+C,MACnBy5D,EAAmBx8D,EAAMitB,UACzBlnB,EAAOy2D,EAAiBz2D,KACxBC,EAAQw2D,EAAiBx2D,MACzBy2D,EAAS,SAcb,MAZe,WAAXH,EACFG,EAAS1xE,IAAMgb,EAAOC,GAAS,EAAI,OAAS,QACnCjb,GAAKgY,EAAQ,EACtB05D,EAAS,OACA1xE,GAAKwxE,EAAax5D,EAAQ,IACnC05D,EAAS,SA5Bb,SAA6BA,EAAQz8D,EAAO1X,EAASiY,GACnD,IAAIxV,EAAIwV,EAAKxV,EACTgY,EAAQxC,EAAKwC,MACb25D,EAAQp0E,EAAQq0E,UAAYr0E,EAAQs0E,aAExC,MAAe,SAAXH,GAAqB1xE,EAAIgY,EAAQ25D,EAAQ18D,EAAM+C,OAIpC,UAAX05D,GAAsB1xE,EAAIgY,EAAQ25D,EAAQ,QAA9C,EAsBIG,CAAoBJ,EAAQz8D,EAAO1X,EAASiY,KAC9Ck8D,EAAS,UAGJA,EAGT,SAASK,GAAmB98D,EAAO1X,EAASiY,GAC1C,IAAI+7D,EAASh0E,EAAQg0E,QApDvB,SAAyBt8D,EAAOO,GAC9B,IAAIvV,EAAIuV,EAAKvV,EACTqZ,EAAS9D,EAAK8D,OAElB,OAAIrZ,EAAIqZ,EAAS,EACR,MACErZ,EAAIgV,EAAMqE,OAASA,EAAS,EAC9B,SAGF,SA0CwB04D,CAAgB/8D,EAAOO,GACtD,MAAO,CACLk8D,OAAQn0E,EAAQm0E,QAAUJ,GAAgBr8D,EAAO1X,EAASiY,EAAM+7D,GAChEA,OAAQA,GAgCZ,SAASU,GAAmB10E,EAASiY,EAAM08D,EAAWj9D,GACpD,IAAI28D,EAAYr0E,EAAQq0E,UACpBC,EAAet0E,EAAQs0E,aACvBn4D,EAAenc,EAAQmc,aACvBg4D,EAASQ,EAAUR,OACnBH,EAASW,EAAUX,OACnBY,EAAiBP,EAAYC,EAC7BO,EAAmB14D,EAAem4D,EAClC7xE,EApCN,SAAgBwV,EAAMk8D,GACpB,IAAI1xE,EAAIwV,EAAKxV,EACTgY,EAAQxC,EAAKwC,MAQjB,MANe,UAAX05D,EACF1xE,GAAKgY,EACe,WAAX05D,IACT1xE,GAAKgY,EAAQ,GAGRhY,EA0BCqyE,CAAO78D,EAAMk8D,GACjBzxE,EAxBN,SAAgBuV,EAAM+7D,EAAQY,GAC5B,IAAIlyE,EAAIuV,EAAKvV,EACTqZ,EAAS9D,EAAK8D,OAUlB,MARe,QAAXi4D,EACFtxE,GAAKkyE,EAELlyE,GADoB,WAAXsxE,EACJj4D,EAAS64D,EAET74D,EAAS,EAGTrZ,EAYCqyE,CAAO98D,EAAM+7D,EAAQY,GAc7B,MAZe,WAAXZ,EACa,SAAXG,EACF1xE,GAAKmyE,EACe,UAAXT,IACT1xE,GAAKmyE,GAEa,SAAXT,EACT1xE,GAAKoyE,EACe,UAAXV,IACT1xE,GAAKoyE,GAGA,CACLpyE,EAAG4B,GAAY5B,EAAG,EAAGiV,EAAM+C,MAAQxC,EAAKwC,OACxC/X,EAAG2B,GAAY3B,EAAG,EAAGgV,EAAMqE,OAAS9D,EAAK8D,SAI7C,SAASi5D,GAAYtoC,EAASnvC,EAAOyC,GACnC,IAAIg5C,EAAUx3B,GAAUxhB,EAAQg5C,SAChC,MAAiB,WAAVz7C,EAAqBmvC,EAAQjqC,EAAIiqC,EAAQjyB,MAAQ,EAAc,UAAVld,EAAoBmvC,EAAQjqC,EAAIiqC,EAAQjyB,MAAQu+B,EAAQt7B,MAAQgvB,EAAQjqC,EAAIu2C,EAAQv7B,KAGlJ,SAASw3D,GAAwBz4E,GAC/B,OAAO61E,GAAa,GAAIE,GAAc/1E,IAWxC,SAAS04E,GAAkBx+C,EAAWjf,GACpC,IAAI2N,EAAW3N,GAAWA,EAAQ2oB,SAAW3oB,EAAQ2oB,QAAQsM,SAAWj1B,EAAQ2oB,QAAQsM,QAAQhW,UAChG,OAAOtR,EAAWsR,EAAUtR,SAASA,GAAYsR,EAGnD,IAAI,GAAuB,SAAUy+C,GACnC/gD,GAAUghD,EAASD,GAEnB,IAAIE,EAAW3gD,GAAa0gD,GAE5B,SAASA,EAAQp6C,GACf,IAAIs6C,EAgCJ,OA9BA,GAAgBtgE,KAAMogE,IAEtBE,EAAUD,EAAS/9E,KAAK0d,OAChBugE,QAAU,EAClBD,EAAQ/9C,QAAU,GAClB+9C,EAAQr6C,OAASD,EAAOC,OACxBq6C,EAAQE,oBAAiBvtE,EACzBqtE,EAAQG,WAAQxtE,EAChBqtE,EAAQI,uBAAoBztE,EAC5BqtE,EAAQK,cAAgB,GACxBL,EAAQ35C,iBAAc1zB,EACtBqtE,EAAQx1C,cAAW73B,EACnBqtE,EAAQt1E,QAAUg7B,EAAOh7B,QACzBs1E,EAAQM,gBAAa3tE,EACrBqtE,EAAQ3oC,WAAQ1kC,EAChBqtE,EAAQjC,gBAAaprE,EACrBqtE,EAAQ5C,UAAOzqE,EACfqtE,EAAQhC,eAAYrrE,EACpBqtE,EAAQ3C,YAAS1qE,EACjBqtE,EAAQnB,YAASlsE,EACjBqtE,EAAQtB,YAAS/rE,EACjBqtE,EAAQ7yE,OAAIwF,EACZqtE,EAAQ5yE,OAAIuF,EACZqtE,EAAQv5D,YAAS9T,EACjBqtE,EAAQ76D,WAAQxS,EAChBqtE,EAAQO,YAAS5tE,EACjBqtE,EAAQQ,YAAS7tE,EACjBqtE,EAAQS,iBAAc9tE,EACtBqtE,EAAQU,sBAAmB/tE,EAC3BqtE,EAAQW,qBAAkBhuE,EACnBqtE,EAooBT,OAjoBA,GAAaF,EAAS,CAAC,CACrB18E,IAAK,aACLN,MAAO,SAAoB4H,GACzBgV,KAAKhV,QAAUA,EACfgV,KAAK0gE,uBAAoBztE,EACzB+M,KAAK8qB,cAAW73B,IAEjB,CACDvP,IAAK,qBACLN,MAAO,WACL,IAAIqd,EAAKT,KACLgqB,EAASvpB,EAAGigE,kBAEhB,GAAI12C,EACF,OAAOA,EAGT,IAAItnB,EAAQjC,EAAGwlB,OACXj7B,EAAUyV,EAAGzV,QAAQmlB,WAAW1P,EAAGmG,cACnCiD,EAAO7e,EAAQogD,SAAW1oC,EAAM1X,QAAQoX,WAAapX,EAAQ46B,WAC7DA,EAAa,IAAI,GAAWnlB,EAAGwlB,OAAQpc,GAM3C,OAJIA,EAAKiG,aACPrP,EAAGigE,kBAAoB79E,OAAO4tC,OAAO7K,IAGhCA,IAER,CACDliC,IAAK,aACLN,MAAO,WACL,IArFwB4uB,EAAQ0lB,EAASwpC,EAqFrCzgE,EAAKT,KACT,OAAOS,EAAGqqB,WAAarqB,EAAGqqB,UAtFF9Y,EAsFkCvR,EAAGwlB,OAAOrf,aAtFpC8wB,EAsFkDj3B,EAtFzCygE,EAsF6CzgE,EAAGkgE,cArFtF99E,OAAO6c,OAAO7c,OAAOY,OAAOuuB,GAAS,CAC1C0lB,QAASA,EACTwpC,aAAcA,EACdn4E,KAAM,gBAoFL,CACDrF,IAAK,WACLN,MAAO,SAAkBqf,EAASzX,GAChC,IAAIyV,EAAKT,KACL0hB,EAAY12B,EAAQ02B,UACpBy/C,EAAcz/C,EAAUy/C,YAAY94E,MAAMoY,EAAI,CAACgC,IAC/Ck1B,EAAQjW,EAAUiW,MAAMtvC,MAAMoY,EAAI,CAACgC,IACnC2+D,EAAa1/C,EAAU0/C,WAAW/4E,MAAMoY,EAAI,CAACgC,IAC7CqH,EAAQ,GAIZ,OAHAA,EAAQuzD,GAAavzD,EAAOyzD,GAAc4D,IAC1Cr3D,EAAQuzD,GAAavzD,EAAOyzD,GAAc5lC,IAC1C7tB,EAAQuzD,GAAavzD,EAAOyzD,GAAc6D,MAG3C,CACD19E,IAAK,gBACLN,MAAO,SAAuB89E,EAAcl2E,GAC1C,OAAOi1E,GAAwBj1E,EAAQ02B,UAAU28C,WAAWh2E,MAAM2X,KAAM,CAACkhE,OAE1E,CACDx9E,IAAK,UACLN,MAAO,SAAiB89E,EAAcl2E,GACpC,IAAIyV,EAAKT,KACL0hB,EAAY12B,EAAQ02B,UACpB2/C,EAAY,GAahB,OAZAz3E,EAAKs3E,GAAc,SAAUz+D,GAC3B,IAAIy7D,EAAW,CACbC,OAAQ,GACRr0D,MAAO,GACPs0D,MAAO,IAELkD,EAASpB,GAAkBx+C,EAAWjf,GAC1C46D,GAAaa,EAASC,OAAQZ,GAAc+D,EAAOC,YAAYj/E,KAAKme,EAAIgC,KACxE46D,GAAaa,EAASp0D,MAAOw3D,EAAOjyC,MAAM/sC,KAAKme,EAAIgC,IACnD46D,GAAaa,EAASE,MAAOb,GAAc+D,EAAOE,WAAWl/E,KAAKme,EAAIgC,KACtE4+D,EAAU37D,KAAKw4D,MAEVmD,IAER,CACD39E,IAAK,eACLN,MAAO,SAAsB89E,EAAcl2E,GACzC,OAAOi1E,GAAwBj1E,EAAQ02B,UAAU48C,UAAUj2E,MAAM2X,KAAM,CAACkhE,OAEzE,CACDx9E,IAAK,YACLN,MAAO,SAAmB89E,EAAcl2E,GACtC,IAAIyV,EAAKT,KACL0hB,EAAY12B,EAAQ02B,UACpB+/C,EAAe//C,EAAU+/C,aAAap5E,MAAMoY,EAAI,CAACygE,IACjDvD,EAASj8C,EAAUi8C,OAAOt1E,MAAMoY,EAAI,CAACygE,IACrCQ,EAAchgD,EAAUggD,YAAYr5E,MAAMoY,EAAI,CAACygE,IAC/Cp3D,EAAQ,GAIZ,OAHAA,EAAQuzD,GAAavzD,EAAOyzD,GAAckE,IAC1C33D,EAAQuzD,GAAavzD,EAAOyzD,GAAcI,IAC1C7zD,EAAQuzD,GAAavzD,EAAOyzD,GAAcmE,MAG3C,CACDh+E,IAAK,eACLN,MAAO,SAAsB4H,GAC3B,IAOI7I,EAAGiF,EA9Wcsb,EAAO2f,EAC5B1L,EACArsB,EACAC,EACAs+B,EAEA84C,EACAtyC,EACAjsC,EA+VIqd,EAAKT,KACLylB,EAAShlB,EAAG8hB,QACZpd,EAAO1E,EAAGwlB,OAAO9gB,KACjB47D,EAAc,GACdC,EAAmB,GACnBC,EAAkB,GAClBC,EAAe,GAGnB,IAAK/+E,EAAI,EAAGiF,EAAMq+B,EAAO7/B,OAAQzD,EAAIiF,IAAOjF,EAC1C++E,EAAax7D,MAjXMhD,EAiXiBjC,EAAGwlB,OAjXb5D,EAiXqBoD,EAAOtjC,GAhXxDw0B,SACArsB,SACAC,SACAs+B,SAEA84C,SACAtyC,SACAjsC,SAPAuzB,EAAU0L,EAAK1L,QACfrsB,EAAe+3B,EAAK/3B,aACpBC,EAAQ83B,EAAK93B,MACbs+B,EAAanmB,EAAM2pB,eAAe/hC,GAAcu+B,WAEhD84C,EAAwB94C,EAAW+4C,iBAAiBr3E,GACpD8kC,EAAQsyC,EAAsBtyC,MAC9BjsC,EAAQu+E,EAAsBv+E,MAE3B,CACLsf,MAAOA,EACP2sB,MAAOA,EACPvG,OAAQD,EAAWuG,UAAU7kC,GAC7BwlC,IAAKrtB,EAAMyC,KAAK5C,SAASjY,GAAc6a,KAAK5a,GAC5CkxC,eAAgBr4C,EAChBgoC,QAASvC,EAAWwC,aACpByE,UAAWvlC,EACXD,aAAcA,EACdqsB,QAASA,KAuXP,OAtBI3rB,EAAQ8lB,SACVowD,EAAeA,EAAapwD,QAAO,SAAU6F,EAASpsB,EAAOuD,GAC3D,OAAO9C,EAAQ8lB,OAAO6F,EAASpsB,EAAOuD,EAAOqX,OAI7Cna,EAAQ62E,WACVX,EAAeA,EAAalvC,MAAK,SAAUrjC,EAAGC,GAC5C,OAAO5D,EAAQ62E,SAASlzE,EAAGC,EAAGuW,OAIlCvb,EAAKs3E,GAAc,SAAUz+D,GAC3B,IAAI6+D,EAASpB,GAAkBl1E,EAAQ02B,UAAWjf,GAClDs+D,EAAYr7D,KAAK47D,EAAOQ,WAAWx/E,KAAKme,EAAIgC,IAC5Cu+D,EAAiBt7D,KAAK47D,EAAOS,gBAAgBz/E,KAAKme,EAAIgC,IACtDw+D,EAAgBv7D,KAAK47D,EAAOU,eAAe1/E,KAAKme,EAAIgC,OAEtDhC,EAAGsgE,YAAcA,EACjBtgE,EAAGugE,iBAAmBA,EACtBvgE,EAAGwgE,gBAAkBA,EACrBxgE,EAAGmgE,WAAaM,EACTA,IAER,CACDx9E,IAAK,SACLN,MAAO,SAAgBs5C,EAASipB,GAC9B,IAGIpgC,EAHA9kB,EAAKT,KACLhV,EAAUyV,EAAGzV,QAAQmlB,WAAW1P,EAAGmG,cACnC6e,EAAShlB,EAAG8hB,QAEZ2+C,EAAe,GAEnB,GAAKz7C,EAAO7/B,OAML,CACL,IAAI26C,EAAWs8B,GAAY7xE,EAAQu1C,UAAUj+C,KAAKme,EAAIglB,EAAQhlB,EAAG+/D,gBACjEU,EAAezgE,EAAGwhE,aAAaj3E,GAC/ByV,EAAGk3B,MAAQl3B,EAAGyhE,SAAShB,EAAcl2E,GACrCyV,EAAG49D,WAAa59D,EAAG0hE,cAAcjB,EAAcl2E,GAC/CyV,EAAGi9D,KAAOj9D,EAAG2hE,QAAQlB,EAAcl2E,GACnCyV,EAAG69D,UAAY79D,EAAG4hE,aAAanB,EAAcl2E,GAC7CyV,EAAGk9D,OAASl9D,EAAG6hE,UAAUpB,EAAcl2E,GACvC,IAAIiY,EAAOxC,EAAGggE,MAAQhD,GAAeh9D,EAAIzV,GACrCu3E,EAAkB1/E,OAAO6c,OAAO,GAAI6gC,EAAUt9B,GAC9C08D,EAAYH,GAAmB/+D,EAAGwlB,OAAQj7B,EAASu3E,GACnDC,EAAkB9C,GAAmB10E,EAASu3E,EAAiB5C,EAAWl/D,EAAGwlB,QACjFxlB,EAAG0+D,OAASQ,EAAUR,OACtB1+D,EAAGu+D,OAASW,EAAUX,OACtBz5C,EAAa,CACXg7C,QAAS,EACT9yE,EAAG+0E,EAAgB/0E,EACnBC,EAAG80E,EAAgB90E,EACnB+X,MAAOxC,EAAKwC,MACZsB,OAAQ9D,EAAK8D,OACb85D,OAAQtgC,EAAS9yC,EACjBqzE,OAAQvgC,EAAS7yC,QA1BA,IAAf+S,EAAG8/D,UACLh7C,EAAa,CACXg7C,QAAS,IA4Bf9/D,EAAGkgE,cAAgBO,EACnBzgE,EAAGqqB,cAAW73B,EAEVsyB,GACF9kB,EAAGqwB,qBAAqB3J,OAAO1mB,EAAI8kB,GAGjCmX,GAAW1xC,EAAQy3E,UACrBz3E,EAAQy3E,SAASngF,KAAKme,EAAI,CACxBiC,MAAOjC,EAAGwlB,OACVyR,QAASj3B,EACTklD,OAAQA,MAIb,CACDjiE,IAAK,YACLN,MAAO,SAAmBs/E,EAAcp/D,EAAKL,EAAMjY,GACjD,IAAI23E,EAAgB3iE,KAAK4iE,iBAAiBF,EAAcz/D,EAAMjY,GAC9DsY,EAAIyE,OAAO46D,EAAc1tB,GAAI0tB,EAAcztB,IAC3C5xC,EAAIyE,OAAO46D,EAAcxtB,GAAIwtB,EAAcvtB,IAC3C9xC,EAAIyE,OAAO46D,EAAcE,GAAIF,EAAcG,MAE5C,CACDp/E,IAAK,mBACLN,MAAO,SAA0Bs/E,EAAcz/D,EAAMjY,GACnD,IAQIiqD,EAAIE,EAAI0tB,EAAI3tB,EAAIE,EAAI0tB,EARpB3D,EAASn/D,KAAKm/D,OACdH,EAASh/D,KAAKg/D,OACd73D,EAAenc,EAAQmc,aACvBk4D,EAAYr0E,EAAQq0E,UACpB0D,EAAML,EAAaj1E,EACnBu1E,EAAMN,EAAah1E,EACnB+X,EAAQxC,EAAKwC,MACbsB,EAAS9D,EAAK8D,OA2ClB,MAxCe,WAAXi4D,GACF5pB,EAAK4tB,EAAMj8D,EAAS,EAEL,SAAXo4D,GAEFhqB,GADAF,EAAK8tB,GACK1D,EACVnqB,EAAKE,EAAKiqB,EACVyD,EAAK1tB,EAAKiqB,IAGVlqB,GADAF,EAAK8tB,EAAMt9D,GACD45D,EACVnqB,EAAKE,EAAKiqB,EACVyD,EAAK1tB,EAAKiqB,GAGZwD,EAAK5tB,IAGHE,EADa,SAAXgqB,EACG4D,EAAM57D,EAAek4D,EACN,UAAXF,EACJ4D,EAAMt9D,EAAQ0B,EAAek4D,EAE7Br/D,KAAK6gE,OAGG,QAAX7B,GAEF5pB,GADAF,EAAK8tB,GACK3D,EACVpqB,EAAKE,EAAKkqB,EACVwD,EAAK1tB,EAAKkqB,IAGVjqB,GADAF,EAAK8tB,EAAMj8D,GACDs4D,EACVpqB,EAAKE,EAAKkqB,EACVwD,EAAK1tB,EAAKkqB,GAGZyD,EAAK5tB,GAGA,CACLD,GAAIA,EACJE,GAAIA,EACJ0tB,GAAIA,EACJ3tB,GAAIA,EACJE,GAAIA,EACJ0tB,GAAIA,KAGP,CACDp/E,IAAK,YACLN,MAAO,SAAmBsxB,EAAIpR,EAAKtY,GACjC,IAGIgwE,EAAWuD,EAAcp8E,EAHzBse,EAAKT,KACL23B,EAAQl3B,EAAGk3B,MACX/xC,EAAS+xC,EAAM/xC,OAGnB,GAAIA,EAAQ,CACV,IAAIw0E,EAAYl/C,GAAclwB,EAAQmwB,IAAK1a,EAAGhT,EAAGgT,EAAGgF,OASpD,IARAiP,EAAGjnB,EAAIuyE,GAAYv/D,EAAIzV,EAAQkjD,WAAYljD,GAC3CsY,EAAIoH,UAAY0vD,EAAU1vD,UAAU1f,EAAQkjD,YAC5C5qC,EAAIqH,aAAe,SACnBqwD,EAAYvuD,GAAOzhB,EAAQgwE,WAC3BuD,EAAevzE,EAAQuzE,aACvBj7D,EAAImH,UAAYzf,EAAQi4E,WACxB3/D,EAAIP,KAAOi4D,EAAU11D,OAEhBnjB,EAAI,EAAGA,EAAIyD,IAAUzD,EACxBmhB,EAAIgH,SAASqtB,EAAMx1C,GAAIi4E,EAAU3sE,EAAEinB,EAAGjnB,GAAIinB,EAAGhnB,EAAIstE,EAAU73D,WAAa,GACxEuR,EAAGhnB,GAAKstE,EAAU73D,WAAao7D,EAE3Bp8E,EAAI,IAAMyD,IACZ8uB,EAAGhnB,GAAK1C,EAAQwzE,kBAAoBD,MAK3C,CACD76E,IAAK,gBACLN,MAAO,SAAuBkgB,EAAKoR,EAAIvyB,EAAGi4E,EAAWpvE,GACnD,IAAIyV,EAAKT,KACL+gE,EAActgE,EAAGsgE,YAAY5+E,GAC7B4/E,EAAkBthE,EAAGugE,iBAAiB7+E,GACtCu1E,EAAY1sE,EAAQ0sE,UACpBE,EAAW5sE,EAAQ4sE,SACnBgG,EAAWnxD,GAAOzhB,EAAQ4yE,UAC1BsF,EAASlD,GAAYv/D,EAAI,OAAQzV,GACjCm4E,EAAY/I,EAAU3sE,EAAEy1E,GACxBE,EAAU1L,EAAYkG,EAASz6D,YAAcy6D,EAASz6D,WAAau0D,GAAa,EAAI,EACpF2L,EAAS3uD,EAAGhnB,EAAI01E,EAEpB,GAAIp4E,EAAQ6sE,cAAe,CACzB,IAAI6C,EAAc,CAChBpzD,OAAQnb,KAAK4B,IAAI6pE,EAAUF,GAAa,EACxCtwD,WAAY26D,EAAgB36D,WAC5BC,SAAU06D,EAAgB16D,SAC1Bc,YAAa,GAEXsyB,EAAU2/B,EAAU5+C,WAAW2nD,EAAWvL,GAAYA,EAAW,EACjEl9B,EAAU2oC,EAAS3L,EAAY,EACnCp0D,EAAI4G,YAAclf,EAAQs4E,mBAC1BhgE,EAAImH,UAAYzf,EAAQs4E,mBACxBt8D,GAAU1D,EAAKo3D,EAAajgC,EAASC,GACrCp3B,EAAI4G,YAAc62D,EAAYz+D,YAC9BgB,EAAImH,UAAYs2D,EAAY1+D,gBAC5B2E,GAAU1D,EAAKo3D,EAAajgC,EAASC,OAChC,CACLp3B,EAAI6G,UAAY42D,EAAY54D,aAAe,EAC3C7E,EAAI4G,YAAc62D,EAAYz+D,YAC9BgB,EAAIg0C,YAAYypB,EAAYziD,YAAc,IAC1Chb,EAAIi0C,eAAiBwpB,EAAYxiD,kBAAoB,EACrD,IAAIglD,EAASnJ,EAAU5+C,WAAW2nD,EAAWvL,GACzC4L,EAASpJ,EAAU5+C,WAAW4+C,EAAU7+C,MAAM4nD,EAAW,GAAIvL,EAAW,GACxEjR,EAAep6C,GAAcw0D,EAAYpa,cAEzC9jE,OAAOmf,OAAO2kD,GAAczK,MAAK,SAAU7pD,GAC7C,OAAa,IAANA,MAEPiR,EAAIqE,YACJrE,EAAImH,UAAYzf,EAAQs4E,mBACxBj4D,GAAmB/H,EAAK,CACtB7V,EAAG81E,EACH71E,EAAG21E,EACHjwE,EAAGwkE,EACHnlE,EAAGilE,EACHpwD,OAAQq/C,IAEVrjD,EAAI4E,OACJ5E,EAAI8E,SACJ9E,EAAImH,UAAYs2D,EAAY1+D,gBAC5BiB,EAAIqE,YACJ0D,GAAmB/H,EAAK,CACtB7V,EAAG+1E,EACH91E,EAAG21E,EAAS,EACZjwE,EAAGwkE,EAAW,EACdnlE,EAAGilE,EAAY,EACfpwD,OAAQq/C,IAEVrjD,EAAI4E,SAEJ5E,EAAImH,UAAYzf,EAAQs4E,mBACxBhgE,EAAI4zC,SAASqsB,EAAQF,EAAQzL,EAAUF,GACvCp0D,EAAImgE,WAAWF,EAAQF,EAAQzL,EAAUF,GACzCp0D,EAAImH,UAAYs2D,EAAY1+D,gBAC5BiB,EAAI4zC,SAASssB,EAAQH,EAAS,EAAGzL,EAAW,EAAGF,EAAY,IAI/Dp0D,EAAImH,UAAYhK,EAAGwgE,gBAAgB9+E,KAEpC,CACDuB,IAAK,WACLN,MAAO,SAAkBsxB,EAAIpR,EAAKtY,GAChC,IAkBIkzE,EAAUwF,EAAW55D,EAAO3nB,EAAGwc,EAAGxU,EAAM6b,EAlBxCvF,EAAKT,KACL09D,EAAOj9D,EAAGi9D,KACVgB,EAAc1zE,EAAQ0zE,YACtBiF,EAAY34E,EAAQ24E,UACpBlF,EAAgBzzE,EAAQyzE,cACxB/G,EAAY1sE,EAAQ0sE,UACpBE,EAAW5sE,EAAQ4sE,SACnBgG,EAAWnxD,GAAOzhB,EAAQ4yE,UAC1BgG,EAAiBhG,EAASz6D,WAC1B0gE,EAAe,EACfzJ,EAAYl/C,GAAclwB,EAAQmwB,IAAK1a,EAAGhT,EAAGgT,EAAGgF,OAEhDq+D,EAAiB,SAAwBl6D,GAC3CtG,EAAIgH,SAASV,EAAMwwD,EAAU3sE,EAAEinB,EAAGjnB,EAAIo2E,GAAenvD,EAAGhnB,EAAIk2E,EAAiB,GAC7ElvD,EAAGhnB,GAAKk2E,EAAiBlF,GAGvBqF,EAA0B3J,EAAU1vD,UAAUi5D,GAUlD,IARArgE,EAAIoH,UAAYi5D,EAChBrgE,EAAIqH,aAAe,SACnBrH,EAAIP,KAAO66D,EAASt4D,OACpBoP,EAAGjnB,EAAIuyE,GAAYv/D,EAAIsjE,EAAyB/4E,GAChDsY,EAAImH,UAAYzf,EAAQg5E,UACxBp6E,EAAK6W,EAAG49D,WAAYyF,GACpBD,EAAepF,GAA6C,UAA5BsF,EAAoD,WAAdJ,EAAyB/L,EAAW,EAAI,EAAIA,EAAW,EAAI,EAE5Hz1E,EAAI,EAAGgI,EAAOuzE,EAAK93E,OAAQzD,EAAIgI,IAAQhI,EAAG,CAa7C,IAZA+7E,EAAWR,EAAKv7E,GAChBuhF,EAAYjjE,EAAGwgE,gBAAgB9+E,GAC/BmhB,EAAImH,UAAYi5D,EAChB95E,EAAKs0E,EAASC,OAAQ2F,GACtBh6D,EAAQo0D,EAASp0D,MAEb20D,GAAiB30D,EAAMlkB,SACzB6a,EAAGwjE,cAAc3gE,EAAKoR,EAAIvyB,EAAGi4E,EAAWpvE,GAExC44E,EAAiBz3E,KAAK6B,IAAI4vE,EAASz6D,WAAYu0D,IAG5C/4D,EAAI,EAAGqH,EAAO8D,EAAMlkB,OAAQ+Y,EAAIqH,IAAQrH,EAC3CmlE,EAAeh6D,EAAMnL,IACrBilE,EAAiBhG,EAASz6D,WAG5BvZ,EAAKs0E,EAASE,MAAO0F,GAGvBD,EAAe,EACfD,EAAiBhG,EAASz6D,WAC1BvZ,EAAK6W,EAAG69D,UAAWwF,GACnBpvD,EAAGhnB,GAAKgxE,IAET,CACDh7E,IAAK,aACLN,MAAO,SAAoBsxB,EAAIpR,EAAKtY,GAClC,IAGI6yE,EAAY17E,EAHZse,EAAKT,KACL29D,EAASl9D,EAAGk9D,OACZ/3E,EAAS+3E,EAAO/3E,OAGpB,GAAIA,EAAQ,CACV,IAAIw0E,EAAYl/C,GAAclwB,EAAQmwB,IAAK1a,EAAGhT,EAAGgT,EAAGgF,OASpD,IARAiP,EAAGjnB,EAAIuyE,GAAYv/D,EAAIzV,EAAQk5E,YAAal5E,GAC5C0pB,EAAGhnB,GAAK1C,EAAQ2zE,gBAChBr7D,EAAIoH,UAAY0vD,EAAU1vD,UAAU1f,EAAQk5E,aAC5C5gE,EAAIqH,aAAe,SACnBkzD,EAAapxD,GAAOzhB,EAAQ6yE,YAC5Bv6D,EAAImH,UAAYzf,EAAQm5E,YACxB7gE,EAAIP,KAAO86D,EAAWv4D,OAEjBnjB,EAAI,EAAGA,EAAIyD,IAAUzD,EACxBmhB,EAAIgH,SAASqzD,EAAOx7E,GAAIi4E,EAAU3sE,EAAEinB,EAAGjnB,GAAIinB,EAAGhnB,EAAImwE,EAAW16D,WAAa,GAC1EuR,EAAGhnB,GAAKmwE,EAAW16D,WAAanY,EAAQ4zE,iBAI7C,CACDl7E,IAAK,iBACLN,MAAO,SAAwBsxB,EAAIpR,EAAK8gE,EAAap5E,GACnD,IAAIm0E,EAASn/D,KAAKm/D,OACdH,EAASh/D,KAAKg/D,OACdvxE,EAAIinB,EAAGjnB,EACPC,EAAIgnB,EAAGhnB,EACP+X,EAAQ2+D,EAAY3+D,MACpBsB,EAASq9D,EAAYr9D,OACrBO,EAAStc,EAAQmc,aACrB7D,EAAImH,UAAYzf,EAAQqX,gBACxBiB,EAAI4G,YAAclf,EAAQsX,YAC1BgB,EAAI6G,UAAYnf,EAAQmd,YACxB7E,EAAIqE,YACJrE,EAAIwE,OAAOra,EAAI6Z,EAAQ5Z,GAER,QAAXsxE,GACFh/D,KAAKqkE,UAAU3vD,EAAIpR,EAAK8gE,EAAap5E,GAGvCsY,EAAIyE,OAAOta,EAAIgY,EAAQ6B,EAAQ5Z,GAC/B4V,EAAIghE,iBAAiB72E,EAAIgY,EAAO/X,EAAGD,EAAIgY,EAAO/X,EAAI4Z,GAEnC,WAAX03D,GAAkC,UAAXG,GACzBn/D,KAAKqkE,UAAU3vD,EAAIpR,EAAK8gE,EAAap5E,GAGvCsY,EAAIyE,OAAOta,EAAIgY,EAAO/X,EAAIqZ,EAASO,GACnChE,EAAIghE,iBAAiB72E,EAAIgY,EAAO/X,EAAIqZ,EAAQtZ,EAAIgY,EAAQ6B,EAAQ5Z,EAAIqZ,GAErD,WAAXi4D,GACFh/D,KAAKqkE,UAAU3vD,EAAIpR,EAAK8gE,EAAap5E,GAGvCsY,EAAIyE,OAAOta,EAAI6Z,EAAQ5Z,EAAIqZ,GAC3BzD,EAAIghE,iBAAiB72E,EAAGC,EAAIqZ,EAAQtZ,EAAGC,EAAIqZ,EAASO,GAErC,WAAX03D,GAAkC,SAAXG,GACzBn/D,KAAKqkE,UAAU3vD,EAAIpR,EAAK8gE,EAAap5E,GAGvCsY,EAAIyE,OAAOta,EAAGC,EAAI4Z,GAClBhE,EAAIghE,iBAAiB72E,EAAGC,EAAGD,EAAI6Z,EAAQ5Z,GACvC4V,EAAIuE,YACJvE,EAAI4E,OAEAld,EAAQmd,YAAc,GACxB7E,EAAI8E,WAGP,CACD1kB,IAAK,yBACLN,MAAO,SAAgC4H,GACrC,IAAIyV,EAAKT,KACL0C,EAAQjC,EAAGwlB,OACXzE,EAAQ/gB,EAAGkmB,YACX49C,EAAQ/iD,GAASA,EAAM/zB,EACvB+2E,EAAQhjD,GAASA,EAAM9zB,EAE3B,GAAI62E,GAASC,EAAO,CAClB,IAAIjkC,EAAWs8B,GAAY7xE,EAAQu1C,UAAUj+C,KAAKme,EAAIA,EAAG8hB,QAAS9hB,EAAG+/D,gBAErE,IAAKjgC,EACH,OAGF,IAAIt9B,EAAOxC,EAAGggE,MAAQhD,GAAeh9D,EAAIzV,GACrCu3E,EAAkB1/E,OAAO6c,OAAO,GAAI6gC,EAAU9/B,EAAGggE,OACjDd,EAAYH,GAAmB98D,EAAO1X,EAASu3E,GAC/Cj6D,EAAQo3D,GAAmB10E,EAASu3E,EAAiB5C,EAAWj9D,GAEhE6hE,EAAM3/C,MAAQtc,EAAM7a,GAAK+2E,EAAM5/C,MAAQtc,EAAM5a,IAC/C+S,EAAG0+D,OAASQ,EAAUR,OACtB1+D,EAAGu+D,OAASW,EAAUX,OACtBv+D,EAAGgF,MAAQxC,EAAKwC,MAChBhF,EAAGsG,OAAS9D,EAAK8D,OACjBtG,EAAGogE,OAAStgC,EAAS9yC,EACrBgT,EAAGqgE,OAASvgC,EAAS7yC,EAErB+S,EAAGqwB,qBAAqB3J,OAAO1mB,EAAI6H,OAIxC,CACD5kB,IAAK,OACLN,MAAO,SAAckgB,GACnB,IAAI7C,EAAKT,KACLhV,EAAUyV,EAAGzV,QAAQmlB,WAAW1P,EAAGmG,cACnC25D,EAAU9/D,EAAG8/D,QAEjB,GAAKA,EAAL,CAIA9/D,EAAGgkE,uBAAuBz5E,GAE1B,IAAIo5E,EAAc,CAChB3+D,MAAOhF,EAAGgF,MACVsB,OAAQtG,EAAGsG,QAET2N,EAAK,CACPjnB,EAAGgT,EAAGhT,EACNC,EAAG+S,EAAG/S,GAER6yE,EAAUp0E,KAAKyB,IAAI2yE,GAAW,KAAO,EAAIA,EACzC,IAAIv8B,EAAUx3B,GAAUxhB,EAAQg5C,SAC5B0gC,EAAoBjkE,EAAGk3B,MAAM/xC,QAAU6a,EAAG49D,WAAWz4E,QAAU6a,EAAGi9D,KAAK93E,QAAU6a,EAAG69D,UAAU14E,QAAU6a,EAAGk9D,OAAO/3E,OAElHoF,EAAQogD,SAAWs5B,IACrBphE,EAAIyC,OACJzC,EAAIqhE,YAAcpE,EAClB9/D,EAAGu3C,eAAetjC,EAAIpR,EAAK8gE,EAAap5E,GACxC6wB,GAAsBvY,EAAKtY,EAAQwvE,eACnC9lD,EAAGhnB,GAAKs2C,EAAQr7B,IAChBlI,EAAGy3C,UAAUxjC,EAAIpR,EAAKtY,GACtByV,EAAGmkE,SAASlwD,EAAIpR,EAAKtY,GACrByV,EAAGokE,WAAWnwD,EAAIpR,EAAKtY,GACvBmxB,GAAqB7Y,EAAKtY,EAAQwvE,eAClCl3D,EAAI6C,cAGP,CACDziB,IAAK,oBACLN,MAAO,WACL,OAAO4c,KAAKuiB,SAAW,KAExB,CACD7+B,IAAK,oBACLN,MAAO,SAA2BkiE,EAAgB4X,GAChD,IAAIz8D,EAAKT,KACLulD,EAAa9kD,EAAG8hB,QAChBkD,EAAS6/B,EAAe56D,KAAI,SAAUo6E,GACxC,IAAIx6E,EAAew6E,EAAOx6E,aACtBC,EAAQu6E,EAAOv6E,MAEf09B,EAAOxnB,EAAGwlB,OAAOoG,eAAe/hC,GAEpC,IAAK29B,EACH,MAAM,IAAIzX,MAAM,kCAAoClmB,GAGtD,MAAO,CACLA,aAAcA,EACdqsB,QAASsR,EAAK9iB,KAAK5a,GACnBA,MAAOA,MAGPmyC,GAAW1yC,EAAeu7D,EAAY9/B,GAEtCs/C,EAAkBtkE,EAAGukE,iBAAiBv/C,EAAQy3C,IAE9CxgC,GAAWqoC,KACbtkE,EAAG8hB,QAAUkD,EACbhlB,EAAG+/D,eAAiBtD,EACpBz8D,EAAG0mB,QAAO,MAGb,CACDzjC,IAAK,cACLN,MAAO,SAAqBkD,EAAGq/D,GAC7B,IAGIjpB,EAHAj8B,EAAKT,KACLhV,EAAUyV,EAAGzV,QACbu6D,EAAa9kD,EAAG8hB,SAAW,GAE3BkD,EAAS,GAEE,aAAXn/B,EAAEyC,OACJ08B,EAAShlB,EAAGwlB,OAAOogC,0BAA0B//D,EAAG0E,EAAQ1H,KAAM0H,EAAS26D,GAEnE36D,EAAQlB,SACV27B,EAAO37B,WAIX,IAAIi7E,EAAkBtkE,EAAGukE,iBAAiBv/C,EAAQn/B,GAgBlD,OAdAo2C,EAAUipB,IAAW37D,EAAey7B,EAAQ8/B,IAAewf,KAGzDtkE,EAAG8hB,QAAUkD,GAETz6B,EAAQogD,SAAWpgD,EAAQy3E,YAC7BhiE,EAAG+/D,eAAiB,CAClB/yE,EAAGnH,EAAEmH,EACLC,EAAGpH,EAAEoH,GAEP+S,EAAG0mB,QAAO,EAAMw+B,KAIbjpB,IAER,CACDh5C,IAAK,mBACLN,MAAO,SAA0BqiC,EAAQn/B,GACvC,IAAIu6E,EAAS7gE,KAAK6gE,OACdC,EAAS9gE,KAAK8gE,OACd91E,EAAUgV,KAAKhV,QACfu1C,EAAWs8B,GAAY7xE,EAAQu1C,UAAUj+C,KAAK0d,KAAMylB,EAAQn/B,GAChE,OAAoB,IAAbi6C,IAAuBsgC,IAAWtgC,EAAS9yC,GAAKqzE,IAAWvgC,EAAS7yC,OAIxE0yE,EA1qBkB,CA2qBzB,IAEF,GAAQvD,YAAcA,GACtB,IAAIoI,GAAiB,CACnBr8E,GAAI,UACJ+yE,SAAU,GACVkB,YAAaA,GACbqI,UAAW,SAAmBxiE,EAAOu0D,EAAOjsE,GACtCA,IACF0X,EAAMg1B,QAAU,IAAI,GAAQ,CAC1BzR,OAAQvjB,EACR1X,QAASA,MAIfglD,aAAc,SAAsBttC,EAAOu0D,EAAOjsE,GAC5C0X,EAAMg1B,SACRh1B,EAAMg1B,QAAQ1M,WAAWhgC,IAG7B2oC,MAAO,SAAejxB,EAAOu0D,EAAOjsE,GAC9B0X,EAAMg1B,SACRh1B,EAAMg1B,QAAQ1M,WAAWhgC,IAG7Bm6E,UAAW,SAAmBziE,GAC5B,IAAIg1B,EAAUh1B,EAAMg1B,QAChB3vC,EAAO,CACT2vC,QAASA,IAG4C,IAAnDh1B,EAAMgvC,cAAc,oBAAqB3pD,KAIzC2vC,GACFA,EAAQpV,KAAK5f,EAAMY,KAGrBZ,EAAMgvC,cAAc,mBAAoB3pD,KAE1C8zE,WAAY,SAAoBn5D,EAAO3a,GACrC,GAAI2a,EAAMg1B,QAAS,CACjB,IAAImJ,EAAmB94C,EAAK49D,OAExBjjD,EAAMg1B,QAAQokC,YAAY/zE,EAAKg7B,MAAO8d,KACxC94C,EAAK20C,SAAU,KAIrBz6B,SAAU,CACRmpC,SAAS,EACTq3B,SAAU,KACVliC,SAAU,UACVl+B,gBAAiB,kBACjB4gE,WAAY,OACZjI,UAAW,CACTx6D,OAAQ,QAEV+9D,aAAc,EACdC,kBAAmB,EACnBtwB,WAAY,OACZ81B,UAAW,OACXtF,YAAa,EACbd,SAAU,GACV+F,UAAW,OACXQ,YAAa,OACbvF,cAAe,EACfD,gBAAiB,EACjBd,WAAY,CACVr9D,OAAQ,QAEV0jE,YAAa,OACblgC,QAAS,EACTs7B,aAAc,EACdD,UAAW,EACXl4D,aAAc,EACduwD,UAAW,SAAmBp0D,EAAKuG,GACjC,OAAOA,EAAK+zD,SAAS36D,MAEvB20D,SAAU,SAAkBt0D,EAAKuG,GAC/B,OAAOA,EAAK+zD,SAAS36D,MAEvBqgE,mBAAoB,OACpB7E,eAAe,EACfn8D,YAAa,gBACb6F,YAAa,EACb/F,UAAW,CACTwf,SAAU,IACVyC,OAAQ,gBAEVuB,WAAY,CACVJ,QAAS,CACPz8B,KAAM,SACNw8B,WAAY,CAAC,IAAK,IAAK,QAAS,SAAU,SAAU,WAEtDg7C,QAAS,CACPl8C,OAAQ,SACRzC,SAAU,MAGdF,UAAW,CACTy/C,YAAax4E,EACbgvC,MAAO,SAAeupC,GACpB,GAAIA,EAAat7E,OAAS,EAAG,CAC3B,IAAIy8B,EAAO6+C,EAAa,GACpBvzC,EAAStL,EAAK3f,MAAMyC,KAAKwoB,OACzBy3C,EAAaz3C,EAASA,EAAO/nC,OAAS,EAE1C,GAAIoa,MAAQA,KAAKhV,SAAiC,YAAtBgV,KAAKhV,QAAQ1H,KACvC,OAAO++B,EAAK+I,QAAQiE,OAAS,GACxB,GAAIhN,EAAKgN,MACd,OAAOhN,EAAKgN,MACP,GAAI+1C,EAAa,GAAK/iD,EAAKyN,UAAYs1C,EAC5C,OAAOz3C,EAAOtL,EAAKyN,WAIvB,MAAO,IAETsxC,WAAYz4E,EACZ01E,WAAY11E,EACZ44E,YAAa54E,EACb0mC,MAAO,SAAekM,GACpB,GAAIv7B,MAAQA,KAAKhV,SAAiC,YAAtBgV,KAAKhV,QAAQ1H,KACvC,OAAOi4C,EAAYlM,MAAQ,KAAOkM,EAAYE,gBAAkBF,EAAYE,eAG9E,IAAIpM,EAAQkM,EAAYnQ,QAAQiE,OAAS,GAErCA,IACFA,GAAS,MAGX,IAAIjsC,EAAQm4C,EAAYE,eAMxB,OAJK3yC,EAAc1F,KACjBisC,GAASjsC,GAGJisC,GAETyyC,WAAY,SAAoBvmC,GAC9B,IACIvwC,EADOuwC,EAAY74B,MAAM2pB,eAAekP,EAAYjxC,cACrCu+B,WAAW9O,SAASwhB,EAAYzL,WACnD,MAAO,CACLxtB,YAAatX,EAAQsX,YACrBD,gBAAiBrX,EAAQqX,gBACzB8F,YAAand,EAAQmd,YACrBmW,WAAYtzB,EAAQszB,WACpBC,iBAAkBvzB,EAAQuzB,iBAC1BooC,aAAc,IAGlBqb,eAAgB,WACd,OAAOhiE,KAAKhV,QAAQg5E,WAEtBjC,gBAAiB,SAAyBxmC,GACxC,IACIvwC,EADOuwC,EAAY74B,MAAM2pB,eAAekP,EAAYjxC,cACrCu+B,WAAW9O,SAASwhB,EAAYzL,WACnD,MAAO,CACL1oB,WAAYpc,EAAQoc,WACpBC,SAAUrc,EAAQqc,WAGtBm6D,WAAY74E,EACZ21E,UAAW31E,EACX84E,aAAc94E,EACdg1E,OAAQh1E,EACR+4E,YAAa/4E,IAGjBghD,cAAe,CACbi0B,SAAU,OACVC,WAAY,OACZ7C,UAAW,QAEb1qD,YAAa,CACXxL,YAAa,SAAqBpiB,GAChC,MAAgB,WAATA,GAA8B,aAATA,GAAgC,aAATA,GAErDsiB,YAAY,EACZ0c,UAAW,CACT5c,aAAa,EACbE,YAAY,GAEd5C,UAAW,CACT6C,WAAW,GAEb2gB,WAAY,CACV3gB,UAAW,cAGfg5C,uBAAwB,CAAC,gBAgB3B,SAASonB,GAAe13C,EAAQoC,EAAKxlC,GACnC,IAAIghD,EAAQ5d,EAAO7iC,QAAQilC,GAE3B,OAAe,IAAXwb,EAPY,SAAqB5d,EAAQoC,EAAKxlC,GAClD,MAAsB,kBAARwlC,EAAmBpC,EAAOjoB,KAAKqqB,GAAO,EAAIviC,MAAMuiC,GAAO,KAAOxlC,EAOnE+6E,CAAY33C,EAAQoC,EAAKxlC,GAI3BghD,IADI5d,EAAO43C,YAAYx1C,GACNxlC,EAAQghD,EAGlC,IAII,GAA6B,SAAUi6B,GACzCpmD,GAAUqmD,EAAeD,GAEzB,IAAIE,EAAWhmD,GAAa+lD,GAE5B,SAASA,EAAcxhD,GACrB,IAAI0hD,EAOJ,OALA,GAAgB3lE,KAAMylE,IAEtBE,EAAUD,EAASpjF,KAAK0d,KAAMikB,IACtB2hD,iBAAc3yE,EACtB0yE,EAAQE,YAAc,EACfF,EAwHT,OArHA,GAAaF,EAAe,CAAC,CAC3B/hF,IAAK,QACLN,MAAO,SAAe2sC,EAAKxlC,GACzB,GAAIzB,EAAcinC,GAChB,OAAO,KAGT,IAAIpC,EAAS3tB,KAAK4tB,YAElB,OA7BW,SAAoBrjC,EAAOyD,GAC1C,OAAiB,OAAVzD,EAAiB,KAAO8E,GAAYlD,KAAKc,MAAM1C,GAAQ,EAAGyD,GA4BtD,CADPzD,EAAQnB,SAASmB,IAAUojC,EAAOpjC,KAAWwlC,EAAMxlC,EAAQ86E,GAAe13C,EAAQoC,EAAKxmC,EAAegB,EAAOwlC,IACpFpC,EAAO/nC,OAAS,KAE1C,CACDlC,IAAK,sBACLN,MAAO,WACL,IAAIqd,EAAKT,KAEL8lE,EAAqBrlE,EAAGouB,gBACxBC,EAAag3C,EAAmBh3C,WAChCC,EAAa+2C,EAAmB/2C,WAEhCg3C,EAAgBtlE,EAAGovC,WAAU,GAC7B9hD,EAAMg4E,EAAch4E,IACpBC,EAAM+3E,EAAc/3E,IAEE,UAAtByS,EAAGzV,QAAQ6xB,SACRiS,IACH/gC,EAAM,GAGHghC,IACH/gC,EAAMyS,EAAGmtB,YAAYhoC,OAAS,IAIlC6a,EAAG1S,IAAMA,EACT0S,EAAGzS,IAAMA,IAEV,CACDtK,IAAK,aACLN,MAAO,WACL,IAAIqd,EAAKT,KACLjS,EAAM0S,EAAG1S,IACTC,EAAMyS,EAAGzS,IACT6oC,EAASp2B,EAAGzV,QAAQ6rC,OACpBxE,EAAQ,GACR1E,EAASltB,EAAGmtB,YAChBD,EAAiB,IAAR5/B,GAAaC,IAAQ2/B,EAAO/nC,OAAS,EAAI+nC,EAASA,EAAOzmC,MAAM6G,EAAKC,EAAM,GACnFyS,EAAGolE,YAAc15E,KAAK6B,IAAI2/B,EAAO/nC,QAAUixC,EAAS,EAAI,GAAI,GAC5Dp2B,EAAGmlE,YAAcnlE,EAAG1S,KAAO8oC,EAAS,GAAM,GAE1C,IAAK,IAAIzzC,EAAQ2K,EAAK3K,GAAS4K,EAAK5K,IAClCivC,EAAM3sB,KAAK,CACTtiB,MAAOA,IAIX,OAAOivC,IAER,CACD3uC,IAAK,mBACLN,MAAO,SAA0BA,GAC/B,IACIuqC,EADK3tB,KACO4tB,YAEhB,OAAIxqC,GAAS,GAAKA,EAAQuqC,EAAO/nC,OACxB+nC,EAAOvqC,GAGTA,IAER,CACDM,IAAK,YACLN,MAAO,WACL,IAAIqd,EAAKT,KAET+e,GAAKE,GAAgBwmD,EAAc1hF,WAAY,YAAaic,MAAM1d,KAAK0d,MAElES,EAAGqzB,iBACNrzB,EAAG2/B,gBAAkB3/B,EAAG2/B,kBAG3B,CACD18C,IAAK,mBACLN,MAAO,SAA0BA,GAC/B,IAAIqd,EAAKT,KAMT,MAJqB,kBAAV5c,IACTA,EAAQqd,EAAGstB,MAAM3qC,IAGF,OAAVA,EAAiBkrC,IAAM7tB,EAAGg3B,oBAAoBr0C,EAAQqd,EAAGmlE,aAAenlE,EAAGolE,eAEnF,CACDniF,IAAK,kBACLN,MAAO,SAAyBmH,GAC9B,IACI8nC,EADKryB,KACMqyB,MAEf,OAAI9nC,EAAQ,GAAKA,EAAQ8nC,EAAMzsC,OAAS,EAC/B,KAJAoa,KAOCoyB,iBAAiBC,EAAM9nC,GAAOnH,SAEzC,CACDM,IAAK,mBACLN,MAAO,SAA0BmjB,GAC/B,IAAI9F,EAAKT,KACT,OAAO7T,KAAKc,MAAMwT,EAAGmlE,YAAcnlE,EAAGulE,mBAAmBz/D,GAAS9F,EAAGolE,eAEtE,CACDniF,IAAK,eACLN,MAAO,WACL,OAAO4c,KAAK4I,WAIT68D,EArIwB,CAsI/B,IASF,SAASQ,GAAgBC,EAAmBC,GAC1C,IAoBIxiD,EAAQyiD,EAASC,EAASC,EDljYX74E,EAAGE,EAClB44E,EC6hYAl0C,EAAQ,GAERxV,EAASqpD,EAAkBrpD,OAC3Bj2B,EAAOs/E,EAAkBt/E,KACzBmH,EAAMm4E,EAAkBn4E,IACxBC,EAAMk4E,EAAkBl4E,IACxBw4E,EAAYN,EAAkBM,UAC9B9pD,EAAQwpD,EAAkBxpD,MAC1B+pD,EAAWP,EAAkBO,SAC7BC,EAAYR,EAAkBQ,UAC9BC,EAAgBT,EAAkBS,cAClC/mC,EAAOh5C,GAAQ,EACfggF,EAAYH,EAAW,EACvBI,EAAOV,EAAUp4E,IACjB+4E,EAAOX,EAAUn4E,IACjB8gC,GAAchmC,EAAciF,GAC5BghC,GAAcjmC,EAAckF,GAC5B+4E,GAAgBj+E,EAAc4zB,GAC9BsqD,GAAcF,EAAOD,IAASH,EAAY,GAC1CnuC,EAAUzrC,GAASg6E,EAAOD,GAAQD,EAAYhnC,GAAQA,EAG1D,GAAIrH,EArBc,QAqBYzJ,IAAeC,EAC3C,MAAO,CAAC,CACN3rC,MAAOyjF,GACN,CACDzjF,MAAO0jF,KAIXR,EAAYn6E,KAAKs/C,KAAKq7B,EAAOvuC,GAAWpsC,KAAKkB,MAAMw5E,EAAOtuC,IAE1CquC,IACdruC,EAAUzrC,EAAQw5E,EAAY/tC,EAAUquC,EAAYhnC,GAAQA,GAGzD92C,EAAc09E,KACjB7iD,EAASx3B,KAAKiB,IAAI,GAAIo5E,GACtBjuC,EAAUpsC,KAAKs/C,KAAKlT,EAAU5U,GAAUA,GAG3B,UAAX9G,GACFupD,EAAUj6E,KAAKkB,MAAMw5E,EAAOtuC,GAAWA,EACvC8tC,EAAUl6E,KAAKs/C,KAAKq7B,EAAOvuC,GAAWA,IAEtC6tC,EAAUS,EACVR,EAAUS,GAGRh4C,GAAcC,GAAcnoC,ID/kYb6G,GC+kYkCO,EAAMD,GAAOnH,ED/kY5C+G,EC+kYkD4qC,EAAU,KD9kY9EguC,EAAUp6E,KAAKc,MAAMQ,IACRE,GAAWF,GAAK84E,EAAU54E,GAAWF,IC+kYpD8qC,GAAWvqC,EAAMD,IADjBu4E,EAAYn6E,KAAKc,MAAMd,KAAK4B,KAAKC,EAAMD,GAAOwqC,EAASkuC,KAEvDL,EAAUr4E,EACVs4E,EAAUr4E,GACD+4E,EAITxuC,IAFA8tC,EAAUt3C,EAAa/gC,EAAMq4E,IAD7BD,EAAUt3C,EAAa/gC,EAAMq4E,KAE7BE,EAAY5pD,EAAQ,GAMlB4pD,EADEp5E,EAFJo5E,GAAaD,EAAUD,GAAW7tC,EAENpsC,KAAKc,MAAMq5E,GAAY/tC,EAAU,KAC/CpsC,KAAKc,MAAMq5E,GAEXn6E,KAAKs/C,KAAK66B,GAI1B,IAAIW,EAAgB96E,KAAK6B,IAAIK,GAAekqC,GAAUlqC,GAAe+3E,IACrEziD,EAASx3B,KAAKiB,IAAI,GAAItE,EAAc09E,GAAaS,EAAgBT,GACjEJ,EAAUj6E,KAAKc,MAAMm5E,EAAUziD,GAAUA,EACzC0iD,EAAUl6E,KAAKc,MAAMo5E,EAAU1iD,GAAUA,EACzC,IAAIhlB,EAAI,EAoBR,IAlBImwB,IACE63C,GAAiBP,IAAYr4E,GAC/BskC,EAAM3sB,KAAK,CACTtiB,MAAO2K,IAGLq4E,EAAUr4E,GACZ4Q,IAGEzR,EAAaf,KAAKc,OAAOm5E,EAAUznE,EAAI45B,GAAW5U,GAAUA,EAAQ51B,EAAKm5E,GAAkBn5E,EAAKi5E,EAAYd,KAC9GvnE,KAEOynE,EAAUr4E,GACnB4Q,KAIGA,EAAI2nE,IAAa3nE,EACtB0zB,EAAM3sB,KAAK,CACTtiB,MAAO+I,KAAKc,OAAOm5E,EAAUznE,EAAI45B,GAAW5U,GAAUA,IAkB1D,OAdIoL,GAAc43C,GAAiBN,IAAYr4E,EACzCd,EAAamlC,EAAMA,EAAMzsC,OAAS,GAAGxC,MAAO4K,EAAKk5E,GAAkBl5E,EAAKg5E,EAAYd,IACtF7zC,EAAMA,EAAMzsC,OAAS,GAAGxC,MAAQ4K,EAEhCqkC,EAAM3sB,KAAK,CACTtiB,MAAO4K,IAGD+gC,GAAcs3C,IAAYr4E,GACpCqkC,EAAM3sB,KAAK,CACTtiB,MAAOijF,IAIJh0C,EAGT,SAAS60C,GAAkB9jF,EAAO4jF,EAAYG,GAC5C,IAAItzC,EAAaszC,EAAOtzC,WAEpBtsB,EAAMtZ,GADQk5E,EAAOz6B,aAErBptC,GAASu0B,EAAa1nC,KAAKqD,IAAI+X,GAAOpb,KAAKsE,IAAI8W,KAAS,KACxD3hB,EAAS,IAAOohF,GAAc,GAAK5jF,GAAOwC,OAC9C,OAAOuG,KAAK4B,IAAIi5E,EAAa1nE,EAAO1Z,GAlItC,GAAcgD,GAAK,WACnB,GAAcqZ,SAAW,CACvBowB,MAAO,CACL7qC,SAAU,GAAczD,UAAUurC,mBAkItC,IAAI,GAA+B,SAAU83C,GAC3ChoD,GAAUioD,EAAiBD,GAE3B,IAAIE,EAAW5nD,GAAa2nD,GAE5B,SAASA,EAAgBpjD,GACvB,IAAIsjD,EAUJ,OARA,GAAgBvnE,KAAMqnE,IAEtBE,EAAUD,EAAShlF,KAAK0d,KAAMikB,IACtBx7B,WAAQwK,EAChBs0E,EAAQ7+E,SAAMuK,EACds0E,EAAQ3B,iBAAc3yE,EACtBs0E,EAAQC,eAAYv0E,EACpBs0E,EAAQ1B,YAAc,EACf0B,EAwJT,OArJA,GAAaF,EAAiB,CAAC,CAC7B3jF,IAAK,QACLN,MAAO,SAAe2sC,EAAKxlC,GACzB,OAAIzB,EAAcinC,KAIE,kBAARA,GAAoBA,aAAe5mC,UAAYC,UAAU2mC,GAH5D,MAODA,IAET,CACDrsC,IAAK,yBACLN,MAAO,WACL,IAAIqd,EAAKT,KACLg3B,EAAcv2B,EAAGzV,QAAQgsC,YAEzBywC,EAAqBhnE,EAAGouB,gBACxBC,EAAa24C,EAAmB34C,WAChCC,EAAa04C,EAAmB14C,WAEhChhC,EAAM0S,EAAG1S,IACTC,EAAMyS,EAAGzS,IAET05E,EAAS,SAAgBr1E,GAC3B,OAAOtE,EAAM+gC,EAAa/gC,EAAMsE,GAG9Bs1E,EAAS,SAAgBt1E,GAC3B,OAAOrE,EAAM+gC,EAAa/gC,EAAMqE,GAGlC,GAAI2kC,EAAa,CACf,IAAI4wC,EAAU/6E,EAAKkB,GACf85E,EAAUh7E,EAAKmB,GAEf45E,EAAU,GAAKC,EAAU,EAC3BF,EAAO,GACEC,EAAU,GAAKC,EAAU,GAClCH,EAAO,GAIP35E,IAAQC,IACV25E,EAAO35E,EAAM,GAERgpC,GACH0wC,EAAO35E,EAAM,IAIjB0S,EAAG1S,IAAMA,EACT0S,EAAGzS,IAAMA,IAEV,CACDtK,IAAK,eACLN,MAAO,WACL,IAIIqjF,EAJAhmE,EAAKT,KACLyqC,EAAWhqC,EAAGzV,QAAQqnC,MACtBsY,EAAgBF,EAASE,cACzBm9B,EAAWr9B,EAASq9B,SAcxB,OAXIA,EACFrB,EAAWt6E,KAAKs/C,KAAKhrC,EAAGzS,IAAM85E,GAAY37E,KAAKkB,MAAMoT,EAAG1S,IAAM+5E,GAAY,GAE1ErB,EAAWhmE,EAAGsnE,mBACdp9B,EAAgBA,GAAiB,IAG/BA,IACF87B,EAAWt6E,KAAK4B,IAAI48C,EAAe87B,IAG9BA,IAER,CACD/iF,IAAK,mBACLN,MAAO,WACL,OAAO+F,OAAOoD,oBAEf,CACD7I,IAAK,aACLN,MAAO,WACL,IAAIqd,EAAKT,KACL6J,EAAOpJ,EAAGzV,QACVy/C,EAAW5gC,EAAKwoB,MAChBo0C,EAAWhmE,EAAGunE,eAgBd31C,EAAQ4zC,GAdkB,CAC5BQ,SAFFA,EAAWt6E,KAAK6B,IAAI,EAAGy4E,GAGrB5pD,OAAQhT,EAAKgT,OACb9uB,IAAK8b,EAAK9b,IACVC,IAAK6b,EAAK7b,IACVw4E,UAAW/7B,EAAS+7B,UACpB5/E,KAAM6jD,EAASq9B,SACfprD,MAAO+tB,EAAS/tB,MAChBgqD,UAAWjmE,EAAGwnE,aACdp0C,WAAYpzB,EAAGqzB,eACf4Y,YAAajC,EAASiC,aAAe,EACrCi6B,eAA0C,IAA3Bl8B,EAASk8B,eAEVlmE,EAAGquC,QAAUruC,GAgB7B,MAboB,UAAhBoJ,EAAKgT,QACPhvB,EAAmBwkC,EAAO5xB,EAAI,SAG5BoJ,EAAK/f,SACPuoC,EAAMvoC,UACN2W,EAAGhY,MAAQgY,EAAGzS,IACdyS,EAAG/X,IAAM+X,EAAG1S,MAEZ0S,EAAGhY,MAAQgY,EAAG1S,IACd0S,EAAG/X,IAAM+X,EAAGzS,KAGPqkC,IAER,CACD3uC,IAAK,YACLN,MAAO,WACL,IAAIqd,EAAKT,KACLqyB,EAAQ5xB,EAAG4xB,MACX5pC,EAAQgY,EAAG1S,IACXrF,EAAM+X,EAAGzS,IAIb,GAFA+wB,GAAKE,GAAgBooD,EAAgBtjF,WAAY,YAAaic,MAAM1d,KAAK0d,MAErES,EAAGzV,QAAQ6rC,QAAUxE,EAAMzsC,OAAQ,CACrC,IAAIixC,GAAUnuC,EAAMD,GAAS0D,KAAK6B,IAAIqkC,EAAMzsC,OAAS,EAAG,GAAK,EAC7D6C,GAASouC,EACTnuC,GAAOmuC,EAGTp2B,EAAGmlE,YAAcn9E,EACjBgY,EAAG+mE,UAAY9+E,EACf+X,EAAGolE,YAAcn9E,EAAMD,IAExB,CACD/E,IAAK,mBACLN,MAAO,SAA0BA,GAC/B,OAAOm3B,GAAan3B,EAAO4c,KAAK0C,MAAM1X,QAAQyvB,YAI3C4sD,EAxK0B,CAyKjC,IAEE,GAA2B,SAAUa,GACvC9oD,GAAU+oD,EAAaD,GAEvB,IAAIE,EAAW1oD,GAAayoD,GAE5B,SAASA,IAGP,OAFA,GAAgBnoE,KAAMmoE,GAEfC,EAAS//E,MAAM2X,KAAM9X,WAyC9B,OAtCA,GAAaigF,EAAa,CAAC,CACzBzkF,IAAK,sBACLN,MAAO,WACL,IAAIqd,EAAKT,KAELqoE,EAAiB5nE,EAAGovC,WAAU,GAC9B9hD,EAAMs6E,EAAet6E,IACrBC,EAAMq6E,EAAer6E,IAEzByS,EAAG1S,IAAM7E,EAAe6E,GAAOA,EAAM,EACrC0S,EAAGzS,IAAM9E,EAAe8E,GAAOA,EAAM,EACrCyS,EAAG6nE,2BAEJ,CACD5kF,IAAK,mBACLN,MAAO,WACL,IAAIqd,EAAKT,KACL6zB,EAAapzB,EAAGqzB,eAChBluC,EAASiuC,EAAapzB,EAAGgF,MAAQhF,EAAGsG,OACpC2lC,EAAcz+C,GAAUwS,EAAGzV,QAAQqnC,MAAMqa,aACzCptC,GAASu0B,EAAa1nC,KAAKqD,IAAIk9C,GAAevgD,KAAKsE,IAAIi8C,KAAiB,KAExEkH,EAAWnzC,EAAG2zC,wBAAwB,GAE1C,OAAOjoD,KAAKs/C,KAAK7lD,EAASuG,KAAK4B,IAAI,GAAI6lD,EAASzwC,WAAa7D,MAE9D,CACD5b,IAAK,mBACLN,MAAO,SAA0BA,GAC/B,OAAiB,OAAVA,EAAiBkrC,IAAMtuB,KAAKy3B,oBAAoBr0C,EAAQ4c,KAAK4lE,aAAe5lE,KAAK6lE,eAEzF,CACDniF,IAAK,mBACLN,MAAO,SAA0BmjB,GAC/B,OAAOvG,KAAK4lE,YAAc5lE,KAAKgmE,mBAAmBz/D,GAASvG,KAAK6lE,gBAI7DsC,EAjDsB,CAkD7B,IASF,SAASI,GAAQC,GAEf,OAAkB,IADLA,EAAUr8E,KAAKiB,IAAI,GAAIjB,KAAKkB,MAAMT,EAAM47E,KARvD,GAAY5/E,GAAK,SACjB,GAAYqZ,SAAW,CACrBowB,MAAO,CACL7qC,SAAU+iD,GAAMX,WAAWC,UA0C/B,IAAI,GAAgC,SAAU4+B,GAC5CrpD,GAAUspD,EAAkBD,GAE5B,IAAIE,EAAWjpD,GAAagpD,GAE5B,SAASA,EAAiBzkD,GACxB,IAAI2kD,EASJ,OAPA,GAAgB5oE,KAAM0oE,IAEtBE,EAAUD,EAASrmF,KAAK0d,KAAMikB,IACtBx7B,WAAQwK,EAChB21E,EAAQlgF,SAAMuK,EACd21E,EAAQhD,iBAAc3yE,EACtB21E,EAAQ/C,YAAc,EACf+C,EAoJT,OAjJA,GAAaF,EAAkB,CAAC,CAC9BhlF,IAAK,QACLN,MAAO,SAAe2sC,EAAKxlC,GACzB,IAAInH,EAAQ,GAAgBW,UAAUgqC,MAAM1lC,MAAM2X,KAAM,CAAC+vB,EAAKxlC,IAE9D,GAAc,IAAVnH,EAKJ,OAAO8F,EAAe9F,IAAUA,EAAQ,EAAIA,EAAQ,KAJlD4c,KAAK6oE,OAAQ,IAMhB,CACDnlF,IAAK,sBACLN,MAAO,WACL,IAAIqd,EAAKT,KAEL8oE,EAAiBroE,EAAGovC,WAAU,GAC9B9hD,EAAM+6E,EAAe/6E,IACrBC,EAAM86E,EAAe96E,IAEzByS,EAAG1S,IAAM7E,EAAe6E,GAAO5B,KAAK6B,IAAI,EAAGD,GAAO,KAClD0S,EAAGzS,IAAM9E,EAAe8E,GAAO7B,KAAK6B,IAAI,EAAGA,GAAO,KAE9CyS,EAAGzV,QAAQgsC,cACbv2B,EAAGooE,OAAQ,GAGbpoE,EAAG6nE,2BAEJ,CACD5kF,IAAK,yBACLN,MAAO,WACL,IAAIqd,EAAKT,KAEL+oE,EAAqBtoE,EAAGouB,gBACxBC,EAAai6C,EAAmBj6C,WAChCC,EAAag6C,EAAmBh6C,WAEhChhC,EAAM0S,EAAG1S,IACTC,EAAMyS,EAAGzS,IAET05E,EAAS,SAAgBr1E,GAC3B,OAAOtE,EAAM+gC,EAAa/gC,EAAMsE,GAG9Bs1E,EAAS,SAAgBt1E,GAC3B,OAAOrE,EAAM+gC,EAAa/gC,EAAMqE,GAG9B22E,EAAM,SAAa32E,EAAG9P,GACxB,OAAO4J,KAAKiB,IAAI,GAAIjB,KAAKkB,MAAMT,EAAMyF,IAAM9P,IAGzCwL,IAAQC,IACND,GAAO,GACT25E,EAAO,GACPC,EAAO,MAEPD,EAAOsB,EAAIj7E,GAAM,IACjB45E,EAAOqB,EAAIh7E,EAAK,MAIhBD,GAAO,GACT25E,EAAOsB,EAAIh7E,GAAM,IAGfA,GAAO,GACT25E,EAAOqB,EAAIj7E,EAAK,IAGd0S,EAAGooE,OAASpoE,EAAG1S,MAAQ0S,EAAG6uC,eAAiBvhD,IAAQi7E,EAAIvoE,EAAG1S,IAAK,IACjE25E,EAAOsB,EAAIj7E,GAAM,IAGnB0S,EAAG1S,IAAMA,EACT0S,EAAGzS,IAAMA,IAEV,CACDtK,IAAK,aACLN,MAAO,WACL,IAAIqd,EAAKT,KACL6J,EAAOpJ,EAAGzV,QAKVqnC,EA3IV,SAAuB6zC,EAAmBC,GACxC,IAAI8C,EAAS98E,KAAKkB,MAAMT,EAAMu5E,EAAUn4E,MACpCk7E,EAAiB/8E,KAAKs/C,KAAK06B,EAAUn4E,IAAM7B,KAAKiB,IAAI,GAAI67E,IACxD52C,EAAQ,GACRm2C,EAAUn/E,EAAgB68E,EAAkBn4E,IAAK5B,KAAKiB,IAAI,GAAIjB,KAAKkB,MAAMT,EAAMu5E,EAAUp4E,QACzFi7E,EAAM78E,KAAKkB,MAAMT,EAAM47E,IACvBW,EAAch9E,KAAKkB,MAAMm7E,EAAUr8E,KAAKiB,IAAI,GAAI47E,IAChDxC,EAAYwC,EAAM,EAAI78E,KAAKiB,IAAI,GAAIjB,KAAKyB,IAAIo7E,IAAQ,EAExD,GACE32C,EAAM3sB,KAAK,CACTtiB,MAAOolF,EACPr9B,MAAOo9B,GAAQC,KAIG,OAFlBW,IAGAA,EAAc,EAEd3C,IADEwC,GACiB,EAAI,EAAIxC,GAG7BgC,EAAUr8E,KAAKc,MAAMk8E,EAAch9E,KAAKiB,IAAI,GAAI47E,GAAOxC,GAAaA,QAC7DwC,EAAMC,GAAUD,IAAQC,GAAUE,EAAcD,GAEzD,IAAIE,EAAW//E,EAAgB68E,EAAkBl4E,IAAKw6E,GAKtD,OAJAn2C,EAAM3sB,KAAK,CACTtiB,MAAOgmF,EACPj+B,MAAOo9B,GAAQC,KAEVn2C,EA6GSg3C,CAJY,CACtBt7E,IAAK0S,EAAG2uC,SACRphD,IAAKyS,EAAG0uC,UAEmC1uC,GAe7C,MAboB,UAAhBoJ,EAAKgT,QACPhvB,EAAmBwkC,EAAO5xB,EAAI,SAG5BoJ,EAAK/f,SACPuoC,EAAMvoC,UACN2W,EAAGhY,MAAQgY,EAAGzS,IACdyS,EAAG/X,IAAM+X,EAAG1S,MAEZ0S,EAAGhY,MAAQgY,EAAG1S,IACd0S,EAAG/X,IAAM+X,EAAGzS,KAGPqkC,IAER,CACD3uC,IAAK,mBACLN,MAAO,SAA0BA,GAC/B,YAAiB6P,IAAV7P,EAAsB,IAAMm3B,GAAan3B,EAAO4c,KAAK0C,MAAM1X,QAAQyvB,UAE3E,CACD/2B,IAAK,YACLN,MAAO,WACL,IAAIqd,EAAKT,KACLvX,EAAQgY,EAAG1S,IAEfgxB,GAAKE,GAAgBypD,EAAiB3kF,WAAY,YAAaic,MAAM1d,KAAK0d,MAE1ES,EAAGmlE,YAAch5E,EAAMnE,GACvBgY,EAAGolE,YAAcj5E,EAAM6T,EAAGzS,KAAOpB,EAAMnE,KAExC,CACD/E,IAAK,mBACLN,MAAO,SAA0BA,GAC/B,IAAIqd,EAAKT,KAMT,YAJc/M,IAAV7P,GAAiC,IAAVA,IACzBA,EAAQqd,EAAG1S,KAGC,OAAV3K,GAAkBoK,MAAMpK,GACnBkrC,IAGF7tB,EAAGg3B,mBAAmBr0C,IAAUqd,EAAG1S,IAAM,GAAKnB,EAAMxJ,GAASqd,EAAGmlE,aAAenlE,EAAGolE,eAE1F,CACDniF,IAAK,mBACLN,MAAO,SAA0BmjB,GAC/B,IAAI9F,EAAKT,KACLs0C,EAAU7zC,EAAGulE,mBAAmBz/D,GACpC,OAAOpa,KAAKiB,IAAI,GAAIqT,EAAGmlE,YAActxB,EAAU7zC,EAAGolE,iBAI/C6C,EAnK2B,CAoKlC,IAYF,SAASY,GAAsBz/D,GAC7B,IAAI4gC,EAAW5gC,EAAKwoB,MAEpB,GAAIoY,EAAShM,SAAW50B,EAAK40B,QAAS,CACpC,IAAIuF,EAAUx3B,GAAUi+B,EAAS4C,iBACjC,OAAO9jD,EAAekhD,EAAS1nC,MAAQ0nC,EAAS1nC,KAAKE,KAAMhB,GAASc,KAAKE,MAAQ+gC,EAAQj9B,OAG3F,OAAO,EAWT,SAASwiE,GAAgBx6E,EAAOpD,EAAKsX,EAAMlV,EAAKC,GAC9C,OAAIe,IAAUhB,GAAOgB,IAAUf,EACtB,CACLvF,MAAOkD,EAAMsX,EAAO,EACpBva,IAAKiD,EAAMsX,EAAO,GAEXlU,EAAQhB,GAAOgB,EAAQf,EACzB,CACLvF,MAAOkD,EAAMsX,EACbva,IAAKiD,GAIF,CACLlD,MAAOkD,EACPjD,IAAKiD,EAAMsX,GAIf,SAASumE,GAAmBtlE,GAY1B,IAXA,IA5BwBZ,EAAKP,EAAMssB,EA4B/Bo6C,EAAiB,CACnBrnF,EAAG,EACHa,EAAGihB,EAAMuB,MACTpiB,EAAG,EACHuL,EAAGsV,EAAM6C,OAAS7C,EAAMuqC,YAEtBi7B,EAAiB,GACjBz3B,EAAa,GACbjO,EAAU,GACV2lC,EAAazlE,EAAM0pB,YAAYhoC,OAE1BzD,EAAI,EAAGA,EAAIwnF,EAAYxnF,IAAK,CACnC,IAAI0nB,EAAO3F,EAAMlZ,QAAQ2zC,YAAYxuB,WAAWjM,EAAM0C,WAAWzkB,IACjE6hD,EAAQ7hD,GAAK0nB,EAAKm6B,QAClB,IAAI7E,EAAgBj7B,EAAM0lE,iBAAiBznF,EAAG+hB,EAAM2lE,YAAc7lC,EAAQ7hD,IACtE2nF,EAASr9D,GAAO5C,EAAK9G,MACrBu5D,GA5CkBh5D,EA4CUY,EAAMZ,IA5CXP,EA4CgB+mE,EA3C7Cz6C,EAAQ/qC,EAD2B+qC,EA4CkBnrB,EAAM6lE,aAAa5nF,IA3C/CktC,EAAQ,CAACA,GAC3B,CACLj8B,EAAGuS,GAAarC,EAAKP,EAAKuC,OAAQ+pB,GAClC58B,EAAG48B,EAAMzpC,OAASmd,EAAKI,aAyCvB8uC,EAAW9vD,GAAKm6E,EAChB,IAAIxpB,EAAe5uC,EAAMg6B,cAAc/7C,GACnC4M,EAAQZ,GAAU2kD,GAClBk3B,EAAUT,GAAgBx6E,EAAOowC,EAAc1xC,EAAG6uE,EAASlpE,EAAG,EAAG,KACjE62E,EAAUV,GAAgBx6E,EAAOowC,EAAczxC,EAAG4uE,EAAS7pE,EAAG,GAAI,KAElEu3E,EAAQvhF,MAAQghF,EAAernF,IACjCqnF,EAAernF,EAAI4nF,EAAQvhF,MAC3BihF,EAAetnF,EAAI0wD,GAGjBk3B,EAAQthF,IAAM+gF,EAAexmF,IAC/BwmF,EAAexmF,EAAI+mF,EAAQthF,IAC3BghF,EAAezmF,EAAI6vD,GAGjBm3B,EAAQxhF,MAAQghF,EAAepmF,IACjComF,EAAepmF,EAAI4mF,EAAQxhF,MAC3BihF,EAAermF,EAAIyvD,GAGjBm3B,EAAQvhF,IAAM+gF,EAAe76E,IAC/B66E,EAAe76E,EAAIq7E,EAAQvhF,IAC3BghF,EAAe96E,EAAIkkD,GAIvB5uC,EAAMgmE,eAAehmE,EAAM2lE,YAAaJ,EAAgBC,GAExDxlE,EAAMimE,iBAGR,SAA8BjmE,EAAO+tC,EAAYjO,GAO/C,IANA,IAAI91B,EAAQ,GACRy7D,EAAazlE,EAAM0pB,YAAYhoC,OAC/BikB,EAAO3F,EAAMlZ,QACbo/E,EAAqBd,GAAsBz/D,GAC3CwgE,EAAgBnmE,EAAMo6B,8BAA8Bz0B,EAAKwoB,MAAMvoC,QAAUoa,EAAMnW,IAAMmW,EAAMlW,KAEtF7L,EAAI,EAAGA,EAAIwnF,EAAYxnF,IAAK,CACnC,IAAImoF,EAAc,IAANnoF,EAAUioF,EAAqB,EAAI,EAC3CG,EAAqBrmE,EAAM0lE,iBAAiBznF,EAAGkoF,EAAgBC,EAAQtmC,EAAQ7hD,IAC/E4M,EAAQZ,GAAU+V,EAAMg6B,cAAc/7C,IACtC8gB,EAAOgvC,EAAW9vD,GAClBuL,EAAI88E,GAAUD,EAAmB78E,EAAGuV,EAAKxQ,EAAG1D,GAC5C2b,EAAY+/D,GAAqB17E,GACjC0Z,EAAOiiE,GAAiBH,EAAmB98E,EAAGwV,EAAK7P,EAAGsX,GAC1DwD,EAAMxI,KAAK,CACTjY,EAAG88E,EAAmB98E,EACtBC,EAAGA,EACHgd,UAAWA,EACXjC,KAAMA,EACNE,IAAKjb,EACLgb,MAAOD,EAAOxF,EAAK7P,EACnBwV,OAAQlb,EAAIuV,EAAKxQ,IAIrB,OAAOyb,EA7BkBy8D,CAAqBzmE,EAAO+tC,EAAYjO,GAgCnE,SAASymC,GAAqB17E,GAC5B,OAAc,IAAVA,GAAyB,MAAVA,EACV,SACEA,EAAQ,IACV,OAGF,QAGT,SAAS27E,GAAiBj9E,EAAG2F,EAAG7K,GAO9B,MANc,UAAVA,EACFkF,GAAK2F,EACc,WAAV7K,IACTkF,GAAK2F,EAAI,GAGJ3F,EAGT,SAAS+8E,GAAU98E,EAAG+E,EAAG1D,GAOvB,OANc,KAAVA,GAA0B,MAAVA,EAClBrB,GAAK+E,EAAI,GACA1D,EAAQ,KAAOA,EAAQ,MAChCrB,GAAK+E,GAGA/E,EAkCT,SAASk9E,GAAe1mE,EAAOoD,EAAQo3B,EAAU0mC,GAC/C,IAAI9hE,EAAMY,EAAMZ,IAEhB,GAAIo7B,EACFp7B,EAAIsE,IAAI1D,EAAM65B,QAAS75B,EAAM85B,QAAS12B,EAAQ,EAAGlb,OAC5C,CACL,IAAI+yC,EAAgBj7B,EAAM0lE,iBAAiB,EAAGtiE,GAC9ChE,EAAIwE,OAAOq3B,EAAc1xC,EAAG0xC,EAAczxC,GAE1C,IAAK,IAAIvL,EAAI,EAAGA,EAAIijF,EAAYjjF,IAC9Bg9C,EAAgBj7B,EAAM0lE,iBAAiBznF,EAAGmlB,GAC1ChE,EAAIyE,OAAOo3B,EAAc1xC,EAAG0xC,EAAczxC,IA2BhD,SAAS,GAAam9E,GACpB,OAAOt9E,EAASs9E,GAASA,EAAQ,EAnOnC,GAAiBjiF,GAAK,cACtB,GAAiBqZ,SAAW,CAC1BowB,MAAO,CACL7qC,SAAU+iD,GAAMX,WAAWU,YAC3Ba,MAAO,CACLC,SAAS,KAiOf,IAAI,GAAiC,SAAU0/B,GAC7C1rD,GAAU2rD,EAAmBD,GAE7B,IAAIE,EAAWtrD,GAAaqrD,GAE5B,SAASA,EAAkB9mD,GACzB,IAAIgnD,EAUJ,OARA,GAAgBjrE,KAAM+qE,IAEtBE,EAAUD,EAAS1oF,KAAK0d,KAAMikB,IACtB8Z,aAAU9qC,EAClBg4E,EAAQjtC,aAAU/qC,EAClBg4E,EAAQpB,iBAAc52E,EACtBg4E,EAAQlB,aAAe,GACvBkB,EAAQd,iBAAmB,GACpBc,EAgRT,OA7QA,GAAaF,EAAmB,CAAC,CAC/BrnF,IAAK,gBACLN,MAAO,WACL,IAAIqd,EAAKT,KACTS,EAAGgF,MAAQhF,EAAG4J,SACd5J,EAAGsG,OAAStG,EAAG+X,UACf/X,EAAGguC,WAAa66B,GAAsB7oE,EAAGzV,SAAW,EACpDyV,EAAGs9B,QAAU5xC,KAAKkB,MAAMoT,EAAGgF,MAAQ,GACnChF,EAAGu9B,QAAU7xC,KAAKkB,OAAOoT,EAAGsG,OAAStG,EAAGguC,YAAc,GACtDhuC,EAAGopE,YAAc19E,KAAK4B,IAAI0S,EAAGsG,OAAStG,EAAGguC,WAAYhuC,EAAGgF,OAAS,IAElE,CACD/hB,IAAK,sBACLN,MAAO,WACL,IAAIqd,EAAKT,KAELkrE,EAAiBzqE,EAAGovC,WAAU,GAC9B9hD,EAAMm9E,EAAen9E,IACrBC,EAAMk9E,EAAel9E,IAEzByS,EAAG1S,IAAM7E,EAAe6E,KAASP,MAAMO,GAAOA,EAAM,EACpD0S,EAAGzS,IAAM9E,EAAe8E,KAASR,MAAMQ,GAAOA,EAAM,EACpDyS,EAAG6nE,2BAEJ,CACD5kF,IAAK,mBACLN,MAAO,WACL,OAAO+I,KAAKs/C,KAAKzrC,KAAK6pE,YAAcP,GAAsBtpE,KAAKhV,YAEhE,CACDtH,IAAK,qBACLN,MAAO,SAA4BivC,GACjC,IAAI5xB,EAAKT,KACT,GAAgBjc,UAAU2vD,mBAAmBpxD,KAAKme,EAAI4xB,GACtD5xB,EAAGspE,aAAetpE,EAAGmtB,YAAYljC,KAAI,SAAUtH,EAAOmH,GACpD,IAAI8kC,EAAQ7nC,EAASiZ,EAAGzV,QAAQ2zC,YAAYn3C,SAAU,CAACpE,EAAOmH,GAAQkW,GACtE,OAAO4uB,GAAmB,IAAVA,EAAcA,EAAQ,QAGzC,CACD3rC,IAAK,MACLN,MAAO,WACL,IAAIqd,EAAKT,KACL6J,EAAOpJ,EAAGzV,QAEV6e,EAAK40B,SAAW50B,EAAK80B,YAAYF,QACnC+qC,GAAmB/oE,GAEnBA,EAAG0qE,eAAe,EAAG,EAAG,EAAG,KAG9B,CACDznF,IAAK,iBACLN,MAAO,SAAwBgoF,EAAuB3B,EAAgBC,GACpE,IAAIjpE,EAAKT,KACLqrE,EAAsB5B,EAAernF,EAAI+J,KAAKqD,IAAIk6E,EAAetnF,GACjEkpF,EAAuBn/E,KAAK6B,IAAIy7E,EAAexmF,EAAIwd,EAAGgF,MAAO,GAAKtZ,KAAKqD,IAAIk6E,EAAezmF,GAC1FsoF,GAAsB9B,EAAepmF,EAAI8I,KAAKsE,IAAIi5E,EAAermF,GACjEmoF,GAAyBr/E,KAAK6B,IAAIy7E,EAAe76E,GAAK6R,EAAGsG,OAAStG,EAAGguC,YAAa,GAAKtiD,KAAKsE,IAAIi5E,EAAe96E,GACnHy8E,EAAsB,GAAaA,GACnCC,EAAuB,GAAaA,GACpCC,EAAqB,GAAaA,GAClCC,EAAwB,GAAaA,GACrC/qE,EAAGopE,YAAc19E,KAAK6B,IAAIo9E,EAAwB,EAAGj/E,KAAK4B,IAAI5B,KAAKkB,MAAM+9E,GAAyBC,EAAsBC,GAAwB,GAAIn/E,KAAKkB,MAAM+9E,GAAyBG,EAAqBC,GAAyB,KACtO/qE,EAAG0qE,eAAeE,EAAqBC,EAAsBC,EAAoBC,KAElF,CACD9nF,IAAK,iBACLN,MAAO,SAAwBqoF,EAAcC,EAAeC,EAAaC,GACvE,IAAInrE,EAAKT,KACL6rE,EAAWprE,EAAGgF,MAAQimE,EAAgBjrE,EAAGopE,YACzCiC,EAAUL,EAAehrE,EAAGopE,YAC5BkC,EAASJ,EAAclrE,EAAGopE,YAC1BmC,EAAYvrE,EAAGsG,OAAStG,EAAGguC,WAAam9B,EAAiBnrE,EAAGopE,YAChEppE,EAAGs9B,QAAU5xC,KAAKkB,OAAOy+E,EAAUD,GAAY,EAAIprE,EAAGgI,MACtDhI,EAAGu9B,QAAU7xC,KAAKkB,OAAO0+E,EAASC,GAAa,EAAIvrE,EAAGkI,IAAMlI,EAAGguC,cAEhE,CACD/qD,IAAK,gBACLN,MAAO,SAAuBmH,GAG5B,OAAOsE,GAAgBtE,GAFD6B,EAAM4T,KAAK4tB,YAAYhoC,QAEIqI,GADhC+R,KAAKhV,QAAQmuC,YAAc,MAG7C,CACDz1C,IAAK,gCACLN,MAAO,SAAuCA,GAC5C,IAAIqd,EAAKT,KAET,GAAIlX,EAAc1F,GAChB,OAAOkrC,IAGT,IAAI29C,EAAgBxrE,EAAGopE,aAAeppE,EAAGzS,IAAMyS,EAAG1S,KAElD,OAAI0S,EAAGzV,QAAQlB,SACL2W,EAAGzS,IAAM5K,GAAS6oF,GAGpB7oF,EAAQqd,EAAG1S,KAAOk+E,IAE3B,CACDvoF,IAAK,gCACLN,MAAO,SAAuCq+C,GAC5C,GAAI34C,EAAc24C,GAChB,OAAOnT,IAGT,IAAI7tB,EAAKT,KACLksE,EAAiBzqC,GAAYhhC,EAAGopE,aAAeppE,EAAGzS,IAAMyS,EAAG1S,MAC/D,OAAO0S,EAAGzV,QAAQlB,QAAU2W,EAAGzS,IAAMk+E,EAAiBzrE,EAAG1S,IAAMm+E,IAEhE,CACDxoF,IAAK,mBACLN,MAAO,SAA0BmH,EAAO4hF,GACtC,IAAI1rE,EAAKT,KACLjR,EAAQ0R,EAAGy9B,cAAc3zC,GAASkC,EACtC,MAAO,CACLgB,EAAGtB,KAAKsE,IAAI1B,GAASo9E,EAAqB1rE,EAAGs9B,QAC7CrwC,EAAGvB,KAAKqD,IAAIT,GAASo9E,EAAqB1rE,EAAGu9B,QAC7CjvC,MAAOA,KAGV,CACDrL,IAAK,2BACLN,MAAO,SAAkCmH,EAAOnH,GAC9C,OAAO4c,KAAK4pE,iBAAiBr/E,EAAOyV,KAAKs+B,8BAA8Bl7C,MAExE,CACDM,IAAK,kBACLN,MAAO,SAAyBmH,GAC9B,OAAOyV,KAAKo/B,yBAAyB70C,GAAS,EAAGyV,KAAKu0C,kBAEvD,CACD7wD,IAAK,wBACLN,MAAO,SAA+BmH,GACpC,IAAI6hF,EAAwBpsE,KAAKmqE,iBAAiB5/E,GAKlD,MAAO,CACLke,KALS2jE,EAAsB3jE,KAM/BE,IALQyjE,EAAsBzjE,IAM9BD,MALU0jE,EAAsB1jE,MAMhCE,OALWwjE,EAAsBxjE,UAQpC,CACDllB,IAAK,iBACLN,MAAO,WACL,IAAIqd,EAAKT,KACLqsE,EAAe5rE,EAAGzV,QAClBqX,EAAkBgqE,EAAahqE,gBAC/Bq8B,EAAW2tC,EAAav1C,KAAK4H,SAEjC,GAAIr8B,EAAiB,CACnB,IAAIiB,EAAM7C,EAAG6C,IACbA,EAAIyC,OACJzC,EAAIqE,YACJijE,GAAenqE,EAAIA,EAAG69B,8BAA8B79B,EAAG+mE,WAAY9oC,EAAUj+B,EAAGmtB,YAAYhoC,QAC5F0d,EAAIuE,YACJvE,EAAImH,UAAYpI,EAChBiB,EAAI4E,OACJ5E,EAAI6C,aAGP,CACDziB,IAAK,WACLN,MAAO,WACL,IAMIjB,EAAG00C,EAAQ0J,EANX9/B,EAAKT,KACLsD,EAAM7C,EAAG6C,IACTuG,EAAOpJ,EAAGzV,QACVwzC,EAAa30B,EAAK20B,WAClB1H,EAAOjtB,EAAKitB,KACZsuC,EAAa3kE,EAAGmtB,YAAYhoC,OAiBhC,GAdIikB,EAAK80B,YAAYF,SA9Q3B,SAAyBv6B,EAAOkhE,GAI9B,IAHA,IAAI9hE,EAAMY,EAAMZ,IACZq7B,EAAcz6B,EAAMlZ,QAAQ2zC,YAEvBx8C,EAAIijF,EAAa,EAAGjjF,GAAK,EAAGA,IAAK,CACxC,IAAI4zD,EAAcpX,EAAYxuB,WAAWjM,EAAM0C,WAAWzkB,IACtD2nF,EAASr9D,GAAOspC,EAAYhzC,MAC5BupE,EAAwBpoE,EAAMimE,iBAAiBhoF,GAC/CsL,EAAI6+E,EAAsB7+E,EAC1BC,EAAI4+E,EAAsB5+E,EAC1Bgd,EAAY4hE,EAAsB5hE,UAClCjC,EAAO6jE,EAAsB7jE,KAC7BE,EAAM2jE,EAAsB3jE,IAC5BD,EAAQ4jE,EAAsB5jE,MAC9BE,EAAS0jE,EAAsB1jE,OAC/BwkC,EAAgB2I,EAAY3I,cAEhC,IAAKtkD,EAAcskD,GAAgB,CACjC,IAAIpJ,EAAUx3B,GAAUupC,EAAY1I,iBACpC/pC,EAAImH,UAAY2iC,EAChB9pC,EAAI4zC,SAASzuC,EAAOu7B,EAAQv7B,KAAME,EAAMq7B,EAAQr7B,IAAKD,EAAQD,EAAOu7B,EAAQv+B,MAAOmD,EAASD,EAAMq7B,EAAQj9B,QAG5G2C,GAAWpG,EAAKY,EAAM6lE,aAAa5nF,GAAIsL,EAAGC,EAAIo8E,EAAO3mE,WAAa,EAAG2mE,EAAQ,CAC3EvpE,MAAOw1C,EAAYx1C,MACnBmK,UAAWA,EACXC,aAAc,YAqPZ4hE,CAAgB9rE,EAAI2kE,GAGlBtuC,EAAK2H,SACPh+B,EAAG4xB,MAAMrkB,SAAQ,SAAUyU,EAAMl4B,GAC/B,GAAc,IAAVA,EAAa,CACfssC,EAASp2B,EAAG69B,8BAA8B7b,EAAKr/B,OAC/C,IAAI2yD,EAAcjf,EAAK3mB,WAAW1P,EAAGmG,WAAWrc,EAAQ,KAvOpE,SAAwB2Z,EAAOsoE,EAAcllE,EAAQ89D,GACnD,IAAI9hE,EAAMY,EAAMZ,IACZo7B,EAAW8tC,EAAa9tC,SACxBn+B,EAAQisE,EAAajsE,MACrB4J,EAAYqiE,EAAariE,WAExBu0B,IAAa0mC,IAAe7kE,IAAU4J,GAAa7C,EAAS,IAIjEhE,EAAIyC,OACJzC,EAAI4G,YAAc3J,EAClB+C,EAAI6G,UAAYA,EAChB7G,EAAIg0C,YAAYk1B,EAAaluD,YAC7Bhb,EAAIi0C,eAAiBi1B,EAAajuD,iBAClCjb,EAAIqE,YACJijE,GAAe1mE,EAAOoD,EAAQo3B,EAAU0mC,GACxC9hE,EAAIuE,YACJvE,EAAI8E,SACJ9E,EAAI6C,WAqNMsmE,CAAehsE,EAAIs1C,EAAalf,EAAQuuC,OAK1C5mC,EAAWC,QAAS,CAGtB,IAFAn7B,EAAIyC,OAEC5jB,EAAIse,EAAGmtB,YAAYhoC,OAAS,EAAGzD,GAAK,EAAGA,IAAK,CAC/C,IAAI4zD,EAAcvX,EAAWruB,WAAW1P,EAAGmG,WAAWzkB,IAClDoe,EAAQw1C,EAAYx1C,MACpB4J,EAAY4rC,EAAY5rC,UAEvBA,GAAc5J,IAInB+C,EAAI6G,UAAYA,EAChB7G,EAAI4G,YAAc3J,EAClB+C,EAAIg0C,YAAYvB,EAAYz3B,YAC5Bhb,EAAIi0C,eAAiBxB,EAAYx3B,iBACjCsY,EAASp2B,EAAG69B,8BAA8Bz0B,EAAKwoB,MAAMvoC,QAAU2W,EAAG1S,IAAM0S,EAAGzS,KAC3EuyC,EAAW9/B,EAAGmpE,iBAAiBznF,EAAG00C,GAClCvzB,EAAIqE,YACJrE,EAAIwE,OAAOrH,EAAGs9B,QAASt9B,EAAGu9B,SAC1B16B,EAAIyE,OAAOw4B,EAAS9yC,EAAG8yC,EAAS7yC,GAChC4V,EAAI8E,UAGN9E,EAAI6C,aAGP,CACDziB,IAAK,aACLN,MAAO,cACN,CACDM,IAAK,aACLN,MAAO,WACL,IAAIqd,EAAKT,KACLsD,EAAM7C,EAAG6C,IACTuG,EAAOpJ,EAAGzV,QACVy/C,EAAW5gC,EAAKwoB,MAEpB,GAAKoY,EAAShM,QAAd,CAIA,IACI5H,EAAQpxB,EADR0zB,EAAa14B,EAAGy9B,cAAc,GAElC56B,EAAIyC,OACJzC,EAAIkE,UAAU/G,EAAGs9B,QAASt9B,EAAGu9B,SAC7B16B,EAAImE,OAAO0xB,GACX71B,EAAIoH,UAAY,SAChBpH,EAAIqH,aAAe,SACnBlK,EAAG4xB,MAAMrkB,SAAQ,SAAUyU,EAAMl4B,GAC/B,GAAc,IAAVA,GAAgBsf,EAAK/f,QAAzB,CAIA,IAAIisD,EAActL,EAASt6B,WAAW1P,EAAGmG,WAAWrc,IAChDqpD,EAAWnnC,GAAOspC,EAAYhzC,MAGlC,GAFA8zB,EAASp2B,EAAG69B,8BAA8B79B,EAAG4xB,MAAM9nC,GAAOnH,OAEtD2yD,EAAY5I,kBAAmB,CACjC7pC,EAAIP,KAAO6wC,EAAStuC,OACpBG,EAAQnC,EAAIkC,YAAYid,EAAK4M,OAAO5pB,MACpCnC,EAAImH,UAAYsrC,EAAY3I,cAC5B,IAAIpJ,EAAUx3B,GAAUupC,EAAY1I,iBACpC/pC,EAAI4zC,UAAUzxC,EAAQ,EAAIu+B,EAAQv7B,MAAOouB,EAAS+c,EAAS3wC,KAAO,EAAI+gC,EAAQr7B,IAAKlD,EAAQu+B,EAAQv+B,MAAOmuC,EAAS3wC,KAAO+gC,EAAQj9B,QAGpI2C,GAAWpG,EAAKmf,EAAK4M,MAAO,GAAIwH,EAAQ+c,EAAU,CAChDrzC,MAAOw1C,EAAYx1C,YAGvB+C,EAAI6C,aAEL,CACDziB,IAAK,YACLN,MAAO,gBAGF2nF,EAhS4B,CAiSnC,IAEF,GAAkBniF,GAAK,eACvB,GAAkBqZ,SAAW,CAC3Bw8B,SAAS,EACTiuC,SAAS,EACTnsC,SAAU,YACV/B,WAAY,CACVC,SAAS,EACTt0B,UAAW,EACXmU,WAAY,GACZC,iBAAkB,GAEpBuY,KAAM,CACJ4H,UAAU,GAEZvF,WAAY,EACZ9G,MAAO,CACL8a,mBAAmB,EACnB3lD,SAAU+iD,GAAMX,WAAWC,SAE7BlL,YAAa,CACXyO,mBAAen6C,EACfo6C,gBAAiB,EACjB5O,SAAS,EACT17B,KAAM,CACJE,KAAM,IAERzb,SAAU,SAAkB6nC,GAC1B,OAAOA,GAET2U,QAAS,IAGb,GAAkB2F,cAAgB,CAChC,mBAAoB,cACpB,oBAAqB,QACrB,cAAe,SAEjB,GAAkBr5B,YAAc,CAC9BkuB,WAAY,CACVv5B,UAAW,SAGf,IAAI0nE,GAAY,CACdC,YAAa,CACXC,QAAQ,EACR5pE,KAAM,EACN6pE,MAAO,KAETC,OAAQ,CACNF,QAAQ,EACR5pE,KAAM,IACN6pE,MAAO,IAETE,OAAQ,CACNH,QAAQ,EACR5pE,KAAM,IACN6pE,MAAO,IAETG,KAAM,CACJJ,QAAQ,EACR5pE,KAAM,KACN6pE,MAAO,IAETI,IAAK,CACHL,QAAQ,EACR5pE,KAAM,MACN6pE,MAAO,IAETK,KAAM,CACJN,QAAQ,EACR5pE,KAAM,OACN6pE,MAAO,GAETM,MAAO,CACLP,QAAQ,EACR5pE,KAAM,OACN6pE,MAAO,IAETO,QAAS,CACPR,QAAQ,EACR5pE,KAAM,OACN6pE,MAAO,GAETQ,KAAM,CACJT,QAAQ,EACR5pE,KAAM,SAGNsqE,GAAQ1qF,OAAOkH,KAAK4iF,IAExB,SAASa,GAAO7+E,EAAGC,GACjB,OAAOD,EAAIC,EAGb,SAAS6+E,GAAOvpE,EAAOtE,GACrB,GAAI9W,EAAc8W,GAChB,OAAO,KAGT,IAAI8tE,EAAUxpE,EAAMypE,SAChBC,EAAoB1pE,EAAM2pE,WAC1BC,EAASF,EAAkBE,OAC3B7gF,EAAQ2gF,EAAkB3gF,MAC1B8gF,EAAaH,EAAkBG,WAC/B3qF,EAAQwc,EAUZ,MARsB,oBAAXkuE,IACT1qF,EAAQ0qF,EAAO1qF,IAGZ8F,EAAe9F,KAClBA,EAA0B,kBAAX0qF,EAAsBJ,EAAQ3/C,MAAM3qC,EAAO0qF,GAAUJ,EAAQ3/C,MAAM3qC,IAGtE,OAAVA,EACK,MAGL6J,IACF7J,EAAkB,SAAV6J,IAAqBM,EAASwgF,KAA8B,IAAfA,EAAuEL,EAAQM,QAAQ5qF,EAAO6J,GAAvEygF,EAAQM,QAAQ5qF,EAAO,UAAW2qF,KAGxG3qF,GAGV,SAAS6qF,GAA0BC,EAASngF,EAAKC,EAAKmgF,GAGpD,IAFA,IAAIhkF,EAAOojF,GAAM3nF,OAERzD,EAAIorF,GAAMziF,QAAQojF,GAAU/rF,EAAIgI,EAAO,IAAKhI,EAAG,CACtD,IAAIisF,EAAWzB,GAAUY,GAAMprF,IAC3BwhC,EAASyqD,EAAStB,MAAQsB,EAAStB,MAAQ3jF,OAAOklF,iBAEtD,GAAID,EAASvB,QAAU1gF,KAAKs/C,MAAMz9C,EAAMD,IAAQ41B,EAASyqD,EAASnrE,QAAUkrE,EAC1E,OAAOZ,GAAMprF,GAIjB,OAAOorF,GAAMpjF,EAAO,GAuBtB,SAASmkF,GAAQj8C,EAAOk8C,EAAMC,GAC5B,GAAKA,GAEE,GAAIA,EAAW5oF,OAAQ,CAC5B,IAAI6oF,EAAWvhE,GAAQshE,EAAYD,GAC/BhhE,EAAKkhE,EAASlhE,GACdD,EAAKmhE,EAASnhE,GAGlB+kB,EADgBm8C,EAAWjhE,IAAOghE,EAAOC,EAAWjhE,GAAMihE,EAAWlhE,KAClD,QAPnB+kB,EAAMk8C,IAAQ,EA4BlB,SAASG,GAAoBxqE,EAAOlC,EAAQ2sE,GAC1C,IAGIxsF,EAAGiB,EAHHivC,EAAQ,GACR3nC,EAAM,GACNP,EAAO6X,EAAOpc,OAGlB,IAAKzD,EAAI,EAAGA,EAAIgI,IAAQhI,EAEtBuI,EADAtH,EAAQ4e,EAAO7f,IACFA,EACbkwC,EAAM3sB,KAAK,CACTtiB,MAAOA,EACP+nD,OAAO,IAIX,OAAgB,IAAThhD,GAAewkF,EAhCxB,SAAuBzqE,EAAOmuB,EAAO3nC,EAAKikF,GACxC,IAGIxjC,EAAO5gD,EAHPmjF,EAAUxpE,EAAMypE,SAChBpiC,GAASmiC,EAAQM,QAAQ37C,EAAM,GAAGjvC,MAAOurF,GACzC/5C,EAAOvC,EAAMA,EAAMzsC,OAAS,GAAGxC,MAGnC,IAAK+nD,EAAQI,EAAOJ,GAASvW,EAAMuW,GAASuiC,EAAQt/D,IAAI+8B,EAAO,EAAGwjC,IAChEpkF,EAAQG,EAAIygD,KAEC,IACX9Y,EAAM9nC,GAAO4gD,OAAQ,GAIzB,OAAO9Y,EAkBmCu8C,CAAc1qE,EAAOmuB,EAAO3nC,EAAKikF,GAAzCt8C,EAGpC,IAAI,GAAyB,SAAUw8C,GACrCzvD,GAAU0vD,EAAWD,GAErB,IAAIE,EAAWrvD,GAAaovD,GAE5B,SAASA,EAAUnpF,GACjB,IAAIqpF,EAeJ,OAbA,GAAgBhvE,KAAM8uE,IAEtBE,EAAUD,EAASzsF,KAAK0d,KAAMra,IACtB4oB,OAAS,CACfpJ,KAAM,GACNwoB,OAAQ,GACR3G,IAAK,IAEPgoD,EAAQC,MAAQ,MAChBD,EAAQE,gBAAaj8E,EACrB+7E,EAAQG,SAAW,GACnBH,EAAQI,aAAc,EACtBJ,EAAQnB,gBAAa56E,EACd+7E,EAwVT,OArVA,GAAaF,EAAW,CAAC,CACvBprF,IAAK,OACLN,MAAO,SAAc6+D,EAAWp4C,GAC9B,IAAI0kE,EAAOtsB,EAAUssB,OAAStsB,EAAUssB,KAAO,IAC3Cb,EAAU1tE,KAAK2tE,SAAW,IAAI5tC,GAASC,MAAMiiB,EAAUliB,SAASte,MACpEn2B,EAAQijF,EAAKc,eAAgB3B,EAAQ4B,WACrCtvE,KAAK6tE,WAAa,CAChBC,OAAQS,EAAKT,OACb7gF,MAAOshF,EAAKthF,MACZ8gF,WAAYQ,EAAKR,YAGnBhvD,GAAKE,GAAgB6vD,EAAU/qF,WAAY,OAAQic,MAAM1d,KAAK0d,KAAMiiD,GAEpEjiD,KAAKovE,YAAcvlE,EAAK0lE,aAEzB,CACD7rF,IAAK,QACLN,MAAO,SAAe2sC,EAAKxlC,GACzB,YAAY0I,IAAR88B,EACK,KAGF09C,GAAOztE,KAAM+vB,KAErB,CACDrsC,IAAK,eACLN,MAAO,WACL27B,GAAKE,GAAgB6vD,EAAU/qF,WAAY,eAAgBic,MAAM1d,KAAK0d,MAEtEA,KAAKuO,OAAS,CACZpJ,KAAM,GACNwoB,OAAQ,GACR3G,IAAK,MAGR,CACDtjC,IAAK,sBACLN,MAAO,WACL,IAAIqd,EAAKT,KACLhV,EAAUyV,EAAGzV,QACb0iF,EAAUjtE,EAAGktE,SACb/tC,EAAO50C,EAAQujF,KAAK3uC,MAAQ,MAE5B4vC,EAAqB/uE,EAAGouB,gBACxB9gC,EAAMyhF,EAAmBzhF,IACzBC,EAAMwhF,EAAmBxhF,IACzB8gC,EAAa0gD,EAAmB1gD,WAChCC,EAAaygD,EAAmBzgD,WAEpC,SAAS0gD,EAAa5yD,GACfiS,GAAethC,MAAMqvB,EAAO9uB,OAC/BA,EAAM5B,KAAK4B,IAAIA,EAAK8uB,EAAO9uB,MAGxBghC,GAAevhC,MAAMqvB,EAAO7uB,OAC/BA,EAAM7B,KAAK6B,IAAIA,EAAK6uB,EAAO7uB,MAI1B8gC,GAAeC,IAClB0gD,EAAahvE,EAAGivE,mBAEO,UAAnB1kF,EAAQ6xB,QAA+C,WAAzB7xB,EAAQqnC,MAAM5nC,QAC9CglF,EAAahvE,EAAGovC,WAAU,KAI9B9hD,EAAM7E,EAAe6E,KAASP,MAAMO,GAAOA,GAAO2/E,EAAQM,QAAQ/rD,KAAKC,MAAO0d,GAC9E5xC,EAAM9E,EAAe8E,KAASR,MAAMQ,GAAOA,GAAO0/E,EAAQiC,MAAM1tD,KAAKC,MAAO0d,GAAQ,EACpFn/B,EAAG1S,IAAM5B,KAAK4B,IAAIA,EAAKC,EAAM,GAC7ByS,EAAGzS,IAAM7B,KAAK6B,IAAID,EAAM,EAAGC,KAE5B,CACDtK,IAAK,kBACLN,MAAO,WACL,IAAIgB,EAAM4b,KAAK4vE,qBACX7hF,EAAM5E,OAAOoD,kBACbyB,EAAM7E,OAAOulC,kBAOjB,OALItqC,EAAIwB,SACNmI,EAAM3J,EAAI,GACV4J,EAAM5J,EAAIA,EAAIwB,OAAS,IAGlB,CACLmI,IAAKA,EACLC,IAAKA,KAGR,CACDtK,IAAK,aACLN,MAAO,WACL,IAAIqd,EAAKT,KACLhV,EAAUyV,EAAGzV,QACb6kF,EAAW7kF,EAAQujF,KACnB9jC,EAAWz/C,EAAQqnC,MACnBm8C,EAAiC,WAApB/jC,EAAShgD,OAAsBgW,EAAGmvE,qBAAuBnvE,EAAGqvE,YAEtD,UAAnB9kF,EAAQ6xB,QAAsB2xD,EAAW5oF,SAC3C6a,EAAG1S,IAAM0S,EAAG2uC,UAAYo/B,EAAW,GACnC/tE,EAAGzS,IAAMyS,EAAG0uC,UAAYq/B,EAAWA,EAAW5oF,OAAS,IAGzD,IAAImI,EAAM0S,EAAG1S,IAGTskC,ED91XV,SAAwBrwB,EAAQjU,EAAKC,GAInC,IAHA,IAAIvF,EAAQ,EACRC,EAAMsZ,EAAOpc,OAEV6C,EAAQC,GAAOsZ,EAAOvZ,GAASsF,GACpCtF,IAGF,KAAOC,EAAMD,GAASuZ,EAAOtZ,EAAM,GAAKsF,GACtCtF,IAGF,OAAOD,EAAQ,GAAKC,EAAMsZ,EAAOpc,OAASoc,EAAO9a,MAAMuB,EAAOC,GAAOsZ,ECk1XrD+tE,CAAevB,EAAYzgF,EAF7B0S,EAAGzS,KAYb,OARAyS,EAAGwuE,MAAQY,EAASjwC,OAAS6K,EAASD,SAAWyjC,GAA0B4B,EAAS3B,QAASztE,EAAG1S,IAAK0S,EAAGzS,IAAKyS,EAAGuvE,kBAAkBjiF,IAzMxI,SAAoCmW,EAAO6tC,EAAUm8B,EAASngF,EAAKC,GACjE,IAAK,IAAI7L,EAAIorF,GAAM3nF,OAAS,EAAGzD,GAAKorF,GAAMziF,QAAQojF,GAAU/rF,IAAK,CAC/D,IAAIy9C,EAAO2tC,GAAMprF,GAEjB,GAAIwqF,GAAU/sC,GAAMitC,QAAU3oE,EAAMypE,SAAS/hC,KAAK59C,EAAKD,EAAK6xC,IAASmS,EAAW,EAC9E,OAAOnS,EAIX,OAAO2tC,GAAMW,EAAUX,GAAMziF,QAAQojF,GAAW,GAgM8F+B,CAA2BxvE,EAAI4xB,EAAMzsC,OAAQiqF,EAAS3B,QAASztE,EAAG1S,IAAK0S,EAAGzS,MACpNyS,EAAGyuE,WAAczkC,EAASU,MAAMC,SAAwB,SAAb3qC,EAAGwuE,MA9LpD,SAA4BrvC,GAC1B,IAAK,IAAIz9C,EAAIorF,GAAMziF,QAAQ80C,GAAQ,EAAGz1C,EAAOojF,GAAM3nF,OAAQzD,EAAIgI,IAAQhI,EACrE,GAAIwqF,GAAUY,GAAMprF,IAAI0qF,OACtB,OAAOU,GAAMprF,GA2LgE+tF,CAAmBzvE,EAAGwuE,YAAlCh8E,EACjEwN,EAAG0vE,YAAY3B,GAEXxjF,EAAQlB,SACVuoC,EAAMvoC,UAGD4kF,GAAoBjuE,EAAI4xB,EAAO5xB,EAAGyuE,cAE1C,CACDxrF,IAAK,cACLN,MAAO,SAAqBorF,GAC1B,IAGIjjC,EAAO3W,EAHPn0B,EAAKT,KACLvX,EAAQ,EACRC,EAAM,EAGN+X,EAAGzV,QAAQ6rC,QAAU23C,EAAW5oF,SAClC2lD,EAAQ9qC,EAAG2vE,mBAAmB5B,EAAW,IAGvC/lF,EADwB,IAAtB+lF,EAAW5oF,OACL,EAAI2lD,GAEH9qC,EAAG2vE,mBAAmB5B,EAAW,IAAMjjC,GAAS,EAG3D3W,EAAOn0B,EAAG2vE,mBAAmB5B,EAAWA,EAAW5oF,OAAS,IAG1D8C,EADwB,IAAtB8lF,EAAW5oF,OACPgvC,GAECA,EAAOn0B,EAAG2vE,mBAAmB5B,EAAWA,EAAW5oF,OAAS,KAAO,GAI9E,IAAIkwD,EAAQ04B,EAAW5oF,OAAS,EAAI,GAAM,IAC1C6C,EAAQ4G,GAAY5G,EAAO,EAAGqtD,GAC9BptD,EAAM2G,GAAY3G,EAAK,EAAGotD,GAC1Br1C,EAAG0uE,SAAW,CACZ1mF,MAAOA,EACPC,IAAKA,EACLi7B,OAAQ,GAAKl7B,EAAQ,EAAIC,MAG5B,CACDhF,IAAK,YACLN,MAAO,WACL,IAYImrF,EAAM7xD,EAZNjc,EAAKT,KACL0tE,EAAUjtE,EAAGktE,SACb5/E,EAAM0S,EAAG1S,IACTC,EAAMyS,EAAGzS,IACThD,EAAUyV,EAAGzV,QACb6kF,EAAW7kF,EAAQujF,KACnBthC,EAAQ4iC,EAASjwC,MAAQquC,GAA0B4B,EAAS3B,QAASngF,EAAKC,EAAKyS,EAAGuvE,kBAAkBjiF,IACpG+5E,EAAWv+E,EAAesmF,EAAS/H,SAAU,GAC7CjoC,EAAoB,SAAVoN,GAAmB4iC,EAAS9B,WACtCsC,EAAa9iF,EAASsyC,KAAwB,IAAZA,EAClCxN,EAAQ,GACRkZ,EAAQx9C,EASZ,GANIsiF,IACF9kC,GAASmiC,EAAQM,QAAQziC,EAAO,UAAW1L,IAG7C0L,GAASmiC,EAAQM,QAAQziC,EAAO8kC,EAAa,MAAQpjC,GAEjDygC,EAAQ9hC,KAAK59C,EAAKD,EAAKk/C,GAAS,IAAS66B,EAC3C,MAAM,IAAIt3D,MAAMziB,EAAM,QAAUC,EAAM,uCAAyC85E,EAAW,IAAM76B,GAGlG,IAAIuhC,EAAsC,SAAzBxjF,EAAQqnC,MAAM5nC,QAAqBgW,EAAG6vE,oBAEvD,IAAK/B,EAAOhjC,EAAO7uB,EAAQ,EAAG6xD,EAAOvgF,EAAKugF,GAAQb,EAAQt/D,IAAImgE,EAAMzG,EAAU76B,GAAQvwB,IACpF4xD,GAAQj8C,EAAOk8C,EAAMC,GAOvB,OAJID,IAASvgF,GAA0B,UAAnBhD,EAAQ6xB,QAAgC,IAAVH,GAChD4xD,GAAQj8C,EAAOk8C,EAAMC,GAGhB3rF,OAAOkH,KAAKsoC,GAAOL,MAAK,SAAUrjC,EAAGC,GAC1C,OAAOD,EAAIC,KACVlE,KAAI,SAAU+C,GACf,OAAQA,OAGX,CACD/J,IAAK,mBACLN,MAAO,SAA0BA,GAC/B,IACIsqF,EADK1tE,KACQ2tE,SACbkC,EAFK7vE,KAEShV,QAAQujF,KAE1B,OAAIsB,EAASU,cACJ7C,EAAQzyD,OAAO73B,EAAOysF,EAASU,eAGjC7C,EAAQzyD,OAAO73B,EAAOysF,EAASR,eAAemB,YAEtD,CACD9sF,IAAK,sBACLN,MAAO,SAA6BmrF,EAAMhkF,EAAO8nC,EAAOpX,GACtD,IAAIxa,EAAKT,KACLhV,EAAUyV,EAAGzV,QACbskF,EAAUtkF,EAAQujF,KAAKc,eACvBzvC,EAAOn/B,EAAGwuE,MACVN,EAAYluE,EAAGyuE,WACfuB,EAAc7wC,GAAQ0vC,EAAQ1vC,GAC9B8wC,EAAc/B,GAAaW,EAAQX,GACnClsD,EAAO4P,EAAM9nC,GACb4gD,EAAQwjC,GAAa+B,GAAejuD,GAAQA,EAAK0oB,MAEjD9b,EAAQ5uB,EAAGktE,SAAS1yD,OAAOszD,EAAMtzD,IAAWkwB,EAAQulC,EAAcD,IAElE51D,EAAY7vB,EAAQqnC,MAAM7qC,SAC9B,OAAOqzB,EAAYrzB,EAASqzB,EAAW,CAACwU,EAAO9kC,EAAO8nC,GAAQ5xB,GAAM4uB,IAErE,CACD3rC,IAAK,qBACLN,MAAO,SAA4BivC,GACjC,IAAIlwC,EAAGgI,EAAMs4B,EAEb,IAAKtgC,EAAI,EAAGgI,EAAOkoC,EAAMzsC,OAAQzD,EAAIgI,IAAQhI,GAC3CsgC,EAAO4P,EAAMlwC,IACRktC,MAAQrvB,KAAK2wE,oBAAoBluD,EAAKr/B,MAAOjB,EAAGkwC,KAGxD,CACD3uC,IAAK,qBACLN,MAAO,SAA4BA,GACjC,IAAIqd,EAAKT,KACT,OAAiB,OAAV5c,EAAiBkrC,KAAOlrC,EAAQqd,EAAG1S,MAAQ0S,EAAGzS,IAAMyS,EAAG1S,OAE/D,CACDrK,IAAK,mBACLN,MAAO,SAA0BA,GAC/B,IAAIqd,EAAKT,KACL4wE,EAAUnwE,EAAG0uE,SACbxjF,EAAM8U,EAAG2vE,mBAAmBhtF,GAChC,OAAOqd,EAAGg3B,oBAAoBm5C,EAAQnoF,MAAQkD,GAAOilF,EAAQjtD,UAE9D,CACDjgC,IAAK,mBACLN,MAAO,SAA0BmjB,GAC/B,IAAI9F,EAAKT,KACL4wE,EAAUnwE,EAAG0uE,SACbxjF,EAAM8U,EAAGulE,mBAAmBz/D,GAASqqE,EAAQjtD,OAASitD,EAAQloF,IAClE,OAAO+X,EAAG1S,IAAMpC,GAAO8U,EAAGzS,IAAMyS,EAAG1S,OAEpC,CACDrK,IAAK,gBACLN,MAAO,SAAuBisC,GAC5B,IAAI5uB,EAAKT,KACL6wE,EAAYpwE,EAAGzV,QAAQqnC,MACvBy+C,EAAiBrwE,EAAG6C,IAAIkC,YAAY6pB,GAAO5pB,MAC3C1W,EAAQd,GAAUwS,EAAGqzB,eAAiB+8C,EAAUlkC,YAAckkC,EAAUnkC,aACxEqkC,EAAc5kF,KAAKsE,IAAI1B,GACvBiiF,EAAc7kF,KAAKqD,IAAIT,GAEvBkiF,EAAexwE,EAAG2zC,wBAAwB,GAAGnxC,KAEjD,MAAO,CACL7P,EAAG09E,EAAiBC,EAAcE,EAAeD,EACjDv+E,EAAGq+E,EAAiBE,EAAcC,EAAeF,KAGpD,CACDrtF,IAAK,oBACLN,MAAO,SAA2B8tF,GAChC,IAAIzwE,EAAKT,KACL6vE,EAAWpvE,EAAGzV,QAAQujF,KACtBc,EAAiBQ,EAASR,eAC1Bp0D,EAASo0D,EAAeQ,EAASjwC,OAASyvC,EAAezC,YAEzDuE,EAAe1wE,EAAGkwE,oBAAoBO,EAAa,EAAGxC,GAAoBjuE,EAAI,CAACywE,GAAczwE,EAAGyuE,YAAaj0D,GAE7GhY,EAAOxC,EAAG2wE,cAAcD,GAExBhD,EAAWhiF,KAAKkB,MAAMoT,EAAGqzB,eAAiBrzB,EAAGgF,MAAQxC,EAAK7P,EAAIqN,EAAGsG,OAAS9D,EAAKxQ,GAAK,EACxF,OAAO07E,EAAW,EAAIA,EAAW,IAElC,CACDzqF,IAAK,oBACLN,MAAO,WACL,IAEIjB,EAAGgI,EAFHsW,EAAKT,KACLwuE,EAAa/tE,EAAG8N,OAAOpJ,MAAQ,GAGnC,GAAIqpE,EAAW5oF,OACb,OAAO4oF,EAGT,IAAI18C,EAAQrxB,EAAGkoB,0BAEf,GAAIloB,EAAG2uE,aAAet9C,EAAMlsC,OAC1B,OAAO6a,EAAG8N,OAAOpJ,KAAO2sB,EAAM,GAAGjJ,WAAWkJ,mBAAmBtxB,GAGjE,IAAKte,EAAI,EAAGgI,EAAO2nC,EAAMlsC,OAAQzD,EAAIgI,IAAQhI,EAC3CqsF,EAAaA,EAAWnuE,OAAOyxB,EAAM3vC,GAAG0mC,WAAWkJ,mBAAmBtxB,IAGxE,OAAOA,EAAG8N,OAAOpJ,KAAO1E,EAAG8b,UAAUiyD,KAEtC,CACD9qF,IAAK,qBACLN,MAAO,WACL,IAEIjB,EAAGgI,EAFHsW,EAAKT,KACLwuE,EAAa/tE,EAAG8N,OAAOof,QAAU,GAGrC,GAAI6gD,EAAW5oF,OACb,OAAO4oF,EAGT,IAAI7gD,EAASltB,EAAGmtB,YAEhB,IAAKzrC,EAAI,EAAGgI,EAAOwjC,EAAO/nC,OAAQzD,EAAIgI,IAAQhI,EAC5CqsF,EAAW9oE,KAAK+nE,GAAOhtE,EAAIktB,EAAOxrC,KAGpC,OAAOse,EAAG8N,OAAOof,OAASltB,EAAG2uE,YAAcZ,EAAa/tE,EAAG8b,UAAUiyD,KAEtE,CACD9qF,IAAK,YACLN,MAAO,SAAmB4e,GACxB,OAAOiM,GAAajM,EAAOgwB,KAAKw7C,SAI7BsB,EA7WoB,CA8W3B,IAsBF,SAAS,GAAY3hE,EAAOrM,EAAKhX,GAC/B,IAEIunF,EAAYC,EAAYC,EAAYC,EAFpCjkE,EAAK,EACLD,EAAKH,EAAMvnB,OAAS,EAGxB,GAAIkE,EAAS,CACX,GAAIgX,GAAOqM,EAAMI,GAAI5hB,KAAOmV,GAAOqM,EAAMG,GAAI3hB,IAAK,CAChD,IAAI8lF,EAAgBjkE,GAAaL,EAAO,MAAOrM,GAE/CyM,EAAKkkE,EAAclkE,GACnBD,EAAKmkE,EAAcnkE,GAGrB,IAAIokE,EAAYvkE,EAAMI,GACtB8jE,EAAaK,EAAU/lF,IACvB4lF,EAAaG,EAAUnD,KACvB,IAAIoD,EAAYxkE,EAAMG,GACtBgkE,EAAaK,EAAUhmF,IACvB6lF,EAAaG,EAAUpD,SAClB,CACL,GAAIztE,GAAOqM,EAAMI,GAAIghE,MAAQztE,GAAOqM,EAAMG,GAAIihE,KAAM,CAClD,IAAIqD,EAAgBpkE,GAAaL,EAAO,OAAQrM,GAEhDyM,EAAKqkE,EAAcrkE,GACnBD,EAAKskE,EAActkE,GAGrB,IAAIukE,EAAa1kE,EAAMI,GACvB8jE,EAAaQ,EAAWtD,KACxBgD,EAAaM,EAAWlmF,IACxB,IAAImmF,EAAa3kE,EAAMG,GACvBgkE,EAAaQ,EAAWvD,KACxBiD,EAAaM,EAAWnmF,IAG1B,IAAIomF,EAAOT,EAAaD,EACxB,OAAOU,EAAOR,GAAcC,EAAaD,IAAezwE,EAAMuwE,GAAcU,EAAOR,EAxDrF,GAAU3oF,GAAK,OACf,GAAUqZ,SAAW,CACnB4a,OAAQ,OACRkjB,SAAU,GACVwuC,KAAM,CACJT,QAAQ,EACRluC,MAAM,EACN3yC,OAAO,EACP8gF,YAAY,EACZG,QAAS,cACTmB,eAAgB,IAElBh9C,MAAO,CACL5nC,OAAQ,OACR0gD,MAAO,CACLC,SAAS,KA4Cf,IAAI4mC,GAA+B,SAAUC,GAC3C7yD,GAAU4yD,EAAiBC,GAE3B,IAAIC,EAAWxyD,GAAasyD,GAE5B,SAASA,EAAgBrsF,GACvB,IAAIwsF,EAQJ,OANA,GAAgBnyE,KAAMgyE,IAEtBG,EAAUD,EAAS5vF,KAAK0d,KAAMra,IACtBysF,OAAS,GACjBD,EAAQE,aAAUp/E,EAClBk/E,EAAQG,iBAAcr/E,EACfk/E,EA+FT,OA5FA,GAAaH,EAAiB,CAAC,CAC7BtuF,IAAK,cACLN,MAAO,WACL,IAAIqd,EAAKT,KAELwuE,EAAa/tE,EAAG8xE,yBAEhBplE,EAAQ1M,EAAG2xE,OAAS3xE,EAAG+xE,iBAAiBhE,GAC5C/tE,EAAG4xE,QAAU,GAAYllE,EAAO1M,EAAG1S,KACnC0S,EAAG6xE,YAAc,GAAYnlE,EAAO1M,EAAGzS,KAAOyS,EAAG4xE,QAEjDtzD,GAAKE,GAAgB+yD,EAAgBjuF,WAAY,cAAeic,MAAM1d,KAAK0d,KAAMwuE,KAElF,CACD9qF,IAAK,mBACLN,MAAO,SAA0BorF,GAC/B,IAIIrsF,EAAGgI,EAAMyrB,EAAMgc,EAAM/qC,EAJrBkH,EAAMiS,KAAKjS,IACXC,EAAMgS,KAAKhS,IACXkgB,EAAQ,GACRf,EAAQ,GAGZ,IAAKhrB,EAAI,EAAGgI,EAAOqkF,EAAW5oF,OAAQzD,EAAIgI,IAAQhI,GAChDyvC,EAAO48C,EAAWrsF,KAEN4L,GAAO6jC,GAAQ5jC,GACzBkgB,EAAMxI,KAAKksB,GAIf,GAAI1jB,EAAMtoB,OAAS,EACjB,MAAO,CAAC,CACN2oF,KAAMxgF,EACNpC,IAAK,GACJ,CACD4iF,KAAMvgF,EACNrC,IAAK,IAIT,IAAKxJ,EAAI,EAAGgI,EAAO+jB,EAAMtoB,OAAQzD,EAAIgI,IAAQhI,EAC3C0E,EAAOqnB,EAAM/rB,EAAI,GACjByzB,EAAO1H,EAAM/rB,EAAI,GACjByvC,EAAO1jB,EAAM/rB,GAETgK,KAAKc,OAAOpG,EAAO+uB,GAAQ,KAAOgc,GACpCzkB,EAAMzH,KAAK,CACT6oE,KAAM38C,EACNjmC,IAAKxJ,GAAKgI,EAAO,KAKvB,OAAOgjB,IAER,CACDzpB,IAAK,yBACLN,MAAO,WACL,IAAIqd,EAAKT,KACLwuE,EAAa/tE,EAAG8N,OAAOyY,KAAO,GAElC,GAAIwnD,EAAW5oF,OACb,OAAO4oF,EAGT,IAAIrpE,EAAO1E,EAAG6vE,oBACVjhD,EAAQ5uB,EAAGmvE,qBASf,OANEpB,EADErpE,EAAKvf,QAAUypC,EAAMzpC,OACV6a,EAAG8b,UAAUpX,EAAK9E,OAAOgvB,IAEzBlqB,EAAKvf,OAASuf,EAAOkqB,EAGpCm/C,EAAa/tE,EAAG8N,OAAOyY,IAAMwnD,IAG9B,CACD9qF,IAAK,qBACLN,MAAO,SAA4BA,GACjC,OAAQ,GAAY4c,KAAKoyE,OAAQhvF,GAAS4c,KAAKqyE,SAAWryE,KAAKsyE,cAEhE,CACD5uF,IAAK,mBACLN,MAAO,SAA0BmjB,GAC/B,IAAI9F,EAAKT,KACL4wE,EAAUnwE,EAAG0uE,SACb76B,EAAU7zC,EAAGulE,mBAAmBz/D,GAASqqE,EAAQjtD,OAASitD,EAAQloF,IACtE,OAAO,GAAY+X,EAAG2xE,OAAQ99B,EAAU7zC,EAAG6xE,YAAc7xE,EAAG4xE,SAAS,OAIlEL,EA7G0B,CA8GjC,IAEFA,GAAgBppF,GAAK,aACrBopF,GAAgB/vE,SAAW,GAAUA,U,cCrtcrC/f,EAAOD,QAAU,SAAUC,GAsBzB,OArBKA,EAAOuwF,kBACVvwF,EAAOwwF,UAAY,aAEnBxwF,EAAOywF,MAAQ,GAEVzwF,EAAO0wF,WAAU1wF,EAAO0wF,SAAW,IACxC/vF,OAAOC,eAAeZ,EAAQ,SAAU,CACtCa,YAAY,EACZC,IAAK,WACH,OAAOd,EAAOE,KAGlBS,OAAOC,eAAeZ,EAAQ,KAAM,CAClCa,YAAY,EACZC,IAAK,WACH,OAAOd,EAAOC,KAGlBD,EAAOuwF,gBAAkB,GAGpBvwF,I,iBCtBT,gCAAoW,OAAtOkD,EAArD,oBAAXlC,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,IAenX,SAAW4tF,EAAQC,GACjB,aAEwE,WAArB1tF,EAAQlD,IAAqD,WAA5BkD,EAAQlD,EAAOD,SAQjGC,EAAOD,QAAU4wF,EAAOzrC,SAAW0rC,EAAQD,GAAQ,GAAQ,SAAUz/E,GACnE,IAAKA,EAAEg0C,SACL,MAAM,IAAI52B,MAAM,4CAGlB,OAAOsiE,EAAQ1/E,IAGjB0/E,EAAQD,GAnBZ,CAsBqB,qBAAXtrF,OAAyBA,OAASyY,MAAM,SAAUzY,EAAQwrF,GAKlE,aAEA,IAAI3uF,EAAM,GACN4uF,EAAWnwF,OAAOusB,eAClB6jE,EAAS7uF,EAAI8C,MACbgsF,EAAO9uF,EAAI8uF,KAAO,SAAUplF,GAC9B,OAAO1J,EAAI8uF,KAAK5wF,KAAKwL,IACnB,SAAUA,GACZ,OAAO1J,EAAIic,OAAOhY,MAAM,GAAIyF,IAE1B4X,EAAOthB,EAAIshB,KACX5a,EAAU1G,EAAI0G,QACdqoF,EAAa,GACblsF,EAAWksF,EAAWlsF,SACtBmsF,EAASD,EAAWnvF,eACpBqvF,EAAaD,EAAOnsF,SACpBqsF,EAAuBD,EAAW/wF,KAAKO,QACvC0wF,EAAU,GAEVtnF,EAAa,SAAoBhH,GAQnC,MAAsB,oBAARA,GAA8C,kBAAjBA,EAAIuuF,UAA6C,oBAAbvuF,EAAIo9B,MAGjFoxD,EAAW,SAAkBxuF,GAC/B,OAAc,MAAPA,GAAeA,IAAQA,EAAIsC,QAGhC6/C,EAAW7/C,EAAO6/C,SAClBssC,EAA4B,CAC9B3qF,MAAM,EACNktE,KAAK,EACL0d,OAAO,EACPC,UAAU,GAGZ,SAASC,EAAQC,EAAMnyE,EAAMoyE,GAE3B,IAAI5xF,EACA2e,EACAkzE,GAHJD,EAAMA,GAAO3sC,GAGI6sC,cAAc,UAG/B,GAFAD,EAAOrqE,KAAOmqE,EAEVnyE,EACF,IAAKxf,KAAKuxF,GAWR5yE,EAAMa,EAAKxf,IAAMwf,EAAKinC,cAAgBjnC,EAAKinC,aAAazmD,KAGtD6xF,EAAO9qC,aAAa/mD,EAAG2e,GAK7BizE,EAAI1/C,KAAK6/C,YAAYF,GAAQ59D,WAAW+9D,YAAYH,GAGtD,SAASI,EAAOnvF,GACd,OAAW,MAAPA,EACKA,EAAM,GAIS,WAAjBG,EAAQH,IAAoC,oBAARA,EAAqBkuF,EAAWlsF,EAAS3E,KAAK2C,KAAS,SAAWG,EAAQH,GAOvH,IAAI8jE,EAAU,QAEdsrB,EAAS,SAASA,EAAOC,EAAU7xE,GAGjC,OAAO,IAAI4xE,EAAO1sF,GAAG66D,KAAK8xB,EAAU7xE,IAiTtC,SAAS8xE,EAAYtvF,GAKnB,IAAIW,IAAWX,GAAO,WAAYA,GAAOA,EAAIW,OACzCmD,EAAOqrF,EAAOnvF,GAElB,OAAIgH,EAAWhH,KAAQwuF,EAASxuF,KAIhB,UAAT8D,GAA+B,IAAXnD,GAAkC,kBAAXA,GAAuBA,EAAS,GAAKA,EAAS,KAAKX,GA1TvGovF,EAAO1sF,GAAK0sF,EAAOtwF,UAAY,CAE7BywF,OAAQzrB,EACR1jE,YAAagvF,EAEbzuF,OAAQ,EACR6uF,QAAS,WACP,OAAOxB,EAAO3wF,KAAK0d,OAIrBhd,IAAK,SAAaw3B,GAEhB,OAAW,MAAPA,EACKy4D,EAAO3wF,KAAK0d,MAIdwa,EAAM,EAAIxa,KAAKwa,EAAMxa,KAAKpa,QAAUoa,KAAKwa,IAIlDk6D,UAAW,SAAmBC,GAE5B,IAAI10E,EAAMo0E,EAAOlpF,MAAM6U,KAAK3a,cAAesvF,GAI3C,OAFA10E,EAAI20E,WAAa50E,KAEVC,GAGTrW,KAAM,SAAcpC,GAClB,OAAO6sF,EAAOzqF,KAAKoW,KAAMxY,IAE3BkD,IAAK,SAAalD,GAChB,OAAOwY,KAAK00E,UAAUL,EAAO3pF,IAAIsV,MAAM,SAAU60E,EAAM1yF,GACrD,OAAOqF,EAASlF,KAAKuyF,EAAM1yF,EAAG0yF,QAGlC3tF,MAAO,WACL,OAAO8Y,KAAK00E,UAAUzB,EAAO5qF,MAAM2X,KAAM9X,aAE3CqjD,MAAO,WACL,OAAOvrC,KAAK7N,GAAG,IAEjByiC,KAAM,WACJ,OAAO50B,KAAK7N,IAAI,IAElB2iF,KAAM,WACJ,OAAO90E,KAAK00E,UAAUL,EAAOU,KAAK/0E,MAAM,SAAUg1E,EAAO7yF,GACvD,OAAQA,EAAI,GAAK,OAGrB8yF,IAAK,WACH,OAAOj1E,KAAK00E,UAAUL,EAAOU,KAAK/0E,MAAM,SAAUg1E,EAAO7yF,GACvD,OAAOA,EAAI,OAGfgQ,GAAI,SAAYhQ,GACd,IAAIiF,EAAM4Y,KAAKpa,OACX+Y,GAAKxc,GAAKA,EAAI,EAAIiF,EAAM,GAC5B,OAAO4Y,KAAK00E,UAAU/1E,GAAK,GAAKA,EAAIvX,EAAM,CAAC4Y,KAAKrB,IAAM,KAExDjW,IAAK,WACH,OAAOsX,KAAK40E,YAAc50E,KAAK3a,eAIjCqgB,KAAMA,EACNssB,KAAM5tC,EAAI4tC,KACV3rB,OAAQjiB,EAAIiiB,QAGdguE,EAAOa,OAASb,EAAO1sF,GAAGutF,OAAS,WACjC,IAAIlqF,EACAtI,EACAuzE,EACAkf,EACAC,EACA51E,EACA9Z,EAASwC,UAAU,IAAM,GACzB/F,EAAI,EACJyD,EAASsC,UAAUtC,OACnByvF,GAAO,EAoBX,IAlBsB,mBAAX3vF,IACT2vF,EAAO3vF,EAEPA,EAASwC,UAAU/F,IAAM,GACzBA,KAIsB,WAApBiD,EAAQM,IAAyBuG,EAAWvG,KAC9CA,EAAS,IAIPvD,IAAMyD,IACRF,EAASsa,KACT7d,KAGKA,EAAIyD,EAAQzD,IAEjB,GAAgC,OAA3B6I,EAAU9C,UAAU/F,IAEvB,IAAKO,KAAQsI,EACXmqF,EAAOnqF,EAAQtI,GAGF,cAATA,GAAwBgD,IAAWyvF,IAKnCE,GAAQF,IAASd,EAAOiB,cAAcH,KAAUC,EAAc/wF,MAAMC,QAAQ6wF,MAC9Elf,EAAMvwE,EAAOhD,GAGX8c,EADE41E,IAAgB/wF,MAAMC,QAAQ2xE,GACxB,GACEmf,GAAgBf,EAAOiB,cAAcrf,GAGvCA,EAFA,GAKVmf,GAAc,EAEd1vF,EAAOhD,GAAQ2xF,EAAOa,OAAOG,EAAM71E,EAAO21E,SACxBliF,IAATkiF,IACTzvF,EAAOhD,GAAQyyF,IAOvB,OAAOzvF,GAGT2uF,EAAOa,OAAO,CAEZK,QAAS,UAAYxsB,EAAU58D,KAAKqpF,UAAUx2E,QAAQ,MAAO,IAE7Dy2E,SAAS,EACTp0B,MAAO,SAAeq0B,GACpB,MAAM,IAAIllE,MAAMklE,IAElB/sF,KAAM,aACN2sF,cAAe,SAAuBrwF,GACpC,IAAIwa,EAAOk2E,EAGX,SAAK1wF,GAA8B,oBAAvBgC,EAAS3E,KAAK2C,QAI1Bwa,EAAQuzE,EAAS/tF,KAQM,oBADvB0wF,EAAOvC,EAAO9wF,KAAKmd,EAAO,gBAAkBA,EAAMpa,cACbguF,EAAW/wF,KAAKqzF,KAAUrC,IAEjEsC,cAAe,SAAuB3wF,GACpC,IAAIvC,EAEJ,IAAKA,KAAQuC,EACX,OAAO,EAGT,OAAO,GAIT4wF,WAAY,SAAoB/B,EAAM9oF,EAAS+oF,GAC7CF,EAAQC,EAAM,CACZH,MAAO3oF,GAAWA,EAAQ2oF,OACzBI,IAELnqF,KAAM,SAAc3E,EAAKuC,GACvB,IAAI5B,EACAzD,EAAI,EAER,GAAIoyF,EAAYtvF,GAGd,IAFAW,EAASX,EAAIW,OAENzD,EAAIyD,IACgC,IAArC4B,EAASlF,KAAK2C,EAAI9C,GAAIA,EAAG8C,EAAI9C,IADhBA,UAMnB,IAAKA,KAAK8C,EACR,IAAyC,IAArCuC,EAASlF,KAAK2C,EAAI9C,GAAIA,EAAG8C,EAAI9C,IAC/B,MAKN,OAAO8C,GAGT6wF,UAAW,SAAmB1xF,EAAK2xF,GACjC,IAAI91E,EAAM81E,GAAW,GAUrB,OARW,MAAP3xF,IACEmwF,EAAY1xF,OAAOuB,IACrBiwF,EAAOlpF,MAAM8U,EAAoB,kBAAR7b,EAAmB,CAACA,GAAOA,GAEpDshB,EAAKpjB,KAAK2d,EAAK7b,IAIZ6b,GAET+1E,QAAS,SAAiBnB,EAAMzwF,EAAKjC,GACnC,OAAc,MAAPiC,GAAe,EAAI0G,EAAQxI,KAAK8B,EAAKywF,EAAM1yF,IAIpDgJ,MAAO,SAAeogD,EAAOwhC,GAK3B,IAJA,IAAI3lF,GAAO2lF,EAAOnnF,OACd+Y,EAAI,EACJxc,EAAIopD,EAAM3lD,OAEP+Y,EAAIvX,EAAKuX,IACd4sC,EAAMppD,KAAO4qF,EAAOpuE,GAItB,OADA4sC,EAAM3lD,OAASzD,EACRopD,GAETwpC,KAAM,SAAcJ,EAAOntF,EAAUyuF,GAQnC,IAPA,IACInqE,EAAU,GACV3pB,EAAI,EACJyD,EAAS+uF,EAAM/uF,OACfswF,GAAkBD,EAGf9zF,EAAIyD,EAAQzD,KACEqF,EAASmtF,EAAMxyF,GAAIA,KAEd+zF,GACtBpqE,EAAQpG,KAAKivE,EAAMxyF,IAIvB,OAAO2pB,GAGTphB,IAAK,SAAaiqF,EAAOntF,EAAUkzD,GACjC,IAAI90D,EACAxC,EACAjB,EAAI,EACJ8d,EAAM,GAEV,GAAIs0E,EAAYI,GAGd,IAFA/uF,EAAS+uF,EAAM/uF,OAERzD,EAAIyD,EAAQzD,IAGJ,OAFbiB,EAAQoE,EAASmtF,EAAMxyF,GAAIA,EAAGu4D,KAG5Bz6C,EAAIyF,KAAKtiB,QAKb,IAAKjB,KAAKwyF,EAGK,OAFbvxF,EAAQoE,EAASmtF,EAAMxyF,GAAIA,EAAGu4D,KAG5Bz6C,EAAIyF,KAAKtiB,GAMf,OAAO8vF,EAAKjzE,IAGdk2E,KAAM,EAGN5C,QAASA,IAGW,oBAAXrwF,SACTmxF,EAAO1sF,GAAGzE,OAAOwB,UAAYN,EAAIlB,OAAOwB,WAI1C2vF,EAAOzqF,KAAK,uEAAuEgY,MAAM,MAAM,SAAU8e,EAAIh+B,GAC3GywF,EAAW,WAAazwF,EAAO,KAAOA,EAAK0c,iBAkB7C,IAAIg3E,EAWJ,SAAU7uF,GACR,IAAIpF,EACAoxF,EACA8C,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEJC,EACI1vC,EACA2vC,EACAC,EACAC,EACAC,EACAprE,EACAqrE,EAEJ5B,EAAU,SAAW,EAAI,IAAItzD,KACzBm1D,EAAe7vF,EAAO6/C,SACtBiwC,EAAU,EACVhxF,EAAO,EACPixF,EAAaC,KACbC,EAAaD,KACbE,EAAgBF,KAChBG,EAAyBH,KACzBI,EAAY,SAAmBhpF,EAAGC,GAKpC,OAJID,IAAMC,IACRioF,GAAe,GAGV,GAGTzD,EAAS,GAAGpvF,eACRI,EAAM,GACNs+B,EAAMt+B,EAAIs+B,IACVk1D,EAAaxzF,EAAIshB,KACjBA,EAAOthB,EAAIshB,KACXxe,EAAQ9C,EAAI8C,MAGhB4D,EAAU,SAAiB+sF,EAAMhD,GAI/B,IAHA,IAAI1yF,EAAI,EACJiF,EAAMywF,EAAKjyF,OAERzD,EAAIiF,EAAKjF,IACd,GAAI01F,EAAK11F,KAAO0yF,EACd,OAAO1yF,EAIX,OAAQ,GAEN21F,EAAW,6HAGfC,EAAa,sBAEbC,EAAa,oFAEbC,EAAa,2BAA4BD,EAAa,OAASD,EAC/D,gBAAkBA,EAElB,2DAA6DC,EAAa,OAASD,EAAa,OAC5FG,EAAU,KAAOF,EAAP,wFAGeC,EAHf,eAMdE,EAAc,IAAIxsE,OAAOosE,EAAa,IAAK,KACvCK,EAAQ,IAAIzsE,OAAO,uEAAsE,KACzF0sE,EAAS,IAAI1sE,OAAO,8CACpB2sE,EAAe,IAAI3sE,OAAO,wEAC1B4sE,EAAW,IAAI5sE,OAAOosE,EAAa,MACnCS,EAAU,IAAI7sE,OAAOusE,GACrBO,EAAc,IAAI9sE,OAAO,IAAMqsE,EAAa,KAC5CU,EAAY,CACd,GAAM,IAAI/sE,OAAO,MAAQqsE,EAAa,KACtC,MAAS,IAAIrsE,OAAO,QAAUqsE,EAAa,KAC3C,IAAO,IAAIrsE,OAAO,KAAOqsE,EAAa,SACtC,KAAQ,IAAIrsE,OAAO,IAAMssE,GACzB,OAAU,IAAItsE,OAAO,IAAMusE,GAC3B,MAAS,IAAIvsE,OAAO,4LAAyL,KAC7M,KAAQ,IAAIA,OAAO,OAASmsE,EAAW,KAAM,KAG7C,aAAgB,IAAInsE,OAAO,6IAA2I,MAEpKgtE,EAAQ,SACRC,EAAU,sCACVC,EAAU,SACVC,EAAU,yBAEdC,EAAa,mCACTC,GAAW,OAGfC,GAAY,IAAIttE,OAAO,8DAA8D,KACjFutE,GAAY,SAAmBC,EAAQC,GACzC,IAAIC,EAAO,KAAOF,EAAOjyF,MAAM,GAAK,MACpC,OAAOkyF,IAKPC,EAAO,EAAI7b,OAAO8b,aAAaD,EAAO,OAAW7b,OAAO8b,aAAaD,GAAQ,GAAK,MAAe,KAAPA,EAAe,SAI3GE,GAAa,sDACTC,GAAa,SAAoBC,EAAIC,GACvC,OAAIA,EAES,OAAPD,EACK,SAIFA,EAAGvyF,MAAM,GAAI,GAAK,KAAOuyF,EAAGE,WAAWF,EAAG7zF,OAAS,GAAGqB,SAAS,IAAM,IAIvE,KAAOwyF,GAMhBG,GAAgB,WACd9C,KAEE+C,GAAqBC,IAAc,SAAUjF,GAC/C,OAAyB,IAAlBA,EAAKnlD,UAAqD,aAAhCmlD,EAAKkF,SAAS36E,gBAC9C,CACD46E,IAAK,aACLnzF,KAAM,WAIR,IACE6e,EAAKrd,MAAMjE,EAAM8C,EAAM5E,KAAK80F,EAAa6C,YAAa7C,EAAa6C,YAInE71F,EAAIgzF,EAAa6C,WAAWr0F,QAAQ4tF,SACpC,MAAOltF,IACPof,EAAO,CACLrd,MAAOjE,EAAIwB,OACX,SAAUF,EAAQw0F,GAChBtC,EAAWvvF,MAAM3C,EAAQwB,EAAM5E,KAAK43F,KAGtC,SAAUx0F,EAAQw0F,GAIhB,IAHA,IAAIv7E,EAAIjZ,EAAOE,OACXzD,EAAI,EAEDuD,EAAOiZ,KAAOu7E,EAAI/3F,OAEzBuD,EAAOE,OAAS+Y,EAAI,IAK1B,SAASy3E,GAAO9B,EAAU7xE,EAASszE,EAASoE,GAC1C,IAAI53F,EACAJ,EACA0yF,EACAuF,EACAruE,EACAsuE,EACAC,EACAC,EAAa93E,GAAWA,EAAQ+3E,cAEpChH,EAAW/wE,EAAUA,EAAQ+wE,SAAW,EAGxC,GAFAuC,EAAUA,GAAW,GAEG,kBAAbzB,IAA0BA,GAAyB,IAAbd,GAA+B,IAAbA,GAA+B,KAAbA,EACnF,OAAOuC,EAIT,IAAKoE,IACHrD,EAAYr0E,GACZA,EAAUA,GAAW2kC,EAEjB4vC,GAAgB,CAGlB,GAAiB,KAAbxD,IAAoBznE,EAAQgtE,EAAWplF,KAAK2gF,IAE9C,GAAI/xF,EAAIwpB,EAAM,IAEZ,GAAiB,IAAbynE,EAAgB,CAClB,KAAIqB,EAAOpyE,EAAQi9C,eAAen9D,IAShC,OAAOwzF,EALP,GAAIlB,EAAKjsF,KAAOrG,EAEd,OADAwzF,EAAQrwE,KAAKmvE,GACNkB,OAUX,GAAIwE,IAAe1F,EAAO0F,EAAW76B,eAAen9D,KAAO40F,EAAS10E,EAASoyE,IAASA,EAAKjsF,KAAOrG,EAEhG,OADAwzF,EAAQrwE,KAAKmvE,GACNkB,MAIN,IAAIhqE,EAAM,GAEf,OADArG,EAAKrd,MAAM0tF,EAAStzE,EAAQg4E,qBAAqBnG,IAC1CyB,EACF,IAAKxzF,EAAIwpB,EAAM,KAAOwnE,EAAQmH,wBAA0Bj4E,EAAQi4E,uBAErE,OADAh1E,EAAKrd,MAAM0tF,EAAStzE,EAAQi4E,uBAAuBn4F,IAC5CwzF,EAKX,GAAIxC,EAAQoH,MAAQjD,EAAuBpD,EAAW,QAAU2C,IAAcA,EAAU9vF,KAAKmtF,MAEhF,IAAbd,GAAqD,WAAnC/wE,EAAQs3E,SAAS36E,eAA6B,CAU9D,GATAk7E,EAAchG,EACdiG,EAAa93E,EAQI,IAAb+wE,IAAmB+E,EAASpxF,KAAKmtF,IAAagE,EAAanxF,KAAKmtF,IAAY,CAkB9E,KAhBAiG,EAAavB,GAAS7xF,KAAKmtF,IAAasG,GAAYn4E,EAAQ2T,aAAe3T,KAGxDA,GAAY8wE,EAAQxxE,SAEjCq4E,EAAM33E,EAAQmmC,aAAa,OAC7BwxC,EAAMA,EAAIp7E,QAAQu6E,GAAYC,IAE9B/2E,EAAQymC,aAAa,KAAMkxC,EAAM7E,IAMrCpzF,GADAk4F,EAAS7D,EAASlC,IACP1uF,OAEJzD,KACLk4F,EAAOl4F,IAAMi4F,EAAM,IAAMA,EAAM,UAAY,IAAMS,GAAWR,EAAOl4F,IAGrEm4F,EAAcD,EAAO5pE,KAAK,KAG5B,IAEE,OADA/K,EAAKrd,MAAM0tF,EAASwE,EAAWO,iBAAiBR,IACzCvE,EACP,MAAOgF,GACPrD,EAAuBpD,GAAU,GACjC,QACI8F,IAAQ7E,GACV9yE,EAAQwmC,gBAAgB,QAQlC,OAAOytC,EAAOpC,EAASt1E,QAAQo5E,EAAO,MAAO31E,EAASszE,EAASoE,GAUjE,SAAS5C,KACP,IAAIxtF,EAAO,GAYX,OAVA,SAAS8b,EAAMniB,EAAKN,GAOlB,OALI2G,EAAK2b,KAAKhiB,EAAM,KAAO2yF,EAAK2E,oBAEvBn1E,EAAM9b,EAAK4/B,SAGb9jB,EAAMniB,EAAM,KAAON,GAW9B,SAAS63F,GAAatzF,GAEpB,OADAA,EAAG4tF,IAAW,EACP5tF,EAQT,SAASuzF,GAAOvzF,GACd,IAAIkyB,EAAKutB,EAAS6sC,cAAc,YAEhC,IACE,QAAStsF,EAAGkyB,GACZ,MAAOvzB,IACP,OAAO,EACP,QAEIuzB,EAAGzD,YACLyD,EAAGzD,WAAW+9D,YAAYt6D,GAI5BA,EAAK,MAUT,SAASshE,GAAUC,EAAO56C,GAIxB,IAHA,IAAIp8C,EAAMg3F,EAAMx5E,MAAM,KAClBzf,EAAIiC,EAAIwB,OAELzD,KACLk0F,EAAKgF,WAAWj3F,EAAIjC,IAAMq+C,EAW9B,SAAS86C,GAAa3sF,EAAGC,GACvB,IAAIy0B,EAAMz0B,GAAKD,EACXi9C,EAAOvoB,GAAsB,IAAf10B,EAAE6kF,UAAiC,IAAf5kF,EAAE4kF,UAAkB7kF,EAAE4sF,YAAc3sF,EAAE2sF,YAE5E,GAAI3vC,EACF,OAAOA,EAIT,GAAIvoB,EACF,KAAOA,EAAMA,EAAIm4D,aACf,GAAIn4D,IAAQz0B,EACV,OAAQ,EAKd,OAAOD,EAAI,GAAK,EAQlB,SAAS8sF,GAAkB1yF,GACzB,OAAO,SAAU8rF,GAEf,MAAgB,UADLA,EAAKkF,SAAS36E,eACEy1E,EAAK9rF,OAASA,GAS7C,SAAS2yF,GAAmB3yF,GAC1B,OAAO,SAAU8rF,GACf,IAAInyF,EAAOmyF,EAAKkF,SAAS36E,cACzB,OAAiB,UAAT1c,GAA6B,WAATA,IAAsBmyF,EAAK9rF,OAASA,GASpE,SAAS4yF,GAAqBjsD,GAE5B,OAAO,SAAUmlD,GAIf,MAAI,SAAUA,EAQRA,EAAKz+D,aAAgC,IAAlBy+D,EAAKnlD,SAEtB,UAAWmlD,EACT,UAAWA,EAAKz+D,WACXy+D,EAAKz+D,WAAWsZ,WAAaA,EAE7BmlD,EAAKnlD,WAAaA,EAMtBmlD,EAAK+G,aAAelsD,GAG3BmlD,EAAK+G,cAAgBlsD,GAAYmqD,GAAmBhF,KAAUnlD,EAGzDmlD,EAAKnlD,WAAaA,EAGhB,UAAWmlD,GACbA,EAAKnlD,WAAaA,GAa/B,SAASmsD,GAAuBl0F,GAC9B,OAAOszF,IAAa,SAAUa,GAE5B,OADAA,GAAYA,EACLb,IAAa,SAAUd,EAAMruE,GAKlC,IAJA,IAAInN,EACAo9E,EAAep0F,EAAG,GAAIwyF,EAAKv0F,OAAQk2F,GACnC35F,EAAI45F,EAAan2F,OAEdzD,KACDg4F,EAAKx7E,EAAIo9E,EAAa55F,MACxBg4F,EAAKx7E,KAAOmN,EAAQnN,GAAKw7E,EAAKx7E,WAaxC,SAASi8E,GAAYn4E,GACnB,OAAOA,GAAmD,qBAAjCA,EAAQg4E,sBAAwCh4E,EAi/B3E,IAAKtgB,KA7+BLoxF,EAAU6C,GAAO7C,QAAU,GAO3BgD,EAAQH,GAAOG,MAAQ,SAAU1B,GAC/B,IAAImH,EAAYnH,GAAQA,EAAKoH,aACzBlF,EAAUlC,IAASA,EAAK2F,eAAiB3F,GAAMqH,gBAInD,OAAQvD,EAAMxxF,KAAK60F,GAAajF,GAAWA,EAAQgD,UAAY,SASjEjD,EAAcV,GAAOU,YAAc,SAAUn1E,GAC3C,IAAIw6E,EACAC,EACArI,EAAMpyE,EAAOA,EAAK64E,eAAiB74E,EAAOy1E,EAM9C,OAAIrD,GAAO3sC,GAA6B,IAAjB2sC,EAAIP,UAAmBO,EAAImI,iBAMlDnF,GADA3vC,EAAW2sC,GACQmI,gBACnBlF,GAAkBT,EAAMnvC,GAOpBgwC,GAAgBhwC,IAAag1C,EAAYh1C,EAASi1C,cAAgBD,EAAUzzE,MAAQyzE,IAElFA,EAAU1iE,iBACZ0iE,EAAU1iE,iBAAiB,SAAUkgE,IAAe,GAC3CwC,EAAUE,aACnBF,EAAUE,YAAY,WAAY1C,KAStCrG,EAAQxxE,MAAQm5E,IAAO,SAAUrhE,GAE/B,OADAk9D,EAAQ7C,YAAYr6D,GAAIq6D,YAAY9sC,EAAS6sC,cAAc,QACrB,qBAAxBp6D,EAAGihE,mBAAqCjhE,EAAGihE,iBAAiB,uBAAuBl1F,UAQnG2tF,EAAQ0E,WAAaiD,IAAO,SAAUrhE,GAEpC,OADAA,EAAG0iE,UAAY,KACP1iE,EAAG+uB,aAAa,gBAM1B2qC,EAAQkH,qBAAuBS,IAAO,SAAUrhE,GAE9C,OADAA,EAAGq6D,YAAY9sC,EAASo1C,cAAc,MAC9B3iE,EAAG4gE,qBAAqB,KAAK70F,UAGvC2tF,EAAQmH,uBAAyB5B,EAAQ3xF,KAAKigD,EAASszC,wBAKvDnH,EAAQkJ,QAAUvB,IAAO,SAAUrhE,GAEjC,OADAk9D,EAAQ7C,YAAYr6D,GAAIjxB,GAAK2sF,GACrBnuC,EAASs1C,oBAAsBt1C,EAASs1C,kBAAkBnH,GAAS3vF,UAGzE2tF,EAAQkJ,SACVpG,EAAKvlE,OAAW,GAAI,SAAUloB,GAC5B,IAAI+zF,EAAS/zF,EAAGoW,QAAQi6E,GAAWC,IACnC,OAAO,SAAUrE,GACf,OAAOA,EAAKjsC,aAAa,QAAU+zC,IAIvCtG,EAAKuG,KAAS,GAAI,SAAUh0F,EAAI6Z,GAC9B,GAAsC,qBAA3BA,EAAQi9C,gBAAkCs3B,EAAgB,CACnE,IAAInC,EAAOpyE,EAAQi9C,eAAe92D,GAClC,OAAOisF,EAAO,CAACA,GAAQ,OAI3BwB,EAAKvlE,OAAW,GAAI,SAAUloB,GAC5B,IAAI+zF,EAAS/zF,EAAGoW,QAAQi6E,GAAWC,IACnC,OAAO,SAAUrE,GACf,IAAIlzE,EAAwC,qBAA1BkzE,EAAKgI,kBAAoChI,EAAKgI,iBAAiB,MACjF,OAAOl7E,GAAQA,EAAKve,QAAUu5F,IAMlCtG,EAAKuG,KAAS,GAAI,SAAUh0F,EAAI6Z,GAC9B,GAAsC,qBAA3BA,EAAQi9C,gBAAkCs3B,EAAgB,CACnE,IAAIr1E,EACAxf,EACAwyF,EACAE,EAAOpyE,EAAQi9C,eAAe92D,GAElC,GAAIisF,EAAM,CAIR,IAFAlzE,EAAOkzE,EAAKgI,iBAAiB,QAEjBl7E,EAAKve,QAAUwF,EACzB,MAAO,CAACisF,GAOV,IAHAF,EAAQlyE,EAAQi6E,kBAAkB9zF,GAClCzG,EAAI,EAEG0yF,EAAOF,EAAMxyF,MAGlB,IAFAwf,EAAOkzE,EAAKgI,iBAAiB,QAEjBl7E,EAAKve,QAAUwF,EACzB,MAAO,CAACisF,GAKd,MAAO,MAMbwB,EAAKuG,KAAU,IAAIrJ,EAAQkH,qBAAuB,SAAUqC,EAAKr6E,GAC/D,MAA4C,qBAAjCA,EAAQg4E,qBACVh4E,EAAQg4E,qBAAqBqC,GAC3BvJ,EAAQoH,IACVl4E,EAAQq4E,iBAAiBgC,QAD3B,GAGL,SAAUA,EAAKr6E,GACjB,IAAIoyE,EACAt1E,EAAM,GACNpd,EAAI,EAER4zF,EAAUtzE,EAAQg4E,qBAAqBqC,GAEvC,GAAY,MAARA,EAAa,CACf,KAAOjI,EAAOkB,EAAQ5zF,MACE,IAAlB0yF,EAAKrB,UACPj0E,EAAImG,KAAKmvE,GAIb,OAAOt1E,EAGT,OAAOw2E,GAGTM,EAAKuG,KAAY,MAAIrJ,EAAQmH,wBAA0B,SAAU6B,EAAW95E,GAC1E,GAA8C,qBAAnCA,EAAQi4E,wBAA0C1D,EAC3D,OAAOv0E,EAAQi4E,uBAAuB6B,IAS1CrF,EAAgB,GAMhBD,EAAY,IAER1D,EAAQoH,IAAM7B,EAAQ3xF,KAAKigD,EAAS0zC,qBAGtCI,IAAO,SAAUrhE,GACf,IAAIja,EAMJm3E,EAAQ7C,YAAYr6D,GAAIkjE,UAAY,UAAYxH,EAAZ,qBAAkDA,EAAlD,kEAKhC17D,EAAGihE,iBAAiB,wBAAwBl1F,QAC9CqxF,EAAUvxE,KAAK,yCAKZmU,EAAGihE,iBAAiB,cAAcl1F,QACrCqxF,EAAUvxE,KAAK,mCAAoCoyE,EAAW,KAI3Dj+D,EAAGihE,iBAAiB,QAAUvF,EAAU,MAAM3vF,QACjDqxF,EAAUvxE,KAAK,OAQjB9F,EAAQwnC,EAAS6sC,cAAc,UACzB/qC,aAAa,OAAQ,IAC3BrvB,EAAGq6D,YAAYt0E,GAEVia,EAAGihE,iBAAiB,aAAal1F,QACpCqxF,EAAUvxE,KAAK,mFAMZmU,EAAGihE,iBAAiB,YAAYl1F,QACnCqxF,EAAUvxE,KAAK,YAMZmU,EAAGihE,iBAAiB,KAAOvF,EAAU,MAAM3vF,QAC9CqxF,EAAUvxE,KAAK,YAKjBmU,EAAGihE,iBAAiB,QACpB7D,EAAUvxE,KAAK,kBAEjBw1E,IAAO,SAAUrhE,GACfA,EAAGkjE,UAAY,oFAGf,IAAIn9E,EAAQwnC,EAAS6sC,cAAc,SACnCr0E,EAAMspC,aAAa,OAAQ,UAC3BrvB,EAAGq6D,YAAYt0E,GAAOspC,aAAa,OAAQ,KAGvCrvB,EAAGihE,iBAAiB,YAAYl1F,QAClCqxF,EAAUvxE,KAAK,sCAK8B,IAA3CmU,EAAGihE,iBAAiB,YAAYl1F,QAClCqxF,EAAUvxE,KAAK,WAAY,aAK7BqxE,EAAQ7C,YAAYr6D,GAAI6V,UAAW,EAEa,IAA5C7V,EAAGihE,iBAAiB,aAAal1F,QACnCqxF,EAAUvxE,KAAK,WAAY,aAK7BmU,EAAGihE,iBAAiB,QACpB7D,EAAUvxE,KAAK,aAIf6tE,EAAQyJ,gBAAkBlE,EAAQ3xF,KAAK2kB,EAAUirE,EAAQjrE,SAAWirE,EAAQkG,uBAAyBlG,EAAQmG,oBAAsBnG,EAAQoG,kBAAoBpG,EAAQqG,qBACzKlC,IAAO,SAAUrhE,GAGf05D,EAAQ8J,kBAAoBvxE,EAAQxpB,KAAKu3B,EAAI,KAG7C/N,EAAQxpB,KAAKu3B,EAAI,aACjBq9D,EAAcxxE,KAAK,KAAMwyE,MAI7BjB,EAAYA,EAAUrxF,QAAU,IAAI+lB,OAAOsrE,EAAUxmE,KAAK,MAC1DymE,EAAgBA,EAActxF,QAAU,IAAI+lB,OAAOurE,EAAczmE,KAAK,MAItE0rE,EAAarD,EAAQ3xF,KAAK4vF,EAAQuG,yBAIlCnG,EAAWgF,GAAcrD,EAAQ3xF,KAAK4vF,EAAQI,UAAY,SAAUxoF,EAAGC,GACrE,IAAI2uF,EAAuB,IAAf5uF,EAAE6kF,SAAiB7kF,EAAEutF,gBAAkBvtF,EAC/C6uF,EAAM5uF,GAAKA,EAAEwnB,WACjB,OAAOznB,IAAM6uF,MAAUA,GAAwB,IAAjBA,EAAIhK,YAAmB+J,EAAMpG,SAAWoG,EAAMpG,SAASqG,GAAO7uF,EAAE2uF,yBAA4D,GAAjC3uF,EAAE2uF,wBAAwBE,MACjJ,SAAU7uF,EAAGC,GACf,GAAIA,EACF,KAAOA,EAAIA,EAAEwnB,YACX,GAAIxnB,IAAMD,EACR,OAAO,EAKb,OAAO,GAMTgpF,EAAYwE,EAAa,SAAUxtF,EAAGC,GAEpC,GAAID,IAAMC,EAER,OADAioF,GAAe,EACR,EAIT,IAAIv6D,GAAW3tB,EAAE2uF,yBAA2B1uF,EAAE0uF,wBAE9C,OAAIhhE,IAYU,GAHdA,GAAW3tB,EAAE6rF,eAAiB7rF,KAAOC,EAAE4rF,eAAiB5rF,GAAKD,EAAE2uF,wBAAwB1uF,GACvF,KAEoB2kF,EAAQkK,cAAgB7uF,EAAE0uF,wBAAwB3uF,KAAO2tB,EAMvE3tB,GAAKy4C,GAAYz4C,EAAE6rF,eAAiBpD,GAAgBD,EAASC,EAAczoF,IACrE,EAONC,GAAKw4C,GAAYx4C,EAAE4rF,eAAiBpD,GAAgBD,EAASC,EAAcxoF,GACtE,EAIFgoF,EAAY9rF,EAAQ8rF,EAAWjoF,GAAK7D,EAAQ8rF,EAAWhoF,GAAK,EAGpD,EAAV0tB,GAAe,EAAI,IACxB,SAAU3tB,EAAGC,GAEf,GAAID,IAAMC,EAER,OADAioF,GAAe,EACR,EAGT,IAAIxzD,EACAlhC,EAAI,EACJu7F,EAAM/uF,EAAEynB,WACRonE,EAAM5uF,EAAEwnB,WACRunE,EAAK,CAAChvF,GACNivF,EAAK,CAAChvF,GAEV,IAAK8uF,IAAQF,EAMX,OAAO7uF,GAAKy4C,GAAY,EAAIx4C,GAAKw4C,EAAW,EAE5Cs2C,GAAO,EAAIF,EAAM,EAAI5G,EAAY9rF,EAAQ8rF,EAAWjoF,GAAK7D,EAAQ8rF,EAAWhoF,GAAK,EAC5E,GAAI8uF,IAAQF,EACjB,OAAOlC,GAAa3sF,EAAGC,GAMzB,IAFAy0B,EAAM10B,EAEC00B,EAAMA,EAAIjN,YACfunE,EAAGtqB,QAAQhwC,GAKb,IAFAA,EAAMz0B,EAECy0B,EAAMA,EAAIjN,YACfwnE,EAAGvqB,QAAQhwC,GAIb,KAAOs6D,EAAGx7F,KAAOy7F,EAAGz7F,IAClBA,IAGF,OAAOA,EACPm5F,GAAaqC,EAAGx7F,GAAIy7F,EAAGz7F,IAMvBw7F,EAAGx7F,IAAMi1F,GAAgB,EAAIwG,EAAGz7F,IAAMi1F,EAAe,EAErD,GAEKhwC,GAjZEA,GAoZXgvC,GAAOtqE,QAAU,SAAU+xE,EAAMh7E,GAC/B,OAAOuzE,GAAOyH,EAAM,KAAM,KAAMh7E,IAGlCuzE,GAAO4G,gBAAkB,SAAUnI,EAAMgJ,GAGvC,GAFA/G,EAAYjC,GAERtB,EAAQyJ,iBAAmBhG,IAAmBU,EAAuBmG,EAAO,QAAU3G,IAAkBA,EAAc/vF,KAAK02F,OAAY5G,IAAcA,EAAU9vF,KAAK02F,IACtK,IACE,IAAI59E,EAAM6L,EAAQxpB,KAAKuyF,EAAMgJ,GAE7B,GAAI59E,GAAOszE,EAAQ8J,mBAEnBxI,EAAKztC,UAAuC,KAA3BytC,EAAKztC,SAASosC,SAC7B,OAAOvzE,EAET,MAAO3Z,IACPoxF,EAAuBmG,GAAM,GAIjC,OAAOzH,GAAOyH,EAAMz2C,EAAU,KAAM,CAACytC,IAAOjvF,OAAS,GAGvDwwF,GAAOe,SAAW,SAAU10E,EAASoyE,GAUnC,OAJKpyE,EAAQ+3E,eAAiB/3E,IAAY2kC,GACxC0vC,EAAYr0E,GAGP00E,EAAS10E,EAASoyE,IAG3BuB,GAAO0H,KAAO,SAAUjJ,EAAMnyF,IAMvBmyF,EAAK2F,eAAiB3F,IAASztC,GAClC0vC,EAAYjC,GAGd,IAAIltF,EAAK0uF,EAAKgF,WAAW34F,EAAK0c,eAE9B0B,EAAMnZ,GAAMyrF,EAAO9wF,KAAK+zF,EAAKgF,WAAY34F,EAAK0c,eAAiBzX,EAAGktF,EAAMnyF,GAAOs0F,QAAkB/jF,EACjG,YAAeA,IAAR6N,EAAoBA,EAAMyyE,EAAQ0E,aAAejB,EAAiBnC,EAAKjsC,aAAalmD,IAASoe,EAAM+zE,EAAKgI,iBAAiBn6F,KAAUoe,EAAIi9E,UAAYj9E,EAAI1d,MAAQ,MAGxKgzF,GAAO+C,OAAS,SAAU6E,GACxB,OAAQA,EAAM,IAAIh/E,QAAQu6E,GAAYC,KAGxCpD,GAAO/0B,MAAQ,SAAUq0B,GACvB,MAAM,IAAIllE,MAAM,0CAA4CklE,IAQ9DU,GAAO6H,WAAa,SAAUlI,GAC5B,IAAIlB,EACAqJ,EAAa,GACbv/E,EAAI,EACJxc,EAAI,EAMR,GAJA00F,GAAgBtD,EAAQ4K,iBACxBvH,GAAarD,EAAQ6K,YAAcrI,EAAQ7uF,MAAM,GACjD6uF,EAAQ/jD,KAAK2lD,GAETd,EAAc,CAChB,KAAOhC,EAAOkB,EAAQ5zF,MAChB0yF,IAASkB,EAAQ5zF,KACnBwc,EAAIu/E,EAAWx4E,KAAKvjB,IAIxB,KAAOwc,KACLo3E,EAAQ1vE,OAAO63E,EAAWv/E,GAAI,GAOlC,OADAi4E,EAAY,KACLb,GAQTO,EAAUF,GAAOE,QAAU,SAAUzB,GACnC,IAAIlzE,EACA1B,EAAM,GACN9d,EAAI,EACJqxF,EAAWqB,EAAKrB,SAEpB,GAAKA,GAME,GAAiB,IAAbA,GAA+B,IAAbA,GAA+B,KAAbA,EAAiB,CAG9D,GAAgC,kBAArBqB,EAAKwJ,YACd,OAAOxJ,EAAKwJ,YAGZ,IAAKxJ,EAAOA,EAAKyJ,WAAYzJ,EAAMA,EAAOA,EAAK2G,YAC7Cv7E,GAAOq2E,EAAQzB,QAGd,GAAiB,IAAbrB,GAA+B,IAAbA,EAC3B,OAAOqB,EAAK0J,eAhBZ,KAAO58E,EAAOkzE,EAAK1yF,MAEjB8d,GAAOq2E,EAAQ30E,GAkBnB,OAAO1B,IAGTo2E,EAAOD,GAAOoI,UAAY,CAExBxD,YAAa,GACbyD,aAAcxD,GACdlvE,MAAO2sE,EACP2C,WAAY,GACZuB,KAAM,GACN8B,SAAU,CACR,IAAK,CACH1E,IAAK,aACLzuC,OAAO,GAET,IAAK,CACHyuC,IAAK,cAEP,IAAK,CACHA,IAAK,kBACLzuC,OAAO,GAET,IAAK,CACHyuC,IAAK,oBAGT2E,UAAW,CACT,KAAQ,SAAc5yE,GASpB,OARAA,EAAM,GAAKA,EAAM,GAAG/M,QAAQi6E,GAAWC,IAEvCntE,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAM,IAAI/M,QAAQi6E,GAAWC,IAEtD,OAAbntE,EAAM,KACRA,EAAM,GAAK,IAAMA,EAAM,GAAK,KAGvBA,EAAM7kB,MAAM,EAAG,IAExB,MAAS,SAAe6kB,GA2BtB,OAhBAA,EAAM,GAAKA,EAAM,GAAG3M,cAES,QAAzB2M,EAAM,GAAG7kB,MAAM,EAAG,IAEf6kB,EAAM,IACTqqE,GAAO/0B,MAAMt1C,EAAM,IAKrBA,EAAM,KAAOA,EAAM,GAAKA,EAAM,IAAMA,EAAM,IAAM,GAAK,GAAkB,SAAbA,EAAM,IAA8B,QAAbA,EAAM,KACvFA,EAAM,KAAOA,EAAM,GAAKA,EAAM,IAAmB,QAAbA,EAAM,KACjCA,EAAM,IACfqqE,GAAO/0B,MAAMt1C,EAAM,IAGdA,GAET,OAAU,SAAgBA,GACxB,IAAI6yE,EACAC,GAAY9yE,EAAM,IAAMA,EAAM,GAElC,OAAI2sE,EAAiB,MAAEvxF,KAAK4kB,EAAM,IACzB,MAILA,EAAM,GACRA,EAAM,GAAKA,EAAM,IAAMA,EAAM,IAAM,GAC1B8yE,GAAYrG,EAAQrxF,KAAK03F,KACpCD,EAASpI,EAASqI,GAAU,MAC5BD,EAASC,EAAS/zF,QAAQ,IAAK+zF,EAASj5F,OAASg5F,GAAUC,EAASj5F,UAElEmmB,EAAM,GAAKA,EAAM,GAAG7kB,MAAM,EAAG03F,GAC7B7yE,EAAM,GAAK8yE,EAAS33F,MAAM,EAAG03F,IAIxB7yE,EAAM7kB,MAAM,EAAG,MAG1B4pB,OAAQ,CACN,IAAO,SAAaguE,GAClB,IAAI/E,EAAW+E,EAAiB9/E,QAAQi6E,GAAWC,IAAW95E,cAC9D,MAA4B,MAArB0/E,EAA2B,WAChC,OAAO,GACL,SAAUjK,GACZ,OAAOA,EAAKkF,UAAYlF,EAAKkF,SAAS36E,gBAAkB26E,IAG5D,MAAS,SAAewC,GACtB,IAAIwC,EAAUzH,EAAWiF,EAAY,KACrC,OAAOwC,IAAYA,EAAU,IAAIpzE,OAAO,0BAA2B4wE,EAAY,IAAMxE,EAAa,SAAWT,EAAWiF,GAAW,SAAU1H,GAC3I,OAAOkK,EAAQ53F,KAA+B,kBAAnB0tF,EAAK0H,WAA0B1H,EAAK0H,WAA0C,qBAAtB1H,EAAKjsC,cAAgCisC,EAAKjsC,aAAa,UAAY,QAG1J,KAAQ,SAAclmD,EAAMs8F,EAAUC,GACpC,OAAO,SAAUpK,GACf,IAAI79D,EAASo/D,GAAO0H,KAAKjJ,EAAMnyF,GAE/B,OAAc,MAAVs0B,EACkB,OAAbgoE,GAGJA,IAILhoE,GAAU,GAGU,MAAbgoE,EAAmBhoE,IAAWioE,EAAqB,OAAbD,EAAoBhoE,IAAWioE,EAAqB,OAAbD,EAAoBC,GAAmC,IAA1BjoE,EAAOlsB,QAAQm0F,GAA4B,OAAbD,EAAoBC,GAASjoE,EAAOlsB,QAAQm0F,IAAU,EAAiB,OAAbD,EAAoBC,GAASjoE,EAAO9vB,OAAO+3F,EAAMr5F,UAAYq5F,EAAqB,OAAbD,GAAqB,IAAMhoE,EAAOhY,QAAQm5E,EAAa,KAAO,KAAKrtF,QAAQm0F,IAAU,EAAiB,OAAbD,IAAoBhoE,IAAWioE,GAASjoE,EAAO9vB,MAAM,EAAG+3F,EAAMr5F,OAAS,KAAOq5F,EAAQ,QAIjc,MAAS,SAAel2F,EAAMm2F,EAAMC,EAAW5zC,EAAO3W,GACpD,IAAIwqD,EAA8B,QAArBr2F,EAAK7B,MAAM,EAAG,GACvBm4F,EAA6B,SAAnBt2F,EAAK7B,OAAO,GACtBo4F,EAAkB,YAATJ,EACb,OAAiB,IAAV3zC,GAAwB,IAAT3W,EACtB,SAAUigD,GACR,QAASA,EAAKz+D,YACZ,SAAUy+D,EAAM7kE,EAAUuvE,GAC5B,IAAI15E,EACA25E,EACAC,EACA99E,EACA+9E,EACAj3F,EACAuxF,EAAMoF,IAAWC,EAAU,cAAgB,kBAC3CrtE,EAAS6iE,EAAKz+D,WACd1zB,EAAO48F,GAAUzK,EAAKkF,SAAS36E,cAC/BugF,GAAYJ,IAAQD,EACpB1zC,GAAO,EAEX,GAAI55B,EAAQ,CAEV,GAAIotE,EAAQ,CACV,KAAOpF,GAAK,CAGV,IAFAr4E,EAAOkzE,EAEAlzE,EAAOA,EAAKq4E,IACjB,GAAIsF,EAAS39E,EAAKo4E,SAAS36E,gBAAkB1c,EAAyB,IAAlBif,EAAK6xE,SACvD,OAAO,EAKX/qF,EAAQuxF,EAAe,SAATjxF,IAAoBN,GAAS,cAG7C,OAAO,EAKT,GAFAA,EAAQ,CAAC42F,EAAUrtE,EAAOssE,WAAatsE,EAAO4tE,WAE1CP,GAAWM,GAab,IAHA/zC,GADA8zC,GADA75E,GADA25E,GAHAC,GADA99E,EAAOqQ,GACWujE,KAAa5zE,EAAK4zE,GAAW,KAGtB5zE,EAAKk+E,YAAcJ,EAAW99E,EAAKk+E,UAAY,KACpD92F,IAAS,IACX,KAAOsuF,GAAWxxE,EAAM,KACtBA,EAAM,GAC1BlE,EAAO+9E,GAAa1tE,EAAOioE,WAAWyF,GAE/B/9E,IAAS+9E,GAAa/9E,GAAQA,EAAKq4E,KAC1CpuC,EAAO8zC,EAAY,IAAMj3F,EAAMi6B,OAE7B,GAAsB,IAAlB/gB,EAAK6xE,YAAoB5nC,GAAQjqC,IAASkzE,EAAM,CAClD2K,EAAYz2F,GAAQ,CAACsuF,EAASqI,EAAW9zC,GACzC,YAmBJ,GAdI+zC,IASF/zC,EADA8zC,GADA75E,GADA25E,GAHAC,GADA99E,EAAOkzE,GACWU,KAAa5zE,EAAK4zE,GAAW,KAGtB5zE,EAAKk+E,YAAcJ,EAAW99E,EAAKk+E,UAAY,KACpD92F,IAAS,IACX,KAAOsuF,GAAWxxE,EAAM,KAM/B,IAAT+lC,EAEF,MAAOjqC,IAAS+9E,GAAa/9E,GAAQA,EAAKq4E,KAASpuC,EAAO8zC,EAAY,IAAMj3F,EAAMi6B,UAC3E48D,EAAS39E,EAAKo4E,SAAS36E,gBAAkB1c,EAAyB,IAAlBif,EAAK6xE,cAAqB5nC,IAEzE+zC,KAIFH,GAHAC,EAAa99E,EAAK4zE,KAAa5zE,EAAK4zE,GAAW,KAGtB5zE,EAAKk+E,YAAcJ,EAAW99E,EAAKk+E,UAAY,KAC5D92F,GAAQ,CAACsuF,EAASzrC,IAG5BjqC,IAASkzE,MAUrB,OADAjpC,GAAQhX,KACQ2W,GAASK,EAAOL,IAAU,GAAKK,EAAOL,GAAS,KAIrE,OAAU,SAAgBu0C,EAAQhE,GAKhC,IAAI/zF,EACAJ,EAAK0uF,EAAK6B,QAAQ4H,IAAWzJ,EAAK0J,WAAWD,EAAO1gF,gBAAkBg3E,GAAO/0B,MAAM,uBAAyBy+B,GAIhH,OAAIn4F,EAAG4tF,GACE5tF,EAAGm0F,GAIRn0F,EAAG/B,OAAS,GACdmC,EAAO,CAAC+3F,EAAQA,EAAQ,GAAIhE,GACrBzF,EAAK0J,WAAW/7F,eAAe87F,EAAO1gF,eAAiB67E,IAAa,SAAUd,EAAMruE,GAKzF,IAJA,IAAIrgB,EACAu0F,EAAUr4F,EAAGwyF,EAAM2B,GACnB35F,EAAI69F,EAAQp6F,OAETzD,KAELg4F,EADA1uF,EAAMX,EAAQqvF,EAAM6F,EAAQ79F,OACd2pB,EAAQrgB,GAAOu0F,EAAQ79F,OAEpC,SAAU0yF,GACb,OAAOltF,EAAGktF,EAAM,EAAG9sF,KAIhBJ,IAGXuwF,QAAS,CAEP,IAAO+C,IAAa,SAAU3G,GAI5B,IAAI10E,EAAQ,GACRm2E,EAAU,GACVkK,EAAUxJ,EAAQnC,EAASt1E,QAAQo5E,EAAO,OAC9C,OAAO6H,EAAQ1K,GAAW0F,IAAa,SAAUd,EAAMruE,EAASkE,EAAUuvE,GAKxE,IAJA,IAAI1K,EACAqL,EAAYD,EAAQ9F,EAAM,KAAMoF,EAAK,IACrCp9F,EAAIg4F,EAAKv0F,OAENzD,MACD0yF,EAAOqL,EAAU/9F,MACnBg4F,EAAKh4F,KAAO2pB,EAAQ3pB,GAAK0yF,OAG1B,SAAUA,EAAM7kE,EAAUuvE,GAK7B,OAJA3/E,EAAM,GAAKi1E,EACXoL,EAAQrgF,EAAO,KAAM2/E,EAAKxJ,GAE1Bn2E,EAAM,GAAK,MACHm2E,EAAQrzD,UAGpB,IAAOu4D,IAAa,SAAU3G,GAC5B,OAAO,SAAUO,GACf,OAAOuB,GAAO9B,EAAUO,GAAMjvF,OAAS,MAG3C,SAAYq1F,IAAa,SAAUtxE,GAEjC,OADAA,EAAOA,EAAK3K,QAAQi6E,GAAWC,IACxB,SAAUrE,GACf,OAAQA,EAAKwJ,aAAe/H,EAAQzB,IAAO/pF,QAAQ6e,IAAS,MAUhE,KAAQsxE,IAAa,SAAUkF,GAO7B,OALK1H,EAAYtxF,KAAKg5F,GAAQ,KAC5B/J,GAAO/0B,MAAM,qBAAuB8+B,GAGtCA,EAAOA,EAAKnhF,QAAQi6E,GAAWC,IAAW95E,cACnC,SAAUy1E,GACf,IAAIuL,EAEJ,GACE,GAAIA,EAAWpJ,EAAiBnC,EAAKsL,KAAOtL,EAAKjsC,aAAa,aAAeisC,EAAKjsC,aAAa,QAE7F,OADAw3C,EAAWA,EAAShhF,iBACA+gF,GAAyC,IAAjCC,EAASt1F,QAAQq1F,EAAO,YAE9CtL,EAAOA,EAAKz+D,aAAiC,IAAlBy+D,EAAKrB,UAE1C,OAAO,MAIX,OAAU,SAAgBqB,GACxB,IAAIwL,EAAO94F,EAAO+4F,UAAY/4F,EAAO+4F,SAASD,KAC9C,OAAOA,GAAQA,EAAKn5F,MAAM,KAAO2tF,EAAKjsF,IAExC,KAAQ,SAAcisF,GACpB,OAAOA,IAASkC,GAElB,MAAS,SAAelC,GACtB,OAAOA,IAASztC,EAASm5C,iBAAmBn5C,EAASo5C,UAAYp5C,EAASo5C,gBAAkB3L,EAAK9rF,MAAQ8rF,EAAK4L,OAAS5L,EAAK6L,WAG9H,QAAW/E,IAAqB,GAChC,SAAYA,IAAqB,GACjC,QAAW,SAAiB9G,GAG1B,IAAIkF,EAAWlF,EAAKkF,SAAS36E,cAC7B,MAAoB,UAAb26E,KAA0BlF,EAAK8L,SAAwB,WAAb5G,KAA2BlF,EAAK+L,UAEnF,SAAY,SAAkB/L,GAQ5B,OALIA,EAAKz+D,YAEPy+D,EAAKz+D,WAAWyqE,eAGO,IAAlBhM,EAAK+L,UAGd,MAAS,SAAe/L,GAKtB,IAAKA,EAAOA,EAAKyJ,WAAYzJ,EAAMA,EAAOA,EAAK2G,YAC7C,GAAI3G,EAAKrB,SAAW,EAClB,OAAO,EAIX,OAAO,GAET,OAAU,SAAgBqB,GACxB,OAAQwB,EAAK6B,QAAe,MAAErD,IAGhC,OAAU,SAAgBA,GACxB,OAAOgE,EAAQ1xF,KAAK0tF,EAAKkF,WAE3B,MAAS,SAAelF,GACtB,OAAO+D,EAAQzxF,KAAK0tF,EAAKkF,WAE3B,OAAU,SAAgBlF,GACxB,IAAInyF,EAAOmyF,EAAKkF,SAAS36E,cACzB,MAAgB,UAAT1c,GAAkC,WAAdmyF,EAAK9rF,MAA8B,WAATrG,GAEvD,KAAQ,SAAcmyF,GACpB,IAAIiJ,EACJ,MAAuC,UAAhCjJ,EAAKkF,SAAS36E,eAA2C,SAAdy1E,EAAK9rF,OAEjB,OAArC+0F,EAAOjJ,EAAKjsC,aAAa,UAA2C,SAAvBk1C,EAAK1+E,gBAGrD,MAASy8E,IAAuB,WAC9B,MAAO,CAAC,MAEV,KAAQA,IAAuB,SAAUiF,EAAel7F,GACtD,MAAO,CAACA,EAAS,MAEnB,GAAMi2F,IAAuB,SAAUiF,EAAel7F,EAAQk2F,GAC5D,MAAO,CAACA,EAAW,EAAIA,EAAWl2F,EAASk2F,MAE7C,KAAQD,IAAuB,SAAUE,EAAcn2F,GAGrD,IAFA,IAAIzD,EAAI,EAEDA,EAAIyD,EAAQzD,GAAK,EACtB45F,EAAar2E,KAAKvjB,GAGpB,OAAO45F,KAET,IAAOF,IAAuB,SAAUE,EAAcn2F,GAGpD,IAFA,IAAIzD,EAAI,EAEDA,EAAIyD,EAAQzD,GAAK,EACtB45F,EAAar2E,KAAKvjB,GAGpB,OAAO45F,KAET,GAAMF,IAAuB,SAAUE,EAAcn2F,EAAQk2F,GAG3D,IAFA,IAAI35F,EAAI25F,EAAW,EAAIA,EAAWl2F,EAASk2F,EAAWl2F,EAASA,EAASk2F,IAE/D35F,GAAK,GACZ45F,EAAar2E,KAAKvjB,GAGpB,OAAO45F,KAET,GAAMF,IAAuB,SAAUE,EAAcn2F,EAAQk2F,GAG3D,IAFA,IAAI35F,EAAI25F,EAAW,EAAIA,EAAWl2F,EAASk2F,IAElC35F,EAAIyD,GACXm2F,EAAar2E,KAAKvjB,GAGpB,OAAO45F,QAIR7D,QAAa,IAAI7B,EAAK6B,QAAY,GAE7B,CACR6I,OAAO,EACPC,UAAU,EACVC,MAAM,EACNC,UAAU,EACVC,OAAO,GAEP9K,EAAK6B,QAAQ/1F,GAAKs5F,GAAkBt5F,GAGtC,IAAKA,IAAK,CACRi/F,QAAQ,EACRztD,OAAO,GAEP0iD,EAAK6B,QAAQ/1F,GAAKu5F,GAAmBv5F,GAIvC,SAAS49F,MAuET,SAASlF,GAAWwG,GAKlB,IAJA,IAAIl/F,EAAI,EACJiF,EAAMi6F,EAAOz7F,OACb0uF,EAAW,GAERnyF,EAAIiF,EAAKjF,IACdmyF,GAAY+M,EAAOl/F,GAAGiB,MAGxB,OAAOkxF,EAGT,SAASwF,GAAcmG,EAASqB,EAAYtiE,GAC1C,IAAIg7D,EAAMsH,EAAWtH,IACjBzmE,EAAO+tE,EAAWz6F,KAClBnD,EAAM6vB,GAAQymE,EACduH,EAAmBviE,GAAgB,eAARt7B,EAC3B89F,EAAWn7F,IACf,OAAOi7F,EAAW/1C,MAClB,SAAUspC,EAAMpyE,EAAS88E,GACvB,KAAO1K,EAAOA,EAAKmF,IACjB,GAAsB,IAAlBnF,EAAKrB,UAAkB+N,EACzB,OAAOtB,EAAQpL,EAAMpyE,EAAS88E,GAIlC,OAAO,GAET,SAAU1K,EAAMpyE,EAAS88E,GACvB,IAAIkC,EACAjC,EACAC,EACAiC,EAAW,CAACrK,EAASmK,GAEzB,GAAIjC,GACF,KAAO1K,EAAOA,EAAKmF,IACjB,IAAsB,IAAlBnF,EAAKrB,UAAkB+N,IACrBtB,EAAQpL,EAAMpyE,EAAS88E,GACzB,OAAO,OAKb,KAAO1K,EAAOA,EAAKmF,IACjB,GAAsB,IAAlBnF,EAAKrB,UAAkB+N,EAMzB,GAFA/B,GAHAC,EAAa5K,EAAKU,KAAaV,EAAKU,GAAW,KAGtBV,EAAKgL,YAAcJ,EAAW5K,EAAKgL,UAAY,IAEpEtsE,GAAQA,IAASshE,EAAKkF,SAAS36E,cACjCy1E,EAAOA,EAAKmF,IAAQnF,MACf,KAAK4M,EAAWjC,EAAY97F,KAAS+9F,EAAS,KAAOpK,GAAWoK,EAAS,KAAOD,EAErF,OAAOE,EAAS,GAAKD,EAAS,GAK9B,GAFAjC,EAAY97F,GAAOg+F,EAEfA,EAAS,GAAKzB,EAAQpL,EAAMpyE,EAAS88E,GACvC,OAAO,EAOjB,OAAO,GAIX,SAASoC,GAAeC,GACtB,OAAOA,EAASh8F,OAAS,EAAI,SAAUivF,EAAMpyE,EAAS88E,GAGpD,IAFA,IAAIp9F,EAAIy/F,EAASh8F,OAEVzD,KACL,IAAKy/F,EAASz/F,GAAG0yF,EAAMpyE,EAAS88E,GAC9B,OAAO,EAIX,OAAO,GACLqC,EAAS,GAcf,SAASC,GAAS3B,EAAWx1F,EAAKomB,EAAQrO,EAAS88E,GAOjD,IANA,IAAI1K,EACAiN,EAAe,GACf3/F,EAAI,EACJiF,EAAM84F,EAAUt6F,OAChBm8F,EAAgB,MAAPr3F,EAENvI,EAAIiF,EAAKjF,KACV0yF,EAAOqL,EAAU/9F,MACd2uB,IAAUA,EAAO+jE,EAAMpyE,EAAS88E,KACnCuC,EAAap8E,KAAKmvE,GAEdkN,GACFr3F,EAAIgb,KAAKvjB,KAMjB,OAAO2/F,EAGT,SAASE,GAAWrD,EAAWrK,EAAU2L,EAASgC,EAAYC,EAAYC,GASxE,OARIF,IAAeA,EAAW1M,KAC5B0M,EAAaD,GAAWC,IAGtBC,IAAeA,EAAW3M,KAC5B2M,EAAaF,GAAWE,EAAYC,IAG/BlH,IAAa,SAAUd,EAAMpE,EAAStzE,EAAS88E,GACpD,IAAI6C,EACAjgG,EACA0yF,EACAwN,EAAS,GACTC,EAAU,GACVC,EAAcxM,EAAQnwF,OAE1B+uF,EAAQwF,GAlDZ,SAA0B7F,EAAUkO,EAAUzM,GAI5C,IAHA,IAAI5zF,EAAI,EACJiF,EAAMo7F,EAAS58F,OAEZzD,EAAIiF,EAAKjF,IACdi0F,GAAO9B,EAAUkO,EAASrgG,GAAI4zF,GAGhC,OAAOA,EA0CW0M,CAAiBnO,GAAY,IAAK7xE,EAAQ+wE,SAAW,CAAC/wE,GAAWA,EAAS,IAE1FigF,GAAY/D,IAAcxE,GAAS7F,EAA+DK,EAAnDkN,GAASlN,EAAO0N,EAAQ1D,EAAWl8E,EAAS88E,GACvFoD,EAAa1C,EACjBiC,IAAe/H,EAAOwE,EAAY4D,GAAeN,GACjD,GACAlM,EAAU2M,EAOV,GALIzC,GACFA,EAAQyC,EAAWC,EAAYlgF,EAAS88E,GAItC0C,EAMF,IALAG,EAAOP,GAASc,EAAYL,GAC5BL,EAAWG,EAAM,GAAI3/E,EAAS88E,GAE9Bp9F,EAAIigG,EAAKx8F,OAEFzD,MACD0yF,EAAOuN,EAAKjgG,MACdwgG,EAAWL,EAAQngG,MAAQugG,EAAUJ,EAAQngG,IAAM0yF,IAKzD,GAAIsF,GACF,GAAI+H,GAAcvD,EAAW,CAC3B,GAAIuD,EAAY,CAKd,IAHAE,EAAO,GACPjgG,EAAIwgG,EAAW/8F,OAERzD,MACD0yF,EAAO8N,EAAWxgG,KAEpBigG,EAAK18E,KAAKg9E,EAAUvgG,GAAK0yF,GAI7BqN,EAAW,KAAMS,EAAa,GAAIP,EAAM7C,GAM1C,IAFAp9F,EAAIwgG,EAAW/8F,OAERzD,MACA0yF,EAAO8N,EAAWxgG,MAAQigG,EAAOF,EAAap3F,EAAQqvF,EAAMtF,GAAQwN,EAAOlgG,KAAO,IACrFg4F,EAAKiI,KAAUrM,EAAQqM,GAAQvN,UAMrC8N,EAAad,GAASc,IAAe5M,EAAU4M,EAAWt8E,OAAOk8E,EAAaI,EAAW/8F,QAAU+8F,GAE/FT,EACFA,EAAW,KAAMnM,EAAS4M,EAAYpD,GAEtC75E,EAAKrd,MAAM0tF,EAAS4M,MAM5B,SAASC,GAAkBvB,GAsBzB,IArBA,IAAIwB,EACA5C,EACAthF,EACAvX,EAAMi6F,EAAOz7F,OACbk9F,EAAkBzM,EAAKqI,SAAS2C,EAAO,GAAGt4F,MAC1Cg6F,EAAmBD,GAAmBzM,EAAKqI,SAAS,KACpDv8F,EAAI2gG,EAAkB,EAAI,EAE9BE,EAAelJ,IAAc,SAAUjF,GACrC,OAAOA,IAASgO,IACfE,GAAkB,GACjBE,EAAkBnJ,IAAc,SAAUjF,GAC5C,OAAO/pF,EAAQ+3F,EAAchO,IAAS,IACrCkO,GAAkB,GACjBnB,EAAW,CAAC,SAAU/M,EAAMpyE,EAAS88E,GACvC,IAAIt/E,GAAO6iF,IAAoBvD,GAAO98E,IAAYk0E,MAAuBkM,EAAepgF,GAAS+wE,SAAWwP,EAAanO,EAAMpyE,EAAS88E,GAAO0D,EAAgBpO,EAAMpyE,EAAS88E,IAG9K,OADAsD,EAAe,KACR5iF,IAGF9d,EAAIiF,EAAKjF,IACd,GAAI89F,EAAU5J,EAAKqI,SAAS2C,EAAOl/F,GAAG4G,MACpC64F,EAAW,CAAC9H,GAAc6H,GAAeC,GAAW3B,QAC/C,CAGL,IAFAA,EAAU5J,EAAKvlE,OAAOuwE,EAAOl/F,GAAG4G,MAAMV,MAAM,KAAMg5F,EAAOl/F,GAAG2pB,UAEhDypE,GAAU,CAIpB,IAFA52E,IAAMxc,EAECwc,EAAIvX,IACLivF,EAAKqI,SAAS2C,EAAO1iF,GAAG5V,MADd4V,KAMhB,OAAOqjF,GAAW7/F,EAAI,GAAKw/F,GAAeC,GAAWz/F,EAAI,GAAK04F,GAC9DwG,EAAOn6F,MAAM,EAAG/E,EAAI,GAAGke,OAAO,CAC5Bjd,MAA8B,MAAvBi+F,EAAOl/F,EAAI,GAAG4G,KAAe,IAAM,MACxCiW,QAAQo5E,EAAO,MAAO6H,EAAS99F,EAAIwc,GAAKikF,GAAkBvB,EAAOn6F,MAAM/E,EAAGwc,IAAKA,EAAIvX,GAAOw7F,GAAkBvB,EAASA,EAAOn6F,MAAMyX,IAAKA,EAAIvX,GAAOyzF,GAAWwG,IAGnKO,EAASl8E,KAAKu6E,GAIlB,OAAO0B,GAAeC,GA2RxB,OAxlBA7B,GAAWh8F,UAAYsyF,EAAK6M,QAAU7M,EAAK6B,QAC3C7B,EAAK0J,WAAa,IAAIA,GAEtBvJ,EAAWJ,GAAOI,SAAW,SAAUlC,EAAU6O,GAC/C,IAAInD,EACAj0E,EACAs1E,EACAt4F,EACAq6F,EACA/I,EACAgJ,EACAr5D,EAASwtD,EAAWlD,EAAW,KAEnC,GAAItqD,EACF,OAAOm5D,EAAY,EAAIn5D,EAAO9iC,MAAM,GAOtC,IAJAk8F,EAAQ9O,EACR+F,EAAS,GACTgJ,EAAahN,EAAKsI,UAEXyE,GAAO,CAwBZ,IAAKr6F,KAtBAi3F,KAAYj0E,EAAQssE,EAAO1kF,KAAKyvF,MAC/Br3E,IAEFq3E,EAAQA,EAAMl8F,MAAM6kB,EAAM,GAAGnmB,SAAWw9F,GAG1C/I,EAAO30E,KAAK27E,EAAS,KAGvBrB,GAAU,GAENj0E,EAAQusE,EAAa3kF,KAAKyvF,MAC5BpD,EAAUj0E,EAAM4d,QAChB03D,EAAO37E,KAAK,CACVtiB,MAAO48F,EAEPj3F,KAAMgjB,EAAM,GAAG/M,QAAQo5E,EAAO,OAEhCgL,EAAQA,EAAMl8F,MAAM84F,EAAQp6F,SAIjBywF,EAAKvlE,SACX/E,EAAQ2sE,EAAU3vF,GAAM4K,KAAKyvF,KAAaC,EAAWt6F,MAAUgjB,EAAQs3E,EAAWt6F,GAAMgjB,MAC3Fi0E,EAAUj0E,EAAM4d,QAChB03D,EAAO37E,KAAK,CACVtiB,MAAO48F,EACPj3F,KAAMA,EACN+iB,QAASC,IAEXq3E,EAAQA,EAAMl8F,MAAM84F,EAAQp6F,SAIhC,IAAKo6F,EACH,MAOJ,OAAOmD,EAAYC,EAAMx9F,OAASw9F,EAAQhN,GAAO/0B,MAAMizB,GACvDkD,EAAWlD,EAAU+F,GAAQnzF,MAAM,IAoXrCuvF,EAAUL,GAAOK,QAAU,SAAUnC,EAAUvoE,GAG7C,IAAI5pB,EACAmhG,EAAc,GACdC,EAAkB,GAClBv5D,EAASytD,EAAcnD,EAAW,KAEtC,IAAKtqD,EAAQ,CAQX,IANKje,IACHA,EAAQyqE,EAASlC,IAGnBnyF,EAAI4pB,EAAMnmB,OAEHzD,MACL6nC,EAAS44D,GAAkB72E,EAAM5pB,KAEtBozF,GACT+N,EAAY59E,KAAKskB,GAEjBu5D,EAAgB79E,KAAKskB,IAKzBA,EAASytD,EAAcnD,EAjJ3B,SAAkCiP,EAAiBD,GACjD,IAAIE,EAAQF,EAAY19F,OAAS,EAC7B69F,EAAYF,EAAgB39F,OAAS,EACrC89F,EAAe,SAAsBvJ,EAAM13E,EAAS88E,EAAKxJ,EAAS4N,GACpE,IAAI9O,EACAl2E,EACAshF,EACA2D,EAAe,EACfzhG,EAAI,IACJ+9F,EAAY/F,GAAQ,GACpB0J,EAAa,GACbC,EAAgBnN,EAEpBhC,EAAQwF,GAAQsJ,GAAapN,EAAKuG,KAAU,IAAE,IAAK+G,GAEnDI,EAAgB1M,GAA4B,MAAjByM,EAAwB,EAAI33F,KAAKqpF,UAAY,GACpEpuF,EAAMutF,EAAM/uF,OAahB,IAXI+9F,IAKFhN,EAAmBl0E,GAAW2kC,GAAY3kC,GAAWkhF,GAMhDxhG,IAAMiF,GAA4B,OAApBytF,EAAOF,EAAMxyF,IAAaA,IAAK,CAClD,GAAIshG,GAAa5O,EAAM,CAWrB,IAVAl2E,EAAI,EAKC8D,GAAWoyE,EAAK2F,eAAiBpzC,IACpC0vC,EAAYjC,GACZ0K,GAAOvI,GAGFiJ,EAAUsD,EAAgB5kF,MAC/B,GAAIshF,EAAQpL,EAAMpyE,GAAW2kC,EAAUm4C,GAAM,CAC3CxJ,EAAQrwE,KAAKmvE,GACb,MAIA8O,IACFtM,EAAU0M,GAKVP,KAEE3O,GAAQoL,GAAWpL,IACrB+O,IAIEzJ,GACF+F,EAAUx6E,KAAKmvE,IAerB,GARA+O,GAAgBzhG,EAQZqhG,GAASrhG,IAAMyhG,EAAc,CAG/B,IAFAjlF,EAAI,EAEGshF,EAAUqD,EAAY3kF,MAC3BshF,EAAQC,EAAW2D,EAAYphF,EAAS88E,GAG1C,GAAIpF,EAAM,CAER,GAAIyJ,EAAe,EACjB,KAAOzhG,KACC+9F,EAAU/9F,IAAM0hG,EAAW1hG,KAC/B0hG,EAAW1hG,GAAKugC,EAAIpgC,KAAKyzF,IAM/B8N,EAAahC,GAASgC,GAIxBn+E,EAAKrd,MAAM0tF,EAAS8N,GAEhBF,IAAcxJ,GAAQ0J,EAAWj+F,OAAS,GAAKg+F,EAAeN,EAAY19F,OAAS,GACrFwwF,GAAO6H,WAAWlI,GAUtB,OALI4N,IACFtM,EAAU0M,EACVpN,EAAmBmN,GAGd5D,GAGT,OAAOsD,EAAQvI,GAAayI,GAAgBA,EA8BTM,CAAyBT,EAAiBD,KAEpEhP,SAAWA,EAGpB,OAAOtqD,GAaT0sD,EAASN,GAAOM,OAAS,SAAUpC,EAAU7xE,EAASszE,EAASoE,GAC7D,IAAIh4F,EACAk/F,EACA4C,EACAl7F,EACA6zF,EACAsH,EAA+B,oBAAb5P,GAA2BA,EAC7CvoE,GAASouE,GAAQ3D,EAASlC,EAAW4P,EAAS5P,UAAYA,GAI9D,GAHAyB,EAAUA,GAAW,GAGA,IAAjBhqE,EAAMnmB,OAAc,CAItB,IAFAy7F,EAASt1E,EAAM,GAAKA,EAAM,GAAG7kB,MAAM,IAExBtB,OAAS,GAAkC,QAA5Bq+F,EAAQ5C,EAAO,IAAIt4F,MAAsC,IAArB0Z,EAAQ+wE,UAAkBwD,GAAkBX,EAAKqI,SAAS2C,EAAO,GAAGt4F,MAAO,CAGvI,KAFA0Z,GAAW4zE,EAAKuG,KAAS,GAAEqH,EAAMn4E,QAAQ,GAAG9M,QAAQi6E,GAAWC,IAAYz2E,IAAY,IAAI,IAGzF,OAAOszE,EACEmO,IACTzhF,EAAUA,EAAQ2T,YAGpBk+D,EAAWA,EAASptF,MAAMm6F,EAAO13D,QAAQvmC,MAAMwC,QAMjD,IAFAzD,EAAIu2F,EAAwB,aAAEvxF,KAAKmtF,GAAY,EAAI+M,EAAOz7F,OAEnDzD,MACL8hG,EAAQ5C,EAAOl/F,IAEXk0F,EAAKqI,SAAS31F,EAAOk7F,EAAMl7F,QAI/B,IAAI6zF,EAAOvG,EAAKuG,KAAK7zF,MAEfoxF,EAAOyC,EAAKqH,EAAMn4E,QAAQ,GAAG9M,QAAQi6E,GAAWC,IAAYF,GAAS7xF,KAAKk6F,EAAO,GAAGt4F,OAAS6xF,GAAYn4E,EAAQ2T,aAAe3T,IAAU,CAK5I,GAHA4+E,EAAOh7E,OAAOlkB,EAAG,KACjBmyF,EAAW6F,EAAKv0F,QAAUi1F,GAAWwG,IAInC,OADA37E,EAAKrd,MAAM0tF,EAASoE,GACbpE,EAGT,OASR,OADCmO,GAAYzN,EAAQnC,EAAUvoE,IAAQouE,EAAM13E,GAAUu0E,EAAgBjB,GAAUtzE,GAAWu2E,GAAS7xF,KAAKmtF,IAAasG,GAAYn4E,EAAQ2T,aAAe3T,GACnJszE,GAKTxC,EAAQ6K,WAAa7I,EAAQ3zE,MAAM,IAAIowB,KAAK2lD,GAAWlnE,KAAK,MAAQ8kE,EAGpEhC,EAAQ4K,mBAAqBtH,EAE7BC,IAGAvD,EAAQkK,aAAevC,IAAO,SAAUrhE,GAEtC,OAAwE,EAAjEA,EAAGyjE,wBAAwBl2C,EAAS6sC,cAAc,gBAKtDiH,IAAO,SAAUrhE,GAEpB,OADAA,EAAGkjE,UAAY,mBAC+B,MAAvCljE,EAAGykE,WAAW11C,aAAa,YAElCuyC,GAAU,0BAA0B,SAAUtG,EAAMnyF,EAAM6zF,GACxD,IAAKA,EACH,OAAO1B,EAAKjsC,aAAalmD,EAA6B,SAAvBA,EAAK0c,cAA2B,EAAI,MAOpEm0E,EAAQ0E,YAAeiD,IAAO,SAAUrhE,GAG3C,OAFAA,EAAGkjE,UAAY,WACfljE,EAAGykE,WAAWp1C,aAAa,QAAS,IACW,KAAxCrvB,EAAGykE,WAAW11C,aAAa,aAElCuyC,GAAU,SAAS,SAAUtG,EAAMsP,EAAO5N,GACxC,IAAKA,GAAyC,UAAhC1B,EAAKkF,SAAS36E,cAC1B,OAAOy1E,EAAKvrF,gBAOb4xF,IAAO,SAAUrhE,GACpB,OAAsC,MAA/BA,EAAG+uB,aAAa,gBAEvBuyC,GAAUrD,GAAU,SAAUjD,EAAMnyF,EAAM6zF,GACxC,IAAIz1E,EAEJ,IAAKy1E,EACH,OAAsB,IAAf1B,EAAKnyF,GAAiBA,EAAK0c,eAAiB0B,EAAM+zE,EAAKgI,iBAAiBn6F,KAAUoe,EAAIi9E,UAAYj9E,EAAI1d,MAAQ,QAKpHgzF,GAnkET,CAokEE7uF,GAEF8sF,EAAOuI,KAAOxG,GACd/B,EAAOwJ,KAAOzH,EAAOoI,WAET,KAAOnK,EAAOwJ,KAAK3F,QAC/B7D,EAAO4J,WAAa5J,EAAO+P,OAAShO,EAAO6H,WAC3C5J,EAAO1qE,KAAOysE,EAAOE,QACrBjC,EAAOgQ,SAAWjO,EAAOG,MACzBlC,EAAO8C,SAAWf,EAAOe,SACzB9C,EAAOiQ,eAAiBlO,EAAO+C,OAE/B,IAAIa,EAAM,SAAanF,EAAM0P,EAAMC,GAIjC,IAHA,IAAIxE,EAAU,GACVyE,OAAqBxxF,IAAVuxF,GAEP3P,EAAOA,EAAK0P,KAA4B,IAAlB1P,EAAKrB,UACjC,GAAsB,IAAlBqB,EAAKrB,SAAgB,CACvB,GAAIiR,GAAYpQ,EAAOQ,GAAM6P,GAAGF,GAC9B,MAGFxE,EAAQt6E,KAAKmvE,GAIjB,OAAOmL,GAGL2E,EAAY,SAAkB/gG,EAAGixF,GAGnC,IAFA,IAAImL,EAAU,GAEPp8F,EAAGA,EAAIA,EAAE43F,YACK,IAAf53F,EAAE4vF,UAAkB5vF,IAAMixF,GAC5BmL,EAAQt6E,KAAK9hB,GAIjB,OAAOo8F,GAGL4E,EAAgBvQ,EAAOwJ,KAAK9xE,MAAM84E,aAEtC,SAAS9K,EAASlF,EAAMnyF,GACtB,OAAOmyF,EAAKkF,UAAYlF,EAAKkF,SAAS36E,gBAAkB1c,EAAK0c,cAG/D,IAAI0lF,EAAa,kEAEjB,SAASC,EAAOliF,EAAUmiF,EAAWC,GACnC,OAAIh5F,EAAW+4F,GACN3Q,EAAOU,KAAKlyE,GAAU,SAAUgyE,EAAM1yF,GAC3C,QAAS6iG,EAAU1iG,KAAKuyF,EAAM1yF,EAAG0yF,KAAUoQ,KAK3CD,EAAUxR,SACLa,EAAOU,KAAKlyE,GAAU,SAAUgyE,GACrC,OAAOA,IAASmQ,IAAcC,KAKT,kBAAdD,EACF3Q,EAAOU,KAAKlyE,GAAU,SAAUgyE,GACrC,OAAO/pF,EAAQxI,KAAK0iG,EAAWnQ,IAAS,IAAMoQ,KAK3C5Q,EAAOvjE,OAAOk0E,EAAWniF,EAAUoiF,GAG5C5Q,EAAOvjE,OAAS,SAAU+sE,EAAMlJ,EAAOsQ,GACrC,IAAIpQ,EAAOF,EAAM,GAMjB,OAJIsQ,IACFpH,EAAO,QAAUA,EAAO,KAGL,IAAjBlJ,EAAM/uF,QAAkC,IAAlBivF,EAAKrB,SACtBa,EAAOuI,KAAKI,gBAAgBnI,EAAMgJ,GAAQ,CAAChJ,GAAQ,GAGrDR,EAAOuI,KAAK9wE,QAAQ+xE,EAAMxJ,EAAOU,KAAKJ,GAAO,SAAUE,GAC5D,OAAyB,IAAlBA,EAAKrB,cAIhBa,EAAO1sF,GAAGutF,OAAO,CACf0H,KAAM,SAActI,GAClB,IAAInyF,EACA8d,EACA7Y,EAAM4Y,KAAKpa,OACXy6B,EAAOrgB,KAEX,GAAwB,kBAAbs0E,EACT,OAAOt0E,KAAK00E,UAAUL,EAAOC,GAAUxjE,QAAO,WAC5C,IAAK3uB,EAAI,EAAGA,EAAIiF,EAAKjF,IACnB,GAAIkyF,EAAO8C,SAAS92D,EAAKl+B,GAAI6d,MAC3B,OAAO,MAQf,IAFAC,EAAMD,KAAK00E,UAAU,IAEhBvyF,EAAI,EAAGA,EAAIiF,EAAKjF,IACnBkyF,EAAOuI,KAAKtI,EAAUj0D,EAAKl+B,GAAI8d,GAGjC,OAAO7Y,EAAM,EAAIitF,EAAO4J,WAAWh+E,GAAOA,GAE5C6Q,OAAQ,SAAgBwjE,GACtB,OAAOt0E,KAAK00E,UAAUqQ,EAAO/kF,KAAMs0E,GAAY,IAAI,KAErD2Q,IAAK,SAAa3Q,GAChB,OAAOt0E,KAAK00E,UAAUqQ,EAAO/kF,KAAMs0E,GAAY,IAAI,KAErDoQ,GAAI,SAAYpQ,GACd,QAASyQ,EAAO/kF,KAEI,kBAAbs0E,GAAyBsQ,EAAcz9F,KAAKmtF,GAAYD,EAAOC,GAAYA,GAAY,IAAI,GAAO1uF,UAK7G,IAAIs/F,EAKJnM,EAAa,uCACF1E,EAAO1sF,GAAG66D,KAAO,SAAU8xB,EAAU7xE,EAASX,GACvD,IAAIiK,EAAO8oE,EAEX,IAAKP,EACH,OAAOt0E,KAOT,GAFA8B,EAAOA,GAAQojF,EAES,kBAAb5Q,EAAuB,CAShC,KANEvoE,EAFkB,MAAhBuoE,EAAS,IAAgD,MAAlCA,EAASA,EAAS1uF,OAAS,IAAc0uF,EAAS1uF,QAAU,EAE7E,CAAC,KAAM0uF,EAAU,MAEjByE,EAAWplF,KAAK2gF,MAIZvoE,EAAM,IAAOtJ,EAgCpB,OAAKA,GAAWA,EAAQ+xE,QACrB/xE,GAAWX,GAAM86E,KAAKtI,GAGvBt0E,KAAK3a,YAAYod,GAASm6E,KAAKtI,GAlCtC,GAAIvoE,EAAM,GAAI,CAMZ,GALAtJ,EAAUA,aAAmB4xE,EAAS5xE,EAAQ,GAAKA,EAGnD4xE,EAAOlpF,MAAM6U,KAAMq0E,EAAO8Q,UAAUp5E,EAAM,GAAItJ,GAAWA,EAAQ+wE,SAAW/wE,EAAQ+3E,eAAiB/3E,EAAU2kC,GAAU,IAErH09C,EAAW39F,KAAK4kB,EAAM,KAAOsoE,EAAOiB,cAAc7yE,GACpD,IAAKsJ,KAAStJ,EAERxW,EAAW+T,KAAK+L,IAClB/L,KAAK+L,GAAOtJ,EAAQsJ,IAEpB/L,KAAK89E,KAAK/xE,EAAOtJ,EAAQsJ,IAK/B,OAAO/L,KAUP,OARA60E,EAAOztC,EAASsY,eAAe3zC,EAAM,OAInC/L,KAAK,GAAK60E,EACV70E,KAAKpa,OAAS,GAGToa,KAUN,OAAIs0E,EAASd,UAClBxzE,KAAK,GAAKs0E,EACVt0E,KAAKpa,OAAS,EACPoa,MAEE/T,EAAWqoF,QACErhF,IAAf6O,EAAKsjF,MAAsBtjF,EAAKsjF,MAAM9Q,GAC7CA,EAASD,GAGJA,EAAOyB,UAAUxB,EAAUt0E,QAI/Bjc,UAAYswF,EAAO1sF,GAExBu9F,EAAa7Q,EAAOjtC,GACpB,IAAIi+C,EAAe,iCAEnBC,EAAmB,CACjB1S,UAAU,EACV2S,UAAU,EACV1+F,MAAM,EACN+uB,MAAM,GA8DR,SAAS4vE,EAAQniE,EAAK22D,GACpB,MAAQ32D,EAAMA,EAAI22D,KAA0B,IAAjB32D,EAAImwD,WAE/B,OAAOnwD,EA/DTgxD,EAAO1sF,GAAGutF,OAAO,CACf7lE,IAAK,SAAa3pB,GAChB,IAAI+/F,EAAUpR,EAAO3uF,EAAQsa,MACzB5d,EAAIqjG,EAAQ7/F,OAChB,OAAOoa,KAAK8Q,QAAO,WAGjB,IAFA,IAAI3uB,EAAI,EAEDA,EAAIC,EAAGD,IACZ,GAAIkyF,EAAO8C,SAASn3E,KAAMylF,EAAQtjG,IAChC,OAAO,MAKfujG,QAAS,SAAiBlH,EAAW/7E,GACnC,IAAI4gB,EACAlhC,EAAI,EACJC,EAAI4d,KAAKpa,OACTo6F,EAAU,GACVyF,EAA+B,kBAAdjH,GAA0BnK,EAAOmK,GAEtD,IAAKoG,EAAcz9F,KAAKq3F,GACtB,KAAOr8F,EAAIC,EAAGD,IACZ,IAAKkhC,EAAMrjB,KAAK7d,GAAIkhC,GAAOA,IAAQ5gB,EAAS4gB,EAAMA,EAAIjN,WAEpD,GAAIiN,EAAImwD,SAAW,KAAOiS,EAAUA,EAAQl7F,MAAM84B,IAAQ,EACzC,IAAjBA,EAAImwD,UAAkBa,EAAOuI,KAAKI,gBAAgB35D,EAAKm7D,IAAa,CAClEwB,EAAQt6E,KAAK2d,GACb,MAMR,OAAOrjB,KAAK00E,UAAUsL,EAAQp6F,OAAS,EAAIyuF,EAAO4J,WAAW+B,GAAWA,IAG1Ez1F,MAAO,SAAesqF,GAEpB,OAAKA,EAKe,kBAATA,EACF/pF,EAAQxI,KAAK+xF,EAAOQ,GAAO70E,KAAK,IAIlClV,EAAQxI,KAAK0d,KACpB60E,EAAKL,OAASK,EAAK,GAAKA,GAVf70E,KAAK,IAAMA,KAAK,GAAGoW,WAAapW,KAAKurC,QAAQo6C,UAAU//F,QAAU,GAY5EwoB,IAAK,SAAakmE,EAAU7xE,GAC1B,OAAOzC,KAAK00E,UAAUL,EAAO4J,WAAW5J,EAAOlpF,MAAM6U,KAAKhd,MAAOqxF,EAAOC,EAAU7xE,OAEpFmjF,QAAS,SAAiBtR,GACxB,OAAOt0E,KAAKoO,IAAgB,MAAZkmE,EAAmBt0E,KAAK40E,WAAa50E,KAAK40E,WAAW9jE,OAAOwjE,OAUhFD,EAAOzqF,KAAK,CACVooB,OAAQ,SAAgB6iE,GACtB,IAAI7iE,EAAS6iE,EAAKz+D,WAClB,OAAOpE,GAA8B,KAApBA,EAAOwhE,SAAkBxhE,EAAS,MAErD6zE,QAAS,SAAiBhR,GACxB,OAAOmF,EAAInF,EAAM,eAEnBiR,aAAc,SAAsBjR,EAAMn0D,EAAI8jE,GAC5C,OAAOxK,EAAInF,EAAM,aAAc2P,IAEjC39F,KAAM,SAAcguF,GAClB,OAAO2Q,EAAQ3Q,EAAM,gBAEvBj/D,KAAM,SAAci/D,GAClB,OAAO2Q,EAAQ3Q,EAAM,oBAEvBkR,QAAS,SAAiBlR,GACxB,OAAOmF,EAAInF,EAAM,gBAEnB8Q,QAAS,SAAiB9Q,GACxB,OAAOmF,EAAInF,EAAM,oBAEnBmR,UAAW,SAAmBnR,EAAMn0D,EAAI8jE,GACtC,OAAOxK,EAAInF,EAAM,cAAe2P,IAElCyB,UAAW,SAAmBpR,EAAMn0D,EAAI8jE,GACtC,OAAOxK,EAAInF,EAAM,kBAAmB2P,IAEtC0B,SAAU,SAAkBrR,GAC1B,OAAO8P,GAAW9P,EAAKz+D,YAAc,IAAIkoE,WAAYzJ,IAEvDjC,SAAU,SAAkBiC,GAC1B,OAAO8P,EAAU9P,EAAKyJ,aAExBiH,SAAU,SAAkB1Q,GAC1B,OAA4B,MAAxBA,EAAKsR,iBAGTnT,EAAS6B,EAAKsR,iBACLtR,EAAKsR,iBAMVpM,EAASlF,EAAM,cACjBA,EAAOA,EAAKuR,SAAWvR,GAGlBR,EAAOlpF,MAAM,GAAI0pF,EAAKoF,gBAE9B,SAAUv3F,EAAMiF,GACjB0sF,EAAO1sF,GAAGjF,GAAQ,SAAU8hG,EAAOlQ,GACjC,IAAI0L,EAAU3L,EAAO3pF,IAAIsV,KAAMrY,EAAI68F,GAsBnC,MApBuB,UAAnB9hG,EAAKwE,OAAO,KACdotF,EAAWkQ,GAGTlQ,GAAgC,kBAAbA,IACrB0L,EAAU3L,EAAOvjE,OAAOwjE,EAAU0L,IAGhChgF,KAAKpa,OAAS,IAEX0/F,EAAiB5iG,IACpB2xF,EAAO4J,WAAW+B,GAIhBqF,EAAal+F,KAAKzE,IACpBs9F,EAAQl2F,WAILkW,KAAK00E,UAAUsL,OAG1B,IAAIqG,EAAgB,oBA0MpB,SAASC,EAASj0F,GAChB,OAAOA,EAGT,SAASk0F,EAAQC,GACf,MAAMA,EAGR,SAASC,EAAWrjG,EAAO0pB,EAAS45E,EAAQC,GAC1C,IAAIthE,EAEJ,IAEMjiC,GAAS6I,EAAWo5B,EAASjiC,EAAMwjG,SACrCvhE,EAAO/iC,KAAKc,GAAOiD,KAAKymB,GAAS+5E,KAAKH,GAC7BtjG,GAAS6I,EAAWo5B,EAASjiC,EAAM8jC,MAC5C7B,EAAO/iC,KAAKc,EAAO0pB,EAAS45E,GAK5B55E,EAAQzkB,WAAM4K,EAAW,CAAC7P,GAAO8D,MAAMy/F,IAKzC,MAAOvjG,GAGPsjG,EAAOr+F,WAAM4K,EAAW,CAAC7P,KAtM7BixF,EAAOyS,UAAY,SAAU97F,GAG3BA,EAA6B,kBAAZA,EAlCnB,SAAuBA,GACrB,IAAInH,EAAS,GAIb,OAHAwwF,EAAOzqF,KAAKoB,EAAQ+gB,MAAMs6E,IAAkB,IAAI,SAAUU,EAAGC,GAC3DnjG,EAAOmjG,IAAQ,KAEVnjG,EA6BiCojG,CAAcj8F,GAAWqpF,EAAOa,OAAO,GAAIlqF,GAEnF,IACAk8F,EAEAC,EAEAC,EAEAC,EAEAxP,EAAO,GAEPyP,EAAQ,GAERC,GAAe,EAEfC,EAAO,WAOL,IALAH,EAAUA,GAAWr8F,EAAQy8F,KAG7BL,EAASF,GAAS,EAEXI,EAAM1hG,OAAQ2hG,GAAe,EAGlC,IAFAJ,EAASG,EAAM39D,UAEN49D,EAAc1P,EAAKjyF,SAE4B,IAAlDiyF,EAAK0P,GAAal/F,MAAM8+F,EAAO,GAAIA,EAAO,KAAiBn8F,EAAQ08F,cAErEH,EAAc1P,EAAKjyF,OACnBuhG,GAAS,GAMVn8F,EAAQm8F,SACXA,GAAS,GAGXD,GAAS,EAELG,IAGAxP,EADEsP,EACK,GAEA,KAKb9mE,EAAO,CAELjS,IAAK,WA0BH,OAzBIypE,IAEEsP,IAAWD,IACbK,EAAc1P,EAAKjyF,OAAS,EAC5B0hG,EAAM5hF,KAAKyhF,IAGb,SAAU/4E,EAAIrmB,GACZssF,EAAOzqF,KAAK7B,GAAM,SAAUg/F,EAAGrsC,GACzBzuD,EAAWyuD,GACR1vD,EAAQo5F,QAAW/jE,EAAKhR,IAAIqrC,IAC/Bm9B,EAAKnyE,KAAKg1C,GAEHA,GAAOA,EAAI90D,QAA0B,WAAhBwuF,EAAO15B,IAErCtsC,EAAIssC,MARV,CAWGxyD,WAECi/F,IAAWD,GACbM,KAIGxnF,MAGT4kD,OAAQ,WAYN,OAXAyvB,EAAOzqF,KAAK1B,WAAW,SAAU6+F,EAAGrsC,GAGlC,IAFA,IAAInwD,GAEIA,EAAQ8pF,EAAO2B,QAAQt7B,EAAKm9B,EAAMttF,KAAW,GACnDstF,EAAKxxE,OAAO9b,EAAO,GAEfA,GAASg9F,GACXA,OAICvnF,MAITqP,IAAK,SAAa1nB,GAChB,OAAOA,EAAK0sF,EAAO2B,QAAQruF,EAAIkwF,IAAS,EAAIA,EAAKjyF,OAAS,GAG5D+hG,MAAO,WAKL,OAJI9P,IACFA,EAAO,IAGF73E,MAKT4nF,QAAS,WAGP,OAFAP,EAAUC,EAAQ,GAClBzP,EAAOsP,EAAS,GACTnnF,MAET0vB,SAAU,WACR,OAAQmoD,GAKVgQ,KAAM,WAOJ,OANAR,EAAUC,EAAQ,GAEbH,GAAWD,IACdrP,EAAOsP,EAAS,IAGXnnF,MAET8nF,OAAQ,WACN,QAAST,GAGXU,SAAU,SAAkBtlF,EAAS1a,GAWnC,OAVKs/F,IAEHt/F,EAAO,CAAC0a,GADR1a,EAAOA,GAAQ,IACOb,MAAQa,EAAKb,QAAUa,GAC7Cu/F,EAAM5hF,KAAK3d,GAENm/F,GACHM,KAIGxnF,MAGTwnF,KAAM,WAEJ,OADAnnE,EAAK0nE,SAAS/nF,KAAM9X,WACb8X,MAGTgoF,MAAO,WACL,QAASZ,IAIb,OAAO/mE,GAoCTg0D,EAAOa,OAAO,CACZ+S,SAAU,SAAkBC,GAC1B,IAAIC,EAAS,CAEb,CAAC,SAAU,WAAY9T,EAAOyS,UAAU,UAAWzS,EAAOyS,UAAU,UAAW,GAAI,CAAC,UAAW,OAAQzS,EAAOyS,UAAU,eAAgBzS,EAAOyS,UAAU,eAAgB,EAAG,YAAa,CAAC,SAAU,OAAQzS,EAAOyS,UAAU,eAAgBzS,EAAOyS,UAAU,eAAgB,EAAG,aAC7QsB,EAAS,UACTC,EAAW,CACbC,MAAO,WACL,OAAOF,GAETG,OAAQ,WAEN,OADAC,EAASniG,KAAK6B,WAAW2+F,KAAK3+F,WACvB8X,MAET,MAAS,SAAgBrY,GACvB,OAAO0gG,EAASnhE,KAAK,KAAMv/B,IAG7B8gG,KAAM,WAGJ,IAAIC,EAAMxgG,UACV,OAAOmsF,EAAO4T,UAAS,SAAUU,GAC/BtU,EAAOzqF,KAAKu+F,GAAQ,SAAUznE,EAAIkoE,GAEhC,IAAIjhG,EAAKsE,EAAWy8F,EAAIE,EAAM,MAAQF,EAAIE,EAAM,IAIhDJ,EAASI,EAAM,KAAI,WACjB,IAAIC,EAAWlhG,GAAMA,EAAGU,MAAM2X,KAAM9X,WAEhC2gG,GAAY58F,EAAW48F,EAASjC,SAClCiC,EAASjC,UAAU9jE,SAAS6lE,EAASjjC,QAAQr/D,KAAKsiG,EAAS77E,SAAS+5E,KAAK8B,EAASjC,QAElFiC,EAASC,EAAM,GAAK,QAAQ5oF,KAAMrY,EAAK,CAACkhG,GAAY3gG,iBAI1DwgG,EAAM,QACL9B,WAEL1/D,KAAM,SAAc4hE,EAAaC,EAAYxpC,GAC3C,IAAIypC,EAAW,EAEf,SAASl8E,EAAQm8E,EAAOT,EAAUhoD,EAAS0oD,GACzC,OAAO,WACL,IAAIC,EAAOnpF,KACPjY,EAAOG,UACPkhG,EAAa,WACf,IAAIP,EAAU3hE,EAId,KAAI+hE,EAAQD,GAAZ,CAOA,IAHAH,EAAWroD,EAAQn4C,MAAM8gG,EAAMphG,MAGdygG,EAAS5B,UACxB,MAAM,IAAI9hG,UAAU,4BAOtBoiC,EAAO2hE,IAGe,WAAtBzjG,EAAQyjG,IAA8C,oBAAbA,IAA4BA,EAAS3hE,KAE1Ej7B,EAAWi7B,GAETgiE,EACFhiE,EAAK5kC,KAAKumG,EAAU/7E,EAAQk8E,EAAUR,EAAUlC,EAAU4C,GAAUp8E,EAAQk8E,EAAUR,EAAUjC,EAAS2C,KAGzGF,IACA9hE,EAAK5kC,KAAKumG,EAAU/7E,EAAQk8E,EAAUR,EAAUlC,EAAU4C,GAAUp8E,EAAQk8E,EAAUR,EAAUjC,EAAS2C,GAAUp8E,EAAQk8E,EAAUR,EAAUlC,EAAUkC,EAASa,eAMhK7oD,IAAY8lD,IACd6C,OAAOl2F,EACPlL,EAAO,CAAC8gG,KAKTK,GAAWV,EAASc,aAAaH,EAAMphG,MAI5CwhG,EAAUL,EAAUE,EAAa,WAC/B,IACEA,IACA,MAAO9iG,GACH+tF,EAAO4T,SAASuB,eAClBnV,EAAO4T,SAASuB,cAAcljG,EAAGijG,EAAQE,YAMvCR,EAAQ,GAAKD,IAGXxoD,IAAY+lD,IACd4C,OAAOl2F,EACPlL,EAAO,CAACzB,IAGVkiG,EAASkB,WAAWP,EAAMphG,MAS5BkhG,EACFM,KAIIlV,EAAO4T,SAAS0B,eAClBJ,EAAQE,WAAapV,EAAO4T,SAAS0B,gBAGvCpiG,EAAO25D,WAAWqoC,KAKxB,OAAOlV,EAAO4T,UAAS,SAAUU,GAE/BR,EAAO,GAAG,GAAG/5E,IAAItB,EAAQ,EAAG67E,EAAU18F,EAAWszD,GAAcA,EAAa+mC,EAAUqC,EAASU,aAE/FlB,EAAO,GAAG,GAAG/5E,IAAItB,EAAQ,EAAG67E,EAAU18F,EAAW68F,GAAeA,EAAcxC,IAE9E6B,EAAO,GAAG,GAAG/5E,IAAItB,EAAQ,EAAG67E,EAAU18F,EAAW88F,GAAcA,EAAaxC,OAC3EK,WAILA,QAAS,SAAiB3hG,GACxB,OAAc,MAAPA,EAAcovF,EAAOa,OAAOjwF,EAAKojG,GAAYA,IAGpDG,EAAW,GAkDf,OAhDAnU,EAAOzqF,KAAKu+F,GAAQ,SAAUhmG,EAAGymG,GAC/B,IAAI/Q,EAAO+Q,EAAM,GACbgB,EAAchB,EAAM,GAIxBP,EAASO,EAAM,IAAM/Q,EAAKzpE,IAEtBw7E,GACF/R,EAAKzpE,KAAI,WAGPg6E,EAASwB,IAGXzB,EAAO,EAAIhmG,GAAG,GAAGylG,QAEjBO,EAAO,EAAIhmG,GAAG,GAAGylG,QACjBO,EAAO,GAAG,GAAGN,KACbM,EAAO,GAAG,GAAGN,MAMfhQ,EAAKzpE,IAAIw6E,EAAM,GAAGpB,MAIlBgB,EAASI,EAAM,IAAM,WAEnB,OADAJ,EAASI,EAAM,GAAK,QAAQ5oF,OAASwoF,OAAWv1F,EAAY+M,KAAM9X,WAC3D8X,MAMTwoF,EAASI,EAAM,GAAK,QAAU/Q,EAAKkQ,YAGrCM,EAASzB,QAAQ4B,GAGbN,GACFA,EAAK5lG,KAAKkmG,EAAUA,GAIfA,GAGTqB,KAAM,SAAcC,GAClB,IACA3nE,EAAYj6B,UAAUtC,OAEtBzD,EAAIggC,EAEJ4nE,EAAkB1lG,MAAMlC,GACpB6nG,EAAgB/W,EAAO3wF,KAAK4F,WAEhC+hG,EAAU5V,EAAO4T,WAEjBiC,EAAa,SAAoB/nG,GAC/B,OAAO,SAAUiB,GACf2mG,EAAgB5nG,GAAK6d,KACrBgqF,EAAc7nG,GAAK+F,UAAUtC,OAAS,EAAIqtF,EAAO3wF,KAAK4F,WAAa9E,IAE3D++B,GACN8nE,EAAQX,YAAYS,EAAiBC,KAM3C,GAAI7nE,GAAa,IACfskE,EAAWqD,EAAaG,EAAQ5jG,KAAK6jG,EAAW/nG,IAAI2qB,QAASm9E,EAAQvD,QAASvkE,GAEtD,YAApB8nE,EAAQ3B,SAAyBr8F,EAAW+9F,EAAc7nG,IAAM6nG,EAAc7nG,GAAG+kC,OACnF,OAAO+iE,EAAQ/iE,OAKnB,KAAO/kC,KACLskG,EAAWuD,EAAc7nG,GAAI+nG,EAAW/nG,GAAI8nG,EAAQvD,QAGtD,OAAOuD,EAAQrD,aAKnB,IAAIuD,EAAc,yDAElB9V,EAAO4T,SAASuB,cAAgB,SAAUnoC,EAAOz5B,GAG3CrgC,EAAOolB,SAAWplB,EAAOolB,QAAQC,MAAQy0C,GAAS8oC,EAAYhjG,KAAKk6D,EAAM3+D,OAC3E6E,EAAOolB,QAAQC,KAAK,8BAAgCy0C,EAAM+oC,QAAS/oC,EAAMz5B,MAAOA,IAIpFysD,EAAOgW,eAAiB,SAAUhpC,GAChC95D,EAAO25D,YAAW,WAChB,MAAMG,MAKV,IAAIipC,EAAYjW,EAAO4T,WAsCvB,SAASsC,IACPnjD,EAASztB,oBAAoB,mBAAoB4wE,GACjDhjG,EAAOoyB,oBAAoB,OAAQ4wE,GACnClW,EAAO+Q,QAvCT/Q,EAAO1sF,GAAGy9F,MAAQ,SAAUz9F,GAO1B,OANA2iG,EAAUpjE,KAAKv/B,GAGd6iG,OAAM,SAAUnpC,GACfgzB,EAAOgW,eAAehpC,MAEjBrhD,MAGTq0E,EAAOa,OAAO,CAEZO,SAAS,EAGTgV,UAAW,EAEXrF,MAAO,SAAer+D,KAEP,IAATA,IAAkBstD,EAAOoW,UAAYpW,EAAOoB,WAKhDpB,EAAOoB,SAAU,GAEJ,IAAT1uD,KAAmBstD,EAAOoW,UAAY,GAK1CH,EAAUhB,YAAYliD,EAAU,CAACitC,QAGrCA,EAAO+Q,MAAMl+D,KAAOojE,EAAUpjE,KAYF,aAAxBkgB,EAASsjD,YAAqD,YAAxBtjD,EAASsjD,aAA6BtjD,EAAS80C,gBAAgByO,SAEvGpjG,EAAO25D,WAAWmzB,EAAO+Q,QAGzBh+C,EAAS1tB,iBAAiB,mBAAoB6wE,GAE9ChjG,EAAOmyB,iBAAiB,OAAQ6wE,IAKlC,IAAIK,EAAS,SAASA,EAAOjW,EAAOhtF,EAAIjE,EAAKN,EAAOynG,EAAWC,EAAU/6D,GACvE,IAAI5tC,EAAI,EACJiF,EAAMutF,EAAM/uF,OACZmlG,EAAc,MAAPrnG,EAEX,GAAoB,WAAhB0wF,EAAO1wF,GAGT,IAAKvB,KAFL0oG,GAAY,EAEFnnG,EACRknG,EAAOjW,EAAOhtF,EAAIxF,EAAGuB,EAAIvB,IAAI,EAAM2oG,EAAU/6D,QAG1C,QAAc98B,IAAV7P,IACTynG,GAAY,EAEP5+F,EAAW7I,KACd2sC,GAAM,GAGJg7D,IAEEh7D,GACFpoC,EAAGrF,KAAKqyF,EAAOvxF,GACfuE,EAAK,OAELojG,EAAOpjG,EAEPA,EAAK,SAAYktF,EAAMzsF,EAAMhF,GAC3B,OAAO2nG,EAAKzoG,KAAK+xF,EAAOQ,GAAOzxF,MAKjCuE,GACF,KAAOxF,EAAIiF,EAAKjF,IACdwF,EAAGgtF,EAAMxyF,GAAIuB,EAAKqsC,EAAM3sC,EAAQA,EAAMd,KAAKqyF,EAAMxyF,GAAIA,EAAGwF,EAAGgtF,EAAMxyF,GAAIuB,KAK3E,OAAImnG,EACKlW,EAILoW,EACKpjG,EAAGrF,KAAKqyF,GAGVvtF,EAAMO,EAAGgtF,EAAM,GAAIjxF,GAAOonG,GAI/BE,EAAY,QACZC,EAAa,YAEjB,SAASC,EAAWC,EAAMC,GACxB,OAAOA,EAAOr/F,cAMhB,SAASs/F,EAAU/lF,GACjB,OAAOA,EAAOtG,QAAQgsF,EAAW,OAAOhsF,QAAQisF,EAAYC,GAG9D,IAAII,EAAa,SAAoBC,GAOnC,OAA0B,IAAnBA,EAAM/X,UAAqC,IAAnB+X,EAAM/X,YAAoB+X,EAAM/X,UAGjE,SAASgY,IACPxrF,KAAKu1E,QAAUlB,EAAOkB,QAAUiW,EAAK3iG,MAGvC2iG,EAAK3iG,IAAM,EACX2iG,EAAKznG,UAAY,CACf8hB,MAAO,SAAe0lF,GAEpB,IAAInoG,EAAQmoG,EAAMvrF,KAAKu1E,SAuBvB,OArBKnyF,IACHA,EAAQ,GAIJkoG,EAAWC,KAGTA,EAAM/X,SACR+X,EAAMvrF,KAAKu1E,SAAWnyF,EAItBP,OAAOC,eAAeyoG,EAAOvrF,KAAKu1E,QAAS,CACzCnyF,MAAOA,EACP8B,cAAc,MAMf9B,GAETgd,IAAK,SAAamrF,EAAOpmF,EAAM/hB,GAC7B,IAAIgpB,EACAvG,EAAQ7F,KAAK6F,MAAM0lF,GAGvB,GAAoB,kBAATpmF,EACTU,EAAMwlF,EAAUlmF,IAAS/hB,OAGzB,IAAKgpB,KAAQjH,EACXU,EAAMwlF,EAAUj/E,IAASjH,EAAKiH,GAIlC,OAAOvG,GAET7iB,IAAK,SAAauoG,EAAO7nG,GACvB,YAAeuP,IAARvP,EAAoBsc,KAAK6F,MAAM0lF,GACtCA,EAAMvrF,KAAKu1E,UAAYgW,EAAMvrF,KAAKu1E,SAAS8V,EAAU3nG,KAEvDknG,OAAQ,SAAgBW,EAAO7nG,EAAKN,GAYlC,YAAY6P,IAARvP,GAAqBA,GAAsB,kBAARA,QAA8BuP,IAAV7P,EAClD4c,KAAKhd,IAAIuoG,EAAO7nG,IASzBsc,KAAKI,IAAImrF,EAAO7nG,EAAKN,QAGJ6P,IAAV7P,EAAsBA,EAAQM,IAEvCkhE,OAAQ,SAAgB2mC,EAAO7nG,GAC7B,IAAIvB,EACA0jB,EAAQ0lF,EAAMvrF,KAAKu1E,SAEvB,QAActiF,IAAV4S,EAAJ,CAIA,QAAY5S,IAARvP,EAAmB,CAarBvB,GAREuB,EAHEW,MAAMC,QAAQZ,GAGVA,EAAIgH,IAAI2gG,IAEd3nG,EAAM2nG,EAAU3nG,MAGHmiB,EAAQ,CAACniB,GAAOA,EAAIqoB,MAAMs6E,IAAkB,IAGnDzgG,OAER,KAAOzD,YACE0jB,EAAMniB,EAAIvB,UAKT8Q,IAARvP,GAAqB2wF,EAAOuB,cAAc/vE,MAKxC0lF,EAAM/X,SACR+X,EAAMvrF,KAAKu1E,cAAWtiF,SAEfs4F,EAAMvrF,KAAKu1E,YAIxBkW,QAAS,SAAiBF,GACxB,IAAI1lF,EAAQ0lF,EAAMvrF,KAAKu1E,SACvB,YAAiBtiF,IAAV4S,IAAwBwuE,EAAOuB,cAAc/vE,KAGxD,IAAI6lF,EAAW,IAAIF,EACfG,GAAW,IAAIH,EAUfI,GAAS,gCACTC,GAAa,SA2BjB,SAASC,GAASjX,EAAMnxF,EAAKyhB,GAC3B,IAAIziB,EAGJ,QAAauQ,IAATkS,GAAwC,IAAlB0vE,EAAKrB,SAI7B,GAHA9wF,EAAO,QAAUgB,EAAIsb,QAAQ6sF,GAAY,OAAOzsF,cAG5B,kBAFpB+F,EAAO0vE,EAAKjsC,aAAalmD,IAEK,CAC5B,IACEyiB,EAnCR,SAAiBA,GACf,MAAa,SAATA,GAIS,UAATA,IAIS,SAATA,EACK,KAILA,KAAUA,EAAO,IACXA,EAGNymF,GAAOzkG,KAAKge,GACPwV,KAAKoT,MAAM5oB,GAGbA,GAaM4mF,CAAQ5mF,GACf,MAAO7e,IAGTqlG,GAASvrF,IAAIy0E,EAAMnxF,EAAKyhB,QAExBA,OAAOlS,EAIX,OAAOkS,EAGTkvE,EAAOa,OAAO,CACZuW,QAAS,SAAiB5W,GACxB,OAAO8W,GAASF,QAAQ5W,IAAS6W,EAASD,QAAQ5W,IAEpD1vE,KAAM,SAAc0vE,EAAMnyF,EAAM8nC,GAC9B,OAAOmhE,GAASf,OAAO/V,EAAMnyF,EAAM8nC,IAErCwhE,WAAY,SAAoBnX,EAAMnyF,GACpCipG,GAAS/mC,OAAOiwB,EAAMnyF,IAIxB8nC,MAAO,SAAeqqD,EAAMnyF,EAAMyiB,GAChC,OAAOumF,EAASd,OAAO/V,EAAMnyF,EAAMyiB,IAErC8mF,YAAa,SAAqBpX,EAAMnyF,GACtCgpG,EAAS9mC,OAAOiwB,EAAMnyF,MAG1B2xF,EAAO1sF,GAAGutF,OAAO,CACf/vE,KAAM,SAAczhB,EAAKN,GACvB,IAAIjB,EACAO,EACAyiB,EACA0vE,EAAO70E,KAAK,GACZo7E,EAAQvG,GAAQA,EAAKoD,WAEzB,QAAYhlF,IAARvP,EAAmB,CACrB,GAAIsc,KAAKpa,SACPuf,EAAOwmF,GAAS3oG,IAAI6xF,GAEE,IAAlBA,EAAKrB,WAAmBkY,EAAS1oG,IAAI6xF,EAAM,iBAAiB,CAG9D,IAFA1yF,EAAIi5F,EAAMx1F,OAEHzD,KAGDi5F,EAAMj5F,IAGsB,KAF9BO,EAAO04F,EAAMj5F,GAAGO,MAEPoI,QAAQ,WACfpI,EAAO2oG,EAAU3oG,EAAKwE,MAAM,IAC5B4kG,GAASjX,EAAMnyF,EAAMyiB,EAAKziB,KAKhCgpG,EAAStrF,IAAIy0E,EAAM,gBAAgB,GAIvC,OAAO1vE,EAIT,MAAqB,WAAjB/f,EAAQ1B,GACHsc,KAAKpW,MAAK,WACf+hG,GAASvrF,IAAIJ,KAAMtc,MAIhBknG,EAAO5qF,MAAM,SAAU5c,GAC5B,IAAI+hB,EAMJ,GAAI0vE,QAAkB5hF,IAAV7P,EAKV,YAAa6P,KAFbkS,EAAOwmF,GAAS3oG,IAAI6xF,EAAMnxF,UAUbuP,KAFbkS,EAAO2mF,GAASjX,EAAMnxF,IALbyhB,OAYT,EAIFnF,KAAKpW,MAAK,WAER+hG,GAASvrF,IAAIJ,KAAMtc,EAAKN,QAEzB,KAAMA,EAAO8E,UAAUtC,OAAS,EAAG,MAAM,IAE9ComG,WAAY,SAAoBtoG,GAC9B,OAAOsc,KAAKpW,MAAK,WACf+hG,GAAS/mC,OAAO5kD,KAAMtc,SAI5B2wF,EAAOa,OAAO,CACZoS,MAAO,SAAezS,EAAM9rF,EAAMoc,GAChC,IAAImiF,EAEJ,GAAIzS,EAYF,OAXA9rF,GAAQA,GAAQ,MAAQ,QACxBu+F,EAAQoE,EAAS1oG,IAAI6xF,EAAM9rF,GAEvBoc,KACGmiF,GAASjjG,MAAMC,QAAQ6gB,GAC1BmiF,EAAQoE,EAASd,OAAO/V,EAAM9rF,EAAMsrF,EAAOyB,UAAU3wE,IAErDmiF,EAAM5hF,KAAKP,IAIRmiF,GAAS,IAGpB4E,QAAS,SAAiBrX,EAAM9rF,GAG9B,IAAIu+F,EAAQjT,EAAOiT,MAAMzS,EAFzB9rF,EAAOA,GAAQ,MAGXojG,EAAc7E,EAAM1hG,OACpB+B,EAAK2/F,EAAM39D,QACXyiE,EAAQ/X,EAAOgY,YAAYxX,EAAM9rF,GAM1B,eAAPpB,IACFA,EAAK2/F,EAAM39D,QACXwiE,KAGExkG,IAGW,OAAToB,GACFu+F,EAAMj0B,QAAQ,qBAIT+4B,EAAMjvD,KACbx1C,EAAGrF,KAAKuyF,GAnBC,WACTR,EAAO6X,QAAQrX,EAAM9rF,KAkBDqjG,KAGjBD,GAAeC,GAClBA,EAAMzE,MAAMH,QAIhB6E,YAAa,SAAqBxX,EAAM9rF,GACtC,IAAIrF,EAAMqF,EAAO,aACjB,OAAO2iG,EAAS1oG,IAAI6xF,EAAMnxF,IAAQgoG,EAASd,OAAO/V,EAAMnxF,EAAK,CAC3DikG,MAAOtT,EAAOyS,UAAU,eAAe14E,KAAI,WACzCs9E,EAAS9mC,OAAOiwB,EAAM,CAAC9rF,EAAO,QAASrF,YAK/C2wF,EAAO1sF,GAAGutF,OAAO,CACfoS,MAAO,SAAev+F,EAAMoc,GAC1B,IAAImnF,EAAS,EAQb,MANoB,kBAATvjG,IACToc,EAAOpc,EACPA,EAAO,KACPujG,KAGEpkG,UAAUtC,OAAS0mG,EACdjY,EAAOiT,MAAMtnF,KAAK,GAAIjX,QAGfkK,IAATkS,EAAqBnF,KAAOA,KAAKpW,MAAK,WAC3C,IAAI09F,EAAQjT,EAAOiT,MAAMtnF,KAAMjX,EAAMoc,GAErCkvE,EAAOgY,YAAYrsF,KAAMjX,GAEZ,OAATA,GAA8B,eAAbu+F,EAAM,IACzBjT,EAAO6X,QAAQlsF,KAAMjX,OAI3BmjG,QAAS,SAAiBnjG,GACxB,OAAOiX,KAAKpW,MAAK,WACfyqF,EAAO6X,QAAQlsF,KAAMjX,OAGzBwjG,WAAY,SAAoBxjG,GAC9B,OAAOiX,KAAKsnF,MAAMv+F,GAAQ,KAAM,KAIlC69F,QAAS,SAAiB79F,EAAM9D,GAC9B,IAAIsa,EACAmd,EAAQ,EACR8vE,EAAQnY,EAAO4T,WACfplF,EAAW7C,KACX7d,EAAI6d,KAAKpa,OACTknB,EAAU,aACJ4P,GACN8vE,EAAMlD,YAAYzmF,EAAU,CAACA,KAWjC,IAPoB,kBAAT9Z,IACT9D,EAAM8D,EACNA,OAAOkK,GAGTlK,EAAOA,GAAQ,KAER5G,MACLod,EAAMmsF,EAAS1oG,IAAI6f,EAAS1gB,GAAI4G,EAAO,gBAE5BwW,EAAIooF,QACbjrE,IACAnd,EAAIooF,MAAMv5E,IAAItB,IAKlB,OADAA,IACO0/E,EAAM5F,QAAQ3hG,MAGzB,IAAIwnG,GAAO,sCAAsChiG,OAC7CiiG,GAAU,IAAI/gF,OAAO,iBAAmB8gF,GAAO,cAAe,KAC9DE,GAAY,CAAC,MAAO,QAAS,SAAU,QACvCzQ,GAAkB90C,EAAS80C,gBAE3B72B,GAAa,SAAoBwvB,GACnC,OAAOR,EAAO8C,SAAStC,EAAK2F,cAAe3F,IAEzC+X,GAAW,CACbA,UAAU,GAQR1Q,GAAgB2Q,cAClBxnC,GAAa,SAAoBwvB,GAC/B,OAAOR,EAAO8C,SAAStC,EAAK2F,cAAe3F,IAASA,EAAKgY,YAAYD,MAAc/X,EAAK2F,gBAI5F,IAAIsS,GAAqB,SAA4BjY,EAAMh7D,GAKzD,MAA8B,UAF9Bg7D,EAAOh7D,GAAMg7D,GAED3xE,MAAMu7B,SAA6C,KAAvBo2C,EAAK3xE,MAAMu7B,SAInD4mB,GAAWwvB,IAAyC,SAAhCR,EAAO0Y,IAAIlY,EAAM,YAGvC,SAASmY,GAAUnY,EAAMzoE,EAAM6gF,EAAYC,GACzC,IAAIC,EACAjpF,EACAkpF,EAAgB,GAChBlpE,EAAegpE,EAAQ,WACzB,OAAOA,EAAM7pE,OACX,WACF,OAAOgxD,EAAO0Y,IAAIlY,EAAMzoE,EAAM,KAE5ByV,EAAUqC,IACV0b,EAAOqtD,GAAcA,EAAW,KAAO5Y,EAAOgZ,UAAUjhF,GAAQ,GAAK,MAEzEkhF,EAAgBzY,EAAKrB,WAAaa,EAAOgZ,UAAUjhF,IAAkB,OAATwzB,IAAkB/d,IAAY6qE,GAAQ/4F,KAAK0gF,EAAO0Y,IAAIlY,EAAMzoE,IAExH,GAAIkhF,GAAiBA,EAAc,KAAO1tD,EAAM,CAS9C,IANA/d,GAAoB,EAEpB+d,EAAOA,GAAQ0tD,EAAc,GAE7BA,GAAiBzrE,GAAW,EAErBurE,KAGL/Y,EAAOnxE,MAAM2xE,EAAMzoE,EAAMkhF,EAAgB1tD,IAEpC,EAAI17B,IAAU,GAAKA,EAAQggB,IAAiBrC,GAAW,MAAS,IACnEurE,EAAgB,GAGlBE,GAAgCppF,EAIlCmwE,EAAOnxE,MAAM2xE,EAAMzoE,GADnBkhF,GAAgC,GACS1tD,GAEzCqtD,EAAaA,GAAc,GAe7B,OAZIA,IACFK,GAAiBA,IAAkBzrE,GAAW,EAE9CsrE,EAAWF,EAAW,GAAKK,GAAiBL,EAAW,GAAK,GAAKA,EAAW,IAAMA,EAAW,GAEzFC,IACFA,EAAMttD,KAAOA,EACbstD,EAAMzkG,MAAQ6kG,EACdJ,EAAMxkG,IAAMykG,IAITA,EAGT,IAAII,GAAoB,GAExB,SAASC,GAAkB3Y,GACzB,IAAIuN,EACArO,EAAMc,EAAK2F,cACXT,EAAWlF,EAAKkF,SAChBt7C,EAAU8uD,GAAkBxT,GAEhC,OAAIt7C,IAIJ2jD,EAAOrO,EAAIrW,KAAKwW,YAAYH,EAAIE,cAAc8F,IAC9Ct7C,EAAU41C,EAAO0Y,IAAI3K,EAAM,WAC3BA,EAAKhsE,WAAW+9D,YAAYiO,GAEZ,SAAZ3jD,IACFA,EAAU,SAGZ8uD,GAAkBxT,GAAYt7C,EACvBA,GAGT,SAASgvD,GAAS5qF,EAAU8iB,GAO1B,IANA,IAAI8Y,EACAo2C,EACA7yE,EAAS,GACTzX,EAAQ,EACR3E,EAASid,EAASjd,OAEf2E,EAAQ3E,EAAQ2E,KACrBsqF,EAAOhyE,EAAStY,IAEN2Y,QAIVu7B,EAAUo2C,EAAK3xE,MAAMu7B,QAEjB9Y,GAIc,SAAZ8Y,IACFz8B,EAAOzX,GAASmhG,EAAS1oG,IAAI6xF,EAAM,YAAc,KAE5C7yE,EAAOzX,KACVsqF,EAAK3xE,MAAMu7B,QAAU,KAIE,KAAvBo2C,EAAK3xE,MAAMu7B,SAAkBquD,GAAmBjY,KAClD7yE,EAAOzX,GAASijG,GAAkB3Y,KAGpB,SAAZp2C,IACFz8B,EAAOzX,GAAS,OAEhBmhG,EAAStrF,IAAIy0E,EAAM,UAAWp2C,KAMpC,IAAKl0C,EAAQ,EAAGA,EAAQ3E,EAAQ2E,IACT,MAAjByX,EAAOzX,KACTsY,EAAStY,GAAO2Y,MAAMu7B,QAAUz8B,EAAOzX,IAI3C,OAAOsY,EAGTwxE,EAAO1sF,GAAGutF,OAAO,CACfvvD,KAAM,WACJ,OAAO8nE,GAASztF,MAAM,IAExB8lB,KAAM,WACJ,OAAO2nE,GAASztF,OAElB0tF,OAAQ,SAAgBpF,GACtB,MAAqB,mBAAVA,EACFA,EAAQtoF,KAAK2lB,OAAS3lB,KAAK8lB,OAG7B9lB,KAAKpW,MAAK,WACXkjG,GAAmB9sF,MACrBq0E,EAAOr0E,MAAM2lB,OAEb0uD,EAAOr0E,MAAM8lB,aAKrB,IAMM6nE,GACA/tF,GAPFguF,GAAiB,wBACjBC,GAAW,iCACXC,GAAc,qCAIZH,GADWvmD,EAAS2mD,yBACL7Z,YAAY9sC,EAAS6sC,cAAc,SAClDr0E,GAAQwnC,EAAS6sC,cAAc,UAK7B/qC,aAAa,OAAQ,SAC3BtpC,GAAMspC,aAAa,UAAW,WAC9BtpC,GAAMspC,aAAa,OAAQ,KAC3BykD,GAAIzZ,YAAYt0E,IAGhB2zE,EAAQya,WAAaL,GAAIM,WAAU,GAAMA,WAAU,GAAMrO,UAAUe,QAGnEgN,GAAI5Q,UAAY,yBAChBxJ,EAAQ2a,iBAAmBP,GAAIM,WAAU,GAAMrO,UAAUt2F,aAIzDqkG,GAAI5Q,UAAY,oBAChBxJ,EAAQ/sD,SAAWmnE,GAAI/N,UAIzB,IAAIuO,GAAU,CAIZC,MAAO,CAAC,EAAG,UAAW,YACtB70B,IAAK,CAAC,EAAG,oBAAqB,uBAC9B80B,GAAI,CAAC,EAAG,iBAAkB,oBAC1BC,GAAI,CAAC,EAAG,qBAAsB,yBAC9BC,SAAU,CAAC,EAAG,GAAI,KASpB,SAASC,GAAO/rF,EAASq6E,GAGvB,IAAI78E,EAUJ,OAPEA,EAD0C,qBAAjCwC,EAAQg4E,qBACXh4E,EAAQg4E,qBAAqBqC,GAAO,KACG,qBAA7Br6E,EAAQq4E,iBAClBr4E,EAAQq4E,iBAAiBgC,GAAO,KAEhC,QAGI7pF,IAAR6pF,GAAqBA,GAAO/C,EAASt3E,EAASq6E,GACzCzI,EAAOlpF,MAAM,CAACsX,GAAUxC,GAG1BA,EAIT,SAASwuF,GAAc9Z,EAAO+Z,GAI5B,IAHA,IAAIvsG,EAAI,EACJC,EAAIuyF,EAAM/uF,OAEPzD,EAAIC,EAAGD,IACZupG,EAAStrF,IAAIu0E,EAAMxyF,GAAI,cAAeusG,GAAehD,EAAS1oG,IAAI0rG,EAAYvsG,GAAI,eAjCtFgsG,GAAQQ,MAAQR,GAAQS,MAAQT,GAAQU,SAAWV,GAAQW,QAAUX,GAAQC,MAC7ED,GAAQY,GAAKZ,GAAQG,GAEhB/a,EAAQ/sD,SACX2nE,GAAQa,SAAWb,GAAQ3nE,OAAS,CAAC,EAAG,+BAAgC,cAiC1E,IAAImyD,GAAQ,YAEZ,SAASsW,GAActa,EAAOlyE,EAASysF,EAASC,EAAWC,GAYzD,IAXA,IAAIva,EACAt1E,EACAu9E,EACAp4C,EACAoc,EACAniD,EACA0wF,EAAW5sF,EAAQsrF,yBACnBuB,EAAQ,GACRntG,EAAI,EACJC,EAAIuyF,EAAM/uF,OAEPzD,EAAIC,EAAGD,IAGZ,IAFA0yF,EAAOF,EAAMxyF,KAEQ,IAAT0yF,EAEV,GAAqB,WAAjBT,EAAOS,GAGTR,EAAOlpF,MAAMmkG,EAAOza,EAAKrB,SAAW,CAACqB,GAAQA,QACxC,GAAK8D,GAAMxxF,KAAK0tF,GAEhB,CASL,IARAt1E,EAAMA,GAAO8vF,EAASnb,YAAYzxE,EAAQwxE,cAAc,QAExD6I,GAAO+Q,GAASl6F,KAAKkhF,IAAS,CAAC,GAAI,KAAK,GAAGz1E,cAC3CslC,EAAOypD,GAAQrR,IAAQqR,GAAQI,SAC/BhvF,EAAIw9E,UAAYr4C,EAAK,GAAK2vC,EAAOkb,cAAc1a,GAAQnwC,EAAK,GAE5D/lC,EAAI+lC,EAAK,GAEF/lC,KACLY,EAAMA,EAAIqgF,UAKZvL,EAAOlpF,MAAMmkG,EAAO/vF,EAAI06E,aAExB16E,EAAM8vF,EAAS/Q,YAEXD,YAAc,QApBlBiR,EAAM5pF,KAAKjD,EAAQ+sF,eAAe3a,IA6BxC,IAHAwa,EAAShR,YAAc,GACvBl8F,EAAI,EAEG0yF,EAAOya,EAAMntG,MAElB,GAAIgtG,GAAa9a,EAAO2B,QAAQnB,EAAMsa,IAAc,EAC9CC,GACFA,EAAQ1pF,KAAKmvE,QAejB,GATA/zB,EAAWuE,GAAWwvB,GAEtBt1E,EAAMivF,GAAOa,EAASnb,YAAYW,GAAO,UAErC/zB,GACF2tC,GAAclvF,GAIZ2vF,EAGF,IAFAvwF,EAAI,EAEGk2E,EAAOt1E,EAAIZ,MACZmvF,GAAY3mG,KAAK0tF,EAAK9rF,MAAQ,KAChCmmG,EAAQxpF,KAAKmvE,GAMrB,OAAOwa,EAGT,IAAII,GAAiB,sBAErB,SAASC,KACP,OAAO,EAGT,SAASC,KACP,OAAO,EAST,SAASC,GAAW/a,EAAM9rF,GACxB,OAAO8rF,IAMT,WACE,IACE,OAAOztC,EAASm5C,cAChB,MAAO95F,KATOopG,MAAkC,UAAT9mG,GAY3C,SAAS+mG,GAAIjb,EAAMkb,EAAOzb,EAAUnvE,EAAMxd,EAAIqoG,GAC5C,IAAIC,EAAQlnG,EAEZ,GAAuB,WAAnB3D,EAAQ2qG,GAAqB,CAQ/B,IAAKhnG,IANmB,kBAAburF,IAETnvE,EAAOA,GAAQmvE,EACfA,OAAWrhF,GAGA88F,EACXD,GAAIjb,EAAM9rF,EAAMurF,EAAUnvE,EAAM4qF,EAAMhnG,GAAOinG,GAG/C,OAAOnb,EAoBT,GAjBY,MAAR1vE,GAAsB,MAANxd,GAElBA,EAAK2sF,EACLnvE,EAAOmvE,OAAWrhF,GACH,MAANtL,IACe,kBAAb2sF,GAET3sF,EAAKwd,EACLA,OAAOlS,IAGPtL,EAAKwd,EACLA,EAAOmvE,EACPA,OAAWrhF,KAIJ,IAAPtL,EACFA,EAAKgoG,QACA,IAAKhoG,EACV,OAAOktF,EAgBT,OAbY,IAARmb,IACFC,EAAStoG,GAETA,EAAK,SAAYo7B,GAGf,OADAsxD,IAAS6b,IAAIntE,GACNktE,EAAO5nG,MAAM2X,KAAM9X,aAIzBiuF,KAAO8Z,EAAO9Z,OAAS8Z,EAAO9Z,KAAO9B,EAAO8B,SAG1CtB,EAAKjrF,MAAK,WACfyqF,EAAOtxD,MAAM3U,IAAIpO,KAAM+vF,EAAOpoG,EAAIwd,EAAMmvE,MA4Y5C,SAAS6b,GAAet2E,EAAI9wB,EAAM6mG,GAE3BA,GASLlE,EAAStrF,IAAIyZ,EAAI9wB,GAAM,GACvBsrF,EAAOtxD,MAAM3U,IAAIyL,EAAI9wB,EAAM,CACzBizF,WAAW,EACXx7C,QAAS,SAAiBzd,GACxB,IAAIqtE,EACAp5E,EACAq5E,EAAQ3E,EAAS1oG,IAAIgd,KAAMjX,GAE/B,GAAsB,EAAlBg6B,EAAMutE,WAAiBtwF,KAAKjX,IAI9B,GAAKsnG,EAAMzqG,QAoCCyuF,EAAOtxD,MAAMmmE,QAAQngG,IAAS,IAAIwnG,cAC5CxtE,EAAMytE,uBAlBN,GAfAH,EAAQpd,EAAO3wF,KAAK4F,WACpBwjG,EAAStrF,IAAIJ,KAAMjX,EAAMsnG,GAIzBD,EAAWR,EAAW5vF,KAAMjX,GAC5BiX,KAAKjX,KAGDsnG,KAFJr5E,EAAS00E,EAAS1oG,IAAIgd,KAAMjX,KAEJqnG,EACtB1E,EAAStrF,IAAIJ,KAAMjX,GAAM,GAEzBiuB,EAAS,GAGPq5E,IAAUr5E,EASZ,OAPA+L,EAAM0tE,2BACN1tE,EAAM2tE,iBAMC15E,GAAUA,EAAO5zB,WAanBitG,EAAMzqG,SAEf8lG,EAAStrF,IAAIJ,KAAMjX,EAAM,CACvB3F,MAAOixF,EAAOtxD,MAAM4tE,QAEpBtc,EAAOa,OAAOmb,EAAM,GAAIhc,EAAOuc,MAAM7sG,WAAYssG,EAAMnpG,MAAM,GAAI8Y,QAGnE+iB,EAAM0tE,qCArEqBx9F,IAA3By4F,EAAS1oG,IAAI62B,EAAI9wB,IACnBsrF,EAAOtxD,MAAM3U,IAAIyL,EAAI9wB,EAAM2mG,IAvYjCrb,EAAOtxD,MAAQ,CACb8vD,OAAQ,GACRzkE,IAAK,SAAaymE,EAAMkb,EAAOvvD,EAASr7B,EAAMmvE,GAC5C,IAAIuc,EACAC,EACAvxF,EACAuD,EACAzf,EACA0tG,EACA7H,EACA8H,EACAjoG,EACAkoG,EACAC,EACAC,EAAWzF,EAAS1oG,IAAI6xF,GAE5B,GAAKyW,EAAWzW,GAuChB,IAlCIr0C,EAAQA,UAEVA,GADAqwD,EAAcrwD,GACQA,QACtB8zC,EAAWuc,EAAYvc,UAKrBA,GACFD,EAAOuI,KAAKI,gBAAgBd,GAAiB5H,GAI1C9zC,EAAQ21C,OACX31C,EAAQ21C,KAAO9B,EAAO8B,SAIlBrzE,EAASquF,EAASruF,UACtBA,EAASquF,EAASruF,OAASjgB,OAAOY,OAAO,QAGrCqtG,EAAcK,EAASC,UAC3BN,EAAcK,EAASC,OAAS,SAAU9qG,GAGxC,OAAwC+tF,EAAOtxD,MAAMsuE,YAAc/qG,EAAEyC,KAAOsrF,EAAOtxD,MAAMuuE,SAASjpG,MAAMwsF,EAAM3sF,gBAAa+K,IAM/H5P,GADA0sG,GAASA,GAAS,IAAIhkF,MAAMs6E,IAAkB,CAAC,KACrCzgG,OAEHvC,KAEL0F,EAAOmoG,GADP3xF,EAAMkwF,GAAe97F,KAAKo8F,EAAM1sG,KAAO,IACjB,GACtB4tG,GAAc1xF,EAAI,IAAM,IAAIqC,MAAM,KAAKowB,OAElCjpC,IAKLmgG,EAAU7U,EAAOtxD,MAAMmmE,QAAQngG,IAAS,GAExCA,GAAQurF,EAAW4U,EAAQqH,aAAerH,EAAQqI,WAAaxoG,EAE/DmgG,EAAU7U,EAAOtxD,MAAMmmE,QAAQngG,IAAS,GAExCgoG,EAAY1c,EAAOa,OAAO,CACxBnsF,KAAMA,EACNmoG,SAAUA,EACV/rF,KAAMA,EACNq7B,QAASA,EACT21C,KAAM31C,EAAQ21C,KACd7B,SAAUA,EACVuQ,aAAcvQ,GAAYD,EAAOwJ,KAAK9xE,MAAM84E,aAAa19F,KAAKmtF,GAC9D0H,UAAWiV,EAAWxgF,KAAK,MAC1BogF,IAEGG,EAAWluF,EAAO/Z,OACtBioG,EAAWluF,EAAO/Z,GAAQ,IACjByoG,cAAgB,EAEpBtI,EAAQuI,QAAqE,IAA5DvI,EAAQuI,MAAMnvG,KAAKuyF,EAAM1vE,EAAM8rF,EAAYH,IAC3Djc,EAAKn7D,kBACPm7D,EAAKn7D,iBAAiB3wB,EAAM+nG,IAK9B5H,EAAQ96E,MACV86E,EAAQ96E,IAAI9rB,KAAKuyF,EAAMkc,GAElBA,EAAUvwD,QAAQ21C,OACrB4a,EAAUvwD,QAAQ21C,KAAO31C,EAAQ21C,OAKjC7B,EACF0c,EAAS3qF,OAAO2qF,EAASQ,gBAAiB,EAAGT,GAE7CC,EAAStrF,KAAKqrF,GAIhB1c,EAAOtxD,MAAM8vD,OAAO9pF,IAAQ,IAIhC67D,OAAQ,SAAgBiwB,EAAMkb,EAAOvvD,EAAS8zC,EAAUod,GACtD,IAAI/yF,EACAgzF,EACApyF,EACAuD,EACAzf,EACA0tG,EACA7H,EACA8H,EACAjoG,EACAkoG,EACAC,EACAC,EAAWzF,EAASD,QAAQ5W,IAAS6W,EAAS1oG,IAAI6xF,GAEtD,GAAKsc,IAAcruF,EAASquF,EAASruF,QAArC,CAQA,IAFAzf,GADA0sG,GAASA,GAAS,IAAIhkF,MAAMs6E,IAAkB,CAAC,KACrCzgG,OAEHvC,KAKL,GAHA0F,EAAOmoG,GADP3xF,EAAMkwF,GAAe97F,KAAKo8F,EAAM1sG,KAAO,IACjB,GACtB4tG,GAAc1xF,EAAI,IAAM,IAAIqC,MAAM,KAAKowB,OAElCjpC,EAAL,CAeA,IAPAmgG,EAAU7U,EAAOtxD,MAAMmmE,QAAQngG,IAAS,GAExCioG,EAAWluF,EADX/Z,GAAQurF,EAAW4U,EAAQqH,aAAerH,EAAQqI,WAAaxoG,IACpC,GAC3BwW,EAAMA,EAAI,IAAM,IAAIoM,OAAO,UAAYslF,EAAWxgF,KAAK,iBAAmB,WAE1EkhF,EAAYhzF,EAAIqyF,EAASprG,OAElB+Y,KACLoyF,EAAYC,EAASryF,IAEhB+yF,GAAeR,IAAaH,EAAUG,UAAe1wD,GAAWA,EAAQ21C,OAAS4a,EAAU5a,MAAW52E,IAAOA,EAAIpY,KAAK4pG,EAAU/U,YAAiB1H,GAAYA,IAAayc,EAAUzc,WAAyB,OAAbA,IAAqByc,EAAUzc,YAClO0c,EAAS3qF,OAAO1H,EAAG,GAEfoyF,EAAUzc,UACZ0c,EAASQ,gBAGPtI,EAAQtkC,QACVskC,EAAQtkC,OAAOtiE,KAAKuyF,EAAMkc,IAO5BY,IAAcX,EAASprG,SACpBsjG,EAAQ0I,WAAyE,IAA7D1I,EAAQ0I,SAAStvG,KAAKuyF,EAAMoc,EAAYE,EAASC,SACxE/c,EAAOwd,YAAYhd,EAAM9rF,EAAMooG,EAASC,eAGnCtuF,EAAO/Z,SArCd,IAAKA,KAAQ+Z,EACXuxE,EAAOtxD,MAAM6hC,OAAOiwB,EAAM9rF,EAAOgnG,EAAM1sG,GAAIm9C,EAAS8zC,GAAU,GAyChED,EAAOuB,cAAc9yE,IACvB4oF,EAAS9mC,OAAOiwB,EAAM,mBAG1Byc,SAAU,SAAkBQ,GAC1B,IAAI3vG,EACAwc,EACAsB,EACA+/E,EACA+Q,EACAgB,EACAhqG,EAAO,IAAI1D,MAAM6D,UAAUtC,QAE/Bm9B,EAAQsxD,EAAOtxD,MAAMivE,IAAIF,GACrBd,GAAYtF,EAAS1oG,IAAIgd,KAAM,WAAand,OAAOY,OAAO,OAAOs/B,EAAMh6B,OAAS,GAChFmgG,EAAU7U,EAAOtxD,MAAMmmE,QAAQnmE,EAAMh6B,OAAS,GAIlD,IAFAhB,EAAK,GAAKg7B,EAEL5gC,EAAI,EAAGA,EAAI+F,UAAUtC,OAAQzD,IAChC4F,EAAK5F,GAAK+F,UAAU/F,GAKtB,GAFA4gC,EAAMkvE,eAAiBjyF,MAEnBkpF,EAAQgJ,cAAyD,IAA1ChJ,EAAQgJ,YAAY5vG,KAAK0d,KAAM+iB,GAA1D,CASA,IAJAgvE,EAAe1d,EAAOtxD,MAAMiuE,SAAS1uG,KAAK0d,KAAM+iB,EAAOiuE,GAEvD7uG,EAAI,GAEI69F,EAAU+R,EAAa5vG,QAAU4gC,EAAMovE,wBAI7C,IAHApvE,EAAMqvE,cAAgBpS,EAAQnL,KAC9Bl2E,EAAI,GAEIoyF,EAAY/Q,EAAQgR,SAASryF,QAAUokB,EAAMsvE,iCAG9CtvE,EAAMuvE,aAAsC,IAAxBvB,EAAU/U,YAAuBj5D,EAAMuvE,WAAWnrG,KAAK4pG,EAAU/U,aACxFj5D,EAAMguE,UAAYA,EAClBhuE,EAAM5d,KAAO4rF,EAAU5rF,UAGXlS,KAFZgN,IAAQo0E,EAAOtxD,MAAMmmE,QAAQ6H,EAAUG,WAAa,IAAIE,QAAUL,EAAUvwD,SAASn4C,MAAM23F,EAAQnL,KAAM9sF,MAG1E,KAAxBg7B,EAAM/L,OAAS/W,KAClB8iB,EAAM2tE,iBACN3tE,EAAMytE,oBAYhB,OAJItH,EAAQqJ,cACVrJ,EAAQqJ,aAAajwG,KAAK0d,KAAM+iB,GAG3BA,EAAM/L,SAEfg6E,SAAU,SAAkBjuE,EAAOyvE,GACjC,IAAIrwG,EACA4uG,EACA/S,EACAyU,EACAC,EACAX,EAAe,GACfP,EAAgBgB,EAAUhB,cAC1BnuE,EAAMN,EAAMr9B,OAEhB,GAAI8rG,GAEJnuE,EAAImwD,YAKa,UAAfzwD,EAAMh6B,MAAoBg6B,EAAM4vE,QAAU,GAC1C,KAAOtvE,IAAQrjB,KAAMqjB,EAAMA,EAAIjN,YAAcpW,KAG3C,GAAqB,IAAjBqjB,EAAImwD,WAAmC,UAAfzwD,EAAMh6B,OAAqC,IAAjBs6B,EAAIqM,UAAoB,CAI5E,IAHA+iE,EAAkB,GAClBC,EAAmB,GAEdvwG,EAAI,EAAGA,EAAIqvG,EAAervG,SAKC8Q,IAA1By/F,EAFJ1U,GAFA+S,EAAYyB,EAAUrwG,IAENmyF,SAAW,OAGzBoe,EAAiB1U,GAAO+S,EAAUlM,aAAexQ,EAAO2J,EAAKh+E,MAAMzV,MAAM84B,IAAQ,EAAIgxD,EAAOuI,KAAKoB,EAAKh+E,KAAM,KAAM,CAACqjB,IAAMz9B,QAGvH8sG,EAAiB1U,IACnByU,EAAgB/sF,KAAKqrF,GAIrB0B,EAAgB7sG,QAClBmsG,EAAarsF,KAAK,CAChBmvE,KAAMxxD,EACN2tE,SAAUyB,IAiBpB,OATApvE,EAAMrjB,KAEFwxF,EAAgBgB,EAAU5sG,QAC5BmsG,EAAarsF,KAAK,CAChBmvE,KAAMxxD,EACN2tE,SAAUwB,EAAUtrG,MAAMsqG,KAIvBO,GAETa,QAAS,SAAiBlwG,EAAM24D,GAC9Bx4D,OAAOC,eAAeuxF,EAAOuc,MAAM7sG,UAAWrB,EAAM,CAClDK,YAAY,EACZmC,cAAc,EACdlC,IAAKiJ,EAAWovD,GAAQ,WACtB,GAAIr7C,KAAK6yF,cACP,OAAOx3C,EAAKr7C,KAAK6yF,gBAEjB,WACF,GAAI7yF,KAAK6yF,cACP,OAAO7yF,KAAK6yF,cAAcnwG,IAG9B0d,IAAK,SAAahd,GAChBP,OAAOC,eAAekd,KAAMtd,EAAM,CAChCK,YAAY,EACZmC,cAAc,EACdC,UAAU,EACV/B,MAAOA,QAKf4uG,IAAK,SAAaa,GAChB,OAAOA,EAAcxe,EAAOkB,SAAWsd,EAAgB,IAAIxe,EAAOuc,MAAMiC,IAE1E3J,QAAS,CACP4J,KAAM,CAEJC,UAAU,GAEZC,MAAO,CAELvB,MAAO,SAAetsF,GAGpB,IAAI0U,EAAK7Z,MAAQmF,EAQjB,OANIyoF,GAAezmG,KAAK0yB,EAAG9wB,OAAS8wB,EAAGm5E,OAASjZ,EAASlgE,EAAI,UAE3Ds2E,GAAet2E,EAAI,QAAS61E,KAIvB,GAETiB,QAAS,SAAiBxrF,GAGxB,IAAI0U,EAAK7Z,MAAQmF,EAOjB,OALIyoF,GAAezmG,KAAK0yB,EAAG9wB,OAAS8wB,EAAGm5E,OAASjZ,EAASlgE,EAAI,UAC3Ds2E,GAAet2E,EAAI,UAId,GAIT00E,SAAU,SAAkBxrE,GAC1B,IAAIr9B,EAASq9B,EAAMr9B,OACnB,OAAOkoG,GAAezmG,KAAKzB,EAAOqD,OAASrD,EAAOstG,OAASjZ,EAASr0F,EAAQ,UAAYgmG,EAAS1oG,IAAI0C,EAAQ,UAAYq0F,EAASr0F,EAAQ,OAG9IutG,aAAc,CACZV,aAAc,SAAsBxvE,QAGb9vB,IAAjB8vB,EAAM/L,QAAwB+L,EAAM8vE,gBACtC9vE,EAAM8vE,cAAcK,YAAcnwE,EAAM/L,YAwFlDq9D,EAAOwd,YAAc,SAAUhd,EAAM9rF,EAAMqoG,GAErCvc,EAAKl7D,qBACPk7D,EAAKl7D,oBAAoB5wB,EAAMqoG,KAInC/c,EAAOuc,MAAQ,SAAU36B,EAAKtwE,GAE5B,KAAMqa,gBAAgBq0E,EAAOuc,OAC3B,OAAO,IAAIvc,EAAOuc,MAAM36B,EAAKtwE,GAI3BswE,GAAOA,EAAIltE,MACbiX,KAAK6yF,cAAgB58B,EACrBj2D,KAAKjX,KAAOktE,EAAIltE,KAGhBiX,KAAKmzF,mBAAqBl9B,EAAIm9B,uBAA6CngG,IAAzBgjE,EAAIm9B,mBAClC,IAApBn9B,EAAIi9B,YAAwBxD,GAAaC,GAIzC3vF,KAAKta,OAASuwE,EAAIvwE,QAAkC,IAAxBuwE,EAAIvwE,OAAO8tF,SAAiBvd,EAAIvwE,OAAO0wB,WAAa6/C,EAAIvwE,OACpFsa,KAAKoyF,cAAgBn8B,EAAIm8B,cACzBpyF,KAAKqzF,cAAgBp9B,EAAIo9B,eAEzBrzF,KAAKjX,KAAOktE,EAIVtwE,GACF0uF,EAAOa,OAAOl1E,KAAMra,GAItBqa,KAAKszF,UAAYr9B,GAAOA,EAAIq9B,WAAarxE,KAAKC,MAE9CliB,KAAKq0E,EAAOkB,UAAW,IAKZxxF,UAAY,CACvBsB,YAAagvF,EAAOuc,MACpBuC,mBAAoBxD,GACpBwC,qBAAsBxC,GACtB0C,8BAA+B1C,GAC/B4D,aAAa,EACb7C,eAAgB,WACd,IAAIpqG,EAAI0Z,KAAK6yF,cACb7yF,KAAKmzF,mBAAqBzD,GAEtBppG,IAAM0Z,KAAKuzF,aACbjtG,EAAEoqG,kBAGNF,gBAAiB,WACf,IAAIlqG,EAAI0Z,KAAK6yF,cACb7yF,KAAKmyF,qBAAuBzC,GAExBppG,IAAM0Z,KAAKuzF,aACbjtG,EAAEkqG,mBAGNC,yBAA0B,WACxB,IAAInqG,EAAI0Z,KAAK6yF,cACb7yF,KAAKqyF,8BAAgC3C,GAEjCppG,IAAM0Z,KAAKuzF,aACbjtG,EAAEmqG,2BAGJzwF,KAAKwwF,oBAITnc,EAAOzqF,KAAK,CACV4pG,QAAQ,EACRC,SAAS,EACTj4C,YAAY,EACZk4C,gBAAgB,EAChBC,SAAS,EACTC,QAAQ,EACRC,YAAY,EACZC,SAAS,EACTC,OAAO,EACPC,OAAO,EACPC,UAAU,EACVC,MAAM,EACN,MAAQ,EACRpgB,MAAM,EACNqgB,UAAU,EACVzwG,KAAK,EACL0wG,SAAS,EACTzB,QAAQ,EACR0B,SAAS,EACTr8E,SAAS,EACTC,SAAS,EACTP,SAAS,EACTC,SAAS,EACT28E,WAAW,EACXC,aAAa,EACbC,SAAS,EACTC,SAAS,EACTC,eAAe,EACfC,WAAW,EACXl9E,SAAS,EACTm9E,OAAO,GACNvgB,EAAOtxD,MAAM6vE,SAChBve,EAAOzqF,KAAK,CACVirG,MAAO,UACPC,KAAM,aACL,SAAU/rG,EAAMwnG,GACjBlc,EAAOtxD,MAAMmmE,QAAQngG,GAAQ,CAE3B0oG,MAAO,WAML,OAFAtB,GAAenwF,KAAMjX,EAAM6mG,KAEpB,GAETe,QAAS,WAIP,OAFAR,GAAenwF,KAAMjX,IAEd,GAITwlG,SAAU,WACR,OAAO,GAETgC,aAAcA,MAWlBlc,EAAOzqF,KAAK,CACVmrG,WAAY,YACZC,WAAY,WACZ7uD,aAAc,cACdI,aAAc,eACb,SAAUooB,EAAMqjC,GACjB3d,EAAOtxD,MAAMmmE,QAAQv6B,GAAQ,CAC3B4hC,aAAcyB,EACdT,SAAUS,EACVZ,OAAQ,SAAgBruE,GACtB,IAAI9iB,EACAva,EAASsa,KACTi1F,EAAUlyE,EAAMswE,cAChBtC,EAAYhuE,EAAMguE,UAStB,OANKkE,IAAWA,IAAYvvG,GAAW2uF,EAAO8C,SAASzxF,EAAQuvG,MAC7DlyE,EAAMh6B,KAAOgoG,EAAUG,SACvBjxF,EAAM8wF,EAAUvwD,QAAQn4C,MAAM2X,KAAM9X,WACpC66B,EAAMh6B,KAAOipG,GAGR/xF,OAIbo0E,EAAO1sF,GAAGutF,OAAO,CACfggB,GAAI,SAAYnF,EAAOzb,EAAUnvE,EAAMxd,GACrC,OAAOmoG,GAAI9vF,KAAM+vF,EAAOzb,EAAUnvE,EAAMxd,IAE1CqoG,IAAK,SAAaD,EAAOzb,EAAUnvE,EAAMxd,GACvC,OAAOmoG,GAAI9vF,KAAM+vF,EAAOzb,EAAUnvE,EAAMxd,EAAI,IAE9CuoG,IAAK,SAAaH,EAAOzb,EAAU3sF,GACjC,IAAIopG,EAAWhoG,EAEf,GAAIgnG,GAASA,EAAMW,gBAAkBX,EAAMgB,UAIzC,OAFAA,EAAYhB,EAAMgB,UAClB1c,EAAO0b,EAAMkC,gBAAgB/B,IAAIa,EAAU/U,UAAY+U,EAAUG,SAAW,IAAMH,EAAU/U,UAAY+U,EAAUG,SAAUH,EAAUzc,SAAUyc,EAAUvwD,SACnJxgC,KAGT,GAAuB,WAAnB5a,EAAQ2qG,GAAqB,CAE/B,IAAKhnG,KAAQgnG,EACX/vF,KAAKkwF,IAAInnG,EAAMurF,EAAUyb,EAAMhnG,IAGjC,OAAOiX,KAaT,OAViB,IAAbs0E,GAA0C,oBAAbA,IAE/B3sF,EAAK2sF,EACLA,OAAWrhF,IAGF,IAAPtL,IACFA,EAAKgoG,IAGA3vF,KAAKpW,MAAK,WACfyqF,EAAOtxD,MAAM6hC,OAAO5kD,KAAM+vF,EAAOpoG,EAAI2sF,SAI3C,IAGA6gB,GAAe,wBAEfC,GAAW,oCACPC,GAAe,2CAEnB,SAASC,GAAmBzgB,EAAMuR,GAChC,OAAIrM,EAASlF,EAAM,UAAYkF,EAA8B,KAArBqM,EAAQ5S,SAAkB4S,EAAUA,EAAQ9H,WAAY,OACvFjK,EAAOQ,GAAMjC,SAAS,SAAS,IAGjCiC,EAIT,SAAS0gB,GAAc1gB,GAErB,OADAA,EAAK9rF,MAAsC,OAA9B8rF,EAAKjsC,aAAa,SAAoB,IAAMisC,EAAK9rF,KACvD8rF,EAGT,SAAS2gB,GAAc3gB,GAOrB,MANsC,WAAjCA,EAAK9rF,MAAQ,IAAI7B,MAAM,EAAG,GAC7B2tF,EAAK9rF,KAAO8rF,EAAK9rF,KAAK7B,MAAM,GAE5B2tF,EAAK5rC,gBAAgB,QAGhB4rC,EAGT,SAAS4gB,GAAex/B,EAAKy/B,GAC3B,IAAIvzG,EAAGC,EAAG2G,EAAgB4sG,EAAUC,EAAU9yF,EAE9C,GAAsB,IAAlB4yF,EAAKliB,SAAT,CAKA,GAAIkY,EAASD,QAAQx1B,KAEnBnzD,EADW4oF,EAAS1oG,IAAIizE,GACNnzD,QAKhB,IAAK/Z,KAFL2iG,EAAS9mC,OAAO8wC,EAAM,iBAET5yF,EACX,IAAK3gB,EAAI,EAAGC,EAAI0gB,EAAO/Z,GAAMnD,OAAQzD,EAAIC,EAAGD,IAC1CkyF,EAAOtxD,MAAM3U,IAAIsnF,EAAM3sG,EAAM+Z,EAAO/Z,GAAM5G,IAO9CwpG,GAASF,QAAQx1B,KACnB0/B,EAAWhK,GAASf,OAAO30B,GAC3B2/B,EAAWvhB,EAAOa,OAAO,GAAIygB,GAC7BhK,GAASvrF,IAAIs1F,EAAME,KAKvB,SAASC,GAAS5/B,EAAKy/B,GACrB,IAAI3b,EAAW2b,EAAK3b,SAAS36E,cAEZ,UAAb26E,GAAwB6T,GAAezmG,KAAK8uE,EAAIltE,MAClD2sG,EAAK/U,QAAU1qB,EAAI0qB,QACG,UAAb5G,GAAqC,aAAbA,IACjC2b,EAAKpsG,aAAe2sE,EAAI3sE,cAI5B,SAASwsG,GAASC,EAAYhuG,EAAMP,EAAU4nG,GAE5CrnG,EAAOmrF,EAAKnrF,GACZ,IAAIsnG,EACA9jD,EACA2jD,EACA8G,EACAr0F,EACAoyE,EACA5xF,EAAI,EACJC,EAAI2zG,EAAWnwG,OACfqwG,EAAW7zG,EAAI,EACfgB,EAAQ2E,EAAK,GACbmuG,EAAkBjqG,EAAW7I,GAEjC,GAAI8yG,GAAmB9zG,EAAI,GAAsB,kBAAVgB,IAAuBmwF,EAAQya,YAAcoH,GAASjuG,KAAK/D,GAChG,OAAO2yG,EAAWnsG,MAAK,SAAUW,GAC/B,IAAI81B,EAAO01E,EAAW5jG,GAAG5H,GAErB2rG,IACFnuG,EAAK,GAAK3E,EAAMd,KAAK0d,KAAMzV,EAAO81B,EAAK81E,SAGzCL,GAASz1E,EAAMt4B,EAAMP,EAAU4nG,MAInC,GAAIhtG,IAEFmpD,GADA8jD,EAAWJ,GAAclnG,EAAMguG,EAAW,GAAGvb,eAAe,EAAOub,EAAY3G,IAC9D9Q,WAEkB,IAA/B+Q,EAASpV,WAAWr0F,SACtBypG,EAAW9jD,GAITA,GAAS6jD,GAAS,CAMpB,IAJA4G,GADA9G,EAAU7a,EAAO3pF,IAAI8jG,GAAOa,EAAU,UAAWkG,KAC5B3vG,OAIdzD,EAAIC,EAAGD,IACZwf,EAAO0tF,EAEHltG,IAAM8zG,IACRt0F,EAAO0yE,EAAO70E,MAAMmC,GAAM,GAAM,GAE5Bq0F,GAGF3hB,EAAOlpF,MAAM+jG,EAASV,GAAO7sF,EAAM,YAIvCna,EAASlF,KAAKyzG,EAAW5zG,GAAIwf,EAAMxf,GAGrC,GAAI6zG,EAKF,IAJAjiB,EAAMmb,EAAQA,EAAQtpG,OAAS,GAAG40F,cAElCnG,EAAO3pF,IAAIwkG,EAASsG,IAEfrzG,EAAI,EAAGA,EAAI6zG,EAAY7zG,IAC1Bwf,EAAOutF,EAAQ/sG,GAEX2rG,GAAY3mG,KAAKwa,EAAK5Y,MAAQ,MAAQ2iG,EAASd,OAAOjpF,EAAM,eAAiB0yE,EAAO8C,SAASpD,EAAKpyE,KAChGA,EAAKs0D,KAA2C,YAAnCt0D,EAAK5Y,MAAQ,IAAIqW,cAE5Bi1E,EAAO+hB,WAAaz0F,EAAKiyE,UAC3BS,EAAO+hB,SAASz0F,EAAKs0D,IAAK,CACxB0d,MAAOhyE,EAAKgyE,OAAShyE,EAAKinC,aAAa,UACtCmrC,GAGLF,EAAQlyE,EAAK08E,YAAYr/E,QAAQq2F,GAAc,IAAK1zF,EAAMoyE,IAQtE,OAAOgiB,EAGT,SAAS3wC,GAAQyvB,EAAMP,EAAU+hB,GAK/B,IAJA,IAAI10F,EACA2tF,EAAQhb,EAAWD,EAAOvjE,OAAOwjE,EAAUO,GAAQA,EACnD1yF,EAAI,EAEoB,OAApBwf,EAAO2tF,EAAMntG,IAAaA,IAC3Bk0G,GAA8B,IAAlB10F,EAAK6xE,UACpBa,EAAOiiB,UAAU9H,GAAO7sF,IAGtBA,EAAKyU,aACHigF,GAAYhxC,GAAW1jD,IACzB8sF,GAAcD,GAAO7sF,EAAM,WAG7BA,EAAKyU,WAAW+9D,YAAYxyE,IAIhC,OAAOkzE,EAGTR,EAAOa,OAAO,CACZqa,cAAe,SAAuB4G,GACpC,OAAOA,GAET32F,MAAO,SAAeq1E,EAAM0hB,EAAeC,GACzC,IAAIr0G,EACAC,EACAq0G,EACAC,EACAl3F,EAAQq1E,EAAKoZ,WAAU,GACvB0I,EAAStxC,GAAWwvB,GAExB,IAAKtB,EAAQ2a,iBAAqC,IAAlBrZ,EAAKrB,UAAoC,KAAlBqB,EAAKrB,YAAqBa,EAAOgQ,SAASxP,GAK/F,IAHA6hB,EAAelI,GAAOhvF,GAGjBrd,EAAI,EAAGC,GAFZq0G,EAAcjI,GAAO3Z,IAEOjvF,OAAQzD,EAAIC,EAAGD,IACzC0zG,GAASY,EAAYt0G,GAAIu0G,EAAav0G,IAK1C,GAAIo0G,EACF,GAAIC,EAIF,IAHAC,EAAcA,GAAejI,GAAO3Z,GACpC6hB,EAAeA,GAAgBlI,GAAOhvF,GAEjCrd,EAAI,EAAGC,EAAIq0G,EAAY7wG,OAAQzD,EAAIC,EAAGD,IACzCszG,GAAegB,EAAYt0G,GAAIu0G,EAAav0G,SAG9CszG,GAAe5gB,EAAMr1E,GAYzB,OAPAk3F,EAAelI,GAAOhvF,EAAO,WAEZ5Z,OAAS,GACxB6oG,GAAciI,GAAeC,GAAUnI,GAAO3Z,EAAM,WAI/Cr1E,GAET82F,UAAW,SAAmB3hB,GAO5B,IANA,IAAIxvE,EACA0vE,EACA9rF,EACAmgG,EAAU7U,EAAOtxD,MAAMmmE,QACvB/mG,EAAI,OAEqB8Q,KAArB4hF,EAAOF,EAAMxyF,IAAmBA,IACtC,GAAImpG,EAAWzW,GAAO,CACpB,GAAI1vE,EAAO0vE,EAAK6W,EAASnW,SAAU,CACjC,GAAIpwE,EAAKrC,OACP,IAAK/Z,KAAQoc,EAAKrC,OACZomF,EAAQngG,GACVsrF,EAAOtxD,MAAM6hC,OAAOiwB,EAAM9rF,GAE1BsrF,EAAOwd,YAAYhd,EAAM9rF,EAAMoc,EAAKisF,QAO1Cvc,EAAK6W,EAASnW,cAAWtiF,EAGvB4hF,EAAK8W,GAASpW,WAGhBV,EAAK8W,GAASpW,cAAWtiF,OAMnCohF,EAAO1sF,GAAGutF,OAAO,CACf5rC,OAAQ,SAAgBgrC,GACtB,OAAOlvB,GAAQplD,KAAMs0E,GAAU,IAEjC1vB,OAAQ,SAAgB0vB,GACtB,OAAOlvB,GAAQplD,KAAMs0E,IAEvB3qE,KAAM,SAAcvmB,GAClB,OAAOwnG,EAAO5qF,MAAM,SAAU5c,GAC5B,YAAiB6P,IAAV7P,EAAsBixF,EAAO1qE,KAAK3J,MAAQA,KAAK2nF,QAAQ/9F,MAAK,WAC3C,IAAlBoW,KAAKwzE,UAAoC,KAAlBxzE,KAAKwzE,UAAqC,IAAlBxzE,KAAKwzE,WACtDxzE,KAAKq+E,YAAcj7F,QAGtB,KAAMA,EAAO8E,UAAUtC,SAE5BgxG,OAAQ,WACN,OAAOd,GAAS91F,KAAM9X,WAAW,SAAU2sF,GACnB,IAAlB70E,KAAKwzE,UAAoC,KAAlBxzE,KAAKwzE,UAAqC,IAAlBxzE,KAAKwzE,UACzC8hB,GAAmBt1F,KAAM60E,GAC/BX,YAAYW,OAIzBgiB,QAAS,WACP,OAAOf,GAAS91F,KAAM9X,WAAW,SAAU2sF,GACzC,GAAsB,IAAlB70E,KAAKwzE,UAAoC,KAAlBxzE,KAAKwzE,UAAqC,IAAlBxzE,KAAKwzE,SAAgB,CACtE,IAAI9tF,EAAS4vG,GAAmBt1F,KAAM60E,GACtCnvF,EAAOoxG,aAAajiB,EAAMnvF,EAAO44F,iBAIvCngB,OAAQ,WACN,OAAO23B,GAAS91F,KAAM9X,WAAW,SAAU2sF,GACrC70E,KAAKoW,YACPpW,KAAKoW,WAAW0gF,aAAajiB,EAAM70E,UAIzCo+D,MAAO,WACL,OAAO03B,GAAS91F,KAAM9X,WAAW,SAAU2sF,GACrC70E,KAAKoW,YACPpW,KAAKoW,WAAW0gF,aAAajiB,EAAM70E,KAAKw7E,iBAI9CmM,MAAO,WAIL,IAHA,IAAI9S,EACA1yF,EAAI,EAEmB,OAAnB0yF,EAAO70E,KAAK7d,IAAaA,IACT,IAAlB0yF,EAAKrB,WAEPa,EAAOiiB,UAAU9H,GAAO3Z,GAAM,IAE9BA,EAAKwJ,YAAc,IAIvB,OAAOr+E,MAETR,MAAO,SAAe+2F,EAAeC,GAGnC,OAFAD,EAAiC,MAAjBA,GAAgCA,EAChDC,EAAyC,MAArBA,EAA4BD,EAAgBC,EACzDx2F,KAAKtV,KAAI,WACd,OAAO2pF,EAAO70E,MAAMQ,KAAMu2F,EAAeC,OAG7CL,KAAM,SAAc/yG,GAClB,OAAOwnG,EAAO5qF,MAAM,SAAU5c,GAC5B,IAAIyxF,EAAO70E,KAAK,IAAM,GAClB7d,EAAI,EACJC,EAAI4d,KAAKpa,OAEb,QAAcqN,IAAV7P,GAAyC,IAAlByxF,EAAKrB,SAC9B,OAAOqB,EAAKkI,UAId,GAAqB,kBAAV35F,IAAuB+xG,GAAahuG,KAAK/D,KAAW+qG,IAASN,GAASl6F,KAAKvQ,IAAU,CAAC,GAAI,KAAK,GAAGgc,eAAgB,CAC3Hhc,EAAQixF,EAAOkb,cAAcnsG,GAE7B,IACE,KAAOjB,EAAIC,EAAGD,IAGU,KAFtB0yF,EAAO70E,KAAK7d,IAAM,IAETqxF,WACPa,EAAOiiB,UAAU9H,GAAO3Z,GAAM,IAC9BA,EAAKkI,UAAY35F,GAIrByxF,EAAO,EACP,MAAOvuF,KAGPuuF,GACF70E,KAAK2nF,QAAQiP,OAAOxzG,KAErB,KAAMA,EAAO8E,UAAUtC,SAE5BmxG,YAAa,WACX,IAAI3H,EAAU,GAEd,OAAO0G,GAAS91F,KAAM9X,WAAW,SAAU2sF,GACzC,IAAI7iE,EAAShS,KAAKoW,WAEdi+D,EAAO2B,QAAQh2E,KAAMovF,GAAW,IAClC/a,EAAOiiB,UAAU9H,GAAOxuF,OAEpBgS,GACFA,EAAOglF,aAAaniB,EAAM70E,SAI7BovF,MAGP/a,EAAOzqF,KAAK,CACVqtG,SAAU,SACVC,UAAW,UACXJ,aAAc,SACdK,YAAa,QACbC,WAAY,gBACX,SAAU10G,EAAMq5B,GACjBs4D,EAAO1sF,GAAGjF,GAAQ,SAAU4xF,GAO1B,IANA,IAAIK,EACA10E,EAAM,GACNo3F,EAAShjB,EAAOC,GAChB1/C,EAAOyiE,EAAOzxG,OAAS,EACvBzD,EAAI,EAEDA,GAAKyyC,EAAMzyC,IAChBwyF,EAAQxyF,IAAMyyC,EAAO50B,KAAOA,KAAKR,OAAM,GACvC60E,EAAOgjB,EAAOl1G,IAAI45B,GAAU44D,GAG5BjvE,EAAKrd,MAAM4X,EAAK00E,EAAM3xF,OAGxB,OAAOgd,KAAK00E,UAAUz0E,OAG1B,IAAIq3F,GAAY,IAAI3rF,OAAO,KAAO8gF,GAAO,kBAAmB,KAExD8K,GAAY,SAAmB1iB,GAIjC,IAAIqf,EAAOrf,EAAK2F,cAAc6B,YAM9B,OAJK6X,GAASA,EAAKsD,SACjBtD,EAAO3sG,GAGF2sG,EAAKx9E,iBAAiBm+D,IAG3B4iB,GAAO,SAAc5iB,EAAM7pF,EAASxD,GACtC,IAAIyY,EACAvd,EACAg1G,EAAM,GAEV,IAAKh1G,KAAQsI,EACX0sG,EAAIh1G,GAAQmyF,EAAK3xE,MAAMxgB,GACvBmyF,EAAK3xE,MAAMxgB,GAAQsI,EAAQtI,GAK7B,IAAKA,KAFLud,EAAMzY,EAASlF,KAAKuyF,GAEP7pF,EACX6pF,EAAK3xE,MAAMxgB,GAAQg1G,EAAIh1G,GAGzB,OAAOud,GAGL03F,GAAY,IAAIhsF,OAAOghF,GAAUl8E,KAAK,KAAM,KAyHhD,SAASmnF,GAAO/iB,EAAMnyF,EAAMm1G,GAC1B,IAAIpyF,EACAqyF,EACAztF,EACApK,EAKJiD,EAAQ2xE,EAAK3xE,MAgCb,OA/BA20F,EAAWA,GAAYN,GAAU1iB,MAOnB,MAFZ50E,EAAM43F,EAAS/9E,iBAAiBp3B,IAASm1G,EAASn1G,KAE/B2iE,GAAWwvB,KAC5B50E,EAAMo0E,EAAOnxE,MAAM2xE,EAAMnyF,KAQtB6wF,EAAQwkB,kBAAoBT,GAAUnwG,KAAK8Y,IAAQ03F,GAAUxwG,KAAKzE,KAErE+iB,EAAQvC,EAAMuC,MACdqyF,EAAW50F,EAAM40F,SACjBztF,EAAWnH,EAAMmH,SAEjBnH,EAAM40F,SAAW50F,EAAMmH,SAAWnH,EAAMuC,MAAQxF,EAChDA,EAAM43F,EAASpyF,MAEfvC,EAAMuC,MAAQA,EACdvC,EAAM40F,SAAWA,EACjB50F,EAAMmH,SAAWA,SAINpX,IAARgN,EAEPA,EAAM,GAAKA,EAGb,SAAS+3F,GAAaC,EAAaC,GAEjC,MAAO,CACLl1G,IAAK,WACH,IAAIi1G,IAQJ,OAAQj4F,KAAKhd,IAAMk1G,GAAQ7vG,MAAM2X,KAAM9X,kBAL9B8X,KAAKhd,OA5KpB,WAGE,SAASm1G,IAEP,GAAKxK,EAAL,CAIAj1E,EAAUxV,MAAMk1F,QAAU,+EAC1BzK,EAAIzqF,MAAMk1F,QAAU,4HACpBlc,GAAgBhI,YAAYx7D,GAAWw7D,YAAYyZ,GACnD,IAAI0K,EAAW9wG,EAAOmvB,iBAAiBi3E,GACvC2K,EAAoC,OAAjBD,EAAS1vF,IAE5B4vF,EAAoE,KAA5CC,EAAmBH,EAASI,YAGpD9K,EAAIzqF,MAAMwF,MAAQ,MAClBgwF,EAA2D,KAAvCF,EAAmBH,EAAS3vF,OAGhDiwF,EAA8D,KAAvCH,EAAmBH,EAAS5yF,OAKnDkoF,EAAIzqF,MAAMq9B,SAAW,WACrBq4D,EAA+D,KAA5CJ,EAAmB7K,EAAIkL,YAAc,GACxD3c,GAAgB/H,YAAYz7D,GAG5Bi1E,EAAM,MAGR,SAAS6K,EAAmBM,GAC1B,OAAO3sG,KAAKc,MAAMtD,WAAWmvG,IAG/B,IAAIR,EACAK,EACAC,EACAF,EACAK,EACAR,EACA7/E,EAAY0uB,EAAS6sC,cAAc,OACnC0Z,EAAMvmD,EAAS6sC,cAAc,OAE5B0Z,EAAIzqF,QAMTyqF,EAAIzqF,MAAM81F,eAAiB,cAC3BrL,EAAIM,WAAU,GAAM/qF,MAAM81F,eAAiB,GAC3CzlB,EAAQ0lB,gBAA+C,gBAA7BtL,EAAIzqF,MAAM81F,eACpC3kB,EAAOa,OAAO3B,EAAS,CACrB2lB,kBAAmB,WAEjB,OADAf,IACOQ,GAETZ,eAAgB,WAEd,OADAI,IACOO,GAETS,cAAe,WAEb,OADAhB,IACOG,GAETc,mBAAoB,WAElB,OADAjB,IACOI,GAETc,cAAe,WAEb,OADAlB,IACOS,GAWTU,qBAAsB,WACpB,IAAInsF,EAAOkhF,EAAIkL,EAASC,EA0BxB,OAxB+B,MAA3BT,IACF5rF,EAAQi6B,EAAS6sC,cAAc,SAC/Boa,EAAKjnD,EAAS6sC,cAAc,MAC5BslB,EAAUnyD,EAAS6sC,cAAc,OACjC9mE,EAAMjK,MAAMk1F,QAAU,2DACtB/J,EAAGnrF,MAAMk1F,QAAU,mBAInB/J,EAAGnrF,MAAM6D,OAAS,MAClBwyF,EAAQr2F,MAAM6D,OAAS,MAOvBwyF,EAAQr2F,MAAMu7B,QAAU,QACxBy9C,GAAgBhI,YAAY/mE,GAAO+mE,YAAYma,GAAIna,YAAYqlB,GAC/DC,EAAUjyG,EAAOmvB,iBAAiB23E,GAClC0K,EAA0B95F,SAASu6F,EAAQzyF,OAAQ,IAAM9H,SAASu6F,EAAQC,eAAgB,IAAMx6F,SAASu6F,EAAQE,kBAAmB,MAAQrL,EAAGsL,aAC/Izd,GAAgB/H,YAAYhnE,IAGvB4rF,MAlHb,GAsLA,IAAIa,GAAc,CAAC,SAAU,MAAO,MAChCC,GAAazyD,EAAS6sC,cAAc,OAAO/wE,MAC3C42F,GAAc,GAiBlB,SAASC,GAAcr3G,GACrB,IAAIgnD,EAAQ2qC,EAAO2lB,SAASt3G,IAASo3G,GAAYp3G,GAEjD,OAAIgnD,IAIAhnD,KAAQm3G,GACHn3G,EAGFo3G,GAAYp3G,GA1BrB,SAAwBA,GAKtB,IAHA,IAAIu3G,EAAUv3G,EAAK,GAAGqJ,cAAgBrJ,EAAKwE,MAAM,GAC7C/E,EAAIy3G,GAAYh0G,OAEbzD,KAGL,IAFAO,EAAOk3G,GAAYz3G,GAAK83G,KAEZJ,GACV,OAAOn3G,EAiBgBw3G,CAAex3G,IAASA,GAGrD,IAGAy3G,GAAe,4BACXC,GAAc,MACdC,GAAU,CACZ95D,SAAU,WACV+5D,WAAY,SACZ77D,QAAS,SAEP87D,GAAqB,CACvBC,cAAe,IACfC,WAAY,OAGd,SAASC,GAAkB1lB,EAAO5xF,EAAOu3G,GAGvC,IAAI7uF,EAAU4gF,GAAQ/4F,KAAKvQ,GAC3B,OAAO0oB,EACP3f,KAAK6B,IAAI,EAAG8d,EAAQ,IAAM6uF,GAAY,KAAO7uF,EAAQ,IAAM,MAAQ1oB,EAGrE,SAASw3G,GAAmB/lB,EAAMprF,EAAWmuB,EAAKijF,EAAa/jF,EAAQgkF,GACrE,IAAI34G,EAAkB,UAAdsH,EAAwB,EAAI,EAChC6gF,EAAQ,EACRl2D,EAAQ,EAEZ,GAAIwD,KAASijF,EAAc,SAAW,WACpC,OAAO,EAGT,KAAO14G,EAAI,EAAGA,GAAK,EAEL,WAARy1B,IACFxD,GAASigE,EAAO0Y,IAAIlY,EAAMj9D,EAAM+0E,GAAUxqG,IAAI,EAAM20B,IAIjD+jF,GAaS,YAARjjF,IACFxD,GAASigE,EAAO0Y,IAAIlY,EAAM,UAAY8X,GAAUxqG,IAAI,EAAM20B,IAIhD,WAARc,IACFxD,GAASigE,EAAO0Y,IAAIlY,EAAM,SAAW8X,GAAUxqG,GAAK,SAAS,EAAM20B,MAjBrE1C,GAASigE,EAAO0Y,IAAIlY,EAAM,UAAY8X,GAAUxqG,IAAI,EAAM20B,GAE9C,YAARc,EACFxD,GAASigE,EAAO0Y,IAAIlY,EAAM,SAAW8X,GAAUxqG,GAAK,SAAS,EAAM20B,GAEnEwzD,GAAS+J,EAAO0Y,IAAIlY,EAAM,SAAW8X,GAAUxqG,GAAK,SAAS,EAAM20B,IA0BzE,OARK+jF,GAAeC,GAAe,IAGjC1mF,GAASjoB,KAAK6B,IAAI,EAAG7B,KAAKs/C,KAAKopC,EAAK,SAAWprF,EAAU,GAAGsC,cAAgBtC,EAAUvC,MAAM,IAAM4zG,EAAc1mF,EAAQk2D,EAAQ,MAE1H,GAGDl2D,EAGT,SAAS2mF,GAAiBlmB,EAAMprF,EAAW6gF,GAEzC,IAAIxzD,EAASygF,GAAU1iB,GAInBgmB,IADetnB,EAAQ2lB,qBAAuB5uB,IACoC,eAAjD+J,EAAO0Y,IAAIlY,EAAM,aAAa,EAAO/9D,GACtEkkF,EAAmBH,EACnB/5F,EAAM82F,GAAO/iB,EAAMprF,EAAWqtB,GAC9BmkF,EAAa,SAAWxxG,EAAU,GAAGsC,cAAgBtC,EAAUvC,MAAM,GAGzE,GAAIowG,GAAUnwG,KAAK2Z,GAAM,CACvB,IAAKwpE,EACH,OAAOxpE,EAGTA,EAAM,OA8BR,QAxBMyyE,EAAQ2lB,qBAAuB2B,IAIpCtnB,EAAQ+lB,wBAA0Bvf,EAASlF,EAAM,OAE1C,SAAR/zE,IAECnX,WAAWmX,IAAuD,WAA/CuzE,EAAO0Y,IAAIlY,EAAM,WAAW,EAAO/9D,KACvD+9D,EAAKqmB,iBAAiBt1G,SACpBi1G,EAA+D,eAAjDxmB,EAAO0Y,IAAIlY,EAAM,aAAa,EAAO/9D,IAInDkkF,EAAmBC,KAAcpmB,KAG/B/zE,EAAM+zE,EAAKomB,MAKfn6F,EAAMnX,WAAWmX,IAAQ,GAEZ85F,GAAmB/lB,EAAMprF,EAAW6gF,IAAUuwB,EAAc,SAAW,WAAYG,EAAkBlkF,EAClHhW,GAAO,KA2PT,SAASq6F,GAAMtmB,EAAM7pF,EAASohB,EAAM1jB,EAAK27B,GACvC,OAAO,IAAI82E,GAAMp3G,UAAUy+D,KAAKqyB,EAAM7pF,EAASohB,EAAM1jB,EAAK27B,GAzP5DgwD,EAAOa,OAAO,CAGZkmB,SAAU,CACR76B,QAAS,CACPv9E,IAAK,SAAa6xF,EAAMgjB,GACtB,GAAIA,EAAU,CAEZ,IAAI53F,EAAM23F,GAAO/iB,EAAM,WACvB,MAAe,KAAR50E,EAAa,IAAMA,MAMlCotF,UAAW,CACT,yBAA2B,EAC3B,aAAe,EACf,aAAe,EACf,UAAY,EACZ,YAAc,EACd,YAAc,EACd,UAAY,EACZ,YAAc,EACd,eAAiB,EACjB,iBAAmB,EACnB,SAAW,EACX,YAAc,EACd,cAAgB,EAChB,YAAc,EACd,SAAW,EACX,OAAS,EACT,SAAW,EACX,QAAU,EACV,QAAU,EACV,MAAQ,GAIV2M,SAAU,GAEV92F,MAAO,SAAe2xE,EAAMnyF,EAAMU,EAAOknF,GAEvC,GAAKuK,GAA0B,IAAlBA,EAAKrB,UAAoC,IAAlBqB,EAAKrB,UAAmBqB,EAAK3xE,MAAjE,CAKA,IAAIjD,EACAlX,EACAqjG,EACAiP,EAAWhQ,EAAU3oG,GACrB44G,EAAelB,GAAYjzG,KAAKzE,GAChCwgB,EAAQ2xE,EAAK3xE,MAWjB,GAPKo4F,IACH54G,EAAOq3G,GAAcsB,IAIvBjP,EAAQ/X,EAAO+mB,SAAS14G,IAAS2xF,EAAO+mB,SAASC,QAEnCpoG,IAAV7P,EAoCF,OAAIgpG,GAAS,QAASA,QAAmDn5F,KAAzCgN,EAAMmsF,EAAMppG,IAAI6xF,GAAM,EAAOvK,IACpDrqE,EAIFiD,EAAMxgB,GAtCA,YAFbqG,EAAO3D,EAAQhC,MAEW6c,EAAMysF,GAAQ/4F,KAAKvQ,KAAW6c,EAAI,KAC1D7c,EAAQ4pG,GAAUnY,EAAMnyF,EAAMud,GAE9BlX,EAAO,UAII,MAAT3F,GAAiBA,IAAUA,IAOlB,WAAT2F,GAAsBuyG,IACxBl4G,GAAS6c,GAAOA,EAAI,KAAOo0E,EAAOgZ,UAAUgO,GAAY,GAAK,OAI1D9nB,EAAQ0lB,iBAA6B,KAAV71G,GAA+C,IAA/BV,EAAKoI,QAAQ,gBAC3DoY,EAAMxgB,GAAQ,WAIX0pG,GAAW,QAASA,QAAsDn5F,KAA3C7P,EAAQgpG,EAAMhsF,IAAIy0E,EAAMzxF,EAAOknF,MAC7DgxB,EACFp4F,EAAM+Y,YAAYv5B,EAAMU,GAExB8f,EAAMxgB,GAAQU,MAatB2pG,IAAK,SAAalY,EAAMnyF,EAAM4nF,EAAOxzD,GACnC,IAAIhW,EACA0Z,EACA4xE,EACAiP,EAAWhQ,EAAU3oG,GA2BzB,OA1BmB03G,GAAYjzG,KAAKzE,KAKlCA,EAAOq3G,GAAcsB,KAIvBjP,EAAQ/X,EAAO+mB,SAAS14G,IAAS2xF,EAAO+mB,SAASC,KAEpC,QAASjP,IACpBtrF,EAAMsrF,EAAMppG,IAAI6xF,GAAM,EAAMvK,SAIlBr3E,IAAR6N,IACFA,EAAM82F,GAAO/iB,EAAMnyF,EAAMo0B,IAIf,WAARhW,GAAoBpe,KAAQ63G,KAC9Bz5F,EAAMy5F,GAAmB73G,IAIb,KAAV4nF,GAAgBA,GAClB9vD,EAAM7wB,WAAWmX,IACA,IAAVwpE,GAAkBlhF,SAASoxB,GAAOA,GAAO,EAAI1Z,GAG/CA,KAGXuzE,EAAOzqF,KAAK,CAAC,SAAU,UAAU,SAAU82B,EAAIj3B,GAC7C4qF,EAAO+mB,SAAS3xG,GAAa,CAC3BzG,IAAK,SAAa6xF,EAAMgjB,EAAUvtB,GAChC,GAAIutB,EAGF,OAAOsC,GAAahzG,KAAKktF,EAAO0Y,IAAIlY,EAAM,aAMzCA,EAAKqmB,iBAAiBt1G,QAAWivF,EAAK98D,wBAAwBtS,MAE1Ds1F,GAAiBlmB,EAAMprF,EAAW6gF,GAFiCmtB,GAAK5iB,EAAMwlB,IAAS,WAC1F,OAAOU,GAAiBlmB,EAAMprF,EAAW6gF,OAI/ClqE,IAAK,SAAay0E,EAAMzxF,EAAOknF,GAC7B,IAAIx+D,EACAgL,EAASygF,GAAU1iB,GAGvB0mB,GAAsBhoB,EAAQ8lB,iBAAuC,aAApBviF,EAAOypB,SAGpDs6D,GADcU,GAAsBjxB,IAC8C,eAAjD+J,EAAO0Y,IAAIlY,EAAM,aAAa,EAAO/9D,GACtE6jF,EAAWrwB,EAAQswB,GAAmB/lB,EAAMprF,EAAW6gF,EAAOuwB,EAAa/jF,GAAU,EAazF,OAVI+jF,GAAeU,IACjBZ,GAAYxuG,KAAKs/C,KAAKopC,EAAK,SAAWprF,EAAU,GAAGsC,cAAgBtC,EAAUvC,MAAM,IAAMyC,WAAWmtB,EAAOrtB,IAAcmxG,GAAmB/lB,EAAMprF,EAAW,UAAU,EAAOqtB,GAAU,KAItL6jF,IAAa7uF,EAAU4gF,GAAQ/4F,KAAKvQ,KAAoC,QAAxB0oB,EAAQ,IAAM,QAChE+oE,EAAK3xE,MAAMzZ,GAAarG,EACxBA,EAAQixF,EAAO0Y,IAAIlY,EAAMprF,IAGpBixG,GAAkB7lB,EAAMzxF,EAAOu3G,QAI5CtmB,EAAO+mB,SAAS3C,WAAaT,GAAazkB,EAAQ6lB,oBAAoB,SAAUvkB,EAAMgjB,GACpF,GAAIA,EACF,OAAQluG,WAAWiuG,GAAO/iB,EAAM,gBAAkBA,EAAK98D,wBAAwBtP,KAAOgvF,GAAK5iB,EAAM,CAC/F4jB,WAAY,IACX,WACD,OAAO5jB,EAAK98D,wBAAwBtP,SAChC,QAIV4rE,EAAOzqF,KAAK,CACV4e,OAAQ,GACRw7B,QAAS,GACT5G,OAAQ,UACP,SAAUvrB,EAAQkF,GACnBs9D,EAAO+mB,SAASvpF,EAASkF,GAAU,CACjCykF,OAAQ,SAAgBp4G,GAMtB,IALA,IAAIjB,EAAI,EACJs5G,EAAW,GAEfviD,EAAyB,kBAAV91D,EAAqBA,EAAMwe,MAAM,KAAO,CAACxe,GAEjDjB,EAAI,EAAGA,IACZs5G,EAAS5pF,EAAS86E,GAAUxqG,GAAK40B,GAAUmiC,EAAM/2D,IAAM+2D,EAAM/2D,EAAI,IAAM+2D,EAAM,GAG/E,OAAOuiD,IAII,WAAX5pF,IACFwiE,EAAO+mB,SAASvpF,EAASkF,GAAQ3W,IAAMs6F,OAG3CrmB,EAAO1sF,GAAGutF,OAAO,CACf6X,IAAK,SAAarqG,EAAMU,GACtB,OAAOwnG,EAAO5qF,MAAM,SAAU60E,EAAMnyF,EAAMU,GACxC,IAAI0zB,EACA1vB,EACAsD,EAAM,GACNvI,EAAI,EAER,GAAIkC,MAAMC,QAAQ5B,GAAO,CAIvB,IAHAo0B,EAASygF,GAAU1iB,GACnBztF,EAAM1E,EAAKkD,OAEJzD,EAAIiF,EAAKjF,IACduI,EAAIhI,EAAKP,IAAMkyF,EAAO0Y,IAAIlY,EAAMnyF,EAAKP,IAAI,EAAO20B,GAGlD,OAAOpsB,EAGT,YAAiBuI,IAAV7P,EAAsBixF,EAAOnxE,MAAM2xE,EAAMnyF,EAAMU,GAASixF,EAAO0Y,IAAIlY,EAAMnyF,KAC/EA,EAAMU,EAAO8E,UAAUtC,OAAS,MAQvCyuF,EAAO8mB,MAAQA,GACfA,GAAMp3G,UAAY,CAChBsB,YAAa81G,GACb34C,KAAM,SAAcqyB,EAAM7pF,EAASohB,EAAM1jB,EAAK27B,EAAQub,GACpD5/B,KAAK60E,KAAOA,EACZ70E,KAAKoM,KAAOA,EACZpM,KAAKqkB,OAASA,GAAUgwD,EAAOhwD,OAAOkqE,SACtCvuF,KAAKhV,QAAUA,EACfgV,KAAKvX,MAAQuX,KAAKkiB,IAAMliB,KAAKqjB,MAC7BrjB,KAAKtX,IAAMA,EACXsX,KAAK4/B,KAAOA,IAASy0C,EAAOgZ,UAAUjhF,GAAQ,GAAK,OAErDiX,IAAK,WACH,IAAI+oE,EAAQ+O,GAAMO,UAAU17F,KAAKoM,MACjC,OAAOggF,GAASA,EAAMppG,IAAMopG,EAAMppG,IAAIgd,MAAQm7F,GAAMO,UAAUnN,SAASvrG,IAAIgd,OAE7E27F,IAAK,SAAavlE,GAChB,IAAIwlE,EACAxP,EAAQ+O,GAAMO,UAAU17F,KAAKoM,MAoBjC,OAlBIpM,KAAKhV,QAAQ42B,SACf5hB,KAAKrU,IAAMiwG,EAAQvnB,EAAOhwD,OAAOrkB,KAAKqkB,QAAQ+R,EAASp2B,KAAKhV,QAAQ42B,SAAWwU,EAAS,EAAG,EAAGp2B,KAAKhV,QAAQ42B,UAE3G5hB,KAAKrU,IAAMiwG,EAAQxlE,EAGrBp2B,KAAKkiB,KAAOliB,KAAKtX,IAAMsX,KAAKvX,OAASmzG,EAAQ57F,KAAKvX,MAE9CuX,KAAKhV,QAAQpE,MACfoZ,KAAKhV,QAAQpE,KAAKtE,KAAK0d,KAAK60E,KAAM70E,KAAKkiB,IAAKliB,MAG1CosF,GAASA,EAAMhsF,IACjBgsF,EAAMhsF,IAAIJ,MAEVm7F,GAAMO,UAAUnN,SAASnuF,IAAIJ,MAGxBA,OAGXm7F,GAAMp3G,UAAUy+D,KAAKz+D,UAAYo3G,GAAMp3G,UACvCo3G,GAAMO,UAAY,CAChBnN,SAAU,CACRvrG,IAAK,SAAakqG,GAChB,IAAIl2E,EAGJ,OAA4B,IAAxBk2E,EAAMrY,KAAKrB,UAA4C,MAA1B0Z,EAAMrY,KAAKqY,EAAM9gF,OAAiD,MAAhC8gF,EAAMrY,KAAK3xE,MAAMgqF,EAAM9gF,MACjF8gF,EAAMrY,KAAKqY,EAAM9gF,OAO1B4K,EAASq9D,EAAO0Y,IAAIG,EAAMrY,KAAMqY,EAAM9gF,KAAM,MAEf,SAAX4K,EAAwBA,EAAJ,GAExC5W,IAAK,SAAa8sF,GAIZ7Y,EAAOwnB,GAAGj1G,KAAKsmG,EAAM9gF,MACvBioE,EAAOwnB,GAAGj1G,KAAKsmG,EAAM9gF,MAAM8gF,GACM,IAAxBA,EAAMrY,KAAKrB,WAAmBa,EAAO+mB,SAASlO,EAAM9gF,OAAwD,MAA/C8gF,EAAMrY,KAAK3xE,MAAM62F,GAAc7M,EAAM9gF,OAG3G8gF,EAAMrY,KAAKqY,EAAM9gF,MAAQ8gF,EAAMhrE,IAF/BmyD,EAAOnxE,MAAMgqF,EAAMrY,KAAMqY,EAAM9gF,KAAM8gF,EAAMhrE,IAAMgrE,EAAMttD,SAS/Du7D,GAAMO,UAAUI,UAAYX,GAAMO,UAAUK,WAAa,CACvD37F,IAAK,SAAa8sF,GACZA,EAAMrY,KAAKrB,UAAY0Z,EAAMrY,KAAKz+D,aACpC82E,EAAMrY,KAAKqY,EAAM9gF,MAAQ8gF,EAAMhrE,OAIrCmyD,EAAOhwD,OAAS,CACd10B,OAAQ,SAAgB1L,GACtB,OAAOA,GAET+3G,MAAO,SAAe/3G,GACpB,MAAO,GAAMkI,KAAKsE,IAAIxM,EAAIkI,KAAKD,IAAM,GAEvCqiG,SAAU,UAEZla,EAAOwnB,GAAKV,GAAMp3G,UAAUy+D,MAElB57D,KAAO,GACjB,IAAIq1G,GACAC,GACAC,GAAW,yBACXC,GAAO,cAEX,SAASC,KACHH,MACsB,IAApB90D,EAAShM,QAAoB7zC,EAAOE,sBACtCF,EAAOE,sBAAsB40G,IAE7B90G,EAAO25D,WAAWm7C,GAAUhoB,EAAOwnB,GAAGztB,UAGxCiG,EAAOwnB,GAAGp5E,QAKd,SAAS65E,KAIP,OAHA/0G,EAAO25D,YAAW,WAChB+6C,QAAQhpG,KAEHgpG,GAAQh6E,KAAKC,MAItB,SAASq6E,GAAMxzG,EAAMyzG,GACnB,IAAI5H,EACAzyG,EAAI,EACJi5F,EAAQ,CACVr0E,OAAQhe,GAMV,IAFAyzG,EAAeA,EAAe,EAAI,EAE3Br6G,EAAI,EAAGA,GAAK,EAAIq6G,EAErBphB,EAAM,UADNwZ,EAAQjI,GAAUxqG,KACQi5F,EAAM,UAAYwZ,GAAS7rG,EAOvD,OAJIyzG,IACFphB,EAAM7a,QAAU6a,EAAM31E,MAAQ1c,GAGzBqyF,EAGT,SAASqhB,GAAYr5G,EAAOgpB,EAAMhK,GAMhC,IALA,IAAI8qF,EACA6I,GAAc/xE,GAAU04E,SAAStwF,IAAS,IAAI/L,OAAO2jB,GAAU04E,SAAS,MACxEnyG,EAAQ,EACR3E,EAASmwG,EAAWnwG,OAEjB2E,EAAQ3E,EAAQ2E,IACrB,GAAI2iG,EAAQ6I,EAAWxrG,GAAOjI,KAAK8f,EAAWgK,EAAMhpB,GAElD,OAAO8pG,EAoOb,SAASlpE,GAAU6wD,EAAMtvD,EAAYv6B,GACnC,IAAIgsB,EACA2lF,EACApyG,EAAQ,EACR3E,EAASo+B,GAAU44E,WAAWh3G,OAC9B4iG,EAAWnU,EAAO4T,WAAWM,QAAO,kBAE/B9lE,EAAKoyD,QAEVpyD,EAAO,WACT,GAAIk6E,EACF,OAAO,EAYT,IATA,IAAIE,EAAcZ,IAASK,KACvBn6E,EAAYh2B,KAAK6B,IAAI,EAAGoU,EAAU06F,UAAY16F,EAAUwf,SAAWi7E,GAInEzmE,EAAU,GADPjU,EAAY/f,EAAUwf,UAAY,GAErCr3B,EAAQ,EACR3E,EAASwc,EAAU26F,OAAOn3G,OAEvB2E,EAAQ3E,EAAQ2E,IACrB6X,EAAU26F,OAAOxyG,GAAOoxG,IAAIvlE,GAK9B,OAFAoyD,EAASa,WAAWxU,EAAM,CAACzyE,EAAWg0B,EAASjU,IAE3CiU,EAAU,GAAKxwC,EACVu8B,GAIJv8B,GACH4iG,EAASa,WAAWxU,EAAM,CAACzyE,EAAW,EAAG,IAI3ComF,EAASc,YAAYzU,EAAM,CAACzyE,KACrB,IAELA,EAAYomF,EAAS5B,QAAQ,CAC/B/R,KAAMA,EACNlvF,MAAO0uF,EAAOa,OAAO,GAAI3vD,GACzB1b,KAAMwqE,EAAOa,QAAO,EAAM,CACxB8nB,cAAe,GACf34E,OAAQgwD,EAAOhwD,OAAOkqE,UACrBvjG,GACHiyG,mBAAoB13E,EACpB23E,gBAAiBlyG,EACjB8xG,UAAWb,IAASK,KACpB16E,SAAU52B,EAAQ42B,SAClBm7E,OAAQ,GACRN,YAAa,SAAqBrwF,EAAM1jB,GACtC,IAAIwkG,EAAQ7Y,EAAO8mB,MAAMtmB,EAAMzyE,EAAUyH,KAAMuC,EAAM1jB,EAAK0Z,EAAUyH,KAAKmzF,cAAc5wF,IAAShK,EAAUyH,KAAKwa,QAE/G,OADAjiB,EAAU26F,OAAOr3F,KAAKwnF,GACfA,GAET/vD,KAAM,SAAcggE,GAClB,IAAI5yG,EAAQ,EAGZ3E,EAASu3G,EAAU/6F,EAAU26F,OAAOn3G,OAAS,EAE7C,GAAI+2G,EACF,OAAO38F,KAKT,IAFA28F,GAAU,EAEHpyG,EAAQ3E,EAAQ2E,IACrB6X,EAAU26F,OAAOxyG,GAAOoxG,IAAI,GAW9B,OAPIwB,GACF3U,EAASa,WAAWxU,EAAM,CAACzyE,EAAW,EAAG,IACzComF,EAASc,YAAYzU,EAAM,CAACzyE,EAAW+6F,KAEvC3U,EAASkB,WAAW7U,EAAM,CAACzyE,EAAW+6F,IAGjCn9F,QAGPra,EAAQyc,EAAUzc,MAItB,KA/HF,SAAoBA,EAAOq3G,GACzB,IAAIzyG,EAAO7H,EAAM2hC,EAAQjhC,EAAOgpG,EAEhC,IAAK7hG,KAAS5E,EAiBZ,GAfA0+B,EAAS24E,EADTt6G,EAAO2oG,EAAU9gG,IAEjBnH,EAAQuC,EAAM4E,GAEVlG,MAAMC,QAAQlB,KAChBihC,EAASjhC,EAAM,GACfA,EAAQuC,EAAM4E,GAASnH,EAAM,IAG3BmH,IAAU7H,IACZiD,EAAMjD,GAAQU,SACPuC,EAAM4E,KAGf6hG,EAAQ/X,EAAO+mB,SAAS14G,KAEX,WAAY0pG,EAKvB,IAAK7hG,KAJLnH,EAAQgpG,EAAMoP,OAAOp4G,UACduC,EAAMjD,GAGCU,EACNmH,KAAS5E,IACbA,EAAM4E,GAASnH,EAAMmH,GACrByyG,EAAczyG,GAAS85B,QAI3B24E,EAAct6G,GAAQ2hC,EA6F1B+4E,CAAWz3G,EAAOyc,EAAUyH,KAAKmzF,eAE1BzyG,EAAQ3E,EAAQ2E,IAGrB,GAFAysB,EAASgN,GAAU44E,WAAWryG,GAAOjI,KAAK8f,EAAWyyE,EAAMlvF,EAAOyc,EAAUyH,MAO1E,OAJI5d,EAAW+qB,EAAOmmB,QACpBk3C,EAAOgY,YAAYjqF,EAAUyyE,KAAMzyE,EAAUyH,KAAKy9E,OAAOnqD,KAAOnmB,EAAOmmB,KAAKx5C,KAAKqzB,IAG5EA,EAiBX,OAbAq9D,EAAO3pF,IAAI/E,EAAO82G,GAAar6F,GAE3BnW,EAAWmW,EAAUyH,KAAKphB,QAC5B2Z,EAAUyH,KAAKphB,MAAMnG,KAAKuyF,EAAMzyE,GAIlCA,EAAU0gB,SAAS1gB,EAAUyH,KAAKiZ,UAAUz8B,KAAK+b,EAAUyH,KAAKxjB,KAAM+b,EAAUyH,KAAKgZ,UAAUgkE,KAAKzkF,EAAUyH,KAAKg9E,MAAM0B,OAAOnmF,EAAUyH,KAAK0+E,QAC/IlU,EAAOwnB,GAAGwB,MAAMhpB,EAAOa,OAAOzyD,EAAM,CAClCoyD,KAAMA,EACN/tD,KAAM1kB,EACNklF,MAAOllF,EAAUyH,KAAKy9E,SAEjBllF,EAGTiyE,EAAOrwD,UAAYqwD,EAAOa,OAAOlxD,GAAW,CAC1C04E,SAAU,CACR,IAAK,CAAC,SAAUtwF,EAAMhpB,GACpB,IAAI8pG,EAAQltF,KAAKy8F,YAAYrwF,EAAMhpB,GAEnC,OADA4pG,GAAUE,EAAMrY,KAAMzoE,EAAMsgF,GAAQ/4F,KAAKvQ,GAAQ8pG,GAC1CA,KAGXoQ,QAAS,SAAiB33G,EAAO6B,GAC3ByE,EAAWtG,IACb6B,EAAW7B,EACXA,EAAQ,CAAC,MAETA,EAAQA,EAAMomB,MAAMs6E,GAOtB,IAJA,IAAIj6E,EACA7hB,EAAQ,EACR3E,EAASD,EAAMC,OAEZ2E,EAAQ3E,EAAQ2E,IACrB6hB,EAAOzmB,EAAM4E,GACby5B,GAAU04E,SAAStwF,GAAQ4X,GAAU04E,SAAStwF,IAAS,GACvD4X,GAAU04E,SAAStwF,GAAMinD,QAAQ7rE,IAGrCo1G,WAAY,CA/Wd,SAA0B/nB,EAAMlvF,EAAOkkB,GACrC,IAAIuC,EACAhpB,EACAsqG,EACAtB,EACAmR,EACAC,EACAC,EACAh/D,EACAi/D,EAAQ,UAAW/3G,GAAS,WAAYA,EACxCmhC,EAAO9mB,KACP2uD,EAAO,GACPzrD,EAAQ2xE,EAAK3xE,MACbk4B,EAASy5C,EAAKrB,UAAYsZ,GAAmBjY,GAC7C8oB,EAAWjS,EAAS1oG,IAAI6xF,EAAM,UA8BlC,IAAKzoE,KA5BAvC,EAAKy9E,QAGc,OAFtB8E,EAAQ/X,EAAOgY,YAAYxX,EAAM,OAEvB+oB,WACRxR,EAAMwR,SAAW,EACjBL,EAAUnR,EAAMzE,MAAMH,KAEtB4E,EAAMzE,MAAMH,KAAO,WACZ4E,EAAMwR,UACTL,MAKNnR,EAAMwR,WACN92E,EAAKyhE,QAAO,WAEVzhE,EAAKyhE,QAAO,WACV6D,EAAMwR,WAEDvpB,EAAOiT,MAAMzS,EAAM,MAAMjvF,QAC5BwmG,EAAMzE,MAAMH,cAOP7hG,EAGX,GAFAvC,EAAQuC,EAAMymB,GAEV+vF,GAASh1G,KAAK/D,GAAQ,CAIxB,UAHOuC,EAAMymB,GACbshF,EAASA,GAAoB,WAAVtqG,EAEfA,KAAWg4C,EAAS,OAAS,QAAS,CAGxC,GAAc,SAAVh4C,IAAoBu6G,QAA+B1qG,IAAnB0qG,EAASvxF,GAG3C,SAFAgvB,GAAS,EAMbuzB,EAAKviD,GAAQuxF,GAAYA,EAASvxF,IAASioE,EAAOnxE,MAAM2xE,EAAMzoE,GAOlE,IAFAoxF,GAAanpB,EAAOuB,cAAcjwF,MAEhB0uF,EAAOuB,cAAcjnB,GAgEvC,IAAKviD,KA3DDsxF,GAA2B,IAAlB7oB,EAAKrB,WAKhB3pE,EAAKg0F,SAAW,CAAC36F,EAAM26F,SAAU36F,EAAM46F,UAAW56F,EAAM66F,WAIlC,OAFtBN,EAAiBE,GAAYA,EAASl/D,WAGpCg/D,EAAiB/R,EAAS1oG,IAAI6xF,EAAM,YAKtB,UAFhBp2C,EAAU41C,EAAO0Y,IAAIlY,EAAM,cAGrB4oB,EACFh/D,EAAUg/D,GAGVhQ,GAAS,CAAC5Y,IAAO,GACjB4oB,EAAiB5oB,EAAK3xE,MAAMu7B,SAAWg/D,EACvCh/D,EAAU41C,EAAO0Y,IAAIlY,EAAM,WAC3B4Y,GAAS,CAAC5Y,OAKE,WAAZp2C,GAAoC,iBAAZA,GAAgD,MAAlBg/D,IACtB,SAA9BppB,EAAO0Y,IAAIlY,EAAM,WAEd2oB,IACH12E,EAAKzgC,MAAK,WACR6c,EAAMu7B,QAAUg/D,KAGI,MAAlBA,IACFh/D,EAAUv7B,EAAMu7B,QAChBg/D,EAA6B,SAAZh/D,EAAqB,GAAKA,IAI/Cv7B,EAAMu7B,QAAU,iBAKlB50B,EAAKg0F,WACP36F,EAAM26F,SAAW,SACjB/2E,EAAKyhE,QAAO,WACVrlF,EAAM26F,SAAWh0F,EAAKg0F,SAAS,GAC/B36F,EAAM46F,UAAYj0F,EAAKg0F,SAAS,GAChC36F,EAAM66F,UAAYl0F,EAAKg0F,SAAS,OAKpCL,GAAY,EAEC7uC,EAEN6uC,IACCG,EACE,WAAYA,IACdviE,EAASuiE,EAASviE,QAGpBuiE,EAAWjS,EAASd,OAAO/V,EAAM,SAAU,CACzCp2C,QAASg/D,IAKT/P,IACFiQ,EAASviE,QAAUA,GAIjBA,GACFqyD,GAAS,CAAC5Y,IAAO,GAKnB/tD,EAAKzgC,MAAK,WASR,IAAK+lB,KANAgvB,GACHqyD,GAAS,CAAC5Y,IAGZ6W,EAAS9mC,OAAOiwB,EAAM,UAETlmB,EACX0lB,EAAOnxE,MAAM2xE,EAAMzoE,EAAMuiD,EAAKviD,QAMpCoxF,EAAYf,GAAYrhE,EAASuiE,EAASvxF,GAAQ,EAAGA,EAAM0a,GAErD1a,KAAQuxF,IACZA,EAASvxF,GAAQoxF,EAAU/0G,MAEvB2yC,IACFoiE,EAAU90G,IAAM80G,EAAU/0G,MAC1B+0G,EAAU/0G,MAAQ,MA4LxBu1G,UAAW,SAAmBx2G,EAAUqvG,GAClCA,EACF7yE,GAAU44E,WAAWvpC,QAAQ7rE,GAE7Bw8B,GAAU44E,WAAWl3F,KAAKle,MAKhC6sF,EAAO4pB,MAAQ,SAAUA,EAAO55E,EAAQ18B,GACtC,IAAIu2G,EAAMD,GAA4B,WAAnB74G,EAAQ64G,GAAsB5pB,EAAOa,OAAO,GAAI+oB,GAAS,CAC1Ep7E,SAAUl7B,IAAOA,GAAM08B,GAAUp4B,EAAWgyG,IAAUA,EACtDr8E,SAAUq8E,EACV55E,OAAQ18B,GAAM08B,GAAUA,IAAWp4B,EAAWo4B,IAAWA,GAiC3D,OA9BIgwD,EAAOwnB,GAAG3L,IACZgO,EAAIt8E,SAAW,EAEa,kBAAjBs8E,EAAIt8E,WACTs8E,EAAIt8E,YAAYyyD,EAAOwnB,GAAGsC,OAC5BD,EAAIt8E,SAAWyyD,EAAOwnB,GAAGsC,OAAOD,EAAIt8E,UAEpCs8E,EAAIt8E,SAAWyyD,EAAOwnB,GAAGsC,OAAO5P,UAMrB,MAAb2P,EAAI5W,QAA+B,IAAd4W,EAAI5W,QAC3B4W,EAAI5W,MAAQ,MAId4W,EAAIxG,IAAMwG,EAAIr7E,SAEdq7E,EAAIr7E,SAAW,WACT52B,EAAWiyG,EAAIxG,MACjBwG,EAAIxG,IAAIp1G,KAAK0d,MAGXk+F,EAAI5W,OACNjT,EAAO6X,QAAQlsF,KAAMk+F,EAAI5W,QAItB4W,GAGT7pB,EAAO1sF,GAAGutF,OAAO,CACfkpB,OAAQ,SAAgBH,EAAOv6E,EAAIW,EAAQ78B,GAEzC,OAAOwY,KAAK8Q,OAAOg8E,IAAoBC,IAAI,UAAW,GAAGpnE,OACxDj9B,MAAMgkF,QAAQ,CACbnM,QAAS78C,GACRu6E,EAAO55E,EAAQ78B,IAEpBklF,QAAS,SAAiBtgE,EAAM6xF,EAAO55E,EAAQ78B,GAC7C,IAAImgG,EAAQtT,EAAOuB,cAAcxpE,GAC7BiyF,EAAShqB,EAAO4pB,MAAMA,EAAO55E,EAAQ78B,GACrC82G,EAAc,WAEhB,IAAIx3E,EAAO9C,GAAUhkB,KAAMq0E,EAAOa,OAAO,GAAI9oE,GAAOiyF,IAEhD1W,GAAS+D,EAAS1oG,IAAIgd,KAAM,YAC9B8mB,EAAKqW,MAAK,IAKd,OADAmhE,EAAYC,OAASD,EACd3W,IAA0B,IAAjB0W,EAAO/W,MAAkBtnF,KAAKpW,KAAK00G,GAAet+F,KAAKsnF,MAAM+W,EAAO/W,MAAOgX,IAE7FnhE,KAAM,SAAcp0C,EAAMwjG,EAAY4Q,GACpC,IAAIqB,EAAY,SAAmBpS,GACjC,IAAIjvD,EAAOivD,EAAMjvD,YACVivD,EAAMjvD,KACbA,EAAKggE,IAaP,MAVoB,kBAATp0G,IACTo0G,EAAU5Q,EACVA,EAAaxjG,EACbA,OAAOkK,GAGLs5F,GACFvsF,KAAKsnF,MAAMv+F,GAAQ,KAAM,IAGpBiX,KAAKpW,MAAK,WACf,IAAIsiG,GAAU,EACV3hG,EAAgB,MAARxB,GAAgBA,EAAO,aAC/B01G,EAASpqB,EAAOoqB,OAChBt5F,EAAOumF,EAAS1oG,IAAIgd,MAExB,GAAIzV,EACE4a,EAAK5a,IAAU4a,EAAK5a,GAAO4yC,MAC7BqhE,EAAUr5F,EAAK5a,SAGjB,IAAKA,KAAS4a,EACRA,EAAK5a,IAAU4a,EAAK5a,GAAO4yC,MAAQi/D,GAAKj1G,KAAKoD,IAC/Ci0G,EAAUr5F,EAAK5a,IAKrB,IAAKA,EAAQk0G,EAAO74G,OAAQ2E,KACtBk0G,EAAOl0G,GAAOsqF,OAAS70E,MAAiB,MAARjX,GAAgB01G,EAAOl0G,GAAO+8F,QAAUv+F,IAC1E01G,EAAOl0G,GAAOu8B,KAAKqW,KAAKggE,GACxBjR,GAAU,EACVuS,EAAOp4F,OAAO9b,EAAO,KAOrB2hG,GAAYiR,GACd9oB,EAAO6X,QAAQlsF,KAAMjX,OAI3Bw1G,OAAQ,SAAgBx1G,GAKtB,OAJa,IAATA,IACFA,EAAOA,GAAQ,MAGViX,KAAKpW,MAAK,WACf,IAAIW,EACA4a,EAAOumF,EAAS1oG,IAAIgd,MACpBsnF,EAAQniF,EAAKpc,EAAO,SACpBqjG,EAAQjnF,EAAKpc,EAAO,cACpB01G,EAASpqB,EAAOoqB,OAChB74G,EAAS0hG,EAAQA,EAAM1hG,OAAS,EAWpC,IATAuf,EAAKo5F,QAAS,EAEdlqB,EAAOiT,MAAMtnF,KAAMjX,EAAM,IAErBqjG,GAASA,EAAMjvD,MACjBivD,EAAMjvD,KAAK76C,KAAK0d,MAAM,GAInBzV,EAAQk0G,EAAO74G,OAAQ2E,KACtBk0G,EAAOl0G,GAAOsqF,OAAS70E,MAAQy+F,EAAOl0G,GAAO+8F,QAAUv+F,IACzD01G,EAAOl0G,GAAOu8B,KAAKqW,MAAK,GACxBshE,EAAOp4F,OAAO9b,EAAO,IAKzB,IAAKA,EAAQ,EAAGA,EAAQ3E,EAAQ2E,IAC1B+8F,EAAM/8F,IAAU+8F,EAAM/8F,GAAOg0G,QAC/BjX,EAAM/8F,GAAOg0G,OAAOj8G,KAAK0d,aAKtBmF,EAAKo5F,aAIlBlqB,EAAOzqF,KAAK,CAAC,SAAU,OAAQ,SAAS,SAAU82B,EAAIh+B,GACpD,IAAIg8G,EAAQrqB,EAAO1sF,GAAGjF,GAEtB2xF,EAAO1sF,GAAGjF,GAAQ,SAAUu7G,EAAO55E,EAAQ78B,GACzC,OAAgB,MAATy2G,GAAkC,mBAAVA,EAAsBS,EAAMr2G,MAAM2X,KAAM9X,WAAa8X,KAAK0sE,QAAQ6vB,GAAM75G,GAAM,GAAOu7G,EAAO55E,EAAQ78B,OAIvI6sF,EAAOzqF,KAAK,CACV+0G,UAAWpC,GAAM,QACjBqC,QAASrC,GAAM,QACfsC,YAAatC,GAAM,UACnBuC,OAAQ,CACNv+B,QAAS,QAEXw+B,QAAS,CACPx+B,QAAS,QAEXy+B,WAAY,CACVz+B,QAAS,YAEV,SAAU79E,EAAMiD,GACjB0uF,EAAO1sF,GAAGjF,GAAQ,SAAUu7G,EAAO55E,EAAQ78B,GACzC,OAAOwY,KAAK0sE,QAAQ/mF,EAAOs4G,EAAO55E,EAAQ78B,OAG9C6sF,EAAOoqB,OAAS,GAEhBpqB,EAAOwnB,GAAGp5E,KAAO,WACf,IAAI46E,EACAl7G,EAAI,EACJs8G,EAASpqB,EAAOoqB,OAGpB,IAFAxC,GAAQh6E,KAAKC,MAEN//B,EAAIs8G,EAAO74G,OAAQzD,KACxBk7G,EAAQoB,EAAOt8G,OAECs8G,EAAOt8G,KAAOk7G,GAC5BoB,EAAOp4F,OAAOlkB,IAAK,GAIlBs8G,EAAO74G,QACVyuF,EAAOwnB,GAAG1+D,OAGZ8+D,QAAQhpG,GAGVohF,EAAOwnB,GAAGwB,MAAQ,SAAUA,GAC1BhpB,EAAOoqB,OAAO/4F,KAAK23F,GACnBhpB,EAAOwnB,GAAGpzG,SAGZ4rF,EAAOwnB,GAAGztB,SAAW,GAErBiG,EAAOwnB,GAAGpzG,MAAQ,WACZyzG,KAIJA,IAAa,EACbG,OAGFhoB,EAAOwnB,GAAG1+D,KAAO,WACf++D,GAAa,MAGf7nB,EAAOwnB,GAAGsC,OAAS,CACjBc,KAAM,IACNC,KAAM,IAEN3Q,SAAU,KAIZla,EAAO1sF,GAAG48B,MAAQ,SAAUgqD,EAAMxlF,GAGhC,OAFAwlF,EAAO8F,EAAOwnB,IAAKxnB,EAAOwnB,GAAGsC,OAAO5vB,IAAgBA,EACpDxlF,EAAOA,GAAQ,KACRiX,KAAKsnF,MAAMv+F,GAAM,SAAUlC,EAAMulG,GACtC,IAAIjsC,EAAU54D,EAAO25D,WAAWr6D,EAAM0nF,GAEtC6d,EAAMjvD,KAAO,WACX51C,EAAO05D,aAAad,QAK1B,WACE,IAAIvgD,EAAQwnC,EAAS6sC,cAAc,SAE/BiqB,EADS92D,EAAS6sC,cAAc,UACnBC,YAAY9sC,EAAS6sC,cAAc,WACpDr0E,EAAM7W,KAAO,WAGbwqF,EAAQ4rB,QAA0B,KAAhBv/F,EAAMxc,MAGxBmwF,EAAQ6rB,YAAclB,EAAItd,UAG1BhhF,EAAQwnC,EAAS6sC,cAAc,UACzB7wF,MAAQ,IACdwc,EAAM7W,KAAO,QACbwqF,EAAQ8rB,WAA6B,MAAhBz/F,EAAMxc,MAhB7B,GAmBA,IAAIk8G,GACAjkB,GAAahH,EAAOwJ,KAAKxC,WAC7BhH,EAAO1sF,GAAGutF,OAAO,CACf4I,KAAM,SAAcp7F,EAAMU,GACxB,OAAOwnG,EAAO5qF,KAAMq0E,EAAOyJ,KAAMp7F,EAAMU,EAAO8E,UAAUtC,OAAS,IAEnE25G,WAAY,SAAoB78G,GAC9B,OAAOsd,KAAKpW,MAAK,WACfyqF,EAAOkrB,WAAWv/F,KAAMtd,SAI9B2xF,EAAOa,OAAO,CACZ4I,KAAM,SAAcjJ,EAAMnyF,EAAMU,GAC9B,IAAI6c,EACAmsF,EACAoT,EAAQ3qB,EAAKrB,SAEjB,GAAc,IAAVgsB,GAAyB,IAAVA,GAAyB,IAAVA,EAKlC,MAAiC,qBAAtB3qB,EAAKjsC,aACPyrC,EAAOjoE,KAAKyoE,EAAMnyF,EAAMU,IAKnB,IAAVo8G,GAAgBnrB,EAAOgQ,SAASxP,KAClCuX,EAAQ/X,EAAOorB,UAAU/8G,EAAK0c,iBAAmBi1E,EAAOwJ,KAAK9xE,MAAM2zF,KAAKv4G,KAAKzE,GAAQ48G,QAAWrsG,SAGpFA,IAAV7P,EACY,OAAVA,OACFixF,EAAOkrB,WAAW1qB,EAAMnyF,GAItB0pG,GAAS,QAASA,QAAkDn5F,KAAxCgN,EAAMmsF,EAAMhsF,IAAIy0E,EAAMzxF,EAAOV,IACpDud,GAGT40E,EAAK3rC,aAAaxmD,EAAMU,EAAQ,IACzBA,GAGLgpG,GAAS,QAASA,GAA2C,QAAjCnsF,EAAMmsF,EAAMppG,IAAI6xF,EAAMnyF,IAC7Cud,EAKK,OAFdA,EAAMo0E,EAAOuI,KAAKkB,KAAKjJ,EAAMnyF,SAERuQ,EAAYgN,IAEnCw/F,UAAW,CACT12G,KAAM,CACJqX,IAAK,SAAay0E,EAAMzxF,GACtB,IAAKmwF,EAAQ8rB,YAAwB,UAAVj8G,GAAqB22F,EAASlF,EAAM,SAAU,CACvE,IAAI/zE,EAAM+zE,EAAKzxF,MAOf,OANAyxF,EAAK3rC,aAAa,OAAQ9lD,GAEtB0d,IACF+zE,EAAKzxF,MAAQ0d,GAGR1d,MAKfm8G,WAAY,SAAoB1qB,EAAMzxF,GACpC,IAAIV,EACAP,EAAI,EAGRw9G,EAAYv8G,GAASA,EAAM2oB,MAAMs6E,GAEjC,GAAIsZ,GAA+B,IAAlB9qB,EAAKrB,SACpB,KAAO9wF,EAAOi9G,EAAUx9G,MACtB0yF,EAAK5rC,gBAAgBvmD,MAM7B48G,GAAW,CACTl/F,IAAK,SAAay0E,EAAMzxF,EAAOV,GAQ7B,OAPc,IAAVU,EAEFixF,EAAOkrB,WAAW1qB,EAAMnyF,GAExBmyF,EAAK3rC,aAAaxmD,EAAMA,GAGnBA,IAGX2xF,EAAOzqF,KAAKyqF,EAAOwJ,KAAK9xE,MAAM2zF,KAAKj1G,OAAOshB,MAAM,SAAS,SAAU2U,EAAIh+B,GACrE,IAAIC,EAAS04F,GAAW34F,IAAS2xF,EAAOuI,KAAKkB,KAE7CzC,GAAW34F,GAAQ,SAAUmyF,EAAMnyF,EAAM6zF,GACvC,IAAIt2E,EACAmxF,EACAwO,EAAgBl9G,EAAK0c,cAUzB,OARKm3E,IAEH6a,EAAS/V,GAAWukB,GACpBvkB,GAAWukB,GAAiB3/F,EAC5BA,EAAmC,MAA7Btd,EAAOkyF,EAAMnyF,EAAM6zF,GAAiBqpB,EAAgB,KAC1DvkB,GAAWukB,GAAiBxO,GAGvBnxF,MAGX,IAAI4/F,GAAa,sCACbC,GAAa,gBA4GjB,SAASC,GAAiB38G,GAExB,OADaA,EAAM2oB,MAAMs6E,IAAkB,IAC7B51E,KAAK,KAGrB,SAASuvF,GAASnrB,GAChB,OAAOA,EAAKjsC,cAAgBisC,EAAKjsC,aAAa,UAAY,GAG5D,SAASq3D,GAAe78G,GACtB,OAAIiB,MAAMC,QAAQlB,GACTA,EAGY,kBAAVA,GACFA,EAAM2oB,MAAMs6E,IAGd,GA7HThS,EAAO1sF,GAAGutF,OAAO,CACf9oE,KAAM,SAAc1pB,EAAMU,GACxB,OAAOwnG,EAAO5qF,KAAMq0E,EAAOjoE,KAAM1pB,EAAMU,EAAO8E,UAAUtC,OAAS,IAEnEs6G,WAAY,SAAoBx9G,GAC9B,OAAOsd,KAAKpW,MAAK,kBACRoW,KAAKq0E,EAAO8rB,QAAQz9G,IAASA,SAI1C2xF,EAAOa,OAAO,CACZ9oE,KAAM,SAAcyoE,EAAMnyF,EAAMU,GAC9B,IAAI6c,EACAmsF,EACAoT,EAAQ3qB,EAAKrB,SAEjB,GAAc,IAAVgsB,GAAyB,IAAVA,GAAyB,IAAVA,EAUlC,OANc,IAAVA,GAAgBnrB,EAAOgQ,SAASxP,KAElCnyF,EAAO2xF,EAAO8rB,QAAQz9G,IAASA,EAC/B0pG,EAAQ/X,EAAOqnB,UAAUh5G,SAGbuQ,IAAV7P,EACEgpG,GAAS,QAASA,QAAkDn5F,KAAxCgN,EAAMmsF,EAAMhsF,IAAIy0E,EAAMzxF,EAAOV,IACpDud,EAGF40E,EAAKnyF,GAAQU,EAGlBgpG,GAAS,QAASA,GAA2C,QAAjCnsF,EAAMmsF,EAAMppG,IAAI6xF,EAAMnyF,IAC7Cud,EAGF40E,EAAKnyF,IAEdg5G,UAAW,CACThb,SAAU,CACR19F,IAAK,SAAa6xF,GAMhB,IAAIurB,EAAW/rB,EAAOuI,KAAKkB,KAAKjJ,EAAM,YAEtC,OAAIurB,EACKnhG,SAASmhG,EAAU,IAGxBP,GAAW14G,KAAK0tF,EAAKkF,WAAa+lB,GAAW34G,KAAK0tF,EAAKkF,WAAalF,EAAK4L,KACpE,GAGD,KAId0f,QAAS,CACP,IAAO,UACP,MAAS,eAWR5sB,EAAQ6rB,cACX/qB,EAAOqnB,UAAU9a,SAAW,CAC1B59F,IAAK,SAAa6xF,GAEhB,IAAI7iE,EAAS6iE,EAAKz+D,WAMlB,OAJIpE,GAAUA,EAAOoE,YACnBpE,EAAOoE,WAAWyqE,cAGb,MAETzgF,IAAK,SAAay0E,GAEhB,IAAI7iE,EAAS6iE,EAAKz+D,WAEdpE,IACFA,EAAO6uE,cAEH7uE,EAAOoE,YACTpE,EAAOoE,WAAWyqE,kBAO5BxM,EAAOzqF,KAAK,CAAC,WAAY,WAAY,YAAa,cAAe,cAAe,UAAW,UAAW,SAAU,cAAe,oBAAoB,WACjJyqF,EAAO8rB,QAAQngG,KAAKZ,eAAiBY,QAyBvCq0E,EAAO1sF,GAAGutF,OAAO,CACfmrB,SAAU,SAAkBj9G,GAC1B,IAAIk9G,EACAzrB,EACAxxD,EACAk9E,EACAC,EACA7hG,EACA8hG,EACAt+G,EAAI,EAER,GAAI8J,EAAW7I,GACb,OAAO4c,KAAKpW,MAAK,SAAU+U,GACzB01E,EAAOr0E,MAAMqgG,SAASj9G,EAAMd,KAAK0d,KAAMrB,EAAGqhG,GAAShgG,WAMvD,IAFAsgG,EAAUL,GAAe78G,IAEbwC,OACV,KAAOivF,EAAO70E,KAAK7d,MAIjB,GAHAo+G,EAAWP,GAASnrB,GACpBxxD,EAAwB,IAAlBwxD,EAAKrB,UAAkB,IAAMusB,GAAiBQ,GAAY,IAEvD,CAGP,IAFA5hG,EAAI,EAEG6hG,EAAQF,EAAQ3hG,MACjB0kB,EAAIv4B,QAAQ,IAAM01G,EAAQ,KAAO,IACnCn9E,GAAOm9E,EAAQ,KAOfD,KAFJE,EAAaV,GAAiB18E,KAG5BwxD,EAAK3rC,aAAa,QAASu3D,GAMnC,OAAOzgG,MAET0gG,YAAa,SAAqBt9G,GAChC,IAAIk9G,EACAzrB,EACAxxD,EACAk9E,EACAC,EACA7hG,EACA8hG,EACAt+G,EAAI,EAER,GAAI8J,EAAW7I,GACb,OAAO4c,KAAKpW,MAAK,SAAU+U,GACzB01E,EAAOr0E,MAAM0gG,YAAYt9G,EAAMd,KAAK0d,KAAMrB,EAAGqhG,GAAShgG,WAI1D,IAAK9X,UAAUtC,OACb,OAAOoa,KAAK89E,KAAK,QAAS,IAK5B,IAFAwiB,EAAUL,GAAe78G,IAEbwC,OACV,KAAOivF,EAAO70E,KAAK7d,MAKjB,GAJAo+G,EAAWP,GAASnrB,GAEpBxxD,EAAwB,IAAlBwxD,EAAKrB,UAAkB,IAAMusB,GAAiBQ,GAAY,IAEvD,CAGP,IAFA5hG,EAAI,EAEG6hG,EAAQF,EAAQ3hG,MAErB,KAAO0kB,EAAIv4B,QAAQ,IAAM01G,EAAQ,MAAQ,GACvCn9E,EAAMA,EAAIrkB,QAAQ,IAAMwhG,EAAQ,IAAK,KAOrCD,KAFJE,EAAaV,GAAiB18E,KAG5BwxD,EAAK3rC,aAAa,QAASu3D,GAMnC,OAAOzgG,MAET2gG,YAAa,SAAqBv9G,EAAOw9G,GACvC,IAAI73G,EAAO3D,EAAQhC,GACfy9G,EAAwB,WAAT93G,GAAqB1E,MAAMC,QAAQlB,GAEtD,MAAwB,mBAAbw9G,GAA0BC,EAC5BD,EAAW5gG,KAAKqgG,SAASj9G,GAAS4c,KAAK0gG,YAAYt9G,GAGxD6I,EAAW7I,GACN4c,KAAKpW,MAAK,SAAUzH,GACzBkyF,EAAOr0E,MAAM2gG,YAAYv9G,EAAMd,KAAK0d,KAAM7d,EAAG69G,GAAShgG,MAAO4gG,GAAWA,MAIrE5gG,KAAKpW,MAAK,WACf,IAAI2yF,EAAWp6F,EAAGk+B,EAAMygF,EAExB,GAAID,EAMF,IAJA1+G,EAAI,EACJk+B,EAAOg0D,EAAOr0E,MACd8gG,EAAab,GAAe78G,GAErBm5F,EAAYukB,EAAW3+G,MAExBk+B,EAAK0gF,SAASxkB,GAChBl8D,EAAKqgF,YAAYnkB,GAEjBl8D,EAAKggF,SAAS9jB,aAICtpF,IAAV7P,GAAgC,YAAT2F,KAChCwzF,EAAYyjB,GAAShgG,QAInB0rF,EAAStrF,IAAIJ,KAAM,gBAAiBu8E,GAOlCv8E,KAAKkpC,cACPlpC,KAAKkpC,aAAa,QAASqzC,IAAuB,IAAVn5F,EAAkB,GAAKsoG,EAAS1oG,IAAIgd,KAAM,kBAAoB,SAK9G+gG,SAAU,SAAkBzsB,GAC1B,IAAIiI,EACA1H,EACA1yF,EAAI,EAGR,IAFAo6F,EAAY,IAAMjI,EAAW,IAEtBO,EAAO70E,KAAK7d,MACjB,GAAsB,IAAlB0yF,EAAKrB,WAAmB,IAAMusB,GAAiBC,GAASnrB,IAAS,KAAK/pF,QAAQyxF,IAAc,EAC9F,OAAO,EAIX,OAAO,KAGX,IAAIykB,GAAU,MACd3sB,EAAO1sF,GAAGutF,OAAO,CACfp0E,IAAK,SAAa1d,GAChB,IAAIgpG,EACAnsF,EACAi2F,EACArhB,EAAO70E,KAAK,GAEhB,OAAK9X,UAAUtC,QAqBfswG,EAAkBjqG,EAAW7I,GACtB4c,KAAKpW,MAAK,SAAUzH,GACzB,IAAI2e,EAEkB,IAAlBd,KAAKwzE,WAWE,OANT1yE,EADEo1F,EACI9yG,EAAMd,KAAK0d,KAAM7d,EAAGkyF,EAAOr0E,MAAMc,OAEjC1d,GAKN0d,EAAM,GACkB,kBAARA,EAChBA,GAAO,GACEzc,MAAMC,QAAQwc,KACvBA,EAAMuzE,EAAO3pF,IAAIoW,GAAK,SAAU1d,GAC9B,OAAgB,MAATA,EAAgB,GAAKA,EAAQ,QAIxCgpG,EAAQ/X,EAAO4sB,SAASjhG,KAAKjX,OAASsrF,EAAO4sB,SAASjhG,KAAK+5E,SAAS36E,iBAEpD,QAASgtF,QAA4Cn5F,IAAlCm5F,EAAMhsF,IAAIJ,KAAMc,EAAK,WACtDd,KAAK5c,MAAQ0d,QAhDX+zE,GACFuX,EAAQ/X,EAAO4sB,SAASpsB,EAAK9rF,OAASsrF,EAAO4sB,SAASpsB,EAAKkF,SAAS36E,iBAEvD,QAASgtF,QAA8Cn5F,KAApCgN,EAAMmsF,EAAMppG,IAAI6xF,EAAM,UAC7C50E,EAKU,kBAFnBA,EAAM40E,EAAKzxF,OAGF6c,EAAIjB,QAAQgiG,GAAS,IAIhB,MAAP/gG,EAAc,GAAKA,OAG5B,KAoCNo0E,EAAOa,OAAO,CACZ+rB,SAAU,CACRz6E,OAAQ,CACNxjC,IAAK,SAAa6xF,GAChB,IAAI/zE,EAAMuzE,EAAOuI,KAAKkB,KAAKjJ,EAAM,SACjC,OAAc,MAAP/zE,EAAcA,EAIrBi/F,GAAiB1rB,EAAO1qE,KAAKkrE,MAGjC6B,OAAQ,CACN1zF,IAAK,SAAa6xF,GAChB,IAAIzxF,EACAojC,EACArkC,EACA6I,EAAU6pF,EAAK7pF,QACfT,EAAQsqF,EAAKgM,cACbmP,EAAoB,eAAdnb,EAAK9rF,KACXiZ,EAASguF,EAAM,KAAO,GACtBhiG,EAAMgiG,EAAMzlG,EAAQ,EAAIS,EAAQpF,OASpC,IANEzD,EADEoI,EAAQ,EACNyD,EAEAgiG,EAAMzlG,EAAQ,EAIbpI,EAAI6L,EAAK7L,IAId,KAHAqkC,EAASx7B,EAAQ7I,IAGLy+F,UAAYz+F,IAAMoI,KAC7Bi8B,EAAOkJ,YAAclJ,EAAOpQ,WAAWsZ,WAAaqqD,EAASvzD,EAAOpQ,WAAY,aAAc,CAI7F,GAFAhzB,EAAQixF,EAAO7tD,GAAQ1lB,MAEnBkvF,EACF,OAAO5sG,EAIT4e,EAAO0D,KAAKtiB,GAIhB,OAAO4e,GAET5B,IAAK,SAAay0E,EAAMzxF,GAOtB,IANA,IAAI89G,EACA16E,EACAx7B,EAAU6pF,EAAK7pF,QACfgX,EAASqyE,EAAOyB,UAAU1yF,GAC1BjB,EAAI6I,EAAQpF,OAETzD,OACLqkC,EAASx7B,EAAQ7I,IAGNy+F,SAAWvM,EAAO2B,QAAQ3B,EAAO4sB,SAASz6E,OAAOxjC,IAAIwjC,GAASxkB,IAAW,KAClFk/F,GAAY,GAWhB,OAJKA,IACHrsB,EAAKgM,eAAiB,GAGjB7+E,OAMfqyE,EAAOzqF,KAAK,CAAC,QAAS,aAAa,WACjCyqF,EAAO4sB,SAASjhG,MAAQ,CACtBI,IAAK,SAAay0E,EAAMzxF,GACtB,GAAIiB,MAAMC,QAAQlB,GAChB,OAAOyxF,EAAK8L,QAAUtM,EAAO2B,QAAQ3B,EAAOQ,GAAM/zE,MAAO1d,IAAU,IAKpEmwF,EAAQ4rB,UACX9qB,EAAO4sB,SAASjhG,MAAMhd,IAAM,SAAU6xF,GACpC,OAAsC,OAA/BA,EAAKjsC,aAAa,SAAoB,KAAOisC,EAAKzxF,WAK/DmwF,EAAQ4tB,QAAU,cAAe55G,EAEjC,IAAI65G,GAAc,kCACdC,GAA0B,SAAiC/6G,GAC7DA,EAAEkqG,mBAGJnc,EAAOa,OAAOb,EAAOtxD,MAAO,CAC1B4tE,QAAS,SAAiB5tE,EAAO5d,EAAM0vE,EAAMysB,GAC3C,IAAIn/G,EACAkhC,EACA9jB,EACAgiG,EACAC,EACApQ,EACAlI,EACAuY,EACAC,EAAY,CAAC7sB,GAAQztC,GACrBr+C,EAAOqqF,EAAO9wF,KAAKygC,EAAO,QAAUA,EAAMh6B,KAAOg6B,EACjDkuE,EAAa7d,EAAO9wF,KAAKygC,EAAO,aAAeA,EAAMi5D,UAAUp6E,MAAM,KAAO,GAGhF,GAFAyhB,EAAMo+E,EAAcliG,EAAMs1E,EAAOA,GAAQztC,EAEnB,IAAlBytC,EAAKrB,UAAoC,IAAlBqB,EAAKrB,WAK5B4tB,GAAYj6G,KAAK4B,EAAOsrF,EAAOtxD,MAAMsuE,aAIrCtoG,EAAK+B,QAAQ,MAAQ,IAEvBmmG,EAAaloG,EAAK6Y,MAAM,KACxB7Y,EAAOkoG,EAAWtnE,QAClBsnE,EAAWj/D,QAGbwvE,EAASz4G,EAAK+B,QAAQ,KAAO,GAAK,KAAO/B,GAEzCg6B,EAAQA,EAAMsxD,EAAOkB,SAAWxyD,EAAQ,IAAIsxD,EAAOuc,MAAM7nG,EAAyB,WAAnB3D,EAAQ29B,IAAuBA,IAExFutE,UAAYgR,EAAe,EAAI,EACrCv+E,EAAMi5D,UAAYiV,EAAWxgF,KAAK,KAClCsS,EAAMuvE,WAAavvE,EAAMi5D,UAAY,IAAIrwE,OAAO,UAAYslF,EAAWxgF,KAAK,iBAAmB,WAAa,KAE5GsS,EAAM/L,YAAS/jB,EAEV8vB,EAAMr9B,SACTq9B,EAAMr9B,OAASmvF,GAIjB1vE,EAAe,MAARA,EAAe,CAAC4d,GAASsxD,EAAOyB,UAAU3wE,EAAM,CAAC4d,IAExDmmE,EAAU7U,EAAOtxD,MAAMmmE,QAAQngG,IAAS,GAEnCu4G,IAAgBpY,EAAQyH,UAAiD,IAAtCzH,EAAQyH,QAAQtoG,MAAMwsF,EAAM1vE,IAApE,CAMA,IAAKm8F,IAAiBpY,EAAQ6J,WAAatf,EAASoB,GAAO,CAOzD,IANA0sB,EAAarY,EAAQqH,cAAgBxnG,EAEhCq4G,GAAYj6G,KAAKo6G,EAAax4G,KACjCs6B,EAAMA,EAAIjN,YAGLiN,EAAKA,EAAMA,EAAIjN,WACpBsrF,EAAUh8F,KAAK2d,GACf9jB,EAAM8jB,EAIJ9jB,KAASs1E,EAAK2F,eAAiBpzC,IACjCs6D,EAAUh8F,KAAKnG,EAAI88E,aAAe98E,EAAIoiG,cAAgBp6G,GAO1D,IAFApF,EAAI,GAEIkhC,EAAMq+E,EAAUv/G,QAAU4gC,EAAMovE,wBACtCsP,EAAcp+E,EACdN,EAAMh6B,KAAO5G,EAAI,EAAIo/G,EAAarY,EAAQqI,UAAYxoG,GAEtDqoG,GAAU1F,EAAS1oG,IAAIqgC,EAAK,WAAaxgC,OAAOY,OAAO,OAAOs/B,EAAMh6B,OAAS2iG,EAAS1oG,IAAIqgC,EAAK,YAG7F+tE,EAAO/oG,MAAMg7B,EAAKle,IAIpBisF,EAASoQ,GAAUn+E,EAAIm+E,KAETpQ,EAAO/oG,OAASijG,EAAWjoE,KACvCN,EAAM/L,OAASo6E,EAAO/oG,MAAMg7B,EAAKle,IAEZ,IAAjB4d,EAAM/L,QACR+L,EAAM2tE,kBAyCZ,OApCA3tE,EAAMh6B,KAAOA,EAERu4G,GAAiBv+E,EAAMowE,sBACpBjK,EAAQqF,WAA8D,IAAlDrF,EAAQqF,SAASlmG,MAAMq5G,EAAUh/E,MAAOvd,KAAoBmmF,EAAWzW,IAG3F2sB,GAAUv1G,EAAW4oF,EAAK9rF,MAAW0qF,EAASoB,MAEhDt1E,EAAMs1E,EAAK2sB,MAGT3sB,EAAK2sB,GAAU,MAIjBntB,EAAOtxD,MAAMsuE,UAAYtoG,EAErBg6B,EAAMovE,wBACRsP,EAAY/nF,iBAAiB3wB,EAAMs4G,IAGrCxsB,EAAK9rF,KAEDg6B,EAAMovE,wBACRsP,EAAY9nF,oBAAoB5wB,EAAMs4G,IAGxChtB,EAAOtxD,MAAMsuE,eAAYp+F,EAErBsM,IACFs1E,EAAK2sB,GAAUjiG,IAMhBwjB,EAAM/L,SAIf4qF,SAAU,SAAkB74G,EAAM8rF,EAAM9xD,GACtC,IAAIz8B,EAAI+tF,EAAOa,OAAO,IAAIb,EAAOuc,MAAS7tE,EAAO,CAC/Ch6B,KAAMA,EACNwqG,aAAa,IAEflf,EAAOtxD,MAAM4tE,QAAQrqG,EAAG,KAAMuuF,MAGlCR,EAAO1sF,GAAGutF,OAAO,CACfyb,QAAS,SAAiB5nG,EAAMoc,GAC9B,OAAOnF,KAAKpW,MAAK,WACfyqF,EAAOtxD,MAAM4tE,QAAQ5nG,EAAMoc,EAAMnF,UAGrC6hG,eAAgB,SAAwB94G,EAAMoc,GAC5C,IAAI0vE,EAAO70E,KAAK,GAEhB,GAAI60E,EACF,OAAOR,EAAOtxD,MAAM4tE,QAAQ5nG,EAAMoc,EAAM0vE,GAAM,MAY/CtB,EAAQ4tB,SACX9sB,EAAOzqF,KAAK,CACVirG,MAAO,UACPC,KAAM,aACL,SAAUnmC,EAAMqjC,GAEjB,IAAIxxD,EAAU,SAAiBzd,GAC7BsxD,EAAOtxD,MAAM6+E,SAAS5P,EAAKjvE,EAAMr9B,OAAQ2uF,EAAOtxD,MAAMivE,IAAIjvE,KAG5DsxD,EAAOtxD,MAAMmmE,QAAQ8I,GAAO,CAC1BP,MAAO,WAGL,IAAI1d,EAAM/zE,KAAKw6E,eAAiBx6E,KAAKonC,UAAYpnC,KAC7C8hG,EAAWpW,EAASd,OAAO7W,EAAKie,GAE/B8P,GACH/tB,EAAIr6D,iBAAiBi1C,EAAMnuB,GAAS,GAGtCkrD,EAASd,OAAO7W,EAAKie,GAAM8P,GAAY,GAAK,IAE9ClQ,SAAU,WACR,IAAI7d,EAAM/zE,KAAKw6E,eAAiBx6E,KAAKonC,UAAYpnC,KAC7C8hG,EAAWpW,EAASd,OAAO7W,EAAKie,GAAO,EAEtC8P,EAIHpW,EAASd,OAAO7W,EAAKie,EAAK8P,IAH1B/tB,EAAIp6D,oBAAoBg1C,EAAMnuB,GAAS,GACvCkrD,EAAS9mC,OAAOmvB,EAAKie,SAS/B,IAAI1R,GAAW/4F,EAAO+4F,SAClB3M,GAAQ,CACVwC,KAAMl0D,KAAKC,OAET6/E,GAAS,KAEb1tB,EAAO2tB,SAAW,SAAU78F,GAC1B,IAAIo6E,EAAK0iB,EAET,IAAK98F,GAAwB,kBAATA,EAClB,OAAO,KAKT,IACEo6E,GAAM,IAAIh4F,EAAO26G,WAAYC,gBAAgBh9F,EAAM,YACnD,MAAO7e,IAUT,OARA27G,EAAkB1iB,GAAOA,EAAI9E,qBAAqB,eAAe,GAE5D8E,IAAO0iB,GACV5tB,EAAOhzB,MAAM,iBAAmB4gD,EAAkB5tB,EAAO3pF,IAAIu3G,EAAgBhoB,YAAY,SAAUpgE,GACjG,OAAOA,EAAGwkE,eACT5tE,KAAK,MAAQtL,IAGXo6E,GAGT,IAAI6iB,GAAW,QACXC,GAAQ,SACRC,GAAkB,wCAClBC,GAAe,qCAEnB,SAASC,GAAY3wF,EAAQ5sB,EAAKw9G,EAAar0F,GAC7C,IAAI1rB,EAEJ,GAAI2B,MAAMC,QAAQW,GAEhBovF,EAAOzqF,KAAK3E,GAAK,SAAU9C,EAAGkQ,GACxBowG,GAAeL,GAASj7G,KAAK0qB,GAE/BzD,EAAIyD,EAAQxf,GAGZmwG,GAAY3wF,EAAS,KAAsB,WAAfzsB,EAAQiN,IAAwB,MAALA,EAAYlQ,EAAI,IAAM,IAAKkQ,EAAGowG,EAAar0F,WAGjG,GAAKq0F,GAA+B,WAAhBruB,EAAOnvF,GAOhCmpB,EAAIyD,EAAQ5sB,QALZ,IAAKvC,KAAQuC,EACXu9G,GAAY3wF,EAAS,IAAMnvB,EAAO,IAAKuC,EAAIvC,GAAO+/G,EAAar0F,GAUrEimE,EAAOxJ,MAAQ,SAAUl8E,EAAG8zG,GAC1B,IAAI5wF,EACA3tB,EAAI,GACJkqB,EAAM,SAAa1qB,EAAKg/G,GAE1B,IAAIt/G,EAAQ6I,EAAWy2G,GAAmBA,IAAoBA,EAC9Dx+G,EAAEA,EAAE0B,QAAU+8G,mBAAmBj/G,GAAO,IAAMi/G,mBAA4B,MAATv/G,EAAgB,GAAKA,IAGxF,GAAS,MAALuL,EACF,MAAO,GAIT,GAAItK,MAAMC,QAAQqK,IAAMA,EAAE6lF,SAAWH,EAAOiB,cAAc3mF,GAExD0lF,EAAOzqF,KAAK+E,GAAG,WACbyf,EAAIpO,KAAKtd,KAAMsd,KAAK5c,eAKtB,IAAKyuB,KAAUljB,EACb6zG,GAAY3wF,EAAQljB,EAAEkjB,GAAS4wF,EAAar0F,GAKhD,OAAOlqB,EAAEusB,KAAK,MAGhB4jE,EAAO1sF,GAAGutF,OAAO,CACf0tB,UAAW,WACT,OAAOvuB,EAAOxJ,MAAM7qE,KAAK6iG,mBAE3BA,eAAgB,WACd,OAAO7iG,KAAKtV,KAAI,WAEd,IAAImY,EAAWwxE,EAAOjoE,KAAKpM,KAAM,YACjC,OAAO6C,EAAWwxE,EAAOyB,UAAUjzE,GAAY7C,QAC9C8Q,QAAO,WACR,IAAI/nB,EAAOiX,KAAKjX,KAEhB,OAAOiX,KAAKtd,OAAS2xF,EAAOr0E,MAAM0kF,GAAG,cAAgB6d,GAAap7G,KAAK6Y,KAAK+5E,YAAcuoB,GAAgBn7G,KAAK4B,KAAUiX,KAAK2gF,UAAYiN,GAAezmG,KAAK4B,OAC7J2B,KAAI,SAAUg2B,EAAIm0D,GACnB,IAAI/zE,EAAMuzE,EAAOr0E,MAAMc,MAEvB,OAAW,MAAPA,EACK,KAGLzc,MAAMC,QAAQwc,GACTuzE,EAAO3pF,IAAIoW,GAAK,SAAUA,GAC/B,MAAO,CACLpe,KAAMmyF,EAAKnyF,KACXU,MAAO0d,EAAI9B,QAAQqjG,GAAO,YAKzB,CACL3/G,KAAMmyF,EAAKnyF,KACXU,MAAO0d,EAAI9B,QAAQqjG,GAAO,YAE3Br/G,SAGP,IAAI8/G,GAAM,OACNC,GAAQ,OACRC,GAAa,gBACbC,GAAW,6BAGXC,GAAa,iBACbC,GAAY,QAWhBvG,GAAa,GAObwG,GAAa,GAEbC,GAAW,KAAKhjG,OAAO,KAEvBijG,GAAel8D,EAAS6sC,cAAc,KAGtC,SAASsvB,GAA4BC,GAEnC,OAAO,SAAUC,EAAoBvb,GACD,kBAAvBub,IACTvb,EAAOub,EACPA,EAAqB,KAGvB,IAAIC,EACAvhH,EAAI,EACJwhH,EAAYF,EAAmBrkG,cAAc2M,MAAMs6E,IAAkB,GAEzE,GAAIp6F,EAAWi8F,GAEb,KAAOwb,EAAWC,EAAUxhH,MAEN,MAAhBuhH,EAAS,IACXA,EAAWA,EAASx8G,MAAM,IAAM,KAC/Bs8G,EAAUE,GAAYF,EAAUE,IAAa,IAAIrwC,QAAQ60B,KAEzDsb,EAAUE,GAAYF,EAAUE,IAAa,IAAIh+F,KAAKwiF,IAQjE,SAAS0b,GAA8BJ,EAAWx4G,EAASkyG,EAAiB2G,GAC1E,IAAIC,EAAY,GACZC,EAAmBP,IAAcJ,GAErC,SAASY,EAAQN,GACf,IAAI9iB,EAaJ,OAZAkjB,EAAUJ,IAAY,EACtBrvB,EAAOzqF,KAAK45G,EAAUE,IAAa,IAAI,SAAU3c,EAAGkd,GAClD,IAAIC,EAAsBD,EAAmBj5G,EAASkyG,EAAiB2G,GAEvE,MAAmC,kBAAxBK,GAAqCH,GAAqBD,EAAUI,GAIpEH,IACAnjB,EAAWsjB,QADf,GAHLl5G,EAAQ24G,UAAUtwC,QAAQ6wC,GAC1BF,EAAQE,IACD,MAKJtjB,EAGT,OAAOojB,EAAQh5G,EAAQ24G,UAAU,MAAQG,EAAU,MAAQE,EAAQ,KAMrE,SAASG,GAAWz+G,EAAQuwE,GAC1B,IAAIvyE,EACA2xF,EACA+uB,EAAc/vB,EAAOgwB,aAAaD,aAAe,GAErD,IAAK1gH,KAAOuyE,OACOhjE,IAAbgjE,EAAIvyE,MACL0gH,EAAY1gH,GAAOgC,EAAS2vF,IAASA,EAAO,KAAK3xF,GAAOuyE,EAAIvyE,IAQjE,OAJI2xF,GACFhB,EAAOa,QAAO,EAAMxvF,EAAQ2vF,GAGvB3vF,EAxET49G,GAAa7iB,KAAOH,GAASG,KAuO7BpM,EAAOa,OAAO,CAEZzvD,OAAQ,EAER6+E,aAAc,GACdC,KAAM,GACNF,aAAc,CACZG,IAAKlkB,GAASG,KACd13F,KAAM,MACN07G,QAzQa,4DAyQWt9G,KAAKm5F,GAASokB,UACtC7xB,QAAQ,EACR8xB,aAAa,EACbC,OAAO,EACPC,YAAa,mDAabC,QAAS,CACP,IAAKzB,GACL15F,KAAM,aACNwsF,KAAM,YACN5W,IAAK,4BACLwlB,KAAM,qCAERxf,SAAU,CACRhG,IAAK,UACL4W,KAAM,SACN4O,KAAM,YAERC,eAAgB,CACdzlB,IAAK,cACL51E,KAAM,eACNo7F,KAAM,gBAIRE,WAAY,CAEV,SAAUznC,OAEV,aAAa,EAEb,YAAa7iD,KAAKoT,MAElB,WAAYsmD,EAAO2tB,UAMrBoC,YAAa,CACXI,KAAK,EACL/hG,SAAS,IAMbyiG,UAAW,SAAmBx/G,EAAQy/G,GACpC,OAAOA,EACPhB,GAAWA,GAAWz+G,EAAQ2uF,EAAOgwB,cAAec,GACpDhB,GAAW9vB,EAAOgwB,aAAc3+G,IAElC0/G,cAAe7B,GAA4B3G,IAC3CyI,cAAe9B,GAA4BH,IAE3CkC,KAAM,SAAcd,EAAKx5G,GAEF,WAAjB5F,EAAQo/G,KACVx5G,EAAUw5G,EACVA,OAAMvxG,GAMR,IAAIsyG,EAEJC,EAEAC,EACIC,EAEJC,EAEAC,EAEArb,EAEAsb,EAEA1jH,EAEA2jH,EAEA5hH,EAAImwF,EAAO6wB,UAAU,GArBrBl6G,EAAUA,GAAW,IAuBrB+6G,EAAkB7hH,EAAEue,SAAWve,EAE/B8hH,EAAqB9hH,EAAEue,UAAYsjG,EAAgBvyB,UAAYuyB,EAAgBvxB,QAAUH,EAAO0xB,GAAmB1xB,EAAOtxD,MAE1HylE,EAAWnU,EAAO4T,WACdge,EAAmB5xB,EAAOyS,UAAU,eAExCof,EAAchiH,EAAEiiH,YAAc,GAE9BC,EAAiB,GACbC,EAAsB,GAE1BC,EAAW,WAEXzC,EAAQ,CACNnZ,WAAY,EAEZ6b,kBAAmB,SAA2B7iH,GAC5C,IAAIqoB,EAEJ,GAAIw+E,EAAW,CACb,IAAKmb,EAGH,IAFAA,EAAkB,GAEX35F,EAAQk3F,GAAStvG,KAAK8xG,IAC3BC,EAAgB35F,EAAM,GAAG3M,cAAgB,MAAQsmG,EAAgB35F,EAAM,GAAG3M,cAAgB,MAAQ,IAAIiB,OAAO0L,EAAM,IAIvHA,EAAQ25F,EAAgBhiH,EAAI0b,cAAgB,KAG9C,OAAgB,MAAT2M,EAAgB,KAAOA,EAAM0E,KAAK,OAG3C+1F,sBAAuB,WACrB,OAAOjc,EAAYkb,EAAwB,MAG7CgB,iBAAkB,SAA0B/jH,EAAMU,GAMhD,OALiB,MAAbmnG,IACF7nG,EAAO2jH,EAAoB3jH,EAAK0c,eAAiBinG,EAAoB3jH,EAAK0c,gBAAkB1c,EAC5F0jH,EAAe1jH,GAAQU,GAGlB4c,MAGT0mG,iBAAkB,SAA0B39G,GAK1C,OAJiB,MAAbwhG,IACFrmG,EAAEyiH,SAAW59G,GAGRiX,MAGTmmG,WAAY,SAAoBz7G,GAC9B,IAAIopF,EAEJ,GAAIppF,EACF,GAAI6/F,EAEFsZ,EAAMtb,OAAO79F,EAAIm5G,EAAM+C,cAGvB,IAAK9yB,KAAQppF,EACXw7G,EAAYpyB,GAAQ,CAACoyB,EAAYpyB,GAAOppF,EAAIopF,IAKlD,OAAO9zE,MAGT6mG,MAAO,SAAeC,GACpB,IAAIC,EAAYD,GAAcR,EAO9B,OALIf,GACFA,EAAUsB,MAAME,GAGlB1gH,EAAK,EAAG0gH,GACD/mG,OAeX,GAVAwoF,EAAS5B,QAAQid,GAIjB3/G,EAAEsgH,MAAQA,GAAOtgH,EAAEsgH,KAAOlkB,GAASG,MAAQ,IAAIzhF,QAAQmkG,GAAW7iB,GAASokB,SAAW,MAEtFxgH,EAAE6E,KAAOiC,EAAQq6B,QAAUr6B,EAAQjC,MAAQ7E,EAAEmhC,QAAUnhC,EAAE6E,KAEzD7E,EAAEy/G,WAAaz/G,EAAEw/G,UAAY,KAAKtkG,cAAc2M,MAAMs6E,IAAkB,CAAC,IAEpD,MAAjBniG,EAAE8iH,YAAqB,CACzBpB,EAAYx+D,EAAS6sC,cAAc,KAInC,IACE2xB,EAAUnlB,KAAOv8F,EAAEsgH,IAGnBoB,EAAUnlB,KAAOmlB,EAAUnlB,KAC3Bv8F,EAAE8iH,YAAc1D,GAAaoB,SAAW,KAAOpB,GAAajtF,OAASuvF,EAAUlB,SAAW,KAAOkB,EAAUvvF,KAC3G,MAAO/vB,GAGPpC,EAAE8iH,aAAc,GAYpB,GAPI9iH,EAAEihB,MAAQjhB,EAAEygH,aAAiC,kBAAXzgH,EAAEihB,OACtCjhB,EAAEihB,KAAOkvE,EAAOxJ,MAAM3mF,EAAEihB,KAAMjhB,EAAEu+G,cAIlCmB,GAA8BhH,GAAY14G,EAAG8G,EAAS64G,GAElDtZ,EACF,OAAOsZ,EA6DT,IAAK1hH,KAxDL0jH,EAAcxxB,EAAOtxD,OAAS7+B,EAAE2uF,SAEO,IAApBwB,EAAO5uD,UACxB4uD,EAAOtxD,MAAM4tE,QAAQ,aAIvBzsG,EAAE6E,KAAO7E,EAAE6E,KAAKgD,cAEhB7H,EAAE+iH,YAAc/D,GAAW/7G,KAAKjD,EAAE6E,MAIlCy8G,EAAWthH,EAAEsgH,IAAIxlG,QAAQ+jG,GAAO,IAE3B7+G,EAAE+iH,WAkBI/iH,EAAEihB,MAAQjhB,EAAEygH,aAAsF,KAAtEzgH,EAAE2gH,aAAe,IAAI/5G,QAAQ,uCAClE5G,EAAEihB,KAAOjhB,EAAEihB,KAAKnG,QAAQ8jG,GAAK,OAjB7BgD,EAAW5hH,EAAEsgH,IAAIt9G,MAAMs+G,EAAS5/G,QAE5B1B,EAAEihB,OAASjhB,EAAEygH,aAAiC,kBAAXzgH,EAAEihB,QACvCqgG,IAAazD,GAAO56G,KAAKq+G,GAAY,IAAM,KAAOthH,EAAEihB,YAE7CjhB,EAAEihB,OAIK,IAAZjhB,EAAE2hB,QACJ2/F,EAAWA,EAASxmG,QAAQgkG,GAAY,MACxC8C,GAAY/D,GAAO56G,KAAKq+G,GAAY,IAAM,KAAO,KAAO7xB,GAAMwC,OAAS2vB,GAIzE5hH,EAAEsgH,IAAMgB,EAAWM,GAMjB5hH,EAAEgjH,aACA7yB,EAAOiwB,aAAakB,IACtB3B,EAAM4C,iBAAiB,oBAAqBpyB,EAAOiwB,aAAakB,IAG9DnxB,EAAOkwB,KAAKiB,IACd3B,EAAM4C,iBAAiB,gBAAiBpyB,EAAOkwB,KAAKiB,MAKpDthH,EAAEihB,MAAQjhB,EAAE+iH,aAAgC,IAAlB/iH,EAAE2gH,aAAyB75G,EAAQ65G,cAC/DhB,EAAM4C,iBAAiB,eAAgBviH,EAAE2gH,aAI3ChB,EAAM4C,iBAAiB,SAAUviH,EAAEy/G,UAAU,IAAMz/G,EAAE4gH,QAAQ5gH,EAAEy/G,UAAU,IAAMz/G,EAAE4gH,QAAQ5gH,EAAEy/G,UAAU,KAA0B,MAAnBz/G,EAAEy/G,UAAU,GAAa,KAAON,GAAW,WAAa,IAAMn/G,EAAE4gH,QAAQ,MAE1K5gH,EAAEijH,QACVtD,EAAM4C,iBAAiBtkH,EAAG+B,EAAEijH,QAAQhlH,IAItC,GAAI+B,EAAEkjH,cAAgE,IAAjDljH,EAAEkjH,WAAW9kH,KAAKyjH,EAAiBlC,EAAO3/G,IAAgBqmG,GAE7E,OAAOsZ,EAAMgD,QAYf,GARAP,EAAW,QAEXL,EAAiB73F,IAAIlqB,EAAE2+B,UACvBghF,EAAMx9G,KAAKnC,EAAEmjH,SACbxD,EAAMhd,KAAK3iG,EAAEm9D,OAEbkkD,EAAY3B,GAA8BR,GAAYl/G,EAAG8G,EAAS64G,GAI3D,CAQL,GAPAA,EAAMnZ,WAAa,EAEfmb,GACFG,EAAmBrV,QAAQ,WAAY,CAACkT,EAAO3/G,IAI7CqmG,EACF,OAAOsZ,EAIL3/G,EAAE0gH,OAAS1gH,EAAEi8D,QAAU,IACzBwlD,EAAep+G,EAAO25D,YAAW,WAC/B2iD,EAAMgD,MAAM,aACX3iH,EAAEi8D,UAGP,IACEoqC,GAAY,EACZgb,EAAU+B,KAAKlB,EAAgB//G,GAC/B,MAAOC,GAEP,GAAIikG,EACF,MAAMjkG,EAIRD,GAAM,EAAGC,SA9BXD,GAAM,EAAG,gBAmCX,SAASA,EAAKugH,EAAQW,EAAkBC,EAAWL,GACjD,IAAIM,EACAJ,EACAhmD,EACAqmD,EACAC,EACAb,EAAaS,EAEbhd,IAIJA,GAAY,EAERob,GACFp+G,EAAO05D,aAAa0kD,GAKtBJ,OAAYtyG,EAEZwyG,EAAwB0B,GAAW,GAEnCtD,EAAMnZ,WAAakc,EAAS,EAAI,EAAI,EAEpCa,EAAYb,GAAU,KAAOA,EAAS,KAAkB,MAAXA,EAEzCY,IACFE,EA9gBR,SAA6BxjH,EAAG2/G,EAAO2D,GAQrC,IAPA,IAAII,EACA7+G,EACA8+G,EACAC,EACAviB,EAAWrhG,EAAEqhG,SACboe,EAAYz/G,EAAEy/G,UAEM,MAAjBA,EAAU,IACfA,EAAUh6E,aAEC12B,IAAP20G,IACFA,EAAK1jH,EAAEyiH,UAAY9C,EAAM0C,kBAAkB,iBAK/C,GAAIqB,EACF,IAAK7+G,KAAQw8F,EACX,GAAIA,EAASx8F,IAASw8F,EAASx8F,GAAM5B,KAAKygH,GAAK,CAC7CjE,EAAUtwC,QAAQtqE,GAClB,MAMN,GAAI46G,EAAU,KAAM6D,EAClBK,EAAgBlE,EAAU,OACrB,CAEL,IAAK56G,KAAQy+G,EAAW,CACtB,IAAK7D,EAAU,IAAMz/G,EAAE+gH,WAAWl8G,EAAO,IAAM46G,EAAU,IAAK,CAC5DkE,EAAgB9+G,EAChB,MAGG++G,IACHA,EAAgB/+G,GAKpB8+G,EAAgBA,GAAiBC,EAMnC,GAAID,EAKF,OAJIA,IAAkBlE,EAAU,IAC9BA,EAAUtwC,QAAQw0C,GAGbL,EAAUK,GAwdFE,CAAoB7jH,EAAG2/G,EAAO2D,KAItCC,GAAapzB,EAAO2B,QAAQ,SAAU9xF,EAAEy/G,YAAc,GAAKtvB,EAAO2B,QAAQ,OAAQ9xF,EAAEy/G,WAAa,IACpGz/G,EAAE+gH,WAAW,eAAiB,cAIhCyC,EAzdN,SAAqBxjH,EAAGwjH,EAAU7D,EAAO4D,GACvC,IAAIO,EACA/yF,EACAgzF,EACA1oG,EACAqW,EACAqvF,EAAa,GAEjBtB,EAAYz/G,EAAEy/G,UAAUz8G,QAExB,GAAIy8G,EAAU,GACZ,IAAKsE,KAAQ/jH,EAAE+gH,WACbA,EAAWgD,EAAK7oG,eAAiBlb,EAAE+gH,WAAWgD,GAMlD,IAFAhzF,EAAU0uF,EAAUh6E,QAEb1U,GAaL,GAZI/wB,EAAE8gH,eAAe/vF,KACnB4uF,EAAM3/G,EAAE8gH,eAAe/vF,IAAYyyF,IAIhC9xF,GAAQ6xF,GAAavjH,EAAEgkH,aAC1BR,EAAWxjH,EAAEgkH,WAAWR,EAAUxjH,EAAEw/G,WAGtC9tF,EAAOX,EACPA,EAAU0uF,EAAUh6E,QAIlB,GAAgB,MAAZ1U,EACFA,EAAUW,OACL,GAAa,MAATA,GAAgBA,IAASX,EAAS,CAI3C,KAFAgzF,EAAOhD,EAAWrvF,EAAO,IAAMX,IAAYgwF,EAAW,KAAOhwF,IAG3D,IAAK+yF,KAAS/C,EAIZ,IAFA1lG,EAAMyoG,EAAMpmG,MAAM,MAEV,KAAOqT,IAEbgzF,EAAOhD,EAAWrvF,EAAO,IAAMrW,EAAI,KAAO0lG,EAAW,KAAO1lG,EAAI,KAEtD,EAEK,IAAT0oG,EACFA,EAAOhD,EAAW+C,IACa,IAAtB/C,EAAW+C,KACpB/yF,EAAU1V,EAAI,GACdokG,EAAUtwC,QAAQ9zD,EAAI,KAGxB,MAOR,IAAa,IAAT0oG,EAEF,GAAIA,GAAQ/jH,EAAEikH,OACZT,EAAWO,EAAKP,QAEhB,IACEA,EAAWO,EAAKP,GAChB,MAAOphH,GACP,MAAO,CACLgiG,MAAO,cACPjnC,MAAO4mD,EAAO3hH,EAAI,sBAAwBsvB,EAAO,OAASX,IASxE,MAAO,CACLqzE,MAAO,UACPnjF,KAAMuiG,GAoYOU,CAAYlkH,EAAGwjH,EAAU7D,EAAO4D,GAEvCA,GAEEvjH,EAAEgjH,cACJS,EAAW9D,EAAM0C,kBAAkB,oBAGjClyB,EAAOiwB,aAAakB,GAAYmC,IAGlCA,EAAW9D,EAAM0C,kBAAkB,WAGjClyB,EAAOkwB,KAAKiB,GAAYmC,IAKb,MAAXf,GAA6B,SAAX1iH,EAAE6E,KACtB+9G,EAAa,YACO,MAAXF,EACTE,EAAa,eAEbA,EAAaY,EAASpf,MACtB+e,EAAUK,EAASviG,KAEnBsiG,IADApmD,EAAQqmD,EAASrmD,UAKnBA,EAAQylD,GAEJF,GAAWE,IACbA,EAAa,QAETF,EAAS,IACXA,EAAS,KAMf/C,EAAM+C,OAASA,EACf/C,EAAMiD,YAAcS,GAAoBT,GAAc,GAElDW,EACFjf,EAASc,YAAYyc,EAAiB,CAACsB,EAASP,EAAYjD,IAE5Drb,EAASkB,WAAWqc,EAAiB,CAAClC,EAAOiD,EAAYzlD,IAI3DwiD,EAAMsC,WAAWD,GACjBA,OAAcjzG,EAEV4yG,GACFG,EAAmBrV,QAAQ8W,EAAY,cAAgB,YAAa,CAAC5D,EAAO3/G,EAAGujH,EAAYJ,EAAUhmD,IAIvG4kD,EAAiBle,SAASge,EAAiB,CAAClC,EAAOiD,IAE/CjB,IACFG,EAAmBrV,QAAQ,eAAgB,CAACkT,EAAO3/G,MAE3CmwF,EAAO5uD,QACb4uD,EAAOtxD,MAAM4tE,QAAQ,cAK3B,OAAOkT,GAETwE,QAAS,SAAiB7D,EAAKr/F,EAAM3d,GACnC,OAAO6sF,EAAOrxF,IAAIwhH,EAAKr/F,EAAM3d,EAAU,SAEzC8gH,UAAW,SAAmB9D,EAAKh9G,GACjC,OAAO6sF,EAAOrxF,IAAIwhH,OAAKvxG,EAAWzL,EAAU,aAGhD6sF,EAAOzqF,KAAK,CAAC,MAAO,SAAS,SAAU82B,EAAI2E,GACzCgvD,EAAOhvD,GAAU,SAAUm/E,EAAKr/F,EAAM3d,EAAUuB,GAS9C,OAPIkD,EAAWkZ,KACbpc,EAAOA,GAAQvB,EACfA,EAAW2d,EACXA,OAAOlS,GAIFohF,EAAOixB,KAAKjxB,EAAOa,OAAO,CAC/BsvB,IAAKA,EACLz7G,KAAMs8B,EACNq+E,SAAU36G,EACVoc,KAAMA,EACNkiG,QAAS7/G,GACR6sF,EAAOiB,cAAckvB,IAAQA,QAGpCnwB,EAAO+wB,eAAc,SAAUlhH,GAC7B,IAAI/B,EAEJ,IAAKA,KAAK+B,EAAEijH,QACc,iBAApBhlH,EAAEid,gBACJlb,EAAE2gH,YAAc3gH,EAAEijH,QAAQhlH,IAAM,OAKtCkyF,EAAO+hB,SAAW,SAAUoO,EAAKx5G,EAAS+oF,GACxC,OAAOM,EAAOixB,KAAK,CACjBd,IAAKA,EAELz7G,KAAM,MACN26G,SAAU,SACV79F,OAAO,EACP++F,OAAO,EACP/xB,QAAQ,EAIRoyB,WAAY,CACV,cAAe,cAEjBiD,WAAY,SAAoBR,GAC9BrzB,EAAOwB,WAAW6xB,EAAU18G,EAAS+oF,OAK3CM,EAAO1sF,GAAGutF,OAAO,CACfqzB,QAAS,SAAiBpS,GACxB,IAAIzxD,EAyBJ,OAvBI1kC,KAAK,KACH/T,EAAWkqG,KACbA,EAAOA,EAAK7zG,KAAK0d,KAAK,KAIxB0kC,EAAO2vC,EAAO8hB,EAAMn2F,KAAK,GAAGw6E,eAAeroF,GAAG,GAAGqN,OAAM,GAEnDQ,KAAK,GAAGoW,YACVsuB,EAAKoyD,aAAa92F,KAAK,IAGzB0kC,EAAKh6C,KAAI,WAGP,IAFA,IAAImqF,EAAO70E,KAEJ60E,EAAK2zB,mBACV3zB,EAAOA,EAAK2zB,kBAGd,OAAO3zB,KACN+hB,OAAO52F,OAGLA,MAETyoG,UAAW,SAAmBtS,GAC5B,OAAIlqG,EAAWkqG,GACNn2F,KAAKpW,MAAK,SAAUzH,GACzBkyF,EAAOr0E,MAAMyoG,UAAUtS,EAAK7zG,KAAK0d,KAAM7d,OAIpC6d,KAAKpW,MAAK,WACf,IAAIy2B,EAAOg0D,EAAOr0E,MACdulF,EAAWllE,EAAKklE,WAEhBA,EAAS3/F,OACX2/F,EAASgjB,QAAQpS,GAEjB91E,EAAKu2E,OAAOT,OAIlBzxD,KAAM,SAAcyxD,GAClB,IAAIuS,EAAiBz8G,EAAWkqG,GAChC,OAAOn2F,KAAKpW,MAAK,SAAUzH,GACzBkyF,EAAOr0E,MAAMuoG,QAAQG,EAAiBvS,EAAK7zG,KAAK0d,KAAM7d,GAAKg0G,OAG/DwS,OAAQ,SAAgBr0B,GAItB,OAHAt0E,KAAKgS,OAAOsiE,GAAU2Q,IAAI,QAAQr7F,MAAK,WACrCyqF,EAAOr0E,MAAM+2F,YAAY/2F,KAAKi6E,eAEzBj6E,QAIXq0E,EAAOwJ,KAAK3F,QAAQ98C,OAAS,SAAUy5C,GACrC,OAAQR,EAAOwJ,KAAK3F,QAAQryD,QAAQgvD,IAGtCR,EAAOwJ,KAAK3F,QAAQryD,QAAU,SAAUgvD,GACtC,SAAUA,EAAKgkB,aAAehkB,EAAK8kB,cAAgB9kB,EAAKqmB,iBAAiBt1G,SAG3EyuF,EAAOgwB,aAAauE,IAAM,WACxB,IACE,OAAO,IAAIrhH,EAAOshH,eAClB,MAAOviH,MAGX,IAAIwiH,GAAmB,CAErB,EAAG,IAGH,KAAM,KAEJC,GAAe10B,EAAOgwB,aAAauE,MACvCr1B,EAAQy1B,OAASD,IAAgB,oBAAqBA,GACtDx1B,EAAQ+xB,KAAOyD,KAAiBA,GAChC10B,EAAOgxB,eAAc,SAAUr6G,GAC7B,IAAIi+G,EAAWC,EAGf,GAAI31B,EAAQy1B,MAAQD,KAAiB/9G,EAAQg8G,YAC3C,MAAO,CACLM,KAAM,SAAcH,EAAStkF,GAC3B,IAAI1gC,EACAymH,EAAM59G,EAAQ49G,MAGlB,GAFAA,EAAIO,KAAKn+G,EAAQjC,KAAMiC,EAAQw5G,IAAKx5G,EAAQ45G,MAAO55G,EAAQo+G,SAAUp+G,EAAQk2F,UAEzEl2F,EAAQq+G,UACV,IAAKlnH,KAAK6I,EAAQq+G,UAChBT,EAAIzmH,GAAK6I,EAAQq+G,UAAUlnH,GAmB/B,IAAKA,KAdD6I,EAAQ27G,UAAYiC,EAAIlC,kBAC1BkC,EAAIlC,iBAAiB17G,EAAQ27G,UAQ1B37G,EAAQg8G,aAAgBG,EAAQ,sBACnCA,EAAQ,oBAAsB,kBAItBA,EACRyB,EAAInC,iBAAiBtkH,EAAGglH,EAAQhlH,IAIlC8mH,EAAY,SAAkBlgH,GAC5B,OAAO,WACDkgH,IACFA,EAAYC,EAAgBN,EAAIU,OAASV,EAAIW,QAAUX,EAAIY,QAAUZ,EAAIa,UAAYb,EAAIc,mBAAqB,KAEjG,UAAT3gH,EACF6/G,EAAI/B,QACc,UAAT99G,EAIiB,kBAAf6/G,EAAIhC,OACb/jF,EAAS,EAAG,SAEZA,EACA+lF,EAAIhC,OAAQgC,EAAI9B,YAGlBjkF,EAASimF,GAAiBF,EAAIhC,SAAWgC,EAAIhC,OAAQgC,EAAI9B,WAGxB,UAAhC8B,EAAIe,cAAgB,SAAkD,kBAArBf,EAAIgB,aAA4B,CAChFC,OAAQjB,EAAIlB,UACV,CACF/9F,KAAMi/F,EAAIgB,cACThB,EAAIpC,4BAOfoC,EAAIU,OAASL,IACbC,EAAgBN,EAAIW,QAAUX,EAAIa,UAAYR,EAAU,cAIpCh2G,IAAhB21G,EAAIY,QACNZ,EAAIY,QAAUN,EAEdN,EAAIc,mBAAqB,WAEA,IAAnBd,EAAIle,YAKNnjG,EAAO25D,YAAW,WACZ+nD,GACFC,QAQVD,EAAYA,EAAU,SAEtB,IAEEL,EAAItB,KAAKt8G,EAAQi8G,YAAcj8G,EAAQma,MAAQ,MAC/C,MAAO7e,GAEP,GAAI2iH,EACF,MAAM3iH,IAIZugH,MAAO,WACDoC,GACFA,SAOV50B,EAAO+wB,eAAc,SAAUlhH,GACzBA,EAAE8iH,cACJ9iH,EAAEqhG,SAASvR,QAAS,MAIxBK,EAAO6wB,UAAU,CACfJ,QAAS,CACP9wB,OAAQ,6FAEVuR,SAAU,CACRvR,OAAQ,2BAEVixB,WAAY,CACV,cAAe,SAAoBt7F,GAEjC,OADA0qE,EAAOwB,WAAWlsE,GACXA,MAKb0qE,EAAO+wB,cAAc,UAAU,SAAUlhH,QACvB+O,IAAZ/O,EAAE2hB,QACJ3hB,EAAE2hB,OAAQ,GAGR3hB,EAAE8iH,cACJ9iH,EAAE6E,KAAO,UAIbsrF,EAAOgxB,cAAc,UAAU,SAAUnhH,GAGrC,IAAI8vF,EAAQ81B,EADd,GAAI5lH,EAAE8iH,aAAe9iH,EAAE6lH,YAGrB,MAAO,CACLzC,KAAM,SAAcvgB,EAAGlkE,GACrBmxD,EAASK,EAAO,YAAYyJ,KAAK55F,EAAE6lH,aAAe,IAAI39F,KAAK,CACzD49F,QAAS9lH,EAAE+lH,cACXh0C,IAAK/xE,EAAEsgH,MACNtP,GAAG,aAAc4U,EAAa,SAAkB5yF,GACjD88D,EAAOpvB,SACPklD,EAAa,KAET5yF,GACF2L,EAAsB,UAAb3L,EAAInuB,KAAmB,IAAM,IAAKmuB,EAAInuB,QAInDq+C,EAAS/S,KAAK6/C,YAAYF,EAAO,KAEnC6yB,MAAO,WACDiD,GACFA,SAMV,IAgFMpsC,GAhFFwsC,GAAe,GACfC,GAAS,oBAEb91B,EAAO6wB,UAAU,CACfkF,MAAO,WACPC,cAAe,WACb,IAAI7iH,EAAW0iH,GAAaxnF,OAAS2xD,EAAOkB,QAAU,IAAM5B,GAAMwC,OAElE,OADAn2E,KAAKxY,IAAY,EACVA,KAIX6sF,EAAO+wB,cAAc,cAAc,SAAUlhH,EAAGomH,EAAkBzG,GAChE,IAAI0G,EACAC,EACAC,EACAC,GAAuB,IAAZxmH,EAAEkmH,QAAoBD,GAAOhjH,KAAKjD,EAAEsgH,KAAO,MAA0B,kBAAXtgH,EAAEihB,MAA4F,KAAtEjhB,EAAE2gH,aAAe,IAAI/5G,QAAQ,sCAA8Cq/G,GAAOhjH,KAAKjD,EAAEihB,OAAS,QAEnM,GAAIulG,GAA+B,UAAnBxmH,EAAEy/G,UAAU,GAqD1B,OAnDA4G,EAAermH,EAAEmmH,cAAgBp+G,EAAW/H,EAAEmmH,eAAiBnmH,EAAEmmH,gBAAkBnmH,EAAEmmH,cAEjFK,EACFxmH,EAAEwmH,GAAYxmH,EAAEwmH,GAAU1rG,QAAQmrG,GAAQ,KAAOI,IAC5B,IAAZrmH,EAAEkmH,QACXlmH,EAAEsgH,MAAQzC,GAAO56G,KAAKjD,EAAEsgH,KAAO,IAAM,KAAOtgH,EAAEkmH,MAAQ,IAAMG,GAI9DrmH,EAAE+gH,WAAW,eAAiB,WAK5B,OAJKwF,GACHp2B,EAAOhzB,MAAMkpD,EAAe,mBAGvBE,EAAkB,IAI3BvmH,EAAEy/G,UAAU,GAAK,OAEjB6G,EAAcjjH,EAAOgjH,GAErBhjH,EAAOgjH,GAAgB,WACrBE,EAAoBviH,WAItB27G,EAAMtb,QAAO,gBAESt1F,IAAhBu3G,EACFn2B,EAAO9sF,GAAQ24G,WAAWqK,GAE1BhjH,EAAOgjH,GAAgBC,EAIrBtmH,EAAEqmH,KAEJrmH,EAAEmmH,cAAgBC,EAAiBD,cAEnCH,GAAaxkG,KAAK6kG,IAIhBE,GAAqBx+G,EAAWu+G,IAClCA,EAAYC,EAAkB,IAGhCA,EAAoBD,OAAcv3G,KAG7B,YAQXsgF,EAAQo3B,qBACFjtC,GAAOt2B,EAASwjE,eAAeD,mBAAmB,IAAIjtC,MACrDqf,UAAY,6BACiB,IAA3Brf,GAAKuc,WAAWr0F,QAOzByuF,EAAO8Q,UAAY,SAAUhgF,EAAM1C,EAASooG,GAC1C,MAAoB,kBAAT1lG,EACF,IAGc,mBAAZ1C,IACTooG,EAAcpoG,EACdA,GAAU,GAKPA,IAGC8wE,EAAQo3B,qBAKV3rF,GAJAvc,EAAU2kC,EAASwjE,eAAeD,mBAAmB,KAItC12B,cAAc,SACxBwM,KAAOr5C,EAASk5C,SAASG,KAC9Bh+E,EAAQ4xB,KAAK6/C,YAAYl1D,IAEzBvc,EAAU2kC,GAKd8nD,GAAW2b,GAAe,IAD1B/hF,EAASg8D,EAAWnxF,KAAKwR,IAIhB,CAAC1C,EAAQwxE,cAAcnrD,EAAO,MAGvCA,EAASmmE,GAAc,CAAC9pF,GAAO1C,EAASysF,GAEpCA,GAAWA,EAAQtpG,QACrByuF,EAAO6a,GAAStqC,SAGXyvB,EAAOlpF,MAAM,GAAI29B,EAAOmxD,cA/B/B,IAAIj7D,EAAM8J,EAAQomE,GAsCpB7a,EAAO1sF,GAAGmrG,KAAO,SAAU0R,EAAK7hE,EAAQn7C,GACtC,IAAI8sF,EACAvrF,EACA2+G,EACArnF,EAAOrgB,KACPkwF,EAAMsU,EAAI15G,QAAQ,KA0CtB,OAxCIolG,GAAO,IACT5b,EAAWyrB,GAAiByE,EAAIt9G,MAAMgpG,IACtCsU,EAAMA,EAAIt9G,MAAM,EAAGgpG,IAIjBjkG,EAAW02C,IAEbn7C,EAAWm7C,EACXA,OAAS1vC,GACA0vC,GAA8B,WAApBv9C,EAAQu9C,KAC3B55C,EAAO,QAILs3B,EAAKz6B,OAAS,GAChByuF,EAAOixB,KAAK,CACVd,IAAKA,EAILz7G,KAAMA,GAAQ,MACd26G,SAAU,OACVv+F,KAAMw9B,IACLt8C,MAAK,SAAUujH,GAEhBlC,EAAWx/G,UACXm4B,EAAK81E,KAAK7hB,EAEVD,EAAO,SAASuiB,OAAOviB,EAAO8Q,UAAUykB,IAAehtB,KAAKtI,GAC5Ds1B,MAGCrhB,OAAO/gG,GAAY,SAAUq8G,EAAO+C,GACrCvmF,EAAKz2B,MAAK,WACRpC,EAASa,MAAM2X,KAAM0nG,GAAY,CAAC7D,EAAM+F,aAAchD,EAAQ/C,SAK7D7jG,MAGTq0E,EAAOwJ,KAAK3F,QAAQr7C,SAAW,SAAUg4C,GACvC,OAAOR,EAAOU,KAAKV,EAAOoqB,QAAQ,SAAU92G,GAC1C,OAAOktF,IAASltF,EAAGktF,QAClBjvF,QAGLyuF,EAAOx9C,OAAS,CACdi0E,UAAW,SAAmBj2B,EAAM7pF,EAAS7I,GAC3C,IAAI4oH,EACAC,EACAC,EACAC,EACAC,EACAC,EAEA7qE,EAAW8zC,EAAO0Y,IAAIlY,EAAM,YAC5Bw2B,EAAUh3B,EAAOQ,GACjBlvF,EAAQ,GAEK,WAAb46C,IACFs0C,EAAK3xE,MAAMq9B,SAAW,YAGxB4qE,EAAYE,EAAQx0E,SACpBo0E,EAAY52B,EAAO0Y,IAAIlY,EAAM,OAC7Bu2B,EAAa/2B,EAAO0Y,IAAIlY,EAAM,SACI,aAAbt0C,GAAwC,UAAbA,KAA0B0qE,EAAYG,GAAYtgH,QAAQ,SAAW,GAKnHogH,GADAH,EAAcM,EAAQ9qE,YACD53B,IACrBqiG,EAAUD,EAAYtiG,OAEtByiG,EAASvhH,WAAWshH,IAAc,EAClCD,EAAUrhH,WAAWyhH,IAAe,GAGlCn/G,EAAWjB,KAEbA,EAAUA,EAAQ1I,KAAKuyF,EAAM1yF,EAAGkyF,EAAOa,OAAO,GAAIi2B,KAGjC,MAAfngH,EAAQ2d,MACVhjB,EAAMgjB,IAAM3d,EAAQ2d,IAAMwiG,EAAUxiG,IAAMuiG,GAGxB,MAAhBlgH,EAAQyd,OACV9iB,EAAM8iB,KAAOzd,EAAQyd,KAAO0iG,EAAU1iG,KAAOuiG,GAG3C,UAAWhgH,EACbA,EAAQsgH,MAAMhpH,KAAKuyF,EAAMlvF,GAEzB0lH,EAAQte,IAAIpnG,KAIlB0uF,EAAO1sF,GAAGutF,OAAO,CAEfr+C,OAAQ,SAAgB7rC,GAEtB,GAAI9C,UAAUtC,OACZ,YAAmBqN,IAAZjI,EAAwBgV,KAAOA,KAAKpW,MAAK,SAAUzH,GACxDkyF,EAAOx9C,OAAOi0E,UAAU9qG,KAAMhV,EAAS7I,MAI3C,IAAI8lB,EACAsjG,EACA12B,EAAO70E,KAAK,GAEhB,OAAK60E,EAQAA,EAAKqmB,iBAAiBt1G,QAQ3BqiB,EAAO4sE,EAAK98D,wBACZwzF,EAAM12B,EAAK2F,cAAc6B,YAClB,CACL1zE,IAAKV,EAAKU,IAAM4iG,EAAIC,YACpB/iG,KAAMR,EAAKQ,KAAO8iG,EAAIE,cAXf,CACL9iG,IAAK,EACLF,KAAM,QAXV,GAyBF83B,SAAU,WACR,GAAKvgC,KAAK,GAAV,CAIA,IAAI0rG,EACA70E,EACAk9C,EACAc,EAAO70E,KAAK,GACZ2rG,EAAe,CACjBhjG,IAAK,EACLF,KAAM,GAGR,GAAqC,UAAjC4rE,EAAO0Y,IAAIlY,EAAM,YAEnBh+C,EAASg+C,EAAK98D,4BACT,CAOL,IANA8e,EAAS72B,KAAK62B,SAGdk9C,EAAMc,EAAK2F,cACXkxB,EAAe72B,EAAK62B,cAAgB33B,EAAImI,gBAEjCwvB,IAAiBA,IAAiB33B,EAAIrW,MAAQguC,IAAiB33B,EAAImI,kBAA6D,WAAzC7H,EAAO0Y,IAAI2e,EAAc,aACrHA,EAAeA,EAAat1F,WAG1Bs1F,GAAgBA,IAAiB72B,GAAkC,IAA1B62B,EAAal4B,YAExDm4B,EAAet3B,EAAOq3B,GAAc70E,UACvBluB,KAAO0rE,EAAO0Y,IAAI2e,EAAc,kBAAkB,GAC/DC,EAAaljG,MAAQ4rE,EAAO0Y,IAAI2e,EAAc,mBAAmB,IAKrE,MAAO,CACL/iG,IAAKkuB,EAAOluB,IAAMgjG,EAAahjG,IAAM0rE,EAAO0Y,IAAIlY,EAAM,aAAa,GACnEpsE,KAAMouB,EAAOpuB,KAAOkjG,EAAaljG,KAAO4rE,EAAO0Y,IAAIlY,EAAM,cAAc,MAa3E62B,aAAc,WACZ,OAAO1rG,KAAKtV,KAAI,WAGd,IAFA,IAAIghH,EAAe1rG,KAAK0rG,aAEjBA,GAAyD,WAAzCr3B,EAAO0Y,IAAI2e,EAAc,aAC9CA,EAAeA,EAAaA,aAG9B,OAAOA,GAAgBxvB,SAK7B7H,EAAOzqF,KAAK,CACVmyG,WAAY,cACZD,UAAW,gBACV,SAAUz2E,EAAQjZ,GACnB,IAAIzD,EAAM,gBAAkByD,EAE5BioE,EAAO1sF,GAAG09B,GAAU,SAAUvkB,GAC5B,OAAO8pF,EAAO5qF,MAAM,SAAU60E,EAAMxvD,EAAQvkB,GAE1C,IAAIyqG,EAQJ,GANI93B,EAASoB,GACX02B,EAAM12B,EACqB,IAAlBA,EAAKrB,WACd+3B,EAAM12B,EAAKwH,kBAGDppF,IAAR6N,EACF,OAAOyqG,EAAMA,EAAIn/F,GAAQyoE,EAAKxvD,GAG5BkmF,EACFA,EAAIK,SAAUjjG,EAAY4iG,EAAIE,YAAV3qG,EAAuB6H,EAAM7H,EAAMyqG,EAAIC,aAE3D32B,EAAKxvD,GAAUvkB,IAEhBukB,EAAQvkB,EAAK5Y,UAAUtC,YAS9ByuF,EAAOzqF,KAAK,CAAC,MAAO,SAAS,SAAU82B,EAAItU,GACzCioE,EAAO+mB,SAAShvF,GAAQ4rF,GAAazkB,EAAQ4lB,eAAe,SAAUtkB,EAAMgjB,GAC1E,GAAIA,EAGF,OAFAA,EAAWD,GAAO/iB,EAAMzoE,GAEjBkrF,GAAUnwG,KAAK0wG,GAAYxjB,EAAOQ,GAAMt0C,WAAWn0B,GAAQ,KAAOyrF,QAK/ExjB,EAAOzqF,KAAK,CACViiH,OAAQ,SACRC,MAAO,UACN,SAAUppH,EAAMqG,GACjBsrF,EAAOzqF,KAAK,CACVo6C,QAAS,QAAUthD,EACnB0jG,QAASr9F,EACT,GAAI,QAAUrG,IACb,SAAUqpH,EAAcC,GAEzB33B,EAAO1sF,GAAGqkH,GAAY,SAAUxjG,EAAQplB,GACtC,IAAIynG,EAAY3iG,UAAUtC,SAAWmmH,GAAkC,mBAAXvjG,GACxD8hE,EAAQyhC,KAA4B,IAAXvjG,IAA6B,IAAVplB,EAAiB,SAAW,UAC5E,OAAOwnG,EAAO5qF,MAAM,SAAU60E,EAAM9rF,EAAM3F,GACxC,IAAI2wF,EAEJ,OAAIN,EAASoB,GAE0B,IAA9Bm3B,EAASlhH,QAAQ,SAAiB+pF,EAAK,QAAUnyF,GAAQmyF,EAAKztC,SAAS80C,gBAAgB,SAAWx5F,GAIrF,IAAlBmyF,EAAKrB,UACPO,EAAMc,EAAKqH,gBAGJ/vF,KAAK6B,IAAI6mF,EAAKnX,KAAK,SAAWh7E,GAAOqxF,EAAI,SAAWrxF,GAAOmyF,EAAKnX,KAAK,SAAWh7E,GAAOqxF,EAAI,SAAWrxF,GAAOqxF,EAAI,SAAWrxF,UAGpHuQ,IAAV7P,EACPixF,EAAO0Y,IAAIlY,EAAM9rF,EAAMuhF,GACvB+J,EAAOnxE,MAAM2xE,EAAM9rF,EAAM3F,EAAOknF,KAC/BvhF,EAAM8hG,EAAYriF,OAASvV,EAAW43F,UAI/CxW,EAAOzqF,KAAK,CAAC,YAAa,WAAY,eAAgB,YAAa,cAAe,aAAa,SAAU82B,EAAI33B,GAC3GsrF,EAAO1sF,GAAGoB,GAAQ,SAAUpB,GAC1B,OAAOqY,KAAKk1F,GAAGnsG,EAAMpB,OAGzB0sF,EAAO1sF,GAAGutF,OAAO,CACfvxF,KAAM,SAAcosG,EAAO5qF,EAAMxd,GAC/B,OAAOqY,KAAKk1F,GAAGnF,EAAO,KAAM5qF,EAAMxd,IAEpCskH,OAAQ,SAAgBlc,EAAOpoG,GAC7B,OAAOqY,KAAKkwF,IAAIH,EAAO,KAAMpoG,IAE/BukH,SAAU,SAAkB53B,EAAUyb,EAAO5qF,EAAMxd,GACjD,OAAOqY,KAAKk1F,GAAGnF,EAAOzb,EAAUnvE,EAAMxd,IAExCwkH,WAAY,SAAoB73B,EAAUyb,EAAOpoG,GAE/C,OAA4B,IAArBO,UAAUtC,OAAeoa,KAAKkwF,IAAI5b,EAAU,MAAQt0E,KAAKkwF,IAAIH,EAAOzb,GAAY,KAAM3sF,IAE/Fyb,MAAO,SAAegpG,EAAQC,GAC5B,OAAOrsG,KAAK+0F,WAAWqX,GAAQpX,WAAWqX,GAASD,MAGvD/3B,EAAOzqF,KAAK,wLAAoMgY,MAAM,MAAM,SAAU8e,EAAIh+B,GAExO2xF,EAAO1sF,GAAGjF,GAAQ,SAAUyiB,EAAMxd,GAChC,OAAOO,UAAUtC,OAAS,EAAIoa,KAAKk1F,GAAGxyG,EAAM,KAAMyiB,EAAMxd,GAAMqY,KAAK2wF,QAAQjuG,OAK/E,IAAI01F,GAAQ,qCAKZ/D,EAAO1kE,MAAQ,SAAUhoB,EAAI8a,GAC3B,IAAIlD,EAAKxX,EAAM4nB,EAUf,GARuB,kBAAZlN,IACTlD,EAAM5X,EAAG8a,GACTA,EAAU9a,EACVA,EAAK4X,GAKFtT,EAAWtE,GAahB,OARAI,EAAOkrF,EAAO3wF,KAAK4F,UAAW,IAE9BynB,EAAQ,WACN,OAAOhoB,EAAGU,MAAMoa,GAAWzC,KAAMjY,EAAKsY,OAAO4yE,EAAO3wF,KAAK4F,eAIrDiuF,KAAOxuF,EAAGwuF,KAAOxuF,EAAGwuF,MAAQ9B,EAAO8B,OAClCxmE,GAGT0kE,EAAOi4B,UAAY,SAAUC,GACvBA,EACFl4B,EAAOoW,YAEPpW,EAAO+Q,OAAM,IAIjB/Q,EAAO/vF,QAAUD,MAAMC,QACvB+vF,EAAOm4B,UAAY7xF,KAAKoT,MACxBsmD,EAAO0F,SAAWA,EAClB1F,EAAOpoF,WAAaA,EACpBooF,EAAOZ,SAAWA,EAClBY,EAAOgX,UAAYA,EACnBhX,EAAOtrF,KAAOqrF,EACdC,EAAOnyD,IAAMD,KAAKC,IAElBmyD,EAAOo4B,UAAY,SAAUxnH,GAI3B,IAAI8D,EAAOsrF,EAAOtrF,KAAK9D,GACvB,OAAiB,WAAT8D,GAA8B,WAATA,KAG5ByE,MAAMvI,EAAM0E,WAAW1E,KAG1BovF,EAAOq4B,KAAO,SAAU/iG,GACtB,OAAe,MAARA,EAAe,IAAMA,EAAO,IAAI3K,QAAQo5E,GAAO,UAiBrD,KAFoB,EAAF,WACjB,OAAO/D,GACR,QAFgB,OAEhB,aAGH,IACAs4B,GAAUplH,EAAO8sF,OAEjBu4B,GAAKrlH,EAAOslH,EAqBZ,OAnBAx4B,EAAOy4B,WAAa,SAAUz3B,GAS5B,OARI9tF,EAAOslH,IAAMx4B,IACf9sF,EAAOslH,EAAID,IAGTv3B,GAAQ9tF,EAAO8sF,SAAWA,IAC5B9sF,EAAO8sF,OAASs4B,IAGXt4B,GAMe,qBAAbtB,IACTxrF,EAAO8sF,OAAS9sF,EAAOslH,EAAIx4B,GAGtBA,O,oCCrvST,sBAAoW,OAAtOjvF,EAArD,oBAAXlC,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,GAyBhXsC,YARe,2BAAd,EAQO,WACT,aAGA,SAASwlH,EAAa3pH,GACpB,IAAIo3B,EAAM7wB,WAAWvG,GAGrB,OADqC,GAAvBA,EAAM0H,QAAQ,OAAe0C,MAAMgtB,IAC/BA,EAGpB,SAAS7xB,KAET,IAAIqkH,EAA6B,oBAAXrgG,QAAyBhkB,EAAO,SAAUyhG,GAC9Dz9E,QAAQ00C,MAAM+oC,IAGZ6iB,EAAe,CAAC,cAAe,eAAgB,aAAc,gBAAiB,aAAc,cAAe,YAAa,eAAgB,kBAAmB,mBAAoB,iBAAkB,qBACjMC,EAAqBD,EAAarnH,OAEtC,SAASunH,IAUP,IATA,IAAIlqG,EAAO,CACTwC,MAAO,EACPsB,OAAQ,EACRqmG,WAAY,EACZC,YAAa,EACbtqE,WAAY,EACZE,YAAa,GAGN9gD,EAAI,EAAGA,EAAI+qH,EAAoB/qH,IAEtC8gB,EADkBgqG,EAAa9qH,IACX,EAGtB,OAAO8gB,EAST,SAAS8W,EAAS86D,GAChB,IAAI3xE,EAAQwT,iBAAiBm+D,GAM7B,OAJK3xE,GACH8pG,EAAS,kBAAoB9pG,EAApB,6FAGJA,EAIT,IACIoqG,EADAC,GAAU,EAQd,SAAS9b,IAEP,IAAI8b,EAAJ,CAIAA,GAAU,EAOV,IAAI5f,EAAMvmD,SAAS6sC,cAAc,OACjC0Z,EAAIzqF,MAAMuC,MAAQ,QAClBkoF,EAAIzqF,MAAM8gC,QAAU,kBACpB2pD,EAAIzqF,MAAMsqG,YAAc,QACxB7f,EAAIzqF,MAAMiF,YAAc,kBACxBwlF,EAAIzqF,MAAMkU,UAAY,aACtB,IAAIsmD,EAAOt2B,SAASs2B,MAAQt2B,SAAS80C,gBACrCxe,EAAKwW,YAAYyZ,GACjB,IAAIzqF,EAAQ6W,EAAS4zE,GAErB2f,EAA0D,KAAzCnhH,KAAKc,MAAM8/G,EAAa7pG,EAAMuC,QAC/CgoG,EAAQH,eAAiBA,EACzB5vC,EAAKyW,YAAYwZ,IAInB,SAAS8f,EAAQ54B,GAQf,GAPA4c,IAEmB,iBAAR5c,IACTA,EAAOztC,SAASsmE,cAAc74B,IAI3BA,GAAyB,UAAjBzvF,EAAQyvF,IAAsBA,EAAKrB,SAAhD,CAIA,IAAItwE,EAAQ6W,EAAS86D,GAErB,GAAqB,QAAjB3xE,EAAMu7B,QACR,OAAO0uE,IAGT,IAAIlqG,EAAO,GACXA,EAAKwC,MAAQovE,EAAKgkB,YAClB51F,EAAK8D,OAAS8tE,EAAK8kB,aAGnB,IAFA,IAAIkB,EAAc53F,EAAK43F,YAAiC,cAAnB33F,EAAMkU,UAElCj1B,EAAI,EAAGA,EAAI+qH,EAAoB/qH,IAAK,CAC3C,IAAIwrH,EAAcV,EAAa9qH,GAC3BiB,EAAQ8f,EAAMyqG,GACdnzF,EAAM7wB,WAAWvG,GAErB6f,EAAK0qG,GAAgBngH,MAAMgtB,GAAa,EAANA,EAGpC,IAAIozF,EAAe3qG,EAAK0rC,YAAc1rC,EAAK2rC,aACvCi/D,EAAgB5qG,EAAKwrC,WAAaxrC,EAAKyrC,cACvCo/D,EAAc7qG,EAAKw1F,WAAax1F,EAAK8qG,YACrCC,EAAe/qG,EAAKgrG,UAAYhrG,EAAKirG,aACrC/lG,EAAclF,EAAKkrG,gBAAkBlrG,EAAKmrG,iBAC1CC,EAAeprG,EAAKw2F,eAAiBx2F,EAAKy2F,kBAC1C4U,EAAuBzT,GAAeyS,EAEtCiB,EAAaxB,EAAa7pG,EAAMuC,QAEjB,IAAf8oG,IACFtrG,EAAKwC,MAAQ8oG,GACbD,EAAuB,EAAIV,EAAezlG,IAG5C,IAAIqmG,EAAczB,EAAa7pG,EAAM6D,QAWrC,OAToB,IAAhBynG,IACFvrG,EAAK8D,OAASynG,GACdF,EAAuB,EAAIT,EAAgBQ,IAG7CprG,EAAKmqG,WAAanqG,EAAKwC,OAASmoG,EAAezlG,GAC/ClF,EAAKoqG,YAAcpqG,EAAK8D,QAAU8mG,EAAgBQ,GAClDprG,EAAK8/B,WAAa9/B,EAAKwC,MAAQqoG,EAC/B7qG,EAAKggC,YAAchgC,EAAK8D,OAASinG,EAC1B/qG,GAGT,OAAOwqG,IAhKS,mC,gBCjBlB,QAgCmB36B,EAhCnB,gBAAkD,KAAMvtF,aAAoBC,GAAgB,MAAM,IAAIV,UAAU,qCAEhH,SAASW,EAAkBC,EAAQC,GAAS,IAAK,IAAIxD,EAAI,EAAGA,EAAIwD,EAAMC,OAAQzD,IAAK,CAAE,IAAI0D,EAAaF,EAAMxD,GAAI0D,EAAW9C,WAAa8C,EAAW9C,aAAc,EAAO8C,EAAWX,cAAe,EAAU,UAAWW,IAAYA,EAAWV,UAAW,GAAMtC,OAAOC,eAAe4C,EAAQG,EAAWnC,IAAKmC,IAE7S,SAASC,EAAaN,EAAaO,EAAYC,GAAmJ,OAAhID,GAAYN,EAAkBD,EAAYzB,UAAWgC,GAAiBC,GAAaP,EAAkBD,EAAaQ,GAAqBR,EAEzM,SAASu5B,EAAKr5B,EAAQ5B,EAAUusB,GAAuV,OAAtR0O,EAA9B,qBAAZ7P,SAA2BA,QAAQlsB,IAAcksB,QAAQlsB,IAAqB,SAAc0C,EAAQ5B,EAAUusB,GAAY,IAAI2O,EAErL,SAAwBn7B,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASo7B,EAAgBp7B,MAAuC,OAAOA,EAFOq7B,CAAex5B,EAAQ5B,GAAW,GAAKk7B,EAAL,CAAmB,IAAIG,EAAOt8B,OAAOosB,yBAAyB+P,EAAMl7B,GAAW,OAAIq7B,EAAKn8B,IAAcm8B,EAAKn8B,IAAIV,KAAK+tB,GAAoB8O,EAAK/7B,SAAwBsC,EAAQ5B,EAAUusB,GAAY3qB,GAQja,SAAS06B,EAA2BC,EAAM/9B,GAAQ,OAAIA,GAA2B,WAAlB8C,EAAQ9C,IAAsC,oBAATA,EAEpG,SAAgC+9B,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIE,eAAe,6DAAgE,OAAOF,EAFbC,CAAuBD,GAAtC/9B,EAInI,SAAS28B,EAAgBr8B,GAAwJ,OAAnJq8B,EAAkBp8B,OAAO28B,eAAiB38B,OAAOusB,eAAiB,SAAyBxsB,GAAK,OAAOA,EAAE68B,WAAa58B,OAAOusB,eAAexsB,KAA8BA,GAExM,SAAS6rH,EAAWC,EAAQ3mH,EAAM4mH,GAAqV,OAAzSF,EAA/BxuF,IAA4C/Q,QAAQ2Q,UAAiC,SAAoB6uF,EAAQ3mH,EAAM4mH,GAAS,IAAIhgH,EAAI,CAAC,MAAOA,EAAE+W,KAAKrd,MAAMsG,EAAG5G,GAAO,IAAsDxC,EAAW,IAA/CqpH,SAASjrH,KAAK0E,MAAMqmH,EAAQ//G,IAA6F,OAAnDggH,GAAOpvF,EAAgBh6B,EAAUopH,EAAM5qH,WAAmBwB,IAAiC8C,MAAM,KAAMH,WAErZ,SAAS+3B,IAA8B,GAAuB,qBAAZ/Q,UAA4BA,QAAQ2Q,UAAW,OAAO,EAAO,GAAI3Q,QAAQ2Q,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlR,MAAsB,OAAO,EAAM,IAAsF,OAAhFmR,QAAQh8B,UAAUi8B,QAAQ19B,KAAK4sB,QAAQ2Q,UAAUE,QAAS,IAAI,iBAAyB,EAAQ,MAAOz5B,GAAK,OAAO,GAE/T,SAASi5B,EAAgB38B,EAAGqB,GAA+G,OAA1Gs7B,EAAkB18B,OAAO28B,gBAAkB,SAAyB58B,EAAGqB,GAAsB,OAAjBrB,EAAE68B,UAAYx7B,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASmB,EAAQH,GAAmV,OAAtOG,EAArD,oBAAXlC,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,GAMhW6tF,EAEV,WACP,aAEA,IAAI+7B,EAAgBhsH,OAAO4tC,OAAO,CAChClN,OAAQ,SACRszB,SAAU,WACVi4D,MAAO,QACPC,IAAK,MACL1R,MAAO,UAEL2R,EAAgB,eAuBhBC,EAAwB,SAA+BpjH,GACzD,OAAOA,EAAIC,OAAO,GAAGC,cAAgBF,EAAI3E,MAAM,IAQ7CutF,EAAU,SAAiBy6B,GAC7B,OAAO7qH,MAAMN,UAAUmD,MAAM5E,KAAK4sH,IAQhCtiG,EAAO,SAAcw9E,GACvBz9E,QAAQC,KAAK,GAAGvM,OAAO2uG,EAAe,KAAK3uG,OAA4B,WAArBjb,EAAQglG,GAAwBA,EAAQ35E,KAAK,KAAO25E,KAQpG/oC,EAAQ,SAAe+oC,GACzBz9E,QAAQ00C,MAAM,GAAGhhD,OAAO2uG,EAAe,KAAK3uG,OAAO+pF,KASjD+kB,EAA2B,GAiB3BC,EAAuB,SAA8BC,EAAiBC,GAX3D,IAAkBllB,IAYtB,IAAK/pF,OAAOgvG,EAAiB,+EAAiFhvG,OAAOivG,EAAY,cAXrIH,EAAyB5/F,SAAS66E,KACrC+kB,EAAyBzpG,KAAK0kF,GAC9Bx9E,EAAKw9E,KAkBLmlB,EAAiB,SAAwB70D,GAC3C,MAAsB,oBAARA,EAAqBA,IAAQA,GAGzC80D,EAAiB,SAAwB90D,GAC3C,OAAOA,GAAgC,oBAAlBA,EAAI+0D,WAGvBC,EAAY,SAAmBh1D,GACjC,OAAO80D,EAAe90D,GAAOA,EAAI+0D,YAAcxqF,QAAQnY,QAAQ4tC,IAG7Di1D,EAAY,SAAmBj1D,GACjC,OAAOA,GAAOz1B,QAAQnY,QAAQ4tC,KAASA,GAOrCk1D,EAAY,SAAmB/6B,GACjC,OAAOA,aAAgBtrC,SALH,SAAyBsrC,GAC7C,MAAyB,WAAlBzvF,EAAQyvF,IAAsBA,EAAKL,OAIRq7B,CAAgBh7B,IAyBhDhjE,EAAS,SAAgB3D,GAC3B,IAAI8I,EAAS,GAEb,IAAK,IAAI70B,KAAK+rB,EACZ8I,EAAO9I,EAAM/rB,IANA,SAMmB+rB,EAAM/rB,GAGxC,OAAO60B,GAGL84F,EAAcj+F,EAAO,CAAC,YAAa,QAAS,cAAe,SAAU,QAAS,QAAS,cAAe,gBAAiB,QAAS,cAAe,OAAQ,OAAQ,QAAS,QAAS,iBAAkB,UAAW,UAAW,OAAQ,SAAU,kBAAmB,SAAU,OAAQ,eAAgB,QAAS,QAAS,OAAQ,QAAS,SAAU,QAAS,WAAY,QAAS,WAAY,aAAc,cAAe,qBAAsB,iBAAkB,uBAAwB,gBAAiB,qBAAsB,SAAU,UAAW,SAAU,MAAO,YAAa,UAAW,WAAY,YAAa,SAAU,eAAgB,aAAc,cAAe,eAAgB,SAAU,eAAgB,aAAc,cAAe,eAAgB,WAAY,cAAe,kBAAmB,MAAO,qBAAsB,+BAAgC,oBAAqB,eAAgB,eAAgB,YAAa,gBAAiB,eAC95Bk+F,EAAYl+F,EAAO,CAAC,UAAW,UAAW,OAAQ,WAAY,UAE9Dm+F,EAAe,WACjB,OAAO5oE,SAASs2B,KAAKgwC,cAAc,IAAIrtG,OAAOyvG,EAAYp3F,aAGxDu3F,EAAoB,SAA2BC,GACjD,IAAIx3F,EAAYs3F,IAChB,OAAOt3F,EAAYA,EAAUg1F,cAAcwC,GAAkB,MAG3DC,EAAiB,SAAwB5zB,GAC3C,OAAO0zB,EAAkB,IAAI5vG,OAAOk8E,KAGlC6zB,EAAW,WACb,OAAOD,EAAeL,EAAYO,QAGhCC,EAAU,WACZ,OAAOH,EAAeL,EAAYS,OAGhCruC,EAAW,WACb,OAAOiuC,EAAeL,EAAYn4E,QAGhC64E,EAAmB,WACrB,OAAOL,EAAeL,EAAY,oBAGhCW,EAAW,WACb,OAAON,EAAeL,EAAY3uB,QAGhCuvB,EAAmB,WACrB,OAAOP,EAAeL,EAAY,oBAGhCa,EAAuB,WACzB,OAAOR,EAAeL,EAAY,wBAGhCc,EAAmB,WACrB,OAAOX,EAAkB,IAAI5vG,OAAOyvG,EAAYe,QAAS,MAAMxwG,OAAOyvG,EAAYgB,WAGhFC,EAAgB,WAClB,OAAOd,EAAkB,IAAI5vG,OAAOyvG,EAAYe,QAAS,MAAMxwG,OAAOyvG,EAAYkB,QAOhFC,EAAY,WACd,OAAOhB,EAAkB,IAAI5vG,OAAOyvG,EAAYoB,UAG9CC,EAAkB,WACpB,OAAOlB,EAAkB,IAAI5vG,OAAOyvG,EAAYe,QAAS,MAAMxwG,OAAOyvG,EAAYvsF,UAGhF6tF,EAAa,WACf,OAAOjB,EAAeL,EAAYe,UAGhCvuC,EAAY,WACd,OAAO6tC,EAAeL,EAAYnyC,SAGhC0zC,EAAsB,WACxB,OAAOlB,EAAeL,EAAY,wBAGhCwB,EAAiB,WACnB,OAAOnB,EAAeL,EAAYhB,QAMhCyC,EAAuB,WACzB,IAAIC,EAAgC/8B,EAAQ27B,IAAWt1B,iBAAiB,wDACvE9oD,MAAK,SAAUrjC,EAAGC,GAIjB,OAHAD,EAAIsQ,SAAStQ,EAAEi6C,aAAa,eAC5Bh6C,EAAIqQ,SAASrQ,EAAEg6C,aAAa,cAGnB,EACEj6C,EAAIC,GACL,EAGH,KAEL6iH,EAAyBh9B,EAAQ27B,IAAWt1B,iBAhBlC,2QAgB+DhqE,QAAO,SAAU+I,GAC5F,MAAuC,OAAhCA,EAAG+uB,aAAa,eAEzB,OA7OgB,SAAqBxkD,GAGrC,IAFA,IAAI4yB,EAAS,GAEJ70B,EAAI,EAAGA,EAAIiC,EAAIwB,OAAQzD,KACE,IAA5B60B,EAAOlsB,QAAQ1G,EAAIjC,KACrB60B,EAAOtR,KAAKthB,EAAIjC,IAIpB,OAAO60B,EAoOA06F,CAAYF,EAA8BnxG,OAAOoxG,IAAyB3gG,QAAO,SAAU+I,GAChG,OAAO83F,GAAU93F,OAIjB+3F,EAAU,WACZ,OAAQC,MAAczqE,SAASs2B,KAAKo0C,UAAU36B,SAAS24B,EAAY,iBAGjE+B,EAAU,WACZ,OAAOzqE,SAASs2B,KAAKo0C,UAAU36B,SAAS24B,EAAY,iBAOlDiC,EAAS,CACXC,oBAAqB,MAGnBC,EAAe,SAAsBp9B,EAAMshB,GAI7C,GAFAthB,EAAKwJ,YAAc,GAEf8X,EAAM,CACR,IACIrtE,GADS,IAAIo5E,WACGC,gBAAgBhM,EAAM,aAC1C1hB,EAAQ3rD,EAAO4kF,cAAc,QAAQzzB,YAAYjsE,SAAQ,SAAUkkG,GACjEr9B,EAAKX,YAAYg+B,MAEnBz9B,EAAQ3rD,EAAO4kF,cAAc,QAAQzzB,YAAYjsE,SAAQ,SAAUkkG,GACjEr9B,EAAKX,YAAYg+B,QAKnBnR,EAAW,SAAkBlsB,EAAM0H,GACrC,IAAKA,EACH,OAAO,EAKT,IAFA,IAAIu1B,EAAYv1B,EAAU36E,MAAM,OAEvBzf,EAAI,EAAGA,EAAI2vH,EAAUlsH,OAAQzD,IACpC,IAAK0yF,EAAKi9B,UAAU36B,SAAS26B,EAAU3vH,IACrC,OAAO,EAIX,OAAO,GAWLgwH,EAAmB,SAA0Bt9B,EAAMlyC,EAAQ45C,GAG7D,GAXwB,SAA6B1H,EAAMlyC,GAC3D8xC,EAAQI,EAAKi9B,WAAW9jG,SAAQ,SAAUuuE,GACnC15F,OAAOmf,OAAO8tG,GAAavgG,SAASgtE,IAAe15F,OAAOmf,OAAO+tG,GAAWxgG,SAASgtE,IAAe15F,OAAOmf,OAAO2gC,EAAOyvE,WAAW7iG,SAASgtE,IAChJ1H,EAAKi9B,UAAUltD,OAAO23B,MAM1B81B,CAAoBx9B,EAAMlyC,GAEtBA,EAAO2vE,aAAe3vE,EAAO2vE,YAAY/1B,GAAY,CACvD,GAA6C,kBAAlC55C,EAAO2vE,YAAY/1B,KAA4B55C,EAAO2vE,YAAY/1B,GAAWvuE,QACtF,OAAOpB,EAAK,+BAA+BvM,OAAOk8E,EAAW,+CAAgDl8E,OAAOjb,EAAQu9C,EAAO2vE,YAAY/1B,IAAa,MAG9J8jB,EAASxrB,EAAMlyC,EAAO2vE,YAAY/1B,MAIlCg2B,EAAW,SAAkBlC,EAAOmC,GACtC,IAAKA,EACH,OAAO,KAGT,OAAQA,GACN,IAAK,SACL,IAAK,WACL,IAAK,OACH,OAAOC,GAAgBpC,EAAOP,EAAY0C,IAE5C,IAAK,WACH,OAAOnC,EAAM3C,cAAc,IAAIrtG,OAAOyvG,EAAY9uB,SAAU,WAE9D,IAAK,QACH,OAAOqvB,EAAM3C,cAAc,IAAIrtG,OAAOyvG,EAAY/uB,MAAO,oBAAsBsvB,EAAM3C,cAAc,IAAIrtG,OAAOyvG,EAAY/uB,MAAO,uBAEnI,IAAK,QACH,OAAOsvB,EAAM3C,cAAc,IAAIrtG,OAAOyvG,EAAY/iH,MAAO,WAE3D,QACE,OAAO0lH,GAAgBpC,EAAOP,EAAYlwG,SAI5C8yG,EAAa,SAAoB9yG,GAGnC,GAFAA,EAAMi1F,QAEa,SAAfj1F,EAAM7W,KAAiB,CAEzB,IAAI+X,EAAMlB,EAAMxc,MAChBwc,EAAMxc,MAAQ,GACdwc,EAAMxc,MAAQ0d,IAId6/F,EAAc,SAAqBj7G,EAAQosH,EAAWa,GACnDjtH,GAAWosH,IAIS,kBAAdA,IACTA,EAAYA,EAAUlwG,MAAM,OAAOkP,OAAOiP,UAG5C+xF,EAAU9jG,SAAQ,SAAUuuE,GACtB72F,EAAOsoB,QACTtoB,EAAOsoB,SAAQ,SAAU6mE,GACvB89B,EAAY99B,EAAKi9B,UAAU1jG,IAAImuE,GAAa1H,EAAKi9B,UAAUltD,OAAO23B,MAGpEo2B,EAAYjtH,EAAOosH,UAAU1jG,IAAImuE,GAAa72F,EAAOosH,UAAUltD,OAAO23B,QAKxE8jB,EAAW,SAAkB36G,EAAQosH,GACvCnR,EAAYj7G,EAAQosH,GAAW,IAG7BpR,GAAc,SAAqBh7G,EAAQosH,GAC7CnR,EAAYj7G,EAAQosH,GAAW,IAG7BW,GAAkB,SAAyB59B,EAAM0H,GACnD,IAAK,IAAIp6F,EAAI,EAAGA,EAAI0yF,EAAKoF,WAAWr0F,OAAQzD,IAC1C,GAAI4+G,EAASlsB,EAAKoF,WAAW93F,GAAIo6F,GAC/B,OAAO1H,EAAKoF,WAAW93F,IAKzBywH,GAAsB,SAA6B/9B,EAAM/wF,EAAUV,GACjEA,IAAU,GAAGid,OAAOpB,SAAS7b,MAC/BA,EAAQ6b,SAAS7b,IAGfA,GAA6B,IAApB6b,SAAS7b,GACpByxF,EAAK3xE,MAAMpf,GAA6B,kBAAVV,EAAqB,GAAGid,OAAOjd,EAAO,MAAQA,EAE5EyxF,EAAK3xE,MAAM2vG,eAAe/uH,IAI1B6hC,GAAO,SAAckvD,GACvB,IAAIp2C,EAAUv2C,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,OAClF2sF,EAAK3xE,MAAMu7B,QAAUA,GAGnB3Y,GAAO,SAAc+uD,GACvBA,EAAK3xE,MAAMu7B,QAAU,QAGnB8rB,GAAW,SAAkBv4C,EAAQsiE,EAAUxwF,EAAUV,GAC3D,IAAIy2B,EAAK7H,EAAO07F,cAAcp5B,GAE1Bz6D,IACFA,EAAG3W,MAAMpf,GAAYV,IAIrBsqG,GAAS,SAAgB7Y,EAAM89B,EAAWl0E,GAC5Ck0E,EAAYhtF,GAAKkvD,EAAMp2C,GAAW3Y,GAAK+uD,IAIrC88B,GAAY,SAAmB98B,GACjC,SAAUA,KAASA,EAAKgkB,aAAehkB,EAAK8kB,cAAgB9kB,EAAKqmB,iBAAiBt1G,UAOhFktH,GAAe,SAAsBj+B,GACvC,SAAUA,EAAKk+B,aAAel+B,EAAK97D,eAIjCi6F,GAAkB,SAAyBn+B,GAC7C,IAAI3xE,EAAQ3b,OAAOmvB,iBAAiBm+D,GAChCo+B,EAAetpH,WAAWuZ,EAAM4W,iBAAiB,uBAAyB,KAC1Eo5F,EAAgBvpH,WAAWuZ,EAAM4W,iBAAiB,wBAA0B,KAChF,OAAOm5F,EAAe,GAAKC,EAAgB,GAGzCC,GAA0B,SAAiC9V,GAC7D,IAAI1pE,EAAQzrC,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,IAAmBA,UAAU,GACvEkrH,EAAmB/B,IAEnBM,GAAUyB,KACRz/E,IACFy/E,EAAiBlwG,MAAMwtB,WAAa,OACpC0iF,EAAiBlwG,MAAMuC,MAAQ,QAGjCy7C,YAAW,WACTkyD,EAAiBlwG,MAAMwtB,WAAa,SAASrwB,OAAOg9F,EAAQ,IAAM,YAClE+V,EAAiBlwG,MAAMuC,MAAQ,OAC9B,MAgBH4tG,GAAY,WACd,MAAyB,qBAAX9rH,QAA8C,qBAAb6/C,UAG7CksE,GAAY,4BAA6BjzG,OAAOyvG,EAAYn4E,MAAO,wBAA0Bt3B,OAAOyvG,EAAY,kBAAmB,aAAezvG,OAAOyvG,EAAYO,MAAO,sDAA4DhwG,OAAOyvG,EAAYhB,MAAO,+BAAiCzuG,OAAOyvG,EAAY,kBAAmB,4BAA8BzvG,OAAOyvG,EAAYS,KAAM,6BAA+BlwG,OAAOyvG,EAAY3uB,MAAO,wBAA0B9gF,OAAOyvG,EAAYn4E,MAAO,UAAYt3B,OAAOyvG,EAAYn4E,MAAO,4BAA8Bt3B,OAAOyvG,EAAY,kBAAmB,UAAYzvG,OAAOyvG,EAAY,kBAAmB,+BAAiCzvG,OAAOyvG,EAAYlwG,MAAO,uCAA2CS,OAAOyvG,EAAY7uB,KAAM,yBAA2B5gF,OAAOyvG,EAAY/iH,MAAO,0FAA8FsT,OAAOyvG,EAAYp5B,OAAQ,gCAAkCr2E,OAAOyvG,EAAY/uB,MAAO,6BAA+B1gF,OAAOyvG,EAAY9uB,SAAU,aAAe3gF,OAAOyvG,EAAY9uB,SAAU,0DAA8D3gF,OAAOyvG,EAAYzgF,MAAO,gDAAkDhvB,OAAOyvG,EAAYyD,SAAU,kCAAoClzG,OAAOyvG,EAAY,sBAAuB,UAAYzvG,OAAOyvG,EAAY,sBAAuB,6BAA+BzvG,OAAOyvG,EAAYe,QAAS,yBAA2BxwG,OAAOyvG,EAAYoB,OAAQ,gDAAoD7wG,OAAOyvG,EAAYgB,QAAS,mDAAuDzwG,OAAOyvG,EAAYkB,KAAM,mDAAuD3wG,OAAOyvG,EAAYvsF,OAAQ,2CAA6CljB,OAAOyvG,EAAYnyC,OAAQ,6BAA+Bt9D,OAAOyvG,EAAY,gCAAiC,yBAA2BzvG,OAAOyvG,EAAY,sBAAuB,kCAAmC9wG,QAAQ,aAAc,IAcjgEw0G,GAAyB,WACvBC,GAAK9B,aACP8B,GAAKD,0BAsDLhxD,GAAO,SAAc7f,GAEvB,IArEI+wE,EAqEAC,KArEAD,EAAe1D,OAMnB0D,EAAa9uD,SACb87C,GAAY,CAACt5D,SAAS80C,gBAAiB90C,SAASs2B,MAAO,CAACoyC,EAAY,eAAgBA,EAAY,eAAgBA,EAAY,iBACrH,GAgEP,GAAIuD,KACFhyD,EAAM,mDADR,CAKA,IAAI3oC,EAAY0uB,SAAS6sC,cAAc,OACvCv7D,EAAU6jE,UAAYuzB,EAAYp3F,UAE9Bi7F,GACFtT,EAAS3nF,EAAWo3F,EAAY,kBAGlCmC,EAAav5F,EAAW46F,IACxB,IA1CiC5tH,EAzB7B2qH,EACAzwG,EACAqhF,EACAl0F,EACA6mH,EACAl9B,EACAsK,EACAuyB,EA4DAM,EAzCqB,kBADQnuH,EA0CHi9C,EAAOj9C,QAzCD0hD,SAASsmE,cAAchoH,GAAUA,EA0CrEmuH,EAAc3/B,YAAYx7D,GAvCH,SAA4BiqB,GACnD,IAAI0tE,EAAQD,IACZC,EAAMnnE,aAAa,OAAQvG,EAAOmxE,MAAQ,QAAU,UACpDzD,EAAMnnE,aAAa,YAAavG,EAAOmxE,MAAQ,SAAW,aAErDnxE,EAAOmxE,OACVzD,EAAMnnE,aAAa,aAAc,QAkCnC6qE,CAAmBpxE,GA9BN,SAAkBkxE,GAC0B,QAArDtsH,OAAOmvB,iBAAiBm9F,GAAe/3F,WACzCukF,EAAS2P,IAAgBF,EAAY30F,KA6BvC64F,CAASH,GAtELxD,EAAQD,IACRxwG,EAAQ6yG,GAAgBpC,EAAOP,EAAYlwG,OAC3CqhF,EAAOwxB,GAAgBpC,EAAOP,EAAY7uB,MAC1Cl0F,EAAQsjH,EAAM3C,cAAc,IAAIrtG,OAAOyvG,EAAY/iH,MAAO,WAC1D6mH,EAAcvD,EAAM3C,cAAc,IAAIrtG,OAAOyvG,EAAY/iH,MAAO,YAChE2pF,EAAS+7B,GAAgBpC,EAAOP,EAAYp5B,QAC5CsK,EAAWqvB,EAAM3C,cAAc,IAAIrtG,OAAOyvG,EAAY9uB,SAAU,WAChEuyB,EAAWd,GAAgBpC,EAAOP,EAAYyD,UAClD3zG,EAAMq0G,QAAUT,GAChBvyB,EAAKizB,SAAWV,GAChB98B,EAAOw9B,SAAWV,GAClBxyB,EAASkzB,SAAWV,GACpBD,EAASU,QAAUT,GAEnBzmH,EAAMknH,QAAU,WACdT,KACAI,EAAYxwH,MAAQ2J,EAAM3J,OAG5B2J,EAAMmnH,SAAW,WACfV,KACAzmH,EAAMyuF,YAAYp4F,MAAQ2J,EAAM3J,SAqDhC+wH,GAAuB,SAA8BtpC,EAAOnlF,GAE1DmlF,aAAiBupC,YACnB1uH,EAAOwuF,YAAYrJ,GACS,WAAnBzlF,EAAQylF,GACjBwpC,GAAaxpC,EAAOnlF,GACXmlF,GACTonC,EAAavsH,EAAQmlF,IAIrBwpC,GAAe,SAAsBxpC,EAAOnlF,GAE1CmlF,EAAM2J,OACR8/B,GAAiB5uH,EAAQmlF,GAEzBonC,EAAavsH,EAAQmlF,EAAM5jF,aAI3BqtH,GAAmB,SAA0B5uH,EAAQmvF,GAGvD,GAFAnvF,EAAO24F,YAAc,GAEjB,KAAKxJ,EACP,IAAK,IAAI1yF,EAAI,EAAIA,KAAK0yF,EAAO1yF,IAC3BuD,EAAOwuF,YAAYW,EAAK1yF,GAAG8rG,WAAU,SAGvCvoG,EAAOwuF,YAAYW,EAAKoZ,WAAU,KAIlCsmB,GAAoB,WAItB,GAAIlB,KACF,OAAO,EAGT,IAAImB,EAASptE,SAAS6sC,cAAc,OAChCwgC,EAAqB,CACvBC,gBAAiB,qBACjBC,WAAY,8BACZvyG,UAAW,gBAGb,IAAK,IAAIjgB,KAAKsyH,EACZ,GAAI5xH,OAAOkB,UAAUC,eAAe1B,KAAKmyH,EAAoBtyH,IAAiC,qBAApBqyH,EAAOtxG,MAAM/gB,GACrF,OAAOsyH,EAAmBtyH,GAI9B,OAAO,EArBe,GAkCpByyH,GAAgB,SAAuBrvH,EAAUo9C,GACnD,IAAIkuE,EAAUO,IACVF,EAASD,IACT4D,EAAgBjE,IAChBkE,EAAa/D,IACbgE,EAAe5D,IAEdxuE,EAAOqyE,mBAAsBryE,EAAOsyE,gBAAmBtyE,EAAOuyE,kBACjEpvF,GAAK+qF,GAIPsB,EAAiBtB,EAASluE,EAAQ,WAElCwyE,GAAaN,EAAe,UAAWlyE,GACvCwyE,GAAaL,EAAY,OAAQnyE,GACjCwyE,GAAaJ,EAAc,SAAUpyE,GAcvC,SAA8BkyE,EAAeC,EAAYC,EAAcpyE,GACrE,IAAKA,EAAOyyE,eACV,OAAO1U,GAAY,CAACmU,EAAeC,EAAYC,GAAejF,EAAYuF,QAG5EhV,EAAS,CAACwU,EAAeC,EAAYC,GAAejF,EAAYuF,QAE5D1yE,EAAO2yE,qBACTT,EAAc3xG,MAAMb,gBAAkBsgC,EAAO2yE,mBAC7CjV,EAASwU,EAAe/E,EAAY,qBAGlCntE,EAAO4yE,kBACTT,EAAW5xG,MAAMb,gBAAkBsgC,EAAO4yE,gBAC1ClV,EAASyU,EAAYhF,EAAY,qBAG/BntE,EAAO6yE,oBACTT,EAAa7xG,MAAMb,gBAAkBsgC,EAAO6yE,kBAC5CnV,EAAS0U,EAAcjF,EAAY,qBAhCrC2F,CAAqBZ,EAAeC,EAAYC,EAAcpyE,GAE1DA,EAAO+yE,iBACT7E,EAAQ/Z,aAAaie,EAAc7D,GACnCL,EAAQ/Z,aAAage,EAAY5D,GACjCL,EAAQ/Z,aAAa+d,EAAe3D,IAItCe,EAAaf,EAAQvuE,EAAOgzE,YAC5BxD,EAAiBjB,EAAQvuE,EAAQ,WA0BnC,SAASwyE,GAAaxiB,EAAQijB,EAAYjzE,GACxC+qD,GAAOiF,EAAQhwD,EAAO,OAAOtiC,OAAO4uG,EAAsB2G,GAAa,WAAY,gBACnF3D,EAAatf,EAAQhwD,EAAO,GAAGtiC,OAAOu1G,EAAY,gBAElDjjB,EAAOzpD,aAAa,aAAcvG,EAAO,GAAGtiC,OAAOu1G,EAAY,qBAG/DjjB,EAAOpW,UAAYuzB,EAAY8F,GAC/BzD,EAAiBxf,EAAQhwD,EAAQ,GAAGtiC,OAAOu1G,EAAY,WACvDvV,EAAS1N,EAAQhwD,EAAO,GAAGtiC,OAAOu1G,EAAY,iBA8BhD,IAAIC,GAAkB,SAAyBtwH,EAAUo9C,GACvD,IAAIjqB,EAAYs3F,IAEXt3F,IA9BP,SAA6BA,EAAWm+B,GACd,kBAAbA,EACTn+B,EAAUxV,MAAM4yG,WAAaj/D,EACnBA,GACVwpD,EAAS,CAACj5D,SAAS80C,gBAAiB90C,SAASs2B,MAAOoyC,EAAY,gBA8BlEiG,CAAoBr9F,EAAWiqB,EAAOkU,UA1BxC,SAA6Bn+B,EAAW6nB,GAClCA,KAAYuvE,EACdzP,EAAS3nF,EAAWo3F,EAAYvvE,KAEhC3zB,EAAK,iEACLyzF,EAAS3nF,EAAWo3F,EAAYp7E,SAsBlCshF,CAAoBt9F,EAAWiqB,EAAOpC,UAlBxC,SAAyB7nB,EAAWu9F,GAClC,GAAIA,GAAwB,kBAATA,EAAmB,CACpC,IAAIC,EAAY,QAAQ71G,OAAO41G,GAE3BC,KAAapG,GACfzP,EAAS3nF,EAAWo3F,EAAYoG,KAcpCC,CAAgBz9F,EAAWiqB,EAAOszE,MAElC9D,EAAiBz5F,EAAWiqB,EAAQ,eAalCyzE,GAAe,CACjBxvB,QAAS,IAAI9pB,QACbu5C,YAAa,IAAIv5C,QACjBw5C,SAAU,IAAIx5C,SAEZy5C,GAAa,CAAC,QAAS,OAAQ,QAAS,SAAU,QAAS,WAAY,YA6BvEC,GAAY,SAAmB7zE,GACjC,IAAK8zE,GAAgB9zE,EAAO/iC,OAC1B,OAAOyhD,EAAM,qJAA4KhhD,OAAOsiC,EAAO/iC,MAAO,MAGhN,IAAI82G,EAAiBC,GAAkBh0E,EAAO/iC,OAC1CA,EAAQ62G,GAAgB9zE,EAAO/iC,OAAO82G,EAAgB/zE,GAC1Dhd,GAAK/lB,GAELshD,YAAW,WACTwxD,EAAW9yG,OAcXg3G,GAAgB,SAAuBpE,EAAWqE,GACpD,IAAIj3G,EAAQ2yG,EAASnC,IAAYoC,GAEjC,GAAK5yG,EAML,IAAK,IAAIk+E,KAnBY,SAA0Bl+E,GAC/C,IAAK,IAAIzd,EAAI,EAAGA,EAAIyd,EAAMq4E,WAAWryF,OAAQzD,IAAK,CAChD,IAAI20H,EAAWl3G,EAAMq4E,WAAW91F,GAAGO,KAE9B,CAAC,OAAQ,QAAS,SAAS6sB,SAASunG,IACvCl3G,EAAMqpC,gBAAgB6tE,IAY1BC,CAAiBn3G,GAEAi3G,EACfj3G,EAAMspC,aAAa40C,EAAM+4B,EAAgB/4B,KAIzCk5B,GAAiB,SAAwBr0E,GAC3C,IAAI+zE,EAAiBC,GAAkBh0E,EAAO/iC,OAE1C+iC,EAAO2vE,aACTjS,EAASqW,EAAgB/zE,EAAO2vE,YAAY1yG,QAI5Cq3G,GAAsB,SAA6Br3G,EAAO+iC,GACvD/iC,EAAMs3G,cAAev0E,EAAOw0E,mBAC/Bv3G,EAAMs3G,YAAcv0E,EAAOw0E,mBAI3BC,GAAgB,SAAuBx3G,EAAOs3F,EAAWv0D,GAC3D,GAAIA,EAAO00E,WAAY,CACrBz3G,EAAMhX,GAAKknH,EAAYlwG,MACvB,IAAIyvB,EAAQ+X,SAAS6sC,cAAc,SAC/BqjC,EAAaxH,EAAY,eAC7BzgF,EAAM6Z,aAAa,MAAOtpC,EAAMhX,IAChCymC,EAAMktD,UAAY+6B,EAClBjX,EAAShxE,EAAOsT,EAAO2vE,YAAY+E,YACnChoF,EAAMkoF,UAAY50E,EAAO00E,WACzBngB,EAAUsgB,sBAAsB,cAAenoF,KAI/CsnF,GAAoB,SAA2BnE,GACjD,IAAIiF,EAAa3H,EAAY0C,GAAa1C,EAAY0C,GAAa1C,EAAYlwG,MAC/E,OAAO6yG,GAAgBrC,IAAYqH,IAGjChB,GAAkB,GAEtBA,GAAgB9sG,KAAO8sG,GAAgBiB,MAAQjB,GAAgBv1B,SAAWu1B,GAAgB1yF,OAAS0yF,GAAgBkB,IAAMlB,GAAgBjS,IAAM,SAAU5kG,EAAO+iC,GAU9J,MATiC,kBAAtBA,EAAOi1E,YAAwD,kBAAtBj1E,EAAOi1E,WACzDh4G,EAAMxc,MAAQu/C,EAAOi1E,WACXjI,EAAUhtE,EAAOi1E,aAC3BhrG,EAAK,iFAAwFvM,OAAOjb,EAAQu9C,EAAOi1E,YAAa,MAGlIR,GAAcx3G,EAAOA,EAAO+iC,GAC5Bs0E,GAAoBr3G,EAAO+iC,GAC3B/iC,EAAM7W,KAAO45C,EAAO/iC,MACbA,GAGT62G,GAAgBx1B,KAAO,SAAUrhF,EAAO+iC,GAGtC,OAFAy0E,GAAcx3G,EAAOA,EAAO+iC,GAC5Bs0E,GAAoBr3G,EAAO+iC,GACpB/iC,GAGT62G,GAAgB1pH,MAAQ,SAAUA,EAAO41C,GACvC,IAAIk1E,EAAa9qH,EAAM2gH,cAAc,SACjCkG,EAAc7mH,EAAM2gH,cAAc,UAKtC,OAJAmK,EAAWz0H,MAAQu/C,EAAOi1E,WAC1BC,EAAW9uH,KAAO45C,EAAO/iC,MACzBg0G,EAAYxwH,MAAQu/C,EAAOi1E,WAC3BR,GAAcS,EAAY9qH,EAAO41C,GAC1B51C,GAGT0pH,GAAgB//B,OAAS,SAAUA,EAAQ/zC,GAGzC,GAFA+zC,EAAO2H,YAAc,GAEjB17C,EAAOw0E,iBAAkB,CAC3B,IAAID,EAAc9vE,SAAS6sC,cAAc,UACzCg+B,EAAaiF,EAAav0E,EAAOw0E,kBACjCD,EAAY9zH,MAAQ,GACpB8zH,EAAYxnF,UAAW,EACvBwnF,EAAYt2B,UAAW,EACvBlK,EAAOxC,YAAYgjC,GAIrB,OADAE,GAAc1gC,EAAQA,EAAQ/zC,GACvB+zC,GAGT+/B,GAAgB11B,MAAQ,SAAUA,GAEhC,OADAA,EAAM1C,YAAc,GACb0C,GAGT01B,GAAgBz1B,SAAW,SAAU82B,EAAmBn1E,GACtD,IAAIq+C,EAAWuxB,EAASnC,IAAY,YACpCpvB,EAAS59F,MAAQ,EACjB49F,EAASp4F,GAAKknH,EAAY9uB,SAC1BA,EAASL,QAAU5gE,QAAQ4iB,EAAOi1E,YAClC,IAAIvoF,EAAQyoF,EAAkBpK,cAAc,QAE5C,OADAuE,EAAa5iF,EAAOsT,EAAOw0E,kBACpBW,GAGTrB,GAAgBlD,SAAW,SAAUA,EAAU5wE,GAS7C,GARA4wE,EAASnwH,MAAQu/C,EAAOi1E,WACxBX,GAAoB1D,EAAU5wE,GAC9By0E,GAAc7D,EAAUA,EAAU5wE,GAM9B,qBAAsBp7C,OAAQ,CAEhC,IAAIwwH,EAAoB94G,SAAS1X,OAAOmvB,iBAAiB05F,KAAY3qG,OAYrE,IAAIshC,kBAVa,WACf,IAT+BltB,EAS3Bm+F,EAAgBzE,EAAS1a,aATEh/E,EASsB05F,EARhDt0G,SAAS1X,OAAOmvB,iBAAiBmD,GAAI4+E,YAAcx5F,SAAS1X,OAAOmvB,iBAAiBmD,GAAIk0F,cAW3FqC,IAAWltG,MAAMuC,MADfuyG,EAAgBD,EACO,GAAG13G,OAAO23G,EAAe,MAEzB,QAII7wE,QAAQosE,EAAU,CACjDt7B,YAAY,EACZggC,gBAAiB,CAAC,WAItB,OAAO1E,GAGT,IAAI2E,GAAgB,SAAuB3yH,EAAUo9C,GACnD,IAAIw1E,EAAgB3H,IACpB2B,EAAiBgG,EAAex1E,EAAQ,iBAEpCA,EAAOwzD,MACTge,GAAqBxxE,EAAOwzD,KAAMgiB,GAClCxyF,GAAKwyF,EAAe,UACXx1E,EAAOh5B,MAChBwuG,EAAc95B,YAAc17C,EAAOh5B,KACnCgc,GAAKwyF,EAAe,UAEpBryF,GAAKqyF,GA1MS,SAAqB5yH,EAAUo9C,GAC/C,IAAI0tE,EAAQD,IACRiG,EAAcD,GAAaC,YAAYrzH,IAAIuC,GAC3C6yH,GAAY/B,GAAe1zE,EAAO/iC,QAAUy2G,EAAYz2G,MAC5D22G,GAAWvoG,SAAQ,SAAUwkG,GAC3B,IAAIiF,EAAa3H,EAAY0C,GACzBkE,EAAiBjE,GAAgBpC,EAAOoH,GAE5Cb,GAAcpE,EAAW7vE,EAAOk0E,iBAEhCH,EAAen6B,UAAYk7B,EAEvBW,GACFtyF,GAAK4wF,MAIL/zE,EAAO/iC,QACLw4G,GACF5B,GAAU7zE,GAIZq0E,GAAer0E,IAsLjB01E,CAAY9yH,EAAUo9C,IAoDpB21E,GAAc,SAAqB/H,EAAM5tE,GAC3C,IAAK,IAAI41E,KAAYxI,EACfptE,EAAO4tE,OAASgI,GAClB7X,GAAY6P,EAAMR,EAAUwI,IAIhClY,EAASkQ,EAAMR,EAAUptE,EAAO4tE,OAEhCiI,GAASjI,EAAM5tE,GAEf81E,KAEAtG,EAAiB5B,EAAM5tE,EAAQ,SAI7B81E,GAAkC,WAKpC,IAJA,IAAIpI,EAAQD,IACRsI,EAAuBnxH,OAAOmvB,iBAAiB25F,GAAOv2F,iBAAiB,oBACvE6+F,EAAmBtI,EAAMv1B,iBAAiB,4DAErC34F,EAAI,EAAGA,EAAIw2H,EAAiB/yH,OAAQzD,IAC3Cw2H,EAAiBx2H,GAAG+gB,MAAMb,gBAAkBq2G,GAI5CE,GAAa,SAAoBrI,EAAM5tE,GACzC4tE,EAAKlyB,YAAc,GAEf17C,EAAOk2E,SACT5G,EAAa1B,EAAMuI,GAAYn2E,EAAOk2E,WACb,YAAhBl2E,EAAO4tE,KAChB0B,EAAa1B,EAAM,yTACM,UAAhB5tE,EAAO4tE,KAChB0B,EAAa1B,EAAM,yKAOnB0B,EAAa1B,EAAMuI,GALG,CACpBC,SAAU,IACVC,QAAS,IACThsG,KAAM,KAEuC21B,EAAO4tE,SAItDiI,GAAW,SAAkBjI,EAAM5tE,GACrC,GAAKA,EAAOs2E,UAAZ,CAIA1I,EAAKrtG,MAAM3C,MAAQoiC,EAAOs2E,UAC1B1I,EAAKrtG,MAAMZ,YAAcqgC,EAAOs2E,UAEhC,IAAK,IAAIv4F,EAAK,EAAGE,EAAO,CAAC,0BAA2B,2BAA4B,0BAA2B,4BAA6BF,EAAKE,EAAKh7B,OAAQ86B,IAExJ6pC,GAASgmD,EADC3vF,EAAKF,GACK,kBAAmBiiB,EAAOs2E,WAGhD1uD,GAASgmD,EAAM,sBAAuB,cAAe5tE,EAAOs2E,aAG1DH,GAAc,SAAqB1yB,GACrC,MAAO,eAAgB/lF,OAAOyvG,EAAY,gBAAiB,MAAOzvG,OAAO+lF,EAAS,WAwChF8yB,GAAsB,SAA6B3zH,EAAUo9C,GAC/D,IAAIw2E,EAAyBzI,IAE7B,IAAK/tE,EAAOy2E,eAAiD,IAAhCz2E,EAAOy2E,cAAcxzH,OAChD,OAAOkgC,GAAKqzF,GAGdxzF,GAAKwzF,GACLA,EAAuB96B,YAAc,GAEjC17C,EAAO02E,qBAAuB12E,EAAOy2E,cAAcxzH,QACrDgnB,EAAK,yIAGP+1B,EAAOy2E,cAAcprG,SAAQ,SAAUpnB,EAAM2D,GAC3C,IAAI+uH,EAjCgB,SAA2B1yH,GACjD,IAAI0yH,EAASlyE,SAAS6sC,cAAc,MAGpC,OAFAosB,EAASiZ,EAAQxJ,EAAY,kBAC7BmC,EAAaqH,EAAQ1yH,GACd0yH,EA6BQC,CAAkB3yH,GAO/B,GANAuyH,EAAuBjlC,YAAYolC,GAE/B/uH,IAAUo4C,EAAO02E,qBACnBhZ,EAASiZ,EAAQxJ,EAAY,yBAG3BvlH,IAAUo4C,EAAOy2E,cAAcxzH,OAAS,EAAG,CAC7C,IAAI4zH,EAlCc,SAA2B72E,GACjD,IAAI62E,EAASpyE,SAAS6sC,cAAc,MAOpC,OANAosB,EAASmZ,EAAQ1J,EAAY,uBAEzBntE,EAAO82E,wBACTD,EAAOt2G,MAAMuC,MAAQk9B,EAAO82E,uBAGvBD,EA0BUE,CAAkB/2E,GAC/Bw2E,EAAuBjlC,YAAYslC,QA8CrCG,GAAa,SAAoBtJ,EAAO1tE,GAE1C0tE,EAAM9zB,UAAY,GAAGl8E,OAAOyvG,EAAYO,MAAO,KAAKhwG,OAAOsxG,GAAUtB,GAAS1tE,EAAOyvE,UAAU/B,MAAQ,IAEnG1tE,EAAOmxE,OACTzT,EAAS,CAACj5D,SAAS80C,gBAAiB90C,SAASs2B,MAAOoyC,EAAY,gBAChEzP,EAASgQ,EAAOP,EAAYgE,QAE5BzT,EAASgQ,EAAOP,EAAY8J,OAI9BzH,EAAiB9B,EAAO1tE,EAAQ,SAEE,kBAAvBA,EAAO2vE,aAChBjS,EAASgQ,EAAO1tE,EAAO2vE,aAIrB3vE,EAAO4tE,MACTlQ,EAASgQ,EAAOP,EAAY,QAAQzvG,OAAOsiC,EAAO4tE,SAIlDxuD,GAAS,SAAgBx8D,EAAUo9C,IAjDrB,SAAqBp9C,EAAUo9C,GAC/C,IAAIjqB,EAAYs3F,IACZK,EAAQD,IAERztE,EAAOmxE,OAETlB,GAAoBl6F,EAAW,QAASiqB,EAAOl9B,OAC/C4qG,EAAMntG,MAAMuC,MAAQ,OACpB4qG,EAAMvZ,aAAama,IAAaX,MAEhCsC,GAAoBvC,EAAO,QAAS1tE,EAAOl9B,OAI7CmtG,GAAoBvC,EAAO,UAAW1tE,EAAOqB,SAEzCrB,EAAOmzE,aACTzF,EAAMntG,MAAM4yG,WAAanzE,EAAOmzE,YAGlChwF,GAAK6qF,KAELgJ,GAAWtJ,EAAO1tE,GA4BlBk3E,CAAYt0H,EAAUo9C,GACtBkzE,GAAgBtwH,EAAUo9C,GAC1Bu2E,GAAoB3zH,EAAUo9C,GApOf,SAAoBp9C,EAAUo9C,GAC7C,IAAI0zE,EAAcD,GAAaC,YAAYrzH,IAAIuC,GAC3CgrH,EAAOD,IAEP+F,GAAe1zE,EAAO4tE,OAAS8F,EAAY9F,MAE7CqI,GAAWrI,EAAM5tE,GACjB21E,GAAY/H,EAAM5tE,IAIfA,EAAO4tE,MAAS5tE,EAAOk2E,SAIxBl2E,EAAO4tE,OAAyD,IAAjD1tH,OAAOkH,KAAKgmH,GAAWjlH,QAAQ63C,EAAO4tE,OACvDlvD,EAAM,oFAA+FhhD,OAAOsiC,EAAO4tE,KAAM,MAClHzqF,GAAKyqF,KAGd5qF,GAAK4qF,GAELqI,GAAWrI,EAAM5tE,GACjB21E,GAAY/H,EAAM5tE,GAElB09D,EAASkQ,EAAM5tE,EAAOyvE,UAAU7B,OAbvBzqF,GAAKyqF,GAyNduJ,CAAWv0H,EAAUo9C,GAvIL,SAAqBp9C,EAAUo9C,GAC/C,IAAIw+C,EAAQsvB,IAEZ,IAAK9tE,EAAOo3E,SACV,OAAOj0F,GAAKq7D,GAGdx7D,GAAKw7D,EAAO,IAEZA,EAAMj4C,aAAa,MAAOvG,EAAOo3E,UACjC54B,EAAMj4C,aAAa,MAAOvG,EAAOq3E,UAEjCpH,GAAoBzxB,EAAO,QAASx+C,EAAOs3E,YAC3CrH,GAAoBzxB,EAAO,SAAUx+C,EAAOu3E,aAE5C/4B,EAAM5E,UAAYuzB,EAAY3uB,MAC9BgxB,EAAiBhxB,EAAOx+C,EAAQ,SAwHhCw3E,CAAY50H,EAAUo9C,GAtEN,SAAqBp9C,EAAUo9C,GAC/C,IAAIhL,EAAQuqC,IACZwrB,GAAO/1D,EAAOgL,EAAOhL,OAASgL,EAAOy3E,UAAW,SAE5Cz3E,EAAOhL,OACTw8E,GAAqBxxE,EAAOhL,MAAOA,GAGjCgL,EAAOy3E,YACTziF,EAAM4/E,UAAY50E,EAAOy3E,WAI3BjI,EAAiBx6E,EAAOgL,EAAQ,SA0DhC03E,CAAY90H,EAAUo9C,GAhPA,SAA2Bp9C,EAAUo9C,GAC3D,IAAI23E,EAAchJ,IAClBW,EAAaqI,EAAa33E,EAAO43E,iBAEjCpI,EAAiBmI,EAAa33E,EAAQ,eACtC+qD,GAAO4sB,EAAa33E,EAAO63E,iBAC3BF,EAAYpxE,aAAa,aAAcvG,EAAO83E,sBA2O9CC,CAAkBn1H,EAAUo9C,GAC5Bu1E,GAAc3yH,EAAUo9C,GACxBiyE,GAAcrvH,EAAUo9C,GA/PP,SAAsBp9C,EAAUo9C,GACjD,IAAIg7B,EAAS2E,IACborB,GAAO/vB,EAAQh7B,EAAOg7B,QAElBh7B,EAAOg7B,QACTw2C,GAAqBxxE,EAAOg7B,OAAQA,GAItCw0C,EAAiBx0C,EAAQh7B,EAAQ,UAuPjCg4E,CAAap1H,EAAUo9C,GAES,oBAArBA,EAAOi4E,WAChBj4E,EAAOi4E,UAAUxK,MAgBjByK,GAAe,WACjB,OAAOjK,KAAsBA,IAAmB5d,SA8E9C8nB,GAAc,SAAqBC,GACrC,IAAI1K,EAAQD,IAEPC,GACHoD,GAAKjsB,OAGP6oB,EAAQD,IACR,IAAIc,EAASD,IAETY,IACF/rF,GAAKwqF,KAEL0K,GAAc3K,EAAO0K,GAGvBp1F,GAAKurF,GACLb,EAAMnnE,aAAa,gBAAgB,GACnCmnE,EAAMnnE,aAAa,aAAa,GAChCmnE,EAAMxb,SAGJmmB,GAAgB,SAAuB3K,EAAO0K,GAChD,IAAIlK,EAAUO,IACVF,EAASD,KAER8J,GAAmBpJ,GAAUf,OAChCmK,EAAkBnK,KAGpBjrF,GAAKkrF,GAEDkK,IACFj1F,GAAKi1F,GACL7J,EAAOhoE,aAAa,yBAA0B6xE,EAAgBx+B,YAGhE20B,EAAO96F,WAAW0gF,aAAaoa,EAAQ6J,GACvC1a,EAAS,CAACgQ,EAAOQ,GAAUf,EAAYmL,UAIrCC,GAAc,GAYdC,GAAuB,SAA8BC,GACvD,OAAO,IAAIn2F,SAAQ,SAAUnY,GAC3B,IAAKsuG,EACH,OAAOtuG,IAGT,IAAIrf,EAAIlG,OAAO8zH,QACX3tH,EAAInG,OAAO+zH,QACfJ,GAAYK,oBAAsBr6D,YAAW,WAjB3Cg6D,GAAYM,uBAAyBN,GAAYM,sBAAsB3mB,OACzEqmB,GAAYM,sBAAsB3mB,QAClCqmB,GAAYM,sBAAwB,MAC3Bp0E,SAASs2B,MAClBt2B,SAASs2B,KAAKm3B,QAeZ/nF,MAvBsB,KA0BxBvlB,OAAOqkH,SAASn+G,EAAGC,OAkBnB+tH,GAAY,WACd,GAAIP,GAAY/6D,QAEd,OAt7BuB,WACzB,IAAIizD,EAAmB/B,IACnBqK,EAAwBz8G,SAAS1X,OAAOmvB,iBAAiB08F,GAAkB3tG,OAC/E2tG,EAAiBlwG,MAAM2vG,eAAe,cACtCO,EAAiBlwG,MAAMuC,MAAQ,OAC/B,IAAIk2G,EAA4B18G,SAAS1X,OAAOmvB,iBAAiB08F,GAAkB3tG,OAC/Em2G,EAA0B38G,SAASy8G,EAAwBC,EAA4B,KAC3FvI,EAAiBlwG,MAAM2vG,eAAe,cACtCO,EAAiBlwG,MAAMuC,MAAQ,GAAGpF,OAAOu7G,EAAyB,KA66BhEC,GACOX,GAAY/6D,QAAQhjB,QAS3B2+E,GAAc,WAChB,GAAIZ,GAAY/6D,QAAS,CACvB,IAAIh+B,EAAY+4F,GAAY/6D,QAAQ13D,QAEpC,OADA0qH,GAAwBhxF,GACjBA,IAqCP45F,IAAyB,EACzBC,GAAgB,GAYhBC,GAAoB,SAA2Bl5F,GAEjD,IAAK,IAAIlJ,EAAKkJ,EAAMr9B,OAAQm0B,GAAMA,IAAOutB,SAAUvtB,EAAKA,EAAGzD,WACzD,IAAK,IAAI0nE,KAAQk+B,GAAe,CAC9B,IAAIE,EAAWriG,EAAG+uB,aAAak1C,GAE/B,GAAIo+B,EAIF,YAHAF,GAAcl+B,GAAM0J,KAAK,CACvB00B,SAAUA,MAQhBC,GAAgB,CAClBxkF,MAAO,GACPyiF,UAAW,GACXzwG,KAAM,GACNwsF,KAAM,GACNx4B,OAAQ,GACR4yC,UAAMt9G,EACNgmH,eAAWhmH,EACX4lH,cAAU5lH,EACVipH,cAAUjpH,EACV6gH,OAAO,EACP1B,UAAW,CACT/B,MAAO,aACPx5D,SAAU,sBACV05D,KAAM,mBAER6L,UAAW,CACT/L,MAAO,aACPx5D,SAAU,sBACV05D,KAAM,mBAER+B,YAAa,GACb5sH,OAAQ,OACRmxD,UAAU,EACVwlE,YAAY,EACZC,mBAAmB,EACnBC,gBAAgB,EAChBC,eAAe,EACfC,wBAAwB,EACxBC,wBAAwB,EACxB1H,mBAAmB,EACnBC,gBAAgB,EAChBC,kBAAkB,EAClByH,gBAAY1pH,EACZ2pH,aAAS3pH,EACT4pH,kBAAmB,KACnBC,uBAAwB,GACxBxH,wBAAoBriH,EACpB8pH,eAAgB,KAChBC,oBAAqB,GACrBzH,qBAAiBtiH,EACjBgqH,iBAAkB,SAClBC,sBAAuB,GACvB1H,uBAAmBviH,EACnBmiH,gBAAgB,EAChBM,gBAAgB,EAChByH,cAAc,EACdC,WAAW,EACXC,aAAa,EACbjC,aAAa,EACbZ,iBAAiB,EACjBD,gBAAiB,UACjBE,qBAAsB,oBACtB9E,WAAY,GACZ2H,qBAAqB,EACrBC,kBAAkB,EAClBxD,cAAU9mH,EACVgnH,gBAAYhnH,EACZinH,iBAAajnH,EACb+mH,SAAU,GACV3c,WAAOpqG,EACPmgH,kBAAkB,EAClB3tG,WAAOxS,EACP+wC,aAAS/wC,EACT6iH,gBAAY7iH,EACZ2M,WAAO3M,EACPkkH,iBAAkB,GAClBE,WAAY,GACZO,WAAY,GACZ4F,aAAc,GACdC,eAAe,EACf5G,gBAAiB,GACjB6G,oBAAgBzqH,EAChB0qH,wBAAwB,EACxBC,uBAAmB3qH,EACnBgjH,MAAM,EACN11E,SAAU,SACV64E,cAAe,GACfC,yBAAqBpmH,EACrBwmH,2BAAuBxmH,EACvB4qH,cAAU5qH,EACV6qH,aAAS7qH,EACT2nH,eAAW3nH,EACX8qH,eAAW9qH,EACX+qH,cAAU/qH,EACVgrH,gBAAYhrH,EACZirH,kBAAkB,GAEhBC,GAAkB,CAAC,iBAAkB,oBAAqB,aAAc,iBAAkB,wBAAyB,oBAAqB,mBAAoB,uBAAwB,kBAAmB,yBAA0B,qBAAsB,oBAAqB,sBAAuB,cAAe,sBAAuB,kBAAmB,iBAAkB,WAAY,aAAc,SAAU,YAAa,OAAQ,OAAQ,YAAa,WAAY,WAAY,cAAe,WAAY,aAAc,gBAAiB,cAAe,iBAAkB,mBAAoB,kBAAmB,oBAAqB,iBAAkB,OAAQ,QAAS,YAAa,aAC3pBC,GAAmB,GACnBC,GAA0B,CAAC,oBAAqB,gBAAiB,WAAY,eAAgB,YAAa,cAAe,cAAe,aAAc,0BAMtJC,GAAmB,SAA0BC,GAC/C,OAAO17H,OAAOkB,UAAUC,eAAe1B,KAAK65H,GAAeoC,IAiBzDC,GAAwB,SAA+BD,GACzD,OAAOH,GAAiBG,IAGtBE,GAAsB,SAA6B5zC,GAChDyzC,GAAiBzzC,IACpBj+D,EAAK,sBAAuBvM,OAAOwqE,EAAO,OAI1C6zC,GAA2B,SAAkC7zC,GAC3DwzC,GAAwB9uG,SAASs7D,IACnCj+D,EAAK,kBAAmBvM,OAAOwqE,EAAO,mCAItC8zC,GAA2B,SAAkC9zC,GAC3D2zC,GAAsB3zC,IACxBukC,EAAqBvkC,EAAO2zC,GAAsB3zC,KAUlD+zC,GAAwB,SAA+Bj8E,GAKzD,IAAK,IAAIkoC,KAJJloC,EAAOkU,UAAYlU,EAAO25E,mBAC7B1vG,EAAK,mFAGW+1B,EAChB87E,GAAoB5zC,GAEhBloC,EAAOmxE,OACT4K,GAAyB7zC,GAG3B8zC,GAAyB9zC,IAIzBg0C,GAA6Bh8H,OAAO4tC,OAAO,CAC7C6tF,iBAAkBA,GAClBQ,qBAvDyB,SAA8BP,GACvD,OAA+C,IAAxCJ,GAAgBrzH,QAAQyzH,IAuD/BC,sBAAuBA,GACvBO,aAngDiB,SAAsBh3H,GACvC,IAAI46C,EAAS,GAgBb,MAdyB,WAArBv9C,EAAQ2C,EAAK,KAAqB6nH,EAAU7nH,EAAK,IAGnD,CAAC,QAAS,OAAQ,QAAQimB,SAAQ,SAAUtrB,EAAM6H,GAChD,IAAImwD,EAAM3yD,EAAKwC,GAEI,kBAARmwD,GAAoBk1D,EAAUl1D,GACvC/X,EAAOjgD,GAAQg4D,OACEznD,IAARynD,GACT2G,EAAM,sBAAsBhhD,OAAO3d,EAAM,0CAA8C2d,OAAOjb,EAAQs1D,QAR1G73D,OAAO6c,OAAOijC,EAAQ56C,EAAK,IAatB46C,GAm/CPgvE,UAjagB,WAChB,OAAOA,GAAUvB,MAiajByK,aAAcA,GACdmE,UAnZc,WACd,OAAOjO,KAAmBA,IAAgB/d,SAmZ1CisB,YA5YgB,WAChB,OAAO9N,KAAqBA,IAAkBne,SA4Y9Cgd,aAAcA,EACdI,SAAUA,EACVluC,SAAUA,EACVsuC,iBAAkBA,EAClBC,SAAUA,EACVH,QAASA,EACT4O,cA17CkB,WAClB,OAAO/O,EAAeL,EAAY,iBA07ClCwB,eAAgBA,EAChBF,WAAYA,EACZR,iBAAkBA,EAClBG,cAAeA,EACfI,gBAAiBA,EACjBF,UAAWA,EACX3uC,UAAWA,EACX+uC,oBAAqBA,EACrBE,qBAAsBA,EACtBZ,qBAAsBA,EACtBwO,UAx4Cc,WACd,OAAO/O,IAAWgP,aAAa,iBAw4C/B53B,KA3ZF,WAGE,IAFA,IAAIisB,EAAOzzG,KAEF/X,EAAOC,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAM4D,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/EL,EAAKK,GAAQF,UAAUE,GAGzB,OAAOqmH,EAAWgF,EAAM1rH,IAqZxBs3H,MA/XF,SAAeC,GAsBb,OArB6B,SAAUvnF,IA9yC3C,SAAmB1Y,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIx6B,UAAU,sDAAyDu6B,EAASt7B,UAAYlB,OAAOY,OAAO67B,GAAcA,EAAWv7B,UAAW,CAAEsB,YAAa,CAAEjC,MAAOi8B,EAAUl6B,UAAU,EAAMD,cAAc,KAAeo6B,GAAYC,EAAgBF,EAAUC,GA+yC7WF,CAAUmgG,EAAWxnF,GAErB,IA/yCgBpY,EAAeC,EA+yC3BwT,GA/yCYzT,EA+yCU4/F,EA/yCK3/F,EAA4BK,IAAoC,WAAkC,IAAsCjJ,EAAlCkJ,EAAQjB,EAAgBU,GAAkB,GAAIC,EAA2B,CAAE,IAAIO,EAAYlB,EAAgBjf,MAAM3a,YAAa2xB,EAAS9H,QAAQ2Q,UAAUK,EAAOh4B,UAAWi4B,QAAqBnJ,EAASkJ,EAAM73B,MAAM2X,KAAM9X,WAAc,OAAOk4B,EAA2BpgB,KAAMgX,KAizCtZ,SAASuoG,IAGP,OAFAj6H,EAAgB0a,KAAMu/G,GAEfnsF,EAAO/qC,MAAM2X,KAAM9X,WAU5B,OAPApC,EAAay5H,EAAW,CAAC,CACvB77H,IAAK,QACLN,MAAO,SAAeu/C,EAAQ68E,GAC5B,OAAOzgG,EAAKE,EAAgBsgG,EAAUx7H,WAAY,QAASic,MAAM1d,KAAK0d,KAAM2iC,EAAQ9/C,OAAO6c,OAAO,GAAI4/G,EAAaE,QAIhHD,EAlBoB,CAmB3Bv/G,OA4WF86G,YAAaA,GACb2E,cAAe3E,GACf4E,aAxRiB,WACjB,OAAOxE,GAAY/6D,SAAW+6D,GAAY/6D,QAAQu/D,gBAwRlDjE,UAAWA,GACXK,YAAaA,GACb6D,YAzPgB,WAChB,IAAItiB,EAAQ6d,GAAY/6D,QACxB,OAAOk9C,IAAUA,EAAMj7E,QAAUq5F,KAAcK,OAwP/C8D,cAhPkB,SAAuBh8H,GACzC,GAAIs3H,GAAY/6D,QAAS,CACvB,IAAIh+B,EAAY+4F,GAAY/6D,QAAQ0/D,SAASj8H,GAE7C,OADAuvH,GAAwBhxF,GAAW,GAC5BA,IA6OT29F,eAnOmB,WACnB,OAAO5E,GAAY/6D,SAAW+6D,GAAY/6D,QAAQ4/D,aAmOlDC,iBA7NF,WACE,IAAIliC,EAAO51F,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,qBAC/E8zH,GAAcl+B,GAAQ99E,KAEjB+7G,KACH30E,SAASs2B,KAAKhkD,iBAAiB,QAASuiG,IACxCF,IAAyB,MA6N7B,SAASkE,KAEP,IAAI5J,EAAcD,GAAaC,YAAYrzH,IAAIgd,MAE/C,GAAKq2G,EAAL,CAIA,IAAIC,EAAWF,GAAaE,SAAStzH,IAAIgd,MACzC8lB,GAAKwwF,EAASpF,QAEVW,IACEwE,EAAY9F,MACd5qF,GAAK2qF,KAGP4P,GAAkB5J,GAGpB5V,GAAY,CAAC4V,EAASjG,MAAOiG,EAASzF,SAAUf,EAAYmL,SAC5D3E,EAASjG,MAAMpnE,gBAAgB,aAC/BqtE,EAASjG,MAAMpnE,gBAAgB,gBAC/BqtE,EAASzB,cAAcnlF,UAAW,EAClC4mF,EAASxB,WAAWplF,UAAW,EAC/B4mF,EAASvB,aAAarlF,UAAW,GAGnC,IAAIwwF,GAAoB,SAA2B5J,GACjD,IAAIyE,EAAkBzE,EAASjG,MAAM31B,uBAAuB47B,EAASpF,OAAOtoE,aAAa,2BAErFmyE,EAAgBn1H,OAClB+/B,GAAKo1F,EAAgB,GAAI,gBA7wCnBpJ,GAAUf,MAAwBe,GAAUZ,MAAqBY,GAAUR,MA+wCjFrrF,GAAKwwF,EAASzF,UAedsP,GAAe,WAEkB,OAA/BpO,EAAOC,qBAKP5qE,SAASs2B,KAAKq1C,aAAexrH,OAAO8lH,cAEtC0E,EAAOC,oBAAsB/yG,SAAS1X,OAAOmvB,iBAAiB0wB,SAASs2B,MAAM5jD,iBAAiB,kBAC9FstB,SAASs2B,KAAKx6D,MAAM0rC,aAAe,GAAGvuC,OAAO0xG,EAAOC,oBAhmCjC,WACrB,IAAIoO,EAAYh5E,SAAS6sC,cAAc,OACvCmsC,EAAU7jC,UAAYuzB,EAAY,qBAClC1oE,SAASs2B,KAAKwW,YAAYksC,GAC1B,IAAIC,EAAiBD,EAAUroG,wBAAwBtS,MAAQ26G,EAAUtnG,YAEzE,OADAsuB,SAASs2B,KAAKyW,YAAYisC,GACnBC,EA0lCqEC,GAAoB,QAyB9FC,GAAgC,WACpBC,UAAUC,UAAU10G,MAAM,8CAKlCqkG,IAAW2C,aAAexrH,OAAO8lH,YAFb,KAGtB2C,IAAe9sG,MAAMwrC,cAAgB,GAAGruC,OAHlB,GAG4C,QAKpEqgH,GAAiB,WAEnB,IACIC,EADAjoG,EAAYs3F,IAGhBt3F,EAAUkoG,aAAe,SAAUt6H,GACjCq6H,EAAmBE,GAAuBv6H,IAG5CoyB,EAAUooG,YAAc,SAAUx6H,GAC5Bq6H,IACFr6H,EAAEoqG,iBACFpqG,EAAEkqG,qBAKJqwB,GAAyB,SAAgC99F,GAC3D,IAAIr9B,EAASq9B,EAAMr9B,OACfgzB,EAAYs3F,IAEhB,OAAI+Q,GAASh+F,KAAUi+F,GAAOj+F,KAI1Br9B,IAAWgzB,KAIVo6F,GAAap6F,IAAiC,UAAnBhzB,EAAOu7H,SACpB,aAAnBv7H,EAAOu7H,SACLnO,GAAatC,MACfA,IAAmBr5B,SAASzxF,MAO1Bq7H,GAAW,SAAkBh+F,GAE/B,OAAOA,EAAMtL,SAAWsL,EAAMtL,QAAQ7xB,QAAyC,WAA/Bm9B,EAAMtL,QAAQ,GAAGypG,WAG/DF,GAAS,SAAgBj+F,GAE3B,OAAOA,EAAMtL,SAAWsL,EAAMtL,QAAQ7xB,OAAS,GAoD7Cu7H,GAAiB,CACnBC,mBAAoB,IAAItkD,SAM1B,SAASukD,GAAyB97H,EAAUmzB,EAAW0iG,EAAa4C,GAC9DnM,IACFyP,GAA0B/7H,EAAUy4H,IAEpC7C,GAAqBC,GAAal0F,MAAK,WACrC,OAAOo6F,GAA0B/7H,EAAUy4H,MAE7C9C,GAAYqG,cAAc5nG,oBAAoB,UAAWuhG,GAAYsG,eAAgB,CACnFC,QAASvG,GAAYwB,yBAEvBxB,GAAYwG,qBAAsB,GAGrB,iCAAiCv6H,KAAKq5H,UAAUC,YAI7D/nG,EAAUwwB,aAAa,QAAS,2BAChCxwB,EAAUuwB,gBAAgB,SAC1BvwB,EAAUqkE,UAAY,IAEtBrkE,EAAUksC,SAGRgtD,MAjK+B,OAA/BG,EAAOC,sBACT5qE,SAASs2B,KAAKx6D,MAAM0rC,aAAe,GAAGvuC,OAAO0xG,EAAOC,oBAAqB,MACzED,EAAOC,oBAAsB,MA+EhB,WACf,GAAIjR,EAAS35D,SAASs2B,KAAMoyC,EAAY6R,QAAS,CAC/C,IAAI9qF,EAAS53B,SAASmoC,SAASs2B,KAAKx6D,MAAMyF,IAAK,IAC/C+3F,GAAYt5D,SAASs2B,KAAMoyC,EAAY6R,QACvCv6E,SAASs2B,KAAKx6D,MAAMyF,IAAM,GAC1By+B,SAASs2B,KAAKo+B,WAAsB,EAAVjlE,GA6E1B+qF,GAtDiBntC,EAAQrtC,SAASs2B,KAAKkV,UAC5B5kE,SAAQ,SAAU6L,GACzBA,EAAGulG,aAAa,8BAClBvlG,EAAGqvB,aAAa,cAAervB,EAAG+uB,aAAa,8BAC/C/uB,EAAGovB,gBAAgB,8BAEnBpvB,EAAGovB,gBAAgB,mBAwDvBy3D,GAAY,CAACt5D,SAAS80C,gBAAiB90C,SAASs2B,MAAO,CAACoyC,EAAY+R,MAAO/R,EAAY,eAAgBA,EAAY,eAAgBA,EAAY,iBAGjJ,SAAShB,GAAMgT,GACb,IAAIzR,EAAQD,IAEZ,GAAKC,EAAL,CAIAyR,EAAeC,GAAoBD,GACnC,IAAIzL,EAAcD,GAAaC,YAAYrzH,IAAIgd,MAE/C,GAAKq2G,IAAetV,EAASsP,EAAOgG,EAAY+F,UAAU/L,OAA1D,CAIA,IAAI+Q,EAAqBD,GAAeC,mBAAmBp+H,IAAIgd,MAC/D0gG,GAAY2P,EAAOgG,EAAYjE,UAAU/B,OACzChQ,EAASgQ,EAAOgG,EAAY+F,UAAU/L,OACtC,IAAIx5D,EAAWm5D,IACftP,GAAY7pD,EAAUw/D,EAAYjE,UAAUv7D,UAC5CwpD,EAASxpD,EAAUw/D,EAAY+F,UAAUvlE,UACzCmrE,GAAqBhiH,KAAMqwG,EAAOgG,GAElC+K,EAAmBU,KAGrB,IAAIC,GAAsB,SAA6BD,GAErD,MAA4B,qBAAjBA,EACF,CACLG,aAAa,EACbC,UAAU,EACVC,aAAa,GAIVt/H,OAAO6c,OAAO,CACnBuiH,aAAa,EACbC,UAAU,EACVC,aAAa,GACZL,IAGDE,GAAuB,SAA8Bz8H,EAAU8qH,EAAOgG,GACxE,IAAI39F,EAAYs3F,IAEZoS,EAAuB7N,IAAqBvB,GAAgB3C,GAE3B,oBAA1BgG,EAAY0H,WACrB1H,EAAY0H,UAAU1N,GAGpB+R,EACFC,GAAa98H,EAAU8qH,EAAO33F,EAAW29F,EAAY+E,YAAa/E,EAAY2H,UAG9EqD,GAAyB97H,EAAUmzB,EAAW29F,EAAY+E,YAAa/E,EAAY2H,WAInFqE,GAAe,SAAsB98H,EAAU8qH,EAAO33F,EAAW0iG,EAAa4C,GAChF9C,GAAYoH,+BAAiCjB,GAAyB19H,KAAK,KAAM4B,EAAUmzB,EAAW0iG,EAAa4C,GACnH3N,EAAM32F,iBAAiB66F,IAAmB,SAAUjuH,GAC9CA,EAAEZ,SAAW2qH,IACf6K,GAAYoH,wCACLpH,GAAYoH,oCAKrBhB,GAA4B,SAAmC/7H,EAAUy4H,GAC3E98D,YAAW,WACe,oBAAb88D,GACTA,EAASr6H,KAAK4B,EAASo9C,OAAvBq7E,GAGFz4H,EAASo/D,eAIb,SAAS49D,GAAmBh9H,EAAU8uG,EAAS3kE,GAC7C,IAAI4mF,EAAWF,GAAaE,SAAStzH,IAAIuC,GACzC8uG,EAAQrmF,SAAQ,SAAU2kF,GACxB2jB,EAAS3jB,GAAQjjE,SAAWA,KAIhC,SAAS8yF,GAAiB5iH,EAAO8vB,GAC/B,IAAK9vB,EACH,OAAO,EAGT,GAAmB,UAAfA,EAAM7W,KAIR,IAHA,IACI05H,EADkB7iH,EAAMwW,WAAWA,WACV0kE,iBAAiB,SAErC34F,EAAI,EAAGA,EAAIsgI,EAAO78H,OAAQzD,IACjCsgI,EAAOtgI,GAAGutC,SAAWA,OAGvB9vB,EAAM8vB,SAAWA,EA+DrB,IAAIgzF,GAAqB,WACvB,SAASA,EAAMl7H,EAAU+8B,GACvBj/B,EAAgB0a,KAAM0iH,GAEtB1iH,KAAKxY,SAAWA,EAChBwY,KAAKmiB,UAAYoC,EACjBvkB,KAAKoiB,SAAU,EACfpiB,KAAKvX,QA2DP,OAxDA3C,EAAa48H,EAAO,CAAC,CACnBh/H,IAAK,QACLN,MAAO,WAOL,OANK4c,KAAKoiB,UACRpiB,KAAKoiB,SAAU,EACfpiB,KAAK2iH,QAAU,IAAI1gG,KACnBjiB,KAAKpX,GAAKs4D,WAAWlhD,KAAKxY,SAAUwY,KAAKmiB,YAGpCniB,KAAKmiB,YAEb,CACDz+B,IAAK,OACLN,MAAO,WAOL,OANI4c,KAAKoiB,UACPpiB,KAAKoiB,SAAU,EACf6+B,aAAajhD,KAAKpX,IAClBoX,KAAKmiB,WAAa,IAAIF,KAASjiB,KAAK2iH,SAG/B3iH,KAAKmiB,YAEb,CACDz+B,IAAK,WACLN,MAAO,SAAkBQ,GACvB,IAAIw+B,EAAUpiB,KAAKoiB,QAYnB,OAVIA,GACFpiB,KAAKm9B,OAGPn9B,KAAKmiB,WAAav+B,EAEdw+B,GACFpiB,KAAKvX,QAGAuX,KAAKmiB,YAEb,CACDz+B,IAAK,eACLN,MAAO,WAML,OALI4c,KAAKoiB,UACPpiB,KAAKm9B,OACLn9B,KAAKvX,SAGAuX,KAAKmiB,YAEb,CACDz+B,IAAK,YACLN,MAAO,WACL,OAAO4c,KAAKoiB,YAITsgG,EAlEgB,GAqErBE,GAAyB,CAC3BlL,MAAO,SAAepyG,EAAQs4G,GAC5B,MAAO,wDAAwDz2H,KAAKme,GAAU2f,QAAQnY,UAAYmY,QAAQnY,QAAQ8wG,GAAqB,0BAEzIpZ,IAAK,SAAal/F,EAAQs4G,GAExB,MAAO,8FAA8Fz2H,KAAKme,GAAU2f,QAAQnY,UAAYmY,QAAQnY,QAAQ8wG,GAAqB,iBA8BjL,SAASiF,GAAclgF,IA1BvB,SAAmCA,GAE5BA,EAAO+6E,gBACV76H,OAAOkH,KAAK64H,IAAwB50G,SAAQ,SAAUtqB,GAChDi/C,EAAO/iC,QAAUlc,IACnBi/C,EAAO+6E,eAAiBkF,GAAuBl/H,OAsBrDo/H,CAA0BngF,GAEtBA,EAAO26E,sBAAwB36E,EAAOg6E,YACxC/vG,EAAK,oMAnBT,SAAqC+1B,KAE9BA,EAAOj9C,QAAmC,kBAAlBi9C,EAAOj9C,SAAwB0hD,SAASsmE,cAAc/qE,EAAOj9C,SAAoC,kBAAlBi9C,EAAOj9C,SAAwBi9C,EAAOj9C,OAAOwuF,eACvJtnE,EAAK,uDACL+1B,EAAOj9C,OAAS,QAkBlBq9H,CAA4BpgF,GAEA,kBAAjBA,EAAOhL,QAChBgL,EAAOhL,MAAQgL,EAAOhL,MAAM/1B,MAAM,MAAM6O,KAAK,WAG/C+xC,GAAK7f,GAGP,IA8/BIqgF,GA9/BAC,GAAmB,CAAC,aAAc,YAAa,eAe/CC,GAAgB,SAAuBC,GACzC,IAAInsG,EAAS,GAgBb,OAfAy9D,EAAQ0uC,EAAgBroC,iBAAiB,eAAe9sE,SAAQ,SAAU68D,GACxEu4C,GAA0Bv4C,EAAO,CAAC,OAAQ,UAC1C,IAAI0zC,EAAY1zC,EAAMjiC,aAAa,QAC/BxlD,EAAQynF,EAAMjiC,aAAa,SAES,mBAA7BuzE,GAAcoC,IAAsC,UAAVn7H,IACnDA,GAAQ,GAGgC,WAAtCgC,EAAQ+2H,GAAcoC,MACxBn7H,EAAQu3B,KAAKoT,MAAM3qC,IAGrB4zB,EAAOunG,GAAan7H,KAEf4zB,GAGLqsG,GAAiB,SAAwBF,GAC3C,IAAInsG,EAAS,GAeb,OAdAy9D,EAAQ0uC,EAAgBroC,iBAAiB,gBAAgB9sE,SAAQ,SAAU2kF,GACzEywB,GAA0BzwB,EAAQ,CAAC,OAAQ,QAAS,eACpD,IAAI5pG,EAAO4pG,EAAO/pD,aAAa,QAC/B5xB,EAAO,GAAG3W,OAAOtX,EAAM,eAAiB4pG,EAAO5V,UAC/C/lE,EAAO,OAAO3W,OAAO4uG,EAAsBlmH,GAAO,YAAa,EAE3D4pG,EAAOysB,aAAa,WACtBpoG,EAAO,GAAG3W,OAAOtX,EAAM,gBAAkB4pG,EAAO/pD,aAAa,UAG3D+pD,EAAOysB,aAAa,gBACtBpoG,EAAO,GAAG3W,OAAOtX,EAAM,oBAAsB4pG,EAAO/pD,aAAa,kBAG9D5xB,GAGLssG,GAAe,SAAsBH,GACvC,IAAInsG,EAAS,GACTmqE,EAAQgiC,EAAgBzV,cAAc,cAsB1C,OApBIvsB,IACFiiC,GAA0BjiC,EAAO,CAAC,MAAO,QAAS,SAAU,QAExDA,EAAMi+B,aAAa,SACrBpoG,EAAO+iG,SAAW54B,EAAMv4C,aAAa,QAGnCu4C,EAAMi+B,aAAa,WACrBpoG,EAAOijG,WAAa94B,EAAMv4C,aAAa,UAGrCu4C,EAAMi+B,aAAa,YACrBpoG,EAAOkjG,YAAc/4B,EAAMv4C,aAAa,WAGtCu4C,EAAMi+B,aAAa,SACrBpoG,EAAOgjG,SAAW74B,EAAMv4C,aAAa,SAIlC5xB,GAGLusG,GAAc,SAAqBJ,GACrC,IAAInsG,EAAS,GACTu5F,EAAO4S,EAAgBzV,cAAc,aAgBzC,OAdI6C,IACF6S,GAA0B7S,EAAM,CAAC,OAAQ,UAErCA,EAAK6O,aAAa,UACpBpoG,EAAOu5F,KAAOA,EAAK3nE,aAAa,SAG9B2nE,EAAK6O,aAAa,WACpBpoG,EAAOiiG,UAAY1I,EAAK3nE,aAAa,UAGvC5xB,EAAO6hG,SAAWtI,EAAKxzB,WAGlB/lE,GAGLwsG,GAAe,SAAsBL,GACvC,IAAInsG,EAAS,GACTpX,EAAQujH,EAAgBzV,cAAc,cAEtC9tG,IACFwjH,GAA0BxjH,EAAO,CAAC,OAAQ,QAAS,cAAe,UAClEoX,EAAOpX,MAAQA,EAAMgpC,aAAa,SAAW,OAEzChpC,EAAMw/G,aAAa,WACrBpoG,EAAOqgG,WAAaz3G,EAAMgpC,aAAa,UAGrChpC,EAAMw/G,aAAa,iBACrBpoG,EAAOmgG,iBAAmBv3G,EAAMgpC,aAAa,gBAG3ChpC,EAAMw/G,aAAa,WACrBpoG,EAAO4gG,WAAah4G,EAAMgpC,aAAa,WAI3C,IAAI40E,EAAe2F,EAAgBroC,iBAAiB,qBAYpD,OAVI0iC,EAAa53H,SACfoxB,EAAOwmG,aAAe,GACtB/oC,EAAQ+oC,GAAcxvG,SAAQ,SAAUwY,GACtC48F,GAA0B58F,EAAQ,CAAC,UACnC,IAAIi9F,EAAcj9F,EAAOoiB,aAAa,SAClC86E,EAAal9F,EAAOu2D,UACxB/lE,EAAOwmG,aAAaiG,GAAeC,MAIhC1sG,GAGL2sG,GAAsB,SAA6BR,EAAiBS,GACtE,IAAI5sG,EAAS,GAEb,IAAK,IAAI70B,KAAKyhI,EAAY,CACxB,IAAIrF,EAAYqF,EAAWzhI,GACvB26F,EAAMqmC,EAAgBzV,cAAc6Q,GAEpCzhC,IACFsmC,GAA0BtmC,EAAK,IAC/B9lE,EAAOunG,EAAUv/G,QAAQ,SAAU,KAAO89E,EAAIC,UAAU2vB,QAI5D,OAAO11F,GAGL6sG,GAA0B,SAAiC3H,GAC7D,IAAI4H,EAAkBb,GAAiB5iH,OAAO,CAAC,aAAc,cAAe,aAAc,YAAa,aAAc,sBACrHo0E,EAAQynC,EAAStpC,UAAU5kE,SAAQ,SAAU6L,GAC3C,IAAIonG,EAAUpnG,EAAGonG,QAAQ7hH,eAEiB,IAAtC0kH,EAAgBh5H,QAAQm2H,IAC1Br0G,EAAK,yBAAyBvM,OAAO4gH,EAAS,UAKhDmC,GAA4B,SAAmCvpG,EAAIkqG,GACrEtvC,EAAQ56D,EAAGo+D,YAAYjqE,SAAQ,SAAUg2G,IACY,IAA/CD,EAAkBj5H,QAAQk5H,EAAUthI,OACtCkqB,EAAK,CAAC,2BAA4BvM,OAAO2jH,EAAUthI,KAAM,UAAW2d,OAAOwZ,EAAGonG,QAAQ7hH,cAAe,MAAO,GAAGiB,OAAO0jH,EAAkBn+H,OAAS,2BAA2Bya,OAAO0jH,EAAkBtzG,KAAK,OAAS,wDAYrNwzG,GAAY,SAAmBthF,GACjC,IAAIjqB,EAAYs3F,IACZK,EAAQD,IAEmB,oBAApBztE,EAAOk7E,UAChBl7E,EAAOk7E,SAASxN,GAGlB,IACI6T,EADa38H,OAAOmvB,iBAAiB0wB,SAASs2B,MACbqgC,UACrComB,GAAazrG,EAAW23F,EAAO1tE,GAE/Bue,YAAW,WACTkjE,GAAuB1rG,EAAW23F,KApBb,IAuBnBuB,MACFyS,GAAmB3rG,EAAWiqB,EAAOu7E,iBAAkBgG,GAhjBtCzvC,EAAQrtC,SAASs2B,KAAKkV,UAC5B5kE,SAAQ,SAAU6L,GACzBA,IAAOm2F,KAAkBn2F,EAAGs9D,SAAS64B,OAIrCn2F,EAAGulG,aAAa,gBAClBvlG,EAAGqvB,aAAa,4BAA6BrvB,EAAG+uB,aAAa,gBAG/D/uB,EAAGqvB,aAAa,cAAe,aA0iB5B2oE,KAAcqJ,GAAYM,wBAC7BN,GAAYM,sBAAwBp0E,SAASm5C,eAGjB,oBAAnB59C,EAAOm7E,SAChB58D,YAAW,WACT,OAAOve,EAAOm7E,QAAQzN,MAI1B3P,GAAYhoF,EAAWo3F,EAAY,mBAGjCwU,GAA4B,SAASA,EAA0BvhG,GACjE,IAAIstF,EAAQD,IAEZ,GAAIrtF,EAAMr9B,SAAW2qH,EAArB,CAIA,IAAI33F,EAAYs3F,IAChBK,EAAM12F,oBAAoB46F,GAAmB+P,GAC7C5rG,EAAUxV,MAAM66F,UAAY,SAG1BqmB,GAAyB,SAAgC1rG,EAAW23F,GAClEkE,IAAqBvB,GAAgB3C,IACvC33F,EAAUxV,MAAM66F,UAAY,SAC5BsS,EAAM32F,iBAAiB66F,GAAmB+P,KAE1C5rG,EAAUxV,MAAM66F,UAAY,QAI5BsmB,GAAqB,SAA4B3rG,EAAWwlG,EAAkBgG,IA5qBrE,WAGX,IAFU,mBAAmB/8H,KAAKq5H,UAAUC,aAAel5H,OAAOg9H,UAAmC,aAAvB/D,UAAU79G,UAA2B69G,UAAUgE,eAAiB,KAElIzjB,EAAS35D,SAASs2B,KAAMoyC,EAAY6R,QAAS,CACvD,IAAI9qF,EAASuQ,SAASs2B,KAAKo+B,UAC3B10D,SAASs2B,KAAKx6D,MAAMyF,IAAM,GAAGtI,QAAiB,EAAVw2B,EAAa,MACjDwpE,EAASj5D,SAASs2B,KAAMoyC,EAAY6R,QACpCjB,KACAH,MAqqBFkE,GAEIvG,GAA4C,WAAxBgG,GACtB/D,KAIFj/D,YAAW,WACTxoC,EAAUojF,UAAY,MAItBqoB,GAAe,SAAsBzrG,EAAW23F,EAAO1tE,GACzD09D,EAAS3nF,EAAWiqB,EAAOyvE,UAAUv7D,UAErCw5D,EAAMntG,MAAM+Y,YAAY,UAAW,IAAK,aACxC0J,GAAK0qF,EAAO,QACZnvD,YAAW,WAETm/C,EAASgQ,EAAO1tE,EAAOyvE,UAAU/B,OAEjCA,EAAMntG,MAAM2vG,eAAe,aApFN,IAuFvBxS,EAAS,CAACj5D,SAAS80C,gBAAiB90C,SAASs2B,MAAOoyC,EAAY+R,OAE5Dl/E,EAAO05E,YAAc15E,EAAOkU,WAAalU,EAAOmxE,OAClDzT,EAAS,CAACj5D,SAAS80C,gBAAiB90C,SAASs2B,MAAOoyC,EAAY,iBAmChE4U,GAAmB,SAA0B9kH,GAC/C,OAAOA,EAAM+gF,QAAU,EAAI,GAGzBgkC,GAAgB,SAAuB/kH,GACzC,OAAOA,EAAM+gF,QAAU/gF,EAAMxc,MAAQ,MAGnCwhI,GAAe,SAAsBhlH,GACvC,OAAOA,EAAMilH,MAAMj/H,OAA4C,OAAnCga,EAAMgpC,aAAa,YAAuBhpC,EAAMilH,MAAQjlH,EAAMilH,MAAM,GAAK,MAGnGC,GAAqB,SAA4Bv/H,EAAUo9C,GAC7D,IAAI0tE,EAAQD,IAER2U,EAAsB,SAA6BvH,GACrD,OAAOwH,GAAqBriF,EAAO/iC,OAAOywG,EAAO4U,GAAmBzH,GAAe76E,IAGjF6sE,EAAe7sE,EAAO66E,eAAiB7N,EAAUhtE,EAAO66E,eAC1D1C,GAAYlK,KACZlB,EAAU/sE,EAAO66E,cAAct2F,MAAK,SAAUs2F,GAC5Cj4H,EAAS06H,cACT8E,EAAoBvH,OAEoB,WAAjCp4H,EAAQu9C,EAAO66E,cACxBuH,EAAoBpiF,EAAO66E,cAE3Bn8D,EAAM,yEAAyEhhD,OAAOjb,EAAQu9C,EAAO66E,iBAIrG0H,GAAmB,SAA0B3/H,EAAUo9C,GACzD,IAAI/iC,EAAQra,EAASgtH,WACrBzsF,GAAKlmB,GACL8vG,EAAU/sE,EAAOi1E,YAAY1wF,MAAK,SAAU0wF,GAC1Ch4G,EAAMxc,MAAyB,WAAjBu/C,EAAO/iC,MAAqBjW,WAAWiuH,IAAe,EAAI,GAAGv3G,OAAOu3G,GAClFjyF,GAAK/lB,GACLA,EAAMi1F,QACNtvG,EAAS06H,iBACRz1B,OAAM,SAAU/jG,GACjB46D,EAAM,gCAAgChhD,OAAO5Z,IAC7CmZ,EAAMxc,MAAQ,GACduiC,GAAK/lB,GACLA,EAAMi1F,QACNtvG,EAAS06H,kBAIT+E,GAAuB,CACzBtuC,OAAQ,SAAgB25B,EAAOmN,EAAc76E,GAC3C,IAAI+zC,EAAS+7B,GAAgBpC,EAAOP,EAAYp5B,QAE5CyuC,EAAe,SAAsBnzG,EAAQozG,EAAa3B,GAC5D,IAAIj9F,EAAS4gB,SAAS6sC,cAAc,UACpCztD,EAAOpjC,MAAQqgI,EACfxR,EAAazrF,EAAQ4+F,GACrB5+F,EAAOo6D,SAAWykC,GAAW5B,EAAa9gF,EAAOi1E,YACjD5lG,EAAOkiE,YAAY1tD,IAGrBg3F,EAAaxvG,SAAQ,SAAUs3G,GAC7B,IAAI7B,EAAc6B,EAAY,GAC1BF,EAAcE,EAAY,GAK9B,GAAIjhI,MAAMC,QAAQ8gI,GAAc,CAE9B,IAAIp2B,EAAW5nD,SAAS6sC,cAAc,YACtC+a,EAAS3/D,MAAQo0F,EACjBz0B,EAASt/D,UAAW,EAEpBgnD,EAAOxC,YAAY8a,GACnBo2B,EAAYp3G,SAAQ,SAAUprB,GAC5B,OAAOuiI,EAAan2B,EAAUpsG,EAAE,GAAIA,EAAE,YAIxCuiI,EAAazuC,EAAQ0uC,EAAa3B,MAGtC/sC,EAAOme,SAET9T,MAAO,SAAesvB,EAAOmN,EAAc76E,GACzC,IAAIo+C,EAAQ0xB,GAAgBpC,EAAOP,EAAY/uB,OAC/Cy8B,EAAaxvG,SAAQ,SAAUs3G,GAC7B,IAAIjmB,EAAaimB,EAAY,GACzBC,EAAaD,EAAY,GACzBE,EAAap+E,SAAS6sC,cAAc,SACpCwxC,EAAoBr+E,SAAS6sC,cAAc,SAC/CuxC,EAAWz8H,KAAO,QAClBy8H,EAAW9iI,KAAOotH,EAAY/uB,MAC9BykC,EAAWpiI,MAAQi8G,EAEfgmB,GAAWhmB,EAAY18D,EAAOi1E,cAChC4N,EAAW7kC,SAAU,GAGvB,IAAItxD,EAAQ+X,SAAS6sC,cAAc,QACnCg+B,EAAa5iF,EAAOk2F,GACpBl2F,EAAMktD,UAAYuzB,EAAYzgF,MAC9Bo2F,EAAkBvxC,YAAYsxC,GAC9BC,EAAkBvxC,YAAY7kD,GAC9B0xD,EAAM7M,YAAYuxC,MAEpB,IAAIhD,EAAS1hC,EAAMjG,iBAAiB,SAEhC2nC,EAAO78H,QACT68H,EAAO,GAAG5tB,UASZowB,GAAqB,SAASA,EAAmBzH,GACnD,IAAIxmG,EAAS,GA0Bb,MAxBmB,qBAARsD,KAAuBkjG,aAAwBljG,IACxDkjG,EAAaxvG,SAAQ,SAAU5qB,EAAOM,GACpC,IAAIgiI,EAAiBtiI,EAEW,WAA5BgC,EAAQsgI,KAEVA,EAAiBT,EAAmBS,IAGtC1uG,EAAOtR,KAAK,CAAChiB,EAAKgiI,OAGpB7iI,OAAOkH,KAAKyzH,GAAcxvG,SAAQ,SAAUtqB,GAC1C,IAAIgiI,EAAiBlI,EAAa95H,GAEF,WAA5B0B,EAAQsgI,KAEVA,EAAiBT,EAAmBS,IAGtC1uG,EAAOtR,KAAK,CAAChiB,EAAKgiI,OAIf1uG,GAGLquG,GAAa,SAAoB5B,EAAa7L,GAChD,OAAOA,GAAcA,EAAW3wH,aAAew8H,EAAYx8H,YA4BzD0+H,GAA+B,SAAsCpgI,EAAU8wH,EAAattH,GAG9F,IAAI6uH,EA3Mc,SAAuBryH,EAAU8wH,GACnD,IAAIz2G,EAAQra,EAASgtH,WAErB,IAAK3yG,EACH,OAAO,KAGT,OAAQy2G,EAAYz2G,OAClB,IAAK,WACH,OAAO8kH,GAAiB9kH,GAE1B,IAAK,QACH,OAAO+kH,GAAc/kH,GAEvB,IAAK,OACH,OAAOglH,GAAahlH,GAEtB,QACE,OAAOy2G,EAAYoH,cAAgB79G,EAAMxc,MAAMspH,OAAS9sG,EAAMxc,OAyLjDwiI,CAAcrgI,EAAU8wH,GAErCA,EAAYqH,eACdmI,GAAqBtgI,EAAU8wH,EAAauB,EAAY7uH,GAC9CxD,EAASgtH,WAAWuT,gBAGZ,SAAT/8H,EACTioH,GAAKzrH,EAAU8wH,EAAauB,GAE5B9G,GAAQvrH,EAAU8wH,EAAauB,IAL/BryH,EAASwgI,gBACTxgI,EAASygI,sBAAsB3P,EAAYuH,qBAQ3CiI,GAAuB,SAA8BtgI,EAAU8wH,EAAauB,EAAY7uH,GAG1FxD,EAAS0gI,eACehhG,QAAQnY,UAAUoa,MAAK,WAC7C,OAAOwoF,EAAU2G,EAAYqH,eAAe9F,EAAYvB,EAAYuH,uBAEpD12F,MAAK,SAAU02F,GAC/Br4H,EAASwgI,gBACTxgI,EAAS2gI,cAELtI,EACFr4H,EAASygI,sBAAsBpI,GACb,SAAT70H,EACTioH,GAAKzrH,EAAU8wH,EAAauB,GAE5B9G,GAAQvrH,EAAU8wH,EAAauB,OAKjC5G,GAAO,SAAczrH,EAAU8wH,EAAajzH,GAC1CizH,EAAYkH,kBACdzC,GAAY/J,KAGVsF,EAAYuG,QACO33F,QAAQnY,UAAUoa,MAAK,WAC1C,OAAOwoF,EAAU2G,EAAYuG,QAAQx5H,EAAOizH,EAAYuH,uBAE3C12F,MAAK,SAAUi/F,IACP,IAAjBA,EACF5gI,EAAS06H,cAET16H,EAAS6gI,WAAW,CAClBlE,UAAU,EACV9+H,MAA+B,qBAAjB+iI,EAA+B/iI,EAAQ+iI,OAK3D5gI,EAAS6gI,WAAW,CAClBlE,UAAU,EACV9+H,MAAOA,KAKTijI,GAAc,SAAqB9gI,EAAUnC,GAC/CmC,EAAS6gI,WAAW,CAClBnE,aAAa,EACb7+H,MAAOA,KAIP0tH,GAAU,SAAiBvrH,EAAU8wH,EAAajzH,GAChDizH,EAAYiH,qBACdxC,KAGEzE,EAAYsG,YACdp3H,EAASiuH,yBACevuF,QAAQnY,UAAUoa,MAAK,WAC7C,OAAOwoF,EAAU2G,EAAYsG,WAAWv5H,EAAOizH,EAAYuH,uBAE3C12F,MAAK,SAAUo/F,GAC3B3U,GAAUhB,OAA+C,IAApB2V,EACvC/gI,EAAS06H,cAEToG,GAAY9gI,EAAqC,qBAApB+gI,EAAkCljI,EAAQkjI,OAI3ED,GAAY9gI,EAAUnC,IA2BtBmjI,GAAW,SAAkBlQ,EAAa9rH,EAAOojD,GACnD,IAAI64E,EAAoBjV,IAExB,GAAIiV,EAAkB5gI,OASpB,OARA2E,GAAgBojD,KAEF64E,EAAkB5gI,OAC9B2E,EAAQ,GACY,IAAXA,IACTA,EAAQi8H,EAAkB5gI,OAAS,GAG9B4gI,EAAkBj8H,GAAOsqG,QAIlCub,IAAWvb,SAGT4xB,GAAsB,CAAC,aAAc,aACrCC,GAA0B,CAAC,YAAa,WAExClF,GAAiB,SAAwBj8H,EAAUe,EAAGqgI,GACxD,IAAItQ,EAAcD,GAAaC,YAAYrzH,IAAIuC,GAE1C8wH,IAIDA,EAAYoG,wBACdn2H,EAAEkqG,kBAIU,UAAVlqG,EAAE5C,IACJkjI,GAAYrhI,EAAUe,EAAG+vH,GACN,QAAV/vH,EAAE5C,IACXmjI,GAAUvgI,EAAG+vH,GACJ,GAAGh2G,OAAOomH,GAAqBC,IAAyBn3G,SAASjpB,EAAE5C,KAC5EojI,GAAaxgI,EAAE5C,KACI,WAAV4C,EAAE5C,KACXqjI,GAAUzgI,EAAG+vH,EAAasQ,KAI1BC,GAAc,SAAqBrhI,EAAUe,EAAG+vH,GAElD,IAAI/vH,EAAE0gI,aAIF1gI,EAAEZ,QAAUH,EAASgtH,YAAcjsH,EAAEZ,OAAOuhI,YAAc1hI,EAASgtH,WAAW0U,UAAW,CAC3F,GAAI,CAAC,WAAY,QAAQ13G,SAAS8mG,EAAYz2G,OAC5C,OAGFi7G,KACAv0H,EAAEoqG,mBAIFm2B,GAAY,SAAmBvgI,EAAG+vH,GAKpC,IAJA,IAAIxC,EAAgBvtH,EAAEZ,OAClB8gI,EAAoBjV,IACpB2V,GAAY,EAEP/kI,EAAI,EAAGA,EAAIqkI,EAAkB5gI,OAAQzD,IAC5C,GAAI0xH,IAAkB2S,EAAkBrkI,GAAI,CAC1C+kI,EAAW/kI,EACX,MAICmE,EAAE2tG,SAKLsyB,GAASlQ,EAAa6Q,GAAW,GAHjCX,GAASlQ,EAAa6Q,EAAU,GAMlC5gI,EAAEkqG,kBACFlqG,EAAEoqG,kBAGAo2B,GAAe,SAAsBpjI,GAKvC,GAAK,CAJektH,IACHG,IACEI,KAE4B5hG,SAAS63B,SAASm5C,eAAjE,CAIA,IAAIiF,EAAUihC,GAAoBl3G,SAAS7rB,GAAO,qBAAuB,yBACrEyjI,EAAgB//E,SAASm5C,cAAciF,GAEvC2hC,GACFA,EAActyB,UAIdkyB,GAAY,SAAmBzgI,EAAG+vH,EAAasQ,GAC7CpX,EAAe8G,EAAYkG,kBAC7Bj2H,EAAEoqG,iBACFi2B,EAAY9X,EAAcE,OAmB1BqY,GAAmB,SAA0B7hI,EAAU+wH,EAAUqQ,GAEnErQ,EAASjG,MAAMgX,QAAU,WACvB,IAAIhR,EAAcD,GAAaC,YAAYrzH,IAAIuC,GAE3C8wH,EAAYrB,mBAAqBqB,EAAYpB,gBAAkBoB,EAAYnB,kBAAoBmB,EAAYmE,iBAAmBnE,EAAYhZ,OAASgZ,EAAYz2G,OAInK+mH,EAAY9X,EAAcC,SAI1BwY,IAAqB,EAErBC,GAAuB,SAA8BjR,GACvDA,EAASjG,MAAMmX,YAAc,WAC3BlR,EAAS59F,UAAU+uG,UAAY,SAAUnhI,GACvCgwH,EAAS59F,UAAU+uG,eAAYx0H,EAG3B3M,EAAEZ,SAAW4wH,EAAS59F,YACxB4uG,IAAqB,MAMzBI,GAA2B,SAAkCpR,GAC/DA,EAAS59F,UAAU8uG,YAAc,WAC/BlR,EAASjG,MAAMoX,UAAY,SAAUnhI,GACnCgwH,EAASjG,MAAMoX,eAAYx0H,GAEvB3M,EAAEZ,SAAW4wH,EAASjG,OAASiG,EAASjG,MAAMl5B,SAAS7wF,EAAEZ,WAC3D4hI,IAAqB,MAMzBK,GAAmB,SAA0BpiI,EAAU+wH,EAAUqQ,GACnErQ,EAAS59F,UAAU2uG,QAAU,SAAU/gI,GACrC,IAAI+vH,EAAcD,GAAaC,YAAYrzH,IAAIuC,GAE3C+hI,GACFA,IAAqB,EAInBhhI,EAAEZ,SAAW4wH,EAAS59F,WAAa62F,EAAe8G,EAAYiG,oBAChEqK,EAAY9X,EAAch4D,YA+B5B+wE,GAAgB,SAAuBC,EAAYvI,GACrD,IAAIwI,EA7xBkB,SAA2BnlF,GACjD,IAAIu5E,EAAsC,kBAApBv5E,EAAOu5E,SAAwB90E,SAASsmE,cAAc/qE,EAAOu5E,UAAYv5E,EAAOu5E,SAEtG,IAAKA,EACH,MAAO,GAGT,IAAIiH,EAAkBjH,EAAS91B,QAG/B,OAFAy9B,GAAwBV,GACXtgI,OAAO6c,OAAOwjH,GAAcC,GAAkBE,GAAeF,GAAkBG,GAAaH,GAAkBI,GAAYJ,GAAkBK,GAAaL,GAAkBQ,GAAoBR,EAAiBF,KAoxBxM8E,CAAkBF,GACnCllF,EAAS9/C,OAAO6c,OAAO,GAAIy8G,GAAemD,EAAawI,EAAgBD,GAI3E,OAFAllF,EAAOyvE,UAAYvvH,OAAO6c,OAAO,GAAIy8G,GAAc/J,UAAWzvE,EAAOyvE,WACrEzvE,EAAOy5E,UAAYv5H,OAAO6c,OAAO,GAAIy8G,GAAcC,UAAWz5E,EAAOy5E,WAC9Dz5E,GAGLqlF,GAAc,SAAqBziI,EAAU+wH,EAAUD,GACzD,OAAO,IAAIpxF,SAAQ,SAAUnY,GAE3B,IAAI65G,EAAc,SAAqBsB,GACrC1iI,EAAS6gI,WAAW,CAClBjE,aAAa,EACb8F,QAASA,KAIb9G,GAAeC,mBAAmBhhH,IAAI7a,EAAUunB,GAEhDwpG,EAASzB,cAAcwS,QAAU,WAC/B,OAjXyB,SAAkC9hI,EAAU8wH,GACzE9wH,EAAS2iI,iBAEL7R,EAAYz2G,MACd+lH,GAA6BpgI,EAAU8wH,EAAa,WAEpDvF,GAAQvrH,EAAU8wH,GAAa,GA2WtB8R,CAAyB5iI,EAAU8wH,IAG5CC,EAASxB,WAAWuS,QAAU,WAC5B,OA3WsB,SAA+B9hI,EAAU8wH,GACnE9wH,EAAS2iI,iBAEL7R,EAAYsH,uBACdgI,GAA6BpgI,EAAU8wH,EAAa,QAEpDrF,GAAKzrH,EAAU8wH,GAAa,GAqWnB+R,CAAsB7iI,EAAU8wH,IAGzCC,EAASvB,aAAasS,QAAU,WAC9B,OArWwB,SAAiC9hI,EAAUohI,GACvEphI,EAAS2iI,iBACTvB,EAAY9X,EAActrF,QAmWf8kG,CAAwB9iI,EAAUohI,IAG3CrQ,EAASgE,YAAY+M,QAAU,WAC7B,OAAOV,EAAY9X,EAAcC,QAlIhB,SAA0BvpH,EAAU+wH,EAAUqQ,GACjDvQ,GAAaC,YAAYrzH,IAAIuC,GAE/BuuH,MACdsT,GAAiB7hI,EAAU+wH,EAAUqQ,IAIrCY,GAAqBjR,GAErBoR,GAAyBpR,GACzBqR,GAAiBpiI,EAAU+wH,EAAUqQ,IA0HrC2B,CAAiB/iI,EAAU+wH,EAAUqQ,GAzQjB,SAA2BphI,EAAU21H,EAAa7E,EAAasQ,GACjFzL,EAAYqG,eAAiBrG,EAAYwG,sBAC3CxG,EAAYqG,cAAc5nG,oBAAoB,UAAWuhG,EAAYsG,eAAgB,CACnFC,QAASvG,EAAYwB,yBAEvBxB,EAAYwG,qBAAsB,GAG/BrL,EAAYvC,QACfoH,EAAYsG,eAAiB,SAAUl7H,GACrC,OAAOk7H,GAAej8H,EAAUe,EAAGqgI,IAGrCzL,EAAYqG,cAAgBlL,EAAYqG,uBAAyBn1H,OAAS6oH,IAC1E8K,EAAYwB,uBAAyBrG,EAAYqG,uBACjDxB,EAAYqG,cAAc7nG,iBAAiB,UAAWwhG,EAAYsG,eAAgB,CAChFC,QAASvG,EAAYwB,yBAEvBxB,EAAYwG,qBAAsB,GAwPlC6G,CAAkBhjI,EAAU21H,GAAa7E,EAAasQ,GAzjBzB,SAAoCphI,EAAUo9C,GACxD,WAAjBA,EAAO/iC,OAAuC,UAAjB+iC,EAAO/iC,MACtCklH,GAAmBv/H,EAAUo9C,GACpB,CAAC,OAAQ,QAAS,SAAU,MAAO,YAAYpzB,SAASozB,EAAO/iC,SAAW4vG,EAAe7sE,EAAOi1E,aAAejI,EAAUhtE,EAAOi1E,eACzIkD,GAAYlK,KACZsU,GAAiB3/H,EAAUo9C,IAqjB3B6lF,CAA2BjjI,EAAU8wH,GACrC4N,GAAU5N,GACVoS,GAAWvN,GAAa7E,EAAasQ,GACrC+B,GAAUpS,EAAUD,GAEpBn1D,YAAW,WACTo1D,EAAS59F,UAAUojF,UAAY,SAKjC6sB,GAAmB,SAA0BpjI,GAC/C,IAAI+wH,EAAW,CACbjG,MAAOD,IACP13F,UAAWs3F,IACXa,QAASO,IACTyD,cAAejE,IACfkE,WAAY/D,IACZgE,aAAc5D,IACdD,OAAQD,IACRqJ,YAAahJ,IACbsM,kBAAmBjN,IACnByI,cAAe1I,KAGjB,OADA0F,GAAaE,SAASl2G,IAAI7a,EAAU+wH,GAC7BA,GAGLmS,GAAa,SAAoBG,EAAgBvS,EAAasQ,GAChE,IAAIvT,EAAmB/B,IACvBvrF,GAAKstF,GAEDiD,EAAYhZ,QACdurB,EAAezoE,QAAU,IAAIuiE,IAAM,WACjCiE,EAAY,gBACLiC,EAAezoE,UACrBk2D,EAAYhZ,OAEXgZ,EAAYjD,mBACdztF,GAAKytF,GACLlyD,YAAW,WACL0nE,EAAezoE,SAAWyoE,EAAezoE,QAAQ/9B,SAEnD+wF,GAAwBkD,EAAYhZ,aAO1CqrB,GAAY,SAAmBpS,EAAUD,GAC3C,IAAIA,EAAYvC,MAIhB,OAAKvE,EAAe8G,EAAYmG,oBAI3BqM,GAAYvS,EAAUD,IACzBkQ,GAASlQ,GAAc,EAAG,IAJnByS,MAQPD,GAAc,SAAqBvS,EAAUD,GAC/C,OAAIA,EAAY+G,WAAazL,GAAU2E,EAASxB,aAC9CwB,EAASxB,WAAWjgB,SACb,GAGLwhB,EAAYgH,aAAe1L,GAAU2E,EAASvB,eAChDuB,EAASvB,aAAalgB,SACf,MAGLwhB,EAAY8G,eAAgBxL,GAAU2E,EAASzB,kBACjDyB,EAASzB,cAAchgB,SAChB,IAMPi0B,GAAoB,WAClB1hF,SAASm5C,eAAwD,oBAAhCn5C,SAASm5C,cAAcuU,MAC1D1tD,SAASm5C,cAAcuU,QAgEvBi0B,GAAc,SAAqBxjI,UAE9BA,EAASo9C,cAETu4E,GAAYsG,sBACZtG,GAAYqG,cAEnByH,GAAc5S,IACd4S,GAAc7H,KAGZ6H,GAAgB,SAAuB/jI,GACzC,IAAK,IAAI9C,KAAK8C,EACZA,EAAI9C,GAAK,IAAI26E,SAIbmsD,GAA+BpmI,OAAO4tC,OAAO,CAC/CwvF,YAAaA,GACbiJ,eAAgBjJ,GAChB1N,SAj9CF,SAAoBhtH,GAClB,IAAI8wH,EAAcD,GAAaC,YAAYrzH,IAAIuC,GAAYya,MACvDs2G,EAAWF,GAAaE,SAAStzH,IAAIuC,GAAYya,MAErD,OAAKs2G,EAIE/D,EAAS+D,EAASjG,MAAOgG,EAAYz2G,OAHnC,MA68CTkvG,MAAOA,GACPsX,WAAYtX,GACZqa,WAAYra,GACZsa,WAAYta,GACZiX,cAvqCF,WACExD,GAAmBviH,KAAM,CAAC,gBAAiB,aAAc,iBAAiB,IAuqC1EkoH,eApqCF,WACE3F,GAAmBviH,KAAM,CAAC,gBAAiB,aAAc,iBAAiB,IAoqC1EkmH,YAjqCF,WACE,OAAO1D,GAAiBxiH,KAAKuyG,YAAY,IAiqCzC0T,aA9pCF,WACE,OAAOzD,GAAiBxiH,KAAKuyG,YAAY,IA8pCzCyT,sBA3pCF,SAA+B3kE,GAC7B,IAAIi1D,EAAWF,GAAaE,SAAStzH,IAAIgd,MACrC2iC,EAASyzE,GAAaC,YAAYrzH,IAAIgd,MAC1CiyG,EAAaqE,EAASsH,kBAAmBv8D,GACzCi1D,EAASsH,kBAAkBrhC,UAAYuzB,EAAY,sBAE/CntE,EAAO2vE,aAAe3vE,EAAO2vE,YAAYsL,mBAC3Cvd,EAASiW,EAASsH,kBAAmBj7E,EAAO2vE,YAAYsL,mBAG1Dj4F,GAAK2wF,EAASsH,mBACd,IAAIh+G,EAAQI,KAAKuyG,WAEb3yG,IACFA,EAAMspC,aAAa,gBAAgB,GACnCtpC,EAAMspC,aAAa,mBAAoB4mE,EAAY,uBACnD4C,EAAW9yG,GACXygG,EAASzgG,EAAOkwG,EAAYuZ,cA2oC9B7V,uBAtoCF,WACE,IAAI8C,EAAWF,GAAaE,SAAStzH,IAAIgd,MAErCs2G,EAASsH,mBACX93F,GAAKwwF,EAASsH,mBAGhB,IAAIh+G,EAAQI,KAAKuyG,WAEb3yG,IACFA,EAAMqpC,gBAAgB,gBACtBrpC,EAAMqpC,gBAAgB,oBACtBy3D,GAAY9gG,EAAOkwG,EAAYuZ,cA2nCjC3Y,iBAvnCF,WAEE,OADe0F,GAAaE,SAAStzH,IAAIgd,MACzBo5G,eAsnChBkQ,MAtPF,SAAezB,GACb,IAAIvI,EAAcp3H,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,GACtF02H,GAAsB/7H,OAAO6c,OAAO,GAAI4/G,EAAauI,IAEjD3M,GAAY8H,iBACd9H,GAAY8H,gBAAgBr+D,WAG9Bu2D,GAAY8H,gBAAkBhjH,KAC9B,IAAIq2G,EAAcuR,GAAcC,EAAYvI,GAC5CuD,GAAcxM,GACdxzH,OAAO4tC,OAAO4lF,GAEV6E,GAAY/6D,UACd+6D,GAAY/6D,QAAQhjB,cACb+9E,GAAY/6D,SAIrBc,aAAai6D,GAAYK,qBACzB,IAAIjF,EAAWqS,GAAiB3oH,MAGhC,OAFA+hD,GAAO/hD,KAAMq2G,GACbD,GAAaC,YAAYj2G,IAAIJ,KAAMq2G,GAC5B2R,GAAYhoH,KAAMs2G,EAAUD,IAgOnClvF,OAzFF,SAAgBwb,GACd,IAAI0tE,EAAQD,IACRiG,EAAcD,GAAaC,YAAYrzH,IAAIgd,MAE/C,IAAKqwG,GAAStP,EAASsP,EAAOgG,EAAY+F,UAAU/L,OAClD,OAAOzjG,EAAK,8IAGd,IAAI28G,EAAuB,GAE3B1mI,OAAOkH,KAAK44C,GAAQ30B,SAAQ,SAAU68D,GAChC4oC,GAAKqL,qBAAqBj0C,GAC5B0+C,EAAqB1+C,GAASloC,EAAOkoC,GAErCj+D,EAAK,iCAAkCvM,OAAOwqE,EAAO,iRAGzD,IAAI2+C,EAAgB3mI,OAAO6c,OAAO,GAAI22G,EAAakT,GACnDxnE,GAAO/hD,KAAMwpH,GACbpT,GAAaC,YAAYj2G,IAAIJ,KAAMwpH,GACnC3mI,OAAO+hB,iBAAiB5E,KAAM,CAC5B2iC,OAAQ,CACNv/C,MAAOP,OAAO6c,OAAO,GAAIM,KAAK2iC,OAAQA,GACtCx9C,UAAU,EACVpC,YAAY,MAkEhB4hE,SA7DF,WACE,IAAI2xD,EAAWF,GAAaE,SAAStzH,IAAIgd,MACrCq2G,EAAcD,GAAaC,YAAYrzH,IAAIgd,MAE1Cq2G,IAKDC,EAASjG,OAAS6K,GAAYoH,iCAChCpH,GAAYoH,wCACLpH,GAAYoH,gCAIjBpH,GAAYuO,qBACdxoE,aAAai6D,GAAYuO,2BAClBvO,GAAYuO,oBAGiB,oBAA3BpT,EAAY4H,YACrB5H,EAAY4H,aAGd8K,GAAY/oH,UAyCV0pH,GAA0B,WAC5B,SAASA,IAIP,GAHApkI,EAAgB0a,KAAM0pH,GAGA,qBAAXniI,OAAX,CAIAy7H,GAAkBhjH,KAElB,IAAK,IAAI0sB,EAAQxkC,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAMqoC,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF5kC,EAAK4kC,GAASzkC,UAAUykC,GAG1B,IAAIg9F,EAAc9mI,OAAO4tC,OAAOzwB,KAAK3a,YAAY05H,aAAah3H,IAC9DlF,OAAO+hB,iBAAiB5E,KAAM,CAC5B2iC,OAAQ,CACNv/C,MAAOumI,EACPxkI,UAAU,EACVpC,YAAY,EACZmC,cAAc,KAIlB,IAAI0hG,EAAU5mF,KAAKspH,MAAMtpH,KAAK2iC,QAE9ByzE,GAAaxvB,QAAQxmF,IAAIJ,KAAM4mF,IAkBjC,OAdA9gG,EAAa4jI,EAAY,CAAC,CACxBhmI,IAAK,OACLN,MAAO,SAAc0lG,GAEnB,OADcstB,GAAaxvB,QAAQ5jG,IAAIgd,MACxBknB,KAAK4hE,KAErB,CACDplG,IAAK,UACLN,MAAO,SAAkBwmI,GAEvB,OADcxT,GAAaxvB,QAAQ5jG,IAAIgd,MACxB6pH,QAAQD,OAIpBF,EA7CqB,GAiD9B7mI,OAAO6c,OAAOgqH,GAAW3lI,UAAWklI,IAEpCpmI,OAAO6c,OAAOgqH,GAAY7K,IAE1Bh8H,OAAOkH,KAAKk/H,IAAiBj7G,SAAQ,SAAUtqB,GAC7CgmI,GAAWhmI,GAAO,WAEd,IAAIomI,EADN,GAAI9G,GAGF,OAAQ8G,EAAmB9G,IAAiBt/H,GAAK2E,MAAMyhI,EAAkB5hI,eAI/EwhI,GAAW7a,cAAgBA,EAC3B6a,GAAW3gE,QAAU,UACrB,IAAI0qD,GAAOiW,GAEX,OADAjW,GAAKsW,QAAUtW,GACRA,IA9uG+D,WAAtBruH,EAAQnD,IAA4C,qBAAXC,EAAyBA,EAAOD,QAAU6wF,SAAuE,2BAAd,KAAc,kCAivGxL,qBAAT9yE,MAAwBA,KAAKgqH,cACtChqH,KAAKiqH,KAAOjqH,KAAKkqH,WAAalqH,KAAKyzG,KAAOzzG,KAAK0pH,WAAa1pH,KAAKgqH,aAGnE,oBAAsB5iF,UAAY,SAAU9gD,EAAGjD,GAC7C,IAAIO,EAAI0C,EAAE2tF,cAAc,SACxB,GAAI3tF,EAAEm0F,qBAAqB,QAAQ,GAAGvG,YAAYtwF,GAAIA,EAAEumI,WAAYvmI,EAAEumI,WAAWz6F,WAAa9rC,EAAEumI,WAAW/xB,QAAU/0G,QAAQ,IAC3HO,EAAEm5F,UAAY15F,EACd,MAAOiD,GACP1C,EAAE2zH,UAAYl0H,GALgB,CAOhC+jD,SAAU,+osB,gBC7xGZ,SAOA,SAAW7/C,EAAQurF,GACjB,aAQE,EAAO,CAAC,KAAyB,KAAqB,MAAwB,YAE7E,KAFwF,EAAF,SAAYs3C,EAAW3c,EAAS4c,EAAOC,GAC5H,OASK,SAAiB/iI,EAAQ6iI,EAAW3c,EAAS4c,EAAOC,GAG7D,IAAI39G,EAAUplB,EAAOolB,QACjB0nE,EAAS9sF,EAAO8sF,OAEhB1rF,EAAO,aAIP4hI,EAAO,EAEP5qE,EAAY,GAOhB,SAAS6qE,EAAS7zG,EAAS3rB,GACzB,IAAIy/H,EAAeJ,EAAMK,gBAAgB/zG,GAEzC,GAAK8zG,EAAL,CAQAzqH,KAAK2W,QAAU8zG,EAEXp2C,IACFr0E,KAAK2qH,SAAWt2C,EAAOr0E,KAAK2W,UAI9B3W,KAAKhV,QAAUq/H,EAAMn1C,OAAO,GAAIl1E,KAAK3a,YAAY4c,UACjDjC,KAAKwmB,OAAOx7B,GAEZ,IAAIpC,IAAO2hI,EACXvqH,KAAK2W,QAAQi0G,aAAehiI,EAE5B+2D,EAAU/2D,GAAMoX,KAGhBA,KAAK6qH,UAEc7qH,KAAK8qH,WAAW,eAGjC9qH,KAAK4iC,cA5BDj2B,GACFA,EAAQ00C,MAAM,mBAAqBrhD,KAAK3a,YAAY22F,UAAY,MAAQyuC,GAAgB9zG,IAgC9F6zG,EAASxuC,UAAY,WACrBwuC,EAASF,KAAOA,EAEhBE,EAASvoH,SAAW,CAClB0W,eAAgB,CACd4nB,SAAU,YAEZwqF,YAAY,EACZC,YAAY,EACZC,WAAW,EACXvlG,QAAQ,EACRwlG,iBAAiB,EAEjBC,mBAAoB,OACpBC,YAAa,CACX7qD,QAAS,EACT8qD,UAAW,gBAEbC,aAAc,CACZ/qD,QAAS,EACT8qD,UAAW,aAGf,IAAI5rH,EAAQ+qH,EAASzmI,UAkzBrB,SAASwnI,EAAS7c,GAChB,SAAS8c,IACP9c,EAAOrmH,MAAM2X,KAAM9X,WAKrB,OAFAsjI,EAASznI,UAAYlB,OAAOY,OAAOirH,EAAO3qH,WAC1CynI,EAASznI,UAAUsB,YAAcmmI,EAC1BA,EAvzBTnB,EAAMn1C,OAAOz1E,EAAO2qH,EAAUrmI,WAM9B0b,EAAM+mB,OAAS,SAAU3c,GACvBwgH,EAAMn1C,OAAOl1E,KAAKhV,QAAS6e,IAO7BpK,EAAMqrH,WAAa,SAAUtkG,GAC3B,IAAIilG,EAAYzrH,KAAK3a,YAAYqmI,cAAcllG,GAC/C,OAAOilG,QAAyCx4H,IAA5B+M,KAAKhV,QAAQygI,GAA2BzrH,KAAKhV,QAAQygI,GAAazrH,KAAKhV,QAAQw7B,IAGrGgkG,EAASkB,cAAgB,CAEvBX,WAAY,eACZl3F,WAAY,eACZ83F,cAAe,kBACfX,WAAY,eACZC,UAAW,cACXvlG,OAAQ,gBACRwlG,gBAAiB,uBAGnBzrH,EAAMorH,QAAU,WAEd7qH,KAAK4rH,cAEL5rH,KAAK6rH,OAAS,GACd7rH,KAAK8rH,MAAM9rH,KAAKhV,QAAQ8gI,OAExBzB,EAAMn1C,OAAOl1E,KAAK2W,QAAQzT,MAAOlD,KAAKhV,QAAQ2tB,gBAE1B3Y,KAAK8qH,WAAW,WAGlC9qH,KAAK+rH,cAKTtsH,EAAMmsH,YAAc,WAElB5rH,KAAKkO,MAAQlO,KAAKgsH,SAAShsH,KAAK2W,QAAQi8D,WAS1CnzE,EAAMusH,SAAW,SAAUr3C,GAOzB,IANA,IAAIs3C,EAAYjsH,KAAKksH,wBAAwBv3C,GAEzC21C,EAAOtqH,KAAK3a,YAAYilI,KAExBp8G,EAAQ,GAEH/rB,EAAI,EAAGA,EAAI8pI,EAAUrmI,OAAQzD,IAAK,CACzC,IACIkgC,EAAO,IAAIioG,EADJ2B,EAAU9pI,GACK6d,MAC1BkO,EAAMxI,KAAK2c,GAGb,OAAOnU,GASTzO,EAAMysH,wBAA0B,SAAUv3C,GACxC,OAAO01C,EAAM8B,mBAAmBx3C,EAAO30E,KAAKhV,QAAQohI,eAQtD3sH,EAAM4sH,gBAAkB,WACtB,OAAOrsH,KAAKkO,MAAMxjB,KAAI,SAAU23B,GAC9B,OAAOA,EAAK1L,YAShBlX,EAAMmjC,OAAS,WACb5iC,KAAKssH,eAELtsH,KAAKusH,gBAGL,IAAIZ,EAAgB3rH,KAAK8qH,WAAW,iBAEhC0B,OAA8Bv5H,IAAlB04H,EAA8BA,GAAiB3rH,KAAKysH,gBACpEzsH,KAAK0sH,YAAY1sH,KAAKkO,MAAOs+G,GAE7BxsH,KAAKysH,iBAAkB,GAIzBhtH,EAAM27C,MAAQ37C,EAAMmjC,OAKpBnjC,EAAM6sH,aAAe,WACnBtsH,KAAKytG,WAGPhuG,EAAMguG,QAAU,WACdztG,KAAKiD,KAAOwqG,EAAQztG,KAAK2W,UAc3BlX,EAAMktH,gBAAkB,SAAUhf,EAAa1qG,GAC7C,IACI4xE,EADAruD,EAASxmB,KAAKhV,QAAQ2iH,GAGrBnnF,GAKkB,iBAAVA,EACTquD,EAAO70E,KAAK2W,QAAQ+2F,cAAclnF,GACzBA,aAAkB4tF,cAC3Bv/B,EAAOruD,GAITxmB,KAAK2tG,GAAe94B,EAAO44B,EAAQ54B,GAAM5xE,GAAQujB,GAVjDxmB,KAAK2tG,GAAe,GAmBxBluG,EAAMitH,YAAc,SAAUx+G,EAAOs+G,GACnCt+G,EAAQlO,KAAK4sH,mBAAmB1+G,GAEhClO,KAAK6sH,aAAa3+G,EAAOs+G,GAEzBxsH,KAAK8sH,eAUPrtH,EAAMmtH,mBAAqB,SAAU1+G,GACnC,OAAOA,EAAM4C,QAAO,SAAUuR,GAC5B,OAAQA,EAAK0qG,cAUjBttH,EAAMotH,aAAe,SAAU3+G,EAAOs+G,GAGpC,GAFAxsH,KAAKgtH,qBAAqB,SAAU9+G,GAE/BA,GAAUA,EAAMtoB,OAArB,CAKA,IAAI0hG,EAAQ,GACZp5E,EAAMF,SAAQ,SAAUqU,GAEtB,IAAIke,EAAWvgC,KAAKitH,uBAAuB5qG,GAG3Cke,EAASle,KAAOA,EAChBke,EAASisF,UAAYA,GAAanqG,EAAK6qG,gBACvC5lC,EAAM5hF,KAAK66B,KACVvgC,MAEHA,KAAKmtH,oBAAoB7lC,KAS3B7nF,EAAMwtH,uBAAyB,WAG7B,MAAO,CACLx/H,EAAG,EACHC,EAAG,IAWP+R,EAAM0tH,oBAAsB,SAAU7lC,GACpCtnF,KAAKotH,gBACL9lC,EAAMt5E,SAAQ,SAAU/oB,EAAK9C,GAC3B6d,KAAKqtH,cAAcpoI,EAAIo9B,KAAMp9B,EAAIwI,EAAGxI,EAAIyI,EAAGzI,EAAIunI,UAAWrqI,KACzD6d,OAILP,EAAM2tH,cAAgB,WACpB,IAAIE,EAAUttH,KAAKhV,QAAQsiI,QAE3B,GAAgB,OAAZA,QAAgCr6H,IAAZq6H,EAMxB,OADAttH,KAAKstH,QAAUC,EAAgBD,GACxBttH,KAAKstH,QALVttH,KAAKstH,QAAU,GAgBnB7tH,EAAM4tH,cAAgB,SAAUhrG,EAAM50B,EAAGC,EAAG8+H,EAAWrqI,GACjDqqI,EAEFnqG,EAAKmrG,KAAK//H,EAAGC,IAEb20B,EAAKirG,QAAQnrI,EAAI6d,KAAKstH,SACtBjrG,EAAKva,OAAOra,EAAGC,KASnB+R,EAAMqtH,YAAc,WAClB9sH,KAAKkrH,mBAGPzrH,EAAMyrH,gBAAkB,WAGtB,GAF0BlrH,KAAK8qH,WAAW,mBAE1C,CAIA,IAAI7nH,EAAOjD,KAAKytH,oBAEZxqH,IACFjD,KAAK0tH,qBAAqBzqH,EAAKwC,OAAO,GAEtCzF,KAAK0tH,qBAAqBzqH,EAAK8D,QAAQ,MAW3CtH,EAAMguH,kBAAoB9kI,EAM1B8W,EAAMiuH,qBAAuB,SAAU50B,EAAS60B,GAC9C,QAAgB16H,IAAZ6lG,EAAJ,CAIA,IAAI80B,EAAW5tH,KAAKiD,KAEhB2qH,EAAS/yB,cACX/B,GAAW60B,EAAUC,EAASj/E,YAAci/E,EAASh/E,aAAeg/E,EAASzf,gBAAkByf,EAASxf,iBAAmBwf,EAASl/E,cAAgBk/E,EAASn/E,WAAam/E,EAASn0B,eAAiBm0B,EAASl0B,mBAG/MZ,EAAU3sG,KAAK6B,IAAI8qG,EAAS,GAC5B94F,KAAK2W,QAAQzT,MAAMyqH,EAAU,QAAU,UAAY70B,EAAU,OAS/Dr5F,EAAMutH,qBAAuB,SAAUa,EAAW3/G,GAChD,IAAI6pB,EAAQ/3B,KAEZ,SAASq/C,IACPtnB,EAAM+1F,cAAcD,EAAY,WAAY,KAAM,CAAC3/G,IAGrD,IAAIwO,EAAQxO,EAAMtoB,OAElB,GAAKsoB,GAAUwO,EAAf,CAKA,IAAIqxG,EAAY,EAWhB7/G,EAAMF,SAAQ,SAAUqU,GACtBA,EAAKolE,KAAKomC,EAAWprG,WAhBrB48B,IAMF,SAAS58B,MACPsrG,GAEiBrxG,GACf2iC,MAiBN5/C,EAAMquH,cAAgB,SAAU/kI,EAAMg6B,EAAOh7B,GAE3C,IAAIimI,EAAWjrG,EAAQ,CAACA,GAAO1iB,OAAOtY,GAAQA,EAG9C,GAFAiY,KAAKiuH,UAAUllI,EAAMilI,GAEjB35C,EAIF,GAFAr0E,KAAK2qH,SAAW3qH,KAAK2qH,UAAYt2C,EAAOr0E,KAAK2W,SAEzCoM,EAAO,CAET,IAAImrG,EAAS75C,EAAOuc,MAAM7tE,GAC1BmrG,EAAOnlI,KAAOA,EACdiX,KAAK2qH,SAASh6B,QAAQu9B,EAAQnmI,QAG9BiY,KAAK2qH,SAASh6B,QAAQ5nG,EAAMhB,IAYlC0X,EAAM0uH,OAAS,SAAUt5C,GACvB,IAAIxyD,EAAOriB,KAAKouH,QAAQv5C,GAEpBxyD,IACFA,EAAK0qG,WAAY,IASrBttH,EAAM4uH,SAAW,SAAUx5C,GACzB,IAAIxyD,EAAOriB,KAAKouH,QAAQv5C,GAEpBxyD,UACKA,EAAK0qG,WAShBttH,EAAMqsH,MAAQ,SAAUn3C,IACtBA,EAAQ30E,KAAKsuH,MAAM35C,MAMnB30E,KAAK6rH,OAAS7rH,KAAK6rH,OAAOxrH,OAAOs0E,GAEjCA,EAAM3mE,QAAQhO,KAAKmuH,OAAQnuH,QAQ7BP,EAAM8uH,QAAU,SAAU55C,IACxBA,EAAQ30E,KAAKsuH,MAAM35C,KAMnBA,EAAM3mE,SAAQ,SAAU6mE,GAEtBw1C,EAAMmE,WAAWxuH,KAAK6rH,OAAQh3C,GAC9B70E,KAAKquH,SAASx5C,KACb70E,OASLP,EAAM6uH,MAAQ,SAAU35C,GACtB,GAAKA,EAUL,MALoB,iBAATA,IACTA,EAAQ30E,KAAK2W,QAAQmkE,iBAAiBnG,IAGxCA,EAAQ01C,EAAMv0C,UAAUnB,IAI1Bl1E,EAAM8sH,cAAgB,WACfvsH,KAAK6rH,QAAW7rH,KAAK6rH,OAAOjmI,SAIjCoa,KAAKyuH,mBAELzuH,KAAK6rH,OAAO79G,QAAQhO,KAAK0uH,aAAc1uH,QAIzCP,EAAMgvH,iBAAmB,WAEvB,IAAIE,EAAe3uH,KAAK2W,QAAQoB,wBAC5B9U,EAAOjD,KAAKiD,KAChBjD,KAAK4uH,cAAgB,CACnBnmH,KAAMkmH,EAAalmH,KAAOxF,EAAK0rC,YAAc1rC,EAAKkrG,gBAClDxlG,IAAKgmH,EAAahmH,IAAM1F,EAAKwrC,WAAaxrC,EAAKw2F,eAC/C/wF,MAAOimH,EAAajmH,OAASzF,EAAK2rC,aAAe3rC,EAAKmrG,kBACtDxlG,OAAQ+lH,EAAa/lH,QAAU3F,EAAKyrC,cAAgBzrC,EAAKy2F,qBAQ7Dj6F,EAAMivH,aAAe/lI,EAOrB8W,EAAMovH,kBAAoB,SAAUh6C,GAClC,IAAI85C,EAAe95C,EAAK98D,wBACpB+2G,EAAW9uH,KAAK4uH,cAChB3rH,EAAOwqG,EAAQ54B,GAOnB,MANa,CACXpsE,KAAMkmH,EAAalmH,KAAOqmH,EAASrmH,KAAOxF,EAAKw1F,WAC/C9vF,IAAKgmH,EAAahmH,IAAMmmH,EAASnmH,IAAM1F,EAAKgrG,UAC5CvlG,MAAOomH,EAASpmH,MAAQimH,EAAajmH,MAAQzF,EAAK8qG,YAClDnlG,OAAQkmH,EAASlmH,OAAS+lH,EAAa/lH,OAAS3F,EAAKirG,eAQzDzuG,EAAMq8D,YAAcuuD,EAAMvuD,YAK1Br8D,EAAMssH,WAAa,WACjBxkI,EAAOmyB,iBAAiB,SAAU1Z,MAClCA,KAAK+uH,eAAgB,GAOvBtvH,EAAMuvH,aAAe,WACnBznI,EAAOoyB,oBAAoB,SAAU3Z,MACrCA,KAAK+uH,eAAgB,GAGvBtvH,EAAMwvH,SAAW,WACfjvH,KAAK0lB,UAGP2kG,EAAM6E,eAAe1E,EAAU,WAAY,KAE3C/qH,EAAMimB,OAAS,WAGR1lB,KAAK+uH,eAAkB/uH,KAAKmvH,qBAIjCnvH,KAAK4iC,UAQPnjC,EAAM0vH,kBAAoB,WACxB,IAAIlsH,EAAOwqG,EAAQztG,KAAK2W,SAIxB,OADe3W,KAAKiD,MAAQA,GACTA,EAAKmqG,aAAeptG,KAAKiD,KAAKmqG,YAUnD3tG,EAAM2vH,SAAW,SAAUz6C,GACzB,IAAIzmE,EAAQlO,KAAKgsH,SAASr3C,GAO1B,OAJIzmE,EAAMtoB,SACRoa,KAAKkO,MAAQlO,KAAKkO,MAAM7N,OAAO6N,IAG1BA,GAQTzO,EAAM4vH,SAAW,SAAU16C,GACzB,IAAIzmE,EAAQlO,KAAKovH,SAASz6C,GAErBzmE,EAAMtoB,SAKXoa,KAAK0sH,YAAYx+G,GAAO,GACxBlO,KAAKsvH,OAAOphH,KAQdzO,EAAM8vH,UAAY,SAAU56C,GAC1B,IAAIzmE,EAAQlO,KAAKgsH,SAASr3C,GAE1B,GAAKzmE,EAAMtoB,OAAX,CAKA,IAAI4pI,EAAgBxvH,KAAKkO,MAAMhnB,MAAM,GACrC8Y,KAAKkO,MAAQA,EAAM7N,OAAOmvH,GAE1BxvH,KAAKssH,eAELtsH,KAAKusH,gBAGLvsH,KAAK0sH,YAAYx+G,GAAO,GACxBlO,KAAKsvH,OAAOphH,GAEZlO,KAAK0sH,YAAY8C,KAQnB/vH,EAAM6vH,OAAS,SAAUphH,GAGvB,GAFAlO,KAAKgtH,qBAAqB,SAAU9+G,GAE/BA,GAAUA,EAAMtoB,OAArB,CAIA,IAAI0nI,EAAUttH,KAAKotH,gBACnBl/G,EAAMF,SAAQ,SAAUqU,EAAMlgC,GAC5BkgC,EAAKirG,QAAQnrI,EAAImrI,GACjBjrG,EAAKitG,cAST7vH,EAAMqmB,KAAO,SAAU5X,GAGrB,GAFAlO,KAAKgtH,qBAAqB,OAAQ9+G,GAE7BA,GAAUA,EAAMtoB,OAArB,CAIA,IAAI0nI,EAAUttH,KAAKotH,gBACnBl/G,EAAMF,SAAQ,SAAUqU,EAAMlgC,GAC5BkgC,EAAKirG,QAAQnrI,EAAImrI,GACjBjrG,EAAKyD,YASTrmB,EAAMgwH,mBAAqB,SAAU96C,GACnC,IAAIzmE,EAAQlO,KAAK0vH,SAAS/6C,GAC1B30E,KAAKsvH,OAAOphH,IAQdzO,EAAMkwH,iBAAmB,SAAUh7C,GACjC,IAAIzmE,EAAQlO,KAAK0vH,SAAS/6C,GAC1B30E,KAAK8lB,KAAK5X,IAUZzO,EAAM2uH,QAAU,SAAUv5C,GAExB,IAAK,IAAI1yF,EAAI,EAAGA,EAAI6d,KAAKkO,MAAMtoB,OAAQzD,IAAK,CAC1C,IAAIkgC,EAAOriB,KAAKkO,MAAM/rB,GAEtB,GAAIkgC,EAAK1L,SAAWk+D,EAElB,OAAOxyD,IAWb5iB,EAAMiwH,SAAW,SAAU/6C,GACzBA,EAAQ01C,EAAMv0C,UAAUnB,GACxB,IAAIzmE,EAAQ,GAQZ,OAPAymE,EAAM3mE,SAAQ,SAAU6mE,GACtB,IAAIxyD,EAAOriB,KAAKouH,QAAQv5C,GAEpBxyD,GACFnU,EAAMxI,KAAK2c,KAEZriB,MACIkO,GAQTzO,EAAMmlD,OAAS,SAAU+vB,GACvB,IAAIi7C,EAAc5vH,KAAK0vH,SAAS/6C,GAEhC30E,KAAKgtH,qBAAqB,SAAU4C,GAG/BA,GAAgBA,EAAYhqI,QAIjCgqI,EAAY5hH,SAAQ,SAAUqU,GAC5BA,EAAKuiC,SAELylE,EAAMmE,WAAWxuH,KAAKkO,MAAOmU,KAC5BriB,OAKLP,EAAM6yD,QAAU,WAEd,IAAIpvD,EAAQlD,KAAK2W,QAAQzT,MACzBA,EAAM6D,OAAS,GACf7D,EAAMq9B,SAAW,GACjBr9B,EAAMuC,MAAQ,GAEdzF,KAAKkO,MAAMF,SAAQ,SAAUqU,GAC3BA,EAAKiwC,aAEPtyD,KAAKgvH,eACL,IAAIpmI,EAAKoX,KAAK2W,QAAQi0G,oBACfjrE,EAAU/2D,UAEVoX,KAAK2W,QAAQi0G,aAEhBv2C,GACFA,EAAO2X,WAAWhsF,KAAK2W,QAAS3W,KAAK3a,YAAY22F,YAWrDwuC,EAASrlH,KAAO,SAAU0vE,GAExB,IAAIjsF,GADJisF,EAAOw1C,EAAMK,gBAAgB71C,KACZA,EAAK+1C,aACtB,OAAOhiI,GAAM+2D,EAAU/2D,IASzB4hI,EAAS/mI,OAAS,SAAUu4F,EAAWhxF,GAErC,IAAI6kI,EAAStE,EAASf,GAiBtB,OAfAqF,EAAO5tH,SAAWooH,EAAMn1C,OAAO,GAAIs1C,EAASvoH,UAC5CooH,EAAMn1C,OAAO26C,EAAO5tH,SAAUjX,GAC9B6kI,EAAOnE,cAAgBrB,EAAMn1C,OAAO,GAAIs1C,EAASkB,eACjDmE,EAAO7zC,UAAYA,EACnB6zC,EAAO1qH,KAAOqlH,EAASrlH,KAEvB0qH,EAAOvF,KAAOiB,EAASjB,GAEvBD,EAAMyF,SAASD,EAAQ7zC,GAGnB3H,GAAUA,EAAO07C,SACnB17C,EAAO07C,QAAQ/zC,EAAW6zC,GAGrBA,GAeT,IAAIG,EAAU,CACZC,GAAI,EACJ/rI,EAAG,KAIL,SAASqpI,EAAgBh/C,GACvB,GAAmB,iBAARA,EACT,OAAOA,EAGT,IAAIziE,EAAUyiE,EAAKxiE,MAAM,qBACrByO,EAAM1O,GAAWA,EAAQ,GACzB8zB,EAAO9zB,GAAWA,EAAQ,GAE9B,OAAK0O,EAAI50B,QAIT40B,EAAM7wB,WAAW6wB,KACNw1G,EAAQpwF,IAAS,GAJnB,EAWX,OADA4qF,EAASF,KAAOA,EACTE,EAj7BI13C,CAAQvrF,EAAQ6iI,EAAW3c,EAAS4c,EAAOC,IACnD,2BAXL,CAmBG/iI,S,gBC1BH,UAsBGA,OATC,EAAO,CAAC,KAAqB,WAA6B,2BAAP,EAS5C,SAAiBkmH,EAAS+c,GACnC,aAEA,SAAS0F,EAAWC,GAClBnwH,KAAKmwH,QAAUA,EAEXA,IACFnwH,KAAKhV,QAAUmlI,EAAQnlI,QAAQgV,KAAKg8E,WACpCh8E,KAAK2W,QAAUw5G,EAAQx5G,QACvB3W,KAAKkO,MAAQiiH,EAAQC,cACrBpwH,KAAKiD,KAAOktH,EAAQltH,MAIxB,IAAIxD,EAAQywH,EAAWnsI,UA+FvB,MAzFoB,CAAC,eAAgB,yBAA0B,eAAgB,oBAAqB,oBAAqB,oBAAqB,cAChIiqB,SAAQ,SAAUqiH,GAC9B5wH,EAAM4wH,GAAc,WAClB,OAAO7F,EAASzmI,UAAUssI,GAAYhoI,MAAM2X,KAAKmwH,QAASjoI,eAK9DuX,EAAM6wH,0BAA4B,WAEhC,IAAIrtH,EAAOwqG,EAAQztG,KAAKmwH,QAAQx5G,SAIhC,OADe3W,KAAKmwH,QAAQltH,MAAQA,GACjBA,EAAKoqG,aAAertG,KAAKmwH,QAAQltH,KAAKoqG,aAI3D5tG,EAAMktH,gBAAkB,WACtB3sH,KAAKmwH,QAAQxD,gBAAgBtkI,MAAM2X,KAAM9X,YAG3CuX,EAAM8wH,eAAiB,WACrBvwH,KAAKwwH,eAAe,SAAU,UAGhC/wH,EAAMgxH,aAAe,WACnBzwH,KAAKwwH,eAAe,MAAO,WAS7B/wH,EAAM+wH,eAAiB,SAAU5zG,EAAS3Z,GACxC,IAAIytH,EAAc9zG,EAAU3Z,EACxB0tH,EAAY,QAAU1tH,EAK1B,GAHAjD,KAAK2sH,gBAAgB+D,EAAaC,IAG9B3wH,KAAK0wH,GAAT,CAKA,IAAIE,EAAgB5wH,KAAK6wH,mBACzB7wH,KAAK0wH,GAAeE,GAAiBA,EAAcD,IACnD3wH,KAAKmwH,QAAQltH,KAAK,QAAUA,KAG9BxD,EAAMoxH,iBAAmB,WACvB,IAAIC,EAAY9wH,KAAKmwH,QAAQC,cAAc,GAC3C,OAAOU,GAAaA,EAAUn6G,SAAW82F,EAAQqjB,EAAUn6G,UAI7DlX,EAAMmjC,OAAS,WACb5iC,KAAKmwH,QAAQvtF,OAAOv6C,MAAM2X,KAAKmwH,QAASjoI,YAG1CuX,EAAMguG,QAAU,WACdztG,KAAKmwH,QAAQ1iB,UACbztG,KAAKiD,KAAOjD,KAAKmwH,QAAQltH,MAI3BitH,EAAWluF,MAAQ,GAEnBkuF,EAAWzsI,OAAS,SAAUu4F,EAAWhxF,GACvC,SAAS+lI,IACPb,EAAW7nI,MAAM2X,KAAM9X,WAazB,OAVA6oI,EAAKhtI,UAAYlB,OAAOY,OAAOgc,GAC/BsxH,EAAKhtI,UAAUsB,YAAc0rI,EAEzB/lI,IACF+lI,EAAK/lI,QAAUA,GAGjB+lI,EAAKhtI,UAAUi4F,UAAYA,EAE3Bk0C,EAAWluF,MAAMg6C,GAAa+0C,EACvBA,GAGFb,IAtHqD,gC,iBCb9D,sBAEc7sI,EAFd,cAAoW,OAAtO+B,EAArD,oBAAXlC,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,GAErW5B,EAEN,WACN,OAAO,SAAUiD,GACf,SAASjD,EAAET,GACT,GAAIgB,EAAEhB,GAAI,OAAOgB,EAAEhB,GAAGX,QACtB,IAAIE,EAAIyB,EAAEhB,GAAK,CACbX,QAAS,GACT2G,GAAIhG,EACJouI,QAAQ,GAEV,OAAO1qI,EAAE1D,GAAGN,KAAKH,EAAEF,QAASE,EAAGA,EAAEF,QAASoB,GAAIlB,EAAE6uI,QAAS,EAAI7uI,EAAEF,QAGjE,IAAI2B,EAAI,GACR,OAAOP,EAAEd,EAAI+D,EAAGjD,EAAEb,EAAIoB,EAAGP,EAAEY,EAAI,QAASZ,EAAE,GAZrC,CAaL,CAAC,SAAUiD,EAAGjD,EAAGO,GACjB,aAEA,SAAShB,EAAE0D,GACT,OAAOA,GAAKA,EAAE/C,WAAa+C,EAAI,CAC7ByjI,QAASzjI,GAIb,IAAInE,EAAIU,OAAO6c,QAAU,SAAUpZ,GACjC,IAAK,IAAIjD,EAAI,EAAGA,EAAI6E,UAAUtC,OAAQvC,IAAK,CACzC,IAAIO,EAAIsE,UAAU7E,GAElB,IAAK,IAAIT,KAAKgB,EACZf,OAAOkB,UAAUC,eAAe1B,KAAKsB,EAAGhB,KAAO0D,EAAE1D,GAAKgB,EAAEhB,IAI5D,OAAO0D,GAGLqI,GAAK/L,EADDgB,EAAE,IACKA,EAAE,IACbqtI,EAAIruI,EAAE+L,GAENzK,EAAItB,EADAgB,EAAE,IAGNnB,EAAIG,EADAgB,EAAE,IAGNK,EAAIrB,EADAgB,EAAE,IAGNgL,EAAIhM,EADAgB,EAAE,KAGN8J,EAAI9K,EADAgB,EAAE,KAGN6O,EAAI7P,EADAgB,EAAE,KAENwP,EAAI,GACJxI,GAAI,EACJ6C,EAAI,CACNopC,OAAQ,IACRtS,MAAO,EACPF,OAAQ,OACRzC,SAAU,IACVgmE,SAAS,EACTH,MAAM,EACNypC,WAAY,mBACZC,cAAe,GACfC,cAAe,GACfC,yBAAyB,GAEvB1yH,EAAI,WACN,IAAIrY,EAAI4B,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,IAAMA,UAAU,GACrE,GAAI5B,IAAMsE,GAAI,GAAKA,EAAG,OAAOwI,GAAI,EAAI1F,EAAEq8H,SAAS32H,EAAG3F,IAAI,EAAImB,EAAEm7H,SAAS32H,EAAG3F,EAAEg6F,MAAOr0F,GAEhFyB,EAAI,WACNzB,GAAI,EAAIX,EAAEs3H,WAAYprH,KAsBxBrY,EAAErE,QAAU,CACVugE,KAbM,SAAWl8D,GACjBmH,EAAItL,EAAEsL,EAAGnH,GAAI8M,GAAI,EAAIX,EAAEs3H,WACvB,IAAI1mI,EAAI+jD,SAASpgB,MAAQz/B,OAAO+pI,KAChC,OANM,SAAWhrI,GACjB,OAAa,IAANA,GAAY,WAAaA,GAAKrC,EAAE8lI,QAAQwH,UAAY,UAAYjrI,GAAKrC,EAAE8lI,QAAQyH,SAAW,WAAalrI,GAAKrC,EAAE8lI,QAAQ0H,UAAY,mBAAqBnrI,IAAa,IAARA,IAK5JmO,CAAEhH,EAAEm6F,UAAYvkG,OAVvB+P,EAAE4a,SAAQ,SAAU1nB,EAAGjD,GACrBiD,EAAEqb,KAAKsnC,gBAAgB,YAAa3iD,EAAEqb,KAAKsnC,gBAAgB,mBAAoB3iD,EAAEqb,KAAKsnC,gBAAgB,qBAAsB3iD,EAAEqb,KAAKsnC,gBAAgB,sBASnHx7C,EAAE4jI,yBAA2B5uI,EAAEsnI,QAAQ2H,gBAAkB/kH,QAAQK,KAAK,qLAAsLvf,EAAE4jI,yBAA0B,GAAKjqF,SAASsmE,cAAc,QAAQxkE,aAAa,kBAAmBz7C,EAAE42B,QAAS+iB,SAASsmE,cAAc,QAAQxkE,aAAa,oBAAqBz7C,EAAEm0B,UAAWwlB,SAASsmE,cAAc,QAAQxkE,aAAa,iBAAkBz7C,EAAE82B,OAAQ,qBAAuB92B,EAAEyjI,YAAc,CAAC,WAAY,eAAepmI,QAAQs8C,SAASsjD,aAAe,EAAI/rF,GAAE,GAAM,SAAWlR,EAAEyjI,WAAa3pI,OAAOmyB,iBAAiBjsB,EAAEyjI,YAAY,WAC5sBvyH,GAAE,MACCyoC,SAAS1tB,iBAAiBjsB,EAAEyjI,YAAY,WAC3CvyH,GAAE,MACApX,OAAOmyB,iBAAiB,UAAU,EAAIx1B,EAAE6lI,SAASprH,EAAGlR,EAAE2jI,eAAe,IAAM7pI,OAAOmyB,iBAAiB,qBAAqB,EAAIx1B,EAAE6lI,SAASprH,EAAGlR,EAAE2jI,eAAe,IAAM7pI,OAAOmyB,iBAAiB,UAAU,EAAIu3G,EAAElH,UAAS,YACpN,EAAIn7H,EAAEm7H,SAAS32H,EAAG3F,EAAEg6F,QACnBh6F,EAAE0jI,gBAAiB1jI,EAAE4jI,yBAA2B5uI,EAAEsnI,QAAQ3kC,MAAM,aAAcvwF,GAAIzB,IAKrFu+H,QAAShzH,EACTizH,YAAa/8H,IAEd,SAAUvO,EAAGjD,KAAM,CAAC,CAAC,CAAC,CAAE,SAAUiD,EAAGjD,IACtC,SAAWA,GACT,aAEA,SAASO,EAAE0C,EAAGjD,EAAGO,GACf,SAAShB,EAAES,GACT,IAAIO,EAAIgL,EACJhM,EAAIyP,EACR,OAAOzD,EAAIyD,OAAI,EAAQzH,EAAIvH,EAAGiP,EAAIhM,EAAE+B,MAAMzF,EAAGgB,GAG/C,SAASX,EAAEqD,GACT,OAAOsE,EAAItE,EAAGmM,EAAIyuD,WAAW16D,EAAGnD,GAAI0R,EAAInS,EAAE0D,GAAKgM,EAUjD,SAAS9P,EAAE8D,GACT,IAAI1C,EAAI0C,EAAI8M,EAEZ,YAAO,IAAWA,GAAKxP,GAAKP,GAAKO,EAAI,GAAK6Q,GADlCnO,EAAIsE,GACwC8C,EAGtD,SAASlH,IACP,IAAIF,EAAIuO,IACR,OAAOrS,EAAE8D,GAAK7D,EAAE6D,QAAWmM,EAAIyuD,WAAW16D,EAf5C,SAAWF,GACT,IAEInE,EAAIkB,GAFAiD,EAAI8M,GAGZ,OAAOqB,EAAIkK,EAAExc,EAAGuL,GAFRpH,EAAIsE,IAEazI,EAWoBwM,CAAErI,KAGjD,SAAS7D,EAAE6D,GACT,OAAOmM,OAAI,EAAQs0F,GAAKn4F,EAAIhM,EAAE0D,IAAMsI,EAAIyD,OAAI,EAAQC,GAWtD,SAAS/P,IACP,IAAI+D,EAAIuO,IACJjR,EAAIpB,EAAE8D,GAEV,GAAIsI,EAAI1G,UAAWmK,EAAI2N,KAAM5M,EAAI9M,EAAG1C,EAAG,CACrC,QAAI,IAAW6O,EAAG,OAAOxP,EAAEmQ,GAC3B,GAAIqB,EAAG,OAAOhC,EAAIyuD,WAAW16D,EAAGnD,GAAIT,EAAEwQ,GAGxC,YAAO,IAAWX,IAAMA,EAAIyuD,WAAW16D,EAAGnD,IAAKiP,EAGjD,IAAI1D,EACAyD,EACA3E,EACA4E,EACAG,EACAW,EACAxI,EAAI,EACJmK,GAAI,EACJN,GAAI,EACJsyF,GAAI,EAER,GAAI,mBAAqBzgG,EAAG,MAAM,IAAIxB,UAAUZ,GAChD,OAAOb,EAAI4tI,EAAE5tI,IAAM,EAAGlB,EAAEyB,KAAOmR,IAAMnR,EAAEiuI,QAA6BnkI,GAApB+G,EAAI,YAAa7Q,GAAW6J,EAAEwjI,EAAErtI,EAAEkuI,UAAY,EAAGzuI,GAAKqK,EAAGq5F,EAAI,aAAcnjG,IAAMA,EAAEmuI,SAAWhrC,GAAIxkG,EAAEghC,OAhCpJ,gBACE,IAAW9wB,GAAKwuD,aAAaxuD,GAAI7H,EAAI,EAAGgE,EAAIwE,EAAIf,EAAII,OAAI,GA+BsGlQ,EAAEyvI,MA5BlK,WACE,YAAO,IAAWv/H,EAAIH,EAAI7P,EAAEoS,MA2B+ItS,EAc/K,SAASJ,EAAEmE,GACT,IAAIjD,EAAI,oBAAsBiD,EAAI,YAAc9D,EAAE8D,GAClD,QAASA,IAAM,UAAYjD,GAAK,YAAcA,GAOhD,SAASsL,EAAErI,GACT,MAAO,WAAa,oBAAsBA,EAAI,YAAc9D,EAAE8D,KALhE,SAAWA,GACT,QAASA,GAAK,WAAa,oBAAsBA,EAAI,YAAc9D,EAAE8D,IAIArD,CAAEqD,IAAMsE,EAAEtI,KAAKgE,IAAM7D,EAG5F,SAASwuI,EAAE3qI,GACT,GAAI,iBAAmBA,EAAG,OAAOA,EACjC,GAAIqI,EAAErI,GAAI,OAAOE,EAEjB,GAAIrE,EAAEmE,GAAI,CACR,IAAIjD,EAAI,mBAAqBiD,EAAE05B,QAAU15B,EAAE05B,UAAY15B,EACvDA,EAAInE,EAAEkB,GAAKA,EAAI,GAAKA,EAGtB,GAAI,iBAAmBiD,EAAG,OAAO,IAAMA,EAAIA,GAAKA,EAChDA,EAAIA,EAAE0Y,QAAQ5c,EAAG,IACjB,IAAIwB,EAAIrB,EAAE4E,KAAKb,GACf,OAAO1C,GAAKgL,EAAEzH,KAAKb,GAAK+L,EAAE/L,EAAEY,MAAM,GAAItD,EAAI,EAAI,GAAKK,EAAEkD,KAAKb,GAAKE,GAAKF,EAGtE,IAAI9D,EAAI,mBAAqBU,QAAU,UAAYkC,EAAQlC,OAAOwB,UAAY,SAAU4B,GACtF,OAAOlB,EAAQkB,IACb,SAAUA,GACZ,OAAOA,GAAK,mBAAqBpD,QAAUoD,EAAEjB,cAAgBnC,QAAUoD,IAAMpD,OAAOa,UAAY,SAAWqB,EAAQkB,IAEjHpC,EAAI,sBACJsC,EAAI8nC,IACJ7rC,EAAI,kBACJL,EAAI,aACJ6B,EAAI,qBACJ1B,EAAI,aACJqM,EAAI,cACJyD,EAAI4M,SACJvR,EAAI,WAAa,oBAAsBrK,EAAI,YAAcb,EAAEa,KAAOA,GAAKA,EAAER,SAAWA,QAAUQ,EAC9FiP,EAAI,WAAa,oBAAsB+tB,KAAO,YAAc79B,EAAE69B,QAAUA,MAAQA,KAAKx9B,SAAWA,QAAUw9B,KAC1G5tB,EAAI/E,GAAK4E,GAAKs8G,SAAS,cAATA,GAEdhkH,EADI/H,OAAOkB,UACLkD,SACNwG,EAAItB,KAAK6B,IACT2Q,EAAIxS,KAAK4B,IACT8G,EAAI,WACN,OAAOpC,EAAEwvB,KAAKC,OAGhB57B,EAAErE,QA/DF,SAAWqE,EAAGjD,EAAGT,GACf,IAAIK,GAAI,EACJ0L,GAAI,EACR,GAAI,mBAAqBrI,EAAG,MAAM,IAAIxB,UAAUZ,GAChD,OAAO/B,EAAES,KAAOK,EAAI,YAAaL,IAAMA,EAAEivI,QAAU5uI,EAAG0L,EAAI,aAAc/L,IAAMA,EAAEmvI,SAAWpjI,GAAI/K,EAAE0C,EAAGjD,EAAG,CACrGwuI,QAAS5uI,EACT6uI,QAASzuI,EACT0uI,SAAUpjI,OAyDbrM,KAAKe,EAAG,WACT,OAAO2c,KADE,KAGV,SAAU1Z,EAAGjD,IACd,SAAWA,GACT,aAsEA,SAAST,EAAE0D,GACT,IAAIjD,EAAI,oBAAsBiD,EAAI,YAAc2qI,EAAE3qI,GAClD,QAASA,IAAM,UAAYjD,GAAK,YAAcA,GAOhD,SAASJ,EAAEqD,GACT,MAAO,WAAa,oBAAsBA,EAAI,YAAc2qI,EAAE3qI,KALhE,SAAWA,GACT,QAASA,GAAK,WAAa,oBAAsBA,EAAI,YAAc2qI,EAAE3qI,IAIAnE,CAAEmE,IAAM8M,EAAE9Q,KAAKgE,IAAME,EAG5F,SAASmI,EAAErI,GACT,GAAI,iBAAmBA,EAAG,OAAOA,EACjC,GAAIrD,EAAEqD,GAAI,OAAOpC,EAEjB,GAAItB,EAAE0D,GAAI,CACR,IAAIjD,EAAI,mBAAqBiD,EAAE05B,QAAU15B,EAAE05B,UAAY15B,EACvDA,EAAI1D,EAAES,GAAKA,EAAI,GAAKA,EAGtB,GAAI,iBAAmBiD,EAAG,OAAO,IAAMA,EAAIA,GAAKA,EAChDA,EAAIA,EAAE0Y,QAAQvc,EAAG,IACjB,IAAImB,EAAIK,EAAEkD,KAAKb,GACf,OAAO1C,GAAKrB,EAAE4E,KAAKb,GAAKsI,EAAEtI,EAAEY,MAAM,GAAItD,EAAI,EAAI,GAAKxB,EAAE+E,KAAKb,GAAKpC,GAAKoC,EAGtE,IAAI2qI,EAAI,mBAAqB/tI,QAAU,UAAYkC,EAAQlC,OAAOwB,UAAY,SAAU4B,GACtF,OAAOlB,EAAQkB,IACb,SAAUA,GACZ,OAAOA,GAAK,mBAAqBpD,QAAUoD,EAAEjB,cAAgBnC,QAAUoD,IAAMpD,OAAOa,UAAY,SAAWqB,EAAQkB,IAEjH9D,EAAI,sBACJ0B,EAAIoqC,IACJ9nC,EAAI,kBACJ/D,EAAI,aACJL,EAAI,qBACJ6B,EAAI,aACJ1B,EAAI,cACJqM,EAAIqQ,SACJ5M,EAAI,WAAa,oBAAsBhP,EAAI,YAAc4tI,EAAE5tI,KAAOA,GAAKA,EAAER,SAAWA,QAAUQ,EAC9FqK,EAAI,WAAa,oBAAsB2yB,KAAO,YAAc4wG,EAAE5wG,QAAUA,MAAQA,KAAKx9B,SAAWA,QAAUw9B,KAC1G/tB,EAAID,GAAK3E,GAAKkhH,SAAS,cAATA,GAEdx7G,EADIvQ,OAAOkB,UACLkD,SACN2D,EAAIuB,KAAK6B,IACTP,EAAItB,KAAK4B,IACT4Q,EAAI,WACN,OAAOrM,EAAE2vB,KAAKC,OAGhB57B,EAAErE,QAxHF,SAAWqE,EAAGjD,EAAGO,GACf,SAASzB,EAAEkB,GACT,IAAIO,EAAIgL,EACJhM,EAAIyP,EACR,OAAOzD,EAAIyD,OAAI,EAAQwC,EAAIxR,EAAGiP,EAAIhM,EAAE+B,MAAMzF,EAAGgB,GAG/C,SAASX,EAAEqD,GACT,OAAOuO,EAAIvO,EAAGmM,EAAIyuD,WAAW16D,EAAGnD,GAAI0R,EAAI5S,EAAEmE,GAAKgM,EAUjD,SAASpO,EAAEoC,GACT,IAAI1C,EAAI0C,EAAI8M,EAEZ,YAAO,IAAWA,GAAKxP,GAAKP,GAAKO,EAAI,GAAK6Q,GADlCnO,EAAIuO,GACwCnH,EAGtD,SAASlH,IACP,IAAIF,EAAIqY,IACR,OAAOza,EAAEoC,GAAK7D,EAAE6D,QAAWmM,EAAIyuD,WAAW16D,EAf5C,SAAWF,GACT,IAEInE,EAAIkB,GAFAiD,EAAI8M,GAGZ,OAAOqB,EAAIhH,EAAEtL,EAAGuL,GAFRpH,EAAIuO,IAEa1S,EAWoB8uI,CAAE3qI,KAGjD,SAAS7D,EAAE6D,GACT,OAAOmM,OAAI,EAAQs0F,GAAKn4F,EAAIzM,EAAEmE,IAAMsI,EAAIyD,OAAI,EAAQC,GAWtD,SAAS/P,IACP,IAAI+D,EAAIqY,IACJ/a,EAAIM,EAAEoC,GAEV,GAAIsI,EAAI1G,UAAWmK,EAAI2N,KAAM5M,EAAI9M,EAAG1C,EAAG,CACrC,QAAI,IAAW6O,EAAG,OAAOxP,EAAEmQ,GAC3B,GAAIqB,EAAG,OAAOhC,EAAIyuD,WAAW16D,EAAGnD,GAAIlB,EAAEiR,GAGxC,YAAO,IAAWX,IAAMA,EAAIyuD,WAAW16D,EAAGnD,IAAKiP,EAGjD,IAAI1D,EACAyD,EACA3E,EACA4E,EACAG,EACAW,EACAyB,EAAI,EACJE,GAAI,EACJN,GAAI,EACJsyF,GAAI,EAER,GAAI,mBAAqBzgG,EAAG,MAAM,IAAIxB,UAAUtC,GAChD,OAAOa,EAAIsL,EAAEtL,IAAM,EAAGT,EAAEgB,KAAOmR,IAAMnR,EAAEiuI,QAA6BnkI,GAApB+G,EAAI,YAAa7Q,GAAWgH,EAAE+D,EAAE/K,EAAEkuI,UAAY,EAAGzuI,GAAKqK,EAAGq5F,EAAI,aAAcnjG,IAAMA,EAAEmuI,SAAWhrC,GAAIxkG,EAAEghC,OAhCpJ,gBACE,IAAW9wB,GAAKwuD,aAAaxuD,GAAIoC,EAAI,EAAGjG,EAAIwE,EAAIf,EAAII,OAAI,GA+BsGlQ,EAAEyvI,MA5BlK,WACE,YAAO,IAAWv/H,EAAIH,EAAI7P,EAAEkc,MA2B+Ipc,KAwD9KD,KAAKe,EAAG,WACT,OAAO2c,KADE,KAGV,SAAU1Z,EAAGjD,GACd,aAEA,SAASO,EAAE0C,GACT,IAAIjD,OAAI,EACJT,OAAI,EAGR,IAAKS,EAAI,EAAGA,EAAIiD,EAAEV,OAAQvC,GAAK,EAAG,CAChC,IAAIT,EAAI0D,EAAEjD,IAAM+nC,SAAWxoC,EAAEwoC,QAAQ6mG,IAAK,OAAO,EACjD,GAAQrvI,EAAEgwF,UAAYhvF,EAAEhB,EAAEgwF,UAAW,OAAO,EAG9C,OAAO,EAGT,SAAShwF,IACP,OAAO2E,OAAOw/C,kBAAoBx/C,OAAO2qI,wBAA0B3qI,OAAO4qI,oBAkB5E,SAASxjI,EAAErI,GACTA,GAAKA,EAAE0nB,SAAQ,SAAU1nB,GACvB,IAAIjD,EAAIgB,MAAMN,UAAUmD,MAAM5E,KAAKgE,EAAE2gD,YACjCrkD,EAAIyB,MAAMN,UAAUmD,MAAM5E,KAAKgE,EAAEkhD,cAErC,GAAI5jD,EADIP,EAAEgd,OAAOzd,IACP,OAAOquI,OAIrBpuI,OAAOC,eAAeO,EAAG,aAAc,CACrCD,OAAO,IAGT,IAAI6tI,EAAI,aAER5tI,EAAE0mI,QAAU,CACV2H,YA/BF,WACE,QAAS9uI,KA+BTwiG,MA5BF,SAAW9+F,EAAGjD,GACZ,IAAIO,EAAI2D,OAAO6/C,SAEXnkD,EAAI,IADAL,IACA,CAAM+L,GACdsiI,EAAI5tI,EAAGJ,EAAEkkD,QAAQvjD,EAAEs4F,gBAAiB,CAClC70C,WAAW,EACXC,SAAS,EACTE,cAAc,OAuBjB,SAAUlhD,EAAGjD,GACd,aAMA,SAAST,IACP,OAAO49H,UAAUC,WAAaD,UAAU4R,QAAU7qI,OAAO8qI,OAAS,GAGpExvI,OAAOC,eAAeO,EAAG,aAAc,CACrCD,OAAO,IAGT,IAAIjB,EAAI,WACN,SAASmE,EAAEA,EAAGjD,GACZ,IAAK,IAAIO,EAAI,EAAGA,EAAIP,EAAEuC,OAAQhC,IAAK,CACjC,IAAIhB,EAAIS,EAAEO,GACVhB,EAAEG,WAAaH,EAAEG,aAAc,EAAIH,EAAEsC,cAAe,EAAI,UAAWtC,IAAMA,EAAEuC,UAAW,GAAKtC,OAAOC,eAAewD,EAAG1D,EAAEc,IAAKd,IAI/H,OAAO,SAAUS,EAAGO,EAAGhB,GACrB,OAAOgB,GAAK0C,EAAEjD,EAAEU,UAAWH,GAAIhB,GAAK0D,EAAEjD,EAAGT,GAAIS,GATzC,GAYJJ,EAAI,2TACJ0L,EAAI,0kDACJsiI,EAAI,sVACJzuI,EAAI,0kDACJ0B,EAAI,WACN,SAASoC,KA7BX,SAAWA,EAAGjD,GACZ,KAAMiD,aAAajD,GAAI,MAAM,IAAIyB,UAAU,qCA6BzClB,CAAEoc,KAAM1Z,GAGV,OAAOnE,EAAEmE,EAAG,CAAC,CACX5C,IAAK,QACLN,MAAO,WACL,IAAIkD,EAAI1D,IACR,SAAUK,EAAEkE,KAAKb,KAAOqI,EAAExH,KAAKb,EAAE0C,OAAO,EAAG,OAE5C,CACDtF,IAAK,SACLN,MAAO,WACL,IAAIkD,EAAI1D,IACR,SAAUquI,EAAE9pI,KAAKb,KAAO9D,EAAE2E,KAAKb,EAAE0C,OAAO,EAAG,OAE5C,CACDtF,IAAK,SACLN,MAAO,WACL,OAAO4c,KAAKuxH,WAAavxH,KAAKwxH,YAE7BlrI,EAtBC,GAyBRjD,EAAE0mI,QAAU,IAAI7lI,GACf,SAAUoC,EAAGjD,GACd,aAEAR,OAAOC,eAAeO,EAAG,aAAc,CACrCD,OAAO,IAeTC,EAAE0mI,QARM,SAAWzjI,EAAGjD,GACpB,IAAIT,EAAI2E,OAAOikH,YACXrpH,EAAIoF,OAAO8lH,YACf/mH,EAAE0nB,SAAQ,SAAU1nB,EAAGrD,IAPjB,SAAWqD,EAAGjD,EAAGw9B,GACvB,IAAIj+B,EAAI0D,EAAEqb,KAAKinC,aAAa,iBAC5BvlD,EAAIiD,EAAEi6C,SAAWj6C,EAAEqb,KAAKmwG,UAAU1jG,IAAI,eAAiB,oBAAsBxrB,IAAM,UAAYA,IAAMi+B,GAAM,SAAWj+B,IAAM0D,EAAEqb,KAAKmwG,UAAUltD,OAAO,eAMlJhhE,CAAE0C,EAAGnE,EAAIS,EAAGS,QAKf,SAAUiD,EAAGjD,EAAGO,GACjB,aAQAf,OAAOC,eAAeO,EAAG,aAAc,CACrCD,OAAO,IAGT,IACIH,EAXJ,SAAWqD,GACT,OAAOA,GAAKA,EAAE/C,WAAa+C,EAAI,CAC7ByjI,QAASzjI,GASL1D,CADAgB,EAAE,KAQVP,EAAE0mI,QANM,SAAWzjI,EAAGjD,GACpB,OAAOiD,EAAE0nB,SAAQ,SAAU1nB,EAAG1C,GAC5B0C,EAAEqb,KAAKmwG,UAAU1jG,IAAI,YAAa9nB,EAAEi6C,UAAW,EAAIt9C,EAAE8mI,SAASzjI,EAAEqb,KAAMte,EAAEwzC,WACtEvwC,IAIL,SAAUA,EAAGjD,EAAGO,GACjB,aAQAf,OAAOC,eAAeO,EAAG,aAAc,CACrCD,OAAO,IAGT,IACIH,EAXJ,SAAWqD,GACT,OAAOA,GAAKA,EAAE/C,WAAa+C,EAAI,CAC7ByjI,QAASzjI,GASL1D,CADAgB,EAAE,KAmDVP,EAAE0mI,QAjDM,SAAWzjI,EAAGjD,GACpB,IAAIO,EAAI,EACJhB,EAAI,EACJT,EAAIoF,OAAO8lH,YACX1+G,EAAI,CACNkoC,OAAQvwC,EAAEsiD,aAAa,mBACvB0pF,OAAQhsI,EAAEsiD,aAAa,mBACvB2pF,gBAAiBjsI,EAAEsiD,aAAa,8BAGlC,OAAQj6C,EAAEkoC,SAAWrpC,MAAMmB,EAAEkoC,UAAYj0C,EAAIqc,SAAStQ,EAAEkoC,SAAUloC,EAAE2jI,QAAUlrF,SAAS0zC,iBAAiBnsF,EAAE2jI,UAAYhsI,EAAI8gD,SAAS0zC,iBAAiBnsF,EAAE2jI,QAAQ,IAAK1uI,GAAI,EAAIX,EAAE8mI,SAASzjI,GAAGqiB,IAAKha,EAAE4jI,iBAC9L,IAAK,aACH,MAEF,IAAK,gBACH3uI,GAAK0C,EAAEqzG,aAAe,EACtB,MAEF,IAAK,gBACH/1G,GAAK0C,EAAEqzG,aACP,MAEF,IAAK,aACH/1G,GAAKzB,EAAI,EACT,MAEF,IAAK,gBACHyB,GAAKzB,EAAI,EAAImE,EAAEqzG,aACf,MAEF,IAAK,gBACH/1G,GAAKzB,EAAI,EAAImE,EAAEqzG,aAAe,EAC9B,MAEF,IAAK,UACH/1G,GAAKzB,EACL,MAEF,IAAK,aACHyB,GAAK0C,EAAEqzG,aAAex3G,EACtB,MAEF,IAAK,aACHyB,GAAK0C,EAAEqzG,aAAe,EAAIx3G,EAG9B,OAAOwM,EAAE4jI,iBAAmB5jI,EAAEkoC,QAAUrpC,MAAMnK,KAAOT,EAAIS,GAAIO,EAAIhB,IAIlE,SAAU0D,EAAGjD,GACd,aAEAR,OAAOC,eAAeO,EAAG,aAAc,CACrCD,OAAO,IAcTC,EAAE0mI,QAXM,SAAWzjI,GACjB,IAAK,IAAIjD,EAAI,EAAGO,EAAI,EAAG0C,IAAMkH,MAAMlH,EAAEitD,cAAgB/lD,MAAMlH,EAAEksI,YAC3DnvI,GAAKiD,EAAEitD,YAAc,QAAUjtD,EAAE26H,QAAU36H,EAAEy1G,WAAa,GAAIn4G,GAAK0C,EAAEksI,WAAa,QAAUlsI,EAAE26H,QAAU36H,EAAEw1G,UAAY,GAAIx1G,EAAIA,EAAEolH,aAGlI,MAAO,CACL/iG,IAAK/kB,EACL6kB,KAAMplB,KAKT,SAAUiD,EAAGjD,GACd,aAEAR,OAAOC,eAAeO,EAAG,aAAc,CACrCD,OAAO,IAWTC,EAAE0mI,QARM,SAAWzjI,GACjB,OAAOA,EAAIA,GAAK8gD,SAAS0zC,iBAAiB,cAAez2F,MAAMN,UAAU2G,IAAIpI,KAAKgE,GAAG,SAAUA,GAC7F,MAAO,CACLqb,KAAMrb,WAlmBd,UAA4DlB,EAAQnD,IAAa,UAA2DmD,EAAQlD,GAAWA,EAAOD,QAAUoB,KAAkD,EAAO,QAAK,2BAAD,EAAF,GAAG,kC,qCCHhP,oCAAoW,OAAtO+B,EAArD,oBAAXlC,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,IAQnX,YAEE,YACE,WACE+a,KAAKyyH,MAAQ,CACXC,kBAAmB,yGACnBC,oBAAqB,CACnBr+C,SAAU,oEACVs+C,QAAS,eAEXC,oBAAqB,iEACrBC,mBAAoB,8BACpBC,uBAAwB,ySACxBC,oBAAqB,sMACrBC,mBAAoB,4MACpBC,kBAAmB,yCACnBC,oBAAqB,wCACrBC,sBAAuB,+EAExB9wI,KAAK0d,QACP1d,KAnBW0d,MAoBd,IAAIyyH,EApBUzyH,KAoBMyyH,OACpB,YACE,WACE,IAAI9+C,EACJA,EAAQ,KAER8+C,EAAMY,aAAe,WACnB,IAAIC,EACJ,OAAO3/C,EAAkE,OAAzD2/C,EAAMlsF,SAASsmE,cAAc,yBAAmC4lB,EAAIltC,aAAU,GAGhGqsC,EAAMc,SAAW,WACf,OAAgB,MAAT5/C,EAAgBA,EAAQ8+C,EAAMY,kBAEtC/wI,KAAK0d,MACR,WACE,IAAazd,EACbA,EAAIgnD,QAAQxlD,UAAU+nB,SAAWy9B,QAAQxlD,UAAUi5F,iBAAmBzzC,QAAQxlD,UAAUm5F,oBAAsB3zC,QAAQxlD,UAAUq5F,mBAAqB7zC,QAAQxlD,UAAUo5F,kBAAoB5zC,QAAQxlD,UAAUk5F,sBAE7Mw1C,EAAM3mH,QAAU,SAAU6K,EAAS29D,GACjC,OAAwB,MAApBA,EAASs+C,QACJrwI,EAAED,KAAKq0B,EAAS29D,EAASA,YAAc/xF,EAAED,KAAKq0B,EAAS29D,EAASs+C,SAEhErwI,EAAED,KAAKq0B,EAAS29D,IAM3Bm+C,EAAM1mC,QAAU,SAAUp1E,EAASjzB,GACjC,IAAI4vI,EACJ,OAAmC,OAA3BA,EAAM38G,EAAe,UAAa28G,EAAI5vI,QAAO,GAGvD+uI,EAAMe,QAAU,SAAU78G,EAASjzB,EAAKN,GAKtC,OAJwB,MAApBuzB,EAAe,WACjBA,EAAe,SAAI,IAGdA,EAAe,SAAEjzB,GAAON,GAGjCqvI,EAAM5lB,EAAI,SAAUv4B,GAClB,OAAOjwF,MAAMN,UAAUmD,MAAM5E,KAAK8kD,SAAS0zC,iBAAiBxG,MAE7DhyF,KAAK0d,MACR,WACE,IAAI6sG,EAAG4mB,EAAWC,EAClB7mB,EAAI4lB,EAAM5lB,EAEV6mB,EAAYjB,EAAMiB,UAAY,WAC5B,IAAIzrG,EAEJ,OADAA,EAAOmf,SAASsmE,cAAc,2BACfzlF,EAAKm+D,SAGtBqtC,EAAYhB,EAAMgB,UAAY,WAC5B,IAAIxrG,EAEJ,OADAA,EAAOmf,SAASsmE,cAAc,2BACfzlF,EAAKm+D,SAGtBqsC,EAAMkB,eAAiB,SAAU/qB,GAC/B,IAAI3kB,EAGJ,GAAa,OAFbA,EAAQyvC,KAGN,OAAO9qB,EAAInC,iBAAiB,eAAgBxiB,IAIhDwuC,EAAMmB,kBAAoB,WACxB,IAAI/oD,EAAOoZ,EAIX,GAHAA,EAAQyvC,IACR7oD,EAAQ4oD,IAEK,MAATxvC,GAA0B,MAATpZ,EACnB,OAAOgiC,EAAE,oBAAsBhiC,EAAQ,MAAM78D,SAAQ,SAAUpO,GAC7D,OAAOA,EAAMxc,MAAQ6gG,OAI1B3hG,KAAK0d,MACR,WACE,IAAI6zH,EAAarsC,EAAM17E,EAAS4kF,EAChC5kF,EAAU2mH,EAAM3mH,QAGW,oBAF3B+nH,EAActsI,OAAOssI,gBAGnBA,EAAc,SAAqB9wG,EAAO4f,GACxC,IAAIzrB,EAGJ,OAFAA,EAAMkwB,SAAS0sF,YAAY,gBACvBC,gBAAgBhxG,EAAO4f,EAAO8wD,QAAS9wD,EAAO6Y,WAAY7Y,EAAOixD,QAC9D18E,IAGGnzB,UAAYwD,OAAOqpG,MAAM7sG,UACrC2sG,EAAiBmjC,EAAY9vI,UAAU2sG,eAEvCmjC,EAAY9vI,UAAU2sG,eAAiB,WACrC,IAAI15E,EAWJ,OAVAA,EAAS05E,EAAepuG,KAAK0d,MAEzBA,KAAKw7C,aAAex7C,KAAKozF,kBAC3BvwG,OAAOC,eAAekd,KAAM,mBAAoB,CAC9Chd,IAAK,WACH,OAAO,KAKNg0B,IAIXwwE,EAAOirC,EAAMjrC,KAAO,SAAUviG,EAAKvC,EAAMyiB,GACvC,IAAI4d,EAOJ,OANAA,EAAQ,IAAI8wG,EAAYnxI,EAAM,CAC5B+wG,SAAS,EACTj4C,YAAY,EACZo4C,OAAQzuF,IAEVlgB,EAAI6oI,cAAc/qG,IACVA,EAAMqwE,kBAGhBq/B,EAAMuB,eAAiB,SAAU1tI,GAI/B,OAHAkhG,EAAKlhG,EAAEZ,OAAQ,yBACfY,EAAEoqG,iBACFpqG,EAAEkqG,kBACKlqG,EAAEmqG,4BAGXgiC,EAAMvmB,SAAW,SAAUv1F,EAAS29D,EAAU2/C,EAAWzzF,GACvD,OAAO7pB,EAAQ+C,iBAAiBu6G,GAAW,SAAU3tI,GACnD,IAAIZ,EAGJ,IAFAA,EAASY,EAAEZ,OAEAA,aAAkB6jD,UAAYz9B,EAAQpmB,EAAQ4uF,IACvD5uF,EAASA,EAAO0wB,WAGlB,GAAI1wB,aAAkB6jD,UAAuC,IAA5B/I,EAAQl+C,KAAKoD,EAAQY,GAEpD,OADAA,EAAEoqG,iBACKpqG,EAAEkqG,uBAIdluG,KAAK0d,MACR,WACE,IAAIk0H,EAAeP,EAAgBQ,EAAWZ,EAAgBa,EAAgBC,EAC9Ed,EAAWd,EAAMc,SAAUI,EAAiBlB,EAAMkB,eAAuBlB,EAAMjrC,KAC/E0sC,EAAgB,CACd,IAAK,MACLvqH,KAAM,aACNwsF,KAAM,YACN5W,IAAK,4BACLwlB,KAAM,oCACN/wB,OAAQ,6FAGVy+C,EAAMntB,KAAO,SAAUt6G,GACrB,IAAI49G,EAmBJ,OAlBA59G,EAAUopI,EAAeppI,GACzB49G,EAAMurB,EAAUnpI,GAAS,WACvB,IAAIsoI,EAAK5rB,EAaT,OAZAA,EAAW2sB,EAAwC,OAAvBf,EAAM1qB,EAAIlB,UAAoB4rB,EAAM1qB,EAAIgB,aAAchB,EAAIrC,kBAAkB,iBAEnE,IAAjCp6G,KAAKkB,MAAMu7G,EAAIhC,OAAS,KACK,oBAApB57G,EAAQq8G,SACjBr8G,EAAQq8G,QAAQK,EAAUkB,EAAI9B,WAAY8B,GAGf,oBAAlB59G,EAAQq2D,OACjBr2D,EAAQq2D,MAAMqmD,EAAUkB,EAAI9B,WAAY8B,GAIT,oBAArB59G,EAAQ63B,SAA0B73B,EAAQ63B,SAAS+lF,EAAKA,EAAI9B,iBAAc,OAGhE,MAAtB97G,EAAQo8G,aAAuBp8G,EAAQo8G,WAAWwB,EAAK59G,MAIvD49G,EAAIle,aAAeme,eAAeyrB,OAC7B1rB,EAAItB,KAAKt8G,EAAQma,WAD1B,IAKFivH,EAAiB,SAAwBppI,GAsBvC,OArBAA,EAAQw5G,IAAMx5G,EAAQw5G,KAAOlkB,SAASG,KACtCz1F,EAAQjC,KAAOiC,EAAQjC,KAAKgD,cAEP,QAAjBf,EAAQjC,MAAkBiC,EAAQma,OAChCna,EAAQw5G,IAAI15G,QAAQ,KAAO,EAC7BE,EAAQw5G,KAAO,IAAMx5G,EAAQma,KAE7Bna,EAAQw5G,KAAO,IAAMx5G,EAAQma,MAIM,MAAnC+uH,EAAclpI,EAAQ04G,YACxB14G,EAAQ04G,SAAW,KAGrB14G,EAAQupI,OAASL,EAAclpI,EAAQ04G,UAEd,MAArB14G,EAAQ04G,WACV14G,EAAQupI,QAAU,iBAGbvpI,GAGTmpI,EAAY,SAAmBnpI,EAAS3E,GACtC,IAAIuiH,EAsBJ,OArBAA,EAAM,IAAIC,gBACNM,KAAKn+G,EAAQjC,KAAMiC,EAAQw5G,KAAK,GACpCoE,EAAInC,iBAAiB,SAAUz7G,EAAQupI,QAEX,kBAAjBvpI,EAAQma,MACjByjG,EAAInC,iBAAiB,eAAgB,oDAGlCz7G,EAAQg8G,cACX4B,EAAInC,iBAAiB,mBAAoB,kBACzCktB,EAAe/qB,IAGjBA,EAAI4rB,kBAAoBxpI,EAAQwpI,gBAEhC5rB,EAAIc,mBAAqB,WACvB,GAAId,EAAIle,aAAeme,eAAe4rB,KACpC,OAAOpuI,EAAKuiH,IAITA,GAGTyrB,EAAkB,SAAyB3sB,EAAU3+G,GACnD,IAAI+kF,EAAQkG,EAEZ,GAAwB,kBAAb0zB,GAAyC,kBAAT3+G,EACzC,GAAIA,EAAKgjB,MAAM,YACb,IACE27F,EAAW/sF,KAAKoT,MAAM25E,GACtB,MAAOrmD,SACJ,GAAIt4D,EAAKgjB,MAAM,4BACpBioE,EAAS5sC,SAAS6sC,cAAc,WACzB/qC,aAAa,QAASqqF,KAC7Bv/C,EAAOrqE,KAAO+9F,EACdtgE,SAAS/S,KAAK6/C,YAAYF,GAAQ59D,WAAW+9D,YAAYH,QACpD,GAAIjrF,EAAKgjB,MAAM,sBAAuB,CAC3C+hE,EAAS,IAAIo0B,UACbn5G,EAAOA,EAAKiW,QAAQ,MAAO,IAE3B,IACE0oG,EAAW55B,EAAOq0B,gBAAgBuF,EAAU3+G,GAC5C,MAAOs4D,KAIb,OAAOqmD,GAGT+qB,EAAMhyC,KAAO,SAAU9pE,GACrB,OAAOA,EAAQ8pE,MAGjBgyC,EAAMiC,cAAgB,SAAUlwB,GAC9B,IAAOlB,EAAcsC,GACrBtC,EAAel8D,SAAS6sC,cAAc,MACzBwM,KAAOH,SAASG,KAC7BmlB,EAAYx+D,SAAS6sC,cAAc,KAEnC,IAEE,OADA2xB,EAAUnlB,KAAO+jB,MACNoB,EAAUlB,UAAmC,MAAvBkB,EAAUlB,YAAsBkB,EAAUvvF,MAAQitF,EAAaoB,SAAW,KAAOpB,EAAajtF,OAASuvF,EAAUlB,SAAW,KAAOkB,EAAUvvF,MAC9K,MAAOgrC,GAEP,OADIA,GACG,KAGV/+D,KAAK0d,MACR,WACE,IAAI8L,EAAS2oE,EACb3oE,EAAU2mH,EAAM3mH,QAEhB2oE,EAAU,SAAiBnuF,GACzB,OAAOjC,MAAMN,UAAUmD,MAAM5E,KAAKgE,IAGpCmsI,EAAMkC,iBAAmB,SAAUh+G,EAASi+G,GAC1C,IAAI7nH,EAAQ41B,EAsCZ,OArCA51B,EAAS,CAAC4J,GAEN7K,EAAQ6K,EAAS,UACnB5J,EAAS0nE,EAAQ99D,EAAQ9T,WAG3B8/B,EAAS,GACT51B,EAAOiB,SAAQ,SAAUpO,GACvB,GAAKA,EAAMld,OAAQkd,EAAM8vB,WAIrB5jB,EAAQlM,EAAO,wBAInB,OAAIkM,EAAQlM,EAAO,UACV60E,EAAQ70E,EAAM5U,SAASgjB,SAAQ,SAAUwY,GAC9C,GAAIA,EAAOo6D,SACT,OAAOj+C,EAAOj9B,KAAK,CACjBhjB,KAAMkd,EAAMld,KACZU,MAAOojC,EAAOpjC,WAIXwc,EAAM+gF,UAAoE,IAAzD,CAAC,QAAS,WAAY,UAAU71F,QAAQ8U,EAAM7W,MACjE45C,EAAOj9B,KAAK,CACjBhjB,KAAMkd,EAAMld,KACZU,MAAOwc,EAAMxc,aAHV,KAQLwxI,GACFjyF,EAAOj9B,KAAKkvH,GAGPjyF,EAAOj4C,KAAI,SAAUmgF,GAC1B,OAAkB,MAAdA,EAAMnoF,KACDigH,mBAAmB93B,EAAMnoF,MAAQ,IAAMigH,mBAAmB93B,EAAMznF,OAEhEynF,KAERp6D,KAAK,MAGVgiH,EAAMoC,aAAe,SAAUC,EAAMxgD,GACnC,OAAIxoE,EAAQgpH,EAAM,QACTrgD,EAAQqgD,EAAKjyH,UAAUiO,QAAO,SAAU+I,GAC7C,OAAO/N,EAAQ+N,EAAIy6D,MAGdG,EAAQqgD,EAAKh6C,iBAAiBxG,MAGxChyF,KAAK0d,MACR,WACE,IAAI+0H,EAAavtC,EAAMwsC,EACvBxsC,EAAOirC,EAAMjrC,KAAMwsC,EAAiBvB,EAAMuB,eAE1CvB,EAAMuC,cAAgB,SAAU1uI,GAC9B,IAAKyuI,EAAY/0H,MACf,OAAOg0H,EAAe1tI,IAI1BmsI,EAAM3hB,QAAU,SAAU1mB,EAASzzE,GACjC,OAAOm6F,QAAQ1mB,IAGjB2qC,EAAc,SAAqBp+G,GACjC,IAAIs+G,EAAQztI,EAAU4iG,EAGtB,KAFAA,EAAUzzE,EAAQiyB,aAAa,iBAG7B,OAAO,EAKT,GAFAqsF,GAAS,EAELztC,EAAK7wE,EAAS,WAAY,CAC5B,IACEs+G,EAASxC,EAAM3hB,QAAQ1mB,EAASzzE,GAChC,MAAO0qC,IAET75D,EAAWggG,EAAK7wE,EAAS,mBAAoB,CAACs+G,IAGhD,OAAOA,GAAUztI,IAElBlF,KAAK0d,MACR,WACE,IAAIk1H,EAAoBC,EAAqBC,EAAoBC,EAAmBC,EAAoBC,EAAmBV,EAAc9oC,EAASypC,EAAe1pH,EAAS0nH,EAASQ,EACnLloH,EAAU2mH,EAAM3mH,QAASigF,EAAU0mC,EAAM1mC,QAASynC,EAAUf,EAAMe,QAASQ,EAAiBvB,EAAMuB,eAAgBa,EAAepC,EAAMoC,aAEvIpC,EAAMgD,sBAAwB,SAAUnvI,GAItC,GAFU0Z,UAEE0vB,SACV,OAAOskG,EAAe1tI,IAI1BmsI,EAAMiD,cAAgB,SAAUpvI,GAC9B,IAAIqwB,EAEJ,GAAIrwB,aAAasqG,MAAO,CACtB,GAAI4kC,EAAclvI,GAChB,OAGFqwB,EAAUrwB,EAAEZ,YAEZixB,EAAUrwB,EAGZ,OAAIwlB,EAAQ6K,EAAS87G,EAAMU,qBAClBoC,EAAkB5+G,GAChB7K,EAAQ6K,EAAS87G,EAAMW,wBAA0BtnH,EAAQ6K,EAAS87G,EAAMQ,oBAC1EoC,EAAkB1+G,GAChB7K,EAAQ6K,EAAS87G,EAAMK,oBACzBwC,EAAmB3+G,QADrB,GAKT87G,EAAMkD,eAAiB,SAAUrvI,GAC/B,IAAIqwB,EAGJ,OAFAA,EAAUrwB,aAAasqG,MAAQtqG,EAAEZ,OAASY,EAEtCwlB,EAAQ6K,EAAS87G,EAAMU,qBAClBiC,EAAmBz+G,GACjB7K,EAAQ6K,EAAS87G,EAAMW,wBAA0BtnH,EAAQ6K,EAAS87G,EAAMO,qBAC1EkC,EAAmBv+G,GACjB7K,EAAQ6K,EAAS87G,EAAMK,oBACzBqC,EAAoBx+G,QADtB,GAKTy+G,EAAqB,SAA4Bz+G,GAC/C,IAAIi/G,EAEJ,IAAI7pC,EAAQp1E,EAAS,gBAYrB,OANmB,OAFnBi/G,EAAcj/G,EAAQiyB,aAAa,wBAGjC4qF,EAAQ78G,EAAS,kBAAmBA,EAAQomE,WAC5CpmE,EAAQomE,UAAY64C,GAGtBj/G,EAAQ+C,iBAAiB,QAASs6G,GAC3BR,EAAQ78G,EAAS,gBAAgB,IAG1C4+G,EAAoB,SAA2B5+G,GAC7C,IAAIk/G,EASJ,OANoB,OAFpBA,EAAe9pC,EAAQp1E,EAAS,sBAG9BA,EAAQomE,UAAY84C,EACpBrC,EAAQ78G,EAAS,kBAAmB,OAGtCA,EAAQgD,oBAAoB,QAASq6G,GAC9BR,EAAQ78G,EAAS,eAAgB,OAG1Cw+G,EAAsB,SAA6BL,GACjD,OAAOD,EAAaC,EAAMrC,EAAMO,qBAAqBhlH,QAAQknH,IAG/DA,EAAqB,SAA4Bv+G,GAC/C,IAAIi/G,EAEJ,IAAI7pC,EAAQp1E,EAAS,gBAiBrB,OAXmB,OAFnBi/G,EAAcj/G,EAAQiyB,aAAa,wBAG7B98B,EAAQ6K,EAAS,WACnB68G,EAAQ78G,EAAS,kBAAmBA,EAAQomE,WAC5CpmE,EAAQomE,UAAY64C,IAEpBpC,EAAQ78G,EAAS,kBAAmBA,EAAQvzB,OAC5CuzB,EAAQvzB,MAAQwyI,IAIpBj/G,EAAQ+Y,UAAW,EACZ8jG,EAAQ78G,EAAS,gBAAgB,IAG1C2+G,EAAqB,SAA4BR,GAC/C,OAAOD,EAAaC,EAAMrC,EAAMQ,oBAAoBjlH,QAAQqnH,IAG9DA,EAAoB,SAA2B1+G,GAC7C,IAAIk/G,EAcJ,OAXoB,OAFpBA,EAAe9pC,EAAQp1E,EAAS,sBAG1B7K,EAAQ6K,EAAS,UACnBA,EAAQomE,UAAY84C,EAEpBl/G,EAAQvzB,MAAQyyI,EAGlBrC,EAAQ78G,EAAS,kBAAmB,OAGtCA,EAAQ+Y,UAAW,EACZ8jG,EAAQ78G,EAAS,eAAgB,OAG1C6+G,EAAgB,SAAuBzyG,GACrC,IAAIuwG,EAAK1qB,EAET,OAA2E,OAA5D,OADfA,EAA8B,OAAvB0qB,EAAMvwG,EAAM6wE,QAAkB0/B,EAAI,QAAK,GACxB1qB,EAAIrC,kBAAkB,uBAAoB,KAEjEjkH,KAAK0d,MACR,WACE,IAAIg0H,EACJA,EAAiBvB,EAAMuB,eAEvBvB,EAAMqD,aAAe,SAAUxvI,GAC7B,IAAImtI,EAAWC,EAAWoB,EAAMiB,EAAat1C,EAAMu1C,EAAM3wG,EAIzD,GAFAA,GADA2wG,EAAOh2H,MACO4oC,aAAa,eAwB3B,OAlBA63C,EAAOgyC,EAAMhyC,KAAKu1C,GAClBtC,EAAYjB,EAAMiB,YAClBD,EAAYhB,EAAMgB,YAClBqB,EAAO1tF,SAAS6sC,cAAc,QAC9B8hD,EAAc,gCAAkC1wG,EAAS,qBAExC,MAAbouG,GAAkC,MAAbC,GAAsBjB,EAAMiC,cAAcj0C,KACjEs1C,GAAe,gBAAkBtC,EAAY,YAAcC,EAAY,sBAGzEqC,GAAe,0BACfjB,EAAKzvG,OAAS,OACdyvG,EAAKmB,OAASx1C,EACdq0C,EAAKpvI,OAASswI,EAAKtwI,OACnBovI,EAAK/3C,UAAYg5C,EACjBjB,EAAK5xH,MAAMu7B,QAAU,OACrB2I,SAASs2B,KAAKwW,YAAY4gD,GAC1BA,EAAKpnB,cAAc,mBAAmB1a,QAC/BghC,EAAe1tI,KAEvBhE,KAAK0d,MACR,WACE,IAAIslG,EACA9d,EACAuE,EACA2oC,EACAwB,EACApqH,EACA6oH,EACAnB,EACAQ,EACA9sI,EAAQ,GAAGA,MACf4kB,EAAU2mH,EAAM3mH,QAASigF,EAAU0mC,EAAM1mC,QAASynC,EAAUf,EAAMe,QAAShsC,EAAOirC,EAAMjrC,KAAMwsC,EAAiBvB,EAAMuB,eAAgB1uB,EAAOmtB,EAAMntB,KAAMovB,EAAgBjC,EAAMiC,cAAeC,EAAmBlC,EAAMkC,iBAEtNuB,EAAW,SAAkBv/G,GAC3B,IAAIvzB,EAEJ,OAAgB,OADhBA,EAAQuzB,EAAQiyB,aAAa,iBACK,UAAVxlD,GAG1BqvI,EAAM0D,aAAe,SAAU7vI,GAC7B,IAAIqsG,EAAQxtF,EAAMu+F,EAAU/sF,EAAS0O,EAAQm/E,EAAKgwB,EAGlD,OAAK0B,EAFLv/G,EAAU3W,QAMLwnF,EAAK7wE,EAAS,gBAKnB69G,EAAkB79G,EAAQiyB,aAAa,yBACvC86D,EAAW/sF,EAAQiyB,aAAa,cAAgB,SAE5C98B,EAAQ6K,EAAS87G,EAAMK,qBACzBngC,EAAS5G,EAAQp1E,EAAS,qBAC1B0O,EAAS0mE,EAAQp1E,EAAS,iCAAmCA,EAAQ0O,OACrEm/E,EAAMzY,EAAQp1E,EAAS,iCAAmCA,EAAQiyB,aAAa,WAAa03C,SAASG,KAExE,QAAzBp7D,EAAOt5B,gBACTy4G,EAAMA,EAAIxlG,QAAQ,QAAS,KAGL,wBAApB2X,EAAQy/G,SACVjxH,EAAO,IAAIkxH,SAAS1/G,GAEN,MAAVg8E,GACFxtF,EAAKyxF,OAAOjE,EAAOjwG,KAAMiwG,EAAOvvG,QAGlC+hB,EAAOwvH,EAAiBh+G,EAASg8E,GAGnC6gC,EAAQ78G,EAAS,oBAAqB,MACtC68G,EAAQ78G,EAAS,+BAAgC,MACjD68G,EAAQ78G,EAAS,+BAAgC,OACxC7K,EAAQ6K,EAAS87G,EAAME,sBAAwB7mH,EAAQ6K,EAAS87G,EAAMI,sBAC/ExtG,EAAS1O,EAAQiyB,aAAa,eAC9B47D,EAAM7tF,EAAQiyB,aAAa,YAC3BzjC,EAAOwvH,EAAiBh+G,EAASA,EAAQiyB,aAAa,kBAEtDvjB,EAAS1O,EAAQiyB,aAAa,eAC9B47D,EAAMiuB,EAAMhyC,KAAK9pE,GACjBxR,EAAOwR,EAAQiyB,aAAa,gBAG9B08D,EAAK,CACHv8G,KAAMs8B,GAAU,MAChBm/E,IAAKA,EACLr/F,KAAMA,EACNu+F,SAAUA,EACV0D,WAAY,SAAoBwB,EAAK59G,GACnC,OAAIw8F,EAAK7wE,EAAS,kBAAmB,CAACiyF,EAAK59G,IAClCw8F,EAAK7wE,EAAS,YAAa,CAACiyF,KAEnCphB,EAAK7wE,EAAS,iBACP,IAGX0wF,QAAS,WACP,IAAIt/G,EAEJ,OADAA,EAAO,GAAKG,UAAUtC,OAASsB,EAAM5E,KAAK4F,UAAW,GAAK,GACnDs/F,EAAK7wE,EAAS,eAAgB5uB,IAEvCs5D,MAAO,WACL,IAAIt5D,EAEJ,OADAA,EAAO,GAAKG,UAAUtC,OAASsB,EAAM5E,KAAK4F,UAAW,GAAK,GACnDs/F,EAAK7wE,EAAS,aAAc5uB,IAErC86B,SAAU,WACR,IAAI96B,EAEJ,OADAA,EAAO,GAAKG,UAAUtC,OAASsB,EAAM5E,KAAK4F,UAAW,GAAK,GACnDs/F,EAAK7wE,EAAS,gBAAiB5uB,IAExCi/G,YAAa0tB,EAAclwB,GAC3BgwB,gBAAoC,MAAnBA,GAA+C,UAApBA,IAEvCR,EAAe1tI,KAtEpBkhG,EAAK7wE,EAAS,iBACP,KAwEX87G,EAAM6D,sBAAwB,SAAUhwI,GACtC,IAAIqsG,EAAQmiC,EAIZ,GAFAA,GADAniC,EAAS3yF,MACK80H,KAed,OATIniC,EAAOjwG,MACT8wI,EAAQsB,EAAM,oBAAqB,CACjCpyI,KAAMiwG,EAAOjwG,KACbU,MAAOuvG,EAAOvvG,QAIlBowI,EAAQsB,EAAM,4BAA6BniC,EAAO4jC,gBAClD/C,EAAQsB,EAAM,+BAAgCniC,EAAO/pD,aAAa,eAC3D4qF,EAAQsB,EAAM,+BAAgCniC,EAAO/pD,aAAa,gBAG3E6pF,EAAM+D,0BAA4B,SAAUlwI,GAC1C,IAAI6e,EAAMsxH,EAAyCpxG,EAQnD,GAPOrlB,KACPqlB,GADOrlB,KACQ4oC,aAAa,gBAAkB,OAAO78C,cACrDoZ,EAFOnF,KAEK4oC,aAAa,eAEzB6tF,GADYnwI,EAAEwtG,SAAWxtG,EAAEqtG,UACsB,QAAXtuE,IAAqBlgB,EACxB,MAAZ7e,EAAEqsG,QAA+B,IAAbrsG,EAAEqsG,QAEjB8jC,EAC1B,OAAOnwI,EAAEmqG,6BAGZnuG,KAAK0d,MACR,WACE,IAAI6sG,EAAG8mB,EAAgBznB,EAAUypB,EAAgBD,EAAeluC,EAAM8uC,EAAuBvqC,EAASipC,EAAeS,EAAuBK,EAAcK,EAAc9C,EAAcmD,EAA2B5C,EAGjN,GAFApsC,EAAOirC,EAAMjrC,KAAM0kB,EAAWumB,EAAMvmB,SAAUngB,EAAU0mC,EAAM1mC,QAAS8gB,EAAI4lB,EAAM5lB,EAAG+mB,EAAoBnB,EAAMmB,kBAAmBD,EAAiBlB,EAAMkB,eAAgBN,EAAeZ,EAAMY,aAAcqC,EAAgBjD,EAAMiD,cAAeC,EAAiBlD,EAAMkD,eAAgBF,EAAwBhD,EAAMgD,sBAAuBT,EAAgBvC,EAAMuC,cAAewB,EAA4B/D,EAAM+D,0BAA2BL,EAAe1D,EAAM0D,aAAcG,EAAwB7D,EAAM6D,sBAAuBR,EAAerD,EAAMqD,aAErgB,qBAAXzhD,GAAqC,OAAXA,GAAkC,MAAfA,EAAOixB,KAAc,CAC3E,GAAIjxB,EAAOqiD,MACT,MAAM,IAAIlmH,MAAM,kEAGlB6jE,EAAOqiD,MAAQjE,EACfp+C,EAAO+wB,eAAc,SAAUp6G,EAASkyG,EAAiB0L,GACvD,IAAK59G,EAAQg8G,YACX,OAAO2sB,EAAe/qB,MAK5B6pB,EAAMhqI,MAAQ,WACZ,GAAIlB,OAAOovI,cACT,MAAM,IAAInmH,MAAM,sCAiDlB,OA9CAjpB,OAAOmyB,iBAAiB,YAAY,WAMlC,OALAmzF,EAAE4lB,EAAMQ,oBAAoBjlH,SAAQ,SAAU6L,GAC5C,GAAIkyE,EAAQlyE,EAAI,gBACd,OAAO67G,EAAc77G,MAGlBgzF,EAAE4lB,EAAMU,qBAAqBnlH,SAAQ,SAAU6L,GACpD,GAAIkyE,EAAQlyE,EAAI,gBACd,OAAO67G,EAAc77G,SAI3BqyF,EAAS9kE,SAAUqrF,EAAMU,oBAAqB,gBAAiBuC,GAC/DxpB,EAAS9kE,SAAUqrF,EAAMU,oBAAqB,eAAgBuC,GAC9DxpB,EAAS9kE,SAAUqrF,EAAMW,sBAAuB,gBAAiBsC,GACjExpB,EAAS9kE,SAAUqrF,EAAMW,sBAAuB,eAAgBsC,GAChExpB,EAAS9kE,SAAUqrF,EAAMC,kBAAmB,QAAS8D,GACrDtqB,EAAS9kE,SAAUqrF,EAAMC,kBAAmB,QAAS+C,GACrDvpB,EAAS9kE,SAAUqrF,EAAMC,kBAAmB,QAASsC,GACrD9oB,EAAS9kE,SAAUqrF,EAAMC,kBAAmB,QAASiD,GACrDzpB,EAAS9kE,SAAUqrF,EAAMC,kBAAmB,QAASyD,GACrDjqB,EAAS9kE,SAAUqrF,EAAMC,kBAAmB,QAASoD,GACrD5pB,EAAS9kE,SAAUqrF,EAAME,oBAAqB,QAAS6D,GACvDtqB,EAAS9kE,SAAUqrF,EAAME,oBAAqB,QAAS8C,GACvDvpB,EAAS9kE,SAAUqrF,EAAME,oBAAqB,QAASqC,GACvD9oB,EAAS9kE,SAAUqrF,EAAME,oBAAqB,QAASgD,GACvDzpB,EAAS9kE,SAAUqrF,EAAME,oBAAqB,QAASwD,GACvDjqB,EAAS9kE,SAAUqrF,EAAMI,oBAAqB,SAAU4C,GACxDvpB,EAAS9kE,SAAUqrF,EAAMI,oBAAqB,SAAUmC,GACxD9oB,EAAS9kE,SAAUqrF,EAAMI,oBAAqB,SAAUsD,GACxDjqB,EAAS9kE,SAAUqrF,EAAMK,mBAAoB,SAAU2C,GACvDvpB,EAAS9kE,SAAUqrF,EAAMK,mBAAoB,SAAUkC,GACvD9oB,EAAS9kE,SAAUqrF,EAAMK,mBAAoB,SAAUqD,GACvDjqB,EAAS9kE,SAAUqrF,EAAMK,mBAAoB,UAAU,SAAUxsI,GAC/D,OAAO46D,YAAW,WAChB,OAAOy0E,EAAervI,KACrB,OAEL4lH,EAAS9kE,SAAUqrF,EAAMK,mBAAoB,YAAa6C,GAC1DzpB,EAAS9kE,SAAUqrF,EAAMK,mBAAoB,gBAAiB4C,GAC9DxpB,EAAS9kE,SAAUqrF,EAAMM,uBAAwB,QAASyD,GAC1DtqB,EAAS9kE,SAAUqrF,EAAMM,uBAAwB,QAAS0C,GAC1DvpB,EAAS9kE,SAAUqrF,EAAMM,uBAAwB,QAASiC,GAC1D9oB,EAAS9kE,SAAUqrF,EAAMM,uBAAwB,QAASuD,GAC1DlvF,SAAS1tB,iBAAiB,mBAAoBk6G,GAC9CxsF,SAAS1tB,iBAAiB,mBAAoB25G,GACvC9rI,OAAOovI,eAAgB,GAG5BpvI,OAAOkrI,QAAUA,GAASjrC,EAAKpgD,SAAU,yBAC3CqrF,EAAMhqI,SAEPnG,KAAK0d,QACP1d,KAAK0d,MAEgE,WAArB5a,EAAQlD,IAAyBA,EAAOD,QACzFC,EAAOD,QAAUwwI,OAEL,2BAAZ,KAAY,oCAEbnwI,KAAK0d,Q,yCClyBR,QAyBoB,oBAAVzY,QAAwBA,YARhB,2BAAd,EAQ6C,WAC/C,aAEA,SAAS6iI,KAET,IAAI3qH,EAAQ2qH,EAAUrmI,UAyFtB,OAvFA0b,EAAMy1F,GAAK,SAAU24B,EAAWjgH,GAC9B,GAAKigH,GAAcjgH,EAAnB,CAKA,IAAI9K,EAAS9C,KAAK42H,QAAU52H,KAAK42H,SAAW,GAExC7oH,EAAYjL,EAAO+qH,GAAa/qH,EAAO+qH,IAAc,GAMzD,OAJoC,GAAhC9/G,EAAUjjB,QAAQ8iB,IACpBG,EAAUrI,KAAKkI,GAGV5N,OAGTP,EAAMgoF,KAAO,SAAUomC,EAAWjgH,GAChC,GAAKigH,GAAcjgH,EAAnB,CAKA5N,KAAKk1F,GAAG24B,EAAWjgH,GAGnB,IAAIipH,EAAa72H,KAAK82H,YAAc92H,KAAK82H,aAAe,GAKxD,OAHoBD,EAAWhJ,GAAagJ,EAAWhJ,IAAc,IAEvDjgH,IAAY,EACnB5N,OAGTP,EAAMywF,IAAM,SAAU29B,EAAWjgH,GAC/B,IAAIG,EAAY/N,KAAK42H,SAAW52H,KAAK42H,QAAQ/I,GAE7C,GAAK9/G,GAAcA,EAAUnoB,OAA7B,CAIA,IAAI2E,EAAQwjB,EAAUjjB,QAAQ8iB,GAM9B,OAJc,GAAVrjB,GACFwjB,EAAU1H,OAAO9b,EAAO,GAGnByV,OAGTP,EAAMwuH,UAAY,SAAUJ,EAAW9lI,GACrC,IAAIgmB,EAAY/N,KAAK42H,SAAW52H,KAAK42H,QAAQ/I,GAE7C,GAAK9/G,GAAcA,EAAUnoB,OAA7B,CAKAmoB,EAAYA,EAAU7mB,MAAM,GAC5Ba,EAAOA,GAAQ,GAIf,IAFA,IAAIgvI,EAAgB/2H,KAAK82H,aAAe92H,KAAK82H,YAAYjJ,GAEhD1rI,EAAI,EAAGA,EAAI4rB,EAAUnoB,OAAQzD,IAAK,CACzC,IAAIyrB,EAAWG,EAAU5rB,GACZ40I,GAAiBA,EAAcnpH,KAK1C5N,KAAKkwF,IAAI29B,EAAWjgH,UAEbmpH,EAAcnpH,IAIvBA,EAASvlB,MAAM2X,KAAMjY,GAGvB,OAAOiY,OAGTP,EAAMu3H,OAAS,kBACNh3H,KAAK42H,eACL52H,KAAK82H,aAGP1M,IAtGS,mC,gBCjBlB,sBAAoW,OAAtOhlI,EAArD,oBAAXlC,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,IAQnX,SAAWsC,EAAQurF,GAQf,EAAO,CAAC,YAEP,KAFsD,EAAF,SAAYkK,GAC/D,OASK,SAAiBz1F,EAAQy1F,GAClC,aAEA,IAAIqtC,EAAQ,CAGZ,OAAe,SAAU17H,EAAGC,GAC1B,IAAK,IAAIwd,KAAQxd,EACfD,EAAEyd,GAAQxd,EAAEwd,GAGd,OAAOzd,GAIT,OAAe,SAAU6rB,EAAKmzE,GAC5B,OAAQnzE,EAAMmzE,EAAMA,GAAOA,IAIzBspC,EAAa5yI,MAAMN,UAAUmD,MAEjCmjI,EAAMv0C,UAAY,SAAU7wF,GAC1B,OAAIZ,MAAMC,QAAQW,GAETA,EAIG,OAARA,QAAwBgO,IAARhO,EACX,GAGyB,UAAhBG,EAAQH,IAAyC,iBAAdA,EAAIW,OAIhDqxI,EAAW30I,KAAK2C,GAIlB,CAACA,IAIVolI,EAAMmE,WAAa,SAAU0I,EAAKjyI,GAChC,IAAIsF,EAAQ2sI,EAAIpsI,QAAQ7F,IAEV,GAAVsF,GACF2sI,EAAI7wH,OAAO9b,EAAO,IAKtB8/H,EAAM8M,UAAY,SAAUtiD,EAAMP,GAChC,KAAOO,EAAKz+D,YAAcy+D,GAAQztC,SAASs2B,MAGzC,GAFAmX,EAAOA,EAAKz+D,WAER4mE,EAAgBnI,EAAMP,GACxB,OAAOO,GAObw1C,EAAMK,gBAAkB,SAAU71C,GAChC,MAAmB,iBAARA,EACFztC,SAASsmE,cAAc74B,GAGzBA,GAKTw1C,EAAMvuD,YAAc,SAAU/4C,GAC5B,IAAIsC,EAAS,KAAOtC,EAAMh6B,KAEtBiX,KAAKqlB,IACPrlB,KAAKqlB,GAAQtC,IAKjBsnG,EAAM8B,mBAAqB,SAAUx3C,EAAOL,GAE1CK,EAAQ01C,EAAMv0C,UAAUnB,GACxB,IAAIyiD,EAAU,GA0Bd,OAzBAziD,EAAM3mE,SAAQ,SAAU6mE,GAEtB,GAAMA,aAAgBu/B,YAKtB,GAAK9/B,EAAL,CAOI0I,EAAgBnI,EAAMP,IACxB8iD,EAAQ1xH,KAAKmvE,GAMf,IAFA,IAAIwiD,EAAaxiD,EAAKiG,iBAAiBxG,GAE9BnyF,EAAI,EAAGA,EAAIk1I,EAAWzxI,OAAQzD,IACrCi1I,EAAQ1xH,KAAK2xH,EAAWl1I,SAdxBi1I,EAAQ1xH,KAAKmvE,MAiBVuiD,GAIT/M,EAAM6E,eAAiB,SAAUoI,EAAQjH,EAAYkH,GACnDA,EAAYA,GAAa,IAEzB,IAAIlyG,EAASiyG,EAAOvzI,UAAUssI,GAC1BmH,EAAcnH,EAAa,UAE/BiH,EAAOvzI,UAAUssI,GAAc,WAC7B,IAAIlwE,EAAUngD,KAAKw3H,GACnBv2E,aAAad,GACb,IAAIp4D,EAAOG,UAEP6vC,EAAQ/3B,KAEZA,KAAKw3H,GAAet2E,YAAW,WAC7B77B,EAAOh9B,MAAM0vC,EAAOhwC,UACbgwC,EAAMy/F,KACZD,KAKPlN,EAAMoN,SAAW,SAAUjwI,GACzB,IAAIkjG,EAAatjD,SAASsjD,WAER,YAAdA,GAA0C,eAAdA,EAE9BxpC,WAAW15D,GAEX4/C,SAAS1tB,iBAAiB,mBAAoBlyB,IAMlD6iI,EAAMqN,SAAW,SAAU7rI,GACzB,OAAOA,EAAImT,QAAQ,eAAe,SAAU+M,EAAO4rH,EAAIC,GACrD,OAAOD,EAAK,IAAMC,KACjBx4H,eAGL,IAAIuN,EAAUplB,EAAOolB,QA0CrB,OAnCA09G,EAAMyF,SAAW,SAAU+H,EAAa77C,GACtCquC,EAAMoN,UAAS,WACb,IAAIK,EAAkBzN,EAAMqN,SAAS17C,GACjC8P,EAAW,QAAUgsC,EACrBC,EAAgB3wF,SAAS0zC,iBAAiB,IAAMgR,EAAW,KAC3DksC,EAAc5wF,SAAS0zC,iBAAiB,OAASg9C,GACjDnjD,EAAQ01C,EAAMv0C,UAAUiiD,GAAe13H,OAAOgqH,EAAMv0C,UAAUkiD,IAC9DC,EAAkBnsC,EAAW,WAC7BzX,EAAS9sF,EAAO8sF,OACpBM,EAAM3mE,SAAQ,SAAU6mE,GACtB,IACI7pF,EADA8yF,EAAOjJ,EAAKjsC,aAAakjD,IAAajX,EAAKjsC,aAAaqvF,GAG5D,IACEjtI,EAAU8yF,GAAQnjE,KAAKoT,MAAM+vD,GAC7B,MAAOz8B,GAMP,YAJI10C,GACFA,EAAQ00C,MAAM,iBAAmByqC,EAAW,OAASjX,EAAK0H,UAAY,KAAOl7B,IAOjF,IAAI97D,EAAW,IAAIsyI,EAAYhjD,EAAM7pF,GAEjCqpF,GACFA,EAAOlvE,KAAK0vE,EAAMmH,EAAWz2F,UAO9B8kI,EAjNIv3C,CAAQvrF,EAAQy1F,IACxB,2BAVL,CAkBGz1F,S,gBC1BH,SASA,SAAWA,EAAQurF,GAEjB,kBAIgB,2BAAd,KAAc,kCANlB,CAcGvrF,QAAQ,WACT,aAEA,IAAI2wI,EAAgB,WAClB,IAAIC,EAAY5wI,OAAOgiD,QAAQxlD,UAE/B,GAAIo0I,EAAUrsH,QACZ,MAAO,UAIT,GAAIqsH,EAAUn7C,gBACZ,MAAO,kBAMT,IAFA,IAAIxuE,EAAW,CAAC,SAAU,MAAO,KAAM,KAE9BrsB,EAAI,EAAGA,EAAIqsB,EAAS5oB,OAAQzD,IAAK,CACxC,IACIkjC,EADS7W,EAASrsB,GACA,kBAEtB,GAAIg2I,EAAU9yG,GACZ,OAAOA,GApBO,GAyBpB,OAAO,SAAyBwvD,EAAMP,GACpC,OAAOO,EAAKqjD,GAAe5jD,Q,gBCpD/B,QAEcjxF,EAFd,cAAoW,OAAtO+B,EAArD,oBAAXlC,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,GAErW5B,EAEN,WACN,aAEA,SAASiD,EAAEjD,GACT,OAAQiD,EAAI,mBAAqBpD,QAAU,UAAYkC,EAAQlC,OAAOwB,UAAY,SAAU4B,GAC1F,OAAOlB,EAAQkB,IACb,SAAUA,GACZ,OAAOA,GAAK,mBAAqBpD,QAAUoD,EAAEjB,cAAgBnC,QAAUoD,IAAMpD,OAAOa,UAAY,SAAWqB,EAAQkB,KAClHjD,GAGL,SAASA,EAAEiD,EAAGjD,GACZ,KAAMiD,aAAajD,GAAI,MAAM,IAAIyB,UAAU,qCAG7C,SAAS3C,EAAEmE,EAAGjD,GACZ,IAAK,IAAIlB,EAAI,EAAGA,EAAIkB,EAAEuC,OAAQzD,IAAK,CACjC,IAAIyB,EAAIP,EAAElB,GACVyB,EAAEb,WAAaa,EAAEb,aAAc,EAAIa,EAAEsB,cAAe,EAAI,UAAWtB,IAAMA,EAAEuB,UAAW,GAAKtC,OAAOC,eAAewD,EAAG1C,EAAEF,IAAKE,IAI/H,SAASA,EAAE0C,EAAGjD,EAAGO,GACf,OAAOP,GAAKlB,EAAEmE,EAAEvC,UAAWV,GAAIO,GAAKzB,EAAEmE,EAAG1C,GAAI0C,EAG/C,IAAIpC,EAAI+9B,KAAKC,MAEb,SAAS9/B,IACP,IAAIkE,EAAI,GACJjD,GAAI,EACJlB,EAAI,EACJyB,EAAIsE,UAAUtC,OAClB,qBAAuB/C,OAAOkB,UAAUkD,SAAS3E,KAAK4F,UAAU,MAAQ7E,EAAI6E,UAAU,GAAI/F,KAE1F,IAAK,IAAI+B,EAAI,SAAW/B,GACtB,IAAK,IAAIyB,KAAKzB,EACZU,OAAOkB,UAAUC,eAAe1B,KAAKH,EAAGyB,KAAOP,GAAK,oBAAsBR,OAAOkB,UAAUkD,SAAS3E,KAAKH,EAAEyB,IAAM0C,EAAE1C,GAAKxB,GAAE,EAAIkE,EAAE1C,GAAIzB,EAAEyB,IAAM0C,EAAE1C,GAAKzB,EAAEyB,KAEtJzB,EAAIyB,EAAGzB,IAAK,CACb,IAAIS,EAAIsF,UAAU/F,GAClB+B,EAAEtB,GAGJ,OAAO0D,EAGT,SAAS1D,EAAE0D,EAAGjD,GACZ,IAAKuH,EAAEtE,IAAMA,IAAMiB,QAAUjB,IAAM8gD,YAAc9gD,EAAI,CAACA,IAAKqL,EAAErL,IAAM0O,EAAE1O,KAAOA,EAAI,CAACA,IAAK,GAAKsO,EAAEtO,GAAI,GAAIqL,EAAErL,KAAO0O,EAAE1O,GAAI,IAAK,IAAInE,EAAImE,EAAEV,OAAQhC,EAAI,EAAGA,EAAIzB,IAAK,IAAOkB,EAAEf,KAAKgE,EAAE1C,GAAI0C,EAAE1C,GAAIA,EAAG0C,GAAI1C,UAErL,GAAIoR,EAAE1O,GAAI,IAAK,IAAIpC,KAAKoC,EAC7B,GAAIuO,EAAEvO,EAAGpC,KAAM,IAAOb,EAAEf,KAAKgE,EAAEpC,GAAIoC,EAAEpC,GAAIA,EAAGoC,GAAI,MAIpD,SAASrD,EAAEqD,GACT,IAAIjD,EAAI6E,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,KACrE/F,EAAI+F,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,KACrEtE,EAAI0C,EAAEpC,GAAKoC,EAAEpC,IAAM,GACnB9B,EAAI,CACN4kC,IAAKpjC,EACLszB,IAAK,KACLkhH,MAAO,MAET,OAAO/0I,GAAKlB,GAAKyS,EAAEhR,GAAK,GAAKhB,EAAEgB,GAAG,SAAU0C,EAAG1C,GAC7C,GAAI0C,EAAEunI,WAAaxqI,GAAKiD,EAAEqB,GAAGV,YAAc9E,EAAE8E,WAAY,OAAO7E,EAAEg2I,OAAQ,EAAIh2I,EAAE80B,IAAMtzB,GAAG,KACvFxB,EAGN,SAASuM,EAAErI,GACT,IAAIjD,EAAI6E,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,GACrE/F,EAAIkB,EAAEg1I,UACNz0I,EAAIP,EAAEi1I,aACNp0I,EAAIb,EAAEk1I,eACNn2I,OAAI,IAAW8B,GAAKA,EACpByK,EAAItL,EAAEokG,KACNh1F,OAAI,IAAW9D,GAAKA,EACpBlM,EAAIY,EAAEm1I,WACNh2I,OAAI,IAAWC,GAAKA,EACpBwuI,EAAI/oI,UAAUtC,OAAS,EAAIsC,UAAU,QAAK,EAC1CoK,EAAInQ,GAAK,GAEb,SAASkQ,EAAE/L,GACTkO,EAAE5Q,IAAMA,EAAEtB,KAAK2uI,EAAG3qI,EAAG0Z,MAAOvN,GAAKJ,EAAEigE,UAGrC,OAAOzgE,EAAES,KAAOA,EAAI80C,SAAS0zC,iBAAiBxoF,IAAKD,EAAEigE,QAAU,WAC7D1vE,EAAE0P,GAAG,SAAUjP,GACb,IAAIlB,EAAIc,EAAEI,EAAGiD,EAAG+L,GAChBlQ,EAAEi2I,OAASj2I,EAAE6kC,IAAI3gB,OAAOlkB,EAAE+0B,IAAK,GAAI7zB,EAAEs2B,qBAAuBt2B,EAAEs2B,oBAAoBrzB,EAAG+L,EAAG7P,OAEzFI,EAAE0P,GAAG,SAAUjP,GAChB,IAAIlB,EAAIc,EAAEI,EAAGiD,EAAG+L,IACfhP,EAAEq2B,kBAAoBt3B,IAAMD,EAAEi2I,QAAUh2I,KAAOiB,EAAEq2B,iBAAiBpzB,EAAG+L,EAAG7P,GAAIL,EAAE6kC,IAAIthB,KAAK,CACtFmoH,UAAWvnI,EACXqB,GAAI0K,QAEJA,EAGN,SAASI,EAAEnM,EAAGjD,GACZT,EAAES,EAAEue,MAAM,MAAM,SAAUve,GACxB,OAAOiD,EAAEwrH,UAAU1jG,IAAI/qB,MAI3B,SAASZ,EAAE6D,EAAGjD,GACZT,EAAES,EAAEue,MAAM,MAAM,SAAUve,GACxB,OAAOiD,EAAEwrH,UAAUltD,OAAOvhE,MAI9B,SAASb,EAAE8D,EAAGjD,GACZ,OAAOiD,EAAEwrH,UAAU36B,SAAS9zF,GAG9B,SAAS4tI,EAAE3qI,EAAGjD,GACZ,KAAOiD,IAAM8gD,SAASs2B,MAAO,CAC3B,KAAMp3E,EAAIA,EAAEmyI,eAAgB,OAAO,EACnC,GAAI,mBAAqBnyI,EAAEwlB,QAAUxlB,EAAEwlB,QAAQzoB,GAAKiD,EAAE82F,kBAAkB/5F,GAAI,OAAOiD,GAIvF,SAASgM,EAAEhM,GACT,IAAIjD,EAAI6E,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,GACrE/F,EAAI+F,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,IAAMA,UAAU,GACrE,IAAK5B,GAAK,KAAOjD,EAAG,OAAO,EAC3B,GAAI,SAAWA,EAAG,OAAOmR,EAAErS,IAAMA,KAAK,EACtC,IAAIyB,EAAI6J,IACJvJ,EAAIb,EAAEue,MAAM,KAChBhf,EAAEsB,GAAG,SAAUb,GACboP,EAAEnM,EAAG,IAAMjD,MACTsL,EAAE/K,EAAG,CACPy0I,UAAW/xI,EACXiyI,gBAAgB,EAChB9wC,MAAM,EACN6wC,aAAc,SAAsBhyI,EAAGjD,GACrCT,EAAEsB,GAAG,SAAUoC,GACb7D,EAAEY,EAAG,IAAMiD,MACTkO,EAAErS,IAAMA,OAKlB,SAASkQ,EAAE/L,GACT,IAAIjD,EAAI6E,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,GACzE,GAAI,KAAO7E,EAAG,OAAOiD,EAAE4c,MAAMw1H,gBAAkB,GAAIpyI,EAAE4c,MAAMy1H,aAAe,GAAIryI,EAAE4c,MAAM01H,YAAc,GAAItyI,EAAE4c,MAAM21H,WAAa,GAAIvyI,EAAE4c,MAAMmoH,UAAY,IAAI,EACzJ/kI,EAAE4c,MAAMw1H,gBAAkBr1I,EAAGiD,EAAE4c,MAAMy1H,aAAet1I,EAAGiD,EAAE4c,MAAM01H,YAAcv1I,EAAGiD,EAAE4c,MAAM21H,WAAax1I,EAAGiD,EAAE4c,MAAMmoH,UAAYhoI,EAG9H,SAASmD,EAAEF,GACTA,EAAE4c,MAAMu7B,QAAU,QAGpB,SAASx6C,EAAEqC,GACTA,EAAE4c,MAAMu7B,QAAU,OAGpB,SAASl8C,EAAE+D,GACT,IAAIjD,EAAI+jD,SAAS2mD,yBACb5rG,EAAIilD,SAAS6sC,cAAc,OAE/B,IAAK9xF,EAAE46F,UAAYz2F,EAAGnE,EAAEm8F,YACtBj7F,EAAE6wF,YAAY/xF,EAAEm8F,YAGlB,OAAOj7F,EAGT,SAASqK,IACP,MAAO,CACL+X,MAAOle,OAAO6lH,YAAchmE,SAAS80C,gBAAgBpjE,aAAesuB,SAASs2B,KAAK5kD,YAClF/R,OAAQxf,OAAO8lH,aAAejmE,SAAS80C,gBAAgBnjE,cAAgBquB,SAASs2B,KAAK3kD,cAIzF,SAAStrB,IACP,IAAInH,EACAjD,EAAI+jD,SAAS6sC,cAAc,eAC3B9xF,EAAI,CACNigB,UAAW,eACXuyG,WAAY,gBACZmkB,aAAc,eACdpkB,gBAAiB,sBAGnB,IAAKpuH,KAAKnE,EACR,QAAI,IAAWkB,EAAE6f,MAAM5c,GAAI,OAAOnE,EAAEmE,GAIxC,SAASsI,EAAEtI,EAAGjD,EAAGlB,EAAGyB,GAClB,GAAI0C,IAAKjD,QAAS,CAChB,IAAIa,EACJ/B,IAAMA,EAAI,KACV,IAAIC,EAAI22I,aAAY,WAClBzyI,MAAQ0yI,cAAc52I,GAAI8B,GAAK+8D,aAAa/8D,GAAIb,OAC/ClB,GACHyB,IAAMM,EAAIg9D,YAAW,WACnB83E,cAAc52I,KACbwB,KAIP,SAAS6Q,EAAEnO,EAAGjD,EAAGlB,GACf,GAAIiT,EAAE9O,GAAIqmB,QAAQ00C,MAAM,4BAA4B,GAAI7sD,EAAEnR,KAAOlB,EAAIkB,EAAGA,GAAI,GAAKwO,EAAExO,IAAMA,KAAKkE,OAAQiN,EAAErS,IAAMA,QAAS,CACrH,IAAIyB,EAEJ,IAAK,IAAM0C,EAAEwE,QAAQ,QAAS,CAC5B,IAAKlH,EAAIwjD,SAAS0zC,iBAAiB,cAAgBx0F,EAAI,QAAU1C,EAAEgC,OAAS,EAAG,YAAa4O,EAAErS,IAAMA,KACpG,IAAI+B,EAAIkjD,SAASqzC,qBAAqB,QAAQ,GAC1Cr4F,EAAI8B,EAAE42F,iBAAiB,0BACvBl4F,EAAIwkD,SAAS6sC,cAAc,QAC/B,OAAOrxF,EAAEq2I,IAAM,aAAcr2I,EAAEmG,KAAO,WAAYnG,EAAE69F,KAAOn6F,EAAG1D,EAAEs2I,MAAQ,MAAO92I,EAAI8B,EAAE4yG,aAAal0G,EAAGR,EAAE,IAAM8B,EAAEgwF,YAAYtxF,QAAU4R,EAAErS,IAAMA,KAG/I,IAAKyB,EAAIwjD,SAAS0zC,iBAAiB,eAAiBx0F,EAAI,QAAU1C,EAAEgC,OAAS,GAC3E,GAAI4O,EAAErS,GAAI,CACR,GAAI0P,EAAExO,GAAI,OAAOuL,GAAE,WACjB,YAAO,IAAWrH,OAAOlE,MACxB,WACDlB,QACE,EACJA,SAEG,CACL,IAAIc,EAAImkD,SAAS6sC,cAAc,UAC/BhxF,EAAE8F,KAAO,kBAAmB9F,EAAEgzE,IAAM3vE,EAAGrD,EAAEqmH,OAAS,WAChD,GAAI90G,EAAErS,GAAI,CACR,GAAI0P,EAAExO,GAAI,OAAOuL,GAAE,WACjB,YAAO,IAAWrH,OAAOlE,MACxB,WACDlB,QACE,EACJA,MAEDilD,SAASs2B,KAAKwW,YAAYjxF,KAKnC,SAASmQ,IACP,MAAO,cAAe7L,QAAUA,OAAOi5H,UAAUC,UAAU10G,MAAM,4GAGnE,SAASvX,EAAElO,GACT,MAAO,mBAAqBA,EAG9B,SAASuL,EAAEvL,GACT,MAAO,iBAAmBA,EAG5B,SAASsE,EAAEtE,GACT,SAAUA,IAAMA,EAAEktF,UAAY,GAAKltF,EAAEktF,UAGvC,SAASzhF,EAAEzL,GACT,OAAOjC,MAAMC,QAAQgC,GAGvB,SAASqL,EAAErL,GACT,OAAOA,GAAKA,EAAEV,QAAUwD,SAAS9C,EAAEV,QAGrC,SAASoP,EAAE3R,GACT,MAAO,WAAaiD,EAAEjD,IAAM,MAAQA,IAAMmR,EAAEnR,KAAO0O,EAAE1O,GAGvD,SAAS+R,EAAE9O,GACT,OAAO,MAAQA,EAGjB,SAASuO,EAAEvO,EAAGjD,GACZ,OAAO,OAASiD,GAAKtC,eAAe1B,KAAKgE,EAAGjD,GAG9C,SAASuR,EAAEtO,GACT,GAAI0O,EAAE1O,GAAI,CACR,GAAIA,EAAEyD,KAAM,OAAOzD,EAAEyD,OAAOnE,OAC5B,IAAIvC,EAAI,EAER,IAAK,IAAIlB,KAAKmE,EACZuO,EAAEvO,EAAGnE,IAAMkB,IAGb,OAAOA,EAGT,OAAOiD,EAAEV,OAGX,SAASmP,EAAEzO,GACT,OAAQkH,MAAM7D,WAAWrD,KAAO8C,SAAS9C,GAG3C,SAAS69C,IACP,IAAI79C,EAAI4B,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,IAAM,EACtE7E,EAAI+jD,SAAS0zC,iBAAiB,uCAClC,IAAKz3F,EAAEuC,OAAQ,OAAO,EACtB,GAAI,GAAKvC,EAAEuC,OAAQ,OAAOvC,EAAE,GAC5B,iBAAmBiD,IAAMA,EAAI2Y,SAAS3Y,IACtC,IAAInE,EAAI,GACRS,EAAES,GAAG,SAAUiD,GACbnE,EAAEujB,KAAKpf,EAAEsiD,aAAa,qBAExB,IAAIhlD,EAAIuI,KAAK6B,IAAI3F,MAAM8D,KAAMhK,EAAEuI,KAAI,SAAUpE,GAC3C,OAAO2Y,SAAS3Y,OAEdpC,EAAIoC,EAAI,EAAI,EAAIA,EAAI,EACxBpC,EAAIN,IAAMM,EAAI,KACd,IAAI9B,EAAID,EAAE2uB,QAAO,SAAUxqB,GACzB,OAAOA,GAAK2Y,SAAS/a,MAEnBjB,EAAIb,EAAE4vC,OAAO,GACjB,OAAOoV,SAASsmE,cAAc,wBAAwBrtG,OAAOpd,EAAG,OAGlE,SAASmR,EAAE9N,GACT,GAAIA,EAAEwc,OAAO9e,eAAe,YAAa,OAAO,EAChDsC,EAAEwc,OAAOq2H,SAAWxqI,EAAE,UAAW,CAC/B0pI,UAAW9wI,OACX+wI,aAAc,SAAsBj1I,EAAGlB,GACrC,IAAIyB,GAAKP,EAAIA,GAAKkE,OAAOw7B,OAAOqxE,QAEhC,GAAI,GAAKxwG,EAAG,CACV,IAAIM,EAAIkjD,SAASsmE,cAAc,iBAE/B,IAAKxpH,EAAG,CACN,IAAI9B,KAAOglD,SAASm5C,gBAAkBn5C,SAASm5C,cAAcxG,WAAa3yC,SAASm5C,cAAcxG,SAASq/C,oBAC1G,GAAI,SAAWh3I,GAAK,YAAcA,GAAK,UAAYA,EAAG,OAGxDiB,EAAEqtG,iBACF,IAAI9tG,EAAIwkD,SAAS0zC,iBAAiB,wBAClC,IAAKl4F,GAAKA,EAAEgD,QAAU,EAAG,OAEzB,IAAK1B,EAAG,CACN,IAAIjB,EAAIkhD,IACR,YAAalhD,IAAMA,EAAE4xG,QAASpiG,EAAExP,EAAG,aAGrC,IAAI0L,EAAIw1C,EAAEjgD,EAAE0kD,aAAa,kBACzBnmD,EAAEyB,EAAG,WAAYyK,IAAMA,EAAEkmG,QAASpiG,EAAE9D,EAAG,YAGzC,IAAM/K,GAAK0C,EAAE+yI,YAAa,IAAMz1I,GAAK0C,EAAEgzI,YAAa,IAAM11I,GAAK0C,EAAEwoH,WAKvE,SAAS36G,EAAE7N,GACT,OAAO6F,KAAKsC,KAAKnI,EAAEmH,EAAInH,EAAEmH,EAAInH,EAAEoH,EAAIpH,EAAEoH,GAoBvC,IAAIoH,EAAI,WACN,SAASxO,EAAEnE,GACTkB,EAAE2c,KAAM1Z,GAAI0Z,KAAKgxF,SAAW,GAAIhxF,KAAK6Z,GAAK13B,EAG5C,OAAOyB,EAAE0C,EAAG,CAAC,CACX5C,IAAK,MACLN,MAAO,SAAekD,GACpB0Z,KAAKgxF,SAAStrF,KAAKpf,KAEpB,CACD5C,IAAK,MACLN,MAAO,SAAekD,GACpBA,IAAM0Z,KAAKgxF,SAAW,IAEtB,IAAK,IAAI3tG,EAAI2c,KAAKgxF,SAASprG,OAAQvC,GAAK,EAAGA,IACzC2c,KAAKgxF,SAAS3tG,KAAOiD,GAAK0Z,KAAKgxF,SAAS3qF,OAAOhjB,EAAG,KAGrD,CACDK,IAAK,WACLN,MAAO,WACL,IAAK,IAAIkD,EAAI,EAAGjD,EAAI2c,KAAKgxF,SAASprG,OAAQU,EAAIjD,EAAGiD,IAAK,CACpD,IAAInE,EAAI6d,KAAKgxF,SAAS1qG,GACtB,mBAAqBnE,GAAKA,EAAEkG,MAAM2X,KAAK6Z,GAAI3xB,gBAG5C5B,EA3BC,GA8BR,SAASwL,EAAExL,EAAGjD,GACZ,IAAIlB,EAAI,IAAI2S,EAAExO,GACd,OAAOnE,EAAEisB,IAAI/qB,GAAIlB,EAGnB,IAAI4kG,EAAI,WACN,SAASzgG,EAAEnE,EAAGyB,GACZP,EAAE2c,KAAM1Z,GAAI0Z,KAAK2W,QAAU,iBAAmBx0B,EAAIilD,SAASsmE,cAAcvrH,GAAKA,EAAG6d,KAAKvX,MAAQuX,KAAKvX,MAAM9E,KAAKqc,MAAOA,KAAKwxB,KAAOxxB,KAAKwxB,KAAK7tC,KAAKqc,MAAOA,KAAKtX,IAAMsX,KAAKtX,IAAI/E,KAAKqc,MAAOA,KAAKujB,OAASvjB,KAAKujB,OAAO5/B,KAAKqc,MAAOA,KAAK2W,QAAQ+C,iBAAiB,aAAc1Z,KAAKvX,OAAO,GAAKuX,KAAK2W,QAAQ+C,iBAAiB,YAAa1Z,KAAKwxB,MAAM,GAAKxxB,KAAK2W,QAAQ+C,iBAAiB,WAAY1Z,KAAKtX,KAAK,GAAKsX,KAAK2W,QAAQ+C,iBAAiB,cAAe1Z,KAAKujB,QAAQ,GAAKvjB,KAAKu5H,KAAO,CACvd9rI,EAAG,KACHC,EAAG,MACFsS,KAAKw5H,cAAgB,KAAMx5H,KAAKy5H,KAAO,EAAGz5H,KAAK05H,aAAc,EAEhE,IAAIx1I,EAAI,aAER8b,KAAKyH,OAAS3V,EAAEkO,KAAK2W,QAAS/yB,EAAE6jB,QAAUvjB,GAAI8b,KAAK25H,WAAa7nI,EAAEkO,KAAK2W,QAAS/yB,EAAE+1I,YAAcz1I,GAAI8b,KAAK45H,gBAAkB9nI,EAAEkO,KAAK2W,QAAS/yB,EAAEg2I,iBAAmB11I,GAAI8b,KAAK65H,cAAgB/nI,EAAEkO,KAAK2W,QAAS/yB,EAAEi2I,eAAiB31I,GAAI8b,KAAK85H,MAAQhoI,EAAEkO,KAAK2W,QAAS/yB,EAAEk2I,OAAS51I,GAAI8b,KAAK+5H,MAAQjoI,EAAEkO,KAAK2W,QAAS/yB,EAAEm2I,OAAS71I,GAAI8b,KAAKg6H,IAAMloI,EAAEkO,KAAK2W,QAAS/yB,EAAEo2I,KAAO91I,GAAI8b,KAAKi6H,UAAYnoI,EAAEkO,KAAK2W,QAAS/yB,EAAEq2I,WAAa/1I,GAAI8b,KAAKk6H,QAAUpoI,EAAEkO,KAAK2W,QAAS/yB,EAAEs2I,SAAWh2I,GAAI8b,KAAKm6H,UAAYroI,EAAEkO,KAAK2W,QAAS/yB,EAAEu2I,WAAaj2I,GAAI8b,KAAKo6H,UAAYtoI,EAAEkO,KAAK2W,QAAS/yB,EAAEw2I,WAAal2I,GAAI8b,KAAKq6H,mBAAqBvoI,EAAEkO,KAAK2W,QAAS/yB,EAAEy2I,oBAAsBn2I,GAAI8b,KAAKs6H,UAAYxoI,EAAEkO,KAAK2W,QAAS/yB,EAAE02I,WAAap2I,GAAI8b,KAAKu6H,SAAWzoI,EAAEkO,KAAK2W,QAAS/yB,EAAE22I,UAAYr2I,GAAI8b,KAAKw6H,YAAc1oI,EAAEkO,KAAK2W,QAAS/yB,EAAE42I,aAAet2I,GAAI8b,KAAKy6H,mBAAqBz6H,KAAK2W,QAAS3W,KAAK06H,kBAAoB16H,KAAK26H,UAAUh3I,KAAKqc,MAAOzY,OAAOmyB,iBAAiB,SAAU1Z,KAAK06H,mBAAoB16H,KAAKoU,MAAQ,KAAMpU,KAAK40B,KAAO,KAAM50B,KAAKkiB,IAAM,KAAMliB,KAAK46H,WAAa,KAAM56H,KAAK66H,iBAAmB,KAAM76H,KAAK86H,eAAiB,KAAM96H,KAAK+6H,aAAe,KAAM/6H,KAAKi1C,GAAKj1C,KAAKm1C,GAAKn1C,KAAKk1C,GAAKl1C,KAAKo1C,GAAK,KAAMp1C,KAAKg7H,eAAiB,CAC3oCvtI,EAAG,KACHC,EAAG,MAIP,OAAO9J,EAAE0C,EAAG,CAAC,CACX5C,IAAK,QACLN,MAAO,SAAekD,GACpB,GAAIA,EAAEmxB,QACJ,GAAInxB,EAAEZ,QAAUY,EAAEZ,OAAOq0F,UAAY,CAAC,IAAK,SAAU,SAASjvF,QAAQxE,EAAEZ,OAAOq0F,SAAS36E,gBAAkB,EAAGuN,QAAQsuH,IAAI,uCAAwC30I,EAAEZ,OAAOq0F,SAAS36E,mBAAoB,CACrMY,KAAKkiB,IAAMD,KAAKC,MAAOliB,KAAKi1C,GAAK3uD,EAAEmxB,QAAQ,GAAGs8E,MAAO/zF,KAAKk1C,GAAK5uD,EAAEmxB,QAAQ,GAAGu8E,MAAOh0F,KAAKoU,MAAQpU,KAAKkiB,KAAOliB,KAAK40B,MAAQ50B,KAAKkiB,KAAMliB,KAAK25H,WAAWroC,SAAShrG,EAAG0Z,KAAK2W,SAAU,OAAS3W,KAAKg7H,eAAevtI,IAAMuS,KAAK05H,YAAc15H,KAAKoU,MAAQ,GAAKpU,KAAKoU,OAAS,KAAOjoB,KAAKyB,IAAIoS,KAAKg7H,eAAevtI,EAAIuS,KAAKi1C,IAAM,IAAM9oD,KAAKyB,IAAIoS,KAAKg7H,eAAettI,EAAIsS,KAAKk1C,IAAM,GAAIl1C,KAAK05H,aAAez4E,aAAajhD,KAAK66H,mBAAoB76H,KAAKg7H,eAAevtI,EAAIuS,KAAKi1C,GAAIj1C,KAAKg7H,eAAettI,EAAIsS,KAAKk1C,GAAIl1C,KAAK40B,KAAO50B,KAAKkiB,IAC3f,IAAI7+B,EAAI2c,KAAKu5H,KAEb,GAAIjzI,EAAEmxB,QAAQ7xB,OAAS,EAAG,CACxBoa,KAAKk7H,iBAAkBl7H,KAAKm7H,mBAC5B,IAAIh5I,EAAI,CACNsL,EAAGnH,EAAEmxB,QAAQ,GAAGs8E,MAAQ/zF,KAAKi1C,GAC7BvnD,EAAGpH,EAAEmxB,QAAQ,GAAGu8E,MAAQh0F,KAAKk1C,IAE/B7xD,EAAEoK,EAAItL,EAAEsL,EAAGpK,EAAEqK,EAAIvL,EAAEuL,EAAGsS,KAAKw5H,cAAgBrlI,EAAE9Q,GAAI2c,KAAK45H,gBAAgBtoC,SAAShrG,EAAG0Z,KAAK2W,SAGzF3W,KAAKo7H,aAAc,EAAIp7H,KAAK86H,eAAiB55E,WAAW,WACtDlhD,KAAKk6H,QAAQ5oC,SAAShrG,EAAG0Z,KAAK2W,SAAU3W,KAAKo7H,aAAc,GAC3Dz3I,KAAKqc,MAAO,QAInB,CACDtc,IAAK,OACLN,MAAO,SAAekD,GACpB,GAAIA,EAAEmxB,QAAS,CACb,IAAIp0B,EAAI2c,KAAKu5H,KACTp3I,EAAImE,EAAEmxB,QAAQ7xB,OACdhC,EAAI0C,EAAEmxB,QAAQ,GAAGs8E,MACjB7vG,EAAIoC,EAAEmxB,QAAQ,GAAGu8E,MAErB,GAAIh0F,KAAK05H,aAAc,EAAIv3I,EAAI,EAAG,CAChC,IAAIC,EAAIkE,EAAEmxB,QAAQ,GAAGs8E,MACjBnxG,EAAI0D,EAAEmxB,QAAQ,GAAGu8E,MACjB/wG,EAAI,CACNwK,EAAGnH,EAAEmxB,QAAQ,GAAGs8E,MAAQnwG,EACxB8J,EAAGpH,EAAEmxB,QAAQ,GAAGu8E,MAAQ9vG,GAE1B,OAASb,EAAEoK,IAAMuS,KAAKw5H,cAAgB,IAAMlzI,EAAEmzI,KAAOtlI,EAAElR,GAAK+c,KAAKw5H,cAAex5H,KAAK85H,MAAMxoC,SAAShrG,EAAG0Z,KAAK2W,UAAWrwB,EAAEyI,MA1GnI,SAAWzI,EAAGjD,GACZ,IAAIlB,EAAI,SAAUmE,EAAGjD,GACnB,IAAIlB,EAAIgS,EAAE7N,GAAK6N,EAAE9Q,GACjB,GAAI,IAAMlB,EAAG,OAAO,EAEpB,IAAIyB,EAAI,SAAU0C,EAAGjD,GACnB,OAAOiD,EAAEmH,EAAIpK,EAAEoK,EAAInH,EAAEoH,EAAIrK,EAAEqK,EADrB,CAENpH,EAAGjD,GAAKlB,EAEV,OAAOyB,EAAI,IAAMA,EAAI,GAAIuI,KAAKkvI,KAAKz3I,GAR7B,CASN0C,EAAGjD,GAEL,OAAO,SAAUiD,EAAGjD,GAClB,OAAOiD,EAAEmH,EAAIpK,EAAEqK,EAAIrK,EAAEoK,EAAInH,EAAEoH,EADtB,CAELpH,EAAGjD,GAAK,IAAMlB,IAAM,GAAI,IAAMA,EAAIgK,KAAKD,GA4FgGovI,CAAEr4I,EAAGI,GAAI2c,KAAKyH,OAAO6pF,SAAShrG,EAAG0Z,KAAK2W,UAAWtzB,EAAEoK,EAAIxK,EAAEwK,EAAGpK,EAAEqK,EAAIzK,EAAEyK,EAAG,OAASsS,KAAKm1C,IAAM,OAASn1C,KAAKu7H,KAAOj1I,EAAE86C,QAAUx9C,EAAIoc,KAAKm1C,GAAK/yD,EAAI4d,KAAKu7H,KAAO,EAAGj1I,EAAE+6C,QAAUn9C,EAAI8b,KAAKo1C,GAAKxyD,EAAIod,KAAKw7H,KAAO,IAAMl1I,EAAE86C,OAAS,EAAG96C,EAAE+6C,OAAS,GAAIrhC,KAAKq6H,mBAAmB/oC,SAAShrG,EAAG0Z,KAAK2W,SAAU3W,KAAKu7H,IAAMn5I,EAAG4d,KAAKw7H,IAAM54I,MAClb,CACL,GAAI,OAASod,KAAKm1C,GAAI,CACpB7uD,EAAE86C,OAASx9C,EAAIoc,KAAKm1C,GAAI7uD,EAAE+6C,OAASn9C,EAAI8b,KAAKo1C,GAC5C,IAAIzmD,EAAIxC,KAAKyB,IAAIoS,KAAKi1C,GAAKj1C,KAAKm1C,IAC5B1iD,EAAItG,KAAKyB,IAAIoS,KAAKk1C,GAAKl1C,KAAKo1C,KAC/BzmD,EAAI,IAAM8D,EAAI,MAAQuN,KAAKo7H,aAAc,QACrC90I,EAAE86C,OAAS,EAAG96C,EAAE+6C,OAAS,EAEhCrhC,KAAKo6H,UAAU9oC,SAAShrG,EAAG0Z,KAAK2W,SAGlC3W,KAAKs6H,UAAUhpC,SAAShrG,EAAG0Z,KAAK2W,SAAU3W,KAAKk7H,iBAAkBl7H,KAAKm1C,GAAKvxD,EAAGoc,KAAKo1C,GAAKlxD,EAAG/B,EAAI,GAAKmE,EAAEoqG,oBAGzG,CACDhtG,IAAK,MACLN,MAAO,SAAekD,GACpB,GAAIA,EAAEotG,eAAgB,CACpB1zF,KAAKk7H,iBAEL,IAAI73I,EAAI2c,KACR1Z,EAAEmxB,QAAQ7xB,OAAS,IAAMoa,KAAK65H,cAAcvoC,SAAShrG,EAAG0Z,KAAK2W,SAAU3W,KAAKu7H,IAAMv7H,KAAKw7H,IAAM,MAAOx7H,KAAKm1C,IAAMhpD,KAAKyB,IAAIoS,KAAKi1C,GAAKj1C,KAAKm1C,IAAM,IAAMn1C,KAAKo1C,IAAMjpD,KAAKyB,IAAIoS,KAAKk1C,GAAKl1C,KAAKo1C,IAAM,IAAM9uD,EAAEw1B,UAAY9b,KAAKy7H,gBAAgBz7H,KAAKi1C,GAAIj1C,KAAKm1C,GAAIn1C,KAAKk1C,GAAIl1C,KAAKo1C,IAAKp1C,KAAK+6H,aAAe75E,YAAW,WACvS79D,EAAE02I,MAAMzoC,SAAShrG,EAAGjD,EAAEszB,WACrB,KAAO3W,KAAK46H,WAAa15E,YAAW,WACrC79D,EAAE+3I,aAAe/3I,EAAE22I,IAAI1oC,SAAShrG,EAAGjD,EAAEszB,SAAUtzB,EAAEq2I,cAAgBr2I,EAAE42I,UAAU3oC,SAAShrG,EAAGjD,EAAEszB,SAAUtzB,EAAEq2I,aAAc,KACpH,GAAIr2I,EAAEq2I,cAAgBr2I,EAAEw3I,iBAAmB35E,YAAW,WACvD79D,EAAE82I,UAAU7oC,SAAShrG,EAAGjD,EAAEszB,WACzB,OAAQ3W,KAAKu6H,SAASjpC,SAAShrG,EAAG0Z,KAAK2W,SAAU3W,KAAKu5H,KAAK9rI,EAAI,EAAGuS,KAAKu5H,KAAK7rI,EAAI,EAAGsS,KAAKy5H,KAAO,EAAGz5H,KAAKw5H,cAAgB,KAAMx5H,KAAKi1C,GAAKj1C,KAAKm1C,GAAKn1C,KAAKk1C,GAAKl1C,KAAKo1C,GAAK,QAG3K,CACD1xD,IAAK,YACLN,MAAO,WACL4c,KAAKo7H,aAAc,EAAIn6E,aAAajhD,KAAK66H,kBAAmB55E,aAAajhD,KAAK46H,YAAa35E,aAAajhD,KAAK86H,gBAAiB75E,aAAajhD,KAAK+6H,gBAEjJ,CACDr3I,IAAK,SACLN,MAAO,SAAekD,GACpB0Z,KAAK26H,YAAa36H,KAAKw6H,YAAYlpC,SAAShrG,EAAG0Z,KAAK2W,WAErD,CACDjzB,IAAK,iBACLN,MAAO,WACL69D,aAAajhD,KAAK86H,kBAEnB,CACDp3I,IAAK,mBACLN,MAAO,WACL69D,aAAajhD,KAAK66H,oBAEnB,CACDn3I,IAAK,kBACLN,MAAO,SAAekD,EAAGjD,EAAGlB,EAAGyB,GAC7B,OAAOuI,KAAKyB,IAAItH,EAAIjD,IAAM8I,KAAKyB,IAAIzL,EAAIyB,GAAK0C,EAAIjD,EAAI,EAAI,OAAS,QAAUlB,EAAIyB,EAAI,EAAI,KAAO,SAE/F,CACDF,IAAK,KACLN,MAAO,SAAekD,EAAGjD,GACvB2c,KAAK1Z,IAAM0Z,KAAK1Z,GAAG8nB,IAAI/qB,KAExB,CACDK,IAAK,MACLN,MAAO,SAAekD,EAAGjD,GACvB2c,KAAK1Z,IAAM0Z,KAAK1Z,GAAGo1I,IAAIr4I,KAExB,CACDK,IAAK,UACLN,MAAO,WACL,OAAO4c,KAAK66H,kBAAoB55E,aAAajhD,KAAK66H,kBAAmB76H,KAAK46H,YAAc35E,aAAajhD,KAAK46H,YAAa56H,KAAK86H,gBAAkB75E,aAAajhD,KAAK86H,gBAAiB96H,KAAK+6H,cAAgB95E,aAAajhD,KAAK+6H,cAAe/6H,KAAK2W,QAAQgD,oBAAoB,aAAc3Z,KAAKvX,OAAQuX,KAAK2W,QAAQgD,oBAAoB,YAAa3Z,KAAKwxB,MAAOxxB,KAAK2W,QAAQgD,oBAAoB,WAAY3Z,KAAKtX,KAAMsX,KAAK2W,QAAQgD,oBAAoB,cAAe3Z,KAAKujB,QAASvjB,KAAKyH,OAAOi0H,MAAO17H,KAAK25H,WAAW+B,MAAO17H,KAAK45H,gBAAgB8B,MAAO17H,KAAK65H,cAAc6B,MAAO17H,KAAK85H,MAAM4B,MAAO17H,KAAK+5H,MAAM2B,MAAO17H,KAAKg6H,IAAI0B,MAAO17H,KAAKi6H,UAAUyB,MAAO17H,KAAKk6H,QAAQwB,MAAO17H,KAAKm6H,UAAUuB,MAAO17H,KAAKo6H,UAAUsB,MAAO17H,KAAKq6H,mBAAmBqB,MAAO17H,KAAKs6H,UAAUoB,MAAO17H,KAAKu6H,SAASmB,MAAO17H,KAAKw6H,YAAYkB,MAAO17H,KAAKu5H,KAAOv5H,KAAKw5H,cAAgBx5H,KAAKy5H,KAAOz5H,KAAK05H,YAAc15H,KAAKoU,MAAQpU,KAAK40B,KAAO50B,KAAKkiB,IAAMliB,KAAK46H,WAAa56H,KAAK66H,iBAAmB76H,KAAK86H,eAAiB96H,KAAK+6H,aAAe/6H,KAAKi1C,GAAKj1C,KAAKm1C,GAAKn1C,KAAKk1C,GAAKl1C,KAAKo1C,GAAKp1C,KAAKg7H,eAAiBh7H,KAAKyH,OAASzH,KAAK25H,WAAa35H,KAAK45H,gBAAkB55H,KAAK65H,cAAgB75H,KAAK85H,MAAQ95H,KAAK+5H,MAAQ/5H,KAAKg6H,IAAMh6H,KAAKi6H,UAAYj6H,KAAKk6H,QAAUl6H,KAAKm6H,UAAYn6H,KAAKo6H,UAAYp6H,KAAKs6H,UAAYt6H,KAAKu6H,SAAWv6H,KAAKw6H,YAAcx6H,KAAKq6H,mBAAqB,KAAM9yI,OAAOoyB,oBAAoB,SAAU3Z,KAAK06H,mBAAoB,SAEz1Cp0I,EA7HC,GAgIR,SAAS+N,EAAE/N,GACT,IAAIjD,EAAI,WACN,IAAIiD,EACAjD,EAAI+jD,SAAS6sC,cAAc,eAC3B9xF,EAAI,CACNuuC,WAAY,gBACZirG,YAAa,iBACbC,cAAe,gBACfC,iBAAkB,uBAGpB,IAAKv1I,KAAKnE,EACR,QAAI,IAAWkB,EAAE6f,MAAM5c,GAAI,OAAOnE,EAAEmE,GAXhC,GAcJnE,EAAIoF,OAAO6lH,YAAchmE,SAAS80C,gBAAgBpjE,aAAesuB,SAASs2B,KAAK5kD,YAC/El1B,EAAIpB,EAAE8D,EAAG,gBAAkBA,EAAIA,EAAEonH,cAAc,iBAC/CxpH,EAAI+sI,EAAErtI,EAAG,qBACTxB,EAAIkE,EAAEonH,cAAc,uBAExBvrH,EAAI,MAAQyB,EAAIM,GAAIuO,EAAE7O,EAAG,UAAWyO,EAAEzO,EAAG,wBAAyB+K,EAAEtL,EAAG,CACrEg1I,UAAWz0I,EACX6jG,MAAM,EACN6wC,aAAc,SAAsBhyI,EAAGjD,GACrCZ,EAAEmB,EAAG,aAELA,EAAEsf,MAAMq9D,QAAU,GAAIn+E,IAAMA,EAAE8gB,MAAMq9D,QAAU,IAGpD,SAAS3uE,EAAEtL,GACT,GAAIA,EAAEwc,OAAO9e,eAAe,SAAU,OAAO,EAC7C,IAAIX,EACAlB,EACAyB,EACAM,EAAIwJ,IACJtL,EAAI8B,EAAEuhB,MACN7iB,EAAIsB,EAAE6iB,OACN9jB,GAAI,EACJ0L,EAAI,KACJ2D,EAAI,KACJ9L,EAAI,KACJvC,GAAI,EACJ1B,EAAI,EACJkL,EAAI,EACJmB,GAAI,EACJ6F,GAAI,EACJrB,EAAI,KACJoB,EAAI,KACJ3C,EAAI,KACJjH,EAAI,KACJmH,EAAI,EACJJ,EAAI,EACJqD,GAAI,EACJI,GAAI,EACJP,EAAI,GACJD,EAAI,GACJG,EAAI,EACJovC,EAAI,EACJ/vC,EAAIgzC,SAASsY,eAAe,oBAC5BvrD,EAAIizC,SAASsmE,cAAc,aAC3B4tB,EAAI,IAAIv0C,EAAE3yF,EAAG,CACfulI,WAAY,SAAoBt2I,GAC9B,GAAIJ,GAAI,GAAKT,EAAEa,EAAEqxG,cAAc,GAAGhvG,OAAQ,qBAAuBurI,EAAE5tI,EAAEqxG,cAAc,GAAGhvG,OAAQ,iBAAmB,KAAOrC,EAAEqxG,cAAc,GAAGhvG,OAAOq0F,SAAS36E,iBAAmBnc,GAAI,GAAKguI,EAAE5tI,EAAEqxG,cAAc,GAAGhvG,OAAQ,oBAAsBlD,EAAEa,EAAEqxG,cAAc,GAAGhvG,OAAO0wB,WAAY,mBAAqBnzB,GAAI,GAAKA,EAAG,CACjT,GAAI2R,EAAIvR,EAAEqxG,cAAc,GAAI7/F,EAAEk/F,MAAQ1wG,EAAEqxG,cAAc,GAAGX,MAAOl/F,EAAEm/F,MAAQ3wG,EAAEqxG,cAAc,GAAGV,MAAOj/F,EAAI1R,EAAEqxG,cAAc,GAAG18E,QAASmsB,EAAI9gD,EAAEqxG,cAAc,GAAGz8E,QAAStpB,EAAIrI,EAAEw1I,YAAaxpI,EAAI3D,EAAE++G,cAAc,iBAAkB9pH,EAAI+K,EAAE++G,cAAc,kBAAmBlnH,EAAI,KAAMhE,EAAE8P,EAAG,kBAAoB9L,EAAI8L,EAAEo7G,cAAc,SAAUnmH,OAAO6lH,YAAchmE,SAAS80C,gBAAgBpjE,aAAesuB,SAASs2B,KAAK5kD,aAAe,MAAQxmB,EAAI3D,EAAE++G,cAAc,sBAAuBjrH,EAAE0R,EAAG,UAAW9Q,EAAE0wG,MAAQ,IAAM1wG,EAAE0wG,MAAQxsG,OAAO6lH,WAAa,GAAI,OACphB/pH,EAAEqtG,mBAGN4pC,UAAW,SAAmBp2I,GAC5B,GAAIjB,IAAM2R,EAAI1Q,EAAEwwG,cAAc,IAAK9lG,IAAM6F,GAAI,CAC3C,GAAI7Q,GAAKA,EAAE+1G,aAAe/2G,EAAG,CAC3B,IAAI+L,EAAIkG,EAAEk/F,MAAQn/F,EAAEm/F,MACpB,GAAI5nG,KAAKyB,IAAIe,IAAM,GAAI,OAAO,EAGhC1K,GAAI,EACJ,IAAIwO,EACAhQ,EAAIyB,EAAEwwG,cAAc,GAAG18E,QACvBx1B,EAAI0B,EAAEwwG,cAAc,GAAGz8E,QACvBg5G,EAAIl8H,EAAItS,EACRF,EAAI4hD,EAAI3hD,EACZ,GAAI2J,KAAKyB,IAAIqjI,GAAK9kI,KAAKyB,IAAIrL,IAAMyS,GAAI,EAAII,GAAI,IAAOA,GAAI,EAAIJ,GAAI,GAAK3R,EAAIuR,EAAEm/F,MAAQl/F,EAAEk/F,MAAOhiG,EAAI,IAAM1O,EAAIjB,EAAGD,EAAIyS,EAAEo/F,MAAQn/F,EAAEm/F,MAAOriG,EAAI,IAAMxP,EAAIS,EAAGoS,GAAKxO,IAAMiM,EAAI,EAAItG,KAAKyB,IAAIzL,GAAKS,EAAGuR,EAAE+O,MAAMq9D,QAAU9tE,EAAGnM,EAAE6+G,SAAS42B,kBAAoBhqI,EAAI,IAAKqD,IAAM3C,EAAI,EAAItG,KAAKyB,IAAIvK,GAAKjB,EAAGkQ,EAAE4Q,MAAMq9D,QAAU9tE,EAAGnM,EAAE6+G,SAAS42B,kBAAoBpqI,EAAI,KAAMnL,EAAG,OAAO6L,EAAEC,EAAG,eAAe+N,OAAOtO,EAAG,aAC3XM,EAAEC,EAAG,eAAe+N,OAAOtO,EAAG,OAAOsO,OAAO1O,EAAG,YAGnD4oI,SAAU,WACR,GAAIt3I,EAAG,CACL,GAAIgB,GAAI,EAAIwQ,GAAK7F,EAAG,OAAOiD,EAAIuB,OAASxI,EAAI4J,GAC5C,IAAInR,EAAI8I,KAAKyB,IAAIqR,SAAStN,IACtBxP,EAAIgK,KAAKyB,IAAIqR,SAASlN,IAC1B,KAAM1O,EAAI,IAAMmD,GAAI,OAAOnD,EAAI,IAAMlB,EAAI,IAAMsQ,EAAE0B,EAAG,UAAWA,EAAE+O,MAAMq9D,QAAU,EAAGlsE,EAAE/B,SAAM,EAC5FhM,EAAEwoH,UAGN+qB,cAAe,WACb34E,YAAW,WACTtyD,GAAI,IACH,KAELgrI,gBAAiB,WACfhrI,GAAI,EAAIrM,EAAIkL,GAAK,GAEnBqsI,MAAO,SAAexzI,GACpB,IAAKE,GAAKvC,EAAG,OAAO,EACpB2K,GAAI,EAAIpI,EAAEw1I,OAASx1I,EAAEy1I,OAAS15I,EAAI+D,EAAEmzI,KACpC,IAAIp2I,EAAId,EAAI+D,EAAEmzI,KACd,GAAIhlI,GAAI,EAAIpR,GAAK,EAAG,OAAOoR,GAAI,EAAIpR,EAAI,EAAGuH,EAAI,KAAMiH,EAAI,KAAMuB,EAAI,KAAMoB,EAAI,UAAWhO,EAAE0iD,aAAa,QAAS,IAC/G7lD,EAAI,MAAQA,EAAI,KAAMmD,EAAE0c,MAAMmoH,UAAY,WAAWhrH,OAAOhd,EAAG,MAAMgd,OAAOhd,EAAG,QAASoK,EAAIpK,GAE9F+2I,UAAW,SAAmB9zI,GAC5B,GAAImO,IAAM7F,EAAG,CACX,IAAIvL,EAAIuR,EAAEm/F,MAAQl/F,EAAEk/F,MAChB5xG,EAAIyS,EAAEo/F,MAAQn/F,EAAEm/F,MACpBniG,IAAMxO,GAAKwO,GAAIjH,IAAMzI,GAAKyI,GAAIwI,EAAI/P,EAAGmR,EAAIrS,EACzC,IAAIyB,EAAI,eAAeyc,OAAOhd,EAAG,QAAQgd,OAAOle,EAAG,UACnDsL,IAAM7J,GAAK,YAAYyc,OAAO5S,EAAG,MAAM4S,OAAO5S,EAAG,SAAU4E,EAAE7L,EAAG5C,KAGpEm2I,MAAO,SAAe12I,GACpB,IAAKoR,EAAG,GAAI7F,EAAGA,GAAI,MAAQ,CACzB,GAAI,QAAUvL,EAAEy4B,UAAW,CACzB,GAAIx1B,EAAEiE,OAASjE,EAAEuc,SAASjd,OAAS,EAAG,OAAOyO,EAAE/B,GAC/ChM,EAAE+yI,YAGJ,GAAI,SAAWh2I,EAAEy4B,UAAW,CAC1B,GAAI,GAAKx1B,EAAEiE,MAAO,OAAO8J,EAAE/B,GAC3BhM,EAAEgzI,iBAKVhzI,EAAEwc,OAAOo5H,MAAQZ,EAGnB,IAAInmI,EAAI,WACN,SAAS7O,EAAEnE,EAAGyB,GACZ,IAAIM,EAAI8b,KACJ5d,EAAI8F,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,KACzE,GAAI7E,EAAE2c,KAAM1Z,GAAI0Z,KAAKm8H,IAAMh6I,EAAG6d,KAAKo8H,MAAQx4I,EAAGoc,KAAKq8H,QAAUj6I,EAAG4d,KAAKm8H,IAAIG,cAAe,OAAO,EAC/Ft8H,KAAKylB,QAAS,EAAIzlB,KAAKu8H,UAAW,EAAIv8H,KAAKw8H,UAAW,EAAIx8H,KAAKy8H,SAAW,KAAMz8H,KAAK08H,SAAW,KAAM18H,KAAK28H,SAAW,KAAM38H,KAAK48H,SAAW,KAAM58H,KAAKiH,QAAU,EAAGjH,KAAKkH,QAAU,EAAGlH,KAAKm8H,IAAIziH,iBAAiB,aAAa,SAAUpzB,GACrO,OAAOpC,EAAE24I,UAAUv2I,MAClB,GAAK0Z,KAAKm8H,IAAIziH,iBAAiB,WAAW,SAAUpzB,GACrD,OAAOpC,EAAE44I,QAAQx2I,MAChB,GAAK0Z,KAAKm8H,IAAIziH,iBAAiB,aAAa,SAAUpzB,GACvD,OAAOpC,EAAE64I,KAAKz2I,MACb,GAAK0Z,KAAKm8H,IAAIziH,iBAAiB,SAAS,SAAUpzB,GACnD,OAAOpC,EAAEk4I,MAAMtqB,UAAU36B,SAAS,iBAAmBjzF,EAAE84I,WAAW,GAAM94I,EAAEq4I,cAAiBr4I,EAAEq4I,WAAar4I,EAAEs4I,UAAYt4I,EAAE84I,WAAa94I,EAAE+4I,YACxI,GAAKj9H,KAAKm8H,IAAIG,eAAgB,EAGnC,OAAO14I,EAAE0C,EAAG,CAAC,CACX5C,IAAK,SACLN,MAAO,WACL,IAAIkD,EAAI0Z,KAAKk9H,aAEb,KAAMl9H,KAAKu8H,UAAYj2I,GAAK,KAAM,CAChC,IAAIjD,EAAI2c,KAAKm8H,IAEb,GAAI94I,EAAE6lD,aAAa,aAAc7lD,EAAEulD,aAAa,UAAWvlD,EAAE6f,MAAMmH,SAAWhnB,EAAE85I,aAAe,KAAM95I,EAAE6f,MAAMsV,UAAYn1B,EAAE+5I,cAAgB,KAAM/5I,EAAE85I,aAAe72I,EAAG,CACnK,IAAInE,EAAImE,EAAI,EAAIjD,EAAE85I,aAAe,EACjCn9H,KAAKq9H,aAAar9H,KAAKm8H,IAAI/lH,WAAYj0B,EAAG,GAG5C6d,KAAKo8H,MAAMtqB,UAAU1jG,IAAI,UAAWpO,KAAKu8H,UAAW,KAGvD,CACD74I,IAAK,UACLN,MAAO,WACL4c,KAAKm8H,IAAI/lH,WAAW8yB,aAAa,QAAS,IAAKlpC,KAAKm8H,IAAIjzF,aAAa,QAASlpC,KAAKm8H,IAAIvzF,aAAa,eAAgB5oC,KAAKo8H,MAAMtqB,UAAUltD,OAAO,UAAW5kD,KAAKu8H,UAAW,EAAIv8H,KAAKy8H,SAAW,KAAMz8H,KAAK08H,SAAW,KAAM18H,KAAK28H,SAAW,KAAM38H,KAAK48H,SAAW,KAAM58H,KAAKiH,QAAU,EAAGjH,KAAKkH,QAAU,EAAGlH,KAAKq8H,SAAW,mBAAqBr8H,KAAKq8H,SAAWr8H,KAAKq8H,YAEtW,CACD34I,IAAK,YACLN,MAAO,SAAekD,GACpBA,EAAEoqG,iBAAkB1wF,KAAKu8H,UAAY,eAAiBj2I,EAAEyC,MAAQiX,KAAK28H,SAAWr2I,EAAEmxB,QAAQ,GAAGO,QAAUhY,KAAKiH,QAASjH,KAAK48H,SAAWt2I,EAAEmxB,QAAQ,GAAGQ,QAAUjY,KAAKkH,UAAYlH,KAAK28H,SAAWr2I,EAAE0xB,QAAUhY,KAAKiH,QAASjH,KAAK48H,SAAWt2I,EAAE2xB,QAAUjY,KAAKkH,SAAU5gB,EAAEZ,SAAWsa,KAAKm8H,MAAQn8H,KAAKylB,QAAS,EAAIzlB,KAAKm8H,IAAIrqB,UAAU1jG,IAAI,cAAgBpO,KAAKylB,QAAS,IAEpW,CACD/hC,IAAK,UACLN,MAAO,SAAekD,GACpB,IAAIjD,EAAI2c,KACR1Z,EAAEoqG,iBAAkB1wF,KAAK28H,SAAW38H,KAAKy8H,SAAUz8H,KAAK48H,SAAW58H,KAAK08H,SAAU18H,KAAKylB,QAAS,EAAIy7B,YAAW,WAC7G79D,EAAEm5I,UAAW,EAAIn5I,EAAE84I,IAAImB,YAAa,EAAIj6I,EAAE84I,IAAIrqB,UAAUltD,OAAO,cAC9D,OAEJ,CACDlhE,IAAK,OACLN,MAAO,SAAekD,GACpB0Z,KAAKylB,SAAWn/B,EAAEoqG,iBAAkB,cAAgBpqG,EAAEyC,MAAQiX,KAAKy8H,SAAWn2I,EAAEmxB,QAAQ,GAAGO,QAAUhY,KAAK28H,SAAU38H,KAAK08H,SAAWp2I,EAAEmxB,QAAQ,GAAGQ,QAAUjY,KAAK48H,WAAa58H,KAAKy8H,SAAWn2I,EAAE0xB,QAAUhY,KAAK28H,SAAU38H,KAAK08H,SAAWp2I,EAAE2xB,QAAUjY,KAAK48H,UAAW58H,KAAKiH,QAAUjH,KAAKy8H,SAAUz8H,KAAKkH,QAAUlH,KAAK08H,SAAU18H,KAAKm8H,IAAImB,YAAa,EAAIt9H,KAAKw8H,UAAW,EAAIx8H,KAAKq9H,aAAar9H,KAAKm8H,IAAKn8H,KAAKy8H,SAAUz8H,KAAK08H,aAE/Z,CACDh5I,IAAK,SACLN,MAAO,SAAekD,GACpB,GAAI0Z,KAAKu8H,SAAU,CACjB,IAAIl5I,EAAIiD,EAAE0xB,QAAUhY,KAAKm8H,IAAIgB,aAAe,EACxCh7I,EAAImE,EAAE2xB,QAAUjY,KAAKm8H,IAAIiB,cAAgB,EAC7Cp9H,KAAKq9H,aAAar9H,KAAKm8H,IAAK94I,EAAGlB,MAGlC,CACDuB,IAAK,eACLN,MAAO,SAAekD,EAAGjD,EAAGlB,GAC1BmE,EAAE4c,MAAMmoH,UAAY,eAAiBhoI,EAAI,OAASlB,EAAI,WAEvD,CACDuB,IAAK,aACLN,MAAO,WACL,OAAOmE,OAAO6lH,YAAchmE,SAAS80C,gBAAgBpjE,aAAesuB,SAASs2B,KAAK5kD,gBAEjFxyB,EA1EC,GA4EJgO,EAAI,WACN,SAAShO,IACP,IAAInE,EAAI6d,KACJpc,EAAIsE,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,GACzE7E,EAAE2c,KAAM1Z,GACR,IAAIpC,EAAIN,EAAE25I,OACNn7I,EAAIwB,EAAE45I,WACN56I,OAAI,IAAWR,EAAI,GAAKA,EACxBa,EAAIW,EAAE65I,WACN9uI,OAAI,IAAW1L,EAAI,GAAKA,EACxBwP,EAAI7O,EAAEw4I,MACN35I,OAAI,IAAWgQ,EAAI,KAAOA,EAC1BjQ,EAAIoB,EAAE2B,SACN0rI,OAAI,IAAWzuI,EAAI,KAAOA,EAC9Bwd,KAAK6Z,GAAK31B,EAAG8b,KAAKylB,QAAS,EAAIzlB,KAAKw8H,UAAW,EAAIx8H,KAAKy8H,SAAW,KAAMz8H,KAAK08H,SAAW,KAAM18H,KAAK28H,SAAW,KAAM38H,KAAK48H,SAAW,KAAM58H,KAAKiH,QAAU,EAAGjH,KAAKkH,QAAU,EAAGlH,KAAK8b,UAAY,KAAM9b,KAAK09H,cAAgB,KAAM19H,KAAKw9H,WAAa56I,EAAGod,KAAKy9H,WAAa9uI,EAAGqR,KAAK29H,kBAAmB,EAAI39H,KAAK49H,cAAgB59H,KAAK6Z,GAAI7Z,KAAKo8H,MAAQ35I,EAAGud,KAAKza,SAAW0rI,EAAGjxH,KAAK6Z,GAAGH,iBAAiB,aAAa,SAAUpzB,GACtZ,OAAOnE,EAAE06I,UAAUv2I,MAClB,GAAK0Z,KAAK6Z,GAAGH,iBAAiB,WAAW,SAAUpzB,GACpD,OAAOnE,EAAE26I,QAAQx2I,MAChB,GAAK0Z,KAAK6Z,GAAGH,iBAAiB,aAAa,SAAUpzB,GACtD,OAAOnE,EAAE46I,KAAKz2I,MACb,GAGL,OAAO1C,EAAE0C,EAAG,CAAC,CACX5C,IAAK,YACLN,MAAO,SAAekD,GACpB,GAAI0Z,KAAKo8H,MAAMtqB,UAAU36B,SAAS,UAAWn3E,KAAKylB,QAAS,MAAQ,CACjE,eAAiBn/B,EAAEyC,MAAQiX,KAAK28H,SAAWr2I,EAAEmxB,QAAQ,GAAGO,QAAUhY,KAAKiH,QAASjH,KAAK48H,SAAWt2I,EAAEmxB,QAAQ,GAAGQ,QAAUjY,KAAKkH,UAAYlH,KAAK28H,SAAWr2I,EAAE0xB,QAAUhY,KAAKiH,QAASjH,KAAK48H,SAAWt2I,EAAE2xB,QAAUjY,KAAKkH,SACnN,IAAI7jB,EAAIiD,EAAEZ,OAAOq0F,SAAS36E,cAC1B9Y,EAAEZ,OAAOosH,UAAU36B,SAAS,WAAa85C,EAAE3qI,EAAEZ,OAAQ,aAAe,IAAM,CAAC,QAAS,SAAU,WAAY,SAAU,KAAKoF,QAAQzH,GAAK2c,KAAKylB,QAAS,GAAMn/B,EAAEoqG,kBAAmBpqG,EAAEZ,SAAWsa,KAAK6Z,IAAM,QAAUx2B,GAAK4tI,EAAE3qI,EAAEZ,OAAQ,qBAAuBsa,KAAKylB,QAAS,EAAIzlB,KAAK6Z,GAAGi4F,UAAU1jG,IAAI,YAAapO,KAAK49H,cAAgB3M,EAAE3qI,EAAEZ,OAAQ,0BAGlV,CACDhC,IAAK,UACLN,MAAO,SAAekD,GACpB,IAAIjD,EAAI2c,KACR1Z,GAAKA,EAAEoqG,iBAAkB1wF,KAAK28H,SAAW,EAAG38H,KAAK48H,SAAW,EAAG58H,KAAKy8H,SAAW,KAAMz8H,KAAK08H,SAAW,KAAM18H,KAAK28H,SAAW,KAAM38H,KAAK48H,SAAW,KAAM58H,KAAKiH,QAAU,EAAGjH,KAAKkH,QAAU,EAAGlH,KAAKylB,QAAS,EAAIzlB,KAAK69H,gBAAkB79H,KAAKza,SAASu4I,qBAAsB,EAAI,SAAW99H,KAAK69H,eAAiB79H,KAAKza,SAAS+zI,YAAa,QAAUt5H,KAAK69H,eAAiB79H,KAAKza,SAAS8zI,aAAcr5H,KAAK+9H,cAAgB/9H,KAAKza,SAASupH,QAAS9uG,KAAK29H,kBAAoB39H,KAAKq9H,aAAar9H,KAAK49H,cAAe,EAAG,GAAG,GAAK18E,YAAW,WACngB79D,EAAEkC,SAASu4I,qBAAsB,EAAIz6I,EAAEs6I,kBAAmB,EAAIt6I,EAAEq6I,cAAgB,KAAMr6I,EAAEm5I,UAAW,EAAIn5I,EAAEw2B,GAAGyjH,YAAa,EAAIj6I,EAAEw2B,GAAGi4F,UAAUltD,OAAO,YAAavhE,EAAE+4I,MAAMtqB,UAAUltD,OAAO,gBAAiBvhE,EAAEu6I,cAAc16H,MAAMmoH,UAAY,GAAIhoI,EAAEu6I,cAAc16H,MAAMwtB,WAAa,KAClR,OAEJ,CACDhtC,IAAK,OACLN,MAAO,SAAekD,GACpB,GAAI0Z,KAAKylB,OAAQ,CACfn/B,EAAEoqG,iBAAkB1wF,KAAKo8H,MAAMtqB,UAAU1jG,IAAI,gBAAiB,cAAgB9nB,EAAEyC,MAAQiX,KAAKy8H,SAAWn2I,EAAEmxB,QAAQ,GAAGO,QAAUhY,KAAK28H,SAAU38H,KAAK08H,SAAWp2I,EAAEmxB,QAAQ,GAAGQ,QAAUjY,KAAK48H,WAAa58H,KAAKy8H,SAAWn2I,EAAE0xB,QAAUhY,KAAK28H,SAAU38H,KAAK08H,SAAWp2I,EAAE2xB,QAAUjY,KAAK48H,UAAW58H,KAAKiH,QAAUjH,KAAKy8H,SAAUz8H,KAAKkH,QAAUlH,KAAK08H,SAAU18H,KAAK6Z,GAAGyjH,YAAa,EAAIt9H,KAAKw8H,UAAW,EAAIx8H,KAAK69H,eAAgB,EAAI79H,KAAK+9H,cAAe,EACpb,IAAI16I,EAAI8I,KAAKyB,IAAIoS,KAAKy8H,UAClBt6I,EAAIgK,KAAKyB,IAAIoS,KAAK08H,UAEtB,GAAIr5I,EAAI,GAAKA,GAAK8I,KAAKyB,IAAIoS,KAAK08H,aAAe18H,KAAK09H,eAAiB,KAAO19H,KAAK09H,eAAgB,CAC/F19H,KAAKkH,QAAU,EAAGlH,KAAK09H,cAAgB,IAAK19H,KAAKq9H,aAAar9H,KAAK49H,cAAe59H,KAAKy8H,SAAU,GACjG,IAAI74I,EAAIoc,KAAKg+H,eACb,IAAKh+H,KAAKza,SAAS4/G,SAAS84B,cAAgBr6I,IAAMoc,KAAK69H,cAAgBj6I,GAAIoc,KAAKza,SAAS4/G,SAAS84B,cAAgBr6I,EAAG,OAAOoc,KAAKza,SAASu4I,qBAAsB,EAAI99H,KAAK29H,kBAAmB,EAAI39H,KAAKylB,QAAS,EAAIzlB,KAAKza,SAASu4I,qBAAsB,EAAI99H,KAAK88H,QAAQ,MAAO,SAAWl5I,GAAKoc,KAAKza,SAAS+zI,iBAAmB,QAAU11I,GAAKoc,KAAKza,SAAS8zI,aAG9V,GAAIr5H,KAAKy9H,WAAa,GAAKt7I,EAAI,GAAKA,GAAKkB,KAAO2c,KAAK09H,eAAiB,KAAO19H,KAAK09H,eAAgB,CAChG19H,KAAKiH,QAAU,EAAGjH,KAAK09H,cAAgB,IAAK19H,KAAKq9H,aAAar9H,KAAK49H,cAAe,EAAG59H,KAAK08H,UAC1F,IAAIx4I,EAAI8b,KAAKk+H,cACb,OAAQl+H,KAAKza,SAAS4/G,SAAS84B,cAAgB/5I,IAAM8b,KAAK+9H,cAAe,QAAW/9H,KAAKza,SAAS4/G,SAAS84B,cAAgB/5I,GAAK8b,KAAKza,SAASupH,aAInJ,CACDprH,IAAK,eACLN,MAAO,WACL,IAAIkD,GAAI,EAER,GAAI6F,KAAKyB,IAAIoS,KAAKy8H,WAAaz8H,KAAKw9H,WAAY,CAC9C,IAAIn6I,EAAI2c,KAAKy8H,SAAW,EAAI,QAAU,QACrC,QAAUp5I,GAAK2c,KAAKo8H,QAAUp8H,KAAKo8H,MAAMhmH,WAAWwpE,WAAa,SAAWv8F,GAAK2c,KAAKo8H,QAAUp8H,KAAKo8H,MAAMhmH,WAAWkoE,cAAgBh4F,EAAIjD,GAG7I,OAAOiD,IAER,CACD5C,IAAK,cACLN,MAAO,WACL,IAAIkD,GAAI,EACR,OAAO6F,KAAKyB,IAAIoS,KAAK08H,WAAa18H,KAAKy9H,aAAen3I,GAAI,GAAKA,IAEhE,CACD5C,IAAK,eACLN,MAAO,SAAekD,EAAGjD,EAAGlB,GAC1B,IAAIyB,EAAIsE,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,IAAMA,UAAU,GACrE5B,EAAE4c,MAAMwtB,WAAa9sC,EAAI,eAAiB,GAAI0C,EAAE4c,MAAMmoH,UAAY,eAAehrH,OAAOhd,EAAG,QAAQgd,OAAOle,EAAG,cAE5GmE,EArFC,GAwFR,SAASqY,EAAErY,EAAGjD,EAAGlB,EAAGyB,GAClB,IAAIM,EAAIoC,EAAEonH,cAAc,iBACpBtrH,EAAI,IAAI+7I,MACRv7I,EAAI,eAAiBT,EACrBc,EAAI,cAAgBd,EACxBC,EAAEs3B,iBAAiB,QAAQ,WACzBllB,EAAE5Q,IAAMA,OACP,GAAKxB,EAAE6zE,IAAM5yE,EAAEo9F,KAAM,IAAMp9F,EAAE+6I,OAAS,IAAM/6I,EAAEg7I,SAAWj8I,EAAEg8I,MAAQ/6I,EAAE+6I,MAAOh8I,EAAEi8I,OAASh7I,EAAEg7I,QAASj8I,EAAEk8I,IAAM,GAAIlpI,EAAE/R,EAAEi7I,MAAQ,KAAOj7I,EAAEi7I,MAAQl8I,EAAEk8I,IAAMj7I,EAAEi7I,KAAM,KAAOj7I,EAAEs0C,OAASv1C,EAAE8mD,aAAa,kBAAmBtmD,GAAI,KAAOS,EAAEk7I,aAAen8I,EAAE8mD,aAAa,mBAAoBjmD,GAAII,EAAEW,eAAe,oBAAsBX,EAAEm7I,kBAAoBp8I,EAAE8gB,MAAMuC,MAAQpiB,EAAEoiB,OAAQpiB,EAAEW,eAAe,qBAAuBX,EAAEo7I,mBAAqBr8I,EAAE8gB,MAAM6D,OAAS1jB,EAAE0jB,QAAS7iB,EAAE4yG,aAAa10G,EAAG8B,EAAEo6F,YAG7d,SAASl4F,EAAEE,EAAGjD,EAAGlB,EAAGyB,GAClB,IAAIM,EAAI8b,KACJ5d,EAAIkE,EAAEonH,cAAc,qBACpB9qH,EAAI,SAAWT,EACfc,EAAIqD,EAAEonH,cAAc,iBACpB/+G,EAAIqR,KAAK0+H,gBACbjsI,EAAErQ,EAAG,oBAAqBa,EAAE6zG,aAAav0G,EAAE,sCAAuCU,EAAEq7F,YACpF,IAAI77F,EAAI6D,EAAEonH,cAAc,mBACxBj5G,EAAEuL,KAAKmlG,SAASw5B,KAAK5xC,IAAK,QAC1B,IAAIvqG,EAAIa,EAAEo9F,KACNwwC,EAAI,MAAQ5tI,OAAI,EAASA,EAAEu7I,cAC3BtsI,GAAI,EACRrP,EAAEigB,MAAMmH,SAAWhnB,EAAEoiB,MAAOhR,EAAEuL,KAAKmlG,SAASw5B,KAAKE,GAAI,QAAQ,WAC3D,IAAK5N,GAAKzuI,EAAEupB,MAAM,0BAA4BklH,EAAI,UAAWA,IAAMzuI,EAAEupB,MAAM,qEAAuEvpB,EAAEupB,MAAM,iCAAmCvpB,EAAEupB,MAAM,qEAAuEklH,EAAI,WAAY,UAAYA,IAAMA,EAAG,CAC/SA,EAAI,QACJ,IAAI7uI,EAAI,cAAgBQ,EAAI,KAC5BR,GAAK,sCAAsCie,OAAOhd,EAAEoiB,MAAO,OAAQrjB,GAAK,sBAAuBA,GAAK,4BAA6BA,GAAK,eAAgBA,GAAK,YAAaA,GAAK,wBAAyBA,GAAK,gBAAgBie,OAAO7d,EAAG,MAAO8P,EAAI/P,EAAEH,GAAK,YAGzP,IAAIa,EAAIqP,GAAK/P,EAAE,YAAY8d,OAAOzd,EAAG,0BAA0Byd,OAAO4wH,EAAG,0BAA0B5wH,OAAO7d,EAAG,aAC7GiQ,EAAEhQ,EAAG,GAAG4d,OAAO4wH,EAAG,kBAAmBxuI,EAAEyxF,YAAYjxF,GAAIR,EAAEymD,aAAa,UAAWtmD,GAAIH,EAAEymD,aAAa,aAAc/mD,GAClH,IAAIkQ,EAAIwC,EAAE3Q,EAAEihH,SAASw5B,KAAM,UAAYz6I,EAAEihH,SAASw5B,KAAK34G,OAAS,GAC5Dx/B,EAAI,IAAIs4I,KAAK,IAAMl8I,EAAGyP,GAC1B7L,EAAE0uG,GAAG,SAAS,SAAU5uG,GACtBqI,EAAE/L,GAAK0D,EAAEstG,OAAO+qC,KAAMnqI,EAAE5Q,IAAMA,OAC5BgL,GAAE,WACJ,OAAOtI,EAAEonH,cAAc,WAAa,QAAUpnH,EAAEonH,cAAc,UAAUtiF,QAAQg6D,SAC/E,WACDlhG,EAAEwhC,OAAOp/B,MACPE,EAAE0uG,GAAG,kBAAmBxgG,GAAIlO,EAAE0uG,GAAG,iBAAkBxgG,MAI3D,SAASA,EAAEpO,GACT,IAAIjD,EAAI4tI,EAAE3qI,EAAEZ,OAAQ,iBACpB,oBAAsBY,EAAEyC,MAAQ0J,EAAEpP,EAAG,cAAe,mBAAqBiD,EAAEyC,MAAQtG,EAAEY,EAAG,cAG1F,SAAS6R,EAAE5O,EAAGjD,EAAGlB,EAAGyB,GAClB,IAAIM,EACA9B,EAAI4d,KACJpd,EAAI0D,EAAEonH,cAAc,iBACpBzqH,KAAO4R,EAAExR,EAAG,UAAYA,EAAEo9F,OAASp9F,EAAEo9F,KAAK7+E,MAAM,KAAK8gB,MAAMgqF,OAC3DjqH,KAAOoS,EAAExR,EAAG,aAAeA,EAAE+iG,UAAY/iG,EAAE+iG,QAE/C,GAAI3jG,IAAMoP,EAAEpP,KAAOyB,EAAI3B,EAAE,iCAAiC8d,OAAO5d,EAAG,YAAamI,EAAEnI,IAAK,CACtF,QAAUA,EAAEygB,MAAMu7B,UAAYh8C,EAAEygB,MAAMu7B,QAAU,SAChD,IAAIj8C,EAAI4kD,SAAS6sC,cAAc,OAC/BzxF,EAAE+5F,UAAY,mBAAoB/5F,EAAE0xF,YAAYzxF,GAAIyB,EAAI1B,EAG1D,GAAIS,EAAG,CACL,IAAIguI,EAAI7pF,SAASsY,eAAez8D,GAChC,IAAKguI,EAAG,OAAO,EACf,IAAI3+H,EAAI2+H,EAAEhjC,WAAU,GACpB37F,EAAE4Q,MAAM6D,OAAS1jB,EAAE0jB,OAAQzU,EAAE4Q,MAAMmH,SAAWhnB,EAAEoiB,MAAOhT,EAAEH,EAAG,oBAAqBpO,EAAIoO,EAGvF,IAAKpO,EAAG,OAAOyoB,QAAQ00C,MAAM,wCAAyCh+D,IAAI,EAC1ET,EAAEsgB,MAAM6D,OAAS1jB,EAAE0jB,OAAQnkB,EAAEsgB,MAAMuC,MAAQpiB,EAAEoiB,MAAO7iB,EAAEsxF,YAAYhwF,GAAI8b,KAAK8C,OAAO,cAAgB7f,GAAK0L,EAAE,QAAS,CAChH0pI,UAAWz1I,EAAEk4F,iBAAiB,mBAC9Bw9C,aAAc,SAAsBhyI,GAClCA,EAAEoqG,iBAAkBtuG,EAAE0sH,WAEtBt6G,EAAE5Q,IAAMA,IAGd,SAASsQ,EAAE5N,EAAGjD,EAAGlB,EAAGyB,GAClB,IAAIM,EAAIoC,EAAEonH,cAAc,iBACpBtrH,EAAI,SAAUkE,GAChB,IAAIjD,EAAIiD,EAAEk+G,IACNriH,EAAImE,EAAEy4I,MACNn7I,EAAI0C,EAAEkB,SACNtD,EAAIoC,EAAE2wG,SACN70G,EAAIglD,SAAS6sC,cAAc,UAC/B,OAAO7xF,EAAEm6F,UAAY,qBAAsBn6F,EAAE6zE,IAAM5yE,EAAGjB,EAAE8gB,MAAMuC,MAAQ,OAAQrjB,EAAE8gB,MAAM6D,OAAS,OAAQ5kB,GAAKC,EAAE8mD,aAAa,QAAS/mD,GAAIC,EAAEknH,OAAS,WACjJlnH,EAAEknH,OAAS,KAAM72G,EAAErQ,EAAG,cAAeoS,EAAE5Q,IAAMA,KAC5CM,GAAKA,EAAEgwF,YAAY9xF,GAAIA,EARpB,CASN,CACAoiH,IAAKnhH,EAAEo9F,KACPj5F,SAAU5D,IAGZM,EAAEkyB,WAAWlT,MAAMmH,SAAWhnB,EAAEoiB,MAAOvhB,EAAEkyB,WAAWlT,MAAM6D,OAAS1jB,EAAE0jB,OAAQ7iB,EAAEgwF,YAAY9xF,GAG7F,IAAImS,EAAI,WACN,SAASjO,IACP,IAAInE,EAAI+F,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,GACzE7E,EAAE2c,KAAM1Z,GAAI0Z,KAAKiC,SAAW,CAC1Bw+E,KAAM,GACN29C,MAAO,GACPC,OAAQ,GACR1mG,MAAO,GACP5uC,KAAM,GACN61I,cAAe,GACfL,YAAa,GACbD,IAAK,GACLU,aAAc,SACdC,OAAQ,GACRx5H,MAAO,GACPsB,OAAQ,GACRq/E,SAAS,EACT84C,UAAU,EACVC,WAAW,GACVnqI,EAAE7S,KAAO6d,KAAKiC,SAAW7f,EAAE4d,KAAKiC,SAAU9f,IAG/C,OAAOyB,EAAE0C,EAAG,CAAC,CACX5C,IAAK,aACLN,MAAO,SAAekD,GACpB,IAAIjD,EAAIiD,EACR,OAAI,QAAUA,EAAIA,EAAE8Y,eAAe2M,MAAM,8CAAsD,QAC3FzlB,EAAEylB,MAAM,qEAAuEzlB,EAAEylB,MAAM,iCAAmCzlB,EAAEylB,MAAM,mEAClIzlB,EAAEylB,MAAM,yBACR,OAASzlB,EAAEylB,MAAM,wBAF2L,QAG5M,OAASzlB,EAAEylB,MAAM,2BAAmC,QACpDzlB,EAAEwE,QAAQ,MAAQ,GAAK,KAAOzH,EAAEue,MAAM,KAAK8gB,MAAMgqF,OAAe,SAC7DpmH,EAAEwE,QAAQ,gBAAkB,EAAI,OAAS,aAEjD,CACDpH,IAAK,cACLN,MAAO,SAAekD,EAAGjD,GACvB,IAAIlB,EAAI6d,KACJpc,EAAIxB,EAAE,CACR48I,aAAc37I,EAAE27I,cACfh/H,KAAKiC,UAER,GAAIjN,EAAE1O,KAAOsE,EAAEtE,GAAI,CACjBuO,EAAEvO,EAAG,UAAYuO,EAAEvO,EAAG,YAAcA,EAAE8/F,QAAU9/F,EAAEyC,KAAO,SAAW8L,EAAEvO,EAAG,UAAYA,EAAEyC,KAAOiX,KAAKo/H,WAAW94I,EAAEm6F,QAChH,IAAIv8F,EAAI9B,EAAEwB,EAAG0C,GACb,OAAO0Z,KAAKq/H,QAAQn7I,EAAGb,GAAIa,EAG7B,IAAIjB,EAAI,GACJ0L,EAAIrI,EAAEsiD,aAAa,kBACnBn2C,EAAInM,EAAEyzF,SAAS36E,cAEnB,GAAI,MAAQ3M,IAAMxP,EAAIqD,EAAEm6F,MAAO,QAAUhuF,IAAMxP,EAAIqD,EAAE2vE,IAAKryE,EAAE06I,IAAMh4I,EAAEg4I,KAAM16I,EAAE68F,KAAOx9F,EAAGL,EAAEgB,GAAG,SAAUM,EAAG9B,GACtGyS,EAAExR,EAAGjB,IAAM,UAAYA,IAAMwB,EAAExB,GAAKiB,EAAEjB,IACtC,IAAIQ,EAAI0D,EAAE8kC,QAAQhpC,GAClBgT,EAAExS,KAAOgB,EAAExB,GAAKD,EAAEm9I,cAAc18I,OAC9BgB,EAAEwiG,UAAYxiG,EAAEmF,KAAO,WAAYnF,EAAEmF,MAAQ9F,IAAMW,EAAEmF,KAAOiX,KAAKo/H,WAAWn8I,IAAKmS,EAAEzG,GAAI,CACzF,IAAK/K,EAAE+zC,OAAS,KAAOllC,EAAG,CACxB,IAAIhQ,EAAI6D,EAAEqxC,MACVviC,EAAE3S,IAAM,KAAOA,IAAMmB,EAAE+zC,MAAQl1C,GAGjC,IAAKmB,EAAE+zC,OAAS,OAASllC,EAAG,CAC1B,IAAIjQ,EAAI8D,EAAEg4I,IACVlpI,EAAE5S,IAAM,KAAOA,IAAMoB,EAAE+zC,MAAQn1C,QAE5B,CACL,IAAIyuI,EAAI,GACRruI,EAAEgB,GAAG,SAAU0C,EAAGjD,GAChB4tI,EAAEvrH,KAAK,QAAUriB,MACf4tI,EAAIA,EAAExgH,KAAK,UAAW,KAAO9hB,EAAE+9G,QAAU9pH,EAAEgB,GAAG,SAAU0C,EAAGjD,GAC7D,IAAIa,EAAIyK,EACJvM,EAAI,IAAIupB,OAAO,KAAOtoB,EAAI,cAAgB4tI,EAAI,UAC9CruI,EAAIsB,EAAE6nB,MAAM3pB,GAEhB,GAAIQ,GAAKA,EAAEgD,QAAUhD,EAAE,GAAI,CACzB,IAAIK,EAAIL,EAAE,GAAG8pH,OAAO1tG,QAAQ,QAAS,IACrCpb,EAAEP,GAAKlB,EAAEm9I,cAAcr8I,OAK7B,GAAIW,EAAE26I,aAAe,MAAQ36I,EAAE26I,YAAYgB,UAAU,EAAG,GAAI,CAC1D,IAAIjtI,EAEJ,IACEA,EAAI80C,SAASsmE,cAAc9pH,EAAE26I,aAAaxhD,UAC1C,MAAOz2F,GACP,KAAMA,aAAak5I,cAAe,MAAMl5I,EAG1CgM,IAAM1O,EAAE26I,YAAcjsI,GAGxB,IAAK1O,EAAE26I,YAAa,CAClB,IAAIlsI,EAAI/L,EAAEonH,cAAc,mBACxBr7G,IAAMzO,EAAE26I,YAAclsI,EAAE0qF,WAG1B,OAAO/8E,KAAKq/H,QAAQz7I,EAAGP,EAAGiD,GAAI0Z,KAAKy/H,YAAc77I,EAAGA,IAErD,CACDF,IAAK,UACLN,MAAO,SAAekD,EAAGjD,GACvB,IAAIlB,EAAI+F,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,KACrEtE,EAAI,SAAW0C,EAAEyC,KAAOiX,KAAK0/H,UAAUr8I,EAAEs8I,aAAe3/H,KAAK0/H,UAAUr8I,EAAEoiB,OACzEvhB,EAAI8b,KAAK0/H,UAAUr8I,EAAE0jB,QACzB,OAAOzgB,EAAEmf,MAAQ5Q,EAAEvO,EAAG,UAAY,KAAOA,EAAEmf,MAAQzF,KAAK0/H,UAAUp5I,EAAEmf,OAAS7hB,EAAG0C,EAAEygB,OAASlS,EAAEvO,EAAG,WAAa,KAAOA,EAAEygB,OAAS/G,KAAK0/H,UAAUp5I,EAAEygB,QAAU7iB,EAAG/B,GAAK,SAAWmE,EAAEyC,OAASzC,EAAEk4I,kBAAoBr8I,EAAEipC,QAAQ3lB,MAAOnf,EAAEm4I,mBAAqBt8I,EAAEipC,QAAQrkB,QAASzgB,IAE1Q,CACD5C,IAAK,YACLN,MAAO,SAAekD,GACpB,OAAOyO,EAAEzO,GAAK,GAAG+Z,OAAO/Z,EAAG,MAAQA,IAEpC,CACD5C,IAAK,gBACLN,MAAO,SAAekD,GACpB,MAAO,SAAWA,GAAK,UAAYA,EAAIA,EAAI,SAAWA,MAErDA,EAvHC,GAyHJumH,EAAI,WACN,SAASvmH,EAAEnE,EAAGyB,EAAGM,GACfb,EAAE2c,KAAM1Z,GAAI0Z,KAAK2W,QAAUx0B,EAAG6d,KAAKza,SAAW3B,EAAGoc,KAAKzV,MAAQrG,EAGhE,OAAON,EAAE0C,EAAG,CAAC,CACX5C,IAAK,aACLN,MAAO,WACL,IAAIkD,EAAI0Z,KACJ3c,EAAI6E,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,KACrE/F,EAAI+F,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,IAAMA,UAAU,GACrE,GAAI1F,EAAEa,EAAG,UAAW,OAAO,EAC3B,IAAIO,EAAIoc,KAAKza,SAAS4/G,SAClBjhH,EAAI8b,KAAKy/H,YACTr9I,EAAIgR,IACRoB,EAAE5Q,EAAEg8I,kBAAoBh8I,EAAEg8I,gBAAgB,CACxCr1I,MAAOyV,KAAKzV,MACZ6xI,MAAO/4I,EACPw8I,QAAQ,IAEV,IAAIj9I,EAAIsB,EAAE6E,KACN9F,EAAIiB,EAAE86I,aACNrwI,EAAItL,EAAEqqH,cAAc,iBACpBjrH,EAAIY,EAAEqqH,cAAc,iBACpBujB,EAAI5tI,EAAEqqH,cAAc,gBACpBp7G,EAAIjP,EAAEqqH,cAAc,gBACpBr7G,EAAIlQ,EACJqE,EAAI,eAAiBwZ,KAAKzV,MAC1BtG,EAAI,cAAgB+b,KAAKzV,MAE7B,GAAIiK,EAAE5Q,EAAEk8I,kBAAoBztI,EAAI,WAC9BmC,EAAErS,IAAMA,IAAKyB,EAAEk8I,eAAe,CAC5Bv1I,MAAOjE,EAAEiE,MACT6xI,MAAO/4I,EACPw8I,OAAQv5I,EAAEf,SAASw6I,uBAAuBz5I,EAAEiE,WAE5C,IAAMrG,EAAEyzC,OAAS,IAAMzzC,EAAEq6I,YAAcjsI,GAAKA,EAAE8jB,WAAWA,WAAW+9D,YAAY7hF,EAAE8jB,aAAe3zB,GAAK,KAAOyB,EAAEyzC,OAASl1C,EAAEmG,GAAKpC,EAAG/D,EAAEs6F,UAAY74F,EAAEyzC,OAASl1C,EAAE2zB,WAAW+9D,YAAY1xF,GAAIwuI,GAAK,KAAO/sI,EAAEq6I,aAAetN,EAAEroI,GAAK3E,EAAG7B,GAAKwB,EAAEo8I,WAAa,GAAK97I,EAAE+7I,iBAAmBjgI,KAAKkgI,eAAeh8I,EAAEq6I,YAAa36I,EAAEo8I,WAAYp8I,EAAEu8I,UAAWlP,EAAEl0C,UAAY74F,EAAE+7I,iBAAkBjgI,KAAKogI,kBAAkBnP,EAAG/sI,IAAM+sI,EAAEl0C,UAAY74F,EAAEq6I,aAAetN,EAAE76G,WAAW+9D,YAAY88C,GAAIx+H,EAAE9D,EAAEynB,WAAY,QAAQ/V,OAAOpd,IAAKwP,EAAEH,EAAE8jB,WAAY,eAAe/V,OAAOpd,KAAMwP,EAAE9D,EAAG,UAAU0R,OAAOzd,IAAK6P,EAAEpP,EAAG,UAAW,UAAYT,EAAG,CACrlB,GAAI,aAAeA,EAAG,MAAO,WAAaA,GAAKsS,EAAE7M,MAAM2X,KAAKza,SAAU,CAAClC,EAAGa,EAAG8b,KAAKzV,MAAO8H,SAAWnO,EAAEi7I,WAAa,IAAI7qI,EAAE,CACvHipI,OAAQl6I,EAAEqqH,cAAc,kBACxB8vB,WAAY55I,EAAEy8I,eACd5C,WAAY75I,EAAE08I,eACdlE,MAAO/4I,EACPkC,SAAUya,KAAKza,kBACJ,UAAY3C,EAAI4R,EAAEnC,IAAMA,IAAMsM,EAAEtb,EAAGa,EAAG8b,KAAKzV,OAAO,WAC7D,IAAIpI,EAAIkB,EAAEqqH,cAAc,OACxBxpH,EAAEi7I,WAAa,IAAI7qI,EAAE,CACnBipI,OAAQp7I,EACRq7I,WAAY55I,EAAEy8I,eACd5C,WAAY75I,EAAE08I,eACdlE,MAAO/4I,EACPkC,SAAUe,EAAEf,WACVrB,EAAEg7I,UAAY/8I,EAAEg7I,aAAeh7I,EAAE02G,cAAgBpmG,EAAEtQ,EAAG,YAAa,IAAIgT,EAAEhT,EAAGkB,GAAG,WACjFiD,EAAEf,SAASmgC,aACRlxB,EAAEnC,IAAMA,QAEf6B,EAAE7L,MAAM2X,KAAM,CAAC3c,EAAGa,EAAG8b,KAAKzV,MAAO8H,SAC5BjM,EAAEiC,MAAM2X,KAAKza,SAAU,CAAClC,EAAGa,EAAG8b,KAAKzV,MAAO8H,MAElD,CACD3O,IAAK,iBACLN,MAAO,SAAekD,GACpB,IAAIjD,EAAI6E,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,GACrE/F,EAAI+F,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,IAAMA,UAAU,GACjEtE,EAAIwjD,SAAS6sC,cAAc,OAC/BrwF,EAAEm5F,UAAYz2F,EACd,IAAIpC,EAAIN,EAAE2zH,UACNn1H,EAAID,EACR,IAAKmE,EAAIpC,EAAEwoH,QAAQ9mH,QAAUvC,EAAG,OAAOiD,EACvC,IAAI1D,EAAI0D,EAAE0C,OAAO,EAAG3F,EAAI,GACxB,OAAOjB,GAAKwB,EAAI,KAAMhB,EAAI,qCAAuCT,EAAI,QAAUS,IAEhF,CACDc,IAAK,oBACLN,MAAO,SAAekD,EAAGjD,GACvB,IAAIlB,EAAI6d,KACJpc,EAAI0C,EAAEonH,cAAc,cACxB,IAAK9pH,EAAG,OAAO,EACf+K,EAAE,QAAS,CACT0pI,UAAWz0I,EACX00I,aAAc,SAAsBhyI,EAAG1C,GACrC0C,EAAEoqG,iBACF,IAAIxsG,EAAIkjD,SAASs2B,KACbt7E,EAAI6uI,EAAErtI,EAAG,gBACb,IAAKxB,EAAG,OAAO,EACfA,EAAE26F,UAAY15F,EAAEk7I,YAAa9rI,EAAEvO,EAAG,cAClC,IAAItB,EAAI+L,EAAE,QAAS,CACjB0pI,UAAW,CAACn0I,EAAG+sI,EAAE7uI,EAAG,wBACpBk2I,aAAc,SAAsBhyI,EAAG1C,GACrC,MAAQ0C,EAAEZ,OAAOq0F,SAAS36E,gBAAkB3c,EAAEyB,EAAG,cAAeuO,EAAEvO,EAAG,gBAAiB9B,EAAE26F,UAAY15F,EAAE48I,iBAAkB99I,EAAEi+I,kBAAkBh+I,EAAGiB,GAAI69D,YAAW,WAC5Jz+D,EAAEyB,EAAG,kBACJ,KAAMtB,EAAE0vE,mBAMpB,CACD5uE,IAAK,SACLN,MAAO,WACL,OAAOb,EAAEyd,KAAKza,SAAS4/G,SAASo7B,aAEjC,CACD78I,IAAK,YACLN,MAAO,WACLwH,EAAEoV,KAAK2W,UAAY3W,KAAK2W,QAAQ3yB,eAAe,eAAiBgc,KAAK2W,QAAQwoH,UAAYn/H,KAAKza,SAAS4/G,SAASg6B,WAChH,IAAI74I,EAAI,IAAIiO,EAAEyL,KAAKza,SAAS4/G,SAASq7B,sBACrC,OAAOxgI,KAAKy/H,YAAcn5I,EAAEm6I,YAAYzgI,KAAK2W,QAAS3W,KAAKza,SAAS4/G,UAAWnlG,KAAKy/H,gBAEnFn5I,EA5GC,GA8GJ+O,EAAIjC,IACJ6B,EAAI,OAAS7B,UAAO,IAAWg0C,SAASs5F,aAAe,iBAAkBn5I,QAAU,sBAAuBA,QAAUi5H,UAAUmgB,iBAC9HhsI,EAAIyyC,SAASqzC,qBAAqB,QAAQ,GAC1CmmD,GAAK,CACPtsD,SAAU,aACVzxE,SAAU,KACVg+H,KAAM,QACNC,MAAO,QACPxmB,aAAa,EACbymB,QAAS,KACTC,gBAAgB,EAChBC,iBAAiB,EACjBjC,aAAc,SACdv5H,MAAO,QACPsB,OAAQ,QACR44H,YAAa,QACbuB,kBAAmB,KACnBC,iBAAkB,KAClBvB,gBAAiB,KACjBE,eAAgB,KAChBsB,cAAe,KACfC,aAAc,KACdb,qBAAsB,KACtBc,OAAQ,KACRC,QAAS,KACT3sH,MAAM,EACNsqH,UAAU,EACVC,WAAW,EACXlB,cAAc,EACdoC,eAAgB,GAChBC,eAAgB,GAChBkB,SAAS,EACTC,iBAAiB,EACjBC,iBAAiB,EACjB3F,iBAAiB,EACjB4F,oBAAoB,EACpBC,qBAAqB,EACrB59H,SAAS,EACT26H,KAAM,CACJ5xC,IAAK,sCACL8xC,GAAI,qCACJ74G,OAAQ,CACN1mB,MAAO,OACPuiI,WAAY,CACVz2F,SAAS,EACT02F,WAAW,GAEbC,QAAS,CACPC,UAAU,EACV/I,IAAK,EACLgJ,SAAU,EACVC,eAAgB,GAElBC,MAAO,CACLC,QAAQ,EACRC,UAAU,EACV1qG,OAAO,EACPx4B,aAAa,KAInBmjI,WAAY,OACZC,YAAa,OACbC,YAAa,QACbrC,SAAU,WACVH,WAAY,GACZyC,UAAW,CACTC,KAAM,CACJC,GAAI,SACJC,IAAK,WAEPnJ,KAAM,CACJkJ,GAAI,SACJC,IAAK,WAEPxG,MAAO,CACLuG,GAAI,eACJC,IAAK,gBAEPC,UAAW,CACTF,GAAI,cACJC,IAAK,iBAEPE,KAAM,CACJH,GAAI,OACJC,IAAK,SAGTG,IAAK,CACHj0B,MAAO,ypBACPjoH,KAAM,iZACN+uB,KAAM,mXAER2qH,UAAW,qbACXyC,aAAc,qiBAEZC,GAAK,WACP,SAAS38I,IACP,IAAInE,EAAI+F,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,GACzE7E,EAAE2c,KAAM1Z,GAAI0Z,KAAKkjI,cAAgB/gJ,EAAG6d,KAAKmlG,SAAW/iH,EAAEw+I,GAAIz+I,GAAI6d,KAAKmjI,eAAiBnjI,KAAKojI,sBAAuBpjI,KAAKqjI,aAAe,GAAIrjI,KAAKsjI,UAAY,GAAItjI,KAAKujI,kBAAmB,EAGvL,OAAO3/I,EAAE0C,EAAG,CAAC,CACX5C,IAAK,OACLN,MAAO,WACL,IAAIkD,EAAI0Z,KACJ3c,EAAI2c,KAAKwjI,cACbngJ,IAAM2c,KAAKyjI,WAAa90I,EAAE,QAAS,CACjC0pI,UAAWh1I,EACXi1I,aAAc,SAAsBj1I,EAAGlB,GACrCkB,EAAEqtG,iBAAkBpqG,EAAE6iH,KAAKhnH,OAE1B6d,KAAK6C,SAAW7C,KAAK0jI,gBAE3B,CACDhgJ,IAAK,OACLN,MAAO,WACL,IAAIkD,EAAI4B,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,KACrE7E,EAAI6E,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,KACzE,GAAI,IAAM8X,KAAK6C,SAASjd,OAAQ,OAAO,EACvCoa,KAAK87H,YAAc,KAAM97H,KAAK2jI,qBAAuB,KAAM3jI,KAAK4jI,gBAAkB,KAClF,IAAIzhJ,EAAI4S,EAAE1R,GAAKA,EAAI2c,KAAKmlG,SAAS47B,QAEjC,GAAIn2I,EAAEtE,GAAI,CACR,IAAI1C,EAAI0C,EAAEsiD,aAAa,gBACvBhlD,IAAMoc,KAAKujI,iBAAmBvjI,KAAK6C,SAAU7C,KAAK6C,SAAW7C,KAAK6jI,mBAAmB7jI,KAAK6C,SAAUjf,IAAKwR,EAAEjT,KAAOA,EAAI6d,KAAK8jI,gBAAgBx9I,IAAM,IAAMnE,EAAI,GAG7J4S,EAAE5S,KAAOA,EAAI,GAAI6d,KAAK+jI,QAASzxI,EAAE0N,KAAKgkI,QAAS,SAAWhkI,KAAKmlG,SAASm9B,WAAa,OAAStiI,KAAKmlG,SAASs9B,UAAUC,KAAKC,IAC3H,IAAIz+I,EAAIkjD,SAASs2B,KACbt7E,EAAImF,OAAO6lH,WAAahmE,SAAS80C,gBAAgBpjE,YAErD,GAAI12B,EAAI,EAAG,CACT,IAAIQ,EAAIwkD,SAAS6sC,cAAc,SAC/BrxF,EAAEmG,KAAO,WAAYnG,EAAE25F,UAAY,cAAe35F,EAAE20H,UAAY,oCAAoCl3G,OAAOje,EAAG,OAAQglD,SAAS/S,KAAK6/C,YAAYtxF,GAAI6P,EAAEvO,EAAG,oBAG3JuO,EAAEvO,EAAG,kBAAmBuO,EAAEkC,EAAG,kBAAmBU,IAAM5C,EAAE20C,SAASs2B,KAAM,oBAAqB19D,KAAKmlG,SAASq9B,YAAc,SAAUxiI,KAAKikI,UAAU9hJ,GAAG,GAAK,IAAM6d,KAAK6C,SAASjd,QAAU6M,EAAEuN,KAAKkkI,WAAY,2BAA4BzxI,EAAEuN,KAAKmkI,WAAY,6BAA+B1hJ,EAAEud,KAAKkkI,WAAY,2BAA4BzhJ,EAAEud,KAAKmkI,WAAY,4BAA6BnkI,KAAKokI,cAAe,EAAIpkI,KAAK2wF,QAAQ,QAASn8F,EAAEwL,KAAKmlG,SAASm8B,SAAWthI,KAAKmlG,SAASm8B,SAAUrsI,GAAK+K,KAAKmlG,SAASu8B,iBAAmB9vI,EAAEoO,MAAOA,KAAKmlG,SAASw8B,oBAAsBvtI,EAAE4L,QAE9iB,CACDtc,IAAK,SACLN,MAAO,WACL,IAAIkD,EAAI4B,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,EACzE8X,KAAKmpG,KAAK,KAAM7iH,KAEjB,CACD5C,IAAK,YACLN,MAAO,WACL,IAAIkD,EAAI0Z,KACJ3c,EAAI6E,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,EACrE/F,EAAI+F,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,IAAMA,UAAU,GACrE1B,EAAEwZ,KAAKkxG,QAASlxG,KAAKzV,MAAQ0U,SAAS5b,GACtC,IAAIO,EAAIoc,KAAKqkI,gBAAgB32B,cAAc,YAC3C9pH,GAAKnB,EAAEmB,EAAG,WAAYoc,KAAKskI,kBAC3B,IAAIpgJ,EAAI8b,KAAKqkI,gBAAgBvpD,iBAAiB,WAAWz3F,GACzD,GAAIb,EAAE0B,EAAG,UAAW8b,KAAKukI,eAAergJ,EAAG/B,GAAI8B,EAAE+b,KAAKkxG,YAAa,CACjE1qH,EAAEwZ,KAAKkxG,QACP,IAAI9uH,EAAI4d,KAAK6C,SAASxf,GAClBT,EAAI,CACN2H,MAAOyV,KAAKzV,MACZ6xI,MAAOl4I,EACPsgJ,UAAWtgJ,EACXu7I,YAAar9I,EAAEq9I,YACfgF,WAAYzkI,KAAKzV,MACjBomG,QAASvuG,EAAEuf,KACXk+H,OAAQ,MAEV7/H,KAAK2wF,QAAQ,oBAAqB/tG,GAAIR,EAAEmD,SAASqzH,WAAW10H,GAAG,WAC7DD,EAAEqC,EAAE4qH,QAAS5qH,EAAEo/B,SAAUp/B,EAAEi+I,eAAergJ,EAAG/B,GAAImE,EAAEqqG,QAAQ,mBAAoB/tG,MAGnFod,KAAK0kI,iBAAmBxgJ,EAAEwpH,cAAc,uBAAwB1tG,KAAK2kI,0BAA4B3kI,KAAK0kI,kBAAoBliJ,EAAEwd,KAAK0kI,iBAAiBtuH,WAAY,gBAAiBpW,KAAKmlG,SAASq8B,UAAYxhI,KAAK4kI,aAAavhJ,EAAI,GAAI2c,KAAK4kI,aAAavhJ,EAAI,IAAK2c,KAAK6kI,0BAA2B7kI,KAAK87H,YAAc53I,IAElT,CACDR,IAAK,eACLN,MAAO,SAAekD,GACpB,IAAIjD,EAAI2c,KACR,GAAI1Z,EAAI,GAAKA,EAAI0Z,KAAK6C,SAASjd,OAAS,EAAG,OAAO,EAClD,GAAIwP,EAAE4K,KAAK6C,SAASvc,IAAK,OAAO,EAChC,IAAInE,EAAI6d,KAAKqkI,gBAAgBvpD,iBAAiB,WAAWx0F,GACzD,GAAI9D,EAAEL,EAAG,UAAW,OAAO,EAC3B,IAAIyB,EAAIoc,KAAK6C,SAASvc,GAClBpC,EAAIN,EAAEmF,KACN3G,EAAI,CACNmI,MAAOjE,EACP81I,MAAOj6I,EACPqiJ,UAAWriJ,EACXs9I,YAAa77I,EAAE67I,YACfgF,WAAYn+I,EACZqqG,QAAS/sG,EAAE+d,KACXk+H,OAAQ,MAEV7/H,KAAK2wF,QAAQ,oBAAqBvuG,GAAI,UAAY8B,GAAK,aAAeA,EAAIg9D,YAAW,WACnFt9D,EAAE2B,SAASqzH,WAAWz2H,GAAG,WACvBkB,EAAEstG,QAAQ,mBAAoBvuG,QAE/B,KAAOwB,EAAE2B,SAASqzH,WAAWz2H,GAAG,WACjCkB,EAAEstG,QAAQ,mBAAoBvuG,QAGjC,CACDsB,IAAK,YACLN,MAAO,WACL4c,KAAK8kI,UAAU9kI,KAAKzV,MAAQ,KAE7B,CACD7G,IAAK,YACLN,MAAO,WACL4c,KAAK8kI,UAAU9kI,KAAKzV,MAAQ,KAE7B,CACD7G,IAAK,YACLN,MAAO,WACL,IAAIkD,EAAI4B,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,IAAMA,UAAU,GACrE,GAAI8X,KAAK4jI,gBAAkB5jI,KAAK87H,YAAa97H,KAAK2jI,qBAAuB3jI,KAAKzV,OAAQyV,KAAK4U,SAAWtuB,EAAI,GAAKA,EAAI0Z,KAAK6C,SAASjd,OAAS,GAAI,OAAO,EACrJU,EAAI,EAAIA,EAAI0Z,KAAK6C,SAASjd,OAAS,EAAIU,GAAK0Z,KAAK6C,SAASjd,SAAWU,EAAI,GAAI0Z,KAAKikI,UAAU39I,KAE7F,CACD5C,IAAK,cACLN,MAAO,WACL,IAAIkD,EAAI4B,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,GACrE7E,EAAI6E,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,IAAM,EAC1E7E,EAAI,IAAMA,EAAI2c,KAAK6C,SAASjd,QAC5B,IAAIzD,EAAI,IAAI0qH,EAAEvmH,EAAG0Z,KAAM3c,GACnBO,EAAIzB,EAAE4iJ,YACN7gJ,EAAI9B,EAAE,GAAIwB,GACVhB,EAAIT,EAAEsB,SACNR,EAAI+c,KAAK6C,SAASjd,OAAS,EAC/B1B,EAAEqG,MAAQlH,EAAGa,EAAEyd,MAAO,EAAIzd,EAAEqB,SAAWpD,EAAG+B,EAAEu7I,YAAc77I,EAAGoc,KAAK6C,SAASwD,OAAOhjB,EAAG,EAAGa,GACxF,IAAIyK,EAAI,KACJ8D,EAAI,KAER,GAAIuN,KAAKqkI,gBAAiB,CACxB,GAAIhhJ,EAAIJ,EAAG+c,KAAKqkI,gBAAgBnwD,YAAYtxF,OAAQ,CAClD,IAAIH,EAAIud,KAAKqkI,gBAAgBvpD,iBAAiB,WAAWz3F,GACzD2c,KAAKqkI,gBAAgBvtC,aAAal0G,EAAGH,IAEtCud,KAAKmlG,SAASq8B,SAAW,GAAKxhI,KAAKzV,OAAS,GAAKlH,GAAK2c,KAAKzV,MAAQ,GAAKlH,GAAK2c,KAAKzV,MAAQ,GAAKlH,IAAM2c,KAAK4kI,aAAavhJ,GAAI,IAAM2c,KAAKzV,OAAS,IAAMlH,IAAM2c,KAAKzV,MAAQ,GAAIyV,KAAK6kI,0BAA2Bl2I,EAAIqR,KAAKqkI,gBAAgBvpD,iBAAiB,WAAWz3F,GAAIoP,EAAIuN,KAAK+/H,uBAAuB18I,GAAIa,EAAEsgJ,UAAY71I,EAG1TqR,KAAK2wF,QAAQ,iBAAkB,CAC7BpmG,MAAOlH,EACP+4I,MAAOztI,EACP61I,UAAW71I,EACX8wI,YAAa77I,EACb6gJ,WAAYphJ,EACZstG,QAAS,KACTkvC,OAAQptI,IACN+B,EAAEwL,KAAKmlG,SAASi8B,gBAAkBphI,KAAKmlG,SAASi8B,cAAc,CAChE72I,MAAOlH,EACP+4I,MAAOztI,EACPkxI,OAAQptI,MAGX,CACD/O,IAAK,cACLN,MAAO,WACL,IAAIkD,EAAI4B,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,IAAM,EAC1E,GAAI5B,EAAI,GAAKA,EAAI0Z,KAAK6C,SAASjd,OAAS,EAAG,OAAO,EAClD,IAAIvC,EAAI2c,KAAKqkI,iBAAmBrkI,KAAKqkI,gBAAgBvpD,iBAAiB,WAAWx0F,GACjFjD,IAAM2c,KAAKglI,uBAAyB1+I,IAAMA,GAAK0Z,KAAK6C,SAASjd,OAAS,EAAIoa,KAAKs5H,YAAct5H,KAAKq5H,aAAch2I,EAAE+yB,WAAW+9D,YAAY9wF,IAAK2c,KAAK6C,SAASwD,OAAO/f,EAAG,GAAI0Z,KAAK2wF,QAAQ,gBAAiBrqG,GAAIkO,EAAEwL,KAAKmlG,SAASk8B,eAAiBrhI,KAAKmlG,SAASk8B,aAAa/6I,KAEzQ,CACD5C,IAAK,iBACLN,MAAO,SAAekD,EAAGjD,GACvB,IAAIlB,EAAI6d,KACJpc,EAAI0C,EAAEonH,cAAc,iBACpBxpH,EAAIoC,EAAEonH,cAAc,uBACpBtrH,EAAI,CACNmI,MAAOyV,KAAK2jI,qBACZvH,MAAOp8H,KAAK4jI,gBACZY,UAAWxkI,KAAK4jI,gBAChBa,WAAYzkI,KAAK4jI,gBACjBnE,YAAarqI,EAAE4K,KAAK2jI,sBAAwB,KAAO3jI,KAAK6C,SAAS7C,KAAK2jI,sBAAsBlE,YAC5F9uC,QAASv7F,EAAE4K,KAAK2jI,sBAAwB,KAAO3jI,KAAK6C,SAAS7C,KAAK2jI,sBAAsBhiI,KACxFk+H,OAAQ7/H,KAAK+/H,uBAAuB//H,KAAK2jI,uBAEvC/gJ,EAAI,CACN2H,MAAOyV,KAAKzV,MACZ6xI,MAAOp8H,KAAK87H,YACZ0I,UAAWxkI,KAAK87H,YAChB2D,YAAaz/H,KAAK6C,SAAS7C,KAAKzV,OAAOk1I,YACvCgF,WAAYzkI,KAAKzV,MACjBomG,QAAS3wF,KAAK6C,SAAS7C,KAAKzV,OAAOoX,KACnCk+H,OAAQ7/H,KAAK+/H,uBAAuB//H,KAAKzV,QAE3C,GAAI3G,EAAEi1G,YAAc,GAAK30G,IAAMD,EAAEC,GAAIA,EAAEgf,MAAMu7B,QAAU,IAAKh8C,EAAE6D,EAAG0Z,KAAKmjI,gBAAiB9/I,EAAGiP,EAAEhM,EAAG0Z,KAAKmlG,SAASs9B,UAAUziI,KAAKmlG,SAASm9B,YAAYK,IAAI,WACnJxgJ,EAAEgjH,SAAS67B,gBAAkB7+I,EAAE8iJ,gBAAgB3+I,GAAInE,EAAEwuG,QAAQ,gBAAiB,CAC5E/6E,KAAMxzB,EACN6yB,QAASryB,IACP4R,EAAErS,EAAEgjH,SAASg8B,mBAAqBh/I,EAAEgjH,SAASg8B,iBAAiB94I,MAAMlG,EAAG,CAACC,EAAGQ,WACzE,CACN,IAAIK,EAAI+c,KAAKmlG,SAASq9B,YAClB7zI,EAAI,SAAW1L,EAAI+c,KAAKmlG,SAASs9B,UAAUx/I,GAAG0/I,GAAK1/I,EACvD+c,KAAK2jI,qBAAuB3jI,KAAKzV,OAAS,SAAWyV,KAAKmlG,SAASq9B,cAAgB7zI,EAAIqR,KAAKmlG,SAASs9B,UAAUI,UAAUF,IAAKrwI,EAAEhM,EAAGqI,GAAG,WACpIxM,EAAEgjH,SAAS67B,gBAAkB7+I,EAAE8iJ,gBAAgB3+I,GAAInE,EAAEwuG,QAAQ,gBAAiB,CAC5E/6E,KAAMxzB,EACN6yB,QAASryB,IACP4R,EAAErS,EAAEgjH,SAASg8B,mBAAqBh/I,EAAEgjH,SAASg8B,iBAAiB94I,MAAMlG,EAAG,CAACC,EAAGQ,OAGnFs+D,YAAW,WACT/+D,EAAEujC,OAAOp/B,KACR,KAAMmM,EAAEnM,EAAG,aAEf,CACD5C,IAAK,kBACLN,MAAO,WACL,IAAK4c,KAAK4jI,gBAAiB,OAAO,EAClC,IAAIt9I,EAAI0Z,KAAK4jI,gBACbnhJ,EAAE6D,EAAG0Z,KAAKmjI,gBAAiB1wI,EAAEnM,EAAG,QAChC,IAAIjD,EAAI2c,KAAKmlG,SAASq9B,YAClBrgJ,EAAI,SAAWkB,EAAI2c,KAAKmlG,SAASs9B,UAAUp/I,GAAGu/I,IAAMv/I,EACxD2c,KAAKklI,iBAAiB5+I,GAAI0Z,KAAK2wF,QAAQ,sBAAuB,CAC5D/6E,KAAM,CACJrrB,MAAOyV,KAAK2jI,qBACZvH,MAAOp8H,KAAK4jI,gBACZY,UAAWxkI,KAAK4jI,gBAChBa,WAAYzkI,KAAK2jI,qBACjBlE,YAAarqI,EAAE4K,KAAK2jI,sBAAwB,KAAO3jI,KAAK6C,SAAS7C,KAAK2jI,sBAAsBlE,YAC5F9uC,QAASv7F,EAAE4K,KAAK2jI,sBAAwB,KAAO3jI,KAAK6C,SAAS7C,KAAK2jI,sBAAsBhiI,KACxFk+H,OAAQ7/H,KAAK+/H,uBAAuB//H,KAAK2jI,uBAE3C1uH,QAAS,CACP1qB,MAAOyV,KAAKzV,MACZ6xI,MAAOp8H,KAAK87H,YACZ0I,UAAWxkI,KAAK87H,YAChB2I,WAAYzkI,KAAKzV,MACjBk1I,YAAaz/H,KAAK6C,SAAS7C,KAAKzV,OAAOk1I,YACvC9uC,QAAS3wF,KAAK6C,SAAS7C,KAAKzV,OAAOoX,KACnCk+H,OAAQ7/H,KAAK+/H,uBAAuB//H,KAAKzV,UAEzCiK,EAAEwL,KAAKmlG,SAAS+7B,oBAAsBlhI,KAAKmlG,SAAS+7B,kBAAkB74I,MAAM2X,KAAM,CAAC,CACrFzV,MAAOyV,KAAK2jI,qBACZvH,MAAOp8H,KAAK4jI,gBACZ/D,OAAQ7/H,KAAK+/H,uBAAuB//H,KAAK2jI,uBACxC,CACDp5I,MAAOyV,KAAKzV,MACZ6xI,MAAOp8H,KAAK87H,YACZ+D,OAAQ7/H,KAAK+/H,uBAAuB//H,KAAKzV,UACtCyV,KAAK2jI,qBAAuB3jI,KAAKzV,OAAS,SAAWyV,KAAKmlG,SAASq9B,cAAgBrgJ,EAAI6d,KAAKmlG,SAASs9B,UAAUI,UAAUD,KAAMtwI,EAAEhM,EAAGnE,GAAG,WAC1I,IAAIkB,EAAIiD,EAAEonH,cAAc,qBACpBvrH,EAAImE,EAAEonH,cAAc,iBACpB9pH,EAAI0C,EAAEonH,cAAc,uBACxBrqH,EAAE6f,MAAMmoH,UAAY,GAAIlpI,EAAE+gB,MAAMmoH,UAAY,GAAI5oI,EAAEN,EAAG,UAAWA,EAAE+gB,MAAMq9D,QAAU,GAAI38E,IAAMA,EAAEsf,MAAMq9D,QAAU,IAAK99E,EAAE6D,EAAG,aAG3H,CACD5C,IAAK,gBACLN,MAAO,WACL,OAAO4c,KAAKqjI,eAEb,CACD3/I,IAAK,yBACLN,MAAO,SAAekD,GACpB,IAAIjD,EAAI,SAAWiD,EACfnE,EAAI6d,KAAK0+H,gBACb,SAAU7pI,EAAE1S,EAAGkB,KAAOlB,EAAEkB,KAAOlB,EAAEkB,KAElC,CACDK,IAAK,iBACLN,MAAO,SAAekD,GACpB,GAAIsE,EAAEtE,GAAI,CACR,IAAIjD,EAAIiD,EAAEonH,cAAc,mBACxBrqH,IAAMiD,EAAIjD,EAAEulD,aAAa,eAG3Bj8B,QAAQsuH,IAAI,sDACZ,IAAI94I,EAAI6d,KAAK+/H,uBAAuBz5I,GACpCnE,GAAKA,EAAEgjJ,SAAWhjJ,EAAEijJ,UAErB,CACD1hJ,IAAK,mBACLN,MAAO,SAAekD,GACpB,GAAIsE,EAAEtE,GAAI,CACR,IAAIjD,EAAIiD,EAAEonH,cAAc,mBACxBrqH,IAAMiD,EAAIjD,EAAEulD,aAAa,eAG3B,IAAIzmD,EAAI6d,KAAK+/H,uBAAuBz5I,GACpCnE,GAAKA,EAAEgjJ,SAAWhjJ,EAAEijJ,UAErB,CACD1hJ,IAAK,iBACLN,MAAO,SAAekD,GACpB,GAAIsE,EAAEtE,GAAI,CACR,IAAIjD,EAAIiD,EAAEonH,cAAc,mBACxBrqH,IAAMiD,EAAIjD,EAAEulD,aAAa,eAG3Bj8B,QAAQsuH,IAAI,qDACZ,IAAI94I,EAAI6d,KAAK+/H,uBAAuBz5I,GACpCnE,IAAMA,EAAEgjJ,SAAWhjJ,EAAEkjJ,SAEtB,CACD3hJ,IAAK,kBACLN,MAAO,SAAekD,GACpB,IAAIjD,EAEJ,IAAKgS,GAAK,QAAUhS,EAAI2c,KAAKmlG,SAASw5B,KAAK34G,cAAW,IAAW3iC,GAAKA,EAAEiiJ,MAAO,CAC7E,GAAI16I,EAAEtE,GAAI,CACR,IAAInE,EAAImE,EAAEonH,cAAc,mBACxBvrH,IAAMmE,EAAInE,EAAEymD,aAAa,eAG3B,IAAIhlD,EAAIoc,KAAK+/H,uBAAuBz5I,GACpC1C,IAAMA,EAAEuhJ,UAAYvhJ,EAAEyhJ,OAAQrlI,KAAKmlG,SAAS87B,iBAAmBr9I,EAAEif,SAAS6V,UAAUm8E,YAGvF,CACDnxG,IAAK,cACLN,MAAO,SAAekD,GACpB,IAAIjD,EAAI2c,KACRA,KAAKmlG,SAAStiG,UAAW,EACzB,IAAI1gB,EAAI,GACRmE,GAAKA,EAAEV,QAAUhD,EAAE0D,GAAG,SAAUA,EAAG1C,GACjC,IAAIM,EAAI,IAAI2oH,EAAEvmH,EAAGjD,EAAGO,GAChBhB,EAAIsB,EAAE6gJ,YACN9hJ,EAAIb,EAAE,GAAIQ,GACdK,EAAEw8I,YAAc78I,EAAGK,EAAEsC,SAAWrB,EAAGjB,EAAEsH,MAAQ3G,EAAGzB,EAAEujB,KAAKziB,MACrD+c,KAAK6C,SAAW1gB,EAAG6d,KAAKokI,eAAiBpkI,KAAKqkI,gBAAgBtnD,UAAY,GAAI/8E,KAAK6C,SAASjd,SAAWhD,EAAEod,KAAK6C,UAAU,WAC1H,IAAIvc,EAAI/D,EAAEc,EAAE8hH,SAASo7B,WACrBl9I,EAAEghJ,gBAAgBnwD,YAAY5tF,MAC5B0Z,KAAKikI,UAAU,GAAG,OAEvB,CACDvgJ,IAAK,kBACLN,MAAO,SAAekD,GACpB,IAAIjD,GAAI,EACR,OAAOT,EAAEod,KAAK6C,UAAU,SAAU1gB,EAAGyB,GACnC,GAAIiR,EAAE1S,EAAG,SAAWA,EAAEwf,MAAQrb,EAAG,OAAOjD,EAAIO,GAAG,KAC7CP,IAEL,CACDK,IAAK,cACLN,MAAO,WACL,IAAIkD,EAAI0Z,KACJ3c,EAAI,GACR2c,KAAK6C,SAAW7C,KAAK6C,SAAW7C,KAAK6C,SAAW,IAAKzN,EAAE4K,KAAKmlG,SAAStiG,WAAa9Q,EAAEiO,KAAKmlG,SAAStiG,WAAa7C,KAAKmlG,SAAStiG,SAASjd,QAAUhD,EAAEod,KAAKmlG,SAAStiG,UAAU,SAAU1gB,EAAGyB,GACrL,IAAIM,EAAI,IAAI2oH,EAAE1qH,EAAGmE,EAAG1C,GAChBhB,EAAIsB,EAAE6gJ,YACN9hJ,EAAIb,EAAE,GAAIQ,GACdK,EAAE0e,MAAO,EAAI1e,EAAEsH,MAAQ3G,EAAGX,EAAEsC,SAAWrB,EAAGjB,EAAEw8I,YAAc78I,EAAGS,EAAEqiB,KAAKziB,MAEtE,IAAId,GAAI,EACR,OAAO6d,KAAKwjI,gBAAkBrhJ,EAAIilD,SAAS0zC,iBAAiB96E,KAAKwjI,gBAAiBrhJ,GAAKS,EAAET,GAAG,SAAUA,EAAGyB,GACvG,IAAIM,EAAI,IAAI2oH,EAAE1qH,EAAGmE,EAAG1C,GAChBhB,EAAIsB,EAAE6gJ,YACN9hJ,EAAIb,EAAE,GAAIQ,GACdK,EAAE0e,KAAOxf,EAAGc,EAAEsH,MAAQ3G,EAAGX,EAAEsC,SAAWrB,EAAGjB,EAAEw8I,YAAc78I,EAAGK,EAAEsiJ,QAAUpjJ,EAAEymD,aAAa,gBAAiBvlD,EAAEqiB,KAAKziB,MAC7GI,GAAKA,IAEV,CACDK,IAAK,qBACLN,MAAO,SAAekD,EAAGjD,GACvB,OAAOiD,EAAEwqB,QAAO,SAAUxqB,GACxB,OAAOA,EAAEi/I,SAAWliJ,OAGvB,CACDK,IAAK,cACLN,MAAO,WACL,OAAQ4c,KAAKmlG,SAAStiG,WAAa7C,KAAKmlG,SAAS7wB,UAAY,SAAWt0E,KAAKmlG,SAAS7wB,SAASirD,UAAU,EAAG,GAAK,KAAKl/H,OAAOL,KAAKmlG,SAAS7wB,SAAU,KAAOt0E,KAAKmlG,SAAS7wB,YAE3K,CACD5wF,IAAK,iBACLN,MAAO,WACL,OAAO4c,KAAKqkI,gBAAgBvpD,iBAAiB,WAAW96E,KAAKzV,SAE9D,CACD7G,IAAK,sBACLN,MAAO,WACL,OAAO4c,KAAKzV,QAEb,CACD7G,IAAK,sBACLN,MAAO,WACL,IAAIkD,EAAI,GAER,IAAK,IAAIjD,KAAK2c,KAAKmlG,SAASs9B,UAC1B,GAAIziI,KAAKmlG,SAASs9B,UAAUz+I,eAAeX,GAAI,CAC7C,IAAIlB,EAAI6d,KAAKmlG,SAASs9B,UAAUp/I,GAChCiD,EAAEof,KAAK,IAAIrF,OAAOle,EAAEwgJ,KAAMr8I,EAAEof,KAAK,IAAIrF,OAAOle,EAAEygJ,MAIlD,OAAOt8I,EAAEmqB,KAAK,OAEf,CACD/sB,IAAK,QACLN,MAAO,WACL,IAAIkD,EAAI0Z,KACR,GAAIA,KAAKwlI,MAAO,OAAO,EACvB,IAAIniJ,EAAI+jD,SAASs2B,KAAKuc,WAClB93F,EAAI,GACRS,EAAES,GAAG,SAAUiD,GACbA,EAAE8vB,YAAcgxB,SAASs2B,MAAQ,MAAQp3E,EAAEyzF,SAASjuF,OAAO,IAAMxF,EAAE84H,eAAiB94H,EAAE84H,aAAa,iBAAmBj9H,EAAEujB,KAAKpf,GAAIA,EAAE4iD,aAAa,cAAe,YAEjK,IAAItlD,EAAIiR,EAAEmL,KAAKmlG,SAAS49B,IAAK,QAAU/iI,KAAKmlG,SAAS49B,IAAIl8I,KAAO,GAC5D3C,EAAI2Q,EAAEmL,KAAKmlG,SAAS49B,IAAK,QAAU/iI,KAAKmlG,SAAS49B,IAAIntH,KAAO,GAC5DxzB,EAAIyS,EAAEmL,KAAKmlG,SAAS49B,IAAK,SAAW/iI,KAAKmlG,SAAS49B,IAAIj0B,MAAQ,GAC9D7rH,EAAI+c,KAAKmlG,SAAS69B,aACtB//I,EAAIV,EAAEU,GAAKA,GAAKA,EAAIA,EAAE+b,QAAQ,aAAcpb,IAAIob,QAAQ,aAAc9a,IAAI8a,QAAQ,cAAe5c,IAAKglD,SAASs2B,KAAKwW,YAAYjxF,GAChI,IAAIR,EAAI2kD,SAASsY,eAAe,kBAChC1/C,KAAK45G,MAAQn3H,EACb,IAAI6P,EAAI7P,EAAEirH,cAAc,WACxB1tG,KAAKkkI,WAAazhJ,EAAEirH,cAAc,UAAW1tG,KAAKmkI,WAAa1hJ,EAAEirH,cAAc,UAAW1tG,KAAKgkI,QAAUvhJ,EAAEirH,cAAc,aAAc1tG,KAAKkxG,OAASzuH,EAAEirH,cAAc,YAAa1tG,KAAKqkI,gBAAkBj9F,SAASsY,eAAe,oBAAqB1/C,KAAKylI,oBAAsBtjJ,EAAG6d,KAAK8C,OAAS,GAAIrQ,EAAEuN,KAAK45G,MAAO,aAAe55G,KAAKmlG,SAAS07B,MAAO7gI,KAAKmlG,SAASmV,aAAehoH,IAAM0N,KAAK8C,OAAOgsG,MAAQngH,EAAE,QAAS,CACxZ0pI,UAAW/lI,EACXgmI,aAAc,SAAsBj1I,EAAGlB,GACrCkB,EAAEqtG,iBAAkBpqG,EAAEwoH,YAErBx8G,IAAM0N,KAAKmlG,SAASmV,aAAehoH,EAAE8jB,WAAW+9D,YAAY7hF,GAAI0N,KAAKmkI,aAAenkI,KAAK8C,OAAOjc,KAAO8H,EAAE,QAAS,CACrH0pI,UAAWr4H,KAAKmkI,WAChB7L,aAAc,SAAsBj1I,EAAGlB,GACrCkB,EAAEqtG,iBAAkBpqG,EAAE+yI,gBAErBr5H,KAAKkkI,aAAelkI,KAAK8C,OAAO8S,KAAOjnB,EAAE,QAAS,CACrD0pI,UAAWr4H,KAAKkkI,WAChB5L,aAAc,SAAsBj1I,EAAGlB,GACrCkB,EAAEqtG,iBAAkBpqG,EAAEgzI,gBAErBt5H,KAAKmlG,SAASy8B,sBAAwB5hI,KAAK8C,OAAO4iI,SAAW/2I,EAAE,QAAS,CAC3E0pI,UAAW51I,EACX61I,aAAc,SAAsBj1I,EAAGlB,GACrCmE,EAAEw3I,qBAAuBt7I,EAAE4kD,SAASs2B,KAAM,qBAAuBuzD,EAAE5tI,EAAEqC,OAAQ,sBAAwBurI,EAAE5tI,EAAEqC,OAAQ,UAAYlD,EAAEa,EAAEqC,OAAQ,UAAYlD,EAAEa,EAAEqC,OAAQ,UAAYY,EAAEwoH,YAE9KlsH,EAAEod,KAAK6C,UAAU,SAAUxf,EAAGlB,GACjCmE,EAAE+9I,gBAAgBnwD,YAAY7wF,EAAEkC,SAAS9B,UAAWJ,EAAEmhJ,UAAYl+I,EAAE+9I,gBAAgBvpD,iBAAiB,WAAW34F,MAC9G8S,GAAKxC,EAAE20C,SAASs2B,KAAM,mBAAoB19D,KAAK8C,OAAO4iB,OAAS/2B,EAAE,SAAU,CAC7E0pI,UAAW9wI,OACX+wI,aAAc,WACZhyI,EAAEo/B,YAEF1lB,KAAKwlI,OAAQ,IAElB,CACD9hJ,IAAK,SACLN,MAAO,WACL,IAAIkD,EAAI4B,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,KAEzE,IAAK5B,EAAIA,GAAK0Z,KAAK87H,eAAiBt5I,EAAE8D,EAAG,UAAW,CAClD,IAAIjD,EAAIqK,IACJvL,EAAImE,EAAEonH,cAAc,mBACpB9pH,EAAI0C,EAAEonH,cAAc,iBACpBxpH,EAAI8b,KAAK0kI,iBACTtiJ,EAAIiB,EAAEoiB,MACN7iB,EAAIS,EAAE0jB,OAEV,GAAI3kB,GAAK,IAAMqQ,EAAE20C,SAASs2B,KAAM,oBAAsBj7E,EAAE2kD,SAASs2B,KAAM,oBAAqBv7E,GAAKyB,EAAG,CAClG,IAAIX,GAAI,EACR,GAAIiB,IAAM1B,EAAE0B,EAAG,uBAAyB1B,EAAE0B,EAAG,sBAAwB1B,EAAE0B,EAAG,eAAiBjB,GAAI,GAAKW,EAAG,GAAIxB,GAAK,IAAKwB,EAAE8pH,cAAc,YAAY,GAAIzqH,EAAG,CACtJ,IAAI0L,EAAIzK,EAAEy1G,aACNs3B,EAAIrtI,EAAE8pH,cAAc,OACxBujB,EAAE/nF,aAAa,QAAS,4BAA4B7oC,OAAO1R,EAAG,QAASzK,EAAEglD,aAAa,QAAS,cAAc7oC,OAAO4wH,EAAEp4B,YAAa,QAGrI,GAAI12G,EAAG,CACL,IAAImQ,EAAIuC,EAAEmL,KAAKmlG,SAASw5B,KAAK34G,OAAQ,SAAWhmB,KAAKmlG,SAASw5B,KAAK34G,OAAO1mB,MAAQ,GAElF,IAAKhN,EAAG,CACN,IAAID,EAAIlQ,EAAE22B,YACNtyB,EAAIrE,EAAE42B,aACN90B,EAAIoO,EAAI7L,EACZ8L,EAAI,GAAG+N,OAAOhO,EAAIpO,EAAG,KAAKoc,OAAO7Z,EAAIvC,GAGvC,IAAI1B,EAAI+P,EAAEsP,MAAM,KACZnU,EAAIuS,KAAKmlG,SAASw6B,YAClB/wI,EAAIoR,KAAKmlG,SAASw6B,YAClBlrI,GAAK7F,EAAImG,EAAEtH,KAAO,IAAMA,EAAE3C,QAAQ,MAAQmU,SAASxR,IAAM,IAAMA,EAAE3C,QAAQ,MAAQ1I,EAAI6c,SAASxR,GAAK,KAAO,IAAMA,EAAE3C,QAAQ,MAAQlI,EAAIqc,SAASxR,GAAK,KAAO,IAAMA,EAAE3C,QAAQ,KAAO1I,EAAI6c,SAASxR,GAAK,IAAMwR,SAAS9c,EAAE22B,eAAiB7Z,SAAS1c,EAAE,IAAM0c,SAAS1c,EAAE,KAEtQ,GAAIkS,EAAItI,KAAKkB,MAAMoH,GAAIxR,IAAML,GAAKsB,EAAEy1G,cAAe/qG,EAAIxM,GAAKqS,EAAI7R,GAAKA,EAAI6R,GAAKrS,EAAIwM,EAAG,CACnF,IAAIwE,EAAIjR,EAAE02G,YACNrkG,EAAIrS,EAAEw3G,aACN9nG,EAAIjP,EAAI4R,EACR5J,EAAI,CACN6a,MAAOrS,EAAIvB,EACXkV,OAAQvS,EAAI3C,GAEd1P,EAAEi0B,WAAW8yB,aAAa,QAAS,cAAc7oC,OAAOzV,EAAE6a,MAAO,OAAQxiB,GAAKiB,EAAEglD,aAAa,QAAS,cAAc7oC,OAAOzV,EAAE6a,MAAO,aAC/HtjB,EAAEi0B,WAAWlT,MAAMmH,SAAW,GAAGhK,OAAO5S,GAAIxK,GAAKiB,EAAEglD,aAAa,QAAS,cAAc7oC,OAAO5S,EAAG,WAK/G,CACD/J,IAAK,SACLN,MAAO,WACL4c,KAAKwiD,SAEN,CACD9+D,IAAK,0BACLN,MAAO,WACL,IAAIkD,EAAI0Z,KAAK4U,OACbnyB,EAAEud,KAAKmkI,WAAY,YAAa1hJ,EAAEud,KAAKkkI,WAAY,YAAa,GAAKlkI,KAAKzV,OAASyV,KAAK6C,SAASjd,OAAS,GAAK,GAAK6M,EAAEuN,KAAKkkI,WAAY,YAAazxI,EAAEuN,KAAKmkI,WAAY,aAAe,IAAMnkI,KAAKzV,OAASjE,EAAI0Z,KAAKzV,QAAUyV,KAAK6C,SAASjd,OAAS,GAAKU,GAAKmM,EAAEuN,KAAKmkI,WAAY,YAAc1xI,EAAEuN,KAAKkkI,WAAY,cAEnT,CACDxgJ,IAAK,OACLN,MAAO,WACL,IAAIkD,EAAIuO,EAAEmL,KAAKmlG,SAAU,aAAenlG,KAAKmlG,SAASwgC,UAAY,KAClE,OAAOr/I,EAAIuO,EAAEmL,KAAKmlG,SAAU,QAAUnlG,KAAKmlG,SAASvwF,KAAOtuB,IAE5D,CACD5C,IAAK,QACLN,MAAO,WACL,IAAIkD,EAAI0Z,KAER,IAAKA,KAAKokI,aAAc,CACtB,GAAIpkI,KAAK8C,OAAQ,CACf,IAAK,IAAIzf,KAAK2c,KAAK8C,OACjB9C,KAAK8C,OAAO9e,eAAeX,IAAM2c,KAAK8C,OAAOzf,GAAGivE,UAGlDtyD,KAAK8C,OAAS,KAGhB,OAAO,EAGT,GAAI9C,KAAK4lI,QAAS,OAAO,EACzB5lI,KAAK4lI,SAAU,EAAI5lI,KAAKklI,iBAAiBllI,KAAK87H,aAAc97H,KAAKujI,mBAAqBvjI,KAAK6C,SAAW7C,KAAKujI,kBAAmBvjI,KAAKylI,oBAAoB7/I,QAAUhD,EAAEod,KAAKylI,qBAAqB,SAAUn/I,GACrMA,EAAE2iD,gBAAgB,kBAChBx2C,EAAEuN,KAAK45G,MAAO,qBAAsBtnH,EAAE0N,KAAKgkI,QAAS,QAAUhkI,KAAKmlG,SAASm9B,WAAa,OAAStiI,KAAKmlG,SAASs9B,UAAUC,KAAKE,KAAMtwI,EAAE0N,KAAK87H,YAAa97H,KAAKmlG,SAASs9B,UAAUziI,KAAKmlG,SAASo9B,aAAaK,KAAK,WACnN,GAAIt8I,EAAEw1I,YAAc,KAAMx1I,EAAEq9I,qBAAuB,KAAMr9I,EAAEs9I,gBAAkB,KAAMt9I,EAAEk/I,OAAQ,EAAIl/I,EAAEwc,OAAQ,CACzG,IAAK,IAAIzf,KAAKiD,EAAEwc,OACdxc,EAAEwc,OAAO9e,eAAeX,IAAMiD,EAAEwc,OAAOzf,GAAGivE,UAG5ChsE,EAAEwc,OAAS,KAGb,IAAI3gB,EAAIilD,SAASs2B,KACjBj7E,EAAEkS,EAAG,kBAAmBlS,EAAEN,EAAG,wFAAyFmE,EAAEszH,MAAMxjG,WAAW+9D,YAAY7tF,EAAEszH,OAAQtzH,EAAEqqG,QAAQ,SAAUn8F,EAAElO,EAAE6+G,SAASo8B,UAAYj7I,EAAE6+G,SAASo8B,UACvN,IAAI39I,EAAIwjD,SAASsmE,cAAc,gBAC/B9pH,GAAKA,EAAEwyB,WAAW+9D,YAAYvwF,GAAI0C,EAAE89I,cAAe,EAAI99I,EAAEs/I,QAAU,UAGtE,CACDliJ,IAAK,UACLN,MAAO,WACL4c,KAAK8uG,QAAS9uG,KAAK6lI,iBAAkB7lI,KAAKyjI,YAAczjI,KAAKyjI,WAAWnxE,YAEzE,CACD5uE,IAAK,KACLN,MAAO,SAAekD,EAAGjD,GACvB,IAAIlB,EAAI+F,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,IAAMA,UAAU,GACrE,IAAK5B,IAAMkO,EAAEnR,GAAI,MAAM,IAAIyB,UAAU,2CACrCkb,KAAKsjI,UAAU59H,KAAK,CAClBwR,IAAK5wB,EACLmhG,KAAMtlG,EACNqF,SAAUnE,MAGb,CACDK,IAAK,OACLN,MAAO,SAAekD,EAAGjD,GACvB2c,KAAKk1F,GAAG5uG,EAAGjD,GAAG,KAEf,CACDK,IAAK,UACLN,MAAO,SAAekD,GACpB,IAAIjD,EAAI2c,KACJ7d,EAAI+F,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,KACrEtE,EAAI,GACRhB,EAAEod,KAAKsjI,WAAW,SAAUjgJ,EAAGa,GAC7B,IAAI9B,EAAIiB,EAAE6zB,IACNt0B,EAAIS,EAAEokG,KACNxkG,EAAII,EAAEmE,SACVpF,GAAKkE,IAAMrD,EAAEd,GAAIS,GAAKgB,EAAE8hB,KAAKxhB,OAC3BN,EAAEgC,QAAUhD,EAAEgB,GAAG,SAAU0C,GAC7B,OAAOjD,EAAEigJ,UAAUj9H,OAAO/f,EAAG,QAGhC,CACD5C,IAAK,iBACLN,MAAO,WACL4c,KAAKsjI,UAAUj9H,OAAO,EAAGrG,KAAKsjI,UAAU19I,UAEzC,CACDlC,IAAK,UACLN,MAAO,WACL,MAAO,YAENkD,EA3kBE,GA8kBT,OAAO,WACL,IAAIA,EAAI4B,UAAUtC,OAAS,QAAK,IAAWsC,UAAU,GAAKA,UAAU,GAAK,GACrE7E,EAAI,IAAI4/I,GAAG38I,GACf,OAAOjD,EAAEm/D,OAAQn/D,IA1zDnB,UAA4D+B,EAAQnD,IAAa,oBAAsBC,EAASA,EAAOD,QAAUoB,SAA0D,2BAAR,KAAQ,mC,gBCH7L,SAWA,SAAWkE,EAAQurF,GAQf,EAAO,CAAC,KAAqB,KAAqB,MAA8C,MAAwB,MAAU,KAClI,MAA0B,MAA2B,YAEpD,KAFgF,EAAF,SAAY03C,EAAU/c,EAASzwB,EAAiBqtC,EAAOC,EAAM4F,GAC1I,OAUK,SAAiB3oI,EAAQijI,EAAU/c,EAASzwB,EAAiBqtC,EAAOC,EAAM4F,GACnF,aAEA,IAAI77C,EAAS9sF,EAAO8sF,OAEhBq4B,EAAOlvC,OAAOz5E,UAAU2oH,KAAO,SAAU7gH,GAC3C,OAAOA,EAAI6gH,QACT,SAAU7gH,GACZ,OAAOA,EAAImT,QAAQ,aAAc,KAI/B8mI,EAAUtb,EAAS/mI,OAAO,UAAW,CACvCsiJ,WAAY,UACZC,mBAAmB,EACnBC,eAAe,IAEjBH,EAAQxb,KAAOA,EACfwb,EAAQ5V,WAAaA,EACrB,IAAIzwH,EAAQqmI,EAAQ/hJ,UAEpB0b,EAAMorH,QAAU,WAiBd,IAAK,IAAInoI,KAhBTsd,KAAKkmI,SAAW,EAEhBlmI,KAAKmmI,SAAW,GAEhBnmI,KAAKomI,cAGL5b,EAASzmI,UAAU8mI,QAAQvoI,KAAK0d,MAGhCA,KAAKgiC,MAAQ,GAEbhiC,KAAKowH,cAAgBpwH,KAAKkO,MAE1BlO,KAAKqmI,YAAc,CAAC,kBAEHnW,EAAWluF,MAC1BhiC,KAAKsmI,gBAAgB5jJ,IAIzB+c,EAAMmsH,YAAc,WAElB5rH,KAAKkmI,SAAW,EAEhB1b,EAASzmI,UAAU6nI,YAAYtpI,KAAK0d,OAGtCP,EAAMusH,SAAW,WAIf,IAHA,IAAI99G,EAAQs8G,EAASzmI,UAAUioI,SAAS3jI,MAAM2X,KAAM9X,WAG3C/F,EAAI,EAAGA,EAAI+rB,EAAMtoB,OAAQzD,IAAK,CAC1B+rB,EAAM/rB,GACZyG,GAAKoX,KAAKkmI,WAKjB,OAFAlmI,KAAKumI,qBAAqBr4H,GAEnBA,GAITzO,EAAM6mI,gBAAkB,SAAU5jJ,GAChC,IAAIquI,EAAOb,EAAWluF,MAAMt/C,GAGxB8jJ,EAAcxmI,KAAKhV,QAAQtI,IAAS,GACxCsd,KAAKhV,QAAQtI,GAAQquI,EAAK/lI,QAAUq/H,EAAMn1C,OAAO67C,EAAK/lI,QAASw7I,GAAeA,EAE9ExmI,KAAKgiC,MAAMt/C,GAAQ,IAAIquI,EAAK/wH,OAG9BP,EAAMmjC,OAAS,WAER5iC,KAAKysH,kBAAmBzsH,KAAK8qH,WAAW,cAK7C9qH,KAAKymI,UAJHzmI,KAAK0mI,WAQTjnI,EAAMgnI,QAAU,WAEd,IAAIja,EAAYxsH,KAAK2mI,gBAGrB3mI,KAAKssH,eAELtsH,KAAKusH,gBAELvsH,KAAK0sH,YAAY1sH,KAAKowH,cAAe5D,GAErCxsH,KAAKysH,iBAAkB,GAIzBhtH,EAAMinI,QAAU,SAAU78H,GAExB7J,KAAKwmB,OAAO3c,GAEZ7J,KAAK2mI,gBAIL,IAAIC,EAAW5mI,KAAK6mI,QAAQ7mI,KAAKkO,OAEjClO,KAAKowH,cAAgBwW,EAAS96H,QAE9B9L,KAAK8mI,uBAED9mI,KAAK+mI,WACP/mI,KAAKgnI,cAAchnI,KAAKinI,YAAa,CAACL,IAEtC5mI,KAAKinI,YAAYL,GAGnB5mI,KAAKknI,QAELlnI,KAAKymI,WAIPhnI,EAAM27C,MAAQ37C,EAAMinI,QAEpBjnI,EAAMwnI,YAAc,SAAUL,GAC5B5mI,KAAKsvH,OAAOsX,EAASO,YACrBnnI,KAAK8lB,KAAK8gH,EAASQ,WAMrB3nI,EAAMknI,cAAgB,WACpB,IAAIzZ,EAAkBltH,KAAK8qH,WAAW,iBAElC0B,OAAgCv5H,IAApBi6H,EAAgCA,GAAmBltH,KAAKysH,gBAExE,OADAzsH,KAAK+mI,WAAava,EACXA,GAKT/sH,EAAMqnI,qBAAuB,WAE3B,IAAIO,EAAkBC,EAAgBC,EAElCxvG,EAAQ/3B,KAEZ,SAASwnI,IACHH,GAAoBC,GAAkBC,GACxCxvG,EAAM+1F,cAAc,kBAAmB,KAAM,CAAC/1F,EAAMq4F,gBAIxDpwH,KAAKynF,KAAK,kBAAkB,WAC1B4/C,GAAmB,EACnBG,OAEFxnI,KAAKynF,KAAK,gBAAgB,WACxB6/C,GAAiB,EACjBE,OAEFxnI,KAAKynF,KAAK,kBAAkB,WAC1B8/C,GAAmB,EACnBC,QAKJ/nI,EAAMonI,QAAU,SAAU34H,GACxB,IAAI4C,EAAS9Q,KAAKhV,QAAQ8lB,OAC1BA,EAASA,GAAU,IAQnB,IAPA,IAAIhF,EAAU,GACV27H,EAAgB,GAChBC,EAAmB,GAEnBvgJ,EAAO6Y,KAAK2nI,eAAe72H,GAGtB3uB,EAAI,EAAGA,EAAI+rB,EAAMtoB,OAAQzD,IAAK,CACrC,IAAIkgC,EAAOnU,EAAM/rB,GAEjB,IAAIkgC,EAAK0qG,UAAT,CAKA,IAAI6a,EAAYzgJ,EAAKk7B,GAGjBulH,GACF97H,EAAQpG,KAAK2c,GAIXulH,GAAavlH,EAAKwlH,SACpBJ,EAAc/hI,KAAK2c,GACTulH,GAAcvlH,EAAKwlH,UAC7BH,EAAiBhiI,KAAK2c,IAK1B,MAAO,CACLvW,QAASA,EACTq7H,WAAYM,EACZL,SAAUM,IAKdjoI,EAAMkoI,eAAiB,SAAU72H,GAC/B,OAAIujE,GAAUr0E,KAAKhV,QAAQg7I,kBAElB,SAAU3jH,GACf,OAAOgyD,EAAOhyD,EAAK1L,SAAS+tE,GAAG5zE,IAId,mBAAVA,EAEF,SAAUuR,GACf,OAAOvR,EAAOuR,EAAK1L,UAKhB,SAAU0L,GACf,OAAO26D,EAAgB36D,EAAK1L,QAAS7F,KAUzCrR,EAAMqoI,eAAiB,SAAUnzD,GAE/B,IAAIzmE,EAEAymE,GACFA,EAAQ01C,EAAMv0C,UAAUnB,GACxBzmE,EAAQlO,KAAK0vH,SAAS/6C,IAGtBzmE,EAAQlO,KAAKkO,MAGflO,KAAKomI,cAELpmI,KAAKumI,qBAAqBr4H,IAG5BzO,EAAM2mI,YAAc,WAClB,IAAI2B,EAAc/nI,KAAKhV,QAAQ+8I,YAE/B,IAAK,IAAIrkJ,KAAOqkJ,EAAa,CAC3B,IAAIv6D,EAASu6D,EAAYrkJ,GACzBsc,KAAKmmI,SAASziJ,GAAOskJ,EAAYx6D,KASrC/tE,EAAM8mI,qBAAuB,SAAUr4H,GAIrC,IAFA,IAAI9mB,EAAM8mB,GAASA,EAAMtoB,OAEhBzD,EAAI,EAAGiF,GAAOjF,EAAIiF,EAAKjF,IAAK,CACxB+rB,EAAM/rB,GACZ2lJ,mBAOT,IAAIE,EAAc,WAMhB,SAASA,EAAYx6D,GAEnB,GAAqB,iBAAVA,EACT,OAAOA,EAIT,IAAIzlF,EAAO2kH,EAAKl/B,GAAQ5rE,MAAM,KAC1BqmI,EAAQlgJ,EAAK,GAEbmgJ,EAAYD,EAAMl8H,MAAM,cAExBo8H,EAAWC,EADJF,GAAaA,EAAU,GACED,GAEhCn6D,EAASg4D,EAAQuC,gBAAgBtgJ,EAAK,IAQ1C,OANAylF,EAASM,EAAS,SAAU+G,GAC1B,OAAOA,GAAQ/G,EAAOq6D,EAAStzD,KAEjC,SAAUA,GACR,OAAOA,GAAQszD,EAAStzD,IAM5B,SAASuzD,EAAetqD,EAAMmqD,GAE5B,OAAInqD,EACK,SAAsBjJ,GAC3B,OAAOA,EAAKjsC,aAAak1C,IAKtB,SAAsBjJ,GAC3B,IAAIq9B,EAAQr9B,EAAK64B,cAAcu6B,GAC/B,OAAO/1B,GAASA,EAAM7zB,aAI1B,OAAO2pD,EA/CS,GA+GlB,SAASM,EAAcC,EAASC,GAC9B,OAAO,SAAgBC,EAAOC,GAE5B,IAAK,IAAIvmJ,EAAI,EAAGA,EAAIomJ,EAAQ3iJ,OAAQzD,IAAK,CACvC,IAAIwmJ,EAASJ,EAAQpmJ,GACjBwM,EAAI85I,EAAMG,SAASD,GACnB/5I,EAAI85I,EAAME,SAASD,GAEvB,GAAIh6I,EAAIC,GAAKD,EAAIC,EAIf,OAAQD,EAAIC,EAAI,GAAK,UAFiBqE,IAApBu1I,EAAQG,GAAwBH,EAAQG,GAAUH,GACtC,GAAK,GAKvC,OAAO,GA5EX1C,EAAQuC,gBAAkB,CACxB,SAAY,SAAUQ,GACpB,SAAS5pI,EAASoc,GAChB,OAAOwtH,EAAUxgJ,MAAM2X,KAAM9X,WAO/B,OAJA+W,EAAShY,SAAW,WAClB,OAAO4hJ,EAAU5hJ,YAGZgY,EATG,EAUV,SAAU6B,GACV,OAAO7B,SAAS6B,EAAK,OAEvB,WAAc,SAAUgoI,GACtB,SAASn/I,EAAWgyB,GAClB,OAAOmtH,EAAYzgJ,MAAM2X,KAAM9X,WAOjC,OAJAyB,EAAW1C,SAAW,WACpB,OAAO6hJ,EAAY7hJ,YAGd0C,EATK,EAUZ,SAAUmX,GACV,OAAOnX,WAAWmX,OAKtBrB,EAAMynI,MAAQ,WACZ,GAAKlnI,KAAKhV,QAAQ29I,OAAlB,CAKA,IAAIJ,EAAUle,EAAMv0C,UAAU91E,KAAKhV,QAAQ29I,QAEtC3oI,KAAK+oI,iBAAiBR,KAEzBvoI,KAAKqmI,YAAckC,EAAQloI,OAAOL,KAAKqmI,cAIzC,IAAI2C,EAAaV,EAActoI,KAAKqmI,YAAarmI,KAAKhV,QAAQi7I,eAC9DjmI,KAAKowH,cAAcp+F,KAAKg3G,KAI1BvpI,EAAMspI,iBAAmB,SAAUR,GACjC,IAAK,IAAIpmJ,EAAI,EAAGA,EAAIomJ,EAAQ3iJ,OAAQzD,IAClC,GAAIomJ,EAAQpmJ,IAAM6d,KAAKqmI,YAAYlkJ,GACjC,OAAO,EAIX,OAAO,GA0BTsd,EAAMwpI,MAAQ,WACZ,IAAIlD,EAAa/lI,KAAKhV,QAAQ+6I,WAC1BziJ,EAAO0c,KAAKgiC,MAAM+jG,GAEtB,IAAKziJ,EAEH,MAAM,IAAIktB,MAAM,mBAAqBu1H,GAMvC,OADAziJ,EAAK0H,QAAUgV,KAAKhV,QAAQ+6I,GACrBziJ,GAGTmc,EAAM6sH,aAAe,WAEnB9B,EAASzmI,UAAUuoI,aAAahqI,KAAK0d,MAErCA,KAAKipI,QAAQ3c,gBAGf7sH,EAAMwtH,uBAAyB,SAAU5qG,GACvC,OAAOriB,KAAKipI,QAAQhc,uBAAuB5qG,IAG7C5iB,EAAMivH,aAAe,SAAU5C,GAC7B9rH,KAAKipI,QAAQva,aAAa5C,IAG5BrsH,EAAMguH,kBAAoB,WACxB,OAAOztH,KAAKipI,QAAQxb,qBAGtBhuH,EAAM0vH,kBAAoB,WACxB,OAAOnvH,KAAKipI,QAAQ9Z,qBAKtB1vH,EAAM4vH,SAAW,SAAU16C,GACzB,IAAIzmE,EAAQlO,KAAKovH,SAASz6C,GAE1B,GAAKzmE,EAAMtoB,OAAX,CAKA,IAAIwqI,EAAgBpwH,KAAKkpI,mBAAmBh7H,GAG5ClO,KAAKowH,cAAgBpwH,KAAKowH,cAAc/vH,OAAO+vH,KAIjD3wH,EAAM8vH,UAAY,SAAU56C,GAC1B,IAAIzmE,EAAQlO,KAAKgsH,SAASr3C,GAE1B,GAAKzmE,EAAMtoB,OAAX,CAKAoa,KAAKssH,eAELtsH,KAAKusH,gBAGL,IAAI6D,EAAgBpwH,KAAKkpI,mBAAmBh7H,GAG5ClO,KAAK0sH,YAAY1sH,KAAKowH,eAEtBpwH,KAAKowH,cAAgBA,EAAc/vH,OAAOL,KAAKowH,eAC/CpwH,KAAKkO,MAAQA,EAAM7N,OAAOL,KAAKkO,SAGjCzO,EAAMypI,mBAAqB,SAAUh7H,GACnC,IAAI04H,EAAW5mI,KAAK6mI,QAAQ34H,GAO5B,OALAlO,KAAK8lB,KAAK8gH,EAASQ,UAEnBpnI,KAAKsvH,OAAOsX,EAAS96H,SAErB9L,KAAK0sH,YAAYka,EAAS96H,SAAS,GAC5B86H,EAAS96H,SAQlBrM,EAAM43F,OAAS,SAAU1iB,GACvB,IAAIzmE,EAAQlO,KAAKovH,SAASz6C,GAE1B,GAAKzmE,EAAMtoB,OAAX,CAKA,IAAIzD,EAAGkgC,EACHj7B,EAAM8mB,EAAMtoB,OAEhB,IAAKzD,EAAI,EAAGA,EAAIiF,EAAKjF,IACnBkgC,EAAOnU,EAAM/rB,GACb6d,KAAK2W,QAAQu9D,YAAY7xD,EAAK1L,SAIhC,IAAIwyH,EAAsBnpI,KAAK6mI,QAAQ34H,GAAOpC,QAG9C,IAAK3pB,EAAI,EAAGA,EAAIiF,EAAKjF,IACnB+rB,EAAM/rB,GAAG+qI,iBAAkB,EAK7B,IAFAltH,KAAK0mI,UAEAvkJ,EAAI,EAAGA,EAAIiF,EAAKjF,WACZ+rB,EAAM/rB,GAAG+qI,gBAGlBltH,KAAKsvH,OAAO6Z,KAGd,IAAI/jF,EAAU3lD,EAAMmlD,OAkEpB,OAhEAnlD,EAAMmlD,OAAS,SAAU+vB,GACvBA,EAAQ01C,EAAMv0C,UAAUnB,GACxB,IAAIi7C,EAAc5vH,KAAK0vH,SAAS/6C,GAEhCvvB,EAAQ9iE,KAAK0d,KAAM20E,GAKnB,IAFA,IAAIvtF,EAAMwoI,GAAeA,EAAYhqI,OAE5BzD,EAAI,EAAGiF,GAAOjF,EAAIiF,EAAKjF,IAAK,CACnC,IAAIkgC,EAAOutG,EAAYztI,GAEvBkoI,EAAMmE,WAAWxuH,KAAKowH,cAAe/tG,KAIzC5iB,EAAM2pI,QAAU,WAEd,IAAK,IAAIjnJ,EAAI,EAAGA,EAAI6d,KAAKkO,MAAMtoB,OAAQzD,IAAK,CAC/B6d,KAAKkO,MAAM/rB,GACjBymJ,SAASpzD,OAASrpF,KAAKqpF,SAG9Bx1E,KAAKhV,QAAQ29I,OAAS,SAEtB3oI,KAAKknI,QAELlnI,KAAKymI,WAYPhnI,EAAMunI,cAAgB,SAAUr/I,EAAII,GAElC,IAAIojI,EAAqBnrH,KAAKhV,QAAQmgI,mBAEtCnrH,KAAKhV,QAAQmgI,mBAAqB,EAElC,IAAIj4B,EAAcvrG,EAAGU,MAAM2X,KAAMjY,GAGjC,OADAiY,KAAKhV,QAAQmgI,mBAAqBA,EAC3Bj4B,GASTzzF,EAAM4pI,wBAA0B,WAC9B,OAAOrpI,KAAKowH,cAAc1lI,KAAI,SAAU23B,GACtC,OAAOA,EAAK1L,YAKTmvH,EA9mBIhzD,CAAQvrF,EAAQijI,EAAU/c,EAASzwB,EAAiBqtC,EAAOC,EAAM4F,IACzE,2BAXL,CAoBG3oI,S,iBC/BHslH,cAAEzlE,UAAU8tD,GAAG,4BAA4B,eAI3C9tD,SAAS1tB,iBAAiB,mBAAmB,iB,kCCJ7C0tB,qBAAS1tB,iBAAiB,mBAAmB,WAE3CmzF,EAAE,qCAAqC3X,GAAG,SAAS,SAAS5uG,GAC1DumH,EAAE,QAAQlM,YAAY,mBACtBkM,EAAE,YAAYlM,YAAY,WACtBkM,EAAE,YAAY9L,SAAS,YACzB8L,EAAE,sBAAsBy8B,SAAS,WAKrCz8B,EAAEtlH,QAAQm+B,QAAO,WACXmnF,EAAEtlH,QAAQke,QAAU,KACtBonG,EAAE,sBAAsBy8B,SAAS,QAI/Bz8B,EAAEtlH,QAAQke,QAAU,MAAQonG,EAAE,YAAY9L,SAAS,aACrD8L,EAAE,QAAQxM,SAAS,mBACnBwM,EAAE,YAAYxM,SAAS,WACvBwM,EAAE,sBAAsBy8B,SAAS,YAKrCz8B,EAAE,2BAA2B3X,GAAG,mCAAmC,SAAS5uG,GAC1E,GAAIumH,EAAEtlH,QAAQke,QAAU,IAAK,CAC3B,IAAI8jI,EAAKjjJ,EAAEusG,cACTz+E,EAAQm1H,EAAGC,aAAeD,EAAG31C,OAC/B5zF,KAAK87F,WAAoC,IAAtB1nF,EAAQ,EAAI,GAAK,GACpC9tB,EAAEoqG,qBAKNmc,EAAEzlE,UAAU8tD,GAAG,UAAU,WACF2X,EAAE7sG,MAAM87F,YACR,IACnB+Q,EAAE,kBAAkB/N,SAEpB+N,EAAE,kBAAkB9N,aAKxB8N,EAAE,mBAAmB3X,GAAG,SAAS,SAAS5uG,GACxC,IAAImjJ,EAAU58B,EAAE7sG,MAChB6sG,EAAE,cAAc1vE,OAAOuvC,QAAQ,CAC7BovB,UAAY+Q,EAAE48B,EAAQ3rD,KAAK,SAASjnD,SAASluB,KAC5C,IAAM,iBACTriB,EAAEoqG,oBAGJmc,EAAE,iBAAiB3X,GAAG,SAAS,SAAU5uG,GACvCA,EAAEoqG,iBAEF,IAAIg5C,EAAe78B,EAAE7sG,MAAM0lF,QAAQ,SACnCgkD,EAAa9sD,KAAK,sBAAsB+jB,YAAY,aACpD+oC,EAAa9sD,KAAK,iBAAiB+jB,YAAY,eACzB,aAAlBkM,EAAE7sG,MAAM2J,OACVkjG,EAAE7sG,MAAM2J,KAAK,aAEbkjG,EAAE7sG,MAAM2J,KAAK,qB,iCC9DnB,UAsBGpiB,OATC,EAAO,CAAC,KAAyB,WAA6B,2BAAP,EAShD,SAAiB6iI,EAAW3c,GACrC,aAEA,SAASk8B,EAAW1kJ,GAClB,IAAK,IAAImnB,KAAQnnB,EACf,OAAO,EAIT,OAAO,EAIT,IAAI2kJ,EAAexiG,SAAS80C,gBAAgBh5E,MACxC2mI,EAAuD,iBAA3BD,EAAal5G,WAAyB,aAAe,mBACjFo5G,EAAqD,iBAA1BF,EAAave,UAAwB,YAAc,kBAC9E0e,EAAqB,CACvBlO,iBAAkB,sBAClBnrG,WAAY,iBACZm5G,GAEEG,EAAmB,CACrB3e,UAAWye,EACXp5G,WAAYm5G,EACZ1e,mBAAoB0e,EAAqB,WACzCA,mBAAoBA,EAAqB,WACzCI,gBAAiBJ,EAAqB,SAGxC,SAASvf,EAAK3zG,EAASisB,GAChBjsB,IAIL3W,KAAK2W,QAAUA,EAEf3W,KAAK4iC,OAASA,EACd5iC,KAAKugC,SAAW,CACd9yC,EAAG,EACHC,EAAG,GAGLsS,KAAK6qH,WAIP,IAAIprH,EAAQ6qH,EAAKvmI,UAAYlB,OAAOY,OAAO2mI,EAAUrmI,WA+OrD,SAASmmJ,EAAYr+I,GACnB,OAAOA,EAAImT,QAAQ,YAAY,SAAU24H,GACvC,MAAO,IAAMA,EAAGv4H,iBAhPpBK,EAAMpa,YAAcilI,EAEpB7qH,EAAMorH,QAAU,WAEd7qH,KAAKmqI,QAAU,CACbC,cAAe,GACfC,MAAO,GACPC,MAAO,IAETtqI,KAAK+sF,IAAI,CACPxsD,SAAU,cAKd9gC,EAAMq8D,YAAc,SAAU/4C,GAC5B,IAAIsC,EAAS,KAAOtC,EAAMh6B,KAEtBiX,KAAKqlB,IACPrlB,KAAKqlB,GAAQtC,IAIjBtjB,EAAMguG,QAAU,WACdztG,KAAKiD,KAAOwqG,EAAQztG,KAAK2W,UAQ3BlX,EAAMstF,IAAM,SAAU7pF,GACpB,IAAIqnI,EAAYvqI,KAAK2W,QAAQzT,MAE7B,IAAK,IAAIkJ,KAAQlJ,EAGfqnI,EADoBP,EAAiB59H,IAASA,GACnBlJ,EAAMkJ,IAKrC3M,EAAM+qI,YAAc,WAClB,IAAItnI,EAAQwT,iBAAiB1W,KAAK2W,SAE9B8zH,EAAezqI,KAAK4iC,OAAOkoF,WAAW,cAEtC4f,EAAc1qI,KAAK4iC,OAAOkoF,WAAW,aAErC6f,EAASznI,EAAMunI,EAAe,OAAS,SACvCG,EAAS1nI,EAAMwnI,EAAc,MAAQ,UACrCj9I,EAAI9D,WAAWghJ,GACfj9I,EAAI/D,WAAWihJ,GAEfC,EAAa7qI,KAAK4iC,OAAO3/B,MAED,GAAxB0nI,EAAO7/I,QAAQ,OACjB2C,EAAIA,EAAI,IAAMo9I,EAAWplI,QAGC,GAAxBmlI,EAAO9/I,QAAQ,OACjB4C,EAAIA,EAAI,IAAMm9I,EAAW9jI,QAI3BtZ,EAAID,MAAMC,GAAK,EAAIA,EACnBC,EAAIF,MAAME,GAAK,EAAIA,EAEnBD,GAAKg9I,EAAeI,EAAWl8F,YAAck8F,EAAWj8F,aACxDlhD,GAAKg9I,EAAcG,EAAWp8F,WAAao8F,EAAWn8F,cACtD1uC,KAAKugC,SAAS9yC,EAAIA,EAClBuS,KAAKugC,SAAS7yC,EAAIA,GAIpB+R,EAAMqrI,eAAiB,WACrB,IAAID,EAAa7qI,KAAK4iC,OAAO3/B,KACzBC,EAAQ,GAERunI,EAAezqI,KAAK4iC,OAAOkoF,WAAW,cAEtC4f,EAAc1qI,KAAK4iC,OAAOkoF,WAAW,aAGrCigB,EAAWN,EAAe,cAAgB,eAC1CO,EAAYP,EAAe,OAAS,QACpCQ,EAAiBR,EAAe,QAAU,OAC1Ch9I,EAAIuS,KAAKugC,SAAS9yC,EAAIo9I,EAAWE,GAErC7nI,EAAM8nI,GAAahrI,KAAKkrI,UAAUz9I,GAElCyV,EAAM+nI,GAAkB,GAExB,IAAIE,EAAWT,EAAc,aAAe,gBACxCU,EAAYV,EAAc,MAAQ,SAClCW,EAAiBX,EAAc,SAAW,MAC1Ch9I,EAAIsS,KAAKugC,SAAS7yC,EAAIm9I,EAAWM,GAErCjoI,EAAMkoI,GAAaprI,KAAKsrI,UAAU59I,GAElCwV,EAAMmoI,GAAkB,GACxBrrI,KAAK+sF,IAAI7pF,GACTlD,KAAKiuH,UAAU,SAAU,CAACjuH,QAG5BP,EAAMyrI,UAAY,SAAUz9I,GAC1B,IAAIqmC,EAAe9zB,KAAK4iC,OAAOkoF,WAAW,cAE1C,OAAO9qH,KAAK4iC,OAAO53C,QAAQugJ,kBAAoBz3G,EAAermC,EAAIuS,KAAK4iC,OAAO3/B,KAAKwC,MAAQ,IAAM,IAAMhY,EAAI,MAG7GgS,EAAM6rI,UAAY,SAAU59I,GAC1B,IAAIomC,EAAe9zB,KAAK4iC,OAAOkoF,WAAW,cAE1C,OAAO9qH,KAAK4iC,OAAO53C,QAAQugJ,iBAAmBz3G,EAAepmC,EAAIsS,KAAK4iC,OAAO3/B,KAAK8D,OAAS,IAAM,IAAMrZ,EAAI,MAG7G+R,EAAM+rI,cAAgB,SAAU/9I,EAAGC,GACjCsS,KAAKwqI,cAEL,IAAIiB,EAAOzrI,KAAKugC,SAAS9yC,EACrBi+I,EAAO1rI,KAAKugC,SAAS7yC,EACrBi+I,EAAal+I,GAAKuS,KAAKugC,SAAS9yC,GAAKC,GAAKsS,KAAKugC,SAAS7yC,EAI5D,GAFAsS,KAAK4rI,YAAYn+I,EAAGC,IAEhBi+I,GAAe3rI,KAAK6rI,gBAAxB,CAKA,IAAIC,EAASr+I,EAAIg+I,EACbM,EAASr+I,EAAIg+I,EACbM,EAAkB,GACtBA,EAAgB3gB,UAAYrrH,KAAKisI,aAAaH,EAAQC,GACtD/rI,KAAK0wB,WAAW,CACdhN,GAAIsoH,EACJE,gBAAiB,CACf7gB,UAAWrrH,KAAK8qI,gBAElBqB,YAAY,SAbZnsI,KAAK8qI,kBAiBTrrI,EAAMwsI,aAAe,SAAUx+I,EAAGC,GAQhC,MAAO,gBAFPD,EAJmBuS,KAAK4iC,OAAOkoF,WAAW,cAIvBr9H,GAAKA,GAEI,QAD5BC,EAHkBsS,KAAK4iC,OAAOkoF,WAAW,aAGvBp9H,GAAKA,GACkB,UAI3C+R,EAAM+tH,KAAO,SAAU//H,EAAGC,GACxBsS,KAAK4rI,YAAYn+I,EAAGC,GACpBsS,KAAK8qI,kBAGPrrI,EAAMqI,OAASrI,EAAM+rI,cAErB/rI,EAAMmsI,YAAc,SAAUn+I,EAAGC,GAC/BsS,KAAKugC,SAAS9yC,EAAI9D,WAAW8D,GAC7BuS,KAAKugC,SAAS7yC,EAAI/D,WAAW+D,IAU/B+R,EAAM2sI,eAAiB,SAAUrkJ,GAO/B,IAAK,IAAIqkB,KANTpM,KAAK+sF,IAAIhlG,EAAK27B,IAEV37B,EAAKokJ,YACPnsI,KAAKqsI,cAActkJ,EAAK27B,IAGT37B,EAAKmkJ,gBACpBnkJ,EAAKmkJ,gBAAgB9/H,GAAM9pB,KAAK0d,OAapCP,EAAMixB,WAAa,SAAU3oC,GAE3B,GAAK4B,WAAWqW,KAAK4iC,OAAO53C,QAAQmgI,oBAApC,CAMA,IAAImhB,EAActsI,KAAKmqI,QAEvB,IAAK,IAAI/9H,KAAQrkB,EAAKmkJ,gBACpBI,EAAYhC,MAAMl+H,GAAQrkB,EAAKmkJ,gBAAgB9/H,GAIjD,IAAKA,KAAQrkB,EAAK27B,GAChB4oH,EAAYlC,cAAch+H,IAAQ,EAE9BrkB,EAAKokJ,aACPG,EAAYjC,MAAMj+H,IAAQ,GAK1BrkB,EAAKpD,OACPqb,KAAK+sF,IAAIhlG,EAAKpD,MAENqb,KAAK2W,QAAQgjF,cAMvB35F,KAAKusI,iBAAiBxkJ,EAAK27B,IAE3B1jB,KAAK+sF,IAAIhlG,EAAK27B,IACd1jB,KAAK6rI,iBAAkB,OAjCrB7rI,KAAKosI,eAAerkJ,IA4CxB,IAAIykJ,EAAkB,WAAatC,EAAYJ,GAE/CrqI,EAAM8sI,iBAAmB,WAKvB,IAAIvsI,KAAK6rI,gBAAT,CAcA,IAAIjqH,EAAW5hB,KAAK4iC,OAAO53C,QAAQmgI,mBACnCvpG,EAA8B,iBAAZA,EAAuBA,EAAW,KAAOA,EAE3D5hB,KAAK+sF,IAAI,CACP88C,mBAAoB2C,EACpBrhB,mBAAoBvpG,EACpBqoH,gBAAiBjqI,KAAKysI,cAAgB,IAGxCzsI,KAAK2W,QAAQ+C,iBAAiBqwH,EAAoB/pI,MAAM,KAI1DP,EAAMitI,sBAAwB,SAAU3pH,GACtC/iB,KAAK2sI,gBAAgB5pH,IAGvBtjB,EAAMmtI,iBAAmB,SAAU7pH,GACjC/iB,KAAK2sI,gBAAgB5pH,IAIvB,IAAI8pH,EAAyB,CAC3B,oBAAqB,aAGvBptI,EAAMktI,gBAAkB,SAAU5pH,GAEhC,GAAIA,EAAMr9B,SAAWsa,KAAK2W,QAA1B,CAIA,IAAI21H,EAActsI,KAAKmqI,QAEnB2C,EAAeD,EAAuB9pH,EAAM+pH,eAAiB/pH,EAAM+pH,oBAEhER,EAAYlC,cAAc0C,GAE7BnD,EAAW2C,EAAYlC,gBAEzBpqI,KAAK+sI,oBAIHD,KAAgBR,EAAYjC,QAE9BrqI,KAAK2W,QAAQzT,MAAM6f,EAAM+pH,cAAgB,UAClCR,EAAYjC,MAAMyC,IAIvBA,KAAgBR,EAAYhC,QACRgC,EAAYhC,MAAMwC,GACxBxqJ,KAAK0d,aACdssI,EAAYhC,MAAMwC,IAG3B9sI,KAAKiuH,UAAU,gBAAiB,CAACjuH,SAGnCP,EAAMstI,kBAAoB,WACxB/sI,KAAKgtI,yBACLhtI,KAAK2W,QAAQgD,oBAAoBowH,EAAoB/pI,MAAM,GAC3DA,KAAK6rI,iBAAkB,GAQzBpsI,EAAM4sI,cAAgB,SAAUnpI,GAE9B,IAAI+pI,EAAa,GAEjB,IAAK,IAAI7gI,KAAQlJ,EACf+pI,EAAW7gI,GAAQ,GAGrBpM,KAAK+sF,IAAIkgD,IAGX,IAAIC,EAAuB,CACzBrD,mBAAoB,GACpB1e,mBAAoB,GACpB8e,gBAAiB,IA+HnB,OA5HAxqI,EAAMutI,uBAAyB,WAE7BhtI,KAAK+sF,IAAImgD,IAIXztI,EAAM6tH,QAAU,SAAU/oG,GACxBA,EAAQ/2B,MAAM+2B,GAAS,EAAIA,EAC3BvkB,KAAKysI,aAAeloH,EAAQ,MAK9B9kB,EAAM0tI,WAAa,WACjBntI,KAAK2W,QAAQP,WAAW+9D,YAAYn0E,KAAK2W,SAEzC3W,KAAK+sF,IAAI,CACPtuD,QAAS,KAEXz+B,KAAKiuH,UAAU,SAAU,CAACjuH,QAG5BP,EAAMmlD,OAAS,WAERilF,GAAuBlgJ,WAAWqW,KAAK4iC,OAAO53C,QAAQmgI,qBAM3DnrH,KAAKynF,KAAK,iBAAiB,WACzBznF,KAAKmtI,gBAEPntI,KAAK8lB,QARH9lB,KAAKmtI,cAWT1tI,EAAM6vH,OAAS,kBACNtvH,KAAK6nI,SAEZ7nI,KAAK+sF,IAAI,CACPtuD,QAAS,KAEX,IAAIzzC,EAAUgV,KAAK4iC,OAAO53C,QACtBkhJ,EAAkB,GAEtBA,EAD4BlsI,KAAKotI,mCAAmC,iBAC3BptI,KAAKqtI,sBAC9CrtI,KAAK0wB,WAAW,CACd/rC,KAAMqG,EAAQogI,YACd1nG,GAAI14B,EAAQsgI,aACZ6gB,YAAY,EACZD,gBAAiBA,KAIrBzsI,EAAM4tI,sBAAwB,WAGvBrtI,KAAK6nI,UACR7nI,KAAKiuH,UAAU,WAUnBxuH,EAAM2tI,mCAAqC,SAAUE,GACnD,IAAIC,EAAcvtI,KAAK4iC,OAAO53C,QAAQsiJ,GAEtC,GAAIC,EAAYhtE,QACd,MAAO,UAIT,IAAK,IAAIn0D,KAAQmhI,EACf,OAAOnhI,GAIX3M,EAAMqmB,KAAO,WAEX9lB,KAAK6nI,UAAW,EAEhB7nI,KAAK+sF,IAAI,CACPtuD,QAAS,KAEX,IAAIzzC,EAAUgV,KAAK4iC,OAAO53C,QACtBkhJ,EAAkB,GAEtBA,EAD4BlsI,KAAKotI,mCAAmC,gBAC3BptI,KAAKwtI,oBAC9CxtI,KAAK0wB,WAAW,CACd/rC,KAAMqG,EAAQsgI,aACd5nG,GAAI14B,EAAQogI,YAEZ+gB,YAAY,EACZD,gBAAiBA,KAIrBzsI,EAAM+tI,oBAAsB,WAGtBxtI,KAAK6nI,WACP7nI,KAAK+sF,IAAI,CACPtuD,QAAS,SAEXz+B,KAAKiuH,UAAU,UAInBxuH,EAAM6yD,QAAU,WACdtyD,KAAK+sF,IAAI,CACPxsD,SAAU,GACV93B,KAAM,GACNC,MAAO,GACPC,IAAK,GACLC,OAAQ,GACR8nB,WAAY,GACZ26F,UAAW,MAIRf,IArhByD,gC,gBCblE,UAsBG/iI,OATC,EAAO,CAAC,WAA6B,2BAAP,EASvB,SAAiBijI,GAC1B,aAGA,SAASF,IACPE,EAASF,KAAKjiI,MAAM2X,KAAM9X,WAG5B,IAAIuX,EAAQ6qH,EAAKvmI,UAAYlB,OAAOY,OAAO+mI,EAASF,KAAKvmI,WACrD8mI,EAAUprH,EAAMorH,QAEpBprH,EAAMorH,QAAU,WAEd7qH,KAAKpX,GAAKoX,KAAK4iC,OAAOsjG,WAEtBrb,EAAQvoI,KAAK0d,MAEbA,KAAK4oI,SAAW,IAGlBnpI,EAAMqoI,eAAiB,WACrB,IAAI9nI,KAAK+sH,UAAT,CAKA/sH,KAAK4oI,SAAShgJ,GAAKoX,KAAKpX,GAExBoX,KAAK4oI,SAAS,kBAAoB5oI,KAAKpX,GACvCoX,KAAK4oI,SAASpzD,OAASrpF,KAAKqpF,SAE5B,IAAIuyD,EAAc/nI,KAAK4iC,OAAO53C,QAAQ+8I,YAClC0F,EAAUztI,KAAK4iC,OAAOujG,SAE1B,IAAK,IAAIziJ,KAAOqkJ,EAAa,CAC3B,IAAIv6D,EAASigE,EAAQ/pJ,GACrBsc,KAAK4oI,SAASllJ,GAAO8pF,EAAOxtE,KAAK2W,QAAS3W,SAI9C,IAAI2kD,EAAWllD,EAAM6yD,QAYrB,OAVA7yD,EAAM6yD,QAAU,WAEd3N,EAASt8D,MAAM2X,KAAM9X,WAGrB8X,KAAK+sF,IAAI,CACPtuD,QAAS,MAIN6rF,IA7DgC,gC,gBCbzC,UAuBG/iI,OARC,EAAO,CAAC,KAAkB,YAAkC,2BAAP,EAQ9C,SAAiB2oI,EAAYwd,GACtC,aAGA,IAAIC,EAAczd,EAAWzsI,OAAO,WAChCgc,EAAQkuI,EAAY5pJ,UACpB6pJ,EAAkB,CACpB/e,mBAAmB,EACnBjsF,QAAQ,EACR+pF,iBAAiB,GAGnB,IAAK,IAAItnG,KAAUqoH,EAAQ3pJ,UAEpB6pJ,EAAgBvoH,KACnB5lB,EAAM4lB,GAAUqoH,EAAQ3pJ,UAAUshC,IAItC,IAAIwoH,EAAiBpuI,EAAMouI,eAE3BpuI,EAAMouI,eAAiB,WAErB7tI,KAAKkO,MAAQlO,KAAKmwH,QAAQC,cAC1Byd,EAAevrJ,KAAK0d,OAItB,IAAI8qH,EAAarrH,EAAMqrH,WAUvB,OARArrH,EAAMqrH,WAAa,SAAUtkG,GAC3B,MAAc,YAAVA,OACiCvzB,IAA5B+M,KAAKhV,QAAQ8iJ,WAA2B9tI,KAAKhV,QAAQ8iJ,WAAa9tI,KAAKhV,QAAQ+iJ,SAGjFjjB,EAAWziI,MAAM2X,KAAKmwH,QAASjoI,YAGjCylJ,IA9CuD,gC,gBCfhE,UAyBGpmJ,OARC,EAAO,CAAC,KAAqB,WAA6B,2BAAP,EAQ5C,SAAiBijI,EAAU/c,GACpC,aAGA,IAAIigC,EAAUljB,EAAS/mI,OAAO,WAE9BiqJ,EAAQhiB,cAAcqiB,SAAW,aACjC,IAAItuI,EAAQiuI,EAAQ3pJ,UA2MpB,OAzMA0b,EAAM6sH,aAAe,WACnBtsH,KAAKytG,UAELztG,KAAK2sH,gBAAgB,cAAe,cAEpC3sH,KAAK2sH,gBAAgB,SAAU,cAE/B3sH,KAAK6tI,iBAEL7tI,KAAKguI,MAAQ,GAEb,IAAK,IAAI7rJ,EAAI,EAAGA,EAAI6d,KAAKiuI,KAAM9rJ,IAC7B6d,KAAKguI,MAAMtoI,KAAK,GAGlB1F,KAAK45B,KAAO,EACZ55B,KAAKkuI,mBAAqB,GAG5BzuI,EAAMouI,eAAiB,WAGrB,GAFA7tI,KAAKmuI,qBAEAnuI,KAAKouI,YAAa,CACrB,IAAItd,EAAY9wH,KAAKkO,MAAM,GACvBmgI,EAAgBvd,GAAaA,EAAUn6G,QAE3C3W,KAAKouI,YAAcC,GAAiB5gC,EAAQ4gC,GAAetrG,YAC3D/iC,KAAKsuI,eAGP,IAAIF,EAAcpuI,KAAKouI,aAAepuI,KAAKuuI,OAEvCD,EAAiBtuI,KAAKsuI,eAAiBtuI,KAAKuuI,OAC5CN,EAAOK,EAAiBF,EAExBxvD,EAASwvD,EAAcE,EAAiBF,EAG5CH,EAAO9hJ,KADUyyF,GAAUA,EAAS,EAAI,QAAU,SAC1BqvD,GACxBjuI,KAAKiuI,KAAO9hJ,KAAK6B,IAAIigJ,EAAM,IAG7BxuI,EAAM0uI,kBAAoB,WAExB,IAEIz1H,EAFa1Y,KAAK8qH,WAAW,YAEJ9qH,KAAK2W,QAAQP,WAAapW,KAAK2W,QAGxD1T,EAAOwqG,EAAQ/0F,GACnB1Y,KAAKsuI,eAAiBrrI,GAAQA,EAAKmqG,YAGrC3tG,EAAMwtH,uBAAyB,SAAU5qG,GACvCA,EAAKorF,UAEL,IAAI+gC,EAAYnsH,EAAKpf,KAAK8/B,WAAa/iC,KAAKouI,YAGxCK,EAAUtiJ,KAFGqiJ,GAAaA,EAAY,EAAI,QAAU,QAEzBnsH,EAAKpf,KAAK8/B,WAAa/iC,KAAKouI,aAC3DK,EAAUtiJ,KAAK4B,IAAI0gJ,EAASzuI,KAAKiuI,MAajC,IAXA,IACIS,EAAc1uI,KADCA,KAAKhV,QAAQ2jJ,gBAAkB,4BAA8B,sBAC3CF,EAASpsH,GAE1Cke,EAAW,CACb9yC,EAAGuS,KAAKouI,YAAcM,EAAYn1E,IAClC7rE,EAAGghJ,EAAYhhJ,GAGbkhJ,EAAYF,EAAYhhJ,EAAI20B,EAAKpf,KAAKggC,YACtC0kC,EAAS8mE,EAAUC,EAAYn1E,IAE1Bp3E,EAAIusJ,EAAYn1E,IAAKp3E,EAAIwlF,EAAQxlF,IACxC6d,KAAKguI,MAAM7rJ,GAAKysJ,EAGlB,OAAOruG,GAGT9gC,EAAMovI,mBAAqB,SAAUJ,GACnC,IAAIK,EAAW9uI,KAAK+uI,gBAAgBN,GAGhCO,EAAW7iJ,KAAK4B,IAAI1F,MAAM8D,KAAM2iJ,GACpC,MAAO,CACLv1E,IAAKu1E,EAAShkJ,QAAQkkJ,GACtBthJ,EAAGshJ,IASPvvI,EAAMsvI,gBAAkB,SAAUN,GAChC,GAAIA,EAAU,EAEZ,OAAOzuI,KAAKguI,MAOd,IAJA,IAAIc,EAAW,GAEXG,EAAajvI,KAAKiuI,KAAO,EAAIQ,EAExBtsJ,EAAI,EAAGA,EAAI8sJ,EAAY9sJ,IAC9B2sJ,EAAS3sJ,GAAK6d,KAAKkvI,cAAc/sJ,EAAGssJ,GAGtC,OAAOK,GAGTrvI,EAAMyvI,cAAgB,SAAU31E,EAAKk1E,GACnC,GAAIA,EAAU,EACZ,OAAOzuI,KAAKguI,MAAMz0E,GAIpB,IAAI41E,EAAanvI,KAAKguI,MAAM9mJ,MAAMqyE,EAAKA,EAAMk1E,GAE7C,OAAOtiJ,KAAK6B,IAAI3F,MAAM8D,KAAMgjJ,IAI9B1vI,EAAM2vI,0BAA4B,SAAUX,EAASpsH,GACnD,IAAIk3C,EAAMv5D,KAAKkuI,mBAAqBluI,KAAKiuI,KAGzC10E,EAFak1E,EAAU,GAAKl1E,EAAMk1E,EAAUzuI,KAAKiuI,KAElC,EAAI10E,EAEnB,IAAI81E,EAAUhtH,EAAKpf,KAAK8/B,YAAc1gB,EAAKpf,KAAKggC,YAEhD,OADAjjC,KAAKkuI,mBAAqBmB,EAAU91E,EAAMk1E,EAAUzuI,KAAKkuI,mBAClD,CACL30E,IAAKA,EACL7rE,EAAGsS,KAAKkvI,cAAc31E,EAAKk1E,KAI/BhvI,EAAMivH,aAAe,SAAU5C,GAC7B,IAAIwjB,EAAY7hC,EAAQqe,GAEpBj1F,EAAS72B,KAAK6uH,kBAAkB/C,GAKhCyjB,EAFevvI,KAAK8qH,WAAW,cAEPj0F,EAAOpuB,KAAOouB,EAAOnuB,MAC7C8mI,EAAQD,EAASD,EAAUvsG,WAC3B0sG,EAAWtjJ,KAAKkB,MAAMkiJ,EAASvvI,KAAKouI,aACxCqB,EAAWtjJ,KAAK6B,IAAI,EAAGyhJ,GACvB,IAAIC,EAAUvjJ,KAAKkB,MAAMmiJ,EAAQxvI,KAAKouI,aAEtCsB,GAAWF,EAAQxvI,KAAKouI,YAAc,EAAI,EAC1CsB,EAAUvjJ,KAAK4B,IAAIiS,KAAKiuI,KAAO,EAAGyB,GAMlC,IAJA,IAEIC,GAFc3vI,KAAK8qH,WAAW,aAEHj0F,EAAOluB,IAAMkuB,EAAOjuB,QAAU0mI,EAAUrsG,YAE9D9gD,EAAIstJ,EAAUttJ,GAAKutJ,EAASvtJ,IACnC6d,KAAKguI,MAAM7rJ,GAAKgK,KAAK6B,IAAI2hJ,EAAW3vI,KAAKguI,MAAM7rJ,KAInDsd,EAAMguH,kBAAoB,WACxBztH,KAAK45B,KAAOztC,KAAK6B,IAAI3F,MAAM8D,KAAM6T,KAAKguI,OACtC,IAAI/qI,EAAO,CACT8D,OAAQ/G,KAAK45B,MAOf,OAJI55B,KAAK8qH,WAAW,cAClB7nH,EAAKwC,MAAQzF,KAAK4vI,yBAGb3sI,GAGTxD,EAAMmwI,sBAAwB,WAK5B,IAJA,IAAIC,EAAa,EAEb1tJ,EAAI6d,KAAKiuI,OAEJ9rJ,GACe,IAAlB6d,KAAKguI,MAAM7rJ,IAIf0tJ,IAIF,OAAQ7vI,KAAKiuI,KAAO4B,GAAc7vI,KAAKouI,YAAcpuI,KAAKuuI,QAG5D9uI,EAAM0vH,kBAAoB,WACxB,IAAI2gB,EAAgB9vI,KAAKsuI,eAEzB,OADAtuI,KAAKmuI,oBACE2B,GAAiB9vI,KAAKsuI,gBAGxBZ,IA1NqD,gC,gBCjB9D,UAqBGnmJ,OARC,EAAO,CAAC,WAA0B,2BAAP,EAQpB,SAAiB2oI,GAC1B,aAEA,IAAI6f,EAAU7f,EAAWzsI,OAAO,WAC5Bgc,EAAQswI,EAAQhsJ,UAoCpB,OAlCA0b,EAAM6sH,aAAe,WACnBtsH,KAAKvS,EAAI,EACTuS,KAAKtS,EAAI,EACTsS,KAAK45B,KAAO,EAEZ55B,KAAK2sH,gBAAgB,SAAU,eAGjCltH,EAAMwtH,uBAAyB,SAAU5qG,GACvCA,EAAKorF,UACL,IAAIhyF,EAAY4G,EAAKpf,KAAK8/B,WAAa/iC,KAAKuuI,OAExCD,EAAiBtuI,KAAKmwH,QAAQltH,KAAKmqG,WAAaptG,KAAKuuI,OAE1C,IAAXvuI,KAAKvS,GAAWguB,EAAYzb,KAAKvS,EAAI6gJ,IACvCtuI,KAAKvS,EAAI,EACTuS,KAAKtS,EAAIsS,KAAK45B,MAGhB,IAAI2G,EAAW,CACb9yC,EAAGuS,KAAKvS,EACRC,EAAGsS,KAAKtS,GAIV,OAFAsS,KAAK45B,KAAOztC,KAAK6B,IAAIgS,KAAK45B,KAAM55B,KAAKtS,EAAI20B,EAAKpf,KAAKggC,aACnDjjC,KAAKvS,GAAKguB,EACH8kB,GAGT9gC,EAAMguH,kBAAoB,WACxB,MAAO,CACL1mH,OAAQ/G,KAAK45B,OAIVm2G,IAhD6B,gC,gBCbtC,UAqBGxoJ,OARC,EAAO,CAAC,WAA0B,2BAAP,EAQpB,SAAiB2oI,GAC1B,aAEA,IAAI8f,EAAW9f,EAAWzsI,OAAO,WAAY,CAC3CwsJ,oBAAqB,IAEnBxwI,EAAQuwI,EAASjsJ,UAuBrB,OArBA0b,EAAM6sH,aAAe,WACnBtsH,KAAKtS,EAAI,GAGX+R,EAAMwtH,uBAAyB,SAAU5qG,GACvCA,EAAKorF,UACL,IAAIhgH,GAAKuS,KAAKmwH,QAAQltH,KAAKmqG,WAAa/qF,EAAKpf,KAAK8/B,YAAc/iC,KAAKhV,QAAQilJ,oBACzEviJ,EAAIsS,KAAKtS,EAEb,OADAsS,KAAKtS,GAAK20B,EAAKpf,KAAKggC,YACb,CACLx1C,EAAGA,EACHC,EAAGA,IAIP+R,EAAMguH,kBAAoB,WACxB,MAAO,CACL1mH,OAAQ/G,KAAKtS,IAIVsiJ,IArC6B,gC,yDCbtC,SAAS5qJ,EAAQH,GAAmV,OAAtOG,EAArD,oBAAXlC,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,GAenX,SAASgE,EAAShE,GAChB,OAAe,OAARA,GAAiC,WAAjBG,EAAQH,IAAqB,gBAAiBA,GAAOA,EAAII,cAAgBxC,OAGlG,SAASqyF,IACP,IAAIxvF,EAASwC,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,GAC7E+tE,EAAM/tE,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,GAC9ErF,OAAOkH,KAAKksE,GAAKjoD,SAAQ,SAAUtqB,GACN,qBAAhBgC,EAAOhC,GAAsBgC,EAAOhC,GAAOuyE,EAAIvyE,GAAcuF,EAASgtE,EAAIvyE,KAASuF,EAASvD,EAAOhC,KAASb,OAAOkH,KAAKksE,EAAIvyE,IAAMkC,OAAS,GACpJsvF,EAAOxvF,EAAOhC,GAAMuyE,EAAIvyE,OAK9B,IAAIwsJ,EAAc,CAChBxyE,KAAM,GACNhkD,iBAAkB,aAClBC,oBAAqB,aACrB4mE,cAAe,CACbuU,KAAM,aACN/a,SAAU,IAEZ2zB,cAAe,WACb,OAAO,MAET5yB,iBAAkB,WAChB,MAAO,IAETp7B,eAAgB,WACd,OAAO,MAETo0E,YAAa,WACX,MAAO,CACLqc,UAAW,eAGfl8D,cAAe,WACb,MAAO,CACLrB,SAAU,GACVqH,WAAY,GACZ/2E,MAAO,GACPgmC,aAAc,aACduxC,qBAAsB,WACpB,MAAO,MAIb21D,gBAAiB,WACf,MAAO,IAETC,WAAY,WACV,OAAO,MAET/vD,SAAU,CACRD,KAAM,GACNhqE,KAAM,GACNi6H,SAAU,GACV7vD,KAAM,GACN8vD,OAAQ,GACRC,SAAU,GACV9rC,SAAU,GACV+rC,OAAQ,KAIZ,SAASC,IACP,IAAI38D,EAA0B,qBAAb3sC,SAA2BA,SAAW,GAEvD,OADA8tC,EAAOnB,EAAKm8D,GACLn8D,EAGT,IAAI48D,EAAY,CACdvpG,SAAU8oG,EACV1vB,UAAW,CACTC,UAAW,IAEbngC,SAAU,CACRD,KAAM,GACNhqE,KAAM,GACNi6H,SAAU,GACV7vD,KAAM,GACN8vD,OAAQ,GACRC,SAAU,GACV9rC,SAAU,GACV+rC,OAAQ,IAEVG,QAAS,CACPC,aAAc,aACdC,UAAW,aACXC,GAAI,aACJC,KAAM,cAERnd,YAAa,WACX,OAAO7zH,MAET0Z,iBAAkB,aAClBC,oBAAqB,aACrBjD,iBAAkB,WAChB,MAAO,CACLoD,iBAAkB,WAChB,MAAO,MAIbqkH,MAAO,aACPl8G,KAAM,aACNgvH,OAAQ,GACR/vF,WAAY,aACZD,aAAc,aACdiwF,WAAY,WACV,MAAO,IAETzpJ,sBAAuB,SAA+BD,GACpD,MAA0B,qBAAf05D,YACT15D,IACO,MAGF05D,WAAW15D,EAAU,IAE9B2pJ,qBAAsB,SAA8BvoJ,GACxB,qBAAfs4D,YAIXD,aAAar4D,KAIjB,SAASwoJ,IACP,IAAI7lC,EAAwB,qBAAXhkH,OAAyBA,OAAS,GAEnD,OADA2tF,EAAOq2B,EAAKolC,GACLplC,ECnJT,SAAS,EAAQtmH,GAAmV,OAAtO,EAArD,oBAAX/B,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,GAEnX,SAASd,EAAmBC,GAAO,OAQnC,SAA4BA,GAAO,GAAIC,MAAMC,QAAQF,GAAM,OAAOG,EAAkBH,GAR1CI,CAAmBJ,IAM7D,SAA0BK,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOwB,WAA2C,MAAtBD,EAAK,cAAuB,OAAOJ,MAAMM,KAAKF,GANjFG,CAAiBR,IAItF,SAAqCxB,EAAGoE,GAAU,IAAKpE,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2B,EAAkB3B,EAAGoE,GAAS,IAAIpD,EAAIf,OAAOkB,UAAUkD,SAAS3E,KAAKM,GAAGsE,MAAM,GAAI,GAAc,WAANtD,GAAkBhB,EAAEyC,cAAazB,EAAIhB,EAAEyC,YAAY3C,MAAM,GAAU,QAANkB,GAAqB,QAANA,EAAa,OAAOS,MAAMM,KAAK/B,GAAI,GAAU,cAANgB,GAAqB,2CAA2CuD,KAAKvD,GAAI,OAAOW,EAAkB3B,EAAGoE,GAJxTnC,CAA4BT,IAE1H,WAAgC,MAAM,IAAIU,UAAU,wIAF8EC,GAUlI,SAASR,EAAkBH,EAAKgD,IAAkB,MAAPA,GAAeA,EAAMhD,EAAIwB,UAAQwB,EAAMhD,EAAIwB,QAAQ,IAAK,IAAIzD,EAAI,EAAGkF,EAAO,IAAIhD,MAAM+C,GAAMjF,EAAIiF,EAAKjF,IAAOkF,EAAKlF,GAAKiC,EAAIjC,GAAM,OAAOkF,EAQhL,SAAS+4B,EAA2BC,EAAM/9B,GAAQ,OAAIA,GAA2B,WAAlB,EAAQA,IAAsC,oBAATA,EAA8Cg+B,EAAuBD,GAAtC/9B,EAEnI,SAASg+B,EAAuBD,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIE,eAAe,6DAAgE,OAAOF,EAE/J,SAASgxH,EAAiB1iC,GAAS,IAAIpgG,EAAwB,oBAAR+L,IAAqB,IAAIA,SAAQrnB,EAA8nB,OAAnnBo+I,EAAmB,SAA0B1iC,GAAS,GAAc,OAAVA,IAMlIhnH,EANuKgnH,GAMjG,IAAzDC,SAAS3nH,SAAS3E,KAAKqF,GAAImD,QAAQ,kBAN+H,OAAO6jH,EAMjN,IAA2BhnH,EAN6L,GAAqB,oBAAVgnH,EAAwB,MAAM,IAAI7pH,UAAU,sDAAyD,GAAsB,qBAAXypB,EAAwB,CAAE,GAAIA,EAAOc,IAAIs/F,GAAQ,OAAOpgG,EAAOvrB,IAAI2rH,GAAQpgG,EAAOnO,IAAIuuG,EAAO2iC,GAAY,SAASA,IAAY,OAAO7iC,EAAWE,EAAOzmH,UAAW+2B,EAAgBjf,MAAM3a,aAAgK,OAAhJisJ,EAAQvtJ,UAAYlB,OAAOY,OAAOkrH,EAAM5qH,UAAW,CAAEsB,YAAa,CAAEjC,MAAOkuJ,EAASvuJ,YAAY,EAAOoC,UAAU,EAAMD,cAAc,KAAkBq6B,EAAgB+xH,EAAS3iC,KAAmCA,GAE9uB,SAASF,EAAWC,EAAQ3mH,EAAM4mH,GAAqV,OAAzSF,EAA/BxuF,IAA4C/Q,QAAQ2Q,UAAiC,SAAoB6uF,EAAQ3mH,EAAM4mH,GAAS,IAAIhgH,EAAI,CAAC,MAAOA,EAAE+W,KAAKrd,MAAMsG,EAAG5G,GAAO,IAAsDxC,EAAW,IAA/CqpH,SAASjrH,KAAK0E,MAAMqmH,EAAQ//G,IAA6F,OAAnDggH,GAAOpvF,EAAgBh6B,EAAUopH,EAAM5qH,WAAmBwB,IAAiC8C,MAAM,KAAMH,WAErZ,SAAS+3B,IAA8B,GAAuB,qBAAZ/Q,UAA4BA,QAAQ2Q,UAAW,OAAO,EAAO,GAAI3Q,QAAQ2Q,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlR,MAAsB,OAAO,EAAM,IAAsF,OAAhFmR,QAAQh8B,UAAUi8B,QAAQ19B,KAAK4sB,QAAQ2Q,UAAUE,QAAS,IAAI,iBAAyB,EAAQ,MAAOz5B,GAAK,OAAO,GAI/T,SAASi5B,EAAgB38B,EAAGqB,GAA+G,OAA1Gs7B,EAAkB18B,OAAO28B,gBAAkB,SAAyB58B,EAAGqB,GAAsB,OAAjBrB,EAAE68B,UAAYx7B,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASg7B,EAAgBr8B,GAAwJ,OAAnJq8B,EAAkBp8B,OAAO28B,eAAiB38B,OAAOusB,eAAiB,SAAyBxsB,GAAK,OAAOA,EAAE68B,WAAa58B,OAAOusB,eAAexsB,KAA8BA,GA4BxM,IAAI2uJ,EAAoB,SAAUC,IA9ClC,SAAmBnyH,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIx6B,UAAU,sDAAyDu6B,EAASt7B,UAAYlB,OAAOY,OAAO67B,GAAcA,EAAWv7B,UAAW,CAAEsB,YAAa,CAAEjC,MAAOi8B,EAAUl6B,UAAU,EAAMD,cAAc,KAAeo6B,GAAYC,EAAgBF,EAAUC,GA+CjXF,CAAUmyH,EAAMC,GAEhB,IA/CoB7xH,EAAeC,EA+C/BwT,GA/CgBzT,EA+CM4xH,EA/CS3xH,EAA4BK,IAAoC,WAAkC,IAAsCjJ,EAAlCkJ,EAAQjB,EAAgBU,GAAkB,GAAIC,EAA2B,CAAE,IAAIO,EAAYlB,EAAgBjf,MAAM3a,YAAa2xB,EAAS9H,QAAQ2Q,UAAUK,EAAOh4B,UAAWi4B,QAAqBnJ,EAASkJ,EAAM73B,MAAM2X,KAAM9X,WAAc,OAAOk4B,EAA2BpgB,KAAMgX,KAiD1Z,SAASu6H,EAAKrjI,GACZ,IAAI6pB,EAlBc9yC,EAChBwa,EA4BF,OAjEJ,SAAyBla,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIV,UAAU,qCAwD5GQ,CAAgB0a,KAAMuxI,GAED,kBAAVrjI,EACT6pB,EAAQ3E,EAAO9wC,KAAK0d,KAAMkO,IAE1B6pB,EAAQ3E,EAAO9wC,KAAK+F,MAAM+qC,EAAQ,CAACpzB,MAAMK,OAAOlc,EAAmB+pB,GAAS,MAzB5DjpB,EA0BHq7B,EAAuByX,GAzBpCt4B,EAAQxa,EAAIw6B,UAChB58B,OAAOC,eAAemC,EAAK,YAAa,CACtCjC,IAAK,WACH,OAAOyc,GAETW,IAAK,SAAahd,GAChBqc,EAAMggB,UAAYr8B,MAsBbg9B,EAA2B2X,GAGpC,OAAOw5G,EApBe,CAqBRF,EAAiBhtJ,QAEjC,SAASotJ,IACP,IAAIrtJ,EAAM8D,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,GAC1Eg9B,EAAM,GAQV,OAPA9gC,EAAI4pB,SAAQ,SAAU6L,GAChBx1B,MAAMC,QAAQu1B,GAChBqL,EAAIxf,KAAKrd,MAAM68B,EAAK/gC,EAAmBstJ,EAAU53H,KAEjDqL,EAAIxf,KAAKmU,MAGNqL,EAGT,SAASwsH,EAAYttJ,EAAKoD,GACxB,OAAOnD,MAAMN,UAAU+sB,OAAOxuB,KAAK8B,EAAKoD,GAmC1C,SAASqlH,EAAEv4B,EAAU7xE,GACnB,IAAIlb,EAAS6pJ,IACThqG,EAAWspG,IACXtsJ,EAAM,GAEV,IAAKqe,GAAW6xE,aAAoBi9D,EAClC,OAAOj9D,EAGT,IAAKA,EACH,OAAO,IAAIi9D,EAAKntJ,GAGlB,GAAwB,kBAAbkwF,EAAuB,CAChC,IAAIq9D,EAAQr9D,EAASo4B,OAErB,GAAIilC,EAAM7mJ,QAAQ,MAAQ,GAAK6mJ,EAAM7mJ,QAAQ,MAAQ,EAAG,CACtD,IAAI8mJ,EAAW,MACc,IAAzBD,EAAM7mJ,QAAQ,SAAc8mJ,EAAW,MACd,IAAzBD,EAAM7mJ,QAAQ,SAAc8mJ,EAAW,SACd,IAAzBD,EAAM7mJ,QAAQ,QAAyC,IAAzB6mJ,EAAM7mJ,QAAQ,SAAc8mJ,EAAW,MACzC,IAA5BD,EAAM7mJ,QAAQ,YAAiB8mJ,EAAW,SACb,IAA7BD,EAAM7mJ,QAAQ,aAAkB8mJ,EAAW,UAC/C,IAAIC,EAAazqG,EAAS6sC,cAAc29D,GACxCC,EAAW90D,UAAY40D,EAEvB,IAAK,IAAIxvJ,EAAI,EAAGA,EAAI0vJ,EAAW53D,WAAWr0F,OAAQzD,GAAK,EACrDiC,EAAIshB,KAAKmsI,EAAW53D,WAAW93F,SAGjCiC,EA7CN,SAAakwF,EAAU7xE,GACrB,GAAwB,kBAAb6xE,EACT,MAAO,CAACA,GAMV,IAHA,IAAI3lF,EAAI,GACJu2B,EAAMziB,EAAQq4E,iBAAiBxG,GAE1BnyF,EAAI,EAAGA,EAAI+iC,EAAIt/B,OAAQzD,GAAK,EACnCwM,EAAE+W,KAAKwf,EAAI/iC,IAGb,OAAOwM,EAiCGgsF,CAAIrG,EAASo4B,OAAQjqG,GAAW2kC,QAGnC,GAAIktC,EAASd,UAAYc,IAAa/sF,GAAU+sF,IAAaltC,EAClEhjD,EAAIshB,KAAK4uE,QACJ,GAAIjwF,MAAMC,QAAQgwF,GAAW,CAClC,GAAIA,aAAoBi9D,EAAM,OAAOj9D,EACrClwF,EAAMkwF,EAGR,OAAO,IAAIi9D,EAxEb,SAAqBntJ,GAGnB,IAFA,IAAIstH,EAAc,GAETvvH,EAAI,EAAGA,EAAIiC,EAAIwB,OAAQzD,GAAK,GACE,IAAjCuvH,EAAY5mH,QAAQ1G,EAAIjC,KAAYuvH,EAAYhsG,KAAKthB,EAAIjC,IAG/D,OAAOuvH,EAiESogC,CAAY1tJ,IAG9ByoH,EAAEllH,GAAK4pJ,EAAKxtJ,UAs4CZ,IAAIguJ,EAAY,gBAAgBnwI,MAAM,KAEtC,SAASowI,EAAStvJ,GAqBhB,OApBA,WACE,IAAK,IAAIuvJ,EAAS/pJ,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAM4tJ,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFnqJ,EAAKmqJ,GAAUhqJ,UAAUgqJ,GAG3B,GAAuB,qBAAZnqJ,EAAK,GAAoB,CAClC,IAAK,IAAI5F,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EAChC4vJ,EAAUjnJ,QAAQpI,GAAQ,IACxBA,KAAQsd,KAAK7d,GAAI6d,KAAK7d,GAAGO,KAC3BmqH,EAAE7sG,KAAK7d,IAAIwuG,QAAQjuG,IAKzB,OAAOsd,KAGT,OAAOA,KAAKk1F,GAAG7sG,MAAM2X,KAAM,CAACtd,GAAM2d,OAAOtY,KAMjCiqJ,EAAS,SACVA,EAAS,QACRA,EAAS,SACPA,EAAS,WACRA,EAAS,YACZA,EAAS,SACPA,EAAS,WACRA,EAAS,YACXA,EAAS,UACTA,EAAS,UACNA,EAAS,aACTA,EAAS,aACXA,EAAS,WACNA,EAAS,cACTA,EAAS,cACXA,EAAS,YACRA,EAAS,aACRA,EAAS,cACXA,EAAS,YACRA,EAAS,aACZA,EAAS,UACTA,EAAS,UArBtB,IChlDIG,EAAU,CACZ9xC,SDiLF,WACE,IAAK,IAAIp4G,EAAOC,UAAUtC,OAAQ06G,EAAU,IAAIj8G,MAAM4D,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAClFk4G,EAAQl4G,GAAQF,UAAUE,GAG5B,IAAI04G,EAAa2wC,EAAUnxC,EAAQ51G,KAAI,SAAUlI,GAC/C,OAAOA,EAAEof,MAAM,SAOjB,OALA5B,KAAKgO,SAAQ,SAAU6L,GACrB,IAAIu4H,GAEHA,EAAgBv4H,EAAGi4F,WAAW1jG,IAAI/lB,MAAM+pJ,EAAejuJ,EAAmB28G,OAEtE9gG,MC7LP0gG,YDgMF,WACE,IAAK,IAAIh0E,EAAQxkC,UAAUtC,OAAQ06G,EAAU,IAAIj8G,MAAMqoC,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACvF2zE,EAAQ3zE,GAASzkC,UAAUykC,GAG7B,IAAIm0E,EAAa2wC,EAAUnxC,EAAQ51G,KAAI,SAAUlI,GAC/C,OAAOA,EAAEof,MAAM,SAOjB,OALA5B,KAAKgO,SAAQ,SAAU6L,GACrB,IAAIw4H,GAEHA,EAAiBx4H,EAAGi4F,WAAWltD,OAAOv8D,MAAMgqJ,EAAgBluJ,EAAmB28G,OAE3E9gG,MC5MP+gG,SD8NF,WACE,IAAK,IAAIpnD,EAAQzxD,UAAUtC,OAAQ06G,EAAU,IAAIj8G,MAAMs1D,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACvF0mD,EAAQ1mD,GAAS1xD,UAAU0xD,GAG7B,IAAIknD,EAAa2wC,EAAUnxC,EAAQ51G,KAAI,SAAUlI,GAC/C,OAAOA,EAAEof,MAAM,SAEjB,OAAO8vI,EAAY1xI,MAAM,SAAU6Z,GACjC,OAAOinF,EAAWhwF,QAAO,SAAUyrE,GACjC,OAAO1iE,EAAGi4F,UAAU36B,SAASoF,MAC5B32F,OAAS,KACXA,OAAS,GCzOZ+6G,YD8MF,WACE,IAAK,IAAIlnD,EAAQvxD,UAAUtC,OAAQ06G,EAAU,IAAIj8G,MAAMo1D,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACvF4mD,EAAQ5mD,GAASxxD,UAAUwxD,GAG7B,IAAIonD,EAAa2wC,EAAUnxC,EAAQ51G,KAAI,SAAUlI,GAC/C,OAAOA,EAAEof,MAAM,SAEjB5B,KAAKgO,SAAQ,SAAU6L,GACrBinF,EAAW9yF,SAAQ,SAAUuuE,GAC3B1iE,EAAGi4F,UAAUpkB,OAAOnR,UCvNxBuB,KD2OF,SAAc1C,EAAOh4F,GACnB,GAAyB,IAArB8E,UAAUtC,QAAiC,kBAAVw1F,EAEnC,OAAIp7E,KAAK,GAAWA,KAAK,GAAG4oC,aAAawyC,QACzC,EAIF,IAAK,IAAIj5F,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EACpC,GAAyB,IAArB+F,UAAUtC,OAEZoa,KAAK7d,GAAG+mD,aAAakyC,EAAOh4F,QAG5B,IAAK,IAAI0zH,KAAY17B,EACnBp7E,KAAK7d,GAAG20H,GAAY17B,EAAM07B,GAC1B92G,KAAK7d,GAAG+mD,aAAa4tE,EAAU17B,EAAM07B,IAK3C,OAAO92G,MC/PPu/F,WDkQF,SAAoBzhB,GAClB,IAAK,IAAI37F,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EACpC6d,KAAK7d,GAAG8mD,gBAAgB60C,GAG1B,OAAO99E,MCtQPqrH,UD2YF,SAAmBA,GACjB,IAAK,IAAIlpI,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EACpC6d,KAAK7d,GAAG+gB,MAAMmoH,UAAYA,EAG5B,OAAOrrH,MC/YP0wB,WDkZF,SAAoB9O,GAClB,IAAK,IAAIz/B,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EACpC6d,KAAK7d,GAAG+gB,MAAMioH,mBAAyC,kBAAbvpG,EAAwB,GAAGvhB,OAAOuhB,EAAU,MAAQA,EAGhG,OAAO5hB,MCtZPk1F,GDyZF,WACE,IAAK,IAAIr7C,EAAQ3xD,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAMw1D,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF/xD,EAAK+xD,GAAS5xD,UAAU4xD,GAG1B,IAAIm6E,EAAYlsI,EAAK,GACjBuqJ,EAAiBvqJ,EAAK,GACtB6lB,EAAW7lB,EAAK,GAChB05H,EAAU15H,EAAK,GAWnB,SAASwqJ,EAAgBjsJ,GACvB,IAAIZ,EAASY,EAAEZ,OACf,GAAKA,EAAL,CACA,IAAI8sJ,EAAYlsJ,EAAEZ,OAAO+sJ,eAAiB,GAM1C,GAJID,EAAU1nJ,QAAQxE,GAAK,GACzBksJ,EAAUn/E,QAAQ/sE,GAGhBumH,EAAEnnH,GAAQg/F,GAAG4tD,GAAiB1kI,EAASvlB,MAAM3C,EAAQ8sJ,QAIvD,IAHA,IAAIE,EAAW7lC,EAAEnnH,GAAQmgG,UAGhBj7F,EAAI,EAAGA,EAAI8nJ,EAAS9sJ,OAAQgF,GAAK,EACpCiiH,EAAE6lC,EAAS9nJ,IAAI85F,GAAG4tD,IAAiB1kI,EAASvlB,MAAMqqJ,EAAS9nJ,GAAI4nJ,IAKzE,SAAS12E,EAAYx1E,GACnB,IAAIksJ,EAAYlsJ,GAAKA,EAAEZ,QAASY,EAAEZ,OAAO+sJ,eAAsB,GAE3DD,EAAU1nJ,QAAQxE,GAAK,GACzBksJ,EAAUn/E,QAAQ/sE,GAGpBsnB,EAASvlB,MAAM2X,KAAMwyI,GAnCA,oBAAZzqJ,EAAK,KACdksI,EAAYlsI,EAAK,GACjB6lB,EAAW7lB,EAAK,GAChB05H,EAAU15H,EAAK,GACfuqJ,OAAiBr/I,GAGdwuH,IAASA,GAAU,GAkCxB,IAHA,IACI9iH,EADAmE,EAASmxH,EAAUryH,MAAM,KAGpBzf,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EAAG,CACvC,IAAI03B,EAAK7Z,KAAK7d,GAEd,GAAKmwJ,EAaH,IAAK3zI,EAAI,EAAGA,EAAImE,EAAOld,OAAQ+Y,GAAK,EAAG,CACrC,IAAIg0I,EAAS7vI,EAAOnE,GACfkb,EAAG+4H,oBAAmB/4H,EAAG+4H,kBAAoB,IAC7C/4H,EAAG+4H,kBAAkBD,KAAS94H,EAAG+4H,kBAAkBD,GAAU,IAElE94H,EAAG+4H,kBAAkBD,GAAQjtI,KAAK,CAChCkI,SAAUA,EACVilI,cAAeN,IAGjB14H,EAAGH,iBAAiBi5H,EAAQJ,EAAiB9wB,QAtB/C,IAAK9iH,EAAI,EAAGA,EAAImE,EAAOld,OAAQ+Y,GAAK,EAAG,CACrC,IAAIokB,EAAQjgB,EAAOnE,GACdkb,EAAGi5H,gBAAej5H,EAAGi5H,cAAgB,IACrCj5H,EAAGi5H,cAAc/vH,KAAQlJ,EAAGi5H,cAAc/vH,GAAS,IACxDlJ,EAAGi5H,cAAc/vH,GAAOrd,KAAK,CAC3BkI,SAAUA,EACVilI,cAAe/2E,IAEjBjiD,EAAGH,iBAAiBqJ,EAAO+4C,EAAa2lD,IAmB9C,OAAOzhH,MC1ePkwF,ID6eF,WACE,IAAK,IAAIn2C,EAAQ7xD,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAM01D,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFjyD,EAAKiyD,GAAS9xD,UAAU8xD,GAG1B,IAAIi6E,EAAYlsI,EAAK,GACjBuqJ,EAAiBvqJ,EAAK,GACtB6lB,EAAW7lB,EAAK,GAChB05H,EAAU15H,EAAK,GAEI,oBAAZA,EAAK,KACdksI,EAAYlsI,EAAK,GACjB6lB,EAAW7lB,EAAK,GAChB05H,EAAU15H,EAAK,GACfuqJ,OAAiBr/I,GAGdwuH,IAASA,GAAU,GAGxB,IAFA,IAAI3+G,EAASmxH,EAAUryH,MAAM,KAEpBzf,EAAI,EAAGA,EAAI2gB,EAAOld,OAAQzD,GAAK,EAGtC,IAFA,IAAI4gC,EAAQjgB,EAAO3gB,GAEVwc,EAAI,EAAGA,EAAIqB,KAAKpa,OAAQ+Y,GAAK,EAAG,CACvC,IAAIkb,EAAK7Z,KAAKrB,GACVqyF,OAAW,EAQf,IANKshD,GAAkBz4H,EAAGi5H,cACxB9hD,EAAWn3E,EAAGi5H,cAAc/vH,GACnBuvH,GAAkBz4H,EAAG+4H,oBAC9B5hD,EAAWn3E,EAAG+4H,kBAAkB7vH,IAG9BiuE,GAAYA,EAASprG,OACvB,IAAK,IAAIgF,EAAIomG,EAASprG,OAAS,EAAGgF,GAAK,EAAGA,GAAK,EAAG,CAChD,IAAI41C,EAAUwwD,EAASpmG,GAEnBgjB,GAAY4yB,EAAQ5yB,WAAaA,GAG1BA,GAAY4yB,EAAQ5yB,UAAY4yB,EAAQ5yB,SAASmlI,WAAavyG,EAAQ5yB,SAASmlI,YAAcnlI,GAFtGiM,EAAGF,oBAAoBoJ,EAAOyd,EAAQqyG,cAAepxB,GACrDzwB,EAAS3qF,OAAOzb,EAAG,IAITgjB,IACViM,EAAGF,oBAAoBoJ,EAAOyd,EAAQqyG,cAAepxB,GACrDzwB,EAAS3qF,OAAOzb,EAAG,KAO7B,OAAOoV,MChiBP2wF,QDukBF,WAGE,IAFA,IAAIppG,EAAS6pJ,IAEJ/2F,EAAQnyD,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAMg2D,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFvyD,EAAKuyD,GAASpyD,UAAUoyD,GAM1B,IAHA,IAAIx3C,EAAS/a,EAAK,GAAG6Z,MAAM,KACvB4wI,EAAYzqJ,EAAK,GAEZ5F,EAAI,EAAGA,EAAI2gB,EAAOld,OAAQzD,GAAK,EAGtC,IAFA,IAAI4gC,EAAQjgB,EAAO3gB,GAEVwc,EAAI,EAAGA,EAAIqB,KAAKpa,OAAQ+Y,GAAK,EAAG,CACvC,IAAIkb,EAAK7Z,KAAKrB,GAEd,GAAIpX,EAAOssI,YAAa,CACtB,IAAI38G,EAAM,IAAI3vB,EAAOssI,YAAY9wG,EAAO,CACtC6wE,OAAQ4+C,EACR/+C,SAAS,EACTj4C,YAAY,IAEd3hC,EAAG44H,cAAgB1qJ,EAAK+oB,QAAO,SAAU3L,EAAM2qB,GAC7C,OAAOA,EAAY,KAErBjW,EAAGi0G,cAAc52G,GACjB2C,EAAG44H,cAAgB,UACZ54H,EAAG44H,eAKhB,OAAOzyI,MCtmBPgzI,cDymBF,SAAuBxrJ,GACrB,IAAIyrJ,EAAMjzI,KAYV,OAJIxY,GACFyrJ,EAAI/9C,GAAG,iBAPT,SAASg+C,EAAa5sJ,GAChBA,EAAEZ,SAAWsa,OACjBxY,EAASlF,KAAK0d,KAAM1Z,GACpB2sJ,EAAI/iD,IAAI,gBAAiBgjD,OAOpBlzI,MCrnBP+iC,WDspBF,SAAoBowG,GAClB,GAAInzI,KAAKpa,OAAS,EAAG,CACnB,GAAIutJ,EAAgB,CAClB,IAAIC,EAAUpzI,KAAK8W,SAEnB,OAAO9W,KAAK,GAAG64F,YAAclvG,WAAWypJ,EAAQt5H,iBAAiB,iBAAmBnwB,WAAWypJ,EAAQt5H,iBAAiB,gBAG1H,OAAO9Z,KAAK,GAAG64F,YAGjB,OAAO,MChqBP51D,YDirBF,SAAqBkwG,GACnB,GAAInzI,KAAKpa,OAAS,EAAG,CACnB,GAAIutJ,EAAgB,CAClB,IAAIE,EAAWrzI,KAAK8W,SAEpB,OAAO9W,KAAK,GAAG25F,aAAehwG,WAAW0pJ,EAASv5H,iBAAiB,eAAiBnwB,WAAW0pJ,EAASv5H,iBAAiB,kBAG3H,OAAO9Z,KAAK,GAAG25F,aAGjB,OAAO,MC3rBP7iF,ODgvBF,WACE,IAAIvvB,EAAS6pJ,IACb,OAAIpxI,KAAK,GAAWzY,EAAOmvB,iBAAiB1W,KAAK,GAAI,MAC9C,IClvBP62B,OD6rBF,WACE,GAAI72B,KAAKpa,OAAS,EAAG,CACnB,IAAI2B,EAAS6pJ,IACThqG,EAAWspG,IACX72H,EAAK7Z,KAAK,GACV4X,EAAMiC,EAAG9B,wBACT2lD,EAAOt2B,EAASs2B,KAChB41E,EAAYz5H,EAAGy5H,WAAa51E,EAAK41E,WAAa,EAC9CC,EAAa15H,EAAG05H,YAAc71E,EAAK61E,YAAc,EAEjDC,EAAa35H,IAAOtyB,EAASA,EAAO+zH,QAAUzhG,EAAGiiF,UAEjD23C,EAAc55H,IAAOtyB,EAASA,EAAO8zH,QAAUxhG,EAAGkiF,WAEtD,MAAO,CACLpzF,IAAKiP,EAAIjP,IAAM6qI,EAAaF,EAC5B7qI,KAAMmP,EAAInP,KAAOgrI,EAAcF,GAInC,OAAO,MChtBPxmD,IDovBF,SAAapnG,EAAOvC,GAClB,IACIjB,EADAoF,EAAS6pJ,IAGb,GAAyB,IAArBlpJ,UAAUtC,OAAc,CAC1B,GAAqB,kBAAVD,EAGJ,CAEL,IAAKxD,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EAChC,IAAK,IAAIuiC,KAAS/+B,EAChBqa,KAAK7d,GAAG+gB,MAAMwhB,GAAS/+B,EAAM++B,GAIjC,OAAO1kB,KATP,GAAIA,KAAK,GAAI,OAAOzY,EAAOmvB,iBAAiB1W,KAAK,GAAI,MAAM8Z,iBAAiBn0B,GAahF,GAAyB,IAArBuC,UAAUtC,QAAiC,kBAAVD,EAAoB,CAEvD,IAAKxD,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EAChC6d,KAAK7d,GAAG+gB,MAAMvd,GAASvC,EAGzB,OAAO4c,KAGT,OAAOA,MChxBPpW,KDmxBF,SAAcpC,GACZ,OAAKA,GACLwY,KAAKgO,SAAQ,SAAU6L,EAAItvB,GACzB/C,EAASa,MAAMwxB,EAAI,CAACA,EAAItvB,OAEnByV,MAJeA,MCnxBtBm2F,KD+xBF,SAAcA,GACZ,GAAoB,qBAATA,EACT,OAAOn2F,KAAK,GAAKA,KAAK,GAAG+8E,UAAY,KAGvC,IAAK,IAAI56F,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EACpC6d,KAAK7d,GAAG46F,UAAYoZ,EAGtB,OAAOn2F,MCvyBP2J,KD0yBF,SAAcA,GACZ,GAAoB,qBAATA,EACT,OAAO3J,KAAK,GAAKA,KAAK,GAAGq+E,YAAYquB,OAAS,KAGhD,IAAK,IAAIvqH,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EACpC6d,KAAK7d,GAAGk8F,YAAc10E,EAGxB,OAAO3J,MClzBP0kF,GDqzBF,SAAYpQ,GACV,IAGIo/D,EACAvxJ,EAJAoF,EAAS6pJ,IACThqG,EAAWspG,IACX72H,EAAK7Z,KAAK,GAGd,IAAK6Z,GAA0B,qBAAby6D,EAA0B,OAAO,EAEnD,GAAwB,kBAAbA,EAAuB,CAChC,GAAIz6D,EAAG/N,QAAS,OAAO+N,EAAG/N,QAAQwoE,GAClC,GAAIz6D,EAAGojE,sBAAuB,OAAOpjE,EAAGojE,sBAAsB3I,GAC9D,GAAIz6D,EAAGujE,kBAAmB,OAAOvjE,EAAGujE,kBAAkB9I,GAGtD,IAFAo/D,EAAc7mC,EAAEv4B,GAEXnyF,EAAI,EAAGA,EAAIuxJ,EAAY9tJ,OAAQzD,GAAK,EACvC,GAAIuxJ,EAAYvxJ,KAAO03B,EAAI,OAAO,EAGpC,OAAO,EAGT,GAAIy6D,IAAaltC,EACf,OAAOvtB,IAAOutB,EAGhB,GAAIktC,IAAa/sF,EACf,OAAOsyB,IAAOtyB,EAGhB,GAAI+sF,EAASd,UAAYc,aAAoBi9D,EAAM,CAGjD,IAFAmC,EAAcp/D,EAASd,SAAW,CAACc,GAAYA,EAE1CnyF,EAAI,EAAGA,EAAIuxJ,EAAY9tJ,OAAQzD,GAAK,EACvC,GAAIuxJ,EAAYvxJ,KAAO03B,EAAI,OAAO,EAGpC,OAAO,EAGT,OAAO,GC31BPtvB,MD81BF,WACE,IACIpI,EADA+vH,EAAQlyG,KAAK,GAGjB,GAAIkyG,EAAO,CAGT,IAFA/vH,EAAI,EAEuC,QAAnC+vH,EAAQA,EAAMyhC,kBACG,IAAnBzhC,EAAM1+B,WAAgBrxF,GAAK,GAGjC,OAAOA,ICx2BTgQ,GD82BF,SAAY5H,GACV,GAAqB,qBAAVA,EAAuB,OAAOyV,KACzC,IAAIpa,EAASoa,KAAKpa,OAElB,GAAI2E,EAAQ3E,EAAS,EACnB,OAAOinH,EAAE,IAGX,GAAItiH,EAAQ,EAAG,CACb,IAAIqpJ,EAAchuJ,EAAS2E,EAC3B,OAA4BsiH,EAAxB+mC,EAAc,EAAY,GACrB,CAAC5zI,KAAK4zI,KAGjB,OAAO/mC,EAAE,CAAC7sG,KAAKzV,MC33BfqsG,OD83BF,WAIE,IAHA,IAAIi9C,EACAzsG,EAAWspG,IAEN9lJ,EAAI,EAAGA,EAAI1C,UAAUtC,OAAQgF,GAAK,EAAG,CAC5CipJ,EAAWjpJ,EAAI,GAAK1C,UAAUtC,QAAUgF,OAAIqI,EAAY/K,UAAU0C,GAElE,IAAK,IAAIzI,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EACpC,GAAwB,kBAAb0xJ,EAAuB,CAChC,IAAIC,EAAU1sG,EAAS6sC,cAAc,OAGrC,IAFA6/D,EAAQ/2D,UAAY82D,EAEbC,EAAQx1D,YACbt+E,KAAK7d,GAAG+xF,YAAY4/D,EAAQx1D,iBAEzB,GAAIu1D,aAAoBtC,EAC7B,IAAK,IAAI5yI,EAAI,EAAGA,EAAIk1I,EAASjuJ,OAAQ+Y,GAAK,EACxCqB,KAAK7d,GAAG+xF,YAAY2/D,EAASl1I,SAG/BqB,KAAK7d,GAAG+xF,YAAY2/D,GAK1B,OAAO7zI,MCt5BP62F,QD85BF,SAAiBg9C,GACf,IACI1xJ,EACAwc,EAFAyoC,EAAWspG,IAIf,IAAKvuJ,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EAChC,GAAwB,kBAAb0xJ,EAAuB,CAChC,IAAIC,EAAU1sG,EAAS6sC,cAAc,OAGrC,IAFA6/D,EAAQ/2D,UAAY82D,EAEfl1I,EAAIm1I,EAAQ75D,WAAWr0F,OAAS,EAAG+Y,GAAK,EAAGA,GAAK,EACnDqB,KAAK7d,GAAG20G,aAAag9C,EAAQ75D,WAAWt7E,GAAIqB,KAAK7d,GAAG83F,WAAW,SAE5D,GAAI45D,aAAoBtC,EAC7B,IAAK5yI,EAAI,EAAGA,EAAIk1I,EAASjuJ,OAAQ+Y,GAAK,EACpCqB,KAAK7d,GAAG20G,aAAa+8C,EAASl1I,GAAIqB,KAAK7d,GAAG83F,WAAW,SAGvDj6E,KAAK7d,GAAG20G,aAAa+8C,EAAU7zI,KAAK7d,GAAG83F,WAAW,IAItD,OAAOj6E,MCn7BPnZ,KDu9BF,SAAcytF,GACZ,OAAIt0E,KAAKpa,OAAS,EACZ0uF,EACEt0E,KAAK,GAAG+zI,oBAAsBlnC,EAAE7sG,KAAK,GAAG+zI,oBAAoBrvD,GAAGpQ,GAC1Du4B,EAAE,CAAC7sG,KAAK,GAAG+zI,qBAGblnC,EAAE,IAGP7sG,KAAK,GAAG+zI,mBAA2BlnC,EAAE,CAAC7sG,KAAK,GAAG+zI,qBAC3ClnC,EAAE,IAGJA,EAAE,KCp+BT9mB,QDu+BF,SAAiBzR,GACf,IAAI0/D,EAAU,GACVn6H,EAAK7Z,KAAK,GACd,IAAK6Z,EAAI,OAAOgzF,EAAE,IAElB,KAAOhzF,EAAGk6H,oBAAoB,CAC5B,IAAIE,EAAQp6H,EAAGk6H,mBAEXz/D,EACEu4B,EAAEonC,GAAOvvD,GAAGpQ,IAAW0/D,EAAQtuI,KAAKuuI,GACnCD,EAAQtuI,KAAKuuI,GAEpBp6H,EAAKo6H,EAGP,OAAOpnC,EAAEmnC,ICr/BTp+H,KDw/BF,SAAc0+D,GACZ,GAAIt0E,KAAKpa,OAAS,EAAG,CACnB,IAAIi0B,EAAK7Z,KAAK,GAEd,OAAIs0E,EACEz6D,EAAGq6H,wBAA0BrnC,EAAEhzF,EAAGq6H,wBAAwBxvD,GAAGpQ,GACxDu4B,EAAE,CAAChzF,EAAGq6H,yBAGRrnC,EAAE,IAGPhzF,EAAGq6H,uBAA+BrnC,EAAE,CAAChzF,EAAGq6H,yBACrCrnC,EAAE,IAGX,OAAOA,EAAE,KCvgCTlnB,QD0gCF,SAAiBrR,GACf,IAAI6/D,EAAU,GACVt6H,EAAK7Z,KAAK,GACd,IAAK6Z,EAAI,OAAOgzF,EAAE,IAElB,KAAOhzF,EAAGq6H,wBAAwB,CAChC,IAAIE,EAAQv6H,EAAGq6H,uBAEX5/D,EACEu4B,EAAEunC,GAAO1vD,GAAGpQ,IAAW6/D,EAAQzuI,KAAK0uI,GACnCD,EAAQzuI,KAAK0uI,GAEpBv6H,EAAKu6H,EAGP,OAAOvnC,EAAEsnC,ICxhCTniI,OD+hCF,SAAgBsiE,GAGd,IAFA,IAAIuR,EAAU,GAEL1jG,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EACT,OAAvB6d,KAAK7d,GAAGi0B,aACNk+D,EACEu4B,EAAE7sG,KAAK7d,GAAGi0B,YAAYsuE,GAAGpQ,IAAWuR,EAAQngF,KAAK1F,KAAK7d,GAAGi0B,YAE7DyvE,EAAQngF,KAAK1F,KAAK7d,GAAGi0B,aAK3B,OAAOy2F,EAAEhnB,IC3iCTA,QD8iCF,SAAiBvR,GAGf,IAFA,IAAIuR,EAAU,GAEL1jG,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EAGpC,IAFA,IAAIkyJ,EAAUr0I,KAAK7d,GAAGi0B,WAEfi+H,GACD//D,EACEu4B,EAAEwnC,GAAS3vD,GAAGpQ,IAAWuR,EAAQngF,KAAK2uI,GAE1CxuD,EAAQngF,KAAK2uI,GAGfA,EAAUA,EAAQj+H,WAItB,OAAOy2F,EAAEhnB,IC9jCTH,QDikCF,SAAiBpR,GACf,IAAIoR,EAAU1lF,KAEd,MAAwB,qBAAbs0E,EACFu4B,EAAE,KAGNnnB,EAAQhB,GAAGpQ,KACdoR,EAAUA,EAAQG,QAAQvR,GAAUniF,GAAG,IAGlCuzF,IC3kCP9I,KD8kCF,SAActI,GAGZ,IAFA,IAAIggE,EAAgB,GAEXnyJ,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EAGpC,IAFA,IAAIi2I,EAAQp4H,KAAK7d,GAAG24F,iBAAiBxG,GAE5B31E,EAAI,EAAGA,EAAIy5H,EAAMxyI,OAAQ+Y,GAAK,EACrC21I,EAAc5uI,KAAK0yH,EAAMz5H,IAI7B,OAAOkuG,EAAEynC,ICxlCT1hE,SD2lCF,SAAkB0B,GAGhB,IAFA,IAAI1B,EAAW,GAENzwF,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EAGpC,IAFA,IAAI83F,EAAaj6E,KAAK7d,GAAGywF,SAEhBj0E,EAAI,EAAGA,EAAIs7E,EAAWr0F,OAAQ+Y,GAAK,EACrC21E,IAAYu4B,EAAE5yB,EAAWt7E,IAAI+lF,GAAGpQ,IACnC1B,EAASltE,KAAKu0E,EAAWt7E,IAK/B,OAAOkuG,EAAEj6B,ICvmCT9hE,OD0wBF,SAAgBtpB,GAEd,OAAOqlH,EADM6kC,EAAY1xI,KAAMxY,KC1wB/Bo9D,ODymCF,WACE,IAAK,IAAIziE,EAAI,EAAGA,EAAI6d,KAAKpa,OAAQzD,GAAK,EAChC6d,KAAK7d,GAAGi0B,YAAYpW,KAAK7d,GAAGi0B,WAAW+9D,YAAYn0E,KAAK7d,IAG9D,OAAO6d,OC5mCTnd,OAAOkH,KAAKooJ,GAASnkI,SAAQ,SAAUqiH,GACrCxtI,OAAOC,eAAe+pH,EAAEllH,GAAI0oI,EAAY,CACtCjtI,MAAO+uJ,EAAQ9hB,GACflrI,UAAU,OAGC,IC5CX,ECCAovJ,ECDA,EH4CW,II7Cf,SAASvvJ,EAAgBC,EAAKvB,EAAKN,GAAiK,OAApJM,KAAOuB,EAAOpC,OAAOC,eAAemC,EAAKvB,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAMmC,cAAc,EAAMC,UAAU,IAAkBF,EAAIvB,GAAON,EAAgB6B,EAE3M,SAAS,EAAQA,GAAmV,OAAtO,EAArD,oBAAX/B,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,GAmBnX,SAASuvJ,EAAShtJ,EAAU+8B,GAK1B,YAJc,IAAVA,IACFA,EAAQ,GAGH28B,WAAW15D,EAAU+8B,GAG9B,SAASrC,IACP,OAAOD,KAAKC,MAsBd,SAAS+pH,EAAapyH,EAAIsP,QACX,IAATA,IACFA,EAAO,KAGT,IACIsrH,EACAC,EACAC,EAHAptJ,EAAS6pJ,IAITwD,EA5BN,SAA0B/6H,GACxB,IACI3W,EADA3b,EAAS6pJ,IAeb,OAZI7pJ,EAAOmvB,mBACTxT,EAAQ3b,EAAOmvB,iBAAiBmD,EAAI,QAGjC3W,GAAS2W,EAAGg7H,eACf3xI,EAAQ2W,EAAGg7H,cAGR3xI,IACHA,EAAQ2W,EAAG3W,OAGNA,EAYQ,CAAiB2W,GAiChC,OA/BItyB,EAAOutJ,kBACTJ,EAAeE,EAASvpB,WAAaupB,EAASlc,iBAE7B92H,MAAM,KAAKhc,OAAS,IACnC8uJ,EAAeA,EAAa9yI,MAAM,MAAMlX,KAAI,SAAUiE,GACpD,OAAOA,EAAEqQ,QAAQ,IAAK,QACrByR,KAAK,OAKVkkI,EAAkB,IAAIptJ,EAAOutJ,gBAAiC,SAAjBJ,EAA0B,GAAKA,IAG5ED,GADAE,EAAkBC,EAASjc,cAAgBic,EAAS/b,YAAc+b,EAASG,aAAeH,EAAShc,aAAegc,EAASvpB,WAAaupB,EAAS96H,iBAAiB,aAAa9a,QAAQ,aAAc,uBAC5K/X,WAAW2a,MAAM,KAG/B,MAATunB,IAE0BurH,EAAxBntJ,EAAOutJ,gBAAgCH,EAAgBK,IAChC,KAAlBP,EAAO7uJ,OAA8B+D,WAAW8qJ,EAAO,KAC1C9qJ,WAAW8qJ,EAAO,KAG7B,MAATtrH,IAE0BurH,EAAxBntJ,EAAOutJ,gBAAgCH,EAAgBM,IAChC,KAAlBR,EAAO7uJ,OAA8B+D,WAAW8qJ,EAAO,KAC1C9qJ,WAAW8qJ,EAAO,KAGnCC,GAAgB,EAGzB,SAAS,EAAS9xJ,GAChB,MAAsB,WAAf,EAAQA,IAAyB,OAANA,GAAcA,EAAEyC,aAAkE,WAAnDxC,OAAOkB,UAAUkD,SAAS3E,KAAKM,GAAGsE,MAAM,GAAI,GAG/G,SAASguJ,EAAOvzI,GAEd,MAAsB,qBAAXpa,QAAwD,qBAAvBA,OAAO6sH,YAC1CzyG,aAAgByyG,YAGlBzyG,IAA2B,IAAlBA,EAAK6xE,UAAoC,KAAlB7xE,EAAK6xE,UAG9C,SAAS,IAIP,IAHA,IAAI9vD,EAAK7gC,OAAOqF,UAAUtC,QAAU,OAAIqN,EAAY/K,UAAU,IAC1DitJ,EAAW,CAAC,YAAa,cAAe,aAEnChzJ,EAAI,EAAGA,EAAI+F,UAAUtC,OAAQzD,GAAK,EAAG,CAC5C,IAAImvF,EAAanvF,EAAI,GAAK+F,UAAUtC,QAAUzD,OAAI8Q,EAAY/K,UAAU/F,GAExE,QAAmB8Q,IAAfq+E,GAA2C,OAAfA,IAAwB4jE,EAAO5jE,GAK7D,IAJA,IAAI8jE,EAAYvyJ,OAAOkH,KAAKlH,OAAOyuF,IAAaxgE,QAAO,SAAUptB,GAC/D,OAAOyxJ,EAASrqJ,QAAQpH,GAAO,KAGxB2xJ,EAAY,EAAGjuJ,EAAMguJ,EAAUxvJ,OAAQyvJ,EAAYjuJ,EAAKiuJ,GAAa,EAAG,CAC/E,IAAIC,EAAUF,EAAUC,GACpBl2H,EAAOt8B,OAAOosB,yBAAyBqiE,EAAYgkE,QAE1CriJ,IAATksB,GAAsBA,EAAKp8B,aACzB,EAAS2gC,EAAG4xH,KAAa,EAAShkE,EAAWgkE,IAC3ChkE,EAAWgkE,GAASC,WACtB7xH,EAAG4xH,GAAWhkE,EAAWgkE,GAEzB,EAAO5xH,EAAG4xH,GAAUhkE,EAAWgkE,KAEvB,EAAS5xH,EAAG4xH,KAAa,EAAShkE,EAAWgkE,KACvD5xH,EAAG4xH,GAAW,GAEVhkE,EAAWgkE,GAASC,WACtB7xH,EAAG4xH,GAAWhkE,EAAWgkE,GAEzB,EAAO5xH,EAAG4xH,GAAUhkE,EAAWgkE,KAGjC5xH,EAAG4xH,GAAWhkE,EAAWgkE,KAOnC,OAAO5xH,EAGT,SAAS8xH,EAAe37H,EAAI47H,EAASC,GACnC77H,EAAG3W,MAAM+Y,YAAYw5H,EAASC,GAGhC,SAASC,EAAqBl5H,GAC5B,IAMI8xD,EANAqnE,EAASn5H,EAAKm5H,OACdC,EAAiBp5H,EAAKo5H,eACtBC,EAAOr5H,EAAKq5H,KACZvuJ,EAAS6pJ,IACT2E,GAAiBH,EAAOpuI,UACxBs1F,EAAY,KAEZl7E,EAAWg0H,EAAOjzG,OAAOs7D,MAC7B23C,EAAOI,UAAU9yI,MAAM+yI,eAAiB,OACxC1uJ,EAAO4pJ,qBAAqByE,EAAOM,gBACnC,IAAIl8D,EAAM67D,EAAiBE,EAAgB,OAAS,OAEhDI,EAAe,SAAsBlhI,EAASvvB,GAChD,MAAe,SAARs0F,GAAkB/kE,GAAWvvB,GAAkB,SAARs0F,GAAkB/kE,GAAWvvB,IAG/D,SAASgnF,IACrB6B,GAAO,IAAItsD,MAAOm0H,UAEA,OAAdt5C,IACFA,EAAYvuB,GAGd,IAAIzrD,EAAW32B,KAAK6B,IAAI7B,KAAK4B,KAAKwgF,EAAOuuB,GAAal7E,EAAU,GAAI,GAChEy0H,EAAe,GAAMlqJ,KAAKsE,IAAIqyB,EAAW32B,KAAKD,IAAM,EACpDoqJ,EAAkBP,EAAgBM,GAAgBR,EAAiBE,GAQvE,GANII,EAAaG,EAAiBT,KAChCS,EAAkBT,GAGpBD,EAAOI,UAAUpqC,SAAS5mH,EAAgB,GAAI8wJ,EAAMQ,IAEhDH,EAAaG,EAAiBT,GAQhC,OAPAD,EAAOI,UAAU9yI,MAAM26F,SAAW,SAClC+3C,EAAOI,UAAU9yI,MAAM+yI,eAAiB,GACxC/0F,YAAW,WACT00F,EAAOI,UAAU9yI,MAAM26F,SAAW,GAClC+3C,EAAOI,UAAUpqC,SAAS5mH,EAAgB,GAAI8wJ,EAAMQ,YAEtD/uJ,EAAO4pJ,qBAAqByE,EAAOM,gBAIrCN,EAAOM,eAAiB3uJ,EAAOE,sBAAsBilF,GAGvDA,GH7KF,SAAS6pE,IAKP,OAJK,IACH,EA9BJ,WACE,IAAIhvJ,EAAS6pJ,IACThqG,EAAWspG,IACf,MAAO,CACL8F,aAAcpvG,EAAS80C,iBAAmB,mBAAoB90C,EAAS80C,gBAAgBh5E,MACvFg5H,SAAU,iBAAkB30I,GAAUA,EAAOkvJ,eAAiBrvG,aAAoB7/C,EAAOkvJ,eACzFC,gBAAiB,WACf,IAAIC,GAAkB,EAEtB,IACE,IAAI9sI,EAAOhnB,OAAOC,eAAe,GAAI,UAAW,CAE9CE,IAAK,WACH2zJ,GAAkB,KAGtBpvJ,EAAOmyB,iBAAiB,sBAAuB,KAAM7P,GACrD,MAAOvjB,IAGT,OAAOqwJ,EAdQ,GAgBjBC,SACS,mBAAoBrvJ,GAOnBsvJ,IAGL,ECaT,SAASC,EAAUr1I,GASjB,YARkB,IAAdA,IACFA,EAAY,IAGT8yI,IACHA,EAnDJ,SAAoBwC,GAClB,IACIt2B,QADiB,IAAVs2B,EAAmB,GAAKA,GACdt2B,UAEjBltC,EAAUgjE,IACVhvJ,EAAS6pJ,IACTzuI,EAAWpb,EAAOi5H,UAAU79G,SAC5Bq0I,EAAKv2B,GAAal5H,EAAOi5H,UAAUC,UACnCw2B,EAAS,CACXC,KAAK,EACLC,SAAS,GAEPC,EAAc7vJ,EAAO0pJ,OAAOxrI,MAC5B4xI,EAAe9vJ,EAAO0pJ,OAAOlqI,OAC7BowI,EAAUH,EAAGjrI,MAAM,+BAEnBurI,EAAON,EAAGjrI,MAAM,wBAChBwrI,EAAOP,EAAGjrI,MAAM,2BAChByrI,GAAUF,GAAQN,EAAGjrI,MAAM,8BAC3B0rI,EAAuB,UAAb90I,EACV+0I,EAAqB,aAAb/0I,EAsBZ,OAlBK20I,GAAQI,GAASnkE,EAAQ2oD,OAFZ,CAAC,YAAa,YAAa,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAEtGpxI,QAAQ,GAAGuV,OAAO+2I,EAAa,KAAK/2I,OAAOg3I,KAAkB,KAC9GC,EAAON,EAAGjrI,MAAM,0BACLurI,EAAO,CAAC,EAAG,EAAG,WACzBI,GAAQ,GAINP,IAAYM,IACdR,EAAOU,GAAK,UACZV,EAAOE,SAAU,IAGfG,GAAQE,GAAUD,KACpBN,EAAOU,GAAK,MACZV,EAAOC,KAAM,GAIRD,EASUW,CAAWn2I,IAGrB8yI,ECzCT,SAASsD,IAKP,OAJK,IACH,EAhBJ,WACE,IAGMb,EAHFzvJ,EAAS6pJ,IAOb,MAAO,CACL0G,UALId,EAAKzvJ,EAAOi5H,UAAUC,UAAUrhH,cAC7B43I,EAAGlsJ,QAAQ,WAAa,GAAKksJ,EAAGlsJ,QAAQ,UAAY,GAAKksJ,EAAGlsJ,QAAQ,WAAa,GAKxFitJ,UAAW,+CAA+C5wJ,KAAKI,EAAOi5H,UAAUC,YAMtEu3B,IAGL,EEtBT,SAAS,EAAmB5zJ,GAAO,OAQnC,SAA4BA,GAAO,GAAIC,MAAMC,QAAQF,GAAM,OAAO,EAAkBA,GAR1C,CAAmBA,IAM7D,SAA0BK,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOwB,WAA2C,MAAtBD,EAAK,cAAuB,OAAOJ,MAAMM,KAAKF,GANjF,CAAiBL,IAItF,SAAqCxB,EAAGoE,GAAU,IAAKpE,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO,EAAkBA,EAAGoE,GAAS,IAAIpD,EAAIf,OAAOkB,UAAUkD,SAAS3E,KAAKM,GAAGsE,MAAM,GAAI,GAAc,WAANtD,GAAkBhB,EAAEyC,cAAazB,EAAIhB,EAAEyC,YAAY3C,MAAM,GAAU,QAANkB,GAAqB,QAANA,EAAa,OAAOS,MAAMM,KAAK/B,GAAI,GAAU,cAANgB,GAAqB,2CAA2CuD,KAAKvD,GAAI,OAAO,EAAkBhB,EAAGoE,GAJxT,CAA4B5C,IAE1H,WAAgC,MAAM,IAAIU,UAAU,wIAF8E,GAUlI,SAAS,EAAkBV,EAAKgD,IAAkB,MAAPA,GAAeA,EAAMhD,EAAIwB,UAAQwB,EAAMhD,EAAIwB,QAAQ,IAAK,IAAIzD,EAAI,EAAGkF,EAAO,IAAIhD,MAAM+C,GAAMjF,EAAIiF,EAAKjF,IAAOkF,EAAKlF,GAAKiC,EAAIjC,GAAM,OAAOkF,ECVhL,SAAS,EAAgBpC,EAAKvB,EAAKN,GAAiK,OAApJM,KAAOuB,EAAOpC,OAAOC,eAAemC,EAAKvB,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAMmC,cAAc,EAAMC,UAAU,IAAkBF,EAAIvB,GAAON,EAAgB6B,ECA3M,SAAS,EAAgBA,EAAKvB,EAAKN,GAAiK,OAApJM,KAAOuB,EAAOpC,OAAOC,eAAemC,EAAKvB,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAMmC,cAAc,EAAMC,UAAU,IAAkBF,EAAIvB,GAAON,EAAgB6B,ECA5L,SAASgzJ,EAAex7H,GACrC,IAAIm5H,EAASn5H,EAAKm5H,OACdsC,EAAez7H,EAAKy7H,aACpBp8H,EAAYW,EAAKX,UACjBl1B,EAAO61B,EAAK71B,KACZuxJ,EAAcvC,EAAOuC,YACrBC,EAAgBxC,EAAOwC,cACvBp+D,EAAMl+D,EAQV,GANKk+D,IAC8BA,EAA7Bm+D,EAAcC,EAAqB,OAAgBD,EAAcC,EAAqB,OAAkB,SAG9GxC,EAAOyC,KAAK,aAAah4I,OAAOzZ,IAE5BsxJ,GAAgBC,IAAgBC,EAAe,CACjD,GAAY,UAARp+D,EAEF,YADA47D,EAAOyC,KAAK,uBAAuBh4I,OAAOzZ,IAI5CgvJ,EAAOyC,KAAK,wBAAwBh4I,OAAOzZ,IAE/B,SAARozF,EACF47D,EAAOyC,KAAK,sBAAsBh4I,OAAOzZ,IAEzCgvJ,EAAOyC,KAAK,sBAAsBh4I,OAAOzZ,KC1B/C,SAAS,EAAgB3B,EAAKvB,EAAKN,GAAiK,OAApJM,KAAOuB,EAAOpC,OAAOC,eAAemC,EAAKvB,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAMmC,cAAc,EAAMC,UAAU,IAAkBF,EAAIvB,GAAON,EAAgB6B,EAE3M,SAAS,EAAQA,GAAmV,OAAtO,EAArD,oBAAX/B,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,GCsBpW,SAAS,EAAa89B,GACnC,IAAI6yH,EAAS51I,KACTonC,EAAWspG,IACXnpJ,EAAS6pJ,IACTjsI,EAAOywI,EAAO0C,gBACd31G,EAASizG,EAAOjzG,OAChBlrB,EAAUm+H,EAAOn+H,QAErB,GADcm+H,EAAOxqG,WAGjBwqG,EAAO2C,YAAa51G,EAAO61G,gCAA/B,EAIK5C,EAAO2C,WAAa51G,EAAO81G,SAAW91G,EAAO/tB,MAChDghI,EAAO8C,UAGT,IAAIpyJ,EAAIy8B,EACJz8B,EAAEusG,gBAAevsG,EAAIA,EAAEusG,eAC3B,IAAI8lD,EAAY,EAAEryJ,EAAEZ,QAEpB,IAAiC,YAA7Bi9C,EAAOi2G,mBACJD,EAAUjzD,QAAQkwD,EAAOI,WAAWpwJ,UAG3Cuf,EAAK0zI,aAA0B,eAAXvyJ,EAAEyC,MACjBoc,EAAK0zI,gBAAgB,UAAWvyJ,IAAiB,IAAZA,EAAEsuG,WACvCzvF,EAAK0zI,cAAgB,WAAYvyJ,GAAKA,EAAEqsG,OAAS,MAClDxtF,EAAK2zI,YAAa3zI,EAAK4zI,UAA3B,GAE6Bp2G,EAAOq2G,gBAA4C,KAA1Br2G,EAAOq2G,gBAEjC1yJ,EAAEZ,QAAUY,EAAEZ,OAAOmyB,YAAckL,EAAMspC,MAAQtpC,EAAMspC,KAAK,KACtFssF,EAAY,EAAE51H,EAAMspC,KAAK,KAG3B,IAAI4sF,EAAoBt2G,EAAOs2G,kBAAoBt2G,EAAOs2G,kBAAoB,IAAI54I,OAAOsiC,EAAOq2G,gBAC5FE,KAAoB5yJ,EAAEZ,SAAUY,EAAEZ,OAAOmyB,YAE7C,GAAI8qB,EAAOw2G,YAAcD,EA5D3B,SAAwB5kE,EAAUt1D,GAiBhC,YAhBa,IAATA,IACFA,EAAOhf,MAGT,SAASo5I,EAAcv/H,GACrB,IAAKA,GAAMA,IAAO62H,KAAiB72H,IAAOu3H,IAAa,OAAO,KAC1Dv3H,EAAGw/H,eAAcx/H,EAAKA,EAAGw/H,cAC7B,IAAIjhB,EAAQv+G,EAAG6rE,QAAQpR,GAEvB,OAAK8jD,GAAUv+G,EAAGgzE,YAIXurC,GAASghB,EAAcv/H,EAAGgzE,cAAcx2E,MAHtC,KAMJ+iI,CAAcp6H,GA2CqBs6H,CAAeL,EAAmBN,EAAU,IAAMA,EAAUjzD,QAAQuzD,GAAmB,IAC/HrD,EAAO2D,YAAa,OAItB,IAAI52G,EAAO62G,cACJb,EAAUjzD,QAAQ/iD,EAAO62G,cAAc,GAD9C,CAIA/hI,EAAQglH,SAAsB,eAAXn2I,EAAEyC,KAAwBzC,EAAEouG,cAAc,GAAGX,MAAQztG,EAAEytG,MAC1Et8E,EAAQilH,SAAsB,eAAXp2I,EAAEyC,KAAwBzC,EAAEouG,cAAc,GAAGV,MAAQ1tG,EAAE0tG,MAC1E,IAAI36D,EAAS5hB,EAAQglH,SACjBnjG,EAAS7hB,EAAQilH,SAEjB+c,EAAqB92G,EAAO82G,oBAAsB92G,EAAO+2G,sBACzDC,EAAqBh3G,EAAOg3G,oBAAsBh3G,EAAOi3G,sBAE7D,GAAIH,IAAuBpgH,GAAUsgH,GAAsBtgH,GAAU9xC,EAAO6lH,WAAausC,GAAqB,CAC5G,GAA2B,YAAvBF,EAGF,OAFA12H,EAAM2tE,iBAqBV,GAfA7tG,OAAO6c,OAAOyF,EAAM,CAClB2zI,WAAW,EACXC,SAAS,EACTc,qBAAqB,EACrBC,iBAAa7mJ,EACb8mJ,iBAAa9mJ,IAEfwkB,EAAQ4hB,OAASA,EACjB5hB,EAAQ6hB,OAASA,EACjBn0B,EAAK60I,eAAiB93H,IACtB0zH,EAAO2D,YAAa,EACpB3D,EAAOqE,aACPrE,EAAOsE,oBAAiBjnJ,EACpB0vC,EAAO40F,UAAY,IAAGpyH,EAAKg1I,oBAAqB,GAErC,eAAX7zJ,EAAEyC,KAAuB,CAC3B,IAAI2nG,GAAiB,EAEjBioD,EAAUj0D,GAAGv/E,EAAKqhH,qBACpB91B,GAAiB,EAEa,WAA1BioD,EAAU,GAAG5+D,WACf50E,EAAK2zI,WAAY,IAIjB1xG,EAASm5C,eAAiB,EAAEn5C,EAASm5C,eAAemE,GAAGv/E,EAAKqhH,oBAAsBp/E,EAASm5C,gBAAkBo4D,EAAU,IACzHvxG,EAASm5C,cAAcuU,OAGzB,IAAIslD,EAAuB1pD,GAAkBklD,EAAOyE,gBAAkB13G,EAAO23G,0BAExE33G,EAAO43G,gCAAiCH,GAA0BzB,EAAU,GAAG6B,mBAClFl0J,EAAEoqG,iBAIFklD,EAAOjzG,OAAO83G,UAAY7E,EAAOjzG,OAAO83G,SAASrvG,SAAWwqG,EAAO6E,UAAY7E,EAAO2C,YAAc51G,EAAO81G,SAC7G7C,EAAO6E,SAASC,eAGlB9E,EAAOyC,KAAK,aAAc/xJ,MC/Hb,SAAS,GAAYy8B,GAClC,IAAIqkB,EAAWspG,IACXkF,EAAS51I,KACTmF,EAAOywI,EAAO0C,gBACd31G,EAASizG,EAAOjzG,OAChBlrB,EAAUm+H,EAAOn+H,QACjB0D,EAAMy6H,EAAO+E,aAEjB,GADc/E,EAAOxqG,QACrB,CACA,IAAI9kD,EAAIy8B,EAGR,GAFIz8B,EAAEusG,gBAAevsG,EAAIA,EAAEusG,eAEtB1tF,EAAK2zI,WAQV,IAAI3zI,EAAK0zI,cAA2B,cAAXvyJ,EAAEyC,KAA3B,CACA,IAAI6xJ,EAAyB,cAAXt0J,EAAEyC,MAAwBzC,EAAEouG,gBAAkBpuG,EAAEouG,cAAc,IAAMpuG,EAAEotG,eAAe,IACnGK,EAAmB,cAAXztG,EAAEyC,KAAuB6xJ,EAAY7mD,MAAQztG,EAAEytG,MACvDC,EAAmB,cAAX1tG,EAAEyC,KAAuB6xJ,EAAY5mD,MAAQ1tG,EAAE0tG,MAE3D,GAAI1tG,EAAEu0J,wBAGJ,OAFApjI,EAAQ4hB,OAAS06D,OACjBt8E,EAAQ6hB,OAAS06D,GAInB,IAAK4hD,EAAOyE,eAeV,OAdK,EAAE/zJ,EAAEZ,QAAQg/F,GAAGv/E,EAAKqhH,qBACvBovB,EAAO2D,YAAa,QAGlBp0I,EAAK2zI,YACPj2J,OAAO6c,OAAO+X,EAAS,CACrB4hB,OAAQ06D,EACRz6D,OAAQ06D,EACRyoC,SAAU1oC,EACV2oC,SAAU1oC,IAEZ7uF,EAAK60I,eAAiB93H,MAM1B,GAAI/c,EAAK0zI,cAAgBl2G,EAAOm4G,sBAAwBn4G,EAAO/tB,KAC7D,GAAIghI,EAAOmF,cAET,GAAI/mD,EAAQv8E,EAAQ6hB,QAAUs8G,EAAOpuI,WAAaouI,EAAOoF,gBAAkBhnD,EAAQv8E,EAAQ6hB,QAAUs8G,EAAOpuI,WAAaouI,EAAOqF,eAG9H,OAFA91I,EAAK2zI,WAAY,OACjB3zI,EAAK4zI,SAAU,QAGZ,GAAIhlD,EAAQt8E,EAAQ4hB,QAAUu8G,EAAOpuI,WAAaouI,EAAOoF,gBAAkBjnD,EAAQt8E,EAAQ4hB,QAAUu8G,EAAOpuI,WAAaouI,EAAOqF,eACrI,OAIJ,GAAI91I,EAAK0zI,cAAgBzxG,EAASm5C,eAC5Bj6F,EAAEZ,SAAW0hD,EAASm5C,eAAiB,EAAEj6F,EAAEZ,QAAQg/F,GAAGv/E,EAAKqhH,mBAG7D,OAFArhH,EAAK4zI,SAAU,OACfnD,EAAO2D,YAAa,GASxB,GAJIp0I,EAAK00I,qBACPjE,EAAOyC,KAAK,YAAa/xJ,KAGvBA,EAAEouG,eAAiBpuG,EAAEouG,cAAc9uG,OAAS,GAAhD,CACA6xB,EAAQglH,SAAW1oC,EACnBt8E,EAAQilH,SAAW1oC,EACnB,IAAIknD,EAAQzjI,EAAQglH,SAAWhlH,EAAQ4hB,OACnC8hH,EAAQ1jI,EAAQilH,SAAWjlH,EAAQ6hB,OACvC,KAAIs8G,EAAOjzG,OAAO40F,WAAaprI,KAAKsC,KAAKtC,KAAKiB,IAAI8tJ,EAAO,GAAK/uJ,KAAKiB,IAAI+tJ,EAAO,IAAMvF,EAAOjzG,OAAO40F,WAAlG,CAGE,IAAI6jB,EADN,GAAgC,qBAArBj2I,EAAK20I,YAGVlE,EAAO9hH,gBAAkBrc,EAAQilH,WAAajlH,EAAQ6hB,QAAUs8G,EAAOmF,cAAgBtjI,EAAQglH,WAAahlH,EAAQ4hB,OACtHl0B,EAAK20I,aAAc,EAGfoB,EAAQA,EAAQC,EAAQA,GAAS,KACnCC,EAA4D,IAA/CjvJ,KAAK09D,MAAM19D,KAAKyB,IAAIutJ,GAAQhvJ,KAAKyB,IAAIstJ,IAAgB/uJ,KAAKD,GACvEiZ,EAAK20I,YAAclE,EAAO9hH,eAAiBsnH,EAAaz4G,EAAOy4G,WAAa,GAAKA,EAAaz4G,EAAOy4G,YAe3G,GAVIj2I,EAAK20I,aACPlE,EAAOyC,KAAK,oBAAqB/xJ,GAGH,qBAArB6e,EAAK40I,cACVtiI,EAAQglH,WAAahlH,EAAQ4hB,QAAU5hB,EAAQilH,WAAajlH,EAAQ6hB,SACtEn0B,EAAK40I,aAAc,IAInB50I,EAAK20I,YACP30I,EAAK2zI,WAAY,OAInB,GAAK3zI,EAAK40I,YAAV,CAIAnE,EAAO2D,YAAa,GAEf52G,EAAO81G,SAAWnyJ,EAAEk1D,YACvBl1D,EAAEoqG,iBAGA/tD,EAAO04G,2BAA6B14G,EAAO24G,QAC7Ch1J,EAAEkqG,kBAGCrrF,EAAK4zI,UACJp2G,EAAO/tB,OAAS+tB,EAAO81G,SACzB7C,EAAO8C,UAGTvzI,EAAKo2I,eAAiB3F,EAAO3J,eAC7B2J,EAAO4F,cAAc,GAEjB5F,EAAO2C,WACT3C,EAAO6F,WAAW9qD,QAAQ,qCAG5BxrF,EAAKu2I,qBAAsB,GAEvB/4G,EAAOg5G,aAAyC,IAA1B/F,EAAOgG,iBAAqD,IAA1BhG,EAAOiG,gBACjEjG,EAAOkG,eAAc,GAGvBlG,EAAOyC,KAAK,kBAAmB/xJ,IAGjCsvJ,EAAOyC,KAAK,aAAc/xJ,GAC1B6e,EAAK4zI,SAAU,EACf,IAAIntG,EAAOgqG,EAAO9hH,eAAiBonH,EAAQC,EAC3C1jI,EAAQm0B,KAAOA,EACfA,GAAQjJ,EAAOo5G,WACX5gI,IAAKywB,GAAQA,GACjBgqG,EAAOsE,eAAiBtuG,EAAO,EAAI,OAAS,OAC5CzmC,EAAK62I,iBAAmBpwG,EAAOzmC,EAAKo2I,eACpC,IAAIU,GAAsB,EACtBC,EAAkBv5G,EAAOu5G,gBAgC7B,GA9BIv5G,EAAOm4G,sBACToB,EAAkB,GAGhBtwG,EAAO,GAAKzmC,EAAK62I,iBAAmBpG,EAAOqF,gBAC7CgB,GAAsB,EAClBt5G,EAAOw5G,aAAYh3I,EAAK62I,iBAAmBpG,EAAOqF,eAAiB,EAAI9uJ,KAAKiB,KAAKwoJ,EAAOqF,eAAiB91I,EAAKo2I,eAAiB3vG,EAAMswG,KAChItwG,EAAO,GAAKzmC,EAAK62I,iBAAmBpG,EAAOoF,iBACpDiB,GAAsB,EAClBt5G,EAAOw5G,aAAYh3I,EAAK62I,iBAAmBpG,EAAOoF,eAAiB,EAAI7uJ,KAAKiB,IAAIwoJ,EAAOoF,eAAiB71I,EAAKo2I,eAAiB3vG,EAAMswG,KAGtID,IACF31J,EAAEu0J,yBAA0B,IAIzBjF,EAAOgG,gBAA4C,SAA1BhG,EAAOsE,gBAA6B/0I,EAAK62I,iBAAmB72I,EAAKo2I,iBAC7Fp2I,EAAK62I,iBAAmB72I,EAAKo2I,iBAG1B3F,EAAOiG,gBAA4C,SAA1BjG,EAAOsE,gBAA6B/0I,EAAK62I,iBAAmB72I,EAAKo2I,iBAC7Fp2I,EAAK62I,iBAAmB72I,EAAKo2I,gBAG1B3F,EAAOiG,gBAAmBjG,EAAOgG,iBACpCz2I,EAAK62I,iBAAmB72I,EAAKo2I,gBAI3B54G,EAAO40F,UAAY,EAAG,CACxB,KAAIprI,KAAKyB,IAAIg+C,GAAQjJ,EAAO40F,WAAapyH,EAAKg1I,oBAW5C,YADAh1I,EAAK62I,iBAAmB72I,EAAKo2I,gBAT7B,IAAKp2I,EAAKg1I,mBAMR,OALAh1I,EAAKg1I,oBAAqB,EAC1B1iI,EAAQ4hB,OAAS5hB,EAAQglH,SACzBhlH,EAAQ6hB,OAAS7hB,EAAQilH,SACzBv3H,EAAK62I,iBAAmB72I,EAAKo2I,oBAC7B9jI,EAAQm0B,KAAOgqG,EAAO9hH,eAAiBrc,EAAQglH,SAAWhlH,EAAQ4hB,OAAS5hB,EAAQilH,SAAWjlH,EAAQ6hB,QASvGqJ,EAAOy5G,eAAgBz5G,EAAO81G,WAE/B91G,EAAO83G,UAAY93G,EAAO83G,SAASrvG,SAAWwqG,EAAO6E,UAAY93G,EAAO05G,uBAC1EzG,EAAO0G,oBACP1G,EAAO2G,uBAGL3G,EAAOjzG,OAAO83G,UAAY93G,EAAO83G,SAASrvG,SAAWwqG,EAAO6E,UAC9D7E,EAAO6E,SAAS+B,cAIlB5G,EAAO6G,eAAet3I,EAAK62I,kBAE3BpG,EAAOvY,aAAal4H,EAAK62I,4BA3MnB72I,EAAK40I,aAAe50I,EAAK20I,aAC3BlE,EAAOyC,KAAK,oBAAqB/xJ,IChBxB,SAAS,GAAWy8B,GACjC,IAAI6yH,EAAS51I,KACTmF,EAAOywI,EAAO0C,gBACd31G,EAASizG,EAAOjzG,OAChBlrB,EAAUm+H,EAAOn+H,QACjB0D,EAAMy6H,EAAO+E,aACb+B,EAAa9G,EAAO8G,WAExB,GADc9G,EAAOxqG,QACrB,CACA,IAAI9kD,EAAIy8B,EASR,GARIz8B,EAAEusG,gBAAevsG,EAAIA,EAAEusG,eAEvB1tF,EAAK00I,qBACPjE,EAAOyC,KAAK,WAAY/xJ,GAG1B6e,EAAK00I,qBAAsB,GAEtB10I,EAAK2zI,UAOR,OANI3zI,EAAK4zI,SAAWp2G,EAAOg5G,YACzB/F,EAAOkG,eAAc,GAGvB32I,EAAK4zI,SAAU,OACf5zI,EAAK40I,aAAc,GAKjBp3G,EAAOg5G,YAAcx2I,EAAK4zI,SAAW5zI,EAAK2zI,aAAwC,IAA1BlD,EAAOgG,iBAAqD,IAA1BhG,EAAOiG,iBACnGjG,EAAOkG,eAAc,GAIvB,IA4BIa,EA5BAC,EAAe16H,IACf26H,EAAWD,EAAez3I,EAAK60I,eAEnC,GAAIpE,EAAO2D,WAAY,CACrB,IAAIuD,EAAWx2J,EAAE+lE,MAAQ/lE,EAAEy2J,cAAgBz2J,EAAEy2J,eAC7CnH,EAAOoH,mBAAmBF,GAAYA,EAAS,IAAMx2J,EAAEZ,QACvDkwJ,EAAOyC,KAAK,YAAa/xJ,GAErBu2J,EAAW,KAAOD,EAAez3I,EAAK83I,cAAgB,KACxDrH,EAAOyC,KAAK,wBAAyB/xJ,GASzC,GALA6e,EAAK83I,cAAgB/6H,IACrBsyH,GAAS,WACFoB,EAAOsH,YAAWtH,EAAO2D,YAAa,OAGxCp0I,EAAK2zI,YAAc3zI,EAAK4zI,UAAYnD,EAAOsE,gBAAmC,IAAjBziI,EAAQm0B,MAAczmC,EAAK62I,mBAAqB72I,EAAKo2I,eAIrH,OAHAp2I,EAAK2zI,WAAY,EACjB3zI,EAAK4zI,SAAU,OACf5zI,EAAK40I,aAAc,GAerB,GAXA50I,EAAK2zI,WAAY,EACjB3zI,EAAK4zI,SAAU,EACf5zI,EAAK40I,aAAc,EAIjB4C,EADEh6G,EAAOy5G,aACIjhI,EAAMy6H,EAAOpuI,WAAaouI,EAAOpuI,WAEhCrC,EAAK62I,kBAGjBr5G,EAAO81G,QAIX,GAAI7C,EAAOjzG,OAAO83G,UAAY93G,EAAO83G,SAASrvG,QAC5CwqG,EAAO6E,SAAS0C,WAAW,CACzBR,WAAYA,QAFhB,CAWA,IAHA,IAAIS,EAAY,EACZC,EAAYzH,EAAO0H,gBAAgB,GAE9Bn7J,EAAI,EAAGA,EAAIu6J,EAAW92J,OAAQzD,GAAKA,EAAIwgD,EAAO46G,mBAAqB,EAAI56G,EAAO66G,eAAgB,CACrG,IAAIC,EAAat7J,EAAIwgD,EAAO46G,mBAAqB,EAAI,EAAI56G,EAAO66G,eAEtB,qBAA/Bd,EAAWv6J,EAAIs7J,GACpBd,GAAcD,EAAWv6J,IAAMw6J,EAAaD,EAAWv6J,EAAIs7J,KAC7DL,EAAYj7J,EACZk7J,EAAYX,EAAWv6J,EAAIs7J,GAAcf,EAAWv6J,IAE7Cw6J,GAAcD,EAAWv6J,KAClCi7J,EAAYj7J,EACZk7J,EAAYX,EAAWA,EAAW92J,OAAS,GAAK82J,EAAWA,EAAW92J,OAAS,IAInF,IAAI83J,EAAmB,KACnBC,EAAkB,KAElBh7G,EAAOi7G,SACLhI,EAAOiI,YACTF,EAAkB/H,EAAOjzG,OAAOm7G,SAAWlI,EAAOjzG,OAAOm7G,QAAQ1yG,SAAWwqG,EAAOkI,QAAUlI,EAAOkI,QAAQC,OAAOn4J,OAAS,EAAIgwJ,EAAOmI,OAAOn4J,OAAS,EAC9IgwJ,EAAOoI,QAChBN,EAAmB,IAKvB,IAAIp+I,GAASq9I,EAAaD,EAAWU,IAAcC,EAC/C1vG,EAAYyvG,EAAYz6G,EAAO46G,mBAAqB,EAAI,EAAI56G,EAAO66G,eAEvE,GAAIX,EAAWl6G,EAAOs7G,aAAc,CAElC,IAAKt7G,EAAOu7G,WAEV,YADAtI,EAAOuI,QAAQvI,EAAOuC,aAIM,SAA1BvC,EAAOsE,iBACL56I,GAASqjC,EAAOy7G,gBAAiBxI,EAAOuI,QAAQx7G,EAAOi7G,QAAUhI,EAAOoI,MAAQN,EAAmBN,EAAYzvG,GAAgBioG,EAAOuI,QAAQf,IAGtH,SAA1BxH,EAAOsE,iBACL56I,EAAQ,EAAIqjC,EAAOy7G,gBACrBxI,EAAOuI,QAAQf,EAAYzvG,GACE,OAApBgwG,GAA4Br+I,EAAQ,GAAKnT,KAAKyB,IAAI0R,GAASqjC,EAAOy7G,gBAC3ExI,EAAOuI,QAAQR,GAEf/H,EAAOuI,QAAQf,QAGd,CAEL,IAAKz6G,EAAO07G,YAEV,YADAzI,EAAOuI,QAAQvI,EAAOuC,aAIAvC,EAAO0I,aAAeh4J,EAAEZ,SAAWkwJ,EAAO0I,WAAWC,QAAUj4J,EAAEZ,SAAWkwJ,EAAO0I,WAAWE,QAU3Gl4J,EAAEZ,SAAWkwJ,EAAO0I,WAAWC,OACxC3I,EAAOuI,QAAQf,EAAYzvG,GAE3BioG,EAAOuI,QAAQf,IAVe,SAA1BxH,EAAOsE,gBACTtE,EAAOuI,QAA6B,OAArBT,EAA4BA,EAAmBN,EAAYzvG,GAG9C,SAA1BioG,EAAOsE,gBACTtE,EAAOuI,QAA4B,OAApBR,EAA2BA,EAAkBP,OCtJrD,SAASt7F,KACtB,IAAI8zF,EAAS51I,KACT2iC,EAASizG,EAAOjzG,OAChB9oB,EAAK+7H,EAAO/7H,GAChB,IAAIA,GAAyB,IAAnBA,EAAGg/E,YAAb,CAEIl2D,EAAO87G,aACT7I,EAAO8I,gBAIT,IAAI9C,EAAiBhG,EAAOgG,eACxBC,EAAiBjG,EAAOiG,eACxB8C,EAAW/I,EAAO+I,SAEtB/I,EAAOgG,gBAAiB,EACxBhG,EAAOiG,gBAAiB,EACxBjG,EAAOqE,aACPrE,EAAOgJ,eACPhJ,EAAO2G,uBAEuB,SAAzB55G,EAAOk8G,eAA4Bl8G,EAAOk8G,cAAgB,IAAMjJ,EAAOoI,QAAUpI,EAAOiI,cAAgBjI,EAAOjzG,OAAOm8G,eACzHlJ,EAAOuI,QAAQvI,EAAOmI,OAAOn4J,OAAS,EAAG,GAAG,GAAO,GAEnDgwJ,EAAOuI,QAAQvI,EAAOuC,YAAa,GAAG,GAAO,GAG3CvC,EAAOmJ,UAAYnJ,EAAOmJ,SAAS38H,SAAWwzH,EAAOmJ,SAASC,QAChEpJ,EAAOmJ,SAASpjD,MAIlBi6C,EAAOiG,eAAiBA,EACxBjG,EAAOgG,eAAiBA,EAEpBhG,EAAOjzG,OAAOs8G,eAAiBN,IAAa/I,EAAO+I,UACrD/I,EAAOsJ,iBCpCI,SAAS,GAAQ54J,GAC9B,IAAIsvJ,EAAS51I,KACR41I,EAAOxqG,UAEPwqG,EAAO2D,aACN3D,EAAOjzG,OAAOw8G,eAAe74J,EAAEoqG,iBAE/BklD,EAAOjzG,OAAOy8G,0BAA4BxJ,EAAO2C,YACnDjyJ,EAAEkqG,kBACFlqG,EAAEmqG,8BCTO,SAAS4uD,KACtB,IAAIzJ,EAAS51I,KACTg2I,EAAYJ,EAAOI,UACnB2E,EAAe/E,EAAO+E,aAE1B,GADc/E,EAAOxqG,QACrB,CACAwqG,EAAO0J,kBAAoB1J,EAAOpuI,UAE9BouI,EAAO9hH,eACT8hH,EAAOpuI,WAAawuI,EAAUj6C,WAE9B65C,EAAOpuI,WAAawuI,EAAUl6C,UAIP,IAArB85C,EAAOpuI,YAAiBouI,EAAOpuI,UAAY,GAC/CouI,EAAO0G,oBACP1G,EAAO2G,sBAEP,IAAIgD,EAAiB3J,EAAOoF,eAAiBpF,EAAOqF,gBAE7B,IAAnBsE,EACY,GAEC3J,EAAOpuI,UAAYouI,EAAOqF,gBAAkBsE,KAGzC3J,EAAO9yH,UACzB8yH,EAAO6G,eAAe9B,GAAgB/E,EAAOpuI,UAAYouI,EAAOpuI,WAGlEouI,EAAOyC,KAAK,eAAgBzC,EAAOpuI,WAAW,ICxBhD,IAAIg4I,IAAqB,EAEzB,SAASC,MAET,IAAI,GAAS,SAAgB7J,EAAQvwH,GACnC,IAAI+hB,EAAWspG,IACX/tG,EAASizG,EAAOjzG,OAChB+8G,EAAc9J,EAAO8J,YACrB7lI,EAAK+7H,EAAO/7H,GACZm8H,EAAYJ,EAAOI,UACnBiB,EAASrB,EAAOqB,OAChB1jE,EAAUqiE,EAAOriE,QACjBkuC,IAAY9+E,EAAO24G,OACnBqE,EAAuB,OAAXt6H,EAAkB,mBAAqB,sBACnDu6H,EAAev6H,EAEnB,GAAKkuD,EAAQ2oD,MAIN,CACL,IAAIwa,IAAwC,eAAtBgJ,EAAYj3J,QAA0B8qF,EAAQmjE,kBAAmB/zG,EAAOk9G,mBAAmB,CAC/Gl5G,SAAS,EACT86E,SAAS,GAEX5nG,EAAG8lI,GAAWD,EAAYj3J,MAAOmtJ,EAAO8E,aAAchE,GACtD78H,EAAG8lI,GAAWD,EAAYluH,KAAMokH,EAAO4G,YAAajpE,EAAQmjE,gBAAkB,CAC5E/vG,SAAS,EACT86E,QAASA,GACPA,GACJ5nG,EAAG8lI,GAAWD,EAAYh3J,IAAKktJ,EAAOuH,WAAYzG,GAE9CgJ,EAAYn8H,QACd1J,EAAG8lI,GAAWD,EAAYn8H,OAAQqyH,EAAOuH,WAAYzG,QAhBvD78H,EAAG8lI,GAAWD,EAAYj3J,MAAOmtJ,EAAO8E,cAAc,GACtDtzG,EAASu4G,GAAWD,EAAYluH,KAAMokH,EAAO4G,YAAa/6B,GAC1Dr6E,EAASu4G,GAAWD,EAAYh3J,IAAKktJ,EAAOuH,YAAY,IAmBtDx6G,EAAOw8G,eAAiBx8G,EAAOy8G,2BACjCvlI,EAAG8lI,GAAW,QAAS/J,EAAO9xI,SAAS,GAGrC6+B,EAAO81G,SACTzC,EAAU2J,GAAW,SAAU/J,EAAOyJ,UAIpC18G,EAAOm9G,qBACTlK,EAAOgK,GAAc3I,EAAOC,KAAOD,EAAOE,QAAU,0CAA4C,wBAAyBr1F,IAAU,GAEnI8zF,EAAOgK,GAAc,iBAAkB99F,IAAU,IAgCtC,ICvFXi+F,GAAgB,SAAuBnK,EAAQjzG,GACjD,OAAOizG,EAAO9+G,MAAQ6L,EAAO7L,MAAQ6L,EAAO7L,KAAKkpH,KAAO,GCH1D,SAAS,GAAmB57J,GAAO,OAQnC,SAA4BA,GAAO,GAAIC,MAAMC,QAAQF,GAAM,OAAO,GAAkBA,GAR1C,CAAmBA,IAM7D,SAA0BK,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOwB,WAA2C,MAAtBD,EAAK,cAAuB,OAAOJ,MAAMM,KAAKF,GANjF,CAAiBL,IAItF,SAAqCxB,EAAGoE,GAAU,IAAKpE,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO,GAAkBA,EAAGoE,GAAS,IAAIpD,EAAIf,OAAOkB,UAAUkD,SAAS3E,KAAKM,GAAGsE,MAAM,GAAI,GAAc,WAANtD,GAAkBhB,EAAEyC,cAAazB,EAAIhB,EAAEyC,YAAY3C,MAAM,GAAU,QAANkB,GAAqB,QAANA,EAAa,OAAOS,MAAMM,KAAK/B,GAAI,GAAU,cAANgB,GAAqB,2CAA2CuD,KAAKvD,GAAI,OAAO,GAAkBhB,EAAGoE,GAJxT,CAA4B5C,IAE1H,WAAgC,MAAM,IAAIU,UAAU,wIAF8E,GAUlI,SAAS,GAAkBV,EAAKgD,IAAkB,MAAPA,GAAeA,EAAMhD,EAAIwB,UAAQwB,EAAMhD,EAAIwB,QAAQ,IAAK,IAAIzD,EAAI,EAAGkF,EAAO,IAAIhD,MAAM+C,GAAMjF,EAAIiF,EAAKjF,IAAOkF,EAAKlF,GAAKiC,EAAIjC,GAAM,OAAOkF,EAEhL,SAAS,GAAQpC,GAAmV,OAAtO,GAArD,oBAAX/B,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,GCmBpW,IC/BA,IACbu9D,MAAM,EACN1mC,UAAW,aACX88H,kBAAmB,UACnBqH,aAAc,EACdhiD,MAAO,IACPw6C,SAAS,EACTqH,sBAAsB,EACtBI,gBAAgB,EAChB5E,QAAQ,EACR6E,gBAAgB,EAChB/0G,SAAS,EACTo7E,kBAAmB,wDAEnB/gH,MAAO,KACPsB,OAAQ,KAERyxI,gCAAgC,EAEhC/3B,UAAW,KACXjc,IAAK,KAELi1C,oBAAoB,EACpBE,mBAAoB,GAEpByG,YAAY,EAEZC,gBAAgB,EAEhBC,kBAAkB,EAElBrhB,OAAQ,QAGRwf,iBAAaxrJ,EACbstJ,gBAAiB,SAEjBC,aAAc,EACd3B,cAAe,EACfrB,eAAgB,EAChBD,mBAAoB,EACpBkD,oBAAoB,EACpB3B,gBAAgB,EAChB4B,sBAAsB,EACtBC,mBAAoB,EAEpBC,kBAAmB,EAEnBC,qBAAqB,EACrBC,0BAA0B,EAE1B7B,eAAe,EAEf8B,cAAc,EAEdhF,WAAY,EACZX,WAAY,GACZ4F,eAAe,EACf3C,aAAa,EACbH,YAAY,EACZE,gBAAiB,GACjBH,aAAc,IACd7B,cAAc,EACd/B,gBAAgB,EAChB9iB,UAAW,EACX8jB,0BAA0B,EAC1Bf,0BAA0B,EAC1BC,+BAA+B,EAC/BO,qBAAqB,EAErBmG,mBAAmB,EAEnB9E,YAAY,EACZD,gBAAiB,IAEjBG,qBAAqB,EAErBV,YAAY,EAEZwD,eAAe,EACfC,0BAA0B,EAC1B8B,qBAAqB,EAErBC,eAAe,EACfC,qBAAqB,EAErBxsI,MAAM,EACNysI,qBAAsB,EACtBC,aAAc,KACdC,wBAAwB,EACxBC,mBAAmB,EAEnB5D,QAAQ,EAER/B,gBAAgB,EAChBD,gBAAgB,EAChBpC,aAAc,KAEdL,WAAW,EACXH,eAAgB,oBAChBC,kBAAmB,KAEnB4G,kBAAkB,EAClB4B,wBAAyB,GAEzBC,uBAAwB,UAExBC,WAAY,eACZC,gBAAiB,+BACjBC,iBAAkB,sBAClBC,0BAA2B,gCAC3BC,kBAAmB,uBACnBC,oBAAqB,yBACrBC,eAAgB,oBAChBC,wBAAyB,8BACzBC,eAAgB,oBAChBC,wBAAyB,8BACzBC,aAAc,iBAEdC,oBAAoB,EAEpBC,cAAc,GCzHhB,SAAS,GAAQt9J,GAAmV,OAAtO,GAArD,oBAAX/B,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,GAGpW,SAASu9J,GAAmB7/G,EAAQ8/G,GACjD,OAAO,SAAsBx9J,QACf,IAARA,IACFA,EAAM,IAGR,IAAIy9J,EAAkB7/J,OAAOkH,KAAK9E,GAAK,GACnC09J,EAAe19J,EAAIy9J,GAEO,WAA1B,GAAQC,IAA+C,OAAjBA,GAKtC,CAAC,aAAc,aAAc,aAAa73J,QAAQ43J,IAAoB,IAAiC,IAA5B//G,EAAO+/G,KACpF//G,EAAO+/G,GAAmB,CACxBE,MAAM,IAIJF,KAAmB//G,GAAU,YAAaggH,IAKhB,IAA5BhgH,EAAO+/G,KACT//G,EAAO+/G,GAAmB,CACxBt3G,SAAS,IAI4B,WAArC,GAAQzI,EAAO+/G,KAAoC,YAAa//G,EAAO+/G,KACzE//G,EAAO+/G,GAAiBt3G,SAAU,GAG/BzI,EAAO+/G,KAAkB//G,EAAO+/G,GAAmB,CACtDt3G,SAAS,IAEX,EAAOq3G,EAAkBx9J,IAjBvB,EAAOw9J,EAAkBx9J,IAXzB,EAAOw9J,EAAkBx9J,ICb/B,SAAS,GAAmBb,GAAO,OAQnC,SAA4BA,GAAO,GAAIC,MAAMC,QAAQF,GAAM,OAAO,GAAkBA,GAR1C,CAAmBA,IAM7D,SAA0BK,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOwB,WAA2C,MAAtBD,EAAK,cAAuB,OAAOJ,MAAMM,KAAKF,GANjF,CAAiBL,IAItF,SAAqCxB,EAAGoE,GAAU,IAAKpE,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO,GAAkBA,EAAGoE,GAAS,IAAIpD,EAAIf,OAAOkB,UAAUkD,SAAS3E,KAAKM,GAAGsE,MAAM,GAAI,GAAc,WAANtD,GAAkBhB,EAAEyC,cAAazB,EAAIhB,EAAEyC,YAAY3C,MAAM,GAAU,QAANkB,GAAqB,QAANA,EAAa,OAAOS,MAAMM,KAAK/B,GAAI,GAAU,cAANgB,GAAqB,2CAA2CuD,KAAKvD,GAAI,OAAO,GAAkBhB,EAAGoE,GAJxT,CAA4B5C,IAE1H,WAAgC,MAAM,IAAIU,UAAU,wIAF8E,GAUlI,SAAS,GAAkBV,EAAKgD,IAAkB,MAAPA,GAAeA,EAAMhD,EAAIwB,UAAQwB,EAAMhD,EAAIwB,QAAQ,IAAK,IAAIzD,EAAI,EAAGkF,EAAO,IAAIhD,MAAM+C,GAAMjF,EAAIiF,EAAKjF,IAAOkF,EAAKlF,GAAKiC,EAAIjC,GAAM,OAAOkF,EAEhL,SAAS,GAAgB9B,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIV,UAAU,qCAEhH,SAASW,GAAkBC,EAAQC,GAAS,IAAK,IAAIxD,EAAI,EAAGA,EAAIwD,EAAMC,OAAQzD,IAAK,CAAE,IAAI0D,EAAaF,EAAMxD,GAAI0D,EAAW9C,WAAa8C,EAAW9C,aAAc,EAAO8C,EAAWX,cAAe,EAAU,UAAWW,IAAYA,EAAWV,UAAW,GAAMtC,OAAOC,eAAe4C,EAAQG,EAAWnC,IAAKmC,IA2B7S,IAAIg9J,GAAa,CACfC,cjB7Ba,CACb5tD,GAAI,SAAYpyF,EAAQ09B,EAASuiH,GAC/B,IAAI1iI,EAAOrgB,KACX,IAAKqgB,EAAK2iI,iBAAmB3iI,EAAK68H,UAAW,OAAO78H,EACpD,GAAuB,oBAAZmgB,EAAwB,OAAOngB,EAC1C,IAAIgF,EAAS09H,EAAW,UAAY,OAKpC,OAJAjgJ,EAAOlB,MAAM,KAAKoM,SAAQ,SAAU+U,GAC7B1C,EAAK2iI,gBAAgBjgI,KAAQ1C,EAAK2iI,gBAAgBjgI,GAAS,IAChE1C,EAAK2iI,gBAAgBjgI,GAAOsC,GAAQmb,MAE/BngB,GAETonE,KAAM,SAAc3kF,EAAQ09B,EAASuiH,GACnC,IAAI1iI,EAAOrgB,KACX,IAAKqgB,EAAK2iI,iBAAmB3iI,EAAK68H,UAAW,OAAO78H,EACpD,GAAuB,oBAAZmgB,EAAwB,OAAOngB,EAE1C,SAAS4iI,IACP5iI,EAAK6vE,IAAIptF,EAAQmgJ,GAEbA,EAAYC,uBACPD,EAAYC,eAGrB,IAAK,IAAIj7J,EAAOC,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAM4D,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/EL,EAAKK,GAAQF,UAAUE,GAGzBo4C,EAAQn4C,MAAMg4B,EAAMt4B,GAItB,OADAk7J,EAAYC,eAAiB1iH,EACtBngB,EAAK60E,GAAGpyF,EAAQmgJ,EAAaF,IAEtCI,MAAO,SAAe3iH,EAASuiH,GAC7B,IAAI1iI,EAAOrgB,KACX,IAAKqgB,EAAK2iI,iBAAmB3iI,EAAK68H,UAAW,OAAO78H,EACpD,GAAuB,oBAAZmgB,EAAwB,OAAOngB,EAC1C,IAAIgF,EAAS09H,EAAW,UAAY,OAMpC,OAJI1iI,EAAK+iI,mBAAmBt4J,QAAQ01C,GAAW,GAC7CngB,EAAK+iI,mBAAmB/9H,GAAQmb,GAG3BngB,GAETgjI,OAAQ,SAAgB7iH,GACtB,IAAIngB,EAAOrgB,KACX,IAAKqgB,EAAK2iI,iBAAmB3iI,EAAK68H,UAAW,OAAO78H,EACpD,IAAKA,EAAK+iI,mBAAoB,OAAO/iI,EACrC,IAAI91B,EAAQ81B,EAAK+iI,mBAAmBt4J,QAAQ01C,GAM5C,OAJIj2C,GAAS,GACX81B,EAAK+iI,mBAAmB/8I,OAAO9b,EAAO,GAGjC81B,GAET6vE,IAAK,SAAaptF,EAAQ09B,GACxB,IAAIngB,EAAOrgB,KACX,OAAKqgB,EAAK2iI,iBAAmB3iI,EAAK68H,UAAkB78H,EAC/CA,EAAK2iI,iBACVlgJ,EAAOlB,MAAM,KAAKoM,SAAQ,SAAU+U,GACX,qBAAZyd,EACTngB,EAAK2iI,gBAAgBjgI,GAAS,GACrB1C,EAAK2iI,gBAAgBjgI,IAC9B1C,EAAK2iI,gBAAgBjgI,GAAO/U,SAAQ,SAAUs1I,EAAc/4J,IACtD+4J,IAAiB9iH,GAAW8iH,EAAaJ,gBAAkBI,EAAaJ,iBAAmB1iH,IAC7FngB,EAAK2iI,gBAAgBjgI,GAAO1c,OAAO9b,EAAO,SAK3C81B,GAZ2BA,GAcpCg4H,KAAM,WACJ,IAGIv1I,EACAqC,EACA1C,EALA4d,EAAOrgB,KACX,IAAKqgB,EAAK2iI,iBAAmB3iI,EAAK68H,UAAW,OAAO78H,EACpD,IAAKA,EAAK2iI,gBAAiB,OAAO3iI,EAKlC,IAAK,IAAIqM,EAAQxkC,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAMqoC,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF5kC,EAAK4kC,GAASzkC,UAAUykC,GAGH,kBAAZ5kC,EAAK,IAAmB1D,MAAMC,QAAQyD,EAAK,KACpD+a,EAAS/a,EAAK,GACdod,EAAOpd,EAAKb,MAAM,EAAGa,EAAKnC,QAC1B6c,EAAU4d,IAEVvd,EAAS/a,EAAK,GAAG+a,OACjBqC,EAAOpd,EAAK,GAAGod,KACf1C,EAAU1a,EAAK,GAAG0a,SAAW4d,GAG/Blb,EAAKkuD,QAAQ5wD,GACb,IAAI8gJ,EAAcl/J,MAAMC,QAAQwe,GAAUA,EAASA,EAAOlB,MAAM,KAchE,OAbA2hJ,EAAYv1I,SAAQ,SAAU+U,GACxB1C,EAAK+iI,oBAAsB/iI,EAAK+iI,mBAAmBx9J,QACrDy6B,EAAK+iI,mBAAmBp1I,SAAQ,SAAUs1I,GACxCA,EAAaj7J,MAAMoa,EAAS,CAACsgB,GAAO1iB,OAAO,EAAmB8E,QAI9Dkb,EAAK2iI,iBAAmB3iI,EAAK2iI,gBAAgBjgI,IAC/C1C,EAAK2iI,gBAAgBjgI,GAAO/U,SAAQ,SAAUs1I,GAC5CA,EAAaj7J,MAAMoa,EAAS0C,SAI3Bkb,IiBlFT8G,OClCa,CACb8yH,WCVa,WACb,IACIx0I,EACAsB,EAFA6uI,EAAS51I,KAGTwjJ,EAAM5N,EAAO4N,IAGf/9I,EADiC,qBAAxBmwI,EAAOjzG,OAAOl9B,OAAiD,OAAxBmwI,EAAOjzG,OAAOl9B,MACtDmwI,EAAOjzG,OAAOl9B,MAEd+9I,EAAI,GAAG1qI,YAIf/R,EADkC,qBAAzB6uI,EAAOjzG,OAAO57B,QAAmD,OAAzB6uI,EAAOjzG,OAAO57B,OACtD6uI,EAAOjzG,OAAO57B,OAEdy8I,EAAI,GAAGzqI,aAGJ,IAAVtT,GAAemwI,EAAO9hH,gBAA6B,IAAX/sB,GAAgB6uI,EAAOmF,eAKnEt1I,EAAQA,EAAQxG,SAASukJ,EAAIz2D,IAAI,iBAAmB,EAAG,IAAM9tF,SAASukJ,EAAIz2D,IAAI,kBAAoB,EAAG,IACrGhmF,EAASA,EAAS9H,SAASukJ,EAAIz2D,IAAI,gBAAkB,EAAG,IAAM9tF,SAASukJ,EAAIz2D,IAAI,mBAAqB,EAAG,IACnG5jG,OAAOqE,MAAMiY,KAAQA,EAAQ,GAC7Btc,OAAOqE,MAAMuZ,KAASA,EAAS,GACnClkB,OAAO6c,OAAOk2I,EAAQ,CACpBnwI,MAAOA,EACPsB,OAAQA,EACR9D,KAAM2yI,EAAO9hH,eAAiBruB,EAAQsB,MDnBxC63I,ajBRa,WACb,IAAIhJ,EAAS51I,KAEb,SAASyjJ,EAAkB3/J,GACzB,OAAI8xJ,EAAO9hH,eACFhwC,EAIF,CACL,MAAS,SACT,aAAc,cACd,iBAAkB,eAClB,cAAe,aACf,eAAgB,gBAChB,eAAgB,cAChB,gBAAiB,iBACjB,YAAe,gBACfA,GAGJ,SAAS4/J,EAA0B/hJ,EAAM0tB,GACvC,OAAO1lC,WAAWgY,EAAKmY,iBAAiB2pI,EAAkBp0H,KAAW,GAGvE,IAAIsT,EAASizG,EAAOjzG,OAChB84G,EAAa7F,EAAO6F,WACpBkI,EAAa/N,EAAO3yI,KACpBkY,EAAMy6H,EAAO+E,aACbiJ,EAAWhO,EAAOgO,SAClBC,EAAYjO,EAAOkI,SAAWn7G,EAAOm7G,QAAQ1yG,QAC7C04G,EAAuBD,EAAYjO,EAAOkI,QAAQC,OAAOn4J,OAASgwJ,EAAOmI,OAAOn4J,OAChFm4J,EAAStC,EAAW7oE,SAAS,IAAIvyE,OAAOu1I,EAAOjzG,OAAOg/G,aACtDoC,EAAeF,EAAYjO,EAAOkI,QAAQC,OAAOn4J,OAASm4J,EAAOn4J,OACjE+4J,EAAW,GACXjC,EAAa,GACbY,EAAkB,GAClB0G,EAAerhH,EAAOg+G,mBAEE,oBAAjBqD,IACTA,EAAerhH,EAAOg+G,mBAAmBr+J,KAAKszJ,IAGhD,IAAIqO,EAActhH,EAAOi+G,kBAEE,oBAAhBqD,IACTA,EAActhH,EAAOi+G,kBAAkBt+J,KAAKszJ,IAG9C,IAAIsO,EAAyBtO,EAAO+I,SAAS/4J,OACzCu+J,EAA2BvO,EAAO8G,WAAW92J,OAC7C46J,EAAe79G,EAAO69G,aACtB4D,GAAiBJ,EACjBK,EAAgB,EAChB95J,EAAQ,EAEZ,GAA0B,qBAAfo5J,EAAX,CAI4B,kBAAjBnD,GAA6BA,EAAa11J,QAAQ,MAAQ,IACnE01J,EAAe72J,WAAW62J,EAAaxhJ,QAAQ,IAAK,KAAO,IAAM2kJ,GAGnE/N,EAAO0O,aAAe9D,EAElBrlI,EAAK4iI,EAAOhxD,IAAI,CAClB0L,WAAY,GACZyV,aAAc,GACdD,UAAW,KACL8vC,EAAOhxD,IAAI,CACjBghB,YAAa,GACbG,aAAc,GACdD,UAAW,KAGTtrE,EAAOm8G,gBAAkBn8G,EAAO81G,UAClCjD,EAAeI,EAAOI,UAAW,kCAAmC,IACpER,EAAeI,EAAOI,UAAW,iCAAkC,KAGrE,IAOIuO,EAPAC,EAAc7hH,EAAO7L,MAAQ6L,EAAO7L,KAAKkpH,KAAO,GAAKpK,EAAO9+G,KAE5D0tH,GACF5O,EAAO9+G,KAAK2tH,WAAWV,GASzB,IAJA,IAAIW,EAAgD,SAAzB/hH,EAAOk8G,eAA4Bl8G,EAAO87G,aAAe57J,OAAOkH,KAAK44C,EAAO87G,aAAa3tI,QAAO,SAAUptB,GACnI,MAAwD,qBAA1Ci/C,EAAO87G,YAAY/6J,GAAKm7J,iBACrCj5J,OAAS,EAEHzD,EAAI,EAAGA,EAAI4hK,EAAc5hK,GAAK,EAAG,CACxCoiK,EAAY,EACZ,IAAInoB,EAAQ2hB,EAAO5rJ,GAAGhQ,GAMtB,GAJIqiK,GACF5O,EAAO9+G,KAAK6tH,YAAYxiK,EAAGi6I,EAAO2nB,EAAcN,GAGrB,SAAzBrnB,EAAMrvC,IAAI,WAAd,CAEA,GAA6B,SAAzBpqD,EAAOk8G,cAA0B,CAC/B6F,IACF3G,EAAO57J,GAAG+gB,MAAMugJ,EAAkB,UAAY,IAGhD,IAAImB,EAAcluI,iBAAiB0lH,EAAM,IACrCyoB,EAAmBzoB,EAAM,GAAGl5H,MAAMmoH,UAClCy5B,EAAyB1oB,EAAM,GAAGl5H,MAAMw1H,gBAU5C,GARImsB,IACFzoB,EAAM,GAAGl5H,MAAMmoH,UAAY,QAGzBy5B,IACF1oB,EAAM,GAAGl5H,MAAMw1H,gBAAkB,QAG/B/1F,EAAOo+G,aACTwD,EAAY3O,EAAO9hH,eAAiBsoG,EAAMr5F,YAAW,GAAQq5F,EAAMn5F,aAAY,OAC1E,CAEL,IAAIx9B,EAAQi+I,EAA0BkB,EAAa,SAC/Cj2G,EAAc+0G,EAA0BkB,EAAa,gBACrDh2G,EAAe80G,EAA0BkB,EAAa,iBACtDnsD,EAAairD,EAA0BkB,EAAa,eACpD72C,EAAc21C,EAA0BkB,EAAa,gBACrDxtI,EAAYwtI,EAAY9qI,iBAAiB,cAE7C,GAAI1C,GAA2B,eAAdA,EACfmtI,EAAY9+I,EAAQgzF,EAAasV,MAC5B,CACL,IAAIg3C,EAAU3oB,EAAM,GAChBtjH,EAAcisI,EAAQjsI,YAE1ByrI,EAAY9+I,EAAQkpC,EAAcC,EAAe6pD,EAAasV,GAD5Cg3C,EAAQlsD,YACiE//E,IAI3F+rI,IACFzoB,EAAM,GAAGl5H,MAAMmoH,UAAYw5B,GAGzBC,IACF1oB,EAAM,GAAGl5H,MAAMw1H,gBAAkBosB,GAG/BniH,EAAOo+G,eAAcwD,EAAYp4J,KAAKkB,MAAMk3J,SAEhDA,GAAaZ,GAAchhH,EAAOk8G,cAAgB,GAAK2B,GAAgB79G,EAAOk8G,cAC1El8G,EAAOo+G,eAAcwD,EAAYp4J,KAAKkB,MAAMk3J,IAE5CxG,EAAO57J,KACT47J,EAAO57J,GAAG+gB,MAAMugJ,EAAkB,UAAY,GAAGpjJ,OAAOkkJ,EAAW,OAInExG,EAAO57J,KACT47J,EAAO57J,GAAG6iK,gBAAkBT,GAG9BjH,EAAgB53I,KAAK6+I,GAEjB5hH,EAAOm8G,gBACTsF,EAAgBA,EAAgBG,EAAY,EAAIF,EAAgB,EAAI7D,EAC9C,IAAlB6D,GAA6B,IAANliK,IAASiiK,EAAgBA,EAAgBT,EAAa,EAAInD,GAC3E,IAANr+J,IAASiiK,EAAgBA,EAAgBT,EAAa,EAAInD,GAC1Dr0J,KAAKyB,IAAIw2J,GAAiB,OAAUA,EAAgB,GACpDzhH,EAAOo+G,eAAcqD,EAAgBj4J,KAAKkB,MAAM+2J,IAChD75J,EAAQo4C,EAAO66G,iBAAmB,GAAGmB,EAASj5I,KAAK0+I,GACvD1H,EAAWh3I,KAAK0+I,KAEZzhH,EAAOo+G,eAAcqD,EAAgBj4J,KAAKkB,MAAM+2J,KAC/C75J,EAAQ4B,KAAK4B,IAAI6nJ,EAAOjzG,OAAO46G,mBAAoBhzJ,IAAUqrJ,EAAOjzG,OAAO66G,iBAAmB,GAAGmB,EAASj5I,KAAK0+I,GACpH1H,EAAWh3I,KAAK0+I,GAChBA,EAAgBA,EAAgBG,EAAY/D,GAG9C5K,EAAO0O,aAAeC,EAAY/D,EAClC6D,EAAgBE,EAChBh6J,GAAS,GAoBX,GAjBAqrJ,EAAO0O,YAAcn4J,KAAK6B,IAAI4nJ,EAAO0O,YAAaX,GAAcM,EAE5D9oI,GAAOyoI,IAA+B,UAAlBjhH,EAAOs8F,QAAwC,cAAlBt8F,EAAOs8F,SAC1Dwc,EAAW1uD,IAAI,CACbtnF,MAAO,GAAGpF,OAAOu1I,EAAO0O,YAAc3hH,EAAO69G,aAAc,QAI3D79G,EAAO09G,gBACT5E,EAAW1uD,IAAI,EAAgB,GAAI02D,EAAkB,SAAU,GAAGpjJ,OAAOu1I,EAAO0O,YAAc3hH,EAAO69G,aAAc,QAGjHgE,GACF5O,EAAO9+G,KAAKmuH,kBAAkBV,EAAW5F,EAAU8E,IAIhD9gH,EAAOm8G,eAAgB,CAG1B,IAFA,IAAIoG,EAAgB,GAEXxkI,EAAK,EAAGA,EAAKi+H,EAAS/4J,OAAQ86B,GAAM,EAAG,CAC9C,IAAIykI,EAAiBxG,EAASj+H,GAC1BiiB,EAAOo+G,eAAcoE,EAAiBh5J,KAAKkB,MAAM83J,IAEjDxG,EAASj+H,IAAOk1H,EAAO0O,YAAcX,GACvCuB,EAAcx/I,KAAKy/I,GAIvBxG,EAAWuG,EAEP/4J,KAAKkB,MAAMuoJ,EAAO0O,YAAcX,GAAcx3J,KAAKkB,MAAMsxJ,EAASA,EAAS/4J,OAAS,IAAM,GAC5F+4J,EAASj5I,KAAKkwI,EAAO0O,YAAcX,GAMvC,GAFwB,IAApBhF,EAAS/4J,SAAc+4J,EAAW,CAAC,IAEX,IAAxBh8G,EAAO69G,aAAoB,CAC7B,IAAI98J,EAAMkyJ,EAAO9hH,gBAAkB3Y,EAAM,aAAesoI,EAAkB,eAC1E1F,EAAOjtI,QAAO,SAAUi2E,EAAG09C,GACzB,OAAK9hG,EAAO81G,SAERhU,IAAesZ,EAAOn4J,OAAS,KAKlCmnG,IAAI,EAAgB,GAAIrpG,EAAK,GAAG2c,OAAOmgJ,EAAc,QAG1D,GAAI79G,EAAOm8G,gBAAkBn8G,EAAO+9G,qBAAsB,CACxD,IAAI0E,EAAgB,EACpB9H,EAAgBtvI,SAAQ,SAAUq3I,GAChCD,GAAiBC,GAAkB1iH,EAAO69G,aAAe79G,EAAO69G,aAAe,MAGjF,IAAI8E,GADJF,GAAiBziH,EAAO69G,cACMmD,EAC9BhF,EAAWA,EAASj0J,KAAI,SAAU66J,GAChC,OAAIA,EAAO,GAAWvB,EAClBuB,EAAOD,EAAgBA,EAAUrB,EAC9BsB,KAIX,GAAI5iH,EAAOm+G,yBAA0B,CACnC,IAAI0E,EAAiB,EAMrB,GALAlI,EAAgBtvI,SAAQ,SAAUq3I,GAChCG,GAAkBH,GAAkB1iH,EAAO69G,aAAe79G,EAAO69G,aAAe,OAElFgF,GAAkB7iH,EAAO69G,cAEJmD,EAAY,CAC/B,IAAI8B,GAAmB9B,EAAa6B,GAAkB,EACtD7G,EAAS3wI,SAAQ,SAAUu3I,EAAMG,GAC/B/G,EAAS+G,GAAaH,EAAOE,KAE/B/I,EAAW1uI,SAAQ,SAAUu3I,EAAMG,GACjChJ,EAAWgJ,GAAaH,EAAOE,MAYrC,GAPA5iK,OAAO6c,OAAOk2I,EAAQ,CACpBmI,OAAQA,EACRY,SAAUA,EACVjC,WAAYA,EACZY,gBAAiBA,IAGf36G,EAAOm8G,gBAAkBn8G,EAAO81G,UAAY91G,EAAO+9G,qBAAsB,CAC3ElL,EAAeI,EAAOI,UAAW,kCAAmC,GAAG31I,QAAQs+I,EAAS,GAAI,OAC5FnJ,EAAeI,EAAOI,UAAW,iCAAkC,GAAG31I,OAAOu1I,EAAO3yI,KAAO,EAAIq6I,EAAgBA,EAAgB13J,OAAS,GAAK,EAAG,OAChJ,IAAI+/J,GAAiB/P,EAAO+I,SAAS,GACjCiH,GAAmBhQ,EAAO8G,WAAW,GACzC9G,EAAO+I,SAAW/I,EAAO+I,SAASj0J,KAAI,SAAU2H,GAC9C,OAAOA,EAAIszJ,KAEb/P,EAAO8G,WAAa9G,EAAO8G,WAAWhyJ,KAAI,SAAU2H,GAClD,OAAOA,EAAIuzJ,KAqBf,GAjBI7B,IAAiBD,GACnBlO,EAAOyC,KAAK,sBAGVsG,EAAS/4J,SAAWs+J,IAClBtO,EAAOjzG,OAAOs8G,eAAerJ,EAAOsJ,gBACxCtJ,EAAOyC,KAAK,yBAGVqE,EAAW92J,SAAWu+J,GACxBvO,EAAOyC,KAAK,0BAGV11G,EAAO05G,qBACTzG,EAAOiQ,sBAGJhC,IAAclhH,EAAO81G,UAA8B,UAAlB91G,EAAOs8F,QAAwC,SAAlBt8F,EAAOs8F,QAAoB,CAC5F,IAAI6mB,EAAsB,GAAGzlJ,OAAOsiC,EAAO++G,uBAAwB,mBAC/DqE,EAA6BnQ,EAAO4N,IAAIziD,SAAS+kD,GAEjD/B,GAAgBphH,EAAO8+G,wBACpBsE,GAA4BnQ,EAAO4N,IAAInjD,SAASylD,GAC5CC,GACTnQ,EAAO4N,IAAI9iD,YAAYolD,MiB/S3BE,iBEXa,SAA0B/nD,GACvC,IAII97G,EAJAyzJ,EAAS51I,KACTimJ,EAAe,GACfpC,EAAYjO,EAAOkI,SAAWlI,EAAOjzG,OAAOm7G,QAAQ1yG,QACpDpI,EAAY,EAGK,kBAAVi7D,EACT23C,EAAO4F,cAAcv9C,IACF,IAAVA,GACT23C,EAAO4F,cAAc5F,EAAOjzG,OAAOs7D,OAGrC,IAAIioD,EAAkB,SAAyB37J,GAC7C,OAAIs5J,EACKjO,EAAOmI,OAAOjtI,QAAO,SAAU+I,GACpC,OAAO5a,SAAS4a,EAAG+uB,aAAa,2BAA4B,MAAQr+C,KACnE,GAGEqrJ,EAAOmI,OAAO5rJ,GAAG5H,GAAO,IAIjC,GAAoC,SAAhCqrJ,EAAOjzG,OAAOk8G,eAA4BjJ,EAAOjzG,OAAOk8G,cAAgB,EAC1E,GAAIjJ,EAAOjzG,OAAOm8G,gBACflJ,EAAOuQ,eAAiB,EAAE,KAAKv8J,MAAK,SAAUwyI,GAC7C6pB,EAAavgJ,KAAK02H,WAGpB,IAAKj6I,EAAI,EAAGA,EAAIgK,KAAKs/C,KAAKmqG,EAAOjzG,OAAOk8G,eAAgB18J,GAAK,EAAG,CAC9D,IAAIoI,EAAQqrJ,EAAOuC,YAAch2J,EACjC,GAAIoI,EAAQqrJ,EAAOmI,OAAOn4J,SAAWi+J,EAAW,MAChDoC,EAAavgJ,KAAKwgJ,EAAgB37J,SAItC07J,EAAavgJ,KAAKwgJ,EAAgBtQ,EAAOuC,cAI3C,IAAKh2J,EAAI,EAAGA,EAAI8jK,EAAargK,OAAQzD,GAAK,EACxC,GAA+B,qBAApB8jK,EAAa9jK,GAAoB,CAC1C,IAAI4kB,EAASk/I,EAAa9jK,GAAGw3G,aAC7B32D,EAAYj8B,EAASi8B,EAAYj8B,EAASi8B,GAK1CA,GAA2B,IAAdA,IAAiB4yG,EAAO6F,WAAW1uD,IAAI,SAAU,GAAG1sF,OAAO2iC,EAAW,QFrCvF6iH,mBGba,WAIb,IAHA,IACI9H,EADS/9I,KACO+9I,OAEX57J,EAAI,EAAGA,EAAI47J,EAAOn4J,OAAQzD,GAAK,EACtC47J,EAAO57J,GAAGikK,kBAJCpmJ,KAI0B8zB,eAAiBiqH,EAAO57J,GAAGoxD,WAAawqG,EAAO57J,GAAGqwI,WHSzF6zB,qBIba,SAA8B7+I,QACzB,IAAdA,IACFA,EAAYxH,MAAQA,KAAKwH,WAAa,GAGxC,IAAIouI,EAAS51I,KACT2iC,EAASizG,EAAOjzG,OAChBo7G,EAASnI,EAAOmI,OAChB5iI,EAAMy6H,EAAO+E,aACbgE,EAAW/I,EAAO+I,SACtB,GAAsB,IAAlBZ,EAAOn4J,OAAX,CAC2C,qBAAhCm4J,EAAO,GAAGqI,mBAAmCxQ,EAAOiQ,qBAC/D,IAAIS,GAAgB9+I,EAChB2T,IAAKmrI,EAAe9+I,GAExBu2I,EAAOr9C,YAAY/9D,EAAOo/G,mBAC1BnM,EAAO2Q,qBAAuB,GAC9B3Q,EAAOuQ,cAAgB,GAEvB,IAAK,IAAIhkK,EAAI,EAAGA,EAAI47J,EAAOn4J,OAAQzD,GAAK,EAAG,CACzC,IAAIi6I,EAAQ2hB,EAAO57J,GACfqkK,EAAcpqB,EAAMgqB,kBAEpBzjH,EAAO81G,SAAW91G,EAAOm8G,iBAC3B0H,GAAezI,EAAO,GAAGqI,mBAG3B,IAAIK,GAAiBH,GAAgB3jH,EAAOm8G,eAAiBlJ,EAAOqF,eAAiB,GAAKuL,IAAgBpqB,EAAM4oB,gBAAkBriH,EAAO69G,cACrIkG,GAAyBJ,EAAe3H,EAAS,IAAMh8G,EAAOm8G,eAAiBlJ,EAAOqF,eAAiB,GAAKuL,IAAgBpqB,EAAM4oB,gBAAkBriH,EAAO69G,cAC3JmG,IAAgBL,EAAeE,GAC/BI,EAAaD,EAAc/Q,EAAO0H,gBAAgBn7J,IACtCwkK,GAAe,GAAKA,EAAc/Q,EAAO3yI,KAAO,GAAK2jJ,EAAa,GAAKA,GAAchR,EAAO3yI,MAAQ0jJ,GAAe,GAAKC,GAAchR,EAAO3yI,QAG3J2yI,EAAOuQ,cAAczgJ,KAAK02H,GAC1BwZ,EAAO2Q,qBAAqB7gJ,KAAKvjB,GACjC47J,EAAO5rJ,GAAGhQ,GAAGk+G,SAAS19D,EAAOo/G,oBAG/B3lB,EAAMt5G,SAAW3H,GAAOsrI,EAAgBA,EACxCrqB,EAAMyqB,iBAAmB1rI,GAAOurI,EAAwBA,EAG1D9Q,EAAOuQ,cAAgB,EAAEvQ,EAAOuQ,iBJ7BhC1J,eKfa,SAAwBj1I,GACrC,IAAIouI,EAAS51I,KAEb,GAAyB,qBAAdwH,EAA2B,CACpC,IAAIs/I,EAAalR,EAAO+E,cAAgB,EAAI,EAE5CnzI,EAAYouI,GAAUA,EAAOpuI,WAAaouI,EAAOpuI,UAAYs/I,GAAc,EAG7E,IAAInkH,EAASizG,EAAOjzG,OAChB48G,EAAiB3J,EAAOoF,eAAiBpF,EAAOqF,eAChDn4H,EAAW8yH,EAAO9yH,SAClB+6H,EAAcjI,EAAOiI,YACrBG,EAAQpI,EAAOoI,MACf+I,EAAelJ,EACfmJ,EAAShJ,EAEU,IAAnBuB,GACFz8H,EAAW,EACX+6H,GAAc,EACdG,GAAQ,IAGRH,GADA/6H,GAAYtb,EAAYouI,EAAOqF,gBAAkBsE,IACvB,EAC1BvB,EAAQl7H,GAAY,GAGtBjgC,OAAO6c,OAAOk2I,EAAQ,CACpB9yH,SAAUA,EACV+6H,YAAaA,EACbG,MAAOA,KAELr7G,EAAO05G,qBAAuB15G,EAAOm8G,gBAAkBn8G,EAAOy9G,aAAYxK,EAAOyQ,qBAAqB7+I,GAEtGq2I,IAAgBkJ,GAClBnR,EAAOyC,KAAK,yBAGV2F,IAAUgJ,GACZpR,EAAOyC,KAAK,oBAGV0O,IAAiBlJ,GAAemJ,IAAWhJ,IAC7CpI,EAAOyC,KAAK,YAGdzC,EAAOyC,KAAK,WAAYv1H,IL9BxBy5H,oBMhBa,WACb,IAQIzgB,EARA8Z,EAAS51I,KACT+9I,EAASnI,EAAOmI,OAChBp7G,EAASizG,EAAOjzG,OAChB84G,EAAa7F,EAAO6F,WACpBtD,EAAcvC,EAAOuC,YACrB8O,EAAYrR,EAAOqR,UACnBpD,EAAYjO,EAAOkI,SAAWn7G,EAAOm7G,QAAQ1yG,QACjD2yG,EAAOr9C,YAAY,GAAGrgG,OAAOsiC,EAAOk/G,iBAAkB,KAAKxhJ,OAAOsiC,EAAOs/G,eAAgB,KAAK5hJ,OAAOsiC,EAAOw/G,eAAgB,KAAK9hJ,OAAOsiC,EAAOm/G,0BAA2B,KAAKzhJ,OAAOsiC,EAAOu/G,wBAAyB,KAAK7hJ,OAAOsiC,EAAOy/G,2BAIvOtmB,EADE+nB,EACYjO,EAAO6F,WAAW7+D,KAAK,IAAIv8E,OAAOsiC,EAAOg/G,WAAY,8BAA+BthJ,OAAO83I,EAAa,OAExG4F,EAAO5rJ,GAAGgmJ,IAId93C,SAAS19D,EAAOk/G,kBAExBl/G,EAAO/tB,OAELknH,EAAY/6B,SAASp+D,EAAOq/G,qBAC9BvG,EAAW7oE,SAAS,IAAIvyE,OAAOsiC,EAAOg/G,WAAY,UAAUthJ,OAAOsiC,EAAOq/G,oBAAqB,+BAAgC3hJ,OAAO4mJ,EAAW,OAAQ5mD,SAAS19D,EAAOm/G,2BAEzKrG,EAAW7oE,SAAS,IAAIvyE,OAAOsiC,EAAOg/G,WAAY,KAAKthJ,OAAOsiC,EAAOq/G,oBAAqB,8BAA+B3hJ,OAAO4mJ,EAAW,OAAQ5mD,SAAS19D,EAAOm/G,4BAKvK,IAAIzoB,EAAYyC,EAAY/1C,QAAQ,IAAI1lF,OAAOsiC,EAAOg/G,aAAaxvJ,GAAG,GAAGkuG,SAAS19D,EAAOs/G,gBAErFt/G,EAAO/tB,MAA6B,IAArBykH,EAAUzzI,SAC3ByzI,EAAY0kB,EAAO5rJ,GAAG,IACZkuG,SAAS19D,EAAOs/G,gBAI5B,IAAI3oB,EAAYwC,EAAYn2C,QAAQ,IAAItlF,OAAOsiC,EAAOg/G,aAAaxvJ,GAAG,GAAGkuG,SAAS19D,EAAOw/G,gBAErFx/G,EAAO/tB,MAA6B,IAArB0kH,EAAU1zI,SAC3B0zI,EAAYykB,EAAO5rJ,IAAI,IACbkuG,SAAS19D,EAAOw/G,gBAGxBx/G,EAAO/tB,OAELykH,EAAUt4B,SAASp+D,EAAOq/G,qBAC5BvG,EAAW7oE,SAAS,IAAIvyE,OAAOsiC,EAAOg/G,WAAY,UAAUthJ,OAAOsiC,EAAOq/G,oBAAqB,+BAAgC3hJ,OAAOg5H,EAAUv7C,KAAK,2BAA4B,OAAQuiB,SAAS19D,EAAOu/G,yBAEzMzG,EAAW7oE,SAAS,IAAIvyE,OAAOsiC,EAAOg/G,WAAY,KAAKthJ,OAAOsiC,EAAOq/G,oBAAqB,8BAA+B3hJ,OAAOg5H,EAAUv7C,KAAK,2BAA4B,OAAQuiB,SAAS19D,EAAOu/G,yBAGjM5oB,EAAUv4B,SAASp+D,EAAOq/G,qBAC5BvG,EAAW7oE,SAAS,IAAIvyE,OAAOsiC,EAAOg/G,WAAY,UAAUthJ,OAAOsiC,EAAOq/G,oBAAqB,+BAAgC3hJ,OAAOi5H,EAAUx7C,KAAK,2BAA4B,OAAQuiB,SAAS19D,EAAOy/G,yBAEzM3G,EAAW7oE,SAAS,IAAIvyE,OAAOsiC,EAAOg/G,WAAY,KAAKthJ,OAAOsiC,EAAOq/G,oBAAqB,8BAA+B3hJ,OAAOi5H,EAAUx7C,KAAK,2BAA4B,OAAQuiB,SAAS19D,EAAOy/G,0BAIvMxM,EAAOsR,qBN3CP5K,kBOjBa,SAA2B6K,GACxC,IASIzB,EATA9P,EAAS51I,KACTwH,EAAYouI,EAAO+E,aAAe/E,EAAOpuI,WAAaouI,EAAOpuI,UAC7Dk1I,EAAa9G,EAAO8G,WACpBiC,EAAW/I,EAAO+I,SAClBh8G,EAASizG,EAAOjzG,OAChBy1G,EAAgBxC,EAAOuC,YACvBiP,EAAoBxR,EAAOqR,UAC3BI,EAAoBzR,EAAO8P,UAC3BvN,EAAcgP,EAGlB,GAA2B,qBAAhBhP,EAA6B,CACtC,IAAK,IAAIh2J,EAAI,EAAGA,EAAIu6J,EAAW92J,OAAQzD,GAAK,EACT,qBAAtBu6J,EAAWv6J,EAAI,GACpBqlB,GAAak1I,EAAWv6J,IAAMqlB,EAAYk1I,EAAWv6J,EAAI,IAAMu6J,EAAWv6J,EAAI,GAAKu6J,EAAWv6J,IAAM,EACtGg2J,EAAch2J,EACLqlB,GAAak1I,EAAWv6J,IAAMqlB,EAAYk1I,EAAWv6J,EAAI,KAClEg2J,EAAch2J,EAAI,GAEXqlB,GAAak1I,EAAWv6J,KACjCg2J,EAAch2J,GAKdwgD,EAAOk+G,sBACL1I,EAAc,GAA4B,qBAAhBA,KAA6BA,EAAc,GAI7E,GAAIwG,EAAS7zJ,QAAQ0c,IAAc,EACjCk+I,EAAY/G,EAAS7zJ,QAAQ0c,OACxB,CACL,IAAI+L,EAAOpnB,KAAK4B,IAAI40C,EAAO46G,mBAAoBpF,GAC/CuN,EAAYnyI,EAAOpnB,KAAKkB,OAAO8qJ,EAAc5kI,GAAQovB,EAAO66G,gBAK9D,GAFIkI,GAAa/G,EAAS/4J,SAAQ8/J,EAAY/G,EAAS/4J,OAAS,GAE5DuyJ,IAAgBC,EAApB,CAUA,IAAI6O,EAAYhoJ,SAAS22I,EAAOmI,OAAO5rJ,GAAGgmJ,GAAar6D,KAAK,4BAA8Bq6D,EAAa,IACvGt1J,OAAO6c,OAAOk2I,EAAQ,CACpB8P,UAAWA,EACXuB,UAAWA,EACX7O,cAAeA,EACfD,YAAaA,IAEfvC,EAAOyC,KAAK,qBACZzC,EAAOyC,KAAK,mBAER+O,IAAsBH,GACxBrR,EAAOyC,KAAK,oBAGVzC,EAAO0R,aAAe1R,EAAOjzG,OAAO2/G,qBACtC1M,EAAOyC,KAAK,oBAxBRqN,IAAc2B,IAChBzR,EAAO8P,UAAYA,EACnB9P,EAAOyC,KAAK,qBPzBhB2E,mBQjBa,SAA4B12J,GACzC,IAIIm+I,EAJAmR,EAAS51I,KACT2iC,EAASizG,EAAOjzG,OAChBy5F,EAAQ,EAAE91I,GAAGo/F,QAAQ,IAAIrlF,OAAOsiC,EAAOg/G,aAAa,GACpD4F,GAAa,EAGjB,GAAInrB,EACF,IAAK,IAAIj6I,EAAI,EAAGA,EAAIyzJ,EAAOmI,OAAOn4J,OAAQzD,GAAK,EAC7C,GAAIyzJ,EAAOmI,OAAO57J,KAAOi6I,EAAO,CAC9BmrB,GAAa,EACb9iB,EAAatiJ,EACb,MAKN,IAAIi6I,IAASmrB,EAWX,OAFA3R,EAAO4R,kBAAev0J,OACtB2iJ,EAAO6R,kBAAex0J,GATtB2iJ,EAAO4R,aAAeprB,EAElBwZ,EAAOkI,SAAWlI,EAAOjzG,OAAOm7G,QAAQ1yG,QAC1CwqG,EAAO6R,aAAexoJ,SAAS,EAAEm9H,GAAOt+C,KAAK,2BAA4B,IAEzE83D,EAAO6R,aAAehjB,EAQtB9hG,EAAOu+G,0BAA+CjuJ,IAAxB2iJ,EAAO6R,cAA8B7R,EAAO6R,eAAiB7R,EAAOuC,aACpGvC,EAAOsL,wBTWT15I,UUvCa,CACbykI,aCLa,SAA4B9iH,QAC5B,IAATA,IACFA,EAAOnpB,KAAK8zB,eAAiB,IAAM,KAGrC,IAAI8hH,EAAS51I,KACT2iC,EAASizG,EAAOjzG,OAChBxnB,EAAMy6H,EAAO+E,aACbnzI,EAAYouI,EAAOpuI,UACnBi0I,EAAa7F,EAAO6F,WAExB,GAAI94G,EAAO29G,iBACT,OAAOnlI,GAAO3T,EAAYA,EAG5B,GAAIm7B,EAAO81G,QACT,OAAOjxI,EAGT,IAAIw0I,EAAmB/P,EAAawP,EAAW,GAAItyH,GAEnD,OADIhO,IAAK6gI,GAAoBA,GACtBA,GAAoB,GDf3B3e,aEPa,SAAsB71H,EAAWkgJ,GAC9C,IAAI9R,EAAS51I,KACTmb,EAAMy6H,EAAO+E,aACbh4G,EAASizG,EAAOjzG,OAChB84G,EAAa7F,EAAO6F,WACpBzF,EAAYJ,EAAOI,UACnBlzH,EAAW8yH,EAAO9yH,SAClBr1B,EAAI,EACJC,EAAI,EAGJkoJ,EAAO9hH,eACTrmC,EAAI0tB,GAAO3T,EAAYA,EAEvB9Z,EAAI8Z,EAGFm7B,EAAOo+G,eACTtzJ,EAAItB,KAAKkB,MAAMI,GACfC,EAAIvB,KAAKkB,MAAMK,IAGbi1C,EAAO81G,QACTzC,EAAUJ,EAAO9hH,eAAiB,aAAe,aAAe8hH,EAAO9hH,gBAAkBrmC,GAAKC,EACpFi1C,EAAO29G,kBACjB7E,EAAWpwB,UAAU,eAAehrH,OAAO5S,EAAG,QAAQ4S,OAAO3S,EAAG,QAAQ2S,OAhBlE,EAgB4E,QAGpFu1I,EAAO0J,kBAAoB1J,EAAOpuI,UAClCouI,EAAOpuI,UAAYouI,EAAO9hH,eAAiBrmC,EAAIC,EAG/C,IAAI6xJ,EAAiB3J,EAAOoF,eAAiBpF,EAAOqF,gBAE7B,IAAnBsE,EACY,GAEC/3I,EAAYouI,EAAOqF,gBAAkBsE,KAGlCz8H,GAClB8yH,EAAO6G,eAAej1I,GAGxBouI,EAAOyC,KAAK,eAAgBzC,EAAOpuI,UAAWkgJ,IFpC9CzM,aGRa,WACb,OAAQj7I,KAAK2+I,SAAS,IHQtB3D,aITa,WACb,OAAQh7I,KAAK2+I,SAAS3+I,KAAK2+I,SAAS/4J,OAAS,IJS7C+hK,YzBPa,SAAqBngJ,EAAWy2F,EAAOi6C,EAAc0P,EAAiBC,QACjE,IAAdrgJ,IACFA,EAAY,QAGA,IAAVy2F,IACFA,EAAQj+F,KAAK2iC,OAAOs7D,YAGD,IAAjBi6C,IACFA,GAAe,QAGO,IAApB0P,IACFA,GAAkB,GAGpB,IAAIhS,EAAS51I,KACT2iC,EAASizG,EAAOjzG,OAChBqzG,EAAYJ,EAAOI,UAEvB,GAAIJ,EAAO2C,WAAa51G,EAAO61G,+BAC7B,OAAO,EAGT,IAEIsP,EAFA7M,EAAerF,EAAOqF,eACtBD,EAAepF,EAAOoF,eAM1B,GAJiD8M,EAA7CF,GAAmBpgJ,EAAYyzI,EAA6BA,EAAsB2M,GAAmBpgJ,EAAYwzI,EAA6BA,EAAiCxzI,EAEnLouI,EAAO6G,eAAeqL,GAElBnlH,EAAO81G,QAAS,CAClB,IAAIsP,EAAMnS,EAAO9hH,eAEjB,GAAc,IAAVmqE,EACF+3C,EAAU+R,EAAM,aAAe,cAAgBD,MAC1C,CACL,IAAIE,EAEJ,IAAKpS,EAAOriE,QAAQijE,aAMlB,OALAb,EAAqB,CACnBC,OAAQA,EACRC,gBAAiBiS,EACjBhS,KAAMiS,EAAM,OAAS,SAEhB,EAGT/R,EAAUpqC,UAAoC,EAA1Bo8C,EAAsB,GAAyCD,EAAM,OAAS,OAAQD,GAAe,EAAgBE,EAAqB,WAAY,UAAWA,IAGvL,OAAO,EA2CT,OAxCc,IAAV/pD,GACF23C,EAAO4F,cAAc,GACrB5F,EAAOvY,aAAayqB,GAEhB5P,IACFtC,EAAOyC,KAAK,wBAAyBp6C,EAAO4pD,GAC5CjS,EAAOyC,KAAK,oBAGdzC,EAAO4F,cAAcv9C,GACrB23C,EAAOvY,aAAayqB,GAEhB5P,IACFtC,EAAOyC,KAAK,wBAAyBp6C,EAAO4pD,GAC5CjS,EAAOyC,KAAK,oBAGTzC,EAAO2C,YACV3C,EAAO2C,WAAY,EAEd3C,EAAOqS,oCACVrS,EAAOqS,kCAAoC,SAAuB3hK,GAC3DsvJ,IAAUA,EAAOsH,WAClB52J,EAAEZ,SAAWsa,OACjB41I,EAAO6F,WAAW,GAAG9hI,oBAAoB,gBAAiBi8H,EAAOqS,mCACjErS,EAAO6F,WAAW,GAAG9hI,oBAAoB,sBAAuBi8H,EAAOqS,mCACvErS,EAAOqS,kCAAoC,YACpCrS,EAAOqS,kCAEV/P,GACFtC,EAAOyC,KAAK,oBAKlBzC,EAAO6F,WAAW,GAAG/hI,iBAAiB,gBAAiBk8H,EAAOqS,mCAC9DrS,EAAO6F,WAAW,GAAG/hI,iBAAiB,sBAAuBk8H,EAAOqS,sCAIjE,IerDPv3H,We1Ca,CACb8qH,cCJa,SAAuB55H,EAAU8lI,GAC9C,IAAI9R,EAAS51I,KAER41I,EAAOjzG,OAAO81G,SACjB7C,EAAO6F,WAAW/qH,WAAW9O,GAG/Bg0H,EAAOyC,KAAK,gBAAiBz2H,EAAU8lI,IDFvCQ,gBEJa,SAAyBhQ,EAAcp8H,QAC/B,IAAjBo8H,IACFA,GAAe,GAGjB,IAAItC,EAAS51I,KACT2iC,EAASizG,EAAOjzG,OAChBA,EAAO81G,UAEP91G,EAAOy9G,YACTxK,EAAOoQ,mBAGT/N,EAAe,CACbrC,OAAQA,EACRsC,aAAcA,EACdp8H,UAAWA,EACXl1B,KAAM,YFZRosJ,cGLa,SAAuBkF,EAAcp8H,QAC7B,IAAjBo8H,IACFA,GAAe,GAGjB,IAAItC,EAAS51I,KACT2iC,EAASizG,EAAOjzG,OACpBizG,EAAO2C,WAAY,EACf51G,EAAO81G,UACX7C,EAAO4F,cAAc,GACrBvD,EAAe,CACbrC,OAAQA,EACRsC,aAAcA,EACdp8H,UAAWA,EACXl1B,KAAM,WlB+BRw1I,MmBvCa,CACb+hB,QhCHa,SAAiB5zJ,EAAO0zG,EAAOi6C,EAAc2P,EAAUhmI,GAapE,QAZc,IAAVt3B,IACFA,EAAQ,QAGI,IAAV0zG,IACFA,EAAQj+F,KAAK2iC,OAAOs7D,YAGD,IAAjBi6C,IACFA,GAAe,GAGI,kBAAV3tJ,GAAuC,kBAAVA,EACtC,MAAM,IAAIimB,MAAM,2EAA2EnQ,OAAO,EAAQ9V,GAAQ,aAGpH,GAAqB,kBAAVA,EAAoB,CAK7B,IAAI49J,EAAgBlpJ,SAAS1U,EAAO,IASpC,IAFoBnB,SAAS++J,GAG3B,MAAM,IAAI33I,MAAM,sEAAsEnQ,OAAO9V,EAAO,aAKtGA,EAAQ49J,EAGV,IAAIvS,EAAS51I,KACTykI,EAAal6I,EACbk6I,EAAa,IAAGA,EAAa,GACjC,IAAI9hG,EAASizG,EAAOjzG,OAChBg8G,EAAW/I,EAAO+I,SAClBjC,EAAa9G,EAAO8G,WACpBtE,EAAgBxC,EAAOwC,cACvBD,EAAcvC,EAAOuC,YACrBh9H,EAAMy6H,EAAO+E,aACb3E,EAAYJ,EAAOI,UACnB5qG,EAAUwqG,EAAOxqG,QAErB,GAAIwqG,EAAO2C,WAAa51G,EAAO61G,iCAAmCptG,IAAYy8G,IAAahmI,EACzF,OAAO,EAGT,IAAItO,EAAOpnB,KAAK4B,IAAI6nJ,EAAOjzG,OAAO46G,mBAAoB9Y,GAClDihB,EAAYnyI,EAAOpnB,KAAKkB,OAAOo3I,EAAalxH,GAAQqiI,EAAOjzG,OAAO66G,gBAClEkI,GAAa/G,EAAS/4J,SAAQ8/J,EAAY/G,EAAS/4J,OAAS,IAE3DuyJ,GAAex1G,EAAOs9G,cAAgB,MAAQ7H,GAAiB,IAAMF,GACxEtC,EAAOyC,KAAK,0BAGd,IAiCIv8H,EAjCAtU,GAAam3I,EAAS+G,GAI1B,GAFA9P,EAAO6G,eAAej1I,GAElBm7B,EAAOk+G,oBACT,IAAK,IAAI1+J,EAAI,EAAGA,EAAIu6J,EAAW92J,OAAQzD,GAAK,EAAG,CAC7C,IAAIimK,GAAuBj8J,KAAKkB,MAAkB,IAAZma,GAClC6gJ,EAAiBl8J,KAAKkB,MAAsB,IAAhBqvJ,EAAWv6J,IACvCmmK,EAAqBn8J,KAAKkB,MAA0B,IAApBqvJ,EAAWv6J,EAAI,IAElB,qBAAtBu6J,EAAWv6J,EAAI,GACpBimK,GAAuBC,GAAkBD,EAAsBE,GAAsBA,EAAqBD,GAAkB,EAC9H5jB,EAAatiJ,EACJimK,GAAuBC,GAAkBD,EAAsBE,IACxE7jB,EAAatiJ,EAAI,GAEVimK,GAAuBC,IAChC5jB,EAAatiJ,GAMnB,GAAIyzJ,EAAO0R,aAAe7iB,IAAe0T,EAAa,CACpD,IAAKvC,EAAOgG,gBAAkBp0I,EAAYouI,EAAOpuI,WAAaA,EAAYouI,EAAOqF,eAC/E,OAAO,EAGT,IAAKrF,EAAOiG,gBAAkBr0I,EAAYouI,EAAOpuI,WAAaA,EAAYouI,EAAOoF,iBAC1E7C,GAAe,KAAO1T,EAAY,OAAO,EAOlD,GAF8B3oH,EAA1B2oH,EAAa0T,EAAyB,OAAgB1T,EAAa0T,EAAyB,OAAwB,QAEpHh9H,IAAQ3T,IAAcouI,EAAOpuI,YAAc2T,GAAO3T,IAAcouI,EAAOpuI,UAkBzE,OAjBAouI,EAAO0G,kBAAkB7X,GAErB9hG,EAAOy9G,YACTxK,EAAOoQ,mBAGTpQ,EAAO2G,sBAEe,UAAlB55G,EAAOs8F,QACT2W,EAAOvY,aAAa71H,GAGJ,UAAdsU,IACF85H,EAAOsS,gBAAgBhQ,EAAcp8H,GACrC85H,EAAO5C,cAAckF,EAAcp8H,KAG9B,EAGT,GAAI6mB,EAAO81G,QAAS,CAClB,IAAIsP,EAAMnS,EAAO9hH,eACbzwC,EAAI83B,EAAM3T,GAAaA,EAE3B,GAAc,IAAVy2F,EAAa,CACf,IAAI4lD,EAAYjO,EAAOkI,SAAWlI,EAAOjzG,OAAOm7G,QAAQ1yG,QAEpDy4G,IACFjO,EAAOI,UAAU9yI,MAAM+yI,eAAiB,OACxCL,EAAO2S,mBAAoB,GAG7BvS,EAAU+R,EAAM,aAAe,aAAe1kK,EAE1CwgK,GACFp8J,uBAAsB,WACpBmuJ,EAAOI,UAAU9yI,MAAM+yI,eAAiB,GACxCL,EAAO4S,yBAA0B,SAGhC,CACL,IAAIR,EAEJ,IAAKpS,EAAOriE,QAAQijE,aAMlB,OALAb,EAAqB,CACnBC,OAAQA,EACRC,eAAgBxyJ,EAChByyJ,KAAMiS,EAAM,OAAS,SAEhB,EAGT/R,EAAUpqC,UAAoC,EAA1Bo8C,EAAsB,GAAyCD,EAAM,OAAS,MAAO1kK,GAAI,EAAgB2kK,EAAqB,WAAY,UAAWA,IAG3K,OAAO,EA+BT,OA5BApS,EAAO4F,cAAcv9C,GACrB23C,EAAOvY,aAAa71H,GACpBouI,EAAO0G,kBAAkB7X,GACzBmR,EAAO2G,sBACP3G,EAAOyC,KAAK,wBAAyBp6C,EAAO4pD,GAC5CjS,EAAOsS,gBAAgBhQ,EAAcp8H,GAEvB,IAAVmiF,EACF23C,EAAO5C,cAAckF,EAAcp8H,GACzB85H,EAAO2C,YACjB3C,EAAO2C,WAAY,EAEd3C,EAAO6S,gCACV7S,EAAO6S,8BAAgC,SAAuBniK,GACvDsvJ,IAAUA,EAAOsH,WAClB52J,EAAEZ,SAAWsa,OACjB41I,EAAO6F,WAAW,GAAG9hI,oBAAoB,gBAAiBi8H,EAAO6S,+BACjE7S,EAAO6F,WAAW,GAAG9hI,oBAAoB,sBAAuBi8H,EAAO6S,+BACvE7S,EAAO6S,8BAAgC,YAChC7S,EAAO6S,8BACd7S,EAAO5C,cAAckF,EAAcp8H,MAIvC85H,EAAO6F,WAAW,GAAG/hI,iBAAiB,gBAAiBk8H,EAAO6S,+BAC9D7S,EAAO6F,WAAW,GAAG/hI,iBAAiB,sBAAuBk8H,EAAO6S,iCAG/D,GgCvLPC,YCTa,SAAqBn+J,EAAO0zG,EAAOi6C,EAAc2P,QAChD,IAAVt9J,IACFA,EAAQ,QAGI,IAAV0zG,IACFA,EAAQj+F,KAAK2iC,OAAOs7D,YAGD,IAAjBi6C,IACFA,GAAe,GAGjB,IAAItC,EAAS51I,KACT2oJ,EAAWp+J,EAMf,OAJIqrJ,EAAOjzG,OAAO/tB,OAChB+zI,GAAY/S,EAAO0L,cAGd1L,EAAOuI,QAAQwK,EAAU1qD,EAAOi6C,EAAc2P,IDVrDe,UETa,SAAmB3qD,EAAOi6C,EAAc2P,QACvC,IAAV5pD,IACFA,EAAQj+F,KAAK2iC,OAAOs7D,YAGD,IAAjBi6C,IACFA,GAAe,GAGjB,IAAItC,EAAS51I,KACTu4I,EAAY3C,EAAO2C,UACnBntG,EAAUwqG,EAAOxqG,QACjBzI,EAASizG,EAAOjzG,OACpB,IAAKyI,EAAS,OAAOwqG,EACrB,IAAIiT,EAAWlmH,EAAO66G,eAEO,SAAzB76G,EAAOk8G,eAAsD,IAA1Bl8G,EAAO66G,gBAAwB76G,EAAO89G,qBAC3EoI,EAAW18J,KAAK6B,IAAI4nJ,EAAOkT,qBAAqB,WAAW,GAAO,IAGpE,IAAIn7G,EAAYioG,EAAOuC,YAAcx1G,EAAO46G,mBAAqB,EAAIsL,EAErE,GAAIlmH,EAAO/tB,KAAM,CACf,GAAI2jI,GAAa51G,EAAO6+G,kBAAmB,OAAO,EAClD5L,EAAO8C,UAEP9C,EAAOmT,YAAcnT,EAAO6F,WAAW,GAAGlI,WAG5C,OAAI5wG,EAAOi7G,QAAUhI,EAAOoI,MACnBpI,EAAOuI,QAAQ,EAAGlgD,EAAOi6C,EAAc2P,GAGzCjS,EAAOuI,QAAQvI,EAAOuC,YAAcxqG,EAAWswD,EAAOi6C,EAAc2P,IFvB3EmB,UGVa,SAAmB/qD,EAAOi6C,EAAc2P,QACvC,IAAV5pD,IACFA,EAAQj+F,KAAK2iC,OAAOs7D,YAGD,IAAjBi6C,IACFA,GAAe,GAGjB,IAAItC,EAAS51I,KACT2iC,EAASizG,EAAOjzG,OAChB41G,EAAY3C,EAAO2C,UACnBoG,EAAW/I,EAAO+I,SAClBjC,EAAa9G,EAAO8G,WACpB/B,EAAe/E,EAAO+E,aAE1B,IADc/E,EAAOxqG,QACP,OAAOwqG,EAErB,GAAIjzG,EAAO/tB,KAAM,CACf,GAAI2jI,GAAa51G,EAAO6+G,kBAAmB,OAAO,EAClD5L,EAAO8C,UAEP9C,EAAOmT,YAAcnT,EAAO6F,WAAW,GAAGlI,WAK5C,SAASh3H,EAAUzb,GACjB,OAAIA,EAAM,GAAW3U,KAAKkB,MAAMlB,KAAKyB,IAAIkT,IAClC3U,KAAKkB,MAAMyT,GAGpB,IAOMmoJ,EAPFb,EAAsB7rI,EAPVo+H,EAAe/E,EAAOpuI,WAAaouI,EAAOpuI,WAQtD0hJ,EAAqBvK,EAASj0J,KAAI,SAAUoW,GAC9C,OAAOyb,EAAUzb,MAEfqoJ,EAAWxK,EAASuK,EAAmBp+J,QAAQs9J,GAAuB,GAElD,qBAAbe,GAA4BxmH,EAAO81G,UAE5CkG,EAAS3wI,SAAQ,SAAUu3I,EAAMG,GAC3B0C,GAAuB7C,IAEzB0D,EAAgBvD,MAIS,qBAAlBuD,IACTE,EAAWxK,EAASsK,EAAgB,EAAIA,EAAgB,EAAIA,KAIhE,IAAIG,EAAY,EAYhB,GAVwB,qBAAbD,KACTC,EAAY1M,EAAW5xJ,QAAQq+J,IACf,IAAGC,EAAYxT,EAAOuC,YAAc,GAEvB,SAAzBx1G,EAAOk8G,eAAsD,IAA1Bl8G,EAAO66G,gBAAwB76G,EAAO89G,qBAC3E2I,EAAYA,EAAYxT,EAAOkT,qBAAqB,YAAY,GAAQ,EACxEM,EAAYj9J,KAAK6B,IAAIo7J,EAAW,KAIhCzmH,EAAOi7G,QAAUhI,EAAOiI,YAAa,CACvC,IAAI3rF,EAAY0jF,EAAOjzG,OAAOm7G,SAAWlI,EAAOjzG,OAAOm7G,QAAQ1yG,SAAWwqG,EAAOkI,QAAUlI,EAAOkI,QAAQC,OAAOn4J,OAAS,EAAIgwJ,EAAOmI,OAAOn4J,OAAS,EACrJ,OAAOgwJ,EAAOuI,QAAQjsF,EAAW+rC,EAAOi6C,EAAc2P,GAGxD,OAAOjS,EAAOuI,QAAQiL,EAAWnrD,EAAOi6C,EAAc2P,IH1DtDwB,WIXa,SAAoBprD,EAAOi6C,EAAc2P,GAUtD,YATc,IAAV5pD,IACFA,EAAQj+F,KAAK2iC,OAAOs7D,YAGD,IAAjBi6C,IACFA,GAAe,GAGJl4I,KACCm+I,QADDn+I,KACgBm4I,YAAal6C,EAAOi6C,EAAc2P,IJE/DyB,eKZa,SAAwBrrD,EAAOi6C,EAAc2P,EAAUtwB,QACtD,IAAVt5B,IACFA,EAAQj+F,KAAK2iC,OAAOs7D,YAGD,IAAjBi6C,IACFA,GAAe,QAGC,IAAd3gB,IACFA,EAAY,IAGd,IAAIqe,EAAS51I,KACTzV,EAAQqrJ,EAAOuC,YACf5kI,EAAOpnB,KAAK4B,IAAI6nJ,EAAOjzG,OAAO46G,mBAAoBhzJ,GAClDm7J,EAAYnyI,EAAOpnB,KAAKkB,OAAO9C,EAAQgpB,GAAQqiI,EAAOjzG,OAAO66G,gBAC7Dh2I,EAAYouI,EAAO+E,aAAe/E,EAAOpuI,WAAaouI,EAAOpuI,UAEjE,GAAIA,GAAaouI,EAAO+I,SAAS+G,GAAY,CAG3C,IAAI6D,EAAc3T,EAAO+I,SAAS+G,GAG9Bl+I,EAAY+hJ,GAFD3T,EAAO+I,SAAS+G,EAAY,GAED6D,GAAehyB,IACvDhtI,GAASqrJ,EAAOjzG,OAAO66G,oBAEpB,CAGL,IAAI2L,EAAWvT,EAAO+I,SAAS+G,EAAY,GAGvCl+I,EAAY2hJ,IAFGvT,EAAO+I,SAAS+G,GAESyD,GAAY5xB,IACtDhtI,GAASqrJ,EAAOjzG,OAAO66G,gBAM3B,OAFAjzJ,EAAQ4B,KAAK6B,IAAIzD,EAAO,GACxBA,EAAQ4B,KAAK4B,IAAIxD,EAAOqrJ,EAAO8G,WAAW92J,OAAS,GAC5CgwJ,EAAOuI,QAAQ5zJ,EAAO0zG,EAAOi6C,EAAc2P,IL5BlD3G,oBMZa,WACb,IAKI+F,EALArR,EAAS51I,KACT2iC,EAASizG,EAAOjzG,OAChB84G,EAAa7F,EAAO6F,WACpBoD,EAAyC,SAAzBl8G,EAAOk8G,cAA2BjJ,EAAOkT,uBAAyBnmH,EAAOk8G,cACzF2K,EAAe5T,EAAO6R,aAG1B,GAAI9kH,EAAO/tB,KAAM,CACf,GAAIghI,EAAO2C,UAAW,OACtB0O,EAAYhoJ,SAAS,EAAE22I,EAAO4R,cAAc1pE,KAAK,2BAA4B,IAEzEn7C,EAAOm8G,eACL0K,EAAe5T,EAAO0L,aAAezC,EAAgB,GAAK2K,EAAe5T,EAAOmI,OAAOn4J,OAASgwJ,EAAO0L,aAAezC,EAAgB,GACxIjJ,EAAO8C,UACP8Q,EAAe/N,EAAW7oE,SAAS,IAAIvyE,OAAOsiC,EAAOg/G,WAAY,8BAA+BthJ,OAAO4mJ,EAAW,YAAa5mJ,OAAOsiC,EAAOq/G,oBAAqB,MAAM7vJ,GAAG,GAAG5H,QAC9KiqJ,GAAS,WACPoB,EAAOuI,QAAQqL,OAGjB5T,EAAOuI,QAAQqL,GAERA,EAAe5T,EAAOmI,OAAOn4J,OAASi5J,GAC/CjJ,EAAO8C,UACP8Q,EAAe/N,EAAW7oE,SAAS,IAAIvyE,OAAOsiC,EAAOg/G,WAAY,8BAA+BthJ,OAAO4mJ,EAAW,YAAa5mJ,OAAOsiC,EAAOq/G,oBAAqB,MAAM7vJ,GAAG,GAAG5H,QAC9KiqJ,GAAS,WACPoB,EAAOuI,QAAQqL,OAGjB5T,EAAOuI,QAAQqL,QAGjB5T,EAAOuI,QAAQqL,KzBajB50I,K0B5Ca,CACb60I,WCFa,WACb,IAAI7T,EAAS51I,KACTonC,EAAWspG,IACX/tG,EAASizG,EAAOjzG,OAChB84G,EAAa7F,EAAO6F,WAEpBiO,EAAYjO,EAAW7oE,WAAWhtF,OAAS,EAAI,EAAE61J,EAAW7oE,WAAW,GAAGx8D,YAAcqlI,EAC5FiO,EAAU92E,SAAS,IAAIvyE,OAAOsiC,EAAOg/G,WAAY,KAAKthJ,OAAOsiC,EAAOq/G,sBAAsBp9F,SAC1F,IAAIm5F,EAAS2L,EAAU92E,SAAS,IAAIvyE,OAAOsiC,EAAOg/G,aAElD,GAAIh/G,EAAO4+G,uBAAwB,CACjC,IAAIoI,EAAiBhnH,EAAO66G,eAAiBO,EAAOn4J,OAAS+8C,EAAO66G,eAEpE,GAAImM,IAAmBhnH,EAAO66G,eAAgB,CAC5C,IAAK,IAAIr7J,EAAI,EAAGA,EAAIwnK,EAAgBxnK,GAAK,EAAG,CAC1C,IAAIynK,EAAY,EAAExiH,EAAS6sC,cAAc,QAAQosB,SAAS,GAAGhgG,OAAOsiC,EAAOg/G,WAAY,KAAKthJ,OAAOsiC,EAAOi/G,kBAC1G8H,EAAU9yD,OAAOgzD,GAGnB7L,EAAS2L,EAAU92E,SAAS,IAAIvyE,OAAOsiC,EAAOg/G,cAIrB,SAAzBh/G,EAAOk8G,eAA6Bl8G,EAAO2+G,eAAc3+G,EAAO2+G,aAAevD,EAAOn4J,QAC1FgwJ,EAAO0L,aAAen1J,KAAKs/C,KAAK9hD,WAAWg5C,EAAO2+G,cAAgB3+G,EAAOk8G,cAAe,KACxFjJ,EAAO0L,cAAgB3+G,EAAO0+G,qBAE1BzL,EAAO0L,aAAevD,EAAOn4J,SAC/BgwJ,EAAO0L,aAAevD,EAAOn4J,QAG/B,IAAIikK,EAAgB,GAChBC,EAAe,GACnB/L,EAAOn0J,MAAK,SAAUiwB,EAAItvB,GACxB,IAAI6xI,EAAQ,EAAEviH,GAEVtvB,EAAQqrJ,EAAO0L,cACjBwI,EAAapkJ,KAAKmU,GAGhBtvB,EAAQwzJ,EAAOn4J,QAAU2E,GAASwzJ,EAAOn4J,OAASgwJ,EAAO0L,cAC3DuI,EAAcnkJ,KAAKmU,GAGrBuiH,EAAMt+C,KAAK,0BAA2BvzF,MAGxC,IAAK,IAAIm2B,EAAK,EAAGA,EAAKopI,EAAalkK,OAAQ86B,GAAM,EAC/CgpI,EAAU9yD,OAAO,EAAEkzD,EAAappI,GAAIutE,WAAU,IAAOoS,SAAS19D,EAAOq/G,sBAGvE,IAAK,IAAIpmG,EAAMiuG,EAAcjkK,OAAS,EAAGg2D,GAAO,EAAGA,GAAO,EACxD8tG,EAAU7yD,QAAQ,EAAEgzD,EAAcjuG,GAAKqyC,WAAU,IAAOoS,SAAS19D,EAAOq/G,uBDjD1EtJ,QELa,WACb,IAAI9C,EAAS51I,KACb41I,EAAOyC,KAAK,iBACZ,IAOIsQ,EAPAxQ,EAAcvC,EAAOuC,YACrB4F,EAASnI,EAAOmI,OAChBuD,EAAe1L,EAAO0L,aACtBzF,EAAiBjG,EAAOiG,eACxBD,EAAiBhG,EAAOgG,eACxB+C,EAAW/I,EAAO+I,SAClBxjI,EAAMy6H,EAAO+E,aAEjB/E,EAAOiG,gBAAiB,EACxBjG,EAAOgG,gBAAiB,EACxB,IACIhwG,GADiB+yG,EAASxG,GACHvC,EAAO3J,eAElC,GAAIkM,EAAcmJ,EAChBqH,EAAW5K,EAAOn4J,OAAwB,EAAf07J,EAAmBnJ,EAC9CwQ,GAAYrH,EACO1L,EAAOuI,QAAQwK,EAAU,GAAG,GAAO,IAEzB,IAAT/8G,GAClBgqG,EAAOvY,cAAcliH,GAAOy6H,EAAOpuI,UAAYouI,EAAOpuI,WAAaokC,QAEhE,GAAIusG,GAAe4F,EAAOn4J,OAAS07J,EAAc,CAEtDqH,GAAY5K,EAAOn4J,OAASuyJ,EAAcmJ,EAC1CqH,GAAYrH,EAEQ1L,EAAOuI,QAAQwK,EAAU,GAAG,GAAO,IAEzB,IAAT/8G,GACnBgqG,EAAOvY,cAAcliH,GAAOy6H,EAAOpuI,UAAYouI,EAAOpuI,WAAaokC,GAIvEgqG,EAAOiG,eAAiBA,EACxBjG,EAAOgG,eAAiBA,EACxBhG,EAAOyC,KAAK,YFhCZ0R,YGNa,WACb,IAAInU,EAAS51I,KACTy7I,EAAa7F,EAAO6F,WACpB94G,EAASizG,EAAOjzG,OAChBo7G,EAASnI,EAAOmI,OACpBtC,EAAW7oE,SAAS,IAAIvyE,OAAOsiC,EAAOg/G,WAAY,KAAKthJ,OAAOsiC,EAAOq/G,oBAAqB,MAAM3hJ,OAAOsiC,EAAOg/G,WAAY,KAAKthJ,OAAOsiC,EAAOi/G,kBAAkBh9F,SAC/Jm5F,EAAOx+C,WAAW,6B7B0ClBo8C,W8B9Ca,CACbG,cCHa,SAAuBkO,GACpC,IAAIpU,EAAS51I,KACb,KAAI41I,EAAOriE,QAAQ2oD,QAAU0Z,EAAOjzG,OAAOq+G,eAAiBpL,EAAOjzG,OAAOs8G,eAAiBrJ,EAAOqU,UAAYrU,EAAOjzG,OAAO81G,SAA5H,CACA,IAAI5+H,EAAyC,cAApC+7H,EAAOjzG,OAAOi2G,kBAAoChD,EAAO/7H,GAAK+7H,EAAOI,UAC9En8H,EAAG3W,MAAMg3D,OAAS,OAClBrgD,EAAG3W,MAAMg3D,OAAS8vF,EAAS,WAAa,SDDxCE,gBEJa,WACb,IAAItU,EAAS51I,KAET41I,EAAOriE,QAAQ2oD,OAAS0Z,EAAOjzG,OAAOs8G,eAAiBrJ,EAAOqU,UAAYrU,EAAOjzG,OAAO81G,UAI5F7C,EAA2C,cAApCA,EAAOjzG,OAAOi2G,kBAAoC,KAAO,aAAa11I,MAAMg3D,OAAS,MhC0C5Fp3D,ONwCa,CACbqnJ,aA7BF,WACE,IAAIvU,EAAS51I,KACTonC,EAAWspG,IACX/tG,EAASizG,EAAOjzG,OAChB4wC,EAAUqiE,EAAOriE,QACrBqiE,EAAO8E,aAAe,EAAa/2J,KAAKiyJ,GACxCA,EAAO4G,YAAc,GAAY74J,KAAKiyJ,GACtCA,EAAOuH,WAAa,GAAWx5J,KAAKiyJ,GAEhCjzG,EAAO81G,UACT7C,EAAOyJ,SAAWA,GAAS17J,KAAKiyJ,IAGlCA,EAAO9xI,QAAU,GAAQngB,KAAKiyJ,GAE1BriE,EAAQ2oD,QAAUsjB,KACpBp4G,EAAS1tB,iBAAiB,aAAc+lI,IACxCD,IAAqB,GAGvB,GAAO5J,EAAQ,OAUfwU,aAPF,WAEE,GADapqJ,KACE,SMpCfy+I,YiChDa,CACbC,ctCGa,WACb,IAAI9I,EAAS51I,KACTm4I,EAAcvC,EAAOuC,YACrBmP,EAAc1R,EAAO0R,YACrB+C,EAAuBzU,EAAO0L,aAC9BA,OAAwC,IAAzB+I,EAAkC,EAAIA,EACrD1nH,EAASizG,EAAOjzG,OAChB6gH,EAAM5N,EAAO4N,IACb/E,EAAc97G,EAAO87G,YACzB,GAAKA,KAAeA,GAAmD,IAApC57J,OAAOkH,KAAK00J,GAAa74J,QAA5D,CAEA,IAAI0kK,EAAa1U,EAAO2U,cAAc9L,EAAa7I,EAAOjzG,OAAO49G,gBAAiB3K,EAAO/7H,IACzF,GAAKywI,GAAc1U,EAAO4U,oBAAsBF,EAAhD,CACA,IACIG,GADuBH,KAAc7L,EAAcA,EAAY6L,QAAcr3J,IAClC2iJ,EAAO8U,eAClDC,EAAc5K,GAAcnK,EAAQjzG,GACpCioH,EAAa7K,GAAcnK,EAAQ6U,GACnCI,EAAaloH,EAAOyI,QAEpBu/G,IAAgBC,GAClBpH,EAAI9iD,YAAY,GAAGrgG,OAAOsiC,EAAO++G,uBAAwB,SAASrhJ,OAAOsiC,EAAO++G,uBAAwB,gBACxG9L,EAAOkV,yBACGH,GAAeC,IACzBpH,EAAInjD,SAAS,GAAGhgG,OAAOsiC,EAAO++G,uBAAwB,UAElD+I,EAAiB3zH,KAAK5uB,MAAuC,WAA/BuiJ,EAAiB3zH,KAAK5uB,OAAsBuiJ,EAAiB3zH,KAAK5uB,MAA6B,WAArBy6B,EAAO7L,KAAK5uB,OACtHs7I,EAAInjD,SAAS,GAAGhgG,OAAOsiC,EAAO++G,uBAAwB,gBAGxD9L,EAAOkV,wBAGT,IAAIC,EAAmBN,EAAiB3uI,WAAa2uI,EAAiB3uI,YAAc6mB,EAAO7mB,UACvFkvI,EAAcroH,EAAO/tB,OAAS61I,EAAiB5L,gBAAkBl8G,EAAOk8G,eAAiBkM,GAEzFA,GAAoBzD,GACtB1R,EAAOqV,kBAGT,EAAOrV,EAAOjzG,OAAQ8nH,GACtB,IAAIS,EAAYtV,EAAOjzG,OAAOyI,QAC9BvoD,OAAO6c,OAAOk2I,EAAQ,CACpByE,eAAgBzE,EAAOjzG,OAAO03G,eAC9BuB,eAAgBhG,EAAOjzG,OAAOi5G,eAC9BC,eAAgBjG,EAAOjzG,OAAOk5G,iBAG5BgP,IAAeK,EACjBtV,EAAOhuD,WACGijE,GAAcK,GACxBtV,EAAOuV,SAGTvV,EAAO4U,kBAAoBF,EAC3B1U,EAAOyC,KAAK,oBAAqBoS,GAE7BO,GAAe1D,IACjB1R,EAAOmU,cACPnU,EAAO6T,aACP7T,EAAOgJ,eACPhJ,EAAOuI,QAAQhG,EAAcmJ,EAAe1L,EAAO0L,aAAc,GAAG,IAGtE1L,EAAOyC,KAAK,aAAcoS,MsCjE1BF,cCHa,SAAuB9L,EAAaz/H,EAAMosI,GAKvD,QAJa,IAATpsI,IACFA,EAAO,UAGJy/H,IAAwB,cAATz/H,GAAyBosI,GAA7C,CACA,IAAId,GAAa,EACb/iK,EAAS6pJ,IACTia,EAAyB,WAATrsI,EAAoBz3B,EAAO8lH,YAAc+9C,EAAYryI,aACrEzF,EAASzwB,OAAOkH,KAAK00J,GAAa/zJ,KAAI,SAAU4d,GAClD,GAAqB,kBAAVA,GAA6C,IAAvBA,EAAMxd,QAAQ,KAAY,CACzD,IAAIwgK,EAAW3hK,WAAW2e,EAAMtf,OAAO,IAEvC,MAAO,CACL5F,MAFUioK,EAAgBC,EAG1BhjJ,MAAOA,GAIX,MAAO,CACLllB,MAAOklB,EACPA,MAAOA,MAGXgL,EAAO0e,MAAK,SAAUrjC,EAAGC,GACvB,OAAOqQ,SAAStQ,EAAEvL,MAAO,IAAM6b,SAASrQ,EAAExL,MAAO,OAGnD,IAAK,IAAIjB,EAAI,EAAGA,EAAImxB,EAAO1tB,OAAQzD,GAAK,EAAG,CACzC,IAAIopK,EAAYj4I,EAAOnxB,GACnBmmB,EAAQijJ,EAAUjjJ,MAClBllB,EAAQmoK,EAAUnoK,MAET,WAAT47B,EACEz3B,EAAO2pJ,WAAW,eAAe7wI,OAAOjd,EAAO,QAAQ0oB,UACzDw+I,EAAahiJ,GAENllB,GAASgoK,EAAYtyI,cAC9BwxI,EAAahiJ,GAIjB,OAAOgiJ,GAAc,SlCQrBpL,cHpBa,CACbA,cAhCF,WACE,IAAItJ,EAAS51I,KACTwrJ,EAAY5V,EAAOqU,SACnBtnH,EAASizG,EAAOjzG,OAChBg+G,EAAqBh+G,EAAOg+G,mBAEhC,GAAIA,EAAoB,CACtB,IAAI8K,EAAiB7V,EAAOmI,OAAOn4J,OAAS,EACxC8lK,EAAqB9V,EAAO8G,WAAW+O,GAAkB7V,EAAO0H,gBAAgBmO,GAAuC,EAArB9K,EACtG/K,EAAOqU,SAAWrU,EAAO3yI,KAAOyoJ,OAEhC9V,EAAOqU,SAAsC,IAA3BrU,EAAO+I,SAAS/4J,QAGN,IAA1B+8C,EAAOi5G,iBACThG,EAAOgG,gBAAkBhG,EAAOqU,WAGJ,IAA1BtnH,EAAOk5G,iBACTjG,EAAOiG,gBAAkBjG,EAAOqU,UAG9BuB,GAAaA,IAAc5V,EAAOqU,WACpCrU,EAAOoI,OAAQ,GAGbwN,IAAc5V,EAAOqU,UACvBrU,EAAOyC,KAAKzC,EAAOqU,SAAW,OAAS,YGyBzC3pD,QmClDa,CACbqZ,WvC2Ba,WACb,IAjBsB3yE,EAASn1B,EAC3B85I,EAgBA/V,EAAS51I,KACT8gG,EAAa80C,EAAO90C,WACpBn+D,EAASizG,EAAOjzG,OAChBxnB,EAAMy6H,EAAOz6H,IACbqoI,EAAM5N,EAAO4N,IACbvM,EAASrB,EAAOqB,OAChB1jE,EAAUqiE,EAAOriE,QAEjBq4E,GAzBkB5kH,EAyBQ,CAAC,cAAerE,EAAO7mB,UAAW,CAC9D,kBAAmBy3D,EAAQ2oD,OAC1B,CACD,YAAa0Z,EAAOjzG,OAAO83G,UAAY93G,EAAO83G,SAASrvG,SACtD,CACD,WAAczI,EAAOy9G,YACpB,CACD,IAAOjlI,GACN,CACD,KAAQwnB,EAAO7L,MAAQ6L,EAAO7L,KAAKkpH,KAAO,GACzC,CACD,cAAer9G,EAAO7L,MAAQ6L,EAAO7L,KAAKkpH,KAAO,GAA0B,WAArBr9G,EAAO7L,KAAK5uB,MACjE,CACD,QAAW+uI,EAAOE,SACjB,CACD,IAAOF,EAAOC,KACb,CACD,WAAYv0G,EAAO81G,SAClB,CACD,SAAY91G,EAAO81G,SAAW91G,EAAOm8G,gBACpC,CACD,iBAAkBn8G,EAAO05G,sBA9CIxqI,EA+C3B8wB,EAAO++G,uBA9CPiK,EAAgB,GACpB3kH,EAAQh5B,SAAQ,SAAUqU,GACF,WAAlB,GAAQA,GACVx/B,OAAOkH,KAAKs4B,GAAMrU,SAAQ,SAAU8yF,GAC9Bz+E,EAAKy+E,IACP6qD,EAAcjmJ,KAAKmM,EAASivF,MAGP,kBAATz+E,GAChBspI,EAAcjmJ,KAAKmM,EAASwQ,MAGzBspI,GAmCP7qD,EAAWp7F,KAAKrd,MAAMy4G,EAAY,GAAmB8qD,IACrDpI,EAAInjD,SAAS,GAAmBS,GAAYrwF,KAAK,MACjDmlI,EAAOkV,wBuC5DPe,cCJa,WACb,IAAIjW,EAAS51I,KACTwjJ,EAAM5N,EAAO4N,IACb1iD,EAAa80C,EAAO90C,WACxB0iD,EAAI9iD,YAAYI,EAAWrwF,KAAK,MAChCmlI,EAAOkV,yBpCgDPgB,OqCnDa,CACbC,UCDa,SAAmBC,EAAS/1F,EAAKooE,EAAQD,EAAO6tB,EAAkBzkK,GAC/E,IACI25F,EADA55F,EAAS6pJ,IAGb,SAAS8a,IACH1kK,GAAUA,IAGA,EAAEwkK,GAASh6I,OAAO,WAAW,IAEzBg6I,EAAQnpI,UAAaopI,EAsBvCC,IArBIj2F,IACFkrB,EAAQ,IAAI55F,EAAO42I,OACb70B,OAAS4iD,EACf/qE,EAAMooB,QAAU2iD,EAEZ9tB,IACFj9C,EAAMi9C,MAAQA,GAGZC,IACFl9C,EAAMk9C,OAASA,GAGbpoE,IACFkrB,EAAMlrB,IAAMA,IAGdi2F,KD1BJ/K,cEJa,WACb,IAAIvL,EAAS51I,KAGb,SAASksJ,IACe,qBAAXtW,GAAqC,OAAXA,GAAoBA,IAAUA,EAAOsH,iBAC9CjqJ,IAAxB2iJ,EAAOuW,eAA4BvW,EAAOuW,cAAgB,GAE1DvW,EAAOuW,eAAiBvW,EAAOwW,aAAaxmK,SAC1CgwJ,EAAOjzG,OAAOy+G,qBAAqBxL,EAAOzuH,SAC9CyuH,EAAOyC,KAAK,iBARhBzC,EAAOwW,aAAexW,EAAO4N,IAAI5mE,KAAK,OAYtC,IAAK,IAAIz6F,EAAI,EAAGA,EAAIyzJ,EAAOwW,aAAaxmK,OAAQzD,GAAK,EAAG,CACtD,IAAI6pK,EAAUpW,EAAOwW,aAAajqK,GAClCyzJ,EAAOmW,UAAUC,EAASA,EAAQK,YAAcL,EAAQpjH,aAAa,OAAQojH,EAAQ3tB,QAAU2tB,EAAQpjH,aAAa,UAAWojH,EAAQ5tB,OAAS4tB,EAAQpjH,aAAa,UAAU,EAAMsjH,OvCuCrLI,GAAmB,GAEnB,GAAsB,WACxB,SAASC,IAGP,IAAI1yI,EACA8oB,EAHJ,GAAgB3iC,KAAMusJ,GAKtB,IAAK,IAAItkK,EAAOC,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAM4D,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/EL,EAAKK,GAAQF,UAAUE,GAczB,GAXoB,IAAhBL,EAAKnC,QAAgBmC,EAAK,GAAG1C,aAAwE,WAAzDxC,OAAOkB,UAAUkD,SAAS3E,KAAKyF,EAAK,IAAIb,MAAM,GAAI,GAChGy7C,EAAS56C,EAAK,IAEd8xB,EAAK9xB,EAAK,GACV46C,EAAS56C,EAAK,IAGX46C,IAAQA,EAAS,IACtBA,EAAS,EAAO,GAAIA,GAChB9oB,IAAO8oB,EAAO9oB,KAAI8oB,EAAO9oB,GAAKA,GAE9B8oB,EAAO9oB,IAAM,EAAE8oB,EAAO9oB,IAAIj0B,OAAS,EAAG,CACxC,IAAI4mK,EAAU,GAOd,OANA,EAAE7pH,EAAO9oB,IAAIjwB,MAAK,SAAUwhK,GAC1B,IAAIqB,EAAY,EAAO,GAAI9pH,EAAQ,CACjC9oB,GAAIuxI,IAENoB,EAAQ9mJ,KAAK,IAAI6mJ,EAAOE,OAEnBD,EAIT,IAYME,EAZF9W,EAAS51I,MACb41I,EAAOL,YAAa,EACpBK,EAAOriE,QAAUgjE,IACjBX,EAAOqB,OAASH,EAAU,CACxBr2B,UAAW99E,EAAO89E,YAEpBm1B,EAAO+W,QAAU9U,IACjBjC,EAAOoN,gBAAkB,GACzBpN,EAAOwN,mBAAqB,GAC5BxN,EAAOvzJ,QAAU,GAAmBuzJ,EAAOgX,aAEvCjqH,EAAOtgD,SAAWgC,MAAMC,QAAQq+C,EAAOtgD,YAGxCqqK,EAAkB9W,EAAOvzJ,SAASqjB,KAAKrd,MAAMqkK,EAAiB,GAAmB/pH,EAAOtgD,UAG3F,IAAIogK,EAAmB,GACvB7M,EAAOvzJ,QAAQ2rB,SAAQ,SAAU6+I,GAC/BA,EAAI,CACFjX,OAAQA,EACRkX,aAActK,GAAmB7/G,EAAQ8/G,GACzCvtD,GAAI0gD,EAAO1gD,GAAGvxG,KAAKiyJ,GACnBnuD,KAAMmuD,EAAOnuD,KAAK9jG,KAAKiyJ,GACvB1lD,IAAK0lD,EAAO1lD,IAAIvsG,KAAKiyJ,GACrByC,KAAMzC,EAAOyC,KAAK10J,KAAKiyJ,QAI3B,IAqDQ1Z,EACA6wB,EAtDJC,EAAe,EAAO,GAAI/qJ,GAAUwgJ,GA8GxC,OA5GA7M,EAAOjzG,OAAS,EAAO,GAAIqqH,EAAcV,GAAkB3pH,GAC3DizG,EAAO8U,eAAiB,EAAO,GAAI9U,EAAOjzG,QAC1CizG,EAAOqX,aAAe,EAAO,GAAItqH,GAE7BizG,EAAOjzG,QAAUizG,EAAOjzG,OAAOuyD,IACjCryG,OAAOkH,KAAK6rJ,EAAOjzG,OAAOuyD,IAAIlnF,SAAQ,SAAU6/G,GAC9C+nB,EAAO1gD,GAAG24B,EAAW+nB,EAAOjzG,OAAOuyD,GAAG24B,OAItC+nB,EAAOjzG,QAAUizG,EAAOjzG,OAAOwgH,OACjCvN,EAAOuN,MAAMvN,EAAOjzG,OAAOwgH,OAI7BvN,EAAO/oC,EAAI,EAEXhqH,OAAO6c,OAAOk2I,EAAQ,CACpBxqG,QAASwqG,EAAOjzG,OAAOyI,QACvBvxB,GAAIA,EAEJinF,WAAY,GAEZi9C,OAAQ,IACRrB,WAAY,GACZiC,SAAU,GACVrB,gBAAiB,GAEjBxpH,aAAc,WACZ,MAAmC,eAA5B8hH,EAAOjzG,OAAO7mB,WAEvBi/H,WAAY,WACV,MAAmC,aAA5BnF,EAAOjzG,OAAO7mB,WAGvBq8H,YAAa,EACb8O,UAAW,EAEXpJ,aAAa,EACbG,OAAO,EAEPx2I,UAAW,EACX83I,kBAAmB,EACnBx8H,SAAU,EACVoqI,SAAU,EACV3U,WAAW,EAEXqD,eAAgBhG,EAAOjzG,OAAOi5G,eAC9BC,eAAgBjG,EAAOjzG,OAAOk5G,eAE9B6D,aACMxjB,EAAQ,CAAC,aAAc,YAAa,WAAY,eAChD6wB,EAAU,CAAC,cAAe,cAAe,aAC7CnX,EAAOuX,iBAAmB,CACxB1kK,MAAOyzI,EAAM,GACb1qG,KAAM0qG,EAAM,GACZxzI,IAAKwzI,EAAM,GACX34G,OAAQ24G,EAAM,IAEhB0Z,EAAOwX,mBAAqB,CAC1B3kK,MAAOskK,EAAQ,GACfv7H,KAAMu7H,EAAQ,GACdrkK,IAAKqkK,EAAQ,IAERnX,EAAOriE,QAAQ2oD,QAAU0Z,EAAOjzG,OAAOq+G,cAAgBpL,EAAOuX,iBAAmBvX,EAAOwX,oBAEjG9U,gBAAiB,CACfQ,eAAW7lJ,EACX8lJ,aAAS9lJ,EACT4mJ,yBAAqB5mJ,EACrB+mJ,oBAAgB/mJ,EAChB6mJ,iBAAa7mJ,EACb+oJ,sBAAkB/oJ,EAClBsoJ,oBAAgBtoJ,EAChBknJ,wBAAoBlnJ,EAEpBuzH,kBAAmBovB,EAAOjzG,OAAO6jF,kBAEjCy2B,cAAe/6H,IACfmrI,kBAAcp6J,EAEdq6J,WAAY,GACZ5R,yBAAqBzoJ,EACrB4lJ,kBAAc5lJ,EACd8mJ,iBAAa9mJ,GAGfsmJ,YAAY,EAEZc,eAAgBzE,EAAOjzG,OAAO03G,eAC9B5iI,QAAS,CACP4hB,OAAQ,EACRC,OAAQ,EACRmjG,SAAU,EACVC,SAAU,EACV9wF,KAAM,GAGRwgH,aAAc,GACdD,aAAc,IAEhBvW,EAAOyC,KAAK,WAERzC,EAAOjzG,OAAO6f,MAChBozF,EAAOpzF,OAIFozF,EAtNX,IAAsBpwJ,EAAaO,EAAYC,EA2oB7C,OA3oBoBR,EAyNP+mK,EAzNgCvmK,EAmmBzC,CAAC,CACHtC,IAAK,iBACLN,MAAO,SAAwBmqK,GAC7B,EAAOjB,GAAkBiB,KAE1B,CACD7pK,IAAK,mBACLV,IAAK,WACH,OAAOspK,KAER,CACD5oK,IAAK,WACLV,IAAK,WACH,OAAOif,KAER,CACDve,IAAK,gBACLN,MAAO,SAAuBypK,GACvBN,EAAOxoK,UAAU6oK,cAAaL,EAAOxoK,UAAU6oK,YAAc,IAClE,IAAIvqK,EAAUkqK,EAAOxoK,UAAU6oK,YAEZ,oBAARC,GAAsBxqK,EAAQyI,QAAQ+hK,GAAO,GACtDxqK,EAAQqjB,KAAKmnJ,KAGhB,CACDnpK,IAAK,MACLN,MAAO,SAAalB,GAClB,OAAImC,MAAMC,QAAQpC,IAChBA,EAAO8rB,SAAQ,SAAUzrB,GACvB,OAAOgqK,EAAOiB,cAAcjrK,MAEvBgqK,IAGTA,EAAOiB,cAActrK,GACdqqK,OAvoBsBxmK,EAyNZ,CAAC,CACpBrC,IAAK,SACLN,MAAO,WACL,IAAIwyJ,EAAS51I,KACT41I,EAAOxqG,UACXwqG,EAAOxqG,SAAU,EAEbwqG,EAAOjzG,OAAOg5G,YAChB/F,EAAOkG,gBAGTlG,EAAOyC,KAAK,aAEb,CACD30J,IAAK,UACLN,MAAO,WACL,IAAIwyJ,EAAS51I,KACR41I,EAAOxqG,UACZwqG,EAAOxqG,SAAU,EAEbwqG,EAAOjzG,OAAOg5G,YAChB/F,EAAOsU,kBAGTtU,EAAOyC,KAAK,cAEb,CACD30J,IAAK,cACLN,MAAO,SAAqB0/B,EAAUm7E,GACpC,IAAI23C,EAAS51I,KACb8iB,EAAW32B,KAAK4B,IAAI5B,KAAK6B,IAAI80B,EAAU,GAAI,GAC3C,IAAI/0B,EAAM6nJ,EAAOqF,eAEbhmI,GADM2gI,EAAOoF,eACIjtJ,GAAO+0B,EAAW/0B,EACvC6nJ,EAAO+R,YAAY1yI,EAA0B,qBAAVgpF,EAAwB,EAAIA,GAC/D23C,EAAO0G,oBACP1G,EAAO2G,wBAER,CACD74J,IAAK,uBACLN,MAAO,WACL,IAAIwyJ,EAAS51I,KACb,GAAK41I,EAAOjzG,OAAO4/G,cAAiB3M,EAAO/7H,GAA3C,CACA,IAAI4zI,EAAM7X,EAAO/7H,GAAG0iE,UAAU36E,MAAM,KAAKkP,QAAO,SAAUyrE,GACxD,OAAuC,IAAhCA,EAAUzxF,QAAQ,WAA+E,IAA5DyxF,EAAUzxF,QAAQ8qJ,EAAOjzG,OAAO++G,2BAE9E9L,EAAOyC,KAAK,oBAAqBoV,EAAIh9I,KAAK,SAE3C,CACD/sB,IAAK,kBACLN,MAAO,SAAyBsqK,GAC9B,IAAI9X,EAAS51I,KACb,OAAI41I,EAAOsH,UAAkB,GACtBwQ,EAAQnxE,UAAU36E,MAAM,KAAKkP,QAAO,SAAUyrE,GACnD,OAA6C,IAAtCA,EAAUzxF,QAAQ,iBAAyE,IAAhDyxF,EAAUzxF,QAAQ8qJ,EAAOjzG,OAAOg/G,eACjFlxI,KAAK,OAET,CACD/sB,IAAK,oBACLN,MAAO,WACL,IAAIwyJ,EAAS51I,KACb,GAAK41I,EAAOjzG,OAAO4/G,cAAiB3M,EAAO/7H,GAA3C,CACA,IAAI8zI,EAAU,GACd/X,EAAOmI,OAAOn0J,MAAK,SAAU8jK,GAC3B,IAAI5sD,EAAa80C,EAAOgY,gBAAgBF,GACxCC,EAAQjoJ,KAAK,CACXgoJ,QAASA,EACT5sD,WAAYA,IAEd80C,EAAOyC,KAAK,cAAeqV,EAAS5sD,MAEtC80C,EAAOyC,KAAK,gBAAiBsV,MAE9B,CACDjqK,IAAK,uBACLN,MAAO,SAA8B8wG,EAAM25D,QAC5B,IAAT35D,IACFA,EAAO,gBAGK,IAAV25D,IACFA,GAAQ,GAGV,IAAIjY,EAAS51I,KACT2iC,EAASizG,EAAOjzG,OAChBo7G,EAASnI,EAAOmI,OAChBrB,EAAa9G,EAAO8G,WACpBY,EAAkB1H,EAAO0H,gBACzBqG,EAAa/N,EAAO3yI,KACpBk1I,EAAcvC,EAAOuC,YACrB2V,EAAM,EAEV,GAAInrH,EAAOm8G,eAAgB,CAIzB,IAHA,IACIiP,EADAxJ,EAAYxG,EAAO5F,GAAa6M,gBAG3B7iK,EAAIg2J,EAAc,EAAGh2J,EAAI47J,EAAOn4J,OAAQzD,GAAK,EAChD47J,EAAO57J,KAAO4rK,IAEhBD,GAAO,GADPvJ,GAAaxG,EAAO57J,GAAG6iK,iBAEPrB,IAAYoK,GAAY,IAI5C,IAAK,IAAIrtI,EAAKy3H,EAAc,EAAGz3H,GAAM,EAAGA,GAAM,EACxCq9H,EAAOr9H,KAAQqtI,IAEjBD,GAAO,GADPvJ,GAAaxG,EAAOr9H,GAAIskI,iBAERrB,IAAYoK,GAAY,SAK5C,GAAa,YAAT75D,EACF,IAAK,IAAIt4C,EAAMu8F,EAAc,EAAGv8F,EAAMmiG,EAAOn4J,OAAQg2D,GAAO,GACxCiyG,EAAQnR,EAAW9gG,GAAO0hG,EAAgB1hG,GAAO8gG,EAAWvE,GAAewL,EAAajH,EAAW9gG,GAAO8gG,EAAWvE,GAAewL,KAGpJmK,GAAO,QAKX,IAAK,IAAIE,EAAM7V,EAAc,EAAG6V,GAAO,EAAGA,GAAO,EAC5BtR,EAAWvE,GAAeuE,EAAWsR,GAAOrK,IAG7DmK,GAAO,GAMf,OAAOA,IAER,CACDpqK,IAAK,SACLN,MAAO,WACL,IAAIwyJ,EAAS51I,KACb,GAAK41I,IAAUA,EAAOsH,UAAtB,CACA,IAAIyB,EAAW/I,EAAO+I,SAClBh8G,EAASizG,EAAOjzG,OAEhBA,EAAO87G,aACT7I,EAAO8I,gBAGT9I,EAAOqE,aACPrE,EAAOgJ,eACPhJ,EAAO6G,iBACP7G,EAAO2G,sBAYH3G,EAAOjzG,OAAO83G,UAAY7E,EAAOjzG,OAAO83G,SAASrvG,SACnDiyF,IAEIuY,EAAOjzG,OAAOy9G,YAChBxK,EAAOoQ,sBAG4B,SAAhCpQ,EAAOjzG,OAAOk8G,eAA4BjJ,EAAOjzG,OAAOk8G,cAAgB,IAAMjJ,EAAOoI,QAAUpI,EAAOjzG,OAAOm8G,eACnGlJ,EAAOuI,QAAQvI,EAAOmI,OAAOn4J,OAAS,EAAG,GAAG,GAAO,GAEnDgwJ,EAAOuI,QAAQvI,EAAOuC,YAAa,GAAG,GAAO,KAI1D9a,IAIA16F,EAAOs8G,eAAiBN,IAAa/I,EAAO+I,UAC9C/I,EAAOsJ,gBAGTtJ,EAAOyC,KAAK,UAhCZ,SAAShb,IACP,IAAI4wB,EAAiBrY,EAAO+E,cAAmC,EAApB/E,EAAOpuI,UAAiBouI,EAAOpuI,UACtEsgJ,EAAe37J,KAAK4B,IAAI5B,KAAK6B,IAAIigK,EAAgBrY,EAAOoF,gBAAiBpF,EAAOqF,gBACpFrF,EAAOvY,aAAayqB,GACpBlS,EAAO0G,oBACP1G,EAAO2G,yBA6BV,CACD74J,IAAK,kBACLN,MAAO,SAAyB8qK,EAAcC,QACzB,IAAfA,IACFA,GAAa,GAGf,IAAIvY,EAAS51I,KACTouJ,EAAmBxY,EAAOjzG,OAAO7mB,UAOrC,OALKoyI,IAEHA,EAAoC,eAArBE,EAAoC,WAAa,cAG9DF,IAAiBE,GAAqC,eAAjBF,GAAkD,aAAjBA,IAI1EtY,EAAO4N,IAAI9iD,YAAY,GAAGrgG,OAAOu1I,EAAOjzG,OAAO++G,wBAAwBrhJ,OAAO+tJ,IAAmB/tD,SAAS,GAAGhgG,OAAOu1I,EAAOjzG,OAAO++G,wBAAwBrhJ,OAAO6tJ,IACjKtY,EAAOkV,uBACPlV,EAAOjzG,OAAO7mB,UAAYoyI,EAC1BtY,EAAOmI,OAAOn0J,MAAK,SAAU8jK,GACN,aAAjBQ,EACFR,EAAQxqJ,MAAMuC,MAAQ,GAEtBioJ,EAAQxqJ,MAAM6D,OAAS,MAG3B6uI,EAAOyC,KAAK,mBACR8V,GAAYvY,EAAOzuH,UAddyuH,IAiBV,CACDlyJ,IAAK,QACLN,MAAO,SAAey2B,GACpB,IAAI+7H,EAAS51I,KACb,GAAI41I,EAAOyY,QAAS,OAAO,EAE3B,IAAI7K,EAAM,EAAE3pI,GAAM+7H,EAAOjzG,OAAO9oB,IAGhC,KAFAA,EAAK2pI,EAAI,IAGP,OAAO,EAGT3pI,EAAG+7H,OAASA,EAEZ,IAAI0Y,EAAqB,WACvB,MAAO,IAAIjuJ,QAAQu1I,EAAOjzG,OAAO0/G,cAAgB,IAAI31C,OAAO9qG,MAAM,KAAK6O,KAAK,OAsB1EgrI,EAnBa,WACf,GAAI5hI,GAAMA,EAAGhC,YAAcgC,EAAGhC,WAAW61F,cAAe,CACtD,IAAIxoF,EAAM,EAAErL,EAAGhC,WAAW61F,cAAc4gD,MAMxC,OAJAppI,EAAI0tD,SAAW,SAAU5nF,GACvB,OAAOw4J,EAAI5wE,SAAS5nF,IAGfk6B,EAGT,OAAKs+H,EAAI5wE,SAIF4wE,EAAI5wE,SAAS07E,KAHX,EAAE9K,GAAK5wE,SAAS07E,KAOVC,GAEjB,GAA0B,IAAtB9S,EAAW71J,QAAgBgwJ,EAAOjzG,OAAOw9G,eAAgB,CAC3D,IACIqO,EADW9d,IACQz8D,cAAc,OACrCwnE,EAAa,EAAE+S,GACfA,EAAQjyE,UAAYq5D,EAAOjzG,OAAO0/G,aAClCmB,EAAI5sD,OAAO43D,GACXhL,EAAI5wE,SAAS,IAAIvyE,OAAOu1I,EAAOjzG,OAAOg/G,aAAa/3J,MAAK,SAAU8jK,GAChEjS,EAAW7kD,OAAO82D,MAetB,OAXA7qK,OAAO6c,OAAOk2I,EAAQ,CACpB4N,IAAKA,EACL3pI,GAAIA,EACJ4hI,WAAYA,EACZzF,UAAWyF,EAAW,GACtB4S,SAAS,EAETlzI,IAA8B,QAAzBtB,EAAGmgE,IAAI56E,eAAoD,QAAzBokJ,EAAIz2D,IAAI,aAC/C4tD,aAA0C,eAA5B/E,EAAOjzG,OAAO7mB,YAAwD,QAAzBjC,EAAGmgE,IAAI56E,eAAoD,QAAzBokJ,EAAIz2D,IAAI,cACrG62D,SAAwC,gBAA9BnI,EAAW1uD,IAAI,cAEpB,IAER,CACDrpG,IAAK,OACLN,MAAO,SAAcy2B,GACnB,IAAI+7H,EAAS51I,KACb,OAAI41I,EAAO0R,cAEK,IADF1R,EAAO6Y,MAAM50I,KAE3B+7H,EAAOyC,KAAK,cAERzC,EAAOjzG,OAAO87G,aAChB7I,EAAO8I,gBAIT9I,EAAOj8B,aAEHi8B,EAAOjzG,OAAO/tB,MAChBghI,EAAO6T,aAIT7T,EAAOqE,aAEPrE,EAAOgJ,eAEHhJ,EAAOjzG,OAAOs8G,eAChBrJ,EAAOsJ,gBAILtJ,EAAOjzG,OAAOg5G,YAAc/F,EAAOxqG,SACrCwqG,EAAOkG,gBAGLlG,EAAOjzG,OAAOw+G,eAChBvL,EAAOuL,gBAILvL,EAAOjzG,OAAO/tB,KAChBghI,EAAOuI,QAAQvI,EAAOjzG,OAAOs9G,aAAerK,EAAO0L,aAAc,EAAG1L,EAAOjzG,OAAO2/G,oBAAoB,GAAO,GAE7G1M,EAAOuI,QAAQvI,EAAOjzG,OAAOs9G,aAAc,EAAGrK,EAAOjzG,OAAO2/G,oBAAoB,GAAO,GAIzF1M,EAAOuU,eAEPvU,EAAO0R,aAAc,EAErB1R,EAAOyC,KAAK,QACZzC,EAAOyC,KAAK,cA/CmBzC,IAkDhC,CACDlyJ,IAAK,UACLN,MAAO,SAAiBsrK,EAAgBC,QACf,IAAnBD,IACFA,GAAiB,QAGC,IAAhBC,IACFA,GAAc,GAGhB,IlB/jBA9qK,EkB+jBI+xJ,EAAS51I,KACT2iC,EAASizG,EAAOjzG,OAChB6gH,EAAM5N,EAAO4N,IACb/H,EAAa7F,EAAO6F,WACpBsC,EAASnI,EAAOmI,OAEpB,MAA6B,qBAAlBnI,EAAOjzG,QAA0BizG,EAAOsH,YAInDtH,EAAOyC,KAAK,iBAEZzC,EAAO0R,aAAc,EAErB1R,EAAOwU,eAEHznH,EAAO/tB,MACTghI,EAAOmU,cAIL4E,IACF/Y,EAAOiW,gBACPrI,EAAIjkD,WAAW,SACfk8C,EAAWl8C,WAAW,SAElBw+C,GAAUA,EAAOn4J,QACnBm4J,EAAOr9C,YAAY,CAAC/9D,EAAOo/G,kBAAmBp/G,EAAOk/G,iBAAkBl/G,EAAOs/G,eAAgBt/G,EAAOw/G,gBAAgB1xI,KAAK,MAAM8uF,WAAW,SAASA,WAAW,4BAInKq2C,EAAOyC,KAAK,WAEZx1J,OAAOkH,KAAK6rJ,EAAOoN,iBAAiBh1I,SAAQ,SAAU6/G,GACpD+nB,EAAO1lD,IAAI29B,OAGU,IAAnB6gC,IACF9Y,EAAO4N,IAAI,GAAG5N,OAAS,KlBrmBzB/xJ,EkBsmBc+xJ,ElBrmBlB/yJ,OAAOkH,KAAKlG,GAAQmqB,SAAQ,SAAUtqB,GACpC,IACEG,EAAOH,GAAO,KACd,MAAO4C,IAGT,WACSzC,EAAOH,GACd,MAAO4C,SkBgmBPsvJ,EAAOsH,WAAY,GAnCV,UA7jB+Dz3J,GAAkBD,EAAYzB,UAAWgC,GAAiBC,GAAaP,GAAkBD,EAAaQ,GA2oB3KumK,EAlmBiB,GAqmB1B1pK,OAAOkH,KAAK84J,IAAY70I,SAAQ,SAAU4gJ,GACxC/rK,OAAOkH,KAAK84J,GAAW+L,IAAiB5gJ,SAAQ,SAAU6gJ,GACxD,GAAO9qK,UAAU8qK,GAAehM,GAAW+L,GAAgBC,SAG/D,GAAOC,IAAI,CwClqBI,SAAgBryI,GAC7B,IAAIm5H,EAASn5H,EAAKm5H,OACd1gD,EAAKz4E,EAAKy4E,GACVmjD,EAAO57H,EAAK47H,KACZ9wJ,EAAS6pJ,IACTtqG,EAAW,KACXioH,EAAiB,KAEjBC,EAAgB,WACbpZ,IAAUA,EAAOsH,WAActH,EAAO0R,cAC3CjP,EAAK,gBACLA,EAAK,YAuCH4W,EAA2B,WACxBrZ,IAAUA,EAAOsH,WAActH,EAAO0R,aAC3CjP,EAAK,sBAGPnjD,EAAG,QAAQ,WACL0gD,EAAOjzG,OAAOu9G,gBAAmD,qBAA1B34J,EAAOugD,eAzC7C8tG,IAAUA,EAAOsH,WAActH,EAAO0R,cAC3CxgH,EAAW,IAAIgB,gBAAe,SAAUd,GACtC+nH,EAAiBxnK,EAAOE,uBAAsB,WAC5C,IAAIge,EAAQmwI,EAAOnwI,MACfsB,EAAS6uI,EAAO7uI,OAChB+7B,EAAWr9B,EACXu9B,EAAYj8B,EAChBigC,EAAQh5B,SAAQ,SAAUijB,GACxB,IAAIi+H,EAAiBj+H,EAAMi+H,eACvBnnH,EAAc9W,EAAM8W,YACpBriD,EAASurC,EAAMvrC,OACfA,GAAUA,IAAWkwJ,EAAO/7H,KAChCipB,EAAWiF,EAAcA,EAAYtiC,OAASypJ,EAAe,IAAMA,GAAgBC,WACnFnsH,EAAY+E,EAAcA,EAAYhhC,QAAUmoJ,EAAe,IAAMA,GAAgBE,cAGnFtsH,IAAar9B,GAASu9B,IAAcj8B,GACtCioJ,WAIG7nH,QAAQyuG,EAAO/7H,KAyBxBtyB,EAAOmyB,iBAAiB,SAAUs1I,GAClCznK,EAAOmyB,iBAAiB,oBAAqBu1I,OAE/C/5D,EAAG,WAAW,WAxBR65D,GACFxnK,EAAO4pJ,qBAAqB4d,GAG1BjoH,GAAYA,EAASuoH,WAAazZ,EAAO/7H,KAC3CitB,EAASuoH,UAAUzZ,EAAO/7H,IAC1BitB,EAAW,MAoBbv/C,EAAOoyB,oBAAoB,SAAUq1I,GACrCznK,EAAOoyB,oBAAoB,oBAAqBs1I,OCnErC,SAAkBxyI,GAC/B,IAAIm5H,EAASn5H,EAAKm5H,OACdkX,EAAerwI,EAAKqwI,aACpB53D,EAAKz4E,EAAKy4E,GACVmjD,EAAO57H,EAAK47H,KACZiX,EAAY,GACZ/nK,EAAS6pJ,IAET/nG,EAAS,SAAgB3jD,EAAQsF,QACnB,IAAZA,IACFA,EAAU,IAGZ,IACI87C,EAAW,IADIv/C,EAAOw/C,kBAAoBx/C,EAAOgoK,yBACrB,SAAUC,GAIxC,GAAyB,IAArBA,EAAU5pK,OAAd,CAKA,IAAI6pK,EAAiB,WACnBpX,EAAK,iBAAkBmX,EAAU,KAG/BjoK,EAAOE,sBACTF,EAAOE,sBAAsBgoK,GAE7BloK,EAAO25D,WAAWuuG,EAAgB,QAXlCpX,EAAK,iBAAkBmX,EAAU,OAcrC1oH,EAASK,QAAQzhD,EAAQ,CACvBuyF,WAA0C,qBAAvBjtF,EAAQitF,YAAoCjtF,EAAQitF,WACvE5wC,UAAwC,qBAAtBr8C,EAAQq8C,WAAmCr8C,EAAQq8C,UACrEqoH,cAAgD,qBAA1B1kK,EAAQ0kK,eAAuC1kK,EAAQ0kK,gBAE/EJ,EAAU5pJ,KAAKohC,IA+BjBgmH,EAAa,CACXhmH,UAAU,EACV6oH,gBAAgB,EAChBC,sBAAsB,IAExB16D,EAAG,QAjCQ,WACT,GAAK0gD,EAAOjzG,OAAOmE,SAAnB,CAEA,GAAI8uG,EAAOjzG,OAAOgtH,eAGhB,IAFA,IAAIE,EAAmBja,EAAO4N,IAAI39D,UAEzB1jG,EAAI,EAAGA,EAAI0tK,EAAiBjqK,OAAQzD,GAAK,EAChDknD,EAAOwmH,EAAiB1tK,IAK5BknD,EAAOusG,EAAO4N,IAAI,GAAI,CACpBn8G,UAAWuuG,EAAOjzG,OAAOitH,uBAG3BvmH,EAAOusG,EAAO6F,WAAW,GAAI,CAC3BxjE,YAAY,QAiBhBid,EAAG,WAbW,WACZo6D,EAAUthJ,SAAQ,SAAU84B,GAC1BA,EAASoB,gBAEXonH,EAAUjpJ,OAAO,EAAGipJ,EAAU1pK,czCimBnB,U,+yB0C7pBf,IAAM8wF,GAAS,SAAC78D,GAAqB,IAAjBmN,EAAgB,wDAElC,OADAnN,EAAKA,EAAG6yF,OACJ1lF,EACK,GAAIogB,SAAS0zC,iBAAiBjhE,IAE9ButB,SAASsmE,cAAc7zF,IAO5Bq7E,GAAK,SAACnsG,EAAM8wB,EAAIjM,GAA2B,IAAjBoZ,EAAgB,wDAC1C8oI,EAAWp5E,GAAO78D,EAAImN,GACtB8oI,IACE9oI,EACF8oI,EAAS9hJ,SAAQ,SAAA1nB,GAAC,OAAIA,EAAEozB,iBAAiB3wB,EAAM6kB,MAE/CkiJ,EAASp2I,iBAAiB3wB,EAAM6kB,KAQhCmiJ,GAAW,SAACl2I,EAAIjM,GACpBiM,EAAGH,iBAAiB,SAAU9L,IAM5BoiJ,GAAct5E,GAAO,qBAAqB,GACxCu5E,GAAoB,WACxB,IAAI1vH,EAAWh5C,OAAO+zH,QAAU,IAChC00C,GAAYhiJ,SAAQ,SAAAkiJ,GAClB,GAAKA,EAAW7vE,KAAhB,CACA,IAAI8vE,EAAUz5E,GAAOw5E,EAAW7vE,MAC3B8vE,IACD5vH,GAAY4vH,EAAQ39B,WAAajyF,GAAa4vH,EAAQ39B,UAAY29B,EAAQx2D,aAC5Eu2D,EAAWp+C,UAAU1jG,IAAI,UAEzB8hJ,EAAWp+C,UAAUltD,OAAO,gBAIlCr9D,OAAOmyB,iBAAiB,OAAQu2I,IAChCF,GAAS3oH,SAAU6oH,IAKnB,IAAMG,GAAW,SAACv2I,GAChB,IACIgd,EADS6/C,GAAO,WACAijB,aAEhB02D,EAAa35E,GAAO78D,GAAI24G,UAC5BjrI,OAAOqkH,SAAS,CACdjjG,IAAK0nJ,EAAax5H,EAClBy5H,SAAU,YAOVC,GAAY75E,GAAO,gBACvB,GAAI65E,GAAW,CACb,IAAMC,GAAkB,WAClBjpK,OAAO+zH,QAAU,IACnBi1C,GAAUz+C,UAAU1jG,IAAI,UAExBmiJ,GAAUz+C,UAAUltD,OAAO,WAG/Br9D,OAAOmyB,iBAAiB,OAAQ82I,IAChCT,GAAS3oH,SAAUopH,IAMrBt7D,GAAG,QAAS,sBAAsB,SAAS5uG,GACzCowF,GAAO,WAAWo7B,UAAUpkB,OAAO,iBACnC1tF,KAAK8xG,UAAUpkB,OAAO,WACtB1tF,KAAK8xG,UAAUpkB,OAAO,WAMxBwH,GAAG,QAAS,yBAAyB,SAAS5uG,GACxCowF,GAAO,WAAWo7B,UAAU36B,SAAS,mBACvC7wF,EAAEoqG,iBACF1wF,KAAK+zI,mBAAmBjiC,UAAUpkB,OAAO,uBAE1C,GAKHwH,GAAG,QAAS,aAAa,SAAS5uG,GAChC,GAAIowF,GAAO12E,KAAKqgF,MAAO,CACrB/5F,EAAEoqG,iBAEF,IAAI+/D,EAAS/5E,GAAO,WACpB,GAAI+5E,EAAO3+C,UAAU36B,SAAS,iBAAkB,CAC9Cs5E,EAAO3+C,UAAUltD,OAAO,iBACxB,IAAI8rG,EAAeh6E,GAAO,sBAC1Bg6E,EAAa5+C,UAAUpkB,OAAO,WAC9BgjE,EAAa5+C,UAAUpkB,OAAO,QAEhC0iE,GAASpwJ,KAAKqgF,UAEf,GAKH94F,OAAOmyB,iBAAiB,QAAQ,WAC1BnyB,OAAO+4F,SAASD,MACd3J,GAAOnvF,OAAO+4F,SAASD,OACzB+vE,GAAS7oK,OAAO+4F,SAASD,SAQ/B94F,OAAOmyB,iBAAiB,QAAQ,WAC9B,IAAIi3I,EAAqBj6E,GAAO,wBAChC,GAAIi6E,EAAoB,CACtB,IAAIC,EAAmB,IAAI9qB,KAAQ6qB,EAAoB,CACrDvkC,aAAc,kBACd2Z,WAAY,YAGV8qB,EAAmBn6E,GAAO,wBAAwB,GAEtDwe,GAAG,QAAS,wBAAwB,SAAS5uG,GAC3CA,EAAEoqG,iBACFmgE,EAAiB7iJ,SAAQ,SAAS6L,GAChCA,EAAGi4F,UAAUltD,OAAO,oBAEtB5kD,KAAK8xG,UAAU1jG,IAAI,iBAEnBwiJ,EAAiBlqB,QAAQ,CACvB51H,OAAQ9Q,KAAK4oC,aAAa,iBAE5BgoH,EAAiB17D,GAAG,mBAAmB,WACrC47D,KAAIn/B,gBAEL,OAQmBo/B,IAAU,CAClCz8E,SAAU,wBAMZ,IAAIi4E,GAAO,4BAA6B,CACtCtuD,MAAO,IACPrpF,MAAM,EACNmqI,SAAU,CACRx6H,MAAO,IACPysI,sBAAsB,GAExBC,WAAY,CACVp3I,GAAI,qBACJ9wB,KAAM,UACNmoK,WAAW,KAOf,IAAI3E,GAAO,kBAAmB,CAC5BtuD,MAAO,IACPrpF,MAAM,EACNmqI,SAAU,CACRx6H,MAAO,IACPysI,sBAAsB,GAExBnS,cAAe,OACfoS,WAAY,CACVp3I,GAAI,qBACJ9wB,KAAM,UACNmoK,WAAW,GAEbzS,YAAa,CACX,IAAK,CACHI,cAAe,EACf2B,aAAc,IAEhB,IAAK,CACH3B,cAAe,EACf2B,aAAc,IAEhB,IAAK,CACH3B,cAAe,EACf2B,aAAc,IAEhB,IAAK,CACH3B,cAAe,EACf2B,aAAc,QAQpBj5J,OAAOmyB,iBAAiB,QAAQ,WAC9Bo3I,KAAItuG,KAAK,CACP5gC,SAAU,IACVyC,OAAQ,cACRojE,MAAM,EACN76C,QAAQ,Q,gBC1OZ1qD,EAAOD,QAAU,IAA0B,yE,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,uE,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,qF,gBCA3CC,EAAOD,QAAU,IAA0B,qF,gBCA3CC,EAAOD,QAAU,IAA0B,qF,gBCA3CC,EAAOD,QAAU,IAA0B,qF,gBCA3CC,EAAOD,QAAU,IAA0B,qF,gBCA3CC,EAAOD,QAAU,IAA0B,qF,gBCA3CC,EAAOD,QAAU,IAA0B,qF,gBCA3CC,EAAOD,QAAU,IAA0B,qF,gBCA3CC,EAAOD,QAAU,IAA0B,qF,gBCA3CC,EAAOD,QAAU,IAA0B,6F,gBCA3CC,EAAOD,QAAU,IAA0B,6F,gBCA3CC,EAAOD,QAAU,IAA0B,6F,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,2E,6BCM3C,SAASutB,EAAQ3rB,EAAQ46B,GACvB,IAAI10B,EAAOlH,OAAOkH,KAAKlG,GAEvB,GAAIhB,OAAO67B,sBAAuB,CAChC,IAAIC,EAAU97B,OAAO67B,sBAAsB76B,GAEvC46B,IACFE,EAAUA,EAAQ7N,QAAO,SAAU8N,GACjC,OAAO/7B,OAAOosB,yBAAyBprB,EAAQ+6B,GAAK77B,eAIxDgH,EAAK2b,KAAKrd,MAAM0B,EAAM40B,GAGxB,OAAO50B,EAGT,SAASonK,EAAezrK,GACtB,IAAK,IAAIvD,EAAI,EAAGA,EAAI+F,UAAUtC,OAAQzD,IAAK,CACzC,IAAIsI,EAAyB,MAAhBvC,UAAU/F,GAAa+F,UAAU/F,GAAK,GAE/CA,EAAI,EACNqtB,EAAQ3sB,OAAO4H,IAAS,GAAMujB,SAAQ,SAAUtqB,GAC9CsB,EAAgBU,EAAQhC,EAAK+G,EAAO/G,OAE7Bb,OAAOi8B,0BAChBj8B,OAAO+hB,iBAAiBlf,EAAQ7C,OAAOi8B,0BAA0Br0B,IAEjE+kB,EAAQ3sB,OAAO4H,IAASujB,SAAQ,SAAUtqB,GACxCb,OAAOC,eAAe4C,EAAQhC,EAAKb,OAAOosB,yBAAyBxkB,EAAQ/G,OAKjF,OAAOgC,EAGT,SAASN,EAAQH,GAaf,OATEG,EADoB,oBAAXlC,QAAoD,kBAApBA,OAAOwB,SACtC,SAAiBO,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAI9GA,GAGjB,SAASD,EAAgBC,EAAKvB,EAAKN,GAYjC,OAXIM,KAAOuB,EACTpC,OAAOC,eAAemC,EAAKvB,EAAK,CAC9BN,MAAOA,EACPL,YAAY,EACZmC,cAAc,EACdC,UAAU,IAGZF,EAAIvB,GAAON,EAGN6B,EAGT,SAASmsK,IAeP,OAdAA,EAAWvuK,OAAO6c,QAAU,SAAUha,GACpC,IAAK,IAAIvD,EAAI,EAAGA,EAAI+F,UAAUtC,OAAQzD,IAAK,CACzC,IAAIsI,EAASvC,UAAU/F,GAEvB,IAAK,IAAIuB,KAAO+G,EACV5H,OAAOkB,UAAUC,eAAe1B,KAAKmI,EAAQ/G,KAC/CgC,EAAOhC,GAAO+G,EAAO/G,IAK3B,OAAOgC,IAGO2C,MAAM2X,KAAM9X,WAkB9B,SAASmpK,EAAyB5mK,EAAQ6mK,GACxC,GAAc,MAAV7mK,EAAgB,MAAO,GAE3B,IAEI/G,EAAKvB,EAFLuD,EAlBN,SAAuC+E,EAAQ6mK,GAC7C,GAAc,MAAV7mK,EAAgB,MAAO,GAC3B,IAEI/G,EAAKvB,EAFLuD,EAAS,GACT6rK,EAAa1uK,OAAOkH,KAAKU,GAG7B,IAAKtI,EAAI,EAAGA,EAAIovK,EAAW3rK,OAAQzD,IACjCuB,EAAM6tK,EAAWpvK,GACbmvK,EAASxmK,QAAQpH,IAAQ,IAC7BgC,EAAOhC,GAAO+G,EAAO/G,IAGvB,OAAOgC,EAMM8rK,CAA8B/mK,EAAQ6mK,GAInD,GAAIzuK,OAAO67B,sBAAuB,CAChC,IAAI+yI,EAAmB5uK,OAAO67B,sBAAsBj0B,GAEpD,IAAKtI,EAAI,EAAGA,EAAIsvK,EAAiB7rK,OAAQzD,IACvCuB,EAAM+tK,EAAiBtvK,GACnBmvK,EAASxmK,QAAQpH,IAAQ,GACxBb,OAAOkB,UAAU2tK,qBAAqBpvK,KAAKmI,EAAQ/G,KACxDgC,EAAOhC,GAAO+G,EAAO/G,IAIzB,OAAOgC,EAwCT,SAAS+6H,EAAU1hC,GACjB,GAAsB,qBAAXx3F,QAA0BA,OAAOi5H,UAC1C,QAAuBA,UAAUC,UAAU10G,MAAMgzE,GAIrD,IAAI4yE,EAAalxC,EAAU,yDACvBmxC,EAAOnxC,EAAU,SACjBoxC,EAAUpxC,EAAU,YACpBqxC,EAASrxC,EAAU,aAAeA,EAAU,aAAeA,EAAU,YACrEsxC,EAAMtxC,EAAU,mBAChBuxC,EAAmBvxC,EAAU,YAAcA,EAAU,YACrDwxC,EAAc,CAChBxwC,SAAS,EACT96E,SAAS,GAGX,SAASuuD,EAAGr7E,EAAIkJ,EAAOp7B,GACrBkyB,EAAGH,iBAAiBqJ,EAAOp7B,GAAKgqK,GAAcM,GAGhD,SAAS/hE,EAAIr2E,EAAIkJ,EAAOp7B,GACtBkyB,EAAGF,oBAAoBoJ,EAAOp7B,GAAKgqK,GAAcM,GAGnD,SAASnmJ,EAET+N,EAEAy6D,GACE,GAAKA,EAAL,CAGA,GAFgB,MAAhBA,EAAS,KAAeA,EAAWA,EAASirD,UAAU,IAElD1lH,EACF,IACE,GAAIA,EAAG/N,QACL,OAAO+N,EAAG/N,QAAQwoE,GACb,GAAIz6D,EAAGujE,kBACZ,OAAOvjE,EAAGujE,kBAAkB9I,GACvB,GAAIz6D,EAAGojE,sBACZ,OAAOpjE,EAAGojE,sBAAsB3I,GAElC,MAAOyS,GACP,OAAO,EAIX,OAAO,GAGT,SAASmrE,EAAgBr4I,GACvB,OAAOA,EAAGxD,MAAQwD,IAAOutB,UAAYvtB,EAAGxD,KAAKm9D,SAAW35D,EAAGxD,KAAOwD,EAAGzD,WAGvE,SAASsvE,EAET7rE,EAEAy6D,EAEAhxE,EAAK6uJ,GACH,GAAIt4I,EAAI,CACNvW,EAAMA,GAAO8jC,SAEb,EAAG,CACD,GAAgB,MAAZktC,IAAqC,MAAhBA,EAAS,GAAaz6D,EAAGzD,aAAe9S,GAAOwI,EAAQ+N,EAAIy6D,GAAYxoE,EAAQ+N,EAAIy6D,KAAc69E,GAAct4I,IAAOvW,EAC7I,OAAOuW,EAGT,GAAIA,IAAOvW,EAAK,YAETuW,EAAKq4I,EAAgBr4I,IAGhC,OAAO,KAGT,IAgWIu4I,EAhWAC,EAAU,OAEd,SAAS1xD,EAAY9mF,EAAIn3B,EAAM4lG,GAC7B,GAAIzuE,GAAMn3B,EACR,GAAIm3B,EAAGi4F,UACLj4F,EAAGi4F,UAAUxpB,EAAQ,MAAQ,UAAU5lG,OAClC,CACL,IAAI65F,GAAa,IAAM1iE,EAAG0iE,UAAY,KAAKv9E,QAAQqzJ,EAAS,KAAKrzJ,QAAQ,IAAMtc,EAAO,IAAK,KAC3Fm3B,EAAG0iE,WAAaA,GAAa+L,EAAQ,IAAM5lG,EAAO,KAAKsc,QAAQqzJ,EAAS,MAK9E,SAAStlE,EAAIlzE,EAAIzN,EAAMtL,GACrB,IAAIoC,EAAQ2W,GAAMA,EAAG3W,MAErB,GAAIA,EAAO,CACT,QAAY,IAARpC,EAOF,OANIsmC,SAASi1C,aAAej1C,SAASi1C,YAAY3lE,iBAC/C5V,EAAMsmC,SAASi1C,YAAY3lE,iBAAiBmD,EAAI,IACvCA,EAAGg7H,eACZ/zI,EAAM+Y,EAAGg7H,mBAGK,IAATzoI,EAAkBtL,EAAMA,EAAIsL,GAE7BA,KAAQlJ,IAAsC,IAA5BkJ,EAAKthB,QAAQ,YACnCshB,EAAO,WAAaA,GAGtBlJ,EAAMkJ,GAAQtL,GAAsB,kBAARA,EAAmB,GAAK,OAK1D,SAAS2zI,EAAO56H,EAAIy4I,GAClB,IAAIC,EAAoB,GAExB,GAAkB,kBAAP14I,EACT04I,EAAoB14I,OAEpB,EAAG,CACD,IAAIwxG,EAAYt+B,EAAIlzE,EAAI,aAEpBwxG,GAA2B,SAAdA,IACfknC,EAAoBlnC,EAAY,IAAMknC,UAIhCD,IAAaz4I,EAAKA,EAAGzD,aAGjC,IAAIo8I,EAAWjrK,OAAOkrK,WAAalrK,OAAOutJ,iBAAmBvtJ,OAAOmrK,WAAanrK,OAAOorK,YAGxF,OAAOH,GAAY,IAAIA,EAASD,GAGlC,SAAS31E,EAAKt5E,EAAK29G,EAASv8H,GAC1B,GAAI4e,EAAK,CACP,IAAIu0E,EAAOv0E,EAAIm3E,qBAAqBwmC,GAChC9+H,EAAI,EACJyB,EAAIi0F,EAAKjyF,OAEb,GAAIlB,EACF,KAAOvC,EAAIyB,EAAGzB,IACZuC,EAASmzF,EAAK11F,GAAIA,GAItB,OAAO01F,EAGT,MAAO,GAGT,SAAS+6E,IACP,IAAIC,EAAmBzrH,SAASyrH,iBAEhC,OAAIA,GAGKzrH,SAAS80C,gBAcpB,SAAS42E,EAAQj5I,EAAIk5I,EAA2BC,EAA2BC,EAAWv6I,GACpF,GAAKmB,EAAG9B,uBAAyB8B,IAAOtyB,OAAxC,CACA,IAAI2rK,EAAQvqJ,EAAKF,EAAMG,EAAQF,EAAO3B,EAAQtB,EAmB9C,GAjBIoU,IAAOtyB,QAAUsyB,EAAGzD,YAAcyD,IAAO+4I,KAE3CjqJ,GADAuqJ,EAASr5I,EAAG9B,yBACCpP,IACbF,EAAOyqJ,EAAOzqJ,KACdG,EAASsqJ,EAAOtqJ,OAChBF,EAAQwqJ,EAAOxqJ,MACf3B,EAASmsJ,EAAOnsJ,OAChBtB,EAAQytJ,EAAOztJ,QAEfkD,EAAM,EACNF,EAAO,EACPG,EAASrhB,OAAO8lH,YAChB3kG,EAAQnhB,OAAO6lH,WACfrmG,EAASxf,OAAO8lH,YAChB5nG,EAAQle,OAAO6lH,aAGZ2lD,GAA6BC,IAA8Bn5I,IAAOtyB,SAErEmxB,EAAYA,GAAamB,EAAGzD,YAGvBu7I,GACH,GACE,GAAIj5I,GAAaA,EAAUX,wBAA0D,SAAhCg1E,EAAIr0E,EAAW,cAA2Bs6I,GAA4D,WAA/BjmE,EAAIr0E,EAAW,aAA2B,CACpK,IAAIy6I,EAAgBz6I,EAAUX,wBAE9BpP,GAAOwqJ,EAAcxqJ,IAAM1J,SAAS8tF,EAAIr0E,EAAW,qBACnDjQ,GAAQ0qJ,EAAc1qJ,KAAOxJ,SAAS8tF,EAAIr0E,EAAW,sBACrD9P,EAASD,EAAMuqJ,EAAOnsJ,OACtB2B,EAAQD,EAAOyqJ,EAAOztJ,MACtB,aAIKiT,EAAYA,EAAUtC,YAInC,GAAI68I,GAAap5I,IAAOtyB,OAAQ,CAE9B,IAAI6rK,EAAW3e,EAAO/7H,GAAamB,GAC/BmiH,EAASo3B,GAAYA,EAASzkK,EAC9BstI,EAASm3B,GAAYA,EAAS3wK,EAE9B2wK,IAKFxqJ,GAJAD,GAAOszH,IAGPl1H,GAAUk1H,GAEVvzH,GAJAD,GAAQuzH,IACRv2H,GAASu2H,IAOb,MAAO,CACLrzH,IAAKA,EACLF,KAAMA,EACNG,OAAQA,EACRF,MAAOA,EACPjD,MAAOA,EACPsB,OAAQA,IAYZ,SAASssJ,EAAex5I,EAAIy5I,EAAQC,GAKlC,IAJA,IAAIvhJ,EAASwhJ,EAA2B35I,GAAI,GACxC45I,EAAYX,EAAQj5I,GAAIy5I,GAGrBthJ,GAAQ,CACb,IAAI0hJ,EAAgBZ,EAAQ9gJ,GAAQuhJ,GASpC,KANmB,QAAfA,GAAuC,SAAfA,EAChBE,GAAaC,EAEbD,GAAaC,GAGX,OAAO1hJ,EACrB,GAAIA,IAAW4gJ,IAA6B,MAC5C5gJ,EAASwhJ,EAA2BxhJ,GAAQ,GAG9C,OAAO,EAYT,SAAS2hJ,EAAS95I,EAAI+5I,EAAU5oK,EAAS6oK,GAKvC,IAJA,IAAIC,EAAe,EACf3xK,EAAI,EACJywF,EAAW/4D,EAAG+4D,SAEXzwF,EAAIywF,EAAShtF,QAAQ,CAC1B,GAAkC,SAA9BgtF,EAASzwF,GAAG+gB,MAAMu7B,SAAsBm0C,EAASzwF,KAAO4xK,GAASC,QAAUH,GAAiBjhF,EAASzwF,KAAO4xK,GAASE,UAAYvuE,EAAQ9S,EAASzwF,GAAI6I,EAAQm0I,UAAWtlH,GAAI,GAAQ,CACvL,GAAIi6I,IAAiBF,EACnB,OAAOhhF,EAASzwF,GAGlB2xK,IAGF3xK,IAGF,OAAO,KAUT,SAASy9F,EAAU/lE,EAAIy6D,GAGrB,IAFA,IAAI1/C,EAAO/a,EAAGq6I,iBAEPt/H,IAASA,IAASm/H,GAASC,OAAkC,SAAzBjnE,EAAIn4D,EAAM,YAAyB0/C,IAAaxoE,EAAQ8oB,EAAM0/C,KACvG1/C,EAAOA,EAAKs/G,uBAGd,OAAOt/G,GAAQ,KAWjB,SAASrqC,EAAMsvB,EAAIy6D,GACjB,IAAI/pF,EAAQ,EAEZ,IAAKsvB,IAAOA,EAAGzD,WACb,OAAQ,EAKV,KAAOyD,EAAKA,EAAGq6H,wBACqB,aAA9Br6H,EAAGkgE,SAAShuF,eAAgC8tB,IAAOk6I,GAASv0J,OAAW80E,IAAYxoE,EAAQ+N,EAAIy6D,IACjG/pF,IAIJ,OAAOA,EAUT,SAAS4pK,EAAwBt6I,GAC/B,IAAI05B,EAAa,EACbi/E,EAAY,EACZ4hC,EAAcxB,IAElB,GAAI/4I,EACF,EAAG,CACD,IAAIu5I,EAAW3e,EAAO56H,GAClBmiH,EAASo3B,EAASzkK,EAClBstI,EAASm3B,EAAS3wK,EACtB8wD,GAAc15B,EAAGkiF,WAAaigC,EAC9BxJ,GAAa34G,EAAGiiF,UAAYmgC,QACrBpiH,IAAOu6I,IAAgBv6I,EAAKA,EAAGzD,aAG1C,MAAO,CAACm9B,EAAYi/E,GAsBtB,SAASghC,EAA2B35I,EAAIw6I,GAEtC,IAAKx6I,IAAOA,EAAG9B,sBAAuB,OAAO66I,IAC7C,IAAI/9E,EAAOh7D,EACPy6I,GAAU,EAEd,GAEE,GAAIz/E,EAAK/7D,YAAc+7D,EAAK0/E,aAAe1/E,EAAK97D,aAAe87D,EAAKk+B,aAAc,CAChF,IAAIyhD,EAAUznE,EAAIlY,GAElB,GAAIA,EAAK/7D,YAAc+7D,EAAK0/E,cAAqC,QAArBC,EAAQ12D,WAA4C,UAArB02D,EAAQ12D,YAA0BjpB,EAAK97D,aAAe87D,EAAKk+B,eAAsC,QAArByhD,EAAQz2D,WAA4C,UAArBy2D,EAAQz2D,WAAwB,CACpN,IAAKlpB,EAAK98D,uBAAyB88D,IAASztC,SAASs2B,KAAM,OAAOk1F,IAClE,GAAI0B,GAAWD,EAAa,OAAOx/E,EACnCy/E,GAAU,UAKPz/E,EAAOA,EAAKz+D,YAErB,OAAOw8I,IAeT,SAAS6B,EAAYC,EAAOC,GAC1B,OAAOxoK,KAAKc,MAAMynK,EAAM/rJ,OAASxc,KAAKc,MAAM0nK,EAAMhsJ,MAAQxc,KAAKc,MAAMynK,EAAMjsJ,QAAUtc,KAAKc,MAAM0nK,EAAMlsJ,OAAStc,KAAKc,MAAMynK,EAAM3tJ,UAAY5a,KAAKc,MAAM0nK,EAAM5tJ,SAAW5a,KAAKc,MAAMynK,EAAMjvJ,SAAWtZ,KAAKc,MAAM0nK,EAAMlvJ,OAKvN,SAASmvJ,EAASptK,EAAUyoI,GAC1B,OAAO,WACL,IAAKmiC,EAAkB,CACrB,IAAIrqK,EAAOG,UACP6vC,EAAQ/3B,KAEQ,IAAhBjY,EAAKnC,OACP4B,EAASlF,KAAKy1C,EAAOhwC,EAAK,IAE1BP,EAASa,MAAM0vC,EAAOhwC,GAGxBqqK,EAAmBlxG,YAAW,WAC5BkxG,OAAmB,IAClBniC,KAUT,SAAS4kC,EAASh7I,EAAIpsB,EAAGC,GACvBmsB,EAAGkiF,YAActuG,EACjBosB,EAAGiiF,WAAapuG,EAGlB,SAAS8R,EAAMqa,GACb,IAAIi7I,EAAUvtK,OAAOutK,QACjBjoD,EAAItlH,OAAO8sF,QAAU9sF,OAAOwtK,MAEhC,OAAID,GAAWA,EAAQ7hB,IACd6hB,EAAQ7hB,IAAIp5H,GAAIo0E,WAAU,GACxB4e,EACFA,EAAEhzF,GAAIra,OAAM,GAAM,GAElBqa,EAAGo0E,WAAU,GAoBxB,IAAI1Y,EAAU,YAAa,IAAItzD,MAAOm0H,UAEtC,SAAS4e,IACP,IACIC,EADAC,EAAkB,GAEtB,MAAO,CACLC,sBAAuB,YACrBD,EAAkB,GACbl1J,KAAKhV,QAAQoX,YACH,GAAGlb,MAAM5E,KAAK0d,KAAK6Z,GAAG+4D,UAC5B5kE,SAAQ,SAAUkkG,GACzB,GAA8B,SAA1BnlB,EAAImlB,EAAO,YAAyBA,IAAU6hD,GAASC,MAA3D,CACAkB,EAAgBxvJ,KAAK,CACnBhgB,OAAQwsH,EACRjqG,KAAM6qJ,EAAQ5gD,KAGhB,IAAIkjD,EAAWjE,EAAe,GAAI+D,EAAgBA,EAAgBtvK,OAAS,GAAGqiB,MAG9E,GAAIiqG,EAAMmjD,sBAAuB,CAC/B,IAAIC,EAAc7gB,EAAOviC,GAAO,GAE5BojD,IACFF,EAASzsJ,KAAO2sJ,EAAY9uK,EAC5B4uK,EAAS3sJ,MAAQ6sJ,EAAYhvK,GAIjC4rH,EAAMkjD,SAAWA,OAGrBG,kBAAmB,SAA2BjtE,GAC5C4sE,EAAgBxvJ,KAAK4iF,IAEvBktE,qBAAsB,SAA8B9vK,GAClDwvK,EAAgB7uJ,OApJtB,SAAuBjiB,EAAKa,GAC1B,IAAK,IAAI9C,KAAKiC,EACZ,GAAKA,EAAIJ,eAAe7B,GAExB,IAAK,IAAIuB,KAAOuB,EACd,GAAIA,EAAIjB,eAAeN,IAAQuB,EAAIvB,KAASU,EAAIjC,GAAGuB,GAAM,OAAOyF,OAAOhH,GAI3E,OAAQ,EA2ImBszK,CAAcP,EAAiB,CACpDxvK,OAAQA,IACN,IAENgwK,WAAY,SAAoBluK,GAC9B,IAAIuwC,EAAQ/3B,KAEZ,IAAKA,KAAKhV,QAAQoX,UAGhB,OAFA6+C,aAAag0G,QACW,oBAAbztK,GAAyBA,KAItC,IAAI+wJ,GAAY,EACZod,EAAgB,EACpBT,EAAgBlnJ,SAAQ,SAAUs6E,GAChC,IAAI/Z,EAAO,EACP7oF,EAAS4iG,EAAM5iG,OACf0vK,EAAW1vK,EAAO0vK,SAClBQ,EAAS9C,EAAQptK,GACjBmwK,EAAenwK,EAAOmwK,aACtBC,EAAapwK,EAAOowK,WACpBC,EAAgBztE,EAAMrgF,KACtB+tJ,EAAevhB,EAAO/uJ,GAAQ,GAE9BswK,IAEFJ,EAAOjtJ,KAAOqtJ,EAAaxvK,EAC3BovK,EAAOntJ,MAAQutJ,EAAa1vK,GAG9BZ,EAAOkwK,OAASA,EAEZlwK,EAAO2vK,uBAELZ,EAAYoB,EAAcD,KAAYnB,EAAYW,EAAUQ,KAC/DG,EAAcptJ,IAAMitJ,EAAOjtJ,MAAQotJ,EAActtJ,KAAOmtJ,EAAOntJ,SAAW2sJ,EAASzsJ,IAAMitJ,EAAOjtJ,MAAQysJ,EAAS3sJ,KAAOmtJ,EAAOntJ,QAE9H8lE,EA2EZ,SAA2BwnF,EAAeX,EAAUQ,EAAQ5qK,GAC1D,OAAOmB,KAAKsC,KAAKtC,KAAKiB,IAAIgoK,EAASzsJ,IAAMotJ,EAAcptJ,IAAK,GAAKxc,KAAKiB,IAAIgoK,EAAS3sJ,KAAOstJ,EAActtJ,KAAM,IAAMtc,KAAKsC,KAAKtC,KAAKiB,IAAIgoK,EAASzsJ,IAAMitJ,EAAOjtJ,IAAK,GAAKxc,KAAKiB,IAAIgoK,EAAS3sJ,KAAOmtJ,EAAOntJ,KAAM,IAAMzd,EAAQoX,UA5E1M6zJ,CAAkBF,EAAeF,EAAcC,EAAY/9H,EAAM/sC,UAKvEypK,EAAYmB,EAAQR,KACvB1vK,EAAOmwK,aAAeT,EACtB1vK,EAAOowK,WAAaF,EAEfrnF,IACHA,EAAOx2C,EAAM/sC,QAAQoX,WAGvB21B,EAAM20C,QAAQhnF,EAAQqwK,EAAeH,EAAQrnF,IAG3CA,IACFgqE,GAAY,EACZod,EAAgBxpK,KAAK6B,IAAI2nK,EAAepnF,GACxCttB,aAAav7D,EAAOwwK,qBACpBxwK,EAAOwwK,oBAAsBh1G,YAAW,WACtCx7D,EAAOiwK,cAAgB,EACvBjwK,EAAOmwK,aAAe,KACtBnwK,EAAO0vK,SAAW,KAClB1vK,EAAOowK,WAAa,KACpBpwK,EAAO2vK,sBAAwB,OAC9B9mF,GACH7oF,EAAO2vK,sBAAwB9mF,MAGnCttB,aAAag0G,GAER1c,EAGH0c,EAAsB/zG,YAAW,WACP,oBAAb15D,GAAyBA,MACnCmuK,GAJqB,oBAAbnuK,GAAyBA,IAOtC0tK,EAAkB,IAEpBxoF,QAAS,SAAiBhnF,EAAQywK,EAAaP,EAAQh0I,GACrD,GAAIA,EAAU,CACZmrE,EAAIrnG,EAAQ,aAAc,IAC1BqnG,EAAIrnG,EAAQ,YAAa,IACzB,IAAI0tK,EAAW3e,EAAOz0I,KAAK6Z,IACvBmiH,EAASo3B,GAAYA,EAASzkK,EAC9BstI,EAASm3B,GAAYA,EAAS3wK,EAC9B2zK,GAAcD,EAAY1tJ,KAAOmtJ,EAAOntJ,OAASuzH,GAAU,GAC3Dq6B,GAAcF,EAAYxtJ,IAAMitJ,EAAOjtJ,MAAQszH,GAAU,GAC7Dv2I,EAAO4wK,aAAeF,EACtB1wK,EAAO6wK,aAAeF,EACtBtpE,EAAIrnG,EAAQ,YAAa,eAAiB0wK,EAAa,MAAQC,EAAa,SAC5Er2J,KAAKw2J,gBAiBb,SAAiB9wK,GACf,OAAOA,EAAOmzG,YAlBe49D,CAAQ/wK,GAE/BqnG,EAAIrnG,EAAQ,aAAc,aAAek8B,EAAW,MAAQ5hB,KAAKhV,QAAQq5B,OAAS,IAAMrkB,KAAKhV,QAAQq5B,OAAS,KAC9G0oE,EAAIrnG,EAAQ,YAAa,sBACE,kBAApBA,EAAOm3C,UAAyBokB,aAAav7D,EAAOm3C,UAC3Dn3C,EAAOm3C,SAAWqkB,YAAW,WAC3B6rC,EAAIrnG,EAAQ,aAAc,IAC1BqnG,EAAIrnG,EAAQ,YAAa,IACzBA,EAAOm3C,UAAW,EAClBn3C,EAAO4wK,YAAa,EACpB5wK,EAAO6wK,YAAa,IACnB30I,MAcX,IAAI5d,EAAU,GACV/B,EAAW,CACby0J,qBAAqB,GAEnBC,EAAgB,CAClBlI,MAAO,SAAelzG,GAEpB,IAAK,IAAI/0B,KAAUvkB,EACbA,EAASje,eAAewiC,MAAaA,KAAU+0B,KACjDA,EAAO/0B,GAAUvkB,EAASukB,IAI9BxiB,EAAQgK,SAAQ,SAAU/pB,GACxB,GAAIA,EAAE2yK,aAAer7G,EAAOq7G,WAC1B,KAAM,iCAAiCv2J,OAAOk7C,EAAOq7G,WAAY,sBAGrE5yJ,EAAQ0B,KAAK61C,IAEfs7G,YAAa,SAAqBhpC,EAAWipC,EAAU5/I,GACrD,IAAI6gB,EAAQ/3B,KAEZA,KAAK+2J,eAAgB,EAErB7/I,EAAIqM,OAAS,WACXwU,EAAMg/H,eAAgB,GAGxB,IAAIC,EAAkBnpC,EAAY,SAClC7pH,EAAQgK,SAAQ,SAAUutC,GACnBu7G,EAASv7G,EAAOq7G,cAEjBE,EAASv7G,EAAOq7G,YAAYI,IAC9BF,EAASv7G,EAAOq7G,YAAYI,GAAiB7F,EAAe,CAC1D2F,SAAUA,GACT5/I,IAKD4/I,EAAS9rK,QAAQuwD,EAAOq7G,aAAeE,EAASv7G,EAAOq7G,YAAY/oC,IACrEipC,EAASv7G,EAAOq7G,YAAY/oC,GAAWsjC,EAAe,CACpD2F,SAAUA,GACT5/I,SAIT+/I,kBAAmB,SAA2BH,EAAUj9I,EAAI5X,EAAUjX,GAYpE,IAAK,IAAIw7B,KAXTxiB,EAAQgK,SAAQ,SAAUutC,GACxB,IAAIq7G,EAAar7G,EAAOq7G,WACxB,GAAKE,EAAS9rK,QAAQ4rK,IAAgBr7G,EAAOm7G,oBAA7C,CACA,IAAIpP,EAAc,IAAI/rG,EAAOu7G,EAAUj9I,EAAIi9I,EAAS9rK,SACpDs8J,EAAYwP,SAAWA,EACvBxP,EAAYt8J,QAAU8rK,EAAS9rK,QAC/B8rK,EAASF,GAActP,EAEvB8J,EAASnvJ,EAAUqlJ,EAAYrlJ,cAGd60J,EAAS9rK,QAC1B,GAAK8rK,EAAS9rK,QAAQhH,eAAewiC,GAArC,CACA,IAAImhF,EAAW3nG,KAAKk3J,aAAaJ,EAAUtwI,EAAQswI,EAAS9rK,QAAQw7B,IAE5C,qBAAbmhF,IACTmvD,EAAS9rK,QAAQw7B,GAAUmhF,KAIjCwvD,mBAAoB,SAA4Bz0K,EAAMo0K,GACpD,IAAIM,EAAkB,GAMtB,OALApzJ,EAAQgK,SAAQ,SAAUutC,GACc,oBAA3BA,EAAO67G,iBAElBhG,EAASgG,EAAiB77G,EAAO67G,gBAAgB90K,KAAKw0K,EAASv7G,EAAOq7G,YAAal0K,OAE9E00K,GAETF,aAAc,SAAsBJ,EAAUp0K,EAAMU,GAClD,IAAIi0K,EASJ,OARArzJ,EAAQgK,SAAQ,SAAUutC,GAEnBu7G,EAASv7G,EAAOq7G,aAEjBr7G,EAAO+7G,iBAA2D,oBAAjC/7G,EAAO+7G,gBAAgB50K,KAC1D20K,EAAgB97G,EAAO+7G,gBAAgB50K,GAAMJ,KAAKw0K,EAASv7G,EAAOq7G,YAAaxzK,OAG5Ei0K,IAIX,SAASvpC,EAAcrxG,GACrB,IAAIq6I,EAAWr6I,EAAKq6I,SAChBS,EAAS96I,EAAK86I,OACd70K,EAAO+5B,EAAK/5B,KACZ80K,EAAW/6I,EAAK+6I,SAChBC,EAAUh7I,EAAKg7I,QACfC,EAAOj7I,EAAKi7I,KACZC,EAASl7I,EAAKk7I,OACdC,EAAWn7I,EAAKm7I,SAChBjP,EAAWlsI,EAAKksI,SAChBkP,EAAoBp7I,EAAKo7I,kBACzBC,EAAoBr7I,EAAKq7I,kBACzBjlE,EAAgBp2E,EAAKo2E,cACrBklE,EAAct7I,EAAKs7I,YACnBC,EAAuBv7I,EAAKu7I,qBAEhC,GADAlB,EAAWA,GAAYS,GAAUA,EAAOhiF,GACxC,CACA,IAAIr+D,EACAlsB,EAAU8rK,EAAS9rK,QACnBitK,EAAS,KAAOv1K,EAAKoJ,OAAO,GAAGC,cAAgBrJ,EAAKsG,OAAO,IAE3DzB,OAAOssI,aAAgB89B,GAAeC,GAMxC16I,EAAMkwB,SAAS0sF,YAAY,UACvBqc,UAAUztJ,GAAM,GAAM,GAN1Bw0B,EAAM,IAAI28G,YAAYnxI,EAAM,CAC1B+wG,SAAS,EACTj4C,YAAY,IAOhBtkC,EAAIwM,GAAKg0I,GAAQH,EACjBrgJ,EAAIvyB,KAAOgzK,GAAUJ,EACrBrgJ,EAAImL,KAAOm1I,GAAYD,EACvBrgJ,EAAI1X,MAAQi4J,EACZvgJ,EAAI0gJ,SAAWA,EACf1gJ,EAAIyxI,SAAWA,EACfzxI,EAAI2gJ,kBAAoBA,EACxB3gJ,EAAI4gJ,kBAAoBA,EACxB5gJ,EAAI27E,cAAgBA,EACpB37E,EAAIghJ,SAAWH,EAAcA,EAAYI,iBAAcllK,EAEvD,IAAImlK,EAAqBjH,EAAeA,EAAe,GAAI6G,GAAuBrB,EAAcQ,mBAAmBz0K,EAAMo0K,IAEzH,IAAK,IAAItwI,KAAU4xI,EACjBlhJ,EAAIsP,GAAU4xI,EAAmB5xI,GAG/B+wI,GACFA,EAAOzpC,cAAc52G,GAGnBlsB,EAAQitK,IACVjtK,EAAQitK,GAAQ31K,KAAKw0K,EAAU5/I,IAInC,IAAImhJ,EAAY,CAAC,OAEbxB,EAAc,SAAqBhpC,EAAWipC,GAChD,IAAIr6I,EAAOv0B,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,GAC3E2qG,EAAgBp2E,EAAKvF,IACrB/R,EAAOksJ,EAAyB50I,EAAM47I,GAE1C1B,EAAcE,YAAYlzK,KAAKowK,GAA/B4C,CAAyC9oC,EAAWipC,EAAU3F,EAAe,CAC3E5zB,OAAQA,EACR+6B,SAAUA,EACVC,QAASA,EACThB,OAAQA,EACRhZ,OAAQA,EACRia,WAAYA,GACZf,QAASA,GACTgB,YAAaA,GACbC,YAAaC,GACbZ,YAAaA,GACba,eAAgB7E,GAAStuI,OACzBotE,cAAeA,EACf+kE,SAAUA,GACVC,kBAAmBA,GACnBlP,SAAUA,GACVmP,kBAAmBA,GACnBe,mBAAoBC,GACpBC,qBAAsBC,GACtBC,eAAgB,WACdR,IAAc,GAEhBS,cAAe,WACbT,IAAc,GAEhBU,sBAAuB,SAA+Bz2K,GACpD02K,EAAe,CACbtC,SAAUA,EACVp0K,KAAMA,EACNmwG,cAAeA,MAGlB1tF,KAGL,SAASi0J,EAAepsJ,GACtB8gH,EAAcqjC,EAAe,CAC3B4G,YAAaA,GACbN,QAASA,GACTD,SAAUj6B,EACVg6B,OAAQA,EACRK,SAAUA,GACVC,kBAAmBA,GACnBlP,SAAUA,GACVmP,kBAAmBA,IAClB9qJ,IAGL,IAAIuwH,EACA+6B,EACAC,EACAhB,EACAhZ,EACAia,GACAf,GACAgB,GACAb,GACAjP,GACAkP,GACAC,GACAuB,GACAtB,GAIAuB,GACAC,GACAC,GACAC,GACAC,GACAC,GACAhB,GACAiB,GACAl8B,GAGAm8B,GAEJC,GAhBIC,IAAsB,EACtBC,IAAkB,EAClBC,GAAY,GAUZC,IAAwB,EACxBC,IAAyB,EAIzBC,GAAmC,GAEvCC,IAAU,EACNC,GAAoB,GAGpBC,GAAqC,qBAAbnzH,SACxBozH,GAA0BzI,EAC1B0I,GAAmB7I,GAAQD,EAAa,WAAa,QAEzD+I,GAAmBH,KAAmBvI,IAAqBD,GAAO,cAAe3qH,SAAS6sC,cAAc,OACpG0mF,GAA0B,WAC5B,GAAKJ,GAAL,CAEA,GAAI5I,EACF,OAAO,EAGT,IAAI93I,EAAKutB,SAAS6sC,cAAc,KAEhC,OADAp6D,EAAG3W,MAAMk1F,QAAU,sBACe,SAA3Bv+E,EAAG3W,MAAM03J,eATY,GAW1BC,GAAmB,SAA0BhhJ,EAAI7uB,GACnD,IAAI8vK,EAAQ/tE,EAAIlzE,GACZkhJ,EAAU97J,SAAS67J,EAAMr1J,OAASxG,SAAS67J,EAAMnsH,aAAe1vC,SAAS67J,EAAMlsH,cAAgB3vC,SAAS67J,EAAM3sD,iBAAmBlvG,SAAS67J,EAAM1sD,kBAChJ4sD,EAASrH,EAAS95I,EAAI,EAAG7uB,GACzBiwK,EAAStH,EAAS95I,EAAI,EAAG7uB,GACzBkwK,EAAgBF,GAAUjuE,EAAIiuE,GAC9BG,EAAiBF,GAAUluE,EAAIkuE,GAC/BG,EAAkBF,GAAiBj8J,SAASi8J,EAAcziE,YAAcx5F,SAASi8J,EAAcntD,aAAe+kD,EAAQkI,GAAQv1J,MAC9H41J,EAAmBF,GAAkBl8J,SAASk8J,EAAe1iE,YAAcx5F,SAASk8J,EAAeptD,aAAe+kD,EAAQmI,GAAQx1J,MAEtI,GAAsB,SAAlBq1J,EAAMr8H,QACR,MAA+B,WAAxBq8H,EAAMQ,eAAsD,mBAAxBR,EAAMQ,cAAqC,WAAa,aAGrG,GAAsB,SAAlBR,EAAMr8H,QACR,OAAOq8H,EAAMS,oBAAoB35J,MAAM,KAAKhc,QAAU,EAAI,WAAa,aAGzE,GAAIo1K,GAAUE,EAAqB,OAAgC,SAA3BA,EAAqB,MAAc,CACzE,IAAIM,EAAgD,SAA3BN,EAAqB,MAAe,OAAS,QACtE,OAAOD,GAAoC,SAAzBE,EAAep9G,OAAoBo9G,EAAep9G,QAAUy9G,EAAmC,aAAb,WAGtG,OAAOR,IAAqC,UAA1BE,EAAcz8H,SAAiD,SAA1By8H,EAAcz8H,SAAgD,UAA1By8H,EAAcz8H,SAAiD,SAA1By8H,EAAcz8H,SAAsB28H,GAAmBL,GAAuC,SAA5BD,EAAML,KAAgCQ,GAAsC,SAA5BH,EAAML,KAAgCW,EAAkBC,EAAmBN,GAAW,WAAa,cAiCnVU,GAAgB,SAAuBzwK,GACzC,SAAS0wK,EAAKt4K,EAAOu4K,GACnB,OAAO,SAAUj4I,EAAI/+B,EAAM44I,EAAQrmH,GACjC,IAAI0kJ,EAAYl4I,EAAG14B,QAAQ6wK,MAAMn5K,MAAQiC,EAAKqG,QAAQ6wK,MAAMn5K,MAAQghC,EAAG14B,QAAQ6wK,MAAMn5K,OAASiC,EAAKqG,QAAQ6wK,MAAMn5K,KAEjH,GAAa,MAATU,IAAkBu4K,GAAQC,GAG5B,OAAO,EACF,GAAa,MAATx4K,IAA2B,IAAVA,EAC1B,OAAO,EACF,GAAIu4K,GAAkB,UAAVv4K,EACjB,OAAOA,EACF,GAAqB,oBAAVA,EAChB,OAAOs4K,EAAKt4K,EAAMsgC,EAAI/+B,EAAM44I,EAAQrmH,GAAMykJ,EAAnCD,CAAyCh4I,EAAI/+B,EAAM44I,EAAQrmH,GAElE,IAAI4kJ,GAAcH,EAAOj4I,EAAK/+B,GAAMqG,QAAQ6wK,MAAMn5K,KAClD,OAAiB,IAAVU,GAAmC,kBAAVA,GAAsBA,IAAU04K,GAAc14K,EAAMqtB,MAAQrtB,EAAM0H,QAAQgxK,IAAe,GAK/H,IAAID,EAAQ,GACRE,EAAgB/wK,EAAQ6wK,MAEvBE,GAA2C,UAA1B32K,EAAQ22K,KAC5BA,EAAgB,CACdr5K,KAAMq5K,IAIVF,EAAMn5K,KAAOq5K,EAAcr5K,KAC3Bm5K,EAAMG,UAAYN,EAAKK,EAAcJ,MAAM,GAC3CE,EAAMI,SAAWP,EAAKK,EAAcG,KACpCL,EAAMM,YAAcJ,EAAcI,YAClCnxK,EAAQ6wK,MAAQA,GAEd/C,GAAsB,YACnB6B,IAA2BpC,GAC9BxrE,EAAIwrE,EAAS,UAAW,SAGxBS,GAAwB,YACrB2B,IAA2BpC,GAC9BxrE,EAAIwrE,EAAS,UAAW,KAKxBgC,IACFnzH,SAAS1tB,iBAAiB,SAAS,SAAUxC,GAC3C,GAAI8iJ,GAKF,OAJA9iJ,EAAIw5E,iBACJx5E,EAAIs5E,iBAAmBt5E,EAAIs5E,kBAC3Bt5E,EAAIu5E,0BAA4Bv5E,EAAIu5E,2BACpCupE,IAAkB,GACX,KAER,GAGL,IAAIoC,GAAgC,SAAuCllJ,GACzE,GAAIqmH,EAAQ,CACVrmH,EAAMA,EAAIO,QAAUP,EAAIO,QAAQ,GAAKP,EAErC,IAAI+qB,GAhF2Dx0C,EAgFrBypB,EAAIc,QAhFoBtqB,EAgFXwpB,EAAIe,QA9E7DgiJ,GAAU/9G,MAAK,SAAU46G,GACvB,IAAIv/B,EAAYu/B,EAASvhF,GAASvqF,QAAQqxK,qBAC1C,GAAK9kC,IAAa33C,EAAUk3E,GAA5B,CACA,IAAI7uJ,EAAO6qJ,EAAQgE,GACfwF,EAAqB7uK,GAAKwa,EAAKQ,KAAO8uH,GAAa9pI,GAAKwa,EAAKS,MAAQ6uH,EACrEglC,EAAmB7uK,GAAKua,EAAKU,IAAM4uH,GAAa7pI,GAAKua,EAAKW,OAAS2uH,EAEvE,OAAI+kC,GAAsBC,EACjBt8J,EAAM62J,OADf,MAIK72J,GAqEL,GAAIgiC,EAAS,CAEX,IAAIlf,EAAQ,GAEZ,IAAK,IAAI5gC,KAAK+0B,EACRA,EAAIlzB,eAAe7B,KACrB4gC,EAAM5gC,GAAK+0B,EAAI/0B,IAInB4gC,EAAMr9B,OAASq9B,EAAMw0I,OAASt1H,EAC9Blf,EAAM2tE,oBAAiB,EACvB3tE,EAAMytE,qBAAkB,EAExBvuD,EAAQszC,GAASinF,YAAYz5I,IAhGL,IAAqCt1B,EAAGC,EAChEuS,GAoGFw8J,GAAwB,SAA+BvlJ,GACrDqmH,GACFA,EAAOnnH,WAAWm/D,GAASmnF,iBAAiBxlJ,EAAIxxB,SAUpD,SAASquK,GAASl6I,EAAI7uB,GACpB,IAAM6uB,IAAMA,EAAG25D,UAA4B,IAAhB35D,EAAG25D,SAC5B,KAAM,8CAA8CnzE,OAAO,GAAGpZ,SAAS3E,KAAKu3B,IAG9E7Z,KAAK6Z,GAAKA,EAEV7Z,KAAKhV,QAAUA,EAAUomK,EAAS,GAAIpmK,GAEtC6uB,EAAG07D,GAAWv1E,KACd,IAAIiC,EAAW,CACb45J,MAAO,KACP7pI,MAAM,EACNtC,UAAU,EACVitI,MAAO,KACPvrE,OAAQ,KACR+tC,UAAW,WAAWh4I,KAAK0yB,EAAGkgE,UAAY,MAAQ,KAClD6iF,cAAe,EAEfC,YAAY,EAEZC,sBAAuB,KAEvBC,mBAAmB,EACnBjhJ,UAAW,WACT,OAAO++I,GAAiBhhJ,EAAI7Z,KAAKhV,UAEnCgyK,WAAY,iBACZC,YAAa,kBACbC,UAAW,gBACX/uC,OAAQ,SACRr9G,OAAQ,KACRqsJ,iBAAiB,EACjB/6J,UAAW,EACXiiB,OAAQ,KACRmvG,QAAS,SAAiB4pC,EAAc7/B,GACtC6/B,EAAa5pC,QAAQ,OAAQ+J,EAAOl/C,cAEtCg/E,YAAY,EACZC,gBAAgB,EAChBC,WAAY,UACZh5I,MAAO,EACPi5I,kBAAkB,EAClBC,qBAAsBt0K,OAAO8V,SAAW9V,OAAS5B,QAAQ0X,SAAS1X,OAAOib,iBAAkB,KAAO,EAClGk7J,eAAe,EACfC,cAAe,oBACfC,gBAAgB,EAChBC,kBAAmB,EACnBC,eAAgB,CACdrwK,EAAG,EACHC,EAAG,GAELqwK,gBAA4C,IAA5BhK,GAASgK,gBAA4B,iBAAkBx2K,SAAWuqK,EAClFuK,qBAAsB,GAIxB,IAAK,IAAI35K,KAFTi0K,EAAcM,kBAAkBj3J,KAAM6Z,EAAI5X,GAEzBA,IACbvf,KAAQsI,KAAaA,EAAQtI,GAAQuf,EAASvf,IAMlD,IAAK,IAAIiF,KAHT8zK,GAAczwK,GAGCgV,KACQ,MAAjBrY,EAAGmE,OAAO,IAAkC,oBAAbkU,KAAKrY,KACtCqY,KAAKrY,GAAMqY,KAAKrY,GAAIhE,KAAKqc,OAK7BA,KAAKg+J,iBAAkBhzK,EAAQ0yK,eAAwBhD,GAEnD16J,KAAKg+J,kBAEPh+J,KAAKhV,QAAQyyK,oBAAsB,GAIjCzyK,EAAQ+yK,eACV7oE,EAAGr7E,EAAI,cAAe7Z,KAAKi+J,cAE3B/oE,EAAGr7E,EAAI,YAAa7Z,KAAKi+J,aACzB/oE,EAAGr7E,EAAI,aAAc7Z,KAAKi+J,cAGxBj+J,KAAKg+J,kBACP9oE,EAAGr7E,EAAI,WAAY7Z,MACnBk1F,EAAGr7E,EAAI,YAAa7Z,OAGtBi6J,GAAUv0J,KAAK1F,KAAK6Z,IAEpB7uB,EAAQ2xK,OAAS3xK,EAAQ2xK,MAAM35K,KAAOgd,KAAKgyB,KAAKhnC,EAAQ2xK,MAAM35K,IAAIgd,OAAS,IAE3EoxJ,EAASpxJ,KAAMg1J,KAyrCjB,SAASkJ,GAAQvG,EAAQD,EAAMn6B,EAAQ4gC,EAAU3G,EAAU4G,EAAYvrE,EAAewrE,GACpF,IAAInnJ,EAGAonJ,EAFAxH,EAAWa,EAAOpiF,GAClBgpF,EAAWzH,EAAS9rK,QAAQwzK,OA2BhC,OAxBIj3K,OAAOssI,aAAgB89B,GAAeC,GAMxC16I,EAAMkwB,SAAS0sF,YAAY,UACvBqc,UAAU,QAAQ,GAAM,GAN5Bj5H,EAAM,IAAI28G,YAAY,OAAQ,CAC5BpgC,SAAS,EACTj4C,YAAY,IAOhBtkC,EAAIwM,GAAKg0I,EACTxgJ,EAAIvyB,KAAOgzK,EACXzgJ,EAAI+8I,QAAU12B,EACdrmH,EAAIunJ,YAAcN,EAClBjnJ,EAAI+9E,QAAUuiE,GAAYE,EAC1BxgJ,EAAIwnJ,YAAcN,GAActL,EAAQ4E,GACxCxgJ,EAAImnJ,gBAAkBA,EACtBnnJ,EAAI27E,cAAgBA,EACpB8kE,EAAO7pC,cAAc52G,GAEjBqnJ,IACFD,EAASC,EAASj8K,KAAKw0K,EAAU5/I,EAAK27E,IAGjCyrE,EAGT,SAASK,GAAkB9kJ,GACzBA,EAAGslH,WAAY,EAGjB,SAASy/B,KACPvE,IAAU,EAmFZ,SAASwE,GAAYhlJ,GAKnB,IAJA,IAAIhuB,EAAMguB,EAAGonG,QAAUpnG,EAAG0iE,UAAY1iE,EAAGo8C,IAAMp8C,EAAG4mE,KAAO5mE,EAAGwkE,YACxDl8F,EAAI0J,EAAIjG,OACRk5K,EAAM,EAEH38K,KACL28K,GAAOjzK,EAAI8tF,WAAWx3F,GAGxB,OAAO28K,EAAI73K,SAAS,IActB,SAAS83K,GAAUp3K,GACjB,OAAOu5D,WAAWv5D,EAAI,GAGxB,SAASq3K,GAAgBp2K,GACvB,OAAOq4D,aAAar4D,GA30CtBmrK,GAAShwK,UAET,CACEsB,YAAa0uK,GACb2I,iBAAkB,SAA0Bh3K,GACrCsa,KAAK6Z,GAAGs9D,SAASzxF,IAAWA,IAAWsa,KAAK6Z,KAC/C+/I,GAAa,OAGjBqF,cAAe,SAAuB/nJ,EAAKxxB,GACzC,MAAyC,oBAA3Bsa,KAAKhV,QAAQ8wB,UAA2B9b,KAAKhV,QAAQ8wB,UAAUx5B,KAAK0d,KAAMkX,EAAKxxB,EAAQ63I,GAAUv9H,KAAKhV,QAAQ8wB,WAE9HmiJ,YAAa,SAEb/mJ,GACE,GAAKA,EAAIskC,WAAT,CAEA,IAAIzjB,EAAQ/3B,KACR6Z,EAAK7Z,KAAK6Z,GACV7uB,EAAUgV,KAAKhV,QACfmyK,EAAkBnyK,EAAQmyK,gBAC1Bp0K,EAAOmuB,EAAInuB,KACXmzI,EAAQhlH,EAAIO,SAAWP,EAAIO,QAAQ,IAAMP,EAAIq9E,aAAmC,UAApBr9E,EAAIq9E,aAA2Br9E,EAC3FxxB,GAAUw2I,GAAShlH,GAAKxxB,OACxBw5K,EAAiBhoJ,EAAIxxB,OAAOmyB,aAAeX,EAAIm1C,MAAQn1C,EAAIm1C,KAAK,IAAMn1C,EAAI6lI,cAAgB7lI,EAAI6lI,eAAe,KAAOr3J,EACpHorB,EAAS9lB,EAAQ8lB,OAKrB,GA6xCJ,SAAgChP,GAC9Bw4J,GAAkB10K,OAAS,EAC3B,IAAImnB,EAASjL,EAAK24E,qBAAqB,SACnChvF,EAAMshB,EAAOnnB,OAEjB,KAAO6F,KAAO,CACZ,IAAIouB,EAAK9M,EAAOthB,GAChBouB,EAAG8mE,SAAW25E,GAAkB50J,KAAKmU,IAvyCrCslJ,CAAuBtlJ,IAGnB0jH,KAIA,wBAAwBp2I,KAAK4B,IAAwB,IAAfmuB,EAAIy7E,QAAgB3nG,EAAQ0kC,YAKlEwvI,EAAe1kB,oBAKdx6I,KAAKg+J,kBAAmBlM,IAAUpsK,GAA2C,WAAjCA,EAAOu7H,QAAQl1H,mBAIhErG,EAASggG,EAAQhgG,EAAQsF,EAAQm0I,UAAWtlH,GAAI,MAElCn0B,EAAOm3C,WAIjB27H,KAAe9yK,EAAnB,CASA,GAHAkyK,GAAWrtK,EAAM7E,GACjBmyK,GAAoBttK,EAAM7E,EAAQsF,EAAQm0I,WAEpB,oBAAXruH,GACT,GAAIA,EAAOxuB,KAAK0d,KAAMkX,EAAKxxB,EAAQsa,MAcjC,OAbAo5J,EAAe,CACbtC,SAAU/+H,EACVw/H,OAAQ2H,EACRx8K,KAAM,SACN80K,SAAU9xK,EACVgyK,KAAM79I,EACN89I,OAAQ99I,IAGVg9I,EAAY,SAAU9+H,EAAO,CAC3B7gB,IAAKA,SAEPimJ,GAAmBjmJ,EAAIskC,YAActkC,EAAIw5E,uBAGtC,GAAI5/E,IACTA,EAASA,EAAOlP,MAAM,KAAKs6C,MAAK,SAAUkjH,GAGxC,GAFAA,EAAW15E,EAAQw5E,EAAgBE,EAAS1yD,OAAQ7yF,GAAI,GAetD,OAZAu/I,EAAe,CACbtC,SAAU/+H,EACVw/H,OAAQ6H,EACR18K,KAAM,SACN80K,SAAU9xK,EACViyK,OAAQ99I,EACR69I,KAAM79I,IAGRg9I,EAAY,SAAU9+H,EAAO,CAC3B7gB,IAAKA,KAEA,MAMT,YADAimJ,GAAmBjmJ,EAAIskC,YAActkC,EAAIw5E,kBAKzC1lG,EAAQomG,SAAW1L,EAAQw5E,EAAgBl0K,EAAQomG,OAAQv3E,GAAI,IAKnE7Z,KAAKq/J,kBAAkBnoJ,EAAKglH,EAAOx2I,MAErC25K,kBAAmB,SAEnBnoJ,EAEAglH,EAEAx2I,GACE,IAII45K,EAJAvnI,EAAQ/3B,KACR6Z,EAAKke,EAAMle,GACX7uB,EAAU+sC,EAAM/sC,QAChBwvF,EAAgB3gE,EAAG2gE,cAGvB,GAAI90F,IAAW63I,GAAU73I,EAAO0wB,aAAeyD,EAAI,CACjD,IAAIskJ,EAAWrL,EAAQptK,GAwEvB,GAvEA6xK,EAAS19I,EAETy+I,GADA/6B,EAAS73I,GACS0wB,WAClBmoI,EAAShhB,EAAO/hD,YAChBg9E,GAAa9yK,EACb2zK,GAAcruK,EAAQ6wK,MACtB9H,GAASE,QAAU12B,EACnB+7B,GAAS,CACP5zK,OAAQ63I,EACRvlH,SAAUkkH,GAAShlH,GAAKc,QACxBC,SAAUikH,GAAShlH,GAAKe,SAE1ByhJ,GAAkBJ,GAAOthJ,QAAUmmJ,EAAS11J,KAC5CkxJ,GAAiBL,GAAOrhJ,QAAUkmJ,EAASx1J,IAC3C3I,KAAKu/J,QAAUrjC,GAAShlH,GAAKc,QAC7BhY,KAAKw/J,QAAUtjC,GAAShlH,GAAKe,QAC7BslH,EAAOr6H,MAAM,eAAiB,MAE9Bo8J,EAAc,WACZzI,EAAY,aAAc9+H,EAAO,CAC/B7gB,IAAKA,IAGH68I,GAASgD,cACXh/H,EAAM0nI,WAOR1nI,EAAM2nI,6BAED7N,GAAW95H,EAAMimI,kBACpBzgC,EAAO4B,WAAY,GAIrBpnG,EAAM4nI,kBAAkBzoJ,EAAKglH,GAG7Bk9B,EAAe,CACbtC,SAAU/+H,EACVr1C,KAAM,SACNmwG,cAAe37E,IAIjBypF,EAAY48B,EAAQvyI,EAAQiyK,aAAa,KAI3CjyK,EAAQmjI,OAAOvsH,MAAM,KAAKoM,SAAQ,SAAUoxJ,GAC1CxiF,EAAK2gD,EAAQ6hC,EAAS1yD,OAAQiyD,OAEhCzpE,EAAG1a,EAAe,WAAY4hF,IAC9BlnE,EAAG1a,EAAe,YAAa4hF,IAC/BlnE,EAAG1a,EAAe,YAAa4hF,IAC/BlnE,EAAG1a,EAAe,UAAWziD,EAAM0nI,SACnCvqE,EAAG1a,EAAe,WAAYziD,EAAM0nI,SACpCvqE,EAAG1a,EAAe,cAAeziD,EAAM0nI,SAEnC5N,GAAW7xJ,KAAKg+J,kBAClBh+J,KAAKhV,QAAQyyK,oBAAsB,EACnClgC,EAAO4B,WAAY,GAGrB03B,EAAY,aAAc72J,KAAM,CAC9BkX,IAAKA,KAGHlsB,EAAQu5B,OAAWv5B,EAAQwyK,mBAAoBthC,GAAYl8H,KAAKg+J,kBAAqBpM,GAAQD,GAkB/F2N,QAlB6G,CAC7G,GAAIvL,GAASgD,cAGX,YAFA/2J,KAAKy/J,UAQPvqE,EAAG1a,EAAe,UAAWziD,EAAM6nI,qBACnC1qE,EAAG1a,EAAe,WAAYziD,EAAM6nI,qBACpC1qE,EAAG1a,EAAe,cAAeziD,EAAM6nI,qBACvC1qE,EAAG1a,EAAe,YAAaziD,EAAM8nI,8BACrC3qE,EAAG1a,EAAe,YAAaziD,EAAM8nI,8BACrC70K,EAAQ+yK,gBAAkB7oE,EAAG1a,EAAe,cAAeziD,EAAM8nI,8BACjE9nI,EAAM+nI,gBAAkB5+G,WAAWo+G,EAAat0K,EAAQu5B,UAM9Ds7I,6BAA8B,SAE9Bv5K,GACE,IAAI41I,EAAQ51I,EAAEmxB,QAAUnxB,EAAEmxB,QAAQ,GAAKnxB,EAEnC6F,KAAK6B,IAAI7B,KAAKyB,IAAIsuI,EAAMlkH,QAAUhY,KAAKu/J,QAASpzK,KAAKyB,IAAIsuI,EAAMjkH,QAAUjY,KAAKw/J,UAAYrzK,KAAKkB,MAAM2S,KAAKhV,QAAQyyK,qBAAuBz9J,KAAKg+J,iBAAmBz2K,OAAOib,kBAAoB,KAC9LxC,KAAK4/J,uBAGTA,oBAAqB,WACnBriC,GAAUohC,GAAkBphC,GAC5Bt8E,aAAajhD,KAAK8/J,iBAElB9/J,KAAK0/J,6BAEPA,0BAA2B,WACzB,IAAIllF,EAAgBx6E,KAAK6Z,GAAG2gE,cAC5B0V,EAAI1V,EAAe,UAAWx6E,KAAK4/J,qBACnC1vE,EAAI1V,EAAe,WAAYx6E,KAAK4/J,qBACpC1vE,EAAI1V,EAAe,cAAex6E,KAAK4/J,qBACvC1vE,EAAI1V,EAAe,YAAax6E,KAAK6/J,8BACrC3vE,EAAI1V,EAAe,YAAax6E,KAAK6/J,8BACrC3vE,EAAI1V,EAAe,cAAex6E,KAAK6/J,+BAEzCF,kBAAmB,SAEnBzoJ,EAEAglH,GACEA,EAAQA,GAA4B,SAAnBhlH,EAAIq9E,aAA0Br9E,GAE1ClX,KAAKg+J,iBAAmB9hC,EACvBl8H,KAAKhV,QAAQ+yK,eACf7oE,EAAG9tD,SAAU,cAAepnC,KAAK+/J,cAEjC7qE,EAAG9tD,SADM80F,EACI,YAEA,YAFal8H,KAAK+/J,eAKjC7qE,EAAGqoC,EAAQ,UAAWv9H,MACtBk1F,EAAGqiE,EAAQ,YAAav3J,KAAKggK,eAG/B,IACM54H,SAAS+nD,UAEX4vE,IAAU,WACR33H,SAAS+nD,UAAUxH,WAGrBpgG,OAAO04K,eAAeC,kBAExB,MAAOz5K,MAEX05K,aAAc,SAAsBzzJ,EAAUwK,GAG5C,GAFA6iJ,IAAsB,EAElBxC,GAAUh6B,EAAQ,CACpBs5B,EAAY,cAAe72J,KAAM,CAC/BkX,IAAKA,IAGHlX,KAAKg+J,iBACP9oE,EAAG9tD,SAAU,WAAYq1H,IAG3B,IAAIzxK,EAAUgV,KAAKhV,SAElB0hB,GAAYi0F,EAAY48B,EAAQvyI,EAAQkyK,WAAW,GACpDv8D,EAAY48B,EAAQvyI,EAAQgyK,YAAY,GACxCjJ,GAAStuI,OAASzlB,KAClB0M,GAAY1M,KAAKogK,eAEjBhH,EAAe,CACbtC,SAAU92J,KACVtd,KAAM,QACNmwG,cAAe37E,SAGjBlX,KAAKqgK,YAGTC,iBAAkB,WAChB,GAAI/G,GAAU,CACZv5J,KAAKu/J,OAAShG,GAASvhJ,QACvBhY,KAAKw/J,OAASjG,GAASthJ,QAEvB6gJ,KAKA,IAHA,IAAIpzK,EAAS0hD,SAASm5H,iBAAiBhH,GAASvhJ,QAASuhJ,GAASthJ,SAC9DjG,EAAStsB,EAENA,GAAUA,EAAOmyB,aACtBnyB,EAASA,EAAOmyB,WAAW0oJ,iBAAiBhH,GAASvhJ,QAASuhJ,GAASthJ,YACxDjG,GACfA,EAAStsB,EAKX,GAFA63I,EAAOnnH,WAAWm/D,GAASmnF,iBAAiBh3K,GAExCssB,EACF,EAAG,CACD,GAAIA,EAAOujE,GAAU,CASnB,GAPWvjE,EAAOujE,GAASinF,YAAY,CACrCxkJ,QAASuhJ,GAASvhJ,QAClBC,QAASshJ,GAASthJ,QAClBvyB,OAAQA,EACR6xK,OAAQvlJ,MAGOhS,KAAKhV,QAAQsyK,eAC5B,MAIJ53K,EAASssB,QAGJA,EAASA,EAAOoE,YAGzB4iJ,OAGJ+G,aAAc,SAEd7oJ,GACE,GAAIoiJ,GAAQ,CACV,IAAItuK,EAAUgV,KAAKhV,QACf6yK,EAAoB7yK,EAAQ6yK,kBAC5BC,EAAiB9yK,EAAQ8yK,eACzB5hC,EAAQhlH,EAAIO,QAAUP,EAAIO,QAAQ,GAAKP,EACvCspJ,EAAcjI,GAAW9jB,EAAO8jB,GAAS,GACzCv8B,EAASu8B,GAAWiI,GAAeA,EAAY7xK,EAC/CstI,EAASs8B,GAAWiI,GAAeA,EAAY/9K,EAC/Cg+K,EAAuBjG,IAA2BV,IAAuB3F,EAAwB2F,IACjG7nG,GAAMiqE,EAAMlkH,QAAUshJ,GAAOthJ,QAAU8lJ,EAAerwK,IAAMuuI,GAAU,IAAMykC,EAAuBA,EAAqB,GAAKrG,GAAiC,GAAK,IAAMp+B,GAAU,GACnL0kC,GAAMxkC,EAAMjkH,QAAUqhJ,GAAOrhJ,QAAU6lJ,EAAepwK,IAAMuuI,GAAU,IAAMwkC,EAAuBA,EAAqB,GAAKrG,GAAiC,GAAK,IAAMn+B,GAAU,GAEvL,IAAK83B,GAAStuI,SAAWs0I,GAAqB,CAC5C,GAAI8D,GAAqB1xK,KAAK6B,IAAI7B,KAAKyB,IAAIsuI,EAAMlkH,QAAUhY,KAAKu/J,QAASpzK,KAAKyB,IAAIsuI,EAAMjkH,QAAUjY,KAAKw/J,SAAW3B,EAChH,OAGF79J,KAAKggK,aAAa9oJ,GAAK,GAGzB,GAAIqhJ,EAAS,CACPiI,GACFA,EAAYl6K,GAAK2rE,GAAMunG,IAAU,GACjCgH,EAAYh6K,GAAKk6K,GAAMjH,IAAU,IAEjC+G,EAAc,CACZ7xK,EAAG,EACHC,EAAG,EACHpM,EAAG,EACHC,EAAG,EACH6D,EAAG2rE,EACHzrE,EAAGk6K,GAIP,IAAIC,EAAY,UAAUtgK,OAAOmgK,EAAY7xK,EAAG,KAAK0R,OAAOmgK,EAAY5xK,EAAG,KAAKyR,OAAOmgK,EAAYh+K,EAAG,KAAK6d,OAAOmgK,EAAY/9K,EAAG,KAAK4d,OAAOmgK,EAAYl6K,EAAG,KAAK+Z,OAAOmgK,EAAYh6K,EAAG,KACvLumG,EAAIwrE,EAAS,kBAAmBoI,GAChC5zE,EAAIwrE,EAAS,eAAgBoI,GAC7B5zE,EAAIwrE,EAAS,cAAeoI,GAC5B5zE,EAAIwrE,EAAS,YAAaoI,GAC1BnH,GAASvnG,EACTwnG,GAASiH,EACTnH,GAAWr9B,EAGbhlH,EAAIskC,YAActkC,EAAIw5E,mBAG1B0vE,aAAc,WAGZ,IAAK7H,EAAS,CACZ,IAAI7/I,EAAY1Y,KAAKhV,QAAQ4yK,eAAiBx2H,SAASs2B,KAAO65F,EAC1DtvJ,EAAO6qJ,EAAQv1B,GAAQ,EAAMi9B,IAAyB,EAAM9hJ,GAC5D1tB,EAAUgV,KAAKhV,QAEnB,GAAIwvK,GAAyB,CAI3B,IAFAV,GAAsBphJ,EAE0B,WAAzCq0E,EAAI+sE,GAAqB,aAAsE,SAA1C/sE,EAAI+sE,GAAqB,cAA2BA,KAAwB1yH,UACtI0yH,GAAsBA,GAAoB1jJ,WAGxC0jJ,KAAwB1yH,SAASs2B,MAAQo8F,KAAwB1yH,SAAS80C,iBACxE49E,KAAwB1yH,WAAU0yH,GAAsBlH,KAC5D3qJ,EAAKU,KAAOmxJ,GAAoBh+D,UAChC7zF,EAAKQ,MAAQqxJ,GAAoB/9D,YAEjC+9D,GAAsBlH,IAGxBwH,GAAmCjG,EAAwB2F,IAI7Dn5D,EADA43D,EAAUh7B,EAAOtvC,WAAU,GACNjjG,EAAQgyK,YAAY,GACzCr8D,EAAY43D,EAASvtK,EAAQ2yK,eAAe,GAC5Ch9D,EAAY43D,EAASvtK,EAAQkyK,WAAW,GACxCnwE,EAAIwrE,EAAS,aAAc,IAC3BxrE,EAAIwrE,EAAS,YAAa,IAC1BxrE,EAAIwrE,EAAS,aAAc,cAC3BxrE,EAAIwrE,EAAS,SAAU,GACvBxrE,EAAIwrE,EAAS,MAAOtwJ,EAAKU,KACzBokF,EAAIwrE,EAAS,OAAQtwJ,EAAKQ,MAC1BskF,EAAIwrE,EAAS,QAAStwJ,EAAKxC,OAC3BsnF,EAAIwrE,EAAS,SAAUtwJ,EAAKlB,QAC5BgmF,EAAIwrE,EAAS,UAAW,OACxBxrE,EAAIwrE,EAAS,WAAYiC,GAA0B,WAAa,SAChEztE,EAAIwrE,EAAS,SAAU,UACvBxrE,EAAIwrE,EAAS,gBAAiB,QAC9BxE,GAASC,MAAQuE,EACjB7/I,EAAUw7D,YAAYqkF,GAEtBxrE,EAAIwrE,EAAS,mBAAoBmB,GAAkBz6J,SAASs5J,EAAQr1J,MAAMuC,OAAS,IAAM,KAAOk0J,GAAiB16J,SAASs5J,EAAQr1J,MAAM6D,QAAU,IAAM,OAG5Ji5J,aAAc,SAEd9oJ,EAEAxK,GACE,IAAIqrB,EAAQ/3B,KAERo9J,EAAelmJ,EAAIkmJ,aACnBpyK,EAAU+sC,EAAM/sC,QACpB6rK,EAAY,YAAa72J,KAAM,CAC7BkX,IAAKA,IAGH68I,GAASgD,cACX/2J,KAAKy/J,WAKP5I,EAAY,aAAc72J,MAErB+zJ,GAASgD,iBACZU,GAAUj4J,EAAM+9H,IACR4B,WAAY,EACpBs4B,GAAQv0J,MAAM,eAAiB,GAE/BlD,KAAK4gK,aAELjgE,EAAY82D,GAASz3J,KAAKhV,QAAQiyK,aAAa,GAC/ClJ,GAASv0J,MAAQi4J,IAInB1/H,EAAM8oI,QAAU9B,IAAU,WACxBlI,EAAY,QAAS9+H,GACjBg8H,GAASgD,gBAERh/H,EAAM/sC,QAAQ+xK,mBACjBxF,EAAOzgE,aAAa2gE,GAASl6B,GAG/BxlG,EAAM6oI,aAENxH,EAAe,CACbtC,SAAU/+H,EACVr1C,KAAM,eAGTgqB,GAAYi0F,EAAY48B,EAAQvyI,EAAQkyK,WAAW,GAEhDxwJ,GACFstJ,IAAkB,EAClBjiI,EAAM+oI,QAAU/nC,YAAYhhG,EAAMuoI,iBAAkB,MAGpDpwE,EAAI9oD,SAAU,UAAWrP,EAAM0nI,SAC/BvvE,EAAI9oD,SAAU,WAAYrP,EAAM0nI,SAChCvvE,EAAI9oD,SAAU,cAAerP,EAAM0nI,SAE/BrC,IACFA,EAAa2D,cAAgB,OAC7B/1K,EAAQwoI,SAAWxoI,EAAQwoI,QAAQlxI,KAAKy1C,EAAOqlI,EAAc7/B,IAG/DroC,EAAG9tD,SAAU,OAAQrP,GAErBg1D,EAAIwwC,EAAQ,YAAa,kBAG3Bw8B,IAAsB,EACtBhiI,EAAMipI,aAAejC,GAAUhnI,EAAMooI,aAAax8K,KAAKo0C,EAAOrrB,EAAUwK,IACxEg+E,EAAG9tD,SAAU,cAAerP,GAC5B4gI,IAAQ,EAEJ7G,GACF/kE,EAAI3lD,SAASs2B,KAAM,cAAe,UAItC8+F,YAAa,SAEbtlJ,GACE,IAEIinJ,EACAC,EACA6C,EAOAl8H,EAXAlrB,EAAK7Z,KAAK6Z,GACVn0B,EAASwxB,EAAIxxB,OAIbsF,EAAUgV,KAAKhV,QACf6wK,EAAQ7wK,EAAQ6wK,MAChBjD,EAAiB7E,GAAStuI,OAC1By7I,EAAU7H,KAAgBwC,EAC1BsF,EAAUn2K,EAAQgnC,KAClBovI,EAAerJ,IAAea,EAE9B7gI,EAAQ/3B,KACRqhK,GAAiB,EAErB,IAAIhH,GAAJ,CAgHA,QAN2B,IAAvBnjJ,EAAIw5E,gBACNx5E,EAAIskC,YAActkC,EAAIw5E,iBAGxBhrG,EAASggG,EAAQhgG,EAAQsF,EAAQm0I,UAAWtlH,GAAI,GAChDynJ,EAAc,YACVvN,GAASgD,cAAe,OAAOsK,EAEnC,GAAI9jC,EAAOpmD,SAASjgE,EAAIxxB,SAAWA,EAAOm3C,UAAYn3C,EAAO4wK,YAAc5wK,EAAO6wK,YAAcx+H,EAAMwpI,wBAA0B77K,EAC9H,OAAO6kG,GAAU,GAKnB,GAFAyvE,IAAkB,EAEdpB,IAAmB5tK,EAAQ0kC,WAAawxI,EAAUC,IAAYF,EAAS3I,IAAaf,GACtFQ,KAAgB/3J,OAASA,KAAKm4J,YAAckB,GAAY2C,UAAUh8J,KAAM44J,EAAgBr7B,EAAQrmH,KAAS2kJ,EAAMI,SAASj8J,KAAM44J,EAAgBr7B,EAAQrmH,IAAO,CAI7J,GAHA6tB,EAA+C,aAApC/kC,KAAKi/J,cAAc/nJ,EAAKxxB,GACnCy4K,EAAWrL,EAAQv1B,GACnB+jC,EAAc,iBACVvN,GAASgD,cAAe,OAAOsK,EAEnC,GAAIJ,EAiBF,OAhBA3I,EAAWf,EAEX91C,IAEAzhH,KAAK4gK,aAELU,EAAc,UAETvN,GAASgD,gBACRxY,EACFgZ,EAAOzgE,aAAaymC,EAAQghB,GAE5BgZ,EAAOrjF,YAAYqpD,IAIhBhzC,GAAU,GAGnB,IAAIi3E,EAAc5hF,EAAU/lE,EAAI7uB,EAAQm0I,WAExC,IAAKqiC,GA+iBX,SAAsBtqJ,EAAK6tB,EAAU+xH,GACnC,IAAI7uJ,EAAO6qJ,EAAQlzE,EAAUk3E,EAASj9I,GAAIi9I,EAAS9rK,QAAQm0I,YACvDsiC,EAAS,GACb,OAAO18H,EAAW7tB,EAAIc,QAAU/P,EAAKS,MAAQ+4J,GAAUvqJ,EAAIc,SAAW/P,EAAKS,OAASwO,EAAIe,QAAUhQ,EAAKW,QAAUsO,EAAIc,SAAW/P,EAAKQ,KAAOyO,EAAIc,QAAU/P,EAAKS,OAASwO,EAAIe,QAAUhQ,EAAKU,KAAOuO,EAAIc,SAAW/P,EAAKS,OAASwO,EAAIe,QAAUhQ,EAAKW,OAAS64J,EAljBnOC,CAAaxqJ,EAAK6tB,EAAU/kC,QAAUwhK,EAAY3kI,SAAU,CAG9E,GAAI2kI,IAAgBjkC,EAClB,OAAOhzC,GAAU,GAYnB,GARIi3E,GAAe3nJ,IAAO3C,EAAIxxB,SAC5BA,EAAS87K,GAGP97K,IACF04K,EAAatL,EAAQptK,KAG0D,IAA7Ew4K,GAAQ3G,EAAQ19I,EAAI0jH,EAAQ4gC,EAAUz4K,EAAQ04K,EAAYlnJ,IAAOxxB,GAMnE,OALA+7H,IACA5nG,EAAGq6D,YAAYqpD,GACf+6B,EAAWz+I,EAEX6iB,IACO6tD,GAAU,QAEd,GAAIi3E,GAihBjB,SAAuBtqJ,EAAK6tB,EAAU+xH,GACpC,IAAI7uJ,EAAO6qJ,EAAQa,EAASmD,EAASj9I,GAAI,EAAGi9I,EAAS9rK,SAAS,IAC1Dy2K,EAAS,GACb,OAAO18H,EAAW7tB,EAAIc,QAAU/P,EAAKQ,KAAOg5J,GAAUvqJ,EAAIe,QAAUhQ,EAAKU,KAAOuO,EAAIc,QAAU/P,EAAKS,MAAQwO,EAAIe,QAAUhQ,EAAKU,IAAM84J,GAAUvqJ,EAAIe,QAAUhQ,EAAKW,QAAUsO,EAAIc,QAAU/P,EAAKQ,KAphBhKk5J,CAAczqJ,EAAK6tB,EAAU/kC,MAAO,CAE5D,IAAIs+E,EAAaq1E,EAAS95I,EAAI,EAAG7uB,GAAS,GAE1C,GAAIszF,IAAei/C,EACjB,OAAOhzC,GAAU,GAMnB,GAFA6zE,EAAatL,EADbptK,EAAS44F,IAGqE,IAA1E4/E,GAAQ3G,EAAQ19I,EAAI0jH,EAAQ4gC,EAAUz4K,EAAQ04K,EAAYlnJ,GAAK,GAMjE,OALAuqG,IACA5nG,EAAGi9E,aAAaymC,EAAQj/C,GACxBg6E,EAAWz+I,EAEX6iB,IACO6tD,GAAU,QAEd,GAAI7kG,EAAO0wB,aAAeyD,EAAI,CACnCukJ,EAAatL,EAAQptK,GACrB,IAAIo2B,EACA8lJ,EAcAp8E,EAbAq8E,EAAiBtkC,EAAOnnH,aAAeyD,EACvCioJ,GAz8Ba,SAA4B3D,EAAUC,EAAYr5H,GACzE,IAAIg9H,EAAch9H,EAAWo5H,EAAS11J,KAAO01J,EAASx1J,IAClDq5J,EAAcj9H,EAAWo5H,EAASz1J,MAAQy1J,EAASv1J,OACnDq5J,EAAkBl9H,EAAWo5H,EAAS14J,MAAQ04J,EAASp3J,OACvDm7J,EAAcn9H,EAAWq5H,EAAW31J,KAAO21J,EAAWz1J,IACtDw5J,EAAcp9H,EAAWq5H,EAAW11J,MAAQ01J,EAAWx1J,OACvDw5J,EAAkBr9H,EAAWq5H,EAAW34J,MAAQ24J,EAAWr3J,OAC/D,OAAOg7J,IAAgBG,GAAeF,IAAgBG,GAAeJ,EAAcE,EAAkB,IAAMC,EAAcE,EAAkB,EAk8B9GC,CAAmB9kC,EAAO1gG,UAAY0gG,EAAOq4B,QAAUuI,EAAUz4K,EAAOm3C,UAAYn3C,EAAOkwK,QAAUwI,EAAYr5H,GACpIu9H,EAAQv9H,EAAW,MAAQ,OAC3Bw9H,EAAkBlP,EAAe3tK,EAAQ,MAAO,QAAU2tK,EAAe91B,EAAQ,MAAO,OACxFilC,EAAeD,EAAkBA,EAAgBzmE,eAAY,EAWjE,GATI89D,KAAel0K,IACjBk8K,EAAwBxD,EAAWkE,GACnCpI,IAAwB,EACxBC,IAA0B2H,GAAmB92K,EAAQ6xK,YAAcgF,GAMnD,KAHlB/lJ,EA0fR,SAA2B5E,EAAKxxB,EAAQ04K,EAAYr5H,EAAU63H,EAAeE,EAAuBD,EAAY4F,GAC9G,IAAIC,EAAc39H,EAAW7tB,EAAIe,QAAUf,EAAIc,QAC3C2qJ,EAAe59H,EAAWq5H,EAAWr3J,OAASq3J,EAAW34J,MACzDm9J,EAAW79H,EAAWq5H,EAAWz1J,IAAMy1J,EAAW31J,KAClDo6J,EAAW99H,EAAWq5H,EAAWx1J,OAASw1J,EAAW11J,MACrDutE,GAAS,EAEb,IAAK4mF,EAEH,GAAI4F,GAAgB5I,GAAqB8I,EAAe/F,GAQtD,IALK1C,KAA4C,IAAlBx8B,GAAsBglC,EAAcE,EAAWD,EAAe7F,EAAwB,EAAI4F,EAAcG,EAAWF,EAAe7F,EAAwB,KAEvL5C,IAAwB,GAGrBA,GAOHjkF,GAAS,OALT,GAAsB,IAAlBynD,GAAsBglC,EAAcE,EAAW/I,GACjD6I,EAAcG,EAAWhJ,GACzB,OAAQn8B,QAOZ,GAAIglC,EAAcE,EAAWD,GAAgB,EAAI/F,GAAiB,GAAK8F,EAAcG,EAAWF,GAAgB,EAAI/F,GAAiB,EACnI,OAwBR,SAA6Bl3K,GAC3B,OAAI6E,EAAMgzI,GAAUhzI,EAAM7E,GACjB,GAEC,EA5BGo9K,CAAoBp9K,GAOjC,IAFAuwF,EAASA,GAAU4mF,KAIb6F,EAAcE,EAAWD,EAAe7F,EAAwB,GAAK4F,EAAcG,EAAWF,EAAe7F,EAAwB,GACvI,OAAO4F,EAAcE,EAAWD,EAAe,EAAI,GAAK,EAI5D,OAAO,EAriBWI,CAAkB7rJ,EAAKxxB,EAAQ04K,EAAYr5H,EAAU+8H,EAAkB,EAAI92K,EAAQ4xK,cAAgD,MAAjC5xK,EAAQ8xK,sBAAgC9xK,EAAQ4xK,cAAgB5xK,EAAQ8xK,sBAAuB3C,GAAwBP,KAAel0K,IAG/N,CAEnB,IAAIs9K,EAAYz4K,EAAMgzI,GAEtB,GACEylC,GAAalnJ,EACb0pE,EAAU8yE,EAAS1lF,SAASowF,SACrBx9E,IAAwC,SAA5BuH,EAAIvH,EAAS,YAAyBA,IAAY+yE,IAIzE,GAAkB,IAAdz8I,GAAmB0pE,IAAY9/F,EACjC,OAAO6kG,GAAU,GAGnBqvE,GAAal0K,EACbg4I,GAAgB5hH,EAChB,IAAI0/D,EAAc91F,EAAOquJ,mBACrB31E,GAAQ,EAGR6kG,EAAa/E,GAAQ3G,EAAQ19I,EAAI0jH,EAAQ4gC,EAAUz4K,EAAQ04K,EAAYlnJ,EAF3EknD,EAAsB,IAAdtiD,GAIR,IAAmB,IAAfmnJ,EA4BF,OA3BmB,IAAfA,IAAoC,IAAhBA,IACtB7kG,EAAuB,IAAf6kG,GAGV5I,IAAU,EACVn5G,WAAW09G,GAAW,IACtBn9C,IAEIrjD,IAAUod,EACZ3hE,EAAGq6D,YAAYqpD,GAEf73I,EAAO0wB,WAAW0gF,aAAaymC,EAAQn/D,EAAQod,EAAc91F,GAI3D68K,GACF1N,EAAS0N,EAAiB,EAAGC,EAAeD,EAAgBzmE,WAG9Dw8D,EAAW/6B,EAAOnnH,gBAGYnjB,IAA1B2uK,GAAwCzH,KAC1CN,GAAqB1tK,KAAKyB,IAAIg0K,EAAwB9O,EAAQptK,GAAQ48K,KAGxE5lI,IACO6tD,GAAU,GAIrB,GAAI1wE,EAAGs9D,SAASomD,GACd,OAAOhzC,GAAU,GAIrB,OAAO,EA7QP,SAAS+2E,EAAc5+K,EAAM4nF,GAC3BusF,EAAYn0K,EAAMq1C,EAAOo5H,EAAe,CACtCj6I,IAAKA,EACLgqJ,QAASA,EACT/3I,KAAM4b,EAAW,WAAa,aAC9Bk8H,OAAQA,EACR9C,SAAUA,EACVC,WAAYA,EACZ+C,QAASA,EACTC,aAAcA,EACd17K,OAAQA,EACR6kG,UAAWA,EACXi0E,OAAQ,SAAgB94K,EAAQ04E,GAC9B,OAAO8/F,GAAQ3G,EAAQ19I,EAAI0jH,EAAQ4gC,EAAUz4K,EAAQotK,EAAQptK,GAASwxB,EAAKknD,IAE7E1hC,QAASA,GACR4tC,IAIL,SAASm3C,IACP6/C,EAAc,4BAEdvpI,EAAMo9H,wBAEFp9H,IAAUqpI,GACZA,EAAajM,wBAKjB,SAAS5qE,EAAU24E,GAuDjB,OAtDA5B,EAAc,oBAAqB,CACjC4B,UAAWA,IAGTA,IAEEhC,EACFtI,EAAegI,aAEfhI,EAAeuK,WAAWprI,GAGxBA,IAAUqpI,IAEZzgE,EAAY48B,EAAQw6B,GAAcA,GAAY/sK,QAAQgyK,WAAapE,EAAe5tK,QAAQgyK,YAAY,GACtGr8D,EAAY48B,EAAQvyI,EAAQgyK,YAAY,IAGtCjF,KAAgBhgI,GAASA,IAAUg8H,GAAStuI,OAC9CsyI,GAAchgI,EACLA,IAAUg8H,GAAStuI,QAAUsyI,KACtCA,GAAc,MAIZqJ,IAAiBrpI,IACnBA,EAAMwpI,sBAAwB77K,GAGhCqyC,EAAM29H,YAAW,WACf4L,EAAc,6BACdvpI,EAAMwpI,sBAAwB,QAG5BxpI,IAAUqpI,IACZA,EAAa1L,aACb0L,EAAaG,sBAAwB,QAKrC77K,IAAW63I,IAAWA,EAAO1gG,UAAYn3C,IAAWm0B,IAAOn0B,EAAOm3C,YACpE+8H,GAAa,MAIV5uK,EAAQsyK,gBAAmBpmJ,EAAIqgJ,QAAU7xK,IAAW0hD,WACvDm2F,EAAOnnH,WAAWm/D,GAASmnF,iBAAiBxlJ,EAAIxxB,SAG/Cw9K,GAAa9G,GAA8BllJ,KAG7ClsB,EAAQsyK,gBAAkBpmJ,EAAIs5E,iBAAmBt5E,EAAIs5E,kBAC/C6wE,GAAiB,EAI1B,SAAS3kI,IACPisH,GAAWp+J,EAAMgzI,GACjBu6B,GAAoBvtK,EAAMgzI,EAAQvyI,EAAQm0I,WAE1Ci6B,EAAe,CACbtC,SAAU/+H,EACVr1C,KAAM,SACNg1K,KAAM79I,EACN8uI,SAAUA,GACVmP,kBAAmBA,GACnBjlE,cAAe37E,MA2KrBqqJ,sBAAuB,KACvB6B,eAAgB,WACdlzE,EAAI9oD,SAAU,YAAapnC,KAAK+/J,cAChC7vE,EAAI9oD,SAAU,YAAapnC,KAAK+/J,cAChC7vE,EAAI9oD,SAAU,cAAepnC,KAAK+/J,cAClC7vE,EAAI9oD,SAAU,WAAYg1H,IAC1BlsE,EAAI9oD,SAAU,YAAag1H,IAC3BlsE,EAAI9oD,SAAU,YAAag1H,KAE7BiH,aAAc,WACZ,IAAI7oF,EAAgBx6E,KAAK6Z,GAAG2gE,cAC5B0V,EAAI1V,EAAe,UAAWx6E,KAAKy/J,SACnCvvE,EAAI1V,EAAe,WAAYx6E,KAAKy/J,SACpCvvE,EAAI1V,EAAe,YAAax6E,KAAKy/J,SACrCvvE,EAAI1V,EAAe,cAAex6E,KAAKy/J,SACvCvvE,EAAI9oD,SAAU,cAAepnC,OAE/By/J,QAAS,SAETvoJ,GACE,IAAI2C,EAAK7Z,KAAK6Z,GACV7uB,EAAUgV,KAAKhV,QAEnB29J,GAAWp+J,EAAMgzI,GACjBu6B,GAAoBvtK,EAAMgzI,EAAQvyI,EAAQm0I,WAC1C03B,EAAY,OAAQ72J,KAAM,CACxBkX,IAAKA,IAEPohJ,EAAW/6B,GAAUA,EAAOnnH,WAE5BuyI,GAAWp+J,EAAMgzI,GACjBu6B,GAAoBvtK,EAAMgzI,EAAQvyI,EAAQm0I,WAEtC40B,GAASgD,gBAMbgD,IAAsB,EACtBI,IAAyB,EACzBD,IAAwB,EACxBlhC,cAAch5H,KAAK8gK,SACnB7/G,aAAajhD,KAAK8/J,iBAElBd,GAAgBh/J,KAAK6gK,SAErB7B,GAAgBh/J,KAAKghK,cAGjBhhK,KAAKg+J,kBACP9tE,EAAI9oD,SAAU,OAAQpnC,MACtBkwF,EAAIr2E,EAAI,YAAa7Z,KAAKggK,eAG5BhgK,KAAKojK,iBAELpjK,KAAKqjK,eAEDvR,GACF/kE,EAAI3lD,SAASs2B,KAAM,cAAe,IAGpCqvB,EAAIwwC,EAAQ,YAAa,IAErBrmH,IACEyhJ,KACFzhJ,EAAIskC,YAActkC,EAAIw5E,kBACrB1lG,EAAQqyK,YAAcnmJ,EAAIs5E,mBAG7B+nE,GAAWA,EAAQniJ,YAAcmiJ,EAAQniJ,WAAW+9D,YAAYokF,IAE5DhB,IAAWe,GAAYP,IAA2C,UAA5BA,GAAYI,cAEpDV,IAAWA,GAAQrhJ,YAAcqhJ,GAAQrhJ,WAAW+9D,YAAYsjF,IAG9Dl6B,IACEv9H,KAAKg+J,iBACP9tE,EAAIqtC,EAAQ,UAAWv9H,MAGzB2+J,GAAkBphC,GAElBA,EAAOr6H,MAAM,eAAiB,GAG1By1J,KAAUoB,IACZp5D,EAAY48B,EAAQw6B,GAAcA,GAAY/sK,QAAQgyK,WAAah9J,KAAKhV,QAAQgyK,YAAY,GAG9Fr8D,EAAY48B,EAAQv9H,KAAKhV,QAAQiyK,aAAa,GAE9C7D,EAAe,CACbtC,SAAU92J,KACVtd,KAAM,WACNg1K,KAAMY,EACN3P,SAAU,KACVmP,kBAAmB,KACnBjlE,cAAe37E,IAGbqgJ,IAAWe,GACT3P,IAAY,IAEdyQ,EAAe,CACb7B,OAAQe,EACR51K,KAAM,MACNg1K,KAAMY,EACNX,OAAQJ,EACR1kE,cAAe37E,IAIjBkiJ,EAAe,CACbtC,SAAU92J,KACVtd,KAAM,SACNg1K,KAAMY,EACNzlE,cAAe37E,IAIjBkiJ,EAAe,CACb7B,OAAQe,EACR51K,KAAM,OACNg1K,KAAMY,EACNX,OAAQJ,EACR1kE,cAAe37E,IAGjBkiJ,EAAe,CACbtC,SAAU92J,KACVtd,KAAM,OACNg1K,KAAMY,EACNzlE,cAAe37E,KAInB6gJ,IAAeA,GAAYhyJ,QAEvB4iJ,KAAaiP,IACXjP,IAAY,IAEdyQ,EAAe,CACbtC,SAAU92J,KACVtd,KAAM,SACNg1K,KAAMY,EACNzlE,cAAe37E,IAGjBkiJ,EAAe,CACbtC,SAAU92J,KACVtd,KAAM,OACNg1K,KAAMY,EACNzlE,cAAe37E,KAMnB68I,GAAStuI,SAEK,MAAZkjI,KAAkC,IAAdA,KACtBA,GAAWiP,GACXE,GAAoBD,IAGtBuB,EAAe,CACbtC,SAAU92J,KACVtd,KAAM,MACNg1K,KAAMY,EACNzlE,cAAe37E,IAIjBlX,KAAK+F,WA9IT/F,KAAKqgK,YAqJTA,SAAU,WACRxJ,EAAY,UAAW72J,MACvBu3J,EAASh6B,EAAS+6B,EAAWC,EAAUha,EAASkZ,GAAUe,GAAaC,GAAca,GAASC,GAAWZ,GAAQhQ,GAAWmP,GAAoBF,GAAWC,GAAoB+B,GAAal8B,GAAgBq6B,GAAcsB,GAActF,GAASE,QAAUF,GAASC,MAAQD,GAASv0J,MAAQu0J,GAAStuI,OAAS,KAC/S60I,GAAkBtsJ,SAAQ,SAAU6L,GAClCA,EAAG8mE,SAAU,KAEf25E,GAAkB10K,OAAS4zK,GAASC,GAAS,GAE/C39F,YAAa,SAEb5kD,GACE,OAAQA,EAAInuB,MACV,IAAK,OACL,IAAK,UACHiX,KAAKy/J,QAAQvoJ,GAEb,MAEF,IAAK,YACL,IAAK,WACCqmH,IACFv9H,KAAKw8J,YAAYtlJ,GA8K3B,SAEAA,GACMA,EAAIkmJ,eACNlmJ,EAAIkmJ,aAAakG,WAAa,QAGhCpsJ,EAAIskC,YAActkC,EAAIw5E,iBAnLd6yE,CAAgBrsJ,IAGlB,MAEF,IAAK,cACHA,EAAIw5E,mBASVjc,QAAS,WAQP,IAPA,IACI56D,EADAgpC,EAAQ,GAER+vB,EAAW5yE,KAAK6Z,GAAG+4D,SACnBzwF,EAAI,EACJyB,EAAIgvF,EAAShtF,OACboF,EAAUgV,KAAKhV,QAEZ7I,EAAIyB,EAAGzB,IAGRujG,EAFJ7rE,EAAK+4D,EAASzwF,GAEE6I,EAAQm0I,UAAWn/H,KAAK6Z,IAAI,IAC1CgpC,EAAMn9C,KAAKmU,EAAG+uB,aAAa59C,EAAQuyK,aAAesB,GAAYhlJ,IAIlE,OAAOgpC,GAOT7wB,KAAM,SAAc6wB,EAAO2gH,GACzB,IAAIt1J,EAAQ,GACRqpJ,EAASv3J,KAAK6Z,GAClB7Z,KAAKy0E,UAAUzmE,SAAQ,SAAUplB,EAAIzG,GACnC,IAAI03B,EAAK09I,EAAO3kF,SAASzwF,GAErBujG,EAAQ7rE,EAAI7Z,KAAKhV,QAAQm0I,UAAWo4B,GAAQ,KAC9CrpJ,EAAMtlB,GAAMixB,KAEb7Z,MACHwjK,GAAgBxjK,KAAKm1J,wBACrBtyG,EAAM70C,SAAQ,SAAUplB,GAClBslB,EAAMtlB,KACR2uK,EAAOpjF,YAAYjmE,EAAMtlB,IACzB2uK,EAAOrjF,YAAYhmE,EAAMtlB,QAG7B46K,GAAgBxjK,KAAK01J,cAMvB3vJ,KAAM,WACJ,IAAI42J,EAAQ38J,KAAKhV,QAAQ2xK,MACzBA,GAASA,EAAMv8J,KAAOu8J,EAAMv8J,IAAIJ,OASlC0lF,QAAS,SAAmB7rE,EAAIy6D,GAC9B,OAAOoR,EAAQ7rE,EAAIy6D,GAAYt0E,KAAKhV,QAAQm0I,UAAWn/H,KAAK6Z,IAAI,IASlE2M,OAAQ,SAAgB9jC,EAAMU,GAC5B,IAAI4H,EAAUgV,KAAKhV,QAEnB,QAAc,IAAV5H,EACF,OAAO4H,EAAQtI,GAEf,IAAI20K,EAAgBV,EAAcO,aAAal3J,KAAMtd,EAAMU,GAGzD4H,EAAQtI,GADmB,qBAAlB20K,EACOA,EAEAj0K,EAGL,UAATV,GACF+4K,GAAczwK,IAQpBsnE,QAAS,WACPukG,EAAY,UAAW72J,MACvB,IAAI6Z,EAAK7Z,KAAK6Z,GACdA,EAAG07D,GAAW,KACd2a,EAAIr2E,EAAI,YAAa7Z,KAAKi+J,aAC1B/tE,EAAIr2E,EAAI,aAAc7Z,KAAKi+J,aAC3B/tE,EAAIr2E,EAAI,cAAe7Z,KAAKi+J,aAExBj+J,KAAKg+J,kBACP9tE,EAAIr2E,EAAI,WAAY7Z,MACpBkwF,EAAIr2E,EAAI,YAAa7Z,OAIvB3b,MAAMN,UAAUiqB,QAAQ1rB,KAAKu3B,EAAGihE,iBAAiB,gBAAgB,SAAUjhE,GACzEA,EAAGovB,gBAAgB,gBAGrBjpC,KAAKy/J,UAELz/J,KAAK0/J,4BAELzF,GAAU5zJ,OAAO4zJ,GAAUnvK,QAAQkV,KAAK6Z,IAAK,GAC7C7Z,KAAK6Z,GAAKA,EAAK,MAEjB+mJ,WAAY,WACV,IAAKnI,GAAa,CAEhB,GADA5B,EAAY,YAAa72J,MACrB+zJ,GAASgD,cAAe,OAC5BhqE,EAAI0qE,GAAS,UAAW,QAEpBz3J,KAAKhV,QAAQ+xK,mBAAqBtF,GAAQrhJ,YAC5CqhJ,GAAQrhJ,WAAW+9D,YAAYsjF,IAGjCgB,IAAc,IAGlB0K,WAAY,SAAoBpL,GAC9B,GAAgC,UAA5BA,EAAYI,aAMhB,GAAIM,GAAa,CAEf,GADA5B,EAAY,YAAa72J,MACrB+zJ,GAASgD,cAAe,OAExBx5B,EAAOnnH,YAAcmhJ,GAAWv3J,KAAKhV,QAAQ6wK,MAAMM,YAE5C5d,EACTgZ,EAAOzgE,aAAa2gE,GAASlZ,GAE7BgZ,EAAOrjF,YAAYujF,IAJnBF,EAAOzgE,aAAa2gE,GAASl6B,GAO3Bv9H,KAAKhV,QAAQ6wK,MAAMM,aACrBn8J,KAAK0sE,QAAQ6wD,EAAQk6B,IAGvB1qE,EAAI0qE,GAAS,UAAW,IACxBgB,IAAc,QAtBdz4J,KAAK4gK,eA8LPrG,IACFrlE,EAAG9tD,SAAU,aAAa,SAAUlwB,IAC7B68I,GAAStuI,QAAUs0I,KAAwB7iJ,EAAIskC,YAClDtkC,EAAIw5E,oBAMVqjE,GAAS1pC,MAAQ,CACfn1B,GAAIA,EACJhF,IAAKA,EACLnD,IAAKA,EACLnQ,KAAMA,EACN8H,GAAI,SAAY7qE,EAAIy6D,GAClB,QAASoR,EAAQ7rE,EAAIy6D,EAAUz6D,GAAI,IAErCq7D,OAlkEF,SAAgBuuF,EAAKxtG,GACnB,GAAIwtG,GAAOxtG,EACT,IAAK,IAAIvyE,KAAOuyE,EACVA,EAAIjyE,eAAeN,KACrB+/K,EAAI//K,GAAOuyE,EAAIvyE,IAKrB,OAAO+/K,GA0jEP7O,SAAUA,EACVlvE,QAASA,EACTib,YAAaA,EACbnhG,MAAOA,EACPjV,MAAOA,EACPiqJ,SAAUuqB,GACV2E,eAAgB1E,GAChB2E,gBAAiB9I,GACjBlH,SAAUA,GAQZI,GAAS/wK,IAAM,SAAU2zB,GACvB,OAAOA,EAAQ4+D,IAQjBw+E,GAAStF,MAAQ,WACf,IAAK,IAAIxmK,EAAOC,UAAUtC,OAAQoe,EAAU,IAAI3f,MAAM4D,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAClF4b,EAAQ5b,GAAQF,UAAUE,GAGxB4b,EAAQ,GAAG3e,cAAgBhB,QAAO2f,EAAUA,EAAQ,IACxDA,EAAQgK,SAAQ,SAAUutC,GACxB,IAAKA,EAAOx3D,YAAcw3D,EAAOx3D,UAAUsB,YACzC,KAAM,gEAAgEgb,OAAO,GAAGpZ,SAAS3E,KAAKi5D,IAG5FA,EAAO8uE,QAAO0pC,GAAS1pC,MAAQ8mC,EAAeA,EAAe,GAAI4C,GAAS1pC,OAAQ9uE,EAAO8uE,QAC7FssC,EAAclI,MAAMlzG,OAUxBw4G,GAAStwK,OAAS,SAAUo2B,EAAI7uB,GAC9B,OAAO,IAAI+oK,GAASl6I,EAAI7uB,IAI1B+oK,GAAShrG,QAthFK,SAuhFd,IACI66G,GACAC,GAEAC,GACAC,GACAC,GACAC,GAPAC,GAAc,GAGdC,IAAY,EAmHhB,SAASC,KACPF,GAAYl2J,SAAQ,SAAUq2J,GAC5BrrC,cAAcqrC,EAAWC,QAE3BJ,GAAc,GAGhB,SAASK,KACPvrC,cAAcirC,IAGhB,IAAII,GAAazP,GAAS,SAAU19I,EAAKlsB,EAASusK,EAAQiN,GAExD,GAAKx5K,EAAQy5K,OAAb,CACA,IAMIC,EANAj3K,GAAKypB,EAAIO,QAAUP,EAAIO,QAAQ,GAAKP,GAAKc,QACzCtqB,GAAKwpB,EAAIO,QAAUP,EAAIO,QAAQ,GAAKP,GAAKe,QACzC0sJ,EAAO35K,EAAQ45K,kBACf3mE,EAAQjzG,EAAQ65K,YAChBzQ,EAAcxB,IACdkS,GAAqB,EAGrBjB,KAAiBtM,IACnBsM,GAAetM,EACf6M,KACAR,GAAW54K,EAAQy5K,OACnBC,EAAiB15K,EAAQ+5K,UAER,IAAbnB,KACFA,GAAWpQ,EAA2B+D,GAAQ,KAIlD,IAAIyN,EAAY,EACZC,EAAgBrB,GAEpB,EAAG,CACD,IAAI/pJ,EAAKorJ,EACLh9J,EAAO6qJ,EAAQj5I,GACflR,EAAMV,EAAKU,IACXC,EAASX,EAAKW,OACdH,EAAOR,EAAKQ,KACZC,EAAQT,EAAKS,MACbjD,EAAQwC,EAAKxC,MACbsB,EAASkB,EAAKlB,OACdm+J,OAAa,EACbC,OAAa,EACb5Q,EAAc16I,EAAG06I,YACjBxhD,EAAel5F,EAAGk5F,aAClB+nD,EAAQ/tE,EAAIlzE,GACZurJ,EAAavrJ,EAAGkiF,WAChBspE,EAAaxrJ,EAAGiiF,UAEhBjiF,IAAOu6I,GACT8Q,EAAaz/J,EAAQ8uJ,IAAoC,SAApBuG,EAAMh9D,WAA4C,WAApBg9D,EAAMh9D,WAA8C,YAApBg9D,EAAMh9D,WACzGqnE,EAAap+J,EAASgsG,IAAqC,SAApB+nD,EAAM/8D,WAA4C,WAApB+8D,EAAM/8D,WAA8C,YAApB+8D,EAAM/8D,aAE3GmnE,EAAaz/J,EAAQ8uJ,IAAoC,SAApBuG,EAAMh9D,WAA4C,WAApBg9D,EAAMh9D,WACzEqnE,EAAap+J,EAASgsG,IAAqC,SAApB+nD,EAAM/8D,WAA4C,WAApB+8D,EAAM/8D,YAG7E,IAAIunE,EAAKJ,IAAe/4K,KAAKyB,IAAI8a,EAAQjb,IAAMk3K,GAAQS,EAAa3/J,EAAQ8uJ,IAAgBpoK,KAAKyB,IAAI6a,EAAOhb,IAAMk3K,KAAUS,GACxHG,EAAKJ,IAAeh5K,KAAKyB,IAAIgb,EAASlb,IAAMi3K,GAAQU,EAAat+J,EAASgsG,IAAiB5mH,KAAKyB,IAAI+a,EAAMjb,IAAMi3K,KAAUU,GAE9H,IAAKnB,GAAYc,GACf,IAAK,IAAI7iL,EAAI,EAAGA,GAAK6iL,EAAW7iL,IACzB+hL,GAAY/hL,KACf+hL,GAAY/hL,GAAK,IAKnB+hL,GAAYc,GAAWM,IAAMA,GAAMpB,GAAYc,GAAWO,IAAMA,GAAMrB,GAAYc,GAAWnrJ,KAAOA,IACtGqqJ,GAAYc,GAAWnrJ,GAAKA,EAC5BqqJ,GAAYc,GAAWM,GAAKA,EAC5BpB,GAAYc,GAAWO,GAAKA,EAC5BvsC,cAAckrC,GAAYc,GAAWV,KAE3B,GAANgB,GAAiB,GAANC,IACbT,GAAqB,EAGrBZ,GAAYc,GAAWV,IAAMvrC,YAAY,WAEnCyrC,GAA6B,IAAfxkK,KAAKwlK,OACrBzR,GAAStuI,OAAOs6I,aAAaiE,IAI/B,IAAIyB,EAAgBvB,GAAYlkK,KAAKwlK,OAAOD,GAAKrB,GAAYlkK,KAAKwlK,OAAOD,GAAKtnE,EAAQ,EAClFynE,EAAgBxB,GAAYlkK,KAAKwlK,OAAOF,GAAKpB,GAAYlkK,KAAKwlK,OAAOF,GAAKrnE,EAAQ,EAExD,oBAAnBymE,GACoI,aAAzIA,EAAepiL,KAAKyxK,GAASE,QAAQ79I,WAAWm/D,GAAUmwF,EAAeD,EAAevuJ,EAAK8sJ,GAAYE,GAAYlkK,KAAKwlK,OAAO3rJ,KAKvIg7I,EAASqP,GAAYlkK,KAAKwlK,OAAO3rJ,GAAI6rJ,EAAeD,IACpD9hL,KAAK,CACL6hL,MAAOR,IACL,MAIRA,UACOh6K,EAAQ26K,cAAgBV,IAAkB7Q,IAAgB6Q,EAAgBzR,EAA2ByR,GAAe,KAE7Hd,GAAYW,KACX,IAECc,GAAO,SAAcnpJ,GACvB,IAAIo2E,EAAgBp2E,EAAKo2E,cACrBklE,EAAct7I,EAAKs7I,YACnBx6B,EAAS9gH,EAAK8gH,OACdq7B,EAAiBn8I,EAAKm8I,eACtBO,EAAwB18I,EAAK08I,sBAC7BN,EAAqBp8I,EAAKo8I,mBAC1BE,EAAuBt8I,EAAKs8I,qBAChC,GAAKlmE,EAAL,CACA,IAAIgzE,EAAa9N,GAAea,EAChCC,IACA,IAAI38B,EAAQrpC,EAAca,gBAAkBb,EAAca,eAAe9tG,OAASitG,EAAca,eAAe,GAAKb,EAChHntG,EAAS0hD,SAASm5H,iBAAiBrkC,EAAMlkH,QAASkkH,EAAMjkH,SAC5D8gJ,IAEI8M,IAAeA,EAAWhsJ,GAAGs9D,SAASzxF,KACxCyzK,EAAsB,SACtBn5J,KAAK8lK,QAAQ,CACXvoC,OAAQA,EACRw6B,YAAaA,OAKnB,SAASgO,MAsCT,SAASC,MApCTD,GAAOhiL,UAAY,CACjBguE,WAAY,KACZ8qE,UAAW,SAAmB5rG,GAC5B,IAAI4mI,EAAoB5mI,EAAM4mI,kBAC9B73J,KAAK+xD,WAAa8lG,GAEpBiO,QAAS,SAAiBG,GACxB,IAAI1oC,EAAS0oC,EAAM1oC,OACfw6B,EAAckO,EAAMlO,YACxB/3J,KAAK82J,SAAS3B,wBAEV4C,GACFA,EAAY5C,wBAGd,IAAI35E,EAAcm4E,EAAS3zJ,KAAK82J,SAASj9I,GAAI7Z,KAAK+xD,WAAY/xD,KAAKhV,SAE/DwwF,EACFx7E,KAAK82J,SAASj9I,GAAGi9E,aAAaymC,EAAQ/hD,GAEtCx7E,KAAK82J,SAASj9I,GAAGq6D,YAAYqpD,GAG/Bv9H,KAAK82J,SAASpB,aAEVqC,GACFA,EAAYrC,cAGhBkQ,KAAMA,IAGRxU,EAAS2U,GAAQ,CACfnP,WAAY,kBAKdoP,GAAOjiL,UAAY,CACjB+hL,QAAS,SAAiBtgH,GACxB,IAAI+3E,EAAS/3E,EAAM+3E,OAEf2oC,EADc1gH,EAAMuyG,aACY/3J,KAAK82J,SACzCoP,EAAe/Q,wBACf53B,EAAOnnH,YAAcmnH,EAAOnnH,WAAW+9D,YAAYopD,GACnD2oC,EAAexQ,cAEjBkQ,KAAMA,IAGRxU,EAAS4U,GAAQ,CACfpP,WAAY,kBAysBd7C,GAAStF,MAAM,IAl/Bf,WACE,SAAS0X,IASP,IAAK,IAAIx+K,KARTqY,KAAKiC,SAAW,CACdwiK,QAAQ,EACR2B,yBAAyB,EACzBxB,kBAAmB,GACnBC,YAAa,GACbc,cAAc,GAGD3lK,KACQ,MAAjBrY,EAAGmE,OAAO,IAAkC,oBAAbkU,KAAKrY,KACtCqY,KAAKrY,GAAMqY,KAAKrY,GAAIhE,KAAKqc,OA2F/B,OAtFAmmK,EAAWpiL,UAAY,CACrB20K,YAAa,SAAqBj8I,GAChC,IAAIo2E,EAAgBp2E,EAAKo2E,cAErB7yF,KAAK82J,SAASkH,gBAChB9oE,EAAG9tD,SAAU,WAAYpnC,KAAKqmK,mBAE1BrmK,KAAKhV,QAAQ+yK,eACf7oE,EAAG9tD,SAAU,cAAepnC,KAAKsmK,2BACxBzzE,EAAcp7E,QACvBy9E,EAAG9tD,SAAU,YAAapnC,KAAKsmK,2BAE/BpxE,EAAG9tD,SAAU,YAAapnC,KAAKsmK,4BAIrCC,kBAAmB,SAA2Bt1I,GAC5C,IAAI4hE,EAAgB5hE,EAAM4hE,cAErB7yF,KAAKhV,QAAQw7K,gBAAmB3zE,EAAc0kE,QACjDv3J,KAAKqmK,kBAAkBxzE,IAG3B+yE,KAAM,WACA5lK,KAAK82J,SAASkH,gBAChB9tE,EAAI9oD,SAAU,WAAYpnC,KAAKqmK,oBAE/Bn2E,EAAI9oD,SAAU,cAAepnC,KAAKsmK,2BAClCp2E,EAAI9oD,SAAU,YAAapnC,KAAKsmK,2BAChCp2E,EAAI9oD,SAAU,YAAapnC,KAAKsmK,4BAGlC/B,KACAH,KA7oEJnjH,aAAamxG,GACbA,OAAmB,GA+oEjBqU,QAAS,WACPzC,GAAaH,GAAeD,GAAWO,GAAYF,GAA6BH,GAAkBC,GAAkB,KACpHG,GAAYt+K,OAAS,GAEvB0gL,0BAA2B,SAAmCpvJ,GAC5DlX,KAAKqmK,kBAAkBnvJ,GAAK,IAE9BmvJ,kBAAmB,SAA2BnvJ,EAAKxK,GACjD,IAAIqrB,EAAQ/3B,KAERvS,GAAKypB,EAAIO,QAAUP,EAAIO,QAAQ,GAAKP,GAAKc,QACzCtqB,GAAKwpB,EAAIO,QAAUP,EAAIO,QAAQ,GAAKP,GAAKe,QACzC48D,EAAOztC,SAASm5H,iBAAiB9yK,EAAGC,GAMxC,GALAs2K,GAAa9sJ,EAKTxK,GAAY1M,KAAKhV,QAAQo7K,yBAA2BxU,GAAQD,GAAcG,EAAQ,CACpFuS,GAAWntJ,EAAKlX,KAAKhV,QAAS6pF,EAAMnoE,GAEpC,IAAIg6J,EAAiBlT,EAA2B3+E,GAAM,IAElDsvF,IAAeF,IAA8Bx2K,IAAMq2K,IAAmBp2K,IAAMq2K,KAC9EE,IAA8BM,KAE9BN,GAA6BlrC,aAAY,WACvC,IAAI4tC,EAAUnT,EAA2BpsH,SAASm5H,iBAAiB9yK,EAAGC,IAAI,GAEtEi5K,IAAYD,IACdA,EAAiBC,EACjBvC,MAGFC,GAAWntJ,EAAK6gB,EAAM/sC,QAAS27K,EAASj6J,KACvC,IACHo3J,GAAkBr2K,EAClBs2K,GAAkBr2K,OAEf,CAEL,IAAKsS,KAAKhV,QAAQ26K,cAAgBnS,EAA2B3+E,GAAM,KAAU+9E,IAE3E,YADAwR,KAIFC,GAAWntJ,EAAKlX,KAAKhV,QAASwoK,EAA2B3+E,GAAM,IAAQ,MAItEu8E,EAAS+U,EAAY,CAC1BvP,WAAY,SACZF,qBAAqB,MA04BzB3C,GAAStF,MAAMuX,GAAQD,IACR,Q,6BCxrHf,2EAKAa,EAAQ,GAAcn+K,QACtBm+K,EAAQ,IAAcn+K,QACtBm+K,EAAQ,IAAwBn+K,QAChCm+K,EAAQ,IAOOA,MAGfA,EAAQ,IAKR,IAAIvyF,EAASuyF,EAAQ,GAIrB/zF,EAAOg6B,EAAIh6B,EAAOwB,OAASA,EAC3B9sF,OAAOslH,EAAItlH,OAAO8sF,OAASA,EAE3BuyF,EAAQ,IACRA,EAAQ,IAERA,EAAQ,IA6BR/mH,IAAMjH,SACJsQ,IACAyD,IACAiD,IACAhC,IACAz6B,IACA+D,IACAW,IACA8D,IACAiD,IACApB,IACAuB,IACAM,IACAomC,IACA0C,IACAO,IACAqC,IACA+D,IACAkD,IACA60F,IACAC,IACA9uG,IACAkE,IACAkE,KAEF74E,OAAOs4D,MAAQA,IAMft4D,OAAOksH,KAAOA,IAId,IAAIszD,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAAgB,EACpBx6D,EAAEzlE,UAAU8tD,GAAG,4BAA4B,WACzC8jC,cAAc+tC,GACd/tC,cAAcguC,GACdhuC,cAAciuC,GACdjuC,cAAckuC,GACdluC,cAAcmuC,GACdnuC,cAAcouC,GACdC,GAAgB,KAGlBjgI,SAAS1tB,iBAAiB,mBAAmB,WAI3C,IAGYtmB,EAAE3Q,EAAEyB,EAAEoO,EAAEusI,EAAGyoC,EAHnB1kJ,EAAY,GAEZiqF,EAAE,uBAAuBjnH,OAAS,IAC1BwN,EAKR7L,OALU9E,EAKH2kD,SALKljD,EAKI,UAJhBoO,EAAEc,EAAEm0K,OAAOn0K,EAAEm0K,KAAK,KAAMC,UAAU,CAAClsC,EAAE,GAAGl2C,MAAM,SAAS5+F,GAAGwZ,KAAKs7H,EAAE51H,KAAKlf,KACtEq4I,EAAGp8I,EAAEwxF,cAAc/vF,GAAGojL,EAAG7kL,EAAEg4F,qBAAqBv2F,GAAG,GACnD26I,EAAG5oE,IAAI,yCACPqxG,EAAGlxJ,WAAW0gF,aAAa+nC,EAAGyoC,GAAIzoC,EAAGv1B,OAAO,WAAWh3G,EAAEwgG,KAAK,cAEhE+Z,EAAE,mBAAmBjjH,MAAK,SAAUW,EAAOsvB,GACzC,IAAIvW,EAAaupG,EAAEhzF,GAuBfmM,EAAS,CACXj9B,KAAM,MACNoc,KAbS,CACTwoB,OAPe,CAAC,6BAAiB,6BAAiB,6BAAiB,6BAAiB,6BACpE,6BAAiB,6BAAiB,6BAAiB,6BAAiB,6BACpE,6BAAiB,6BAAiB,6BAAiB,6BAAiB,6BACpE,6BAAiB,6BAAiB,6BAAiB,6BAAiB,6BACpE,4BAAgB,4BAAgB,4BAAgB,4BAAgB,4BAChE,4BAAgB,4BAAgB,4BAAgB,4BAAgB,6BAGhFprB,SAAU,CACR,CAEE4C,KAhBW9gB,MAAM,IAiBjBie,YAAa,UACbD,gBAAiB,aAOrBrX,QAAS,CACPmZ,OAAQ,CACN1W,EAAG,CACD4kC,MAAO,CACLoM,SAAS,GAEX3H,KAAM,CACJ2H,SAAS,IAGb/wC,EAAG,CACD2kC,MAAO,CACLoM,SAAS,GAEX3H,KAAM,CACJ2H,SAAS,KAIfz6B,QAAS,CACPk3B,OAAQ,CACNuD,SAAS,GAEX9G,MAAO,CACL8G,SAAS,MAKbn7B,EAAI1d,OAAS,GACfg9B,EAAOld,KAAK,IAAIm6C,IAAMv8C,EAAK0iB,OAI/BuhJ,KAAKC,UAAUpiF,OAAM,WAKnB,IAAIqiF,EAAY56D,EAAE,YACd66D,EAAYD,EAAQtiK,KAAK,SACzBwiK,EAAaF,EAAQtiK,KAAK,UAC9BoiK,KAAKC,UAAUE,KAAKE,UAAU,CAC5B,WAAc,CACZ,aAAgBF,KAGpB,IAAIG,EAASN,KAAKO,OAAOC,WACrBC,EAAST,KAAKO,OAAOC,WACrBE,EAASV,KAAKO,OAAOC,WACrBG,EAASX,KAAKO,OAAOC,WACrBI,EAASZ,KAAKO,OAAOC,WACrBK,EAASb,KAAKO,OAAOC,WAwRzB,SAASM,EAAgBC,EAAiBC,EAAeC,EAAWC,GAClE,IACE,IAAIl+K,EAAUi+K,EAAYC,EACtBzxJ,EAAUsxJ,EAAgBtxJ,OAC1BwsI,EAAU32C,EAAE,iBAAD,OAAkB71F,EAAO0xJ,YAAYC,YAChDxuI,EAAUl7B,SAAS+X,EAAO4xJ,oBAAoB,mBAC9CC,EAAWrlB,EAAI5mE,KAAK,eA2HV33F,EA1HDu+J,EAAI5mE,KAAK,mBAAmB,GA0HtBn0F,EA1H0BwW,SAASukJ,EAAI5mE,KAAK,mBAAmB,GAAGG,YAAc,EA0HzEr0F,EA1H4EyxC,EA0HvEvY,EA1H8E,IA2H/GknJ,EAAiB,KACfliL,EAAO,SAAPA,EAAQ64C,GACPqpI,IAAgBA,EAAiBrpI,GACtC,IAAM3c,EAAW32B,KAAK4B,KAAK0xC,EAAYqpI,GAAkBlnJ,EAAU,GACnE38B,EAAI83F,UAAY5wF,KAAKkB,MAAMy1B,GAAYp6B,EAAMD,GAASA,GAClDq6B,EAAW,GACbv7B,OAAOE,sBAAsBb,IAGjCW,OAAOE,sBAAsBb,GAjIvBg8B,EAAOr4B,GAAO4a,KAAK5C,SAAS,GAAG4C,KAAOojK,EAAcvxJ,OAAOgpI,KAAKt1J,KAAI,SAAAnI,GAAC,OAAIA,EAAE,MAAIuH,UAC/E84B,EAAOr4B,GAAO48B,SAGd,IAAI4hJ,EAAc,GAClB/xJ,EAAOgpI,KAAKhyI,SAAQ,SAAA6L,GACbh3B,OAAOkH,KAAKg/K,GAAax5J,SAASsK,EAAG,IAGxCkvJ,EAAYlvJ,EAAG,KAAO5a,SAAS4a,EAAG,IAFlCkvJ,EAAYlvJ,EAAG,IAAM5a,SAAS4a,EAAG,OAKrC,IAAImvJ,EAAYnmL,OAAOkH,KAAKg/K,GAAa/2I,MAAK,SAASrjC,EAAEC,GAAG,OAAOm6K,EAAYn6K,GAAGm6K,EAAYp6K,MAC9F60J,EAAI5mE,KAAK,iBAAiBhzF,MAAK,SAAUq/K,EAAKz4B,GAC5C,IAAI04B,EAAYr8D,EAAE2jC,GACQ,0BAAvBx5H,EAAOgpI,KAAKipB,GAAK,GAClBC,EAAUtsF,KAAK,QAAQjzE,KAAvB,cAAmCq/J,EAAUC,GAAK1pC,UAAU,KAE5D2pC,EAAUtsF,KAAK,QAAQjzE,KAAKq/J,EAAUC,GAAK1pC,UAAU,IAEvDikB,EAAI5mE,KAAK,kBAAkBqsF,GAAKlsF,UAAYgsF,EAAYC,EAAUC,OAGpE,IAAIE,EAAU,GACdnyJ,EAAOgpI,KAAKhyI,SAAQ,SAAA6L,GACbh3B,OAAOkH,KAAKo/K,GAAS55J,SAASsK,EAAG,IAGpCsvJ,EAAQtvJ,EAAG,KAAO5a,SAAS4a,EAAG,IAF9BsvJ,EAAQtvJ,EAAG,IAAM5a,SAAS4a,EAAG,OAKjCgvJ,EAASlhF,QACT9kG,OAAOkH,KAAKo/K,GAASn3I,MAAK,SAASrjC,EAAEC,GAAG,OAAOu6K,EAAQv6K,GAAGu6K,EAAQx6K,MAAKqf,SAAQ,SAAC6L,EAAIuvJ,GAElF,IAAIC,EADAD,GAAe,IAGjBC,EADCxvJ,EAAGtK,SAAS,KACCsK,EAAG9N,MAAM,WAAW0E,KAAK,IAClBoJ,EACvBgvJ,EAASjyE,OAAT,8IAAuJyyE,EAAvJ,sBAAgLF,EAAQtvJ,GAAxL,qBAEF,MAAOvzB,GACPqmB,QAAQsuH,IAAI30I,GA8EpB,IAAsBrB,EAAKwD,EAAOC,EAAKk5B,EACjCknJ,EACEliL,EAzZJ+gL,EAAQ35J,SAAQ,SAACs7J,EAAQ/+K,GACvB,IAAIg/K,EAAc,IAAIhC,KAAKO,OAAON,UAAUriK,KAAKqkK,SAASxmL,IAAI,CAC5D,IAAOsmL,EACP,QAAW,iBACX,WAAc,qCACd,KAAQ,kBACR,cAAe,MAEbG,EAAY,IAAIlC,KAAKO,OAAON,UAAUriK,KAAKqkK,SAASxmL,IAAI,CAC1D,IAAOsmL,EACP,QAAW,eACX,WAAc,kBAEhB,QAAQ,GACN,KAAM/+K,EAAQ,EACZs9K,EAAOz5J,IAAIm7J,EAAa,CAAC3gL,GAAG,GAAD,OAAK2B,EAAL,MAAgBxB,KAAM,gBACjD8+K,EAAOz5J,IAAIq7J,EAAW,CAAC7gL,GAAG,GAAD,OAAK2B,EAAL,MAAgBxB,KAAM,cAC/C,MACF,KAAMwB,EAAQ,GACZy9K,EAAO55J,IAAIm7J,EAAa,CAAC3gL,GAAG,GAAD,OAAK2B,EAAM,EAAX,MAAkBxB,KAAM,gBACnDi/K,EAAO55J,IAAIq7J,EAAW,CAAC7gL,GAAG,GAAD,OAAK2B,EAAM,EAAX,MAAkBxB,KAAM,cACjD,MACF,KAAMwB,EAAQ,GACZ09K,EAAO75J,IAAIm7J,EAAa,CAAC3gL,GAAG,GAAD,OAAK2B,EAAM,GAAX,MAAmBxB,KAAM,gBACpDk/K,EAAO75J,IAAIq7J,EAAW,CAAC7gL,GAAG,GAAD,OAAK2B,EAAM,GAAX,MAAmBxB,KAAM,cAClD,MACF,KAAMwB,EAAQ,GACZ29K,EAAO95J,IAAIm7J,EAAa,CAAC3gL,GAAG,GAAD,OAAK2B,EAAM,GAAX,MAAmBxB,KAAM,gBACpDm/K,EAAO95J,IAAIq7J,EAAW,CAAC7gL,GAAG,GAAD,OAAK2B,EAAM,GAAX,MAAmBxB,KAAM,cAClD,MACF,KAAMwB,EAAQ,GACZ49K,EAAO/5J,IAAIm7J,EAAa,CAAC3gL,GAAG,GAAD,OAAK2B,EAAM,GAAX,MAAmBxB,KAAM,gBACpDo/K,EAAO/5J,IAAIq7J,EAAW,CAAC7gL,GAAG,GAAD,OAAK2B,EAAM,GAAX,MAAmBxB,KAAM,cAClD,MACF,KAAMwB,EAAQ,GACZ69K,EAAOh6J,IAAIm7J,EAAa,CAAC3gL,GAAG,GAAD,OAAK2B,EAAM,GAAX,MAAmBxB,KAAM,gBACpDq/K,EAAOh6J,IAAIq7J,EAAW,CAAC7gL,GAAG,GAAD,OAAK2B,EAAM,GAAX,MAAmBxB,KAAM,kBAMxD8+K,EAAO6B,SAAQ,SAAUC,GACvBh9J,QAAQsuH,IAAI,mBACZ,IAAI,IAAI94I,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,OAGvD4kL,EAAYhuC,aAAY,WACtB8uC,EAAO6B,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,SAGtD,KACH++D,YAAW,WACT8mH,EAAO0B,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,OAGvD6kL,EAAYjuC,aAAY,WACtBivC,EAAO0B,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,SAGtD,OACF,KACH++D,YAAW,WACT+mH,EAAOyB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,QAGvD8kL,EAAYluC,aAAY,WACtBkvC,EAAOyB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,UAGtD,OACF,KACH++D,YAAW,WACTgnH,EAAOwB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,QAGvD+kL,EAAYnuC,aAAY,WACtBmvC,EAAOwB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,UAGtD,OACF,KACH++D,YAAW,WACTinH,EAAOuB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,QAGvDglL,EAAYpuC,aAAY,WACtBovC,EAAOuB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,UAGtD,OACF,MACH++D,YAAW,WACTknH,EAAOsB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,QAGvDilL,EAAYruC,aAAY,WACtBqvC,EAAOsB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,UAGtD,OACF,MACHklL,GAAgB,EAEhBjgI,SAAS1tB,iBAAiB,oBAAoB,WAC5C,OAAO0tB,SAASwiI,iBACd,IAAK,SACH5wC,cAAc+tC,GACd/tC,cAAcguC,GACdhuC,cAAciuC,GACdjuC,cAAckuC,GACdluC,cAAcmuC,GACdnuC,cAAcouC,GACdC,GAAgB,EAChB16J,QAAQsuH,IAAI,gBACZ,MACF,IAAK,UACEosC,IACH16J,QAAQsuH,IAAI,2BACZ4sC,EAAO6B,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,OAGvD4kL,EAAYhuC,aAAY,WACtB8uC,EAAO6B,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,SAGtD,KACH++D,YAAW,WACT8mH,EAAO0B,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,OAGvD6kL,EAAYjuC,aAAY,WACtBivC,EAAO0B,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,SAGtD,OACF,KACH++D,YAAW,WACT+mH,EAAOyB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,QAGvD8kL,EAAYluC,aAAY,WACtBkvC,EAAOyB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,UAGtD,OACF,KACH++D,YAAW,WACTgnH,EAAOwB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,QAGvD+kL,EAAYnuC,aAAY,WACtBmvC,EAAOwB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,UAGtD,OACF,KACH++D,YAAW,WACTinH,EAAOuB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,QAGvDglL,EAAYpuC,aAAY,WACtBovC,EAAOuB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,UAGtD,OACF,MACH++D,YAAW,WACTknH,EAAOsB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,QAGvDilL,EAAYruC,aAAY,WACtBqvC,EAAOsB,SAAQ,SAAUC,GACvB,IAAI,IAAIxnL,EAAI,EAAGA,EAAI8c,SAASpc,OAAOkH,KAAK4/K,GAAa/jL,OAAO,GAAIzD,IAAK,CAGnEkmL,EAFsBsB,EAAY,GAAD,OAAIxnL,EAAJ,OACXwnL,EAAY,GAAD,OAAIxnL,EAAJ,OACeA,EAAG,UAGtD,OACF,MACHklL,GAAgB,UA8DtB,iEAAiElgL,KAAKq5H,UAAUC,YAElF,IAAIszC,IAAS3sH,SAASsY,eAAe,YAAa,CAChDt9C,UAAW,IACX46J,WAAY,2BAOdnwD,EAAE,iBAAiBjnH,OAAS,GAI9BinH,EAAE,qBAAqB3X,GAAG,SAAS,WAEjCue,IAAKqH,cACLjO,EAAE7pH,IAAI,mBAAmB,SAAS0kH,GAM9B,IALA,IAAIjmF,EAEAooJ,EAAkBh9D,EAAE,uBACpBi9D,EAAkBpiE,EAAQ,WAC1B/5E,EAAkB,GACb/mC,EAAO,EAAGA,GAAQkjL,EAAUlkL,OAAQgB,KAC3C66B,EAAO,IAAIQ,MACN8nJ,QAAQtoJ,EAAKuoJ,UAAYpjL,GAC9B+mC,EAAO0lC,QAAP,UAAkB5xC,EAAKuoJ,UAAvB,gBAAwCvoJ,EAAKwoJ,WAAa,IAE5D,IAcIjkJ,EAAS,CACGj9B,KAAM,OACNoc,KAhBJ,CACEwoB,OAAQA,EACRprB,SAAU,CAAC,CACT4C,KAAM2kK,EAAUp/K,KAAI,SAAA+C,GAAC,OAAGA,KACxB4hC,MAAO,6BACPnnB,KAAM,CACJxiB,OAAQ,SACRkxE,MAAO,WAETt0D,YAAa,UACbuT,QAAS,GACTq0J,YAAa,KAMbl/K,QAAS,CACPmZ,OAAQ,CACN1W,EAAG,CACDqpC,KAAM,CACJ2H,SAAS,IAGb/wC,EAAG,CACDopC,KAAM,CACJ2H,SAAS,OAMjC,IAAIohB,IAAMgqH,EAAiB7jJ,GAC3B6mF,EAAE,uBAAuBljG,KAAK+9F,EAAQ,gBAAoByiE,kBAC1D12D,IAAK3E,WAETjC,EAAE7sG,MAAM89E,KAAK,YAAY,U,qCC/lB/B,SAAS14F,EAAQH,GAAmV,OAAtOG,EAArD,oBAAXlC,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,GAEnX,IAAIqN,EAEJA,EAAI,WACF,OAAO0N,KADL,GAIJ,IAEE1N,EAAIA,GAAK,IAAIs8G,SAAS,cAAb,GACT,MAAOtoH,GAEiE,YAAjD,qBAAXiB,OAAyB,YAAcnC,EAAQmC,WAAuB+K,EAAI/K,QAMxFrF,EAAOD,QAAUqQ,G,iBCnBjB,kCAAoW,OAAtOlN,EAArD,oBAAXlC,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,IAMnX,YAEE,YACE,WACE+a,KAAKoqK,WAAa,CAChBC,UACS,MAAQ9iL,OAAOqpJ,QAAQE,WAAa,MAAQvpJ,OAAOE,uBAAyB,MAAQF,OAAOmyB,iBAEpG4wJ,MAAO,SAAejnL,EAAGJ,GACvB,OAAOqD,EAAEuiC,WAAWyhJ,MAAMjnL,EAAGJ,IAE/B66D,WAAY,WACV,OAAOx3D,EAAEuiC,WAAWi1B,cAEtBysH,oBAAqB,SAA6BlnL,GAChD,OAAOiD,EAAEuiC,WAAW0hJ,oBAAoBlnL,OAG3Cf,KAAK0d,QACP1d,KAlBK0d,MAmBR,IAAI1Z,EAnBI0Z,KAmBEoqK,YACV,YACE,WACE,IAAI/mL,EACAJ,EACAW,EACAhB,EAAI,GAAGsE,MACXZ,EAAEkkL,WAAa,SAAUnnL,GACvB,IAAIiD,EAAGrD,EAAGW,EAGV,IAAK0C,KAFLrD,EAAI,GAEMI,EACRO,EAAIP,EAAEiD,GAAIrD,EAAEqD,GAAK1C,EAGnB,OAAOX,GACNqD,EAAEo/F,QAAU,SAAUp/F,EAAGrD,GAC1B,OAAOI,EAAEf,KAAKgE,EAAGrD,IAChBI,EAAI,WACL,IAAOiD,EACP,OAAqC,OAASA,EAAnC8gD,SAAS80C,gBAAgCwJ,SAAWp/F,EAAI,SAAUjD,GAC3E,IAAIiD,EAEJ,IAAKA,EAAI0Z,KAAM1Z,GAAI,CACjB,GAAIA,EAAEktF,WAAai3F,KAAKC,cAAgBznL,EAAEX,KAAKgE,EAAGjD,GAAI,OAAOiD,EAC7DA,EAAIA,EAAE8vB,aAPL,GAUF9vB,EAAEkmG,MAAQ,SAAUnpG,GACvB,OAAO69D,WAAW79D,EAAG,IACpBiD,EAAEsuK,SAAW,SAAUvxK,GACxB,IAAIiD,EACJ,OAAOA,EAAI,KAAM,WACf,IAAIrD,EACJ,OAAOA,EAAI,GAAKiF,UAAUtC,OAAShD,EAAEN,KAAK4F,UAAW,GAAK,GAAI,MAAQ5B,EAAIA,EAAIA,EAAImB,sBAAsB,SAAU7D,GAChH,OAAO,WACL,OAAO0C,EAAI,KAAMjD,EAAEgF,MAAMzE,EAAGX,IAFwE,CAItG+c,SAEH1Z,EAAEgrG,SAAW,SAAUjuG,EAAGiD,GAC3B,IAAIrD,EAAGL,EAAGT,EAAG+B,EAAGyK,EAAGsiI,EACnB,OAA+BA,GAAxBtiI,EAAI,MAAQrI,EAAIA,EAAI,IAAUZ,OAAQzC,EAAI0L,EAAE6sD,WAAY54D,EAAI+L,EAAEwW,MAAMhjB,EAAIilD,SAAS0sF,YAAY,WAAaqc,UAAU9sJ,GAAG,GAAU,IAANJ,GAAWd,EAAEgjB,KAAO,MAAQviB,EAAIA,EAAI,GAAIT,EAAEq5D,aAAe53D,IAAMM,EAAI/B,EAAEuuG,eAAgBvuG,EAAEuuG,eAAiB,WACxO,OAAO1wF,KAAKozF,kBAAoBvwG,OAAOC,eAAekd,KAAM,mBAAoB,CAC9Ehd,IAAK,WACH,OAAO,KAEPkB,EAAE5B,KAAK0d,SACR,MAAQixH,EAAIA,EAAI7pF,UAAU0mF,cAAc3rI,GAAIA,GAChDyB,EAAI,WACL,IAAIP,EACJ,OAAOA,EAAI+jD,SAAS0sF,YAAY,WAAaqc,UAAU,QAAQ,GAAI,GAAK9sJ,EAAEqtG,iBAAkBrtG,EAAE+vG,iBAFzF,GAGF9sG,EAAEylB,MAAQ,SAAU1oB,EAAGiD,GAC1B,OAAOrD,EAAEX,KAAKe,EAAGiD,IAChBrD,EAAI,WACL,IAAII,EAAGiD,EAAGrD,EAAGW,EACb,OAAqC,OAAS0C,EAAI,OAASrD,EAAI,OAASW,GAAjEP,EAAI+jD,SAAS80C,iBAA0Dc,iBAAmBp5F,EAAIP,EAAE45F,uBAAyBh6F,EAAII,EAAE+5F,mBAAqB92F,EAAIjD,EAAE65F,mBAF5J,GAGF52F,EAAEqkL,KAAO,WACZ,IAAItnL,EAAGiD,EAAGrD,EAEV,IAAKA,EAAI,GAAII,EAAIiD,EAAI,EAAG,IAAMA,EAAGjD,IAAMiD,EACrCrD,GAAK,IAAMI,GAAK,KAAOA,GAAK,KAAOA,GAAK,KAAOA,EAAI,IAAM,KAAOA,EAAI,IAAM,KAAOA,GAAK8I,KAAKkB,MAAM,EAAIlB,KAAKqpF,UAAY,GAAGvuF,SAAS,IAAMkF,KAAKkB,MAAM,GAAKlB,KAAKqpF,UAAUvuF,SAAS,IAGlL,OAAOhE,KAERX,KAAK0d,MAAO,WACb1Z,EAAEskL,SAAW,WACX,SAASvnL,EAAEA,GACT,IAAIiD,EAAGrD,EACP,MAAQI,IAAMA,EAAI,KAAKJ,EAAImkD,SAAS6sC,cAAc,MAAQwM,KAAOp9F,EAAE4D,WAAY+Y,KAAK6qK,YAAc5nL,EAAEw9F,KAAyB,GAAnBn6F,EAAIrD,EAAEo9F,KAAKz6F,QAAgBoa,KAAK8qK,WAAa9qK,KAAK6qK,aAAe7qK,KAAK8qK,WAAa9qK,KAAK6qK,YAAY3jL,MAAM,GAAIZ,GAAI0Z,KAAKsyH,OAASrvI,EAAEo9F,KAAKn5F,MAAM,IAGzP,IAAIZ,EAAGrD,EAAGW,EAAGhB,EACb,OAAOS,EAAEqhD,KAAO,SAAUrhD,GACxB,OAAOA,aAAa2c,KAAO3c,EAAI,IAAI2c,KAAK3c,IACvCA,EAAEU,UAAUgnL,UAAY,WACzB,OAAO/qK,KAAK6qK,YAAYjpK,MAAM,IAAK,GAAG6O,KAAK,MAC1CptB,EAAEU,UAAUinL,QAAU,WACvB,IAAI3nL,EAAGiD,EACP,OAAO,OAASjD,EAAI,OAASiD,EAAI0Z,KAAK8qK,WAAW/+J,MAAM,yBAA2BzlB,EAAE,QAAK,GAAUjD,EAAI,KACtGA,EAAEU,UAAUknL,kBAAoB,WACjC,OAAOjrK,KAAKgrK,UAAUppK,MAAM,KAAK1a,MAAM,IACtC7D,EAAEU,UAAUmnL,qBAAuB,WACpC,OAAOlrK,KAAKirK,oBAAoB/jL,OAAO,GAAG,IACzC7D,EAAEU,UAAUonL,aAAe,WAC5B,IAAI9nL,EAAGiD,EACP,OAAO,OAASjD,EAAI,OAASiD,EAAI0Z,KAAKkrK,uBAAuBn/J,MAAM,aAAezlB,EAAE,QAAK,GAAUjD,EAAI,IACtGA,EAAEU,UAAUqnL,OAAS,WACtB,OAAOprK,KAAKmrK,eAAep/J,MAAM,gCAChC1oB,EAAEU,UAAUsnL,aAAe,SAAUhoL,GACtC,IAAIiD,EACJ,OAAOA,EAAIrD,EAAEI,GAAI2c,KAAKsrK,UAAUjoL,IAAMT,EAAEod,KAAK6qK,YAAavkL,IACzDjD,EAAEU,UAAUunL,UAAY,SAAUjoL,GACnC,OAAO2c,KAAK6qK,eAAiB,MAAQxnL,EAAIA,EAAEwnL,iBAAc,IACxDxnL,EAAEU,UAAUwnL,WAAa,WAC1B,OAAOvrK,KAAK8qK,YACXznL,EAAEU,UAAUynL,OAAS,WACtB,OAAOxrK,KAAK6qK,aACXxnL,EAAEU,UAAUkD,SAAW,WACxB,OAAO+Y,KAAK6qK,aACXxnL,EAAEU,UAAUi8B,QAAU,WACvB,OAAOhgB,KAAK6qK,aACX5nL,EAAI,SAAWI,GAChB,OAAOiD,EAAEjD,EAAE0nL,YAAc1nL,EAAE2nL,YAC1B1kL,EAAI,SAAWjD,GAChB,OAAOO,EAAEP,EAAG,KAAOA,EAAIA,EAAI,KAC1BT,EAAI,SAAWS,EAAGiD,GACnB,OAAOjD,EAAE6D,MAAM,EAAGZ,EAAEV,UAAYU,GAC/B1C,EAAI,SAAWP,EAAGiD,GACnB,OAAOjD,EAAE6D,OAAOZ,EAAEV,UAAYU,GAC7BjD,EA5CQ,IA8Cbf,KAAK0d,MAAO,WACZ,IAAI3c,EAAI,SAAWooL,EAAInlL,GACrB,OAAO,WACL,OAAOmlL,EAAGpjL,MAAM/B,EAAG4B,aAIvB5B,EAAEolL,YAAc,WACd,SAASzoL,EAAEA,EAAGW,EAAGhB,GACfod,KAAKksG,SAAWjpH,EAAG+c,KAAK2rK,gBAAkBtoL,EAAE2c,KAAK2rK,gBAAiB3rK,MAAOA,KAAK4rK,gBAAkBvoL,EAAE2c,KAAK4rK,gBAAiB5rK,MAAOA,KAAK6rK,cAAgBxoL,EAAE2c,KAAK6rK,cAAe7rK,MAAOA,KAAK8rK,cAAgBzoL,EAAE2c,KAAK8rK,cAAe9rK,MAAOA,KAAK+rK,kBAAoB1oL,EAAE2c,KAAK+rK,kBAAmB/rK,MAAOA,KAAKwkG,IAAMl+G,EAAEskL,SAASlmI,KAAK9gD,GAAGknL,WAAY9qK,KAAKgsK,SAAW1lL,EAAEskL,SAASlmI,KAAK9hD,GAAGioL,YAAa7qK,KAAKm0H,YAG9X,OAAOlxI,EAAEgpL,gBAAkB,EAAGhpL,EAAEipL,iBAAmB,EAAGjpL,EAAEk9D,QAAU,GAAIl9D,EAAEc,UAAUujH,KAAO,WACvF,IAAIjkH,EACJ,OAAO2c,KAAK4oG,MAAQ5oG,KAAKmsK,MAAQnsK,KAAKosK,sCAAuCpsK,KAAKqsK,YAAY,GAAIrsK,KAAK4oG,IAAItB,OAAQtnG,KAAKmsK,MAAO,EAAI,mBAAsB9oL,EAAI2c,KAAKksG,UAAUogE,eAAiBjpL,EAAEipL,sBAAmB,QAAU,GAC3NrpL,EAAEc,UAAUw/B,OAAS,WACtB,OAAOvjB,KAAK4oG,KAAO5oG,KAAKmsK,KAAOnsK,KAAK4oG,IAAI/B,aAAU,GACjD5jH,EAAEc,UAAUgoL,kBAAoB,SAAU1oL,GAC3C,OAAOA,EAAEkpL,iBAAmBvsK,KAAKqsK,YAAYhpL,EAAE2tI,OAAS3tI,EAAE82C,YAAS,GAClEl3C,EAAEc,UAAU+nL,cAAgB,WAC7B,OAAO9rK,KAAKwsK,WAAW,SAAUnpL,GAC/B,OAAO,WACL,IAAIiD,EACJ,OAAO,MAAQA,EAAIjD,EAAEulH,IAAIhC,SAAW,IAAMtgH,EAAIjD,EAAE6oH,SAASugE,6BAA6BppL,EAAEulH,IAAIgB,aAAcvmH,EAAEulH,IAAIrC,kBAAkB,yBAA2BljH,EAAEqpL,QAAS,EAAIrpL,EAAE6oH,SAASygE,4BAA4BtpL,EAAEulH,IAAIhC,OAAQvjH,EAAEulH,IAAIgB,gBAHpN,CAKrB5pG,QACD/c,EAAEc,UAAU8nL,cAAgB,WAC7B,OAAO7rK,KAAKwsK,WAAW,SAAUnpL,GAC/B,OAAO,WACL,OAAOA,EAAEqpL,QAAS,EAAIrpL,EAAE6oH,SAASygE,4BAA4BtpL,EAAEgC,YAAY4mL,kBAFxD,CAIrBjsK,QACD/c,EAAEc,UAAU6nL,gBAAkB,WAC/B,OAAO5rK,KAAKwsK,WAAW,SAAUnpL,GAC/B,OAAO,WACL,OAAOA,EAAEqpL,QAAS,EAAIrpL,EAAE6oH,SAASygE,4BAA4BtpL,EAAEgC,YAAY6mL,kBAFxD,CAIrBlsK,QACD/c,EAAEc,UAAU4nL,gBAAkB,WAC/B,OAAO3rK,KAAKwsK,cACXvpL,EAAEc,UAAUqoL,oCAAsC,WACnD,OAAO9lL,EAAEgrG,SAAS,2BAA4B,CAC5CnsF,KAAM,CACJq/F,IAAKxkG,KAAKwkG,IACVoE,IAAK5oG,KAAK4oG,QAGb3lH,EAAEc,UAAU6oL,iCAAmC,WAChD,OAAOtmL,EAAEgrG,SAAS,yBAA0B,CAC1CnsF,KAAM,CACJq/F,IAAKxkG,KAAKwkG,IACVoE,IAAK5oG,KAAK4oG,QAGb3lH,EAAEc,UAAUowI,UAAY,WACzB,OAAOn0H,KAAK4oG,IAAM,IAAIC,eAAkB7oG,KAAK4oG,IAAIO,KAAK,MAAOnpG,KAAKwkG,KAAK,GAAKxkG,KAAK4oG,IAAIzoD,QAAU,IAAMngD,KAAK3a,YAAY86D,QAASngD,KAAK4oG,IAAInC,iBAAiB,SAAU,oCAAqCzmG,KAAK4oG,IAAInC,iBAAiB,sBAAuBzmG,KAAKgsK,UAAWhsK,KAAK4oG,IAAIikE,WAAa7sK,KAAK+rK,kBAAmB/rK,KAAK4oG,IAAIU,OAAStpG,KAAK8rK,cAAe9rK,KAAK4oG,IAAIW,QAAUvpG,KAAK6rK,cAAe7rK,KAAK4oG,IAAIa,UAAYzpG,KAAK4rK,gBAAiB5rK,KAAK4oG,IAAIY,QAAUxpG,KAAK2rK,iBACtc1oL,EAAEc,UAAUyoL,WAAa,SAAUnpL,GACpC,OAAO2c,KAAK4oG,KAAO5oG,KAAK4sK,mCAAoC,MAAQvpL,GAAKA,EAAEf,KAAK0d,MAAOA,KAAKsyD,gBAAa,GACxGrvE,EAAEc,UAAUsoL,YAAc,SAAUhpL,GACrC,IAAIiD,EACJ,OAAO0Z,KAAK8iB,SAAWz/B,EAAG,mBAAsBiD,EAAI0Z,KAAKksG,UAAU6/D,kBAAoBzlL,EAAEylL,kBAAkB/rK,KAAK8iB,eAAY,GAC3H7/B,EAAEc,UAAUuuE,QAAU,WACvB,IAAIjvE,EACJ,OAAO2c,KAAKqsK,YAAY,GAAI,mBAAsBhpL,EAAI2c,KAAKksG,UAAU4gE,iBAAmBzpL,EAAEypL,kBAAmB9sK,KAAKksG,SAAW,KAAMlsG,KAAK4oG,IAAM,MAC7I3lH,EAzDW,IA2DhBX,KAAK0d,MAAO,WAOZ1Z,EAAEymL,YAAc,WACd,SAASzmL,IACP0Z,KAAKgtK,QARD,SAAWC,EAAK3mL,GACtB,OAAO,WACL,OAAO2mL,EAAI5kL,MAAM/B,EAAG4B,YAML7E,CAAE2c,KAAKgtK,QAAShtK,MAAOA,KAAKktK,kBAAoBltK,KAAKmtK,0BAA2BntK,KAAKotK,gBAAkBptK,KAAKqtK,wBAG7H,IAAIpqL,EACJ,OAAOA,EAAI,IAAKqD,EAAEgnL,WAAa,8PAAyRhnL,EAAEvC,UAAU4hC,KAAO,WACzU,OAAO3lB,KAAK6lB,aAAU,GAAU7lB,KAAK6lB,SAAU,EAAI7lB,KAAKutK,2BAA4BvtK,KAAKwtK,yBAA0BxtK,KAAKytK,mBACvHnnL,EAAEvC,UAAU+hC,KAAO,WACpB,OAAO9lB,KAAK6lB,UAAY7lB,KAAK0tK,QAAU1tK,KAAK0tK,QAAS,EAAI1tK,KAAK2tK,oBAAoB,SAAUtqL,GAC1F,OAAO,WACL,OAAOA,EAAEuqL,2BAA4BvqL,EAAEwqL,gBAAiBxqL,EAAEwiC,SAAU,EAAIxiC,EAAEqqL,QAAS,GAFL,CAIhF1tK,aAAU,GACX1Z,EAAEvC,UAAU+pL,SAAW,SAAUzqL,GAClC,OAAO2c,KAAK5c,MAAQC,EAAG2c,KAAK2xH,WAC3BrrI,EAAEvC,UAAUwpL,yBAA2B,WACxC,OAAOnmI,SAAS/S,KAAKyiE,aAAa92F,KAAKktK,kBAAmB9lI,SAAS/S,KAAKiqD,aACvEh4F,EAAEvC,UAAUypL,uBAAyB,WACtC,OAAOxtK,KAAKotK,gBAAgBlqK,MAAMuC,MAAQ,EAAGzF,KAAKotK,gBAAgBlqK,MAAMq9D,QAAU,EAAGn5B,SAAS80C,gBAAgB4a,aAAa92F,KAAKotK,gBAAiBhmI,SAASs2B,MAAO19D,KAAK2xH,WACrKrrI,EAAEvC,UAAU4pL,oBAAsB,SAAUtqL,GAC7C,OAAO2c,KAAKotK,gBAAgBlqK,MAAMq9D,QAAU,EAAGrf,WAAW79D,EAAG,MAC5DiD,EAAEvC,UAAU6pL,yBAA2B,WACxC,OAAO5tK,KAAKotK,gBAAgBh3J,WAAagxB,SAAS80C,gBAAgB/H,YAAYn0E,KAAKotK,sBAAmB,GACrG9mL,EAAEvC,UAAU0pL,eAAiB,WAC9B,OAAO,MAAQztK,KAAK+tK,gBAAkB/tK,KAAK+tK,gBAAkB/tK,KAAK+tK,gBAAkBh1C,YAAY/4H,KAAKgtK,QAAS/pL,IAC7GqD,EAAEvC,UAAU8pL,cAAgB,WAC7B,OAAO70C,cAAch5H,KAAK+tK,iBAAkB/tK,KAAK+tK,gBAAkB,MAClEznL,EAAEvC,UAAUipL,QAAU,WACvB,OAAOhtK,KAAK8tK,SAAS9tK,KAAK5c,MAAQ+I,KAAKqpF,SAAW,MACjDlvF,EAAEvC,UAAU4tI,QAAU,WACvB,OAAOlqI,sBAAsB,SAAUpE,GACrC,OAAO,WACL,OAAOA,EAAE+pL,gBAAgBlqK,MAAMuC,MAAQ,GAAK,GAAKpiB,EAAED,MAAQ,KAFlC,CAI3B4c,QACD1Z,EAAEvC,UAAUopL,wBAA0B,WACvC,IAAI9pL,EACJ,OAAOA,EAAI+jD,SAAS6sC,cAAc,UAAYlrF,KAAO,WAAY1F,EAAEg7F,YAAcr+E,KAAK3a,YAAYioL,WAAYjqL,GAC7GiD,EAAEvC,UAAUspL,sBAAwB,WACrC,IAAIhqL,EACJ,OAAOA,EAAI+jD,SAAS6sC,cAAc,QAAUsI,UAAY,0BAA2Bl5F,GAClFiD,EA1CW,IA4ChBhE,KAAK0d,MAAO,WAOZ1Z,EAAE0nL,eAAiB,WACjB,SAAS/qL,EAAEA,GACT+c,KAAK6oB,WAAa5lC,EAAG+c,KAAKiuK,gBARtB,SAAWC,EAAK5nL,GACtB,OAAO,WACL,OAAO4nL,EAAI7lL,MAAM/B,EAAG4B,YAMwB7E,CAAE2c,KAAKiuK,gBAAiBjuK,MAAOA,KAAKmuK,YAAc,IAAI7nL,EAAEymL,YAGtG,IAAInpL,EAAGhB,EAAGT,EACV,OAAOA,EAAImE,EAAEolL,YAAa9nL,EAAIzB,EAAE8pL,gBAAiBrpL,EAAIT,EAAE+pL,gBAAiBjpL,EAAEc,UAAUqqL,kCAAoC,SAAU/qL,EAAGiD,GACnI,OAAO0Z,KAAK6oB,WAAWwlJ,+BAA+BhrL,EAAGiD,IACxDrD,EAAEc,UAAUuqL,aAAe,SAAUjrL,GACtC,OAAOA,EAAEkrL,eAAgBlrL,EAAEmrL,gBAAiBnrL,EAAEorL,sBAC7CxrL,EAAEc,UAAU2qL,oBAAsB,SAAUrrL,GAC7C,OAAO2c,KAAKmuK,YAAYL,SAAS,GAAIzqL,EAAEsrL,qBAAuB,YAActrL,EAAE4yI,OAASj2H,KAAK4uK,4BAA8B5uK,KAAKiuK,mBAC9HhrL,EAAEc,UAAU8qL,uBAAyB,SAAUxrL,GAChD,OAAO2c,KAAKmuK,YAAYL,SAASzqL,EAAEy/B,WAClC7/B,EAAEc,UAAU+qL,sBAAwB,SAAUzrL,GAC/C,OAAOA,EAAE0rL,gBACR9rL,EAAEc,UAAUirL,iCAAmC,SAAU3rL,EAAGiD,GAC7D,OAAQA,GACN,KAAK1C,EACL,KAAKhB,EACH,OAAOod,KAAKivK,SAEd,QACE,OAAO5rL,EAAE0rL,iBAEZ9rL,EAAEc,UAAUmrL,qBAAuB,SAAU7rL,GAC9C,OAAO2c,KAAKmvK,mBACXlsL,EAAEc,UAAUqrL,eAAiB,SAAU/rL,GACxC,OAAOA,EAAEgsL,kBACRpsL,EAAEc,UAAUurL,gBAAkB,WAC/B,OAAOtvK,KAAKivK,UACXhsL,EAAEc,UAAU6qL,0BAA4B,WACzC,OAAO5uK,KAAKuvK,mBAAqBruH,WAAWlhD,KAAKiuK,gBAAiBjuK,KAAK6oB,WAAW2mJ,mBACjFvsL,EAAEc,UAAUkqL,gBAAkB,WAC/B,OAAOjuK,KAAKmuK,YAAYxoJ,QACvB1iC,EAAEc,UAAUorL,gBAAkB,WAC/B,OAAOnvK,KAAKmuK,YAAYroJ,OAAQm7B,aAAajhD,KAAKuvK,qBACjDtsL,EAAEc,UAAUkrL,OAAS,WACtB,OAAO1nL,OAAO+4F,SAAS2uF,UACtBhsL,EAvCc,IAyCnBX,KAAK0d,MAAO,WACZ,IAAI3c,EAAI,SAAWosL,EAAKnpL,GACtB,OAAO,WACL,OAAOmpL,EAAIpnL,MAAM/B,EAAG4B,aAIxB5B,EAAEopL,QAAU,WACV,SAASzsL,EAAEqD,GACT0Z,KAAKksG,SAAW5lH,EAAG0Z,KAAK2vK,WAAatsL,EAAE2c,KAAK2vK,WAAY3vK,MAAOA,KAAK4vK,WAAavsL,EAAE2c,KAAK4vK,WAAY5vK,MAGtG,OAAO/c,EAAEc,UAAU0E,MAAQ,WACzB,OAAOuX,KAAK2iH,aAAU,GAAUjpG,iBAAiB,WAAY1Z,KAAK4vK,YAAY,GAAKl2J,iBAAiB,OAAQ1Z,KAAK2vK,YAAY,GAAK3vK,KAAK2iH,SAAU,IAChJ1/H,EAAEc,UAAUo5C,KAAO,WACpB,OAAOn9B,KAAK2iH,SAAWhpG,oBAAoB,WAAY3Z,KAAK4vK,YAAY,GAAKj2J,oBAAoB,OAAQ3Z,KAAK2vK,YAAY,GAAK3vK,KAAK2iH,SAAU,QAAM,GACnJ1/H,EAAEc,UAAU2hB,KAAO,SAAUriB,EAAGJ,GACjC,OAAOI,EAAIiD,EAAEskL,SAASlmI,KAAKrhD,GAAI2c,KAAKmnB,OAAO,OAAQ9jC,EAAGJ,IACrDA,EAAEc,UAAUib,QAAU,SAAU3b,EAAGJ,GACpC,OAAOI,EAAIiD,EAAEskL,SAASlmI,KAAKrhD,GAAI2c,KAAKmnB,OAAO,UAAW9jC,EAAGJ,IACxDA,EAAEc,UAAU6rL,WAAa,SAAUvsL,GACpC,IAAIJ,EAAGW,EAAGhB,EAAGT,EACb,OAAO6d,KAAK6vK,yBAA2B1tL,EAAI,OAASyB,EAAIP,EAAEilG,OAAS1kG,EAAEksL,gBAAa,IAAW7sL,EAAIqD,EAAEskL,SAASlmI,KAAKn9C,OAAO+4F,UAAW19F,EAAIT,EAAE4tL,sBAAuB/vK,KAAKksG,SAAS8jE,iDAAiD/sL,EAAGL,SAAM,GACvOK,EAAEc,UAAU4rL,WAAa,SAAUtsL,GACpC,OAAOiD,EAAEkmG,MAAM,SAAUnpG,GACvB,OAAO,WACL,OAAOA,EAAE4sL,YAAa,GAFX,CAIbjwK,QACD/c,EAAEc,UAAU8rL,qBAAuB,WACpC,OAAO7vK,KAAKkwK,gBACXjtL,EAAEc,UAAUmsL,aAAe,WAC5B,OAAOlwK,KAAKiwK,YAAc,aAAe7oI,SAASsjD,YACjDznG,EAAEc,UAAUojC,OAAS,SAAU9jC,EAAGiD,EAAGrD,GACtC,IAAIW,EACJ,OAAOA,EAAI,CACTksL,WAAY,CACVC,sBAAuB9sL,IAExB2tJ,QAAQvtJ,EAAI,SAASO,EAAG,KAAM0C,IAChCrD,EAjCO,IAmCZX,KAAK0d,MAAO,WACZ1Z,EAAE6pL,YAAc,WACd,SAAS9sL,EAAEA,GACT,IAAIiD,EAAM1C,EAAGM,EAAGyK,EAAGsiI,EAEnB,IAAKjxH,KAAK6C,SAAW,GAAIjf,EAAI,EAAG+K,EAAItL,EAAEuC,OAAQ+I,EAAI/K,EAAGA,KACnDqtI,EAAI5tI,EAAEO,IAAM4vF,WAAai3F,KAAKC,eAAiBxmL,EAAI+sI,EAAEhK,WAAe,OAAS3gI,EAAI0Z,KAAK6C,UAAU3e,GAAKoC,EAAEpC,GAAKoC,EAAEpC,GAAK,CACjH6E,KAAM5G,EAAE8uI,GACRm/C,QAASxtL,EAAEquI,GACXpuH,SAAU,KACPA,SAAS6C,KAAKurH,IAIvB,IAAI3qI,EAAGrD,EAAGW,EAAGhB,EAAGT,EAChB,OAAOkB,EAAEgtL,gBAAkB,SAAUhtL,GACnC,IAAIiD,EACJ,OAAO,IAAI0Z,KAAK,OAAS1Z,EAAI,MAAQjD,EAAIA,EAAE42F,gBAAa,GAAU3zF,EAAI,KACrEjD,EAAEU,UAAUusL,kBAAoB,SAAUjtL,GAC3C,OAAOA,KAAK2c,KAAK6C,UAChBxf,EAAEU,UAAUwsL,2BAA6B,WAC1C,IAAIltL,EACJ,OAAO,WACL,IAAIJ,EAAGW,EAGP,IAAKP,KAFcO,EAAI,GAAvBX,EAAI+c,KAAK6C,SAGH5f,EAAEI,GAAG+sL,SAAcxsL,EAAE8hB,KAAKriB,GAGhC,OAAOO,GACPtB,KAAK0d,MAAMyQ,KAAK,KACjBptB,EAAEU,UAAUysL,8BAAgC,SAAUntL,GACvD,OAAO2c,KAAKywK,oCAAoC,SAAUptL,IACzDA,EAAEU,UAAU2sL,kCAAoC,SAAUrtL,GAC3D,OAAO2c,KAAKywK,oCAAoC,aAAcptL,IAC7DA,EAAEU,UAAU0sL,oCAAsC,SAAUptL,EAAGiD,GAChE,IAAIrD,EAAGW,EAAGhB,EAAGT,EAAG+B,EAAGyK,EAGnB,IAAK/K,KAFcM,EAAI,GAAvBtB,EAAIod,KAAK6C,SAGGlU,GAAVxM,EAAIS,EAAEgB,IAAUmF,KAAM9F,EAAId,EAAE0gB,SAAUlU,IAAMtL,GAAKiD,EAAEgqL,kBAAkB1sL,IAAMM,EAAEwhB,KAAKziB,EAAE,IAGtF,OAAOiB,GACNb,EAAEU,UAAU4sL,uBAAyB,WACtC,IAAIttL,EAAGiD,EAAGrD,EAAGW,EAAGhB,EAAGT,EAAG+B,EAGtB,IAAKoC,KAFLrD,EAAI,GAAIW,EAAIoc,KAAK6C,SAGL3e,GAAVtB,EAAIgB,EAAE0C,IAAUyC,KAAM5G,EAAIS,EAAEwtL,QAAS/sL,EAAIT,EAAEigB,SAAU,MAAQ3e,GAAK/B,EAAIkB,EAAEuC,OAAS,GAAK3C,EAAEyiB,KAAKrd,MAAMpF,EAAGI,EAAE6D,MAAM,IAAMjE,EAAEyiB,KAAKrd,MAAMpF,EAAGI,GAGtI,OAAOJ,GACNI,EAAEU,UAAU6sL,aAAe,SAAUvtL,GACtC,IAAIiD,EACJ,OAAO,OAASA,EAAI0Z,KAAK6wK,sBAAsBxtL,IAAMiD,EAAEsiD,aAAa,gBAAa,GAChFvlD,EAAEU,UAAU8sL,sBAAwB,SAAUxtL,GAC/C,IAAIJ,EAAGW,EAAGhB,EAAGT,EAGb,IAAKS,KAFLK,OAAI,EAAQd,EAAI6d,KAAK6C,SAGnBjf,EAAIzB,EAAES,GAAGigB,SAAUvc,EAAE1C,EAAE,GAAIP,KAAOJ,EAAIW,EAAE,IAG1C,OAAOX,GACNd,EAAI,SAAWkB,GAChB,OAAOJ,EAAEI,GAAK,SAAWO,EAAEP,GAAK,kBAAe,GAC9CT,EAAI,SAAWS,GAChB,MAAO,WAAaA,EAAEulD,aAAa,0BAClC3lD,EAAI,SAAWI,GAEhB,MAAoC,WAAzBA,EAAE49H,QAAQ7hH,eACpBxb,EAAI,SAAWP,GAChB,IAAIiD,EACJ,MAAoC,WAA7BA,EAAIjD,EAAE49H,QAAQ7hH,gBAAgC,SAAW9Y,GAAK,eAAiBjD,EAAEulD,aAAa,QACpGtiD,EAAI,SAAWjD,EAAGkD,GAEnB,MAAoC,SAAzBlD,EAAE49H,QAAQ7hH,eAA+B/b,EAAEulD,aAAa,UAAYriD,GAC9ElD,EA9EW,IAgFhBf,KAAK0d,MAAO,WACZ1Z,EAAEwqL,SAAW,WACX,SAASztL,EAAEA,EAAGiD,GACZ0Z,KAAK+wK,YAAc1tL,EAAG2c,KAAKgxK,YAAc1qL,EAG3C,OAAOjD,EAAEqhD,KAAO,SAAUrhD,GACxB,OAAOA,aAAa2c,KAAO3c,EAAI,iBAAmBA,EAAI2c,KAAKixK,eAAe5tL,GAAK2c,KAAKkxK,gBAAgB7tL,IACnGA,EAAE4tL,eAAiB,SAAU5tL,GAC9B,IAAIiD,EACJ,OAAOA,EAAI8gD,SAAS6sC,cAAc,SAAW8I,UAAY15F,EAAG2c,KAAKkxK,gBAAgB5qL,IAChFjD,EAAE6tL,gBAAkB,SAAU7tL,GAC/B,IAAIJ,EAAML,EAAGT,EACb,OAAOS,EAAIS,EAAEqqH,cAAc,QAASzqH,EAAI,OAASd,EAAIkB,EAAEqqH,cAAc,SAAWvrH,EAAIilD,SAAS6sC,cAAc,QAA+C,IAAIj0E,KAAtC1Z,EAAE6pL,YAAYE,gBAAgBztL,GAAgBK,IACrKI,EAAEU,UAAUyb,MAAQ,WACrB,OAAO,IAAIQ,KAAK3a,YAAY2a,KAAK+wK,YAAa/wK,KAAKgxK,YAAY/iF,WAAU,KACxE5qG,EAAEU,UAAUotL,gBAAkB,WAC/B,IAAI9tL,EAAGJ,EACP,OAAOA,EAAI,OAASI,EAAI2c,KAAKoxK,WAAW,SAAW/tL,EAAI,IAAK,IAAIiD,EAAEskL,SAAS3nL,IAC1EI,EAAEU,UAAUstL,qBAAuB,WACpC,OAAOrxK,KAAKoxK,WAAW,kBACtB/tL,EAAEU,UAAUutL,oBAAsB,SAAUjuL,GAC7C,IACE,OAAO2c,KAAKgxK,YAAYtjE,cAAc,QAAUrqH,EAAI,eAAiBA,EAAI,MACzE,MAAOiD,MACRjD,EAAEU,UAAUwtL,qBAAuB,WACpC,OAAOvxK,KAAKgxK,YAAYl2F,iBAAiB,oCACxCz3F,EAAEU,UAAUytL,wBAA0B,SAAUnuL,GACjD,OAAO2c,KAAKgxK,YAAYtjE,cAAc,IAAMrqH,EAAI,gCAC/CA,EAAEU,UAAU0tL,sCAAwC,SAAUpuL,GAC/D,IAAIiD,EAAGrD,EAAGW,EAAGhB,EAAGT,EAEhB,IAAsCA,EAAI,GAAIc,EAAI,EAAGW,GAAhDhB,EAAIod,KAAKuxK,wBAA6C3rL,OAAQhC,EAAIX,EAAGA,IACxEqD,EAAI1D,EAAEK,GAAII,EAAEmuL,wBAAwBlrL,EAAEsC,KAAOzG,EAAEujB,KAAKpf,GAGtD,OAAOnE,GACNkB,EAAEU,UAAU2tL,8BAAgC,WAC7C,OAAO1xK,KAAKgxK,YAAYtjE,cAAc,gBACrCrqH,EAAEU,UAAU4tL,UAAY,SAAUtuL,GACnC,OAAO,MAAQ2c,KAAKsxK,oBAAoBjuL,IACvCA,EAAEU,UAAU6tL,cAAgB,WAC7B,MAAO,eAAiB5xK,KAAKqxK,wBAC5BhuL,EAAEU,UAAU8tL,YAAc,WAC3B,MAAO,aAAe7xK,KAAKqxK,wBAC1BhuL,EAAEU,UAAU+tL,YAAc,WAC3B,MAAO,WAAa9xK,KAAKoxK,WAAW,kBACnC/tL,EAAEU,UAAUqtL,WAAa,SAAU/tL,GACpC,OAAO2c,KAAK+wK,YAAYH,aAAa,cAAgBvtL,IACpDA,EAhDQ,IAkDbf,KAAK0d,MAAO,WACZ,IAAI3c,EAAI,GAAG6D,MAEXZ,EAAEyrL,SAAW,WACX,SAASzrL,KAET,IAAIrD,EACJ,OAAOqD,EAAEy7D,OAAS,WAChB,IAAO9+D,EAAGW,EAAGhB,EACb,OAAOgB,EAAIsE,UAAU,GAAIjF,EAAIiF,UAAU,IAA2DtF,EAAI,SAAUS,EAAGiD,EAAGrD,GACpHA,EAAEc,UAAYV,EAAEU,UAChB,IAAIH,EAAI,IAAIX,EACRL,EAAIS,EAAEgF,MAAMzE,EAAG0C,GACnB,OAAOzD,OAAOD,KAAOA,EAAIA,EAAIgB,EAJuE,CAKpGoc,KAL6C,GAAK9X,UAAUtC,OAASvC,EAAEf,KAAK4F,UAAW,GAAK,IAKnF,gBAAmBgkH,SAAWtoH,EAAGhB,EAAEm/D,OAAO9+D,GAAIL,GACxD0D,EAAEvC,UAAUiuL,WAAa,SAAU3uL,GACpC,OAAO2c,KAAKksG,SAAS+lE,eAAejyK,KAAKkyK,SAAU7uL,IAAK2c,KAAKksG,SAASimE,aAAanyK,KAAKkyK,UACvF5rL,EAAEvC,UAAUquL,eAAiB,WAC9B,OAAOpyK,KAAKksG,SAASmmE,mBACpB/rL,EAAEvC,UAAUuuL,oBAAsB,SAAUjvL,GAC7C,IAAIiD,EACJ,MAAO,UAAYjD,EAAEulD,aAAa,wBAA0BvlD,IAAKiD,EAAI8gD,SAAS6sC,cAAc,WAAaoK,YAAch7F,EAAEg7F,YAAa/3F,EAAEs+G,OAAQ,EAAI3hH,EAAEqD,EAAGjD,GAAIiD,IAC5JrD,EAAI,SAAWI,EAAGiD,GACnB,IAAIrD,EAAGW,EAAGhB,EAAGT,EAAG+B,EAAGyK,EAAGsiI,EAEtB,IAAuBtiI,EAAI,GAAI1L,EAAI,EAAGW,GAAjCzB,EAAImE,EAAE2xF,YAAiCryF,OAAQhC,EAAIX,EAAGA,IAC/CL,GAAVsB,EAAI/B,EAAEc,IAAUP,KAAMuuI,EAAI/sI,EAAEd,MAAOuL,EAAE+W,KAAKriB,EAAE6lD,aAAatmD,EAAGquI,IAG9D,OAAOtiI,GACNrI,EA3BQ,IA6BbhE,KAAK0d,MAAO,WACZ,IAAI3c,EACAJ,EACAW,EAAI,SAAWP,EAAGiD,GACpB,SAASrD,IACP+c,KAAK3a,YAAchC,EAGrB,IAAK,IAAIO,KAAK0C,EACZ1D,EAAEN,KAAKgE,EAAG1C,KAAOP,EAAEO,GAAK0C,EAAE1C,IAG5B,OAAOX,EAAEc,UAAYuC,EAAEvC,UAAWV,EAAEU,UAAY,IAAId,EAAKI,EAAEkvL,UAAYjsL,EAAEvC,UAAWV,GAElFT,EAAI,GAAGoB,eAEXsC,EAAEksL,iBAAmB,SAAUlsL,GAC7B,SAAS1D,EAAES,EAAGiD,EAAGrD,GACf+c,KAAKyyK,gBAAkBpvL,EAAG2c,KAAK0yK,YAAcpsL,EAAG0Z,KAAK2yK,UAAY1vL,EAAG+c,KAAK4yK,mBAAqB5yK,KAAKyyK,gBAAgB1B,YAAa/wK,KAAK6yK,eAAiB7yK,KAAK0yK,YAAY3B,YAAa/wK,KAAK8yK,YAAc9yK,KAAKyyK,gBAAgBzB,YAAahxK,KAAKkyK,QAAUlyK,KAAK0yK,YAAY1B,YAG3Q,OAAOptL,EAAEhB,EAAG0D,GAAI1D,EAAEmB,UAAUg+D,OAAS,SAAU1+D,GAC7C,OAAO2c,KAAK+yK,gBAAkB/yK,KAAKgzK,YAAahzK,KAAKgyK,WAAW,SAAU1rL,GACxE,OAAO,WACL,OAAOA,EAAE2sL,cAAe3sL,EAAEqsL,WAAarsL,EAAE4sL,iCAAkC7vL,KAFf,CAI9D2c,QAAUA,KAAKoyK,kBAChBxvL,EAAEmB,UAAUivL,UAAY,WACzB,OAAOhzK,KAAKmzK,gCAAiCnzK,KAAKozK,4BAA6BpzK,KAAKqzK,uCAAwCrzK,KAAKszK,kCAChI1wL,EAAEmB,UAAUkvL,YAAc,WAC3B,IAAI5vL,EACJ,OAAOA,EAAI2c,KAAKuzK,uCAAwCvzK,KAAKwzK,gCAAiCxzK,KAAKyzK,gBAAiBzzK,KAAK0zK,sDAAsDrwL,IAC9KT,EAAEmB,UAAUgvL,aAAe,WAC5B,OAAO/yK,KAAK0yK,YAAYZ,eAAiB9xK,KAAK2zK,+BAC7C/wL,EAAEmB,UAAU4vL,4BAA8B,WAC3C,OAAO3zK,KAAK4yK,mBAAmBrC,+BAAiCvwK,KAAK6yK,eAAetC,8BACnF3tL,EAAEmB,UAAUovL,8BAAgC,WAC7C,IAAI9vL,EAAGiD,EAAGrD,EAAGW,EAAGhB,EAEhB,IAA8CA,EAAI,GAAI0D,EAAI,EAAGrD,GAAxDW,EAAIoc,KAAK4zK,gCAAqDhuL,OAAQ3C,EAAIqD,EAAGA,IAChFjD,EAAIO,EAAE0C,GAAI1D,EAAE8iB,KAAK0hC,SAAS/S,KAAK6/C,YAAY7wF,IAG7C,OAAOT,GACNA,EAAEmB,UAAUqvL,0BAA4B,WACzC,IAAI/vL,EAAGiD,EAAGrD,EAAGW,EAAGhB,EAEhB,IAA0CA,EAAI,GAAI0D,EAAI,EAAGrD,GAApDW,EAAIoc,KAAK6zK,4BAAiDjuL,OAAQ3C,EAAIqD,EAAGA,IAC5EjD,EAAIO,EAAE0C,GAAI1D,EAAE8iB,KAAK0hC,SAAS/S,KAAK6/C,YAAYl0E,KAAKsyK,oBAAoBjvL,KAGtE,OAAOT,GACNA,EAAEmB,UAAUsvL,qCAAuC,WACpD,IAAIhwL,EAAGiD,EAAGrD,EAAGW,EAAGhB,EAEhB,IAAmDA,EAAI,GAAI0D,EAAI,EAAGrD,GAA7DW,EAAIoc,KAAK8zK,qCAA0DluL,OAAQ3C,EAAIqD,EAAGA,IACrFjD,EAAIO,EAAE0C,GAAI1D,EAAE8iB,KAAK0hC,SAAS/S,KAAK8/C,YAAY9wF,IAG7C,OAAOT,GACNA,EAAEmB,UAAUuvL,+BAAiC,WAC9C,IAAIjwL,EAAGiD,EAAGrD,EAAGW,EAAGhB,EAEhB,IAA+CA,EAAI,GAAI0D,EAAI,EAAGrD,GAAzDW,EAAIoc,KAAK+zK,iCAAsDnuL,OAAQ3C,EAAIqD,EAAGA,IACjFjD,EAAIO,EAAE0C,GAAI1D,EAAE8iB,KAAK0hC,SAAS/S,KAAK6/C,YAAY7wF,IAG7C,OAAOT,GACNA,EAAEmB,UAAUwvL,qCAAuC,WACpD,IAAIjtL,EAAG1C,EAAGhB,EAAGT,EAAG+B,EAAGyK,EAAGsiI,EAEtB,IAAiDA,EAAI,GAAI3qI,EAAI,EAAG1C,GAA3D+K,EAAIqR,KAAKg0K,mCAAwDpuL,OAAQhC,EAAI0C,EAAGA,IACnFnE,EAAIwM,EAAErI,GAAIpC,EAAIb,EAAElB,GAAIS,EAAIod,KAAK0yK,YAAYlB,wBAAwBrvL,EAAEyG,IAAK3F,EAAEd,EAAG+B,EAAEyyB,SAAU1zB,EAAEL,EAAGT,GAAI8uI,EAAEvrH,KAAKxhB,GAG3G,OAAO+sI,GACNruI,EAAEmB,UAAU2vL,sDAAwD,SAAUrwL,GAC/E,IAAIiD,EAAG1C,EAAGhB,EAAGT,EAAMwM,EAAGsiI,EAEtB,IAAKA,EAAI,GAAIruI,EAAI,EAAGT,EAAIkB,EAAEuC,OAAQzD,EAAIS,EAAGA,IAC7BgB,GAAV+K,EAAItL,EAAET,IAAU+zB,QAAiCrwB,EAApBqI,EAAEslL,iBAAwBhmF,WAAU,GAAKgjC,EAAEvrH,KAAKziB,EAAEW,EAAG0C,IAGpF,OAAO2qI,GACNruI,EAAEmB,UAAUyvL,8BAAgC,WAC7C,IAAInwL,EAAGiD,EAAG1C,EAAGhB,EAAGT,EAAG+B,EAEnB,IAA0CA,EAAI,GAAIoC,EAAI,EAAG1D,GAApDT,EAAI6d,KAAKk0K,4BAAiDtuL,OAAQhD,EAAI0D,EAAGA,IAC5E1C,EAAIzB,EAAEmE,GAAIjD,EAAI2c,KAAKsyK,oBAAoB1uL,GAAIM,EAAEwhB,KAAKziB,EAAEW,EAAGP,IAGzD,OAAOa,GACNtB,EAAEmB,UAAU0vL,cAAgB,WAC7B,OAAOrsI,SAASs2B,KAAO19D,KAAKkyK,SAC3BtvL,EAAEmB,UAAUmvL,+BAAiC,WAC9C,IAAI7vL,EACJ,OAAO,OAASA,EAAI2c,KAAK0yK,YAAYhB,iCAAmCruL,EAAEwxG,aAAU,GACnFjyG,EAAEmB,UAAU6vL,6BAA+B,WAC5C,OAAO5zK,KAAK6yK,eAAenC,kCAAkC1wK,KAAK4yK,qBACjEhwL,EAAEmB,UAAU8vL,yBAA2B,WACxC,OAAO7zK,KAAK6yK,eAAerC,8BAA8BxwK,KAAK4yK,qBAC7DhwL,EAAEmB,UAAU+vL,kCAAoC,WACjD,OAAO9zK,KAAK4yK,mBAAmBjC,0BAC9B/tL,EAAEmB,UAAUgwL,8BAAgC,WAC7C,OAAO/zK,KAAK6yK,eAAelC,0BAC1B/tL,EAAEmB,UAAUiwL,gCAAkC,WAC/C,OAAOh0K,KAAKyyK,gBAAgBhB,sCAAsCzxK,KAAK0yK,cACtE9vL,EAAEmB,UAAUmwL,yBAA2B,WACxC,OAAOl0K,KAAKkyK,QAAQp3F,iBAAiB,WACpCl4F,EA7FgB,CA8FnB0D,EAAEyrL,UAAW1uL,EAAI,SAAW8wL,GAC5B,IAAI7tL,EACJ,OAAOA,EAAI8gD,SAAS6sC,cAAc,SAAW/qC,aAAa,OAAQ,oCAAqC5iD,EAAE4iD,aAAa,UAAWirI,EAAIvrL,IAAK,CACxI+tB,QAASrwB,EACT2tL,iBAAkBE,IAEnBlxL,EAAI,SAAWI,EAAGiD,GACnB,IAAIrD,EACJ,OAAQA,EAAII,EAAE+yB,YAAcnzB,EAAE+zG,aAAa1wG,EAAGjD,QAAK,IAErDf,KAAK0d,MAAO,WACZ,IAAI3c,EAAI,SAAW+wL,EAAK9tL,GACtB,SAAS1C,IACPoc,KAAK3a,YAAc+uL,EAGrB,IAAK,IAAIxxL,KAAK0D,EACZrD,EAAEX,KAAKgE,EAAG1D,KAAOwxL,EAAIxxL,GAAK0D,EAAE1D,IAG9B,OAAOgB,EAAEG,UAAYuC,EAAEvC,UAAWqwL,EAAIrwL,UAAY,IAAIH,EAAKwwL,EAAI7B,UAAYjsL,EAAEvC,UAAWqwL,GAEtFnxL,EAAI,GAAGe,eAEXsC,EAAE+tL,cAAgB,SAAU/tL,GAC1B,SAASrD,EAAEI,GACT,IAAIiD,GACJA,EAAI8gD,SAAS6sC,cAAc,SAAW8I,UAAY15F,EAAG2c,KAAKs0K,QAAUhuL,EAAEonH,cAAc,QAAS1tG,KAAKkyK,QAAU5rL,EAAEonH,cAAc,QAG9H,OAAOrqH,EAAEJ,EAAGqD,GAAIrD,EAAEc,UAAUg+D,OAAS,SAAU1+D,GAC7C,OAAO2c,KAAKgyK,WAAW,SAAU1rL,GAC/B,OAAO,WACL,OAAOA,EAAEiuL,qBAAsBjuL,EAAEkuL,6BAA8BnxL,KAF5C,CAIrB2c,QACD/c,EAAEc,UAAUwwL,mBAAqB,WAClC,IAAIlxL,EAAGiD,EACP,OAAOA,EAAI8gD,SAAS/S,KAAMhxC,EAAI+jD,SAASs2B,KAAMp3E,EAAE8vB,WAAW4gF,aAAah3F,KAAKs0K,QAAShuL,GAAIjD,EAAE+yB,WAAW4gF,aAAah3F,KAAKkyK,QAAS7uL,IAChIJ,EAAEc,UAAUywL,2BAA6B,WAC1C,IAAInxL,EAAGiD,EAAGrD,EAAGW,EAAGhB,EAAGT,EAEnB,IAAmCA,EAAI,GAAImE,EAAI,EAAGrD,GAA7CW,EAAIoc,KAAKy0K,qBAA0C7uL,OAAQ3C,EAAIqD,EAAGA,IACrE1D,EAAIgB,EAAE0C,GAAIjD,EAAI2c,KAAKsyK,oBAAoB1vL,GAAIT,EAAEujB,KAAK9iB,EAAEwzB,WAAW4gF,aAAa3zG,EAAGT,IAGjF,OAAOT,GACNc,EAAEc,UAAU0wL,kBAAoB,WACjC,OAAOrtI,SAAS80C,gBAAgBpB,iBAAiB,WAChD73F,EAzBa,CA0BhBqD,EAAEyrL,WACJzvL,KAAK0d,MAAO,WACZ1Z,EAAEouL,KAAO,WACP,SAASrxL,EAAEA,GACT2c,KAAKksG,SAAW7oH,EAAG2c,KAAK20K,YAAcvtI,SAAS80C,gBAGjD,OAAO74F,EAAEU,UAAUotL,gBAAkB,WACnC,OAAOnxK,KAAK40K,cAAczD,mBACzB9tL,EAAEU,UAAUutL,oBAAsB,SAAUjuL,GAC7C,OAAO2c,KAAK40K,cAActD,oBAAoBjuL,IAC7CA,EAAEU,UAAU6wL,YAAc,WAC3B,OAAOtuL,EAAEwqL,SAASI,gBAAgBlxK,KAAK20K,cACtCtxL,EAAEU,UAAUg+D,OAAS,SAAU1+D,EAAGiD,GACnC,IAAIrD,EAAGW,EAAGhB,EACV,OAAOA,EAAIS,EAAEwxL,SAAU5xL,EAAII,EAAEg+D,MAAOz9D,EAAIP,EAAEsvL,UAAW3yK,KAAK80K,cAAclxL,GAAI,MAAQhB,EAAIod,KAAK+0K,eAAenyL,EAAGgB,EAAG0C,GAAK0Z,KAAKg1K,YAAY/xL,EAAGqD,IAC1IjD,EAAEU,UAAU+wL,cAAgB,SAAUzxL,GACvC,OAAOA,EAAI2c,KAAK20K,YAAYzrI,aAAa,0BAA2B,IAAMlpC,KAAK20K,YAAY1rI,gBAAgB,4BAC1G5lD,EAAEU,UAAUgxL,eAAiB,SAAU1xL,EAAGJ,EAAGW,GAC9C,OAAO0C,EAAEksL,iBAAiBzwH,OAAO/hD,KAAKksG,SAAUtoH,EAAGoc,KAAK40K,cAAetuL,EAAEwqL,SAASpsI,KAAKrhD,GAAIJ,IAC1FI,EAAEU,UAAUixL,YAAc,SAAU3xL,EAAGJ,GACxC,OAAOqD,EAAE+tL,cAActyH,OAAO/hD,KAAKksG,SAAUjpH,EAAGI,IAC/CA,EApBI,IAsBTf,KAAK0d,MAAO,WAOZ1Z,EAAE2uL,cAAgB,WAChB,SAAShyL,EAAEA,GACT+c,KAAKksG,SAAWjpH,EAAG+c,KAAKq/I,SARpB,SAAW61B,EAAK5uL,GACtB,OAAO,WACL,OAAO4uL,EAAI7sL,MAAM/B,EAAG4B,YAMe7E,CAAE2c,KAAKq/I,SAAUr/I,MAAOA,KAAKq/I,SAAW/4J,EAAEsuK,SAAS50J,KAAKq/I,UAG7F,OAAOp8J,EAAEc,UAAU0E,MAAQ,WACzB,OAAOuX,KAAK2iH,aAAU,GAAUjpG,iBAAiB,SAAU1Z,KAAKq/I,UAAU,GAAKr/I,KAAKq/I,WAAYr/I,KAAK2iH,SAAU,IAC9G1/H,EAAEc,UAAUo5C,KAAO,WACpB,OAAOn9B,KAAK2iH,SAAWhpG,oBAAoB,SAAU3Z,KAAKq/I,UAAU,GAAKr/I,KAAK2iH,SAAU,QAAM,GAC7F1/H,EAAEc,UAAUoxL,gBAAkB,SAAU9xL,GACzC,OAAOA,EAAE+xL,kBACRnyL,EAAEc,UAAUsxL,iBAAmB,SAAUhyL,GAC1C,IAAIiD,EAAGrD,EACP,OAAOqD,EAAIjD,EAAEoK,EAAGxK,EAAII,EAAEqK,EAAGnG,OAAOqkH,SAAStlH,EAAGrD,IAC3CA,EAAEc,UAAUs7J,SAAW,SAAUh8J,GAClC,OAAO2c,KAAKs1K,eAAe,CACzB7nL,EAAGlG,OAAOkkH,YACV/9G,EAAGnG,OAAOikH,eAEXvoH,EAAEc,UAAUuxL,eAAiB,SAAUjyL,GACxC,IAAIiD,EACJ,OAAO0Z,KAAKugC,SAAWl9C,EAAG,OAASiD,EAAI0Z,KAAKksG,UAAY5lH,EAAEivL,sBAAsBv1K,KAAKugC,eAAY,GAChGt9C,EAtBa,IAwBlBX,KAAK0d,MAAO,WACZ1Z,EAAEkvL,cAAgB,WAChB,SAASnyL,EAAEA,GACT2c,KAAKiD,KAAO5f,EAAG2c,KAAKjW,KAAO,GAAIiW,KAAKy1K,UAAY,GAGlD,IAAIxyL,EACJ,OAAOI,EAAEU,UAAUsrB,IAAM,SAAUhsB,GAEjC,OAAWJ,EAAEI,KAAS2c,KAAKy1K,WAC1BpyL,EAAEU,UAAUf,IAAM,SAAUK,GAC7B,IAAIiD,EACJ,GAAI0Z,KAAKqP,IAAIhsB,GAAI,OAAOiD,EAAI0Z,KAAKmM,KAAK9oB,GAAI2c,KAAKk8H,MAAM74I,GAAIiD,GACxDjD,EAAEU,UAAUm4K,IAAM,SAAU74K,EAAGiD,GAChC,OAAO0Z,KAAK01K,MAAMryL,EAAGiD,GAAI0Z,KAAKk8H,MAAM74I,GAAIiD,GACvCjD,EAAEU,UAAUooB,KAAO,SAAU9oB,GAC9B,IAAIiD,EACJ,OAAOA,EAAIrD,EAAEI,GAAI2c,KAAKy1K,UAAUnvL,IAC/BjD,EAAEU,UAAU2xL,MAAQ,SAAUryL,EAAGiD,GAClC,IAAI1C,EACJ,OAAOA,EAAIX,EAAEI,GAAI2c,KAAKy1K,UAAU7xL,GAAK0C,GACpCjD,EAAEU,UAAUm4I,MAAQ,SAAU74I,GAC/B,IAAIiD,EAAG1C,EACP,OAAOA,EAAIX,EAAEI,IAAIiD,EAAI0Z,KAAKjW,KAAKe,QAAQlH,KAAS,GAAKoc,KAAKjW,KAAKsc,OAAO/f,EAAG,GAAI0Z,KAAKjW,KAAKspE,QAAQzvE,GAAIoc,KAAK0sG,QACvGrpH,EAAEU,UAAU2oH,KAAO,WACpB,IAAIrpH,EAAGiD,EAAGrD,EAAGW,EAAGhB,EAEhB,IAAsCA,EAAI,GAAIS,EAAI,EAAGJ,GAAhDW,EAAIoc,KAAKjW,KAAKsc,OAAOrG,KAAKiD,OAA4Brd,OAAQ3C,EAAII,EAAGA,IACxEiD,EAAI1C,EAAEP,GAAIT,EAAE8iB,YAAY1F,KAAKy1K,UAAUnvL,IAGzC,OAAO1D,GACNK,EAAI,SAAWI,GAChB,OAAOiD,EAAEskL,SAASlmI,KAAKrhD,GAAGkoL,cACzBloL,EAjCa,IAmClBf,KAAK0d,MAAO,WAOZ1Z,EAAEqvL,MAAQ,WACR,SAAS1yL,EAAEA,EAAGW,EAAGhB,GACfod,KAAK6oB,WAAa5lC,EAAG+c,KAAKi2H,OAASrzI,EAAGod,KAAK41K,cARvC,SAAWC,EAAKvvL,GACtB,OAAO,WACL,OAAOuvL,EAAIxtL,MAAM/B,EAAG4B,YAMuC7E,CAAE2c,KAAK41K,cAAe51K,MAAOA,KAAKg4E,WAAa1xF,EAAEqkL,OAAQ3qK,KAAKsgF,SAAWh6F,EAAEskL,SAASlmI,KAAK9gD,GAAIoc,KAAK0tE,QAAU1tE,KAAK6oB,WAAW6kD,QAAS1tE,KAAKsoF,MAAQ,cAAetoF,KAAK81K,cAAgB,GAGnP,IAAIlyL,EACJ,OAAOX,EAAEc,UAAU0E,MAAQ,WACzB,MAAO,gBAAkBuX,KAAKsoF,OAAStoF,KAAK+1K,mBAAmB,cAAe/1K,KAAKsoF,MAAQ,UAAWtoF,KAAK0tE,QAAQ4gG,aAAatuK,YAAS,GACxI/c,EAAEc,UAAUw/B,OAAS,WACtB,IAAIlgC,EACJ,MAAO,YAAc2c,KAAKsoF,OAAS,OAASjlG,EAAI2c,KAAKg2K,UAAY3yL,EAAEkgC,SAAUvjB,KAAKi2K,eAAgBj2K,KAAKsoF,MAAQ,iBAAc,GAC5HrlG,EAAEc,UAAU8+B,SAAW,WACxB,IAAIx/B,EACJ,MAAO,YAAc2c,KAAKsoF,OAAStoF,KAAK+1K,mBAAmB,YAAa/1K,KAAKsoF,MAAQ,YAAa,mBAAsBjlG,EAAI2c,KAAK0tE,SAAS0hG,gBAAkB/rL,EAAE+rL,eAAepvK,MAAOA,KAAK6oB,WAAWumJ,eAAepvK,YAAS,GAC3N/c,EAAEc,UAAU8iG,KAAO,WACpB,IAAIxjG,EACJ,MAAO,YAAc2c,KAAKsoF,OAAStoF,KAAKsoF,MAAQ,SAAU,mBAAsBjlG,EAAI2c,KAAK0tE,SAASwoG,YAAc7yL,EAAE6yL,YAAYl2K,WAAQ,QAAU,GAC/I/c,EAAEc,UAAUyqL,cAAgB,WAC7B,IAAInrL,EAAGiD,EACP,OAAO0Z,KAAKm2K,oBAAiB,GAAU9yL,EAAI2c,KAAKsgF,SAASgrF,UAAUtrK,KAAKgsK,UAAY,UAAYhsK,KAAKi2H,OAAQ3vI,EAAI1C,EAAEP,GAAI2c,KAAK6oB,WAAWviC,GAAG0Z,KAAKsgF,SAAUtgF,KAAK+vK,uBAAwB/vK,KAAKm2K,gBAAiB,IAC3MlzL,EAAEc,UAAUwqL,aAAe,WAC5B,OAAOvuK,KAAKo2K,sBAAwB,MAAQp2K,KAAKg2K,SAAWh2K,KAAK8iB,SAAW,EAAG9iB,KAAKg2K,QAAU,IAAI1vL,EAAEolL,YAAY1rK,KAAMA,KAAKsgF,SAAUtgF,KAAKgsK,UAAWhsK,KAAKg2K,QAAQ1uE,aAAU,GAC3KrkH,EAAEc,UAAUsyL,kBAAoB,WACjC,IAAIhzL,EACJ,QAASA,EAAI2c,KAAK6oB,WAAWytJ,6BAA6Bt2K,KAAKsgF,YAAc,MAAQtgF,KAAKsgF,SAASgyC,SAAWjvI,EAAEsuL,UAAU3xK,KAAKsgF,SAASgyC,SAAW,YAActyH,KAAKi2H,SAAW5yI,EAAEuuL,qBAAkB,EAASvuL,GAC7MJ,EAAEc,UAAU4qL,kBAAoB,WACjC,OAAO,MAAQ3uK,KAAKq2K,qBACnBpzL,EAAEc,UAAU0qL,mBAAqB,WAClC,IAAIprL,EAAGiD,EACP,OAAQA,EAAI0Z,KAAKq2K,sBAAwBhzL,EAAI2c,KAAKo2K,qBAAsBp2K,KAAK+hD,QAAO,WAClF,IAAI9+D,EACJ,OAAO+c,KAAKu2K,gBAAiBv2K,KAAK6oB,WAAWk5B,OAAO,CAClD8yH,SAAUvuL,EACVqsL,UAAWtvL,GACV2c,KAAK41K,eAAgB,mBAAsB3yL,EAAI+c,KAAK0tE,SAAS8oG,eAAiBvzL,EAAEuzL,cAAcx2K,MAAO3c,OAAI,EAAS2c,KAAK6iB,oBACtH,GACL5/B,EAAEc,UAAUgrL,aAAe,WAC5B,OAAO,MAAQ/uK,KAAK0nG,SAAW1nG,KAAK+hD,QAAO,WACzC,IAAI1+D,EAAGiD,EACP,OAAO0Z,KAAKu2K,gBAAiBv2K,KAAKg2K,QAAQtJ,QAAU1sK,KAAK6oB,WAAWk5B,OAAO,CACzEV,MAAOrhD,KAAK0nG,UACX1nG,KAAK41K,eAAgB,mBAAsBvyL,EAAI2c,KAAK0tE,SAAS8oG,eAAiBnzL,EAAEmzL,cAAcx2K,MAAOA,KAAK6mF,SAAW7mF,KAAK6oB,WAAWk5B,OAAO,CAC7I8yH,SAAU70K,KAAK0nG,UACd1nG,KAAK41K,eAAgB,mBAAsBtvL,EAAI0Z,KAAK0tE,SAAS8oG,eAAiBlwL,EAAEkwL,cAAcx2K,MAAOA,KAAK6iB,oBAC1G,GACJ5/B,EAAEc,UAAUsrL,eAAiB,WAC9B,OAAOrvK,KAAKy2K,uBAAyBz2K,KAAK02K,kBAAoB12K,KAAKsgF,SAAWtgF,KAAKy2K,qBAAsBz2K,KAAK6oB,WAAW8tJ,mDAAmD32K,KAAKy2K,qBAAsBz2K,KAAK+vK,uBAAwB/vK,KAAK02K,kBAAmB,QAAM,GACjQzzL,EAAEc,UAAUuoL,eAAiB,WAC9B,IAAIjpL,EACJ,OAAO2c,KAAK+1K,mBAAmB,gBAAiB,mBAAsB1yL,EAAI2c,KAAK0tE,SAASghG,oBAAsBrrL,EAAEqrL,oBAAoB1uK,WAAQ,GAC3I/c,EAAEc,UAAUgoL,kBAAoB,SAAU1oL,GAC3C,IAAIiD,EACJ,OAAO0Z,KAAK8iB,SAAWz/B,EAAG,mBAAsBiD,EAAI0Z,KAAK0tE,SAASmhG,uBAAyBvoL,EAAEuoL,uBAAuB7uK,WAAQ,GAC3H/c,EAAEc,UAAU0oL,6BAA+B,SAAUppL,EAAGJ,GACzD,OAAO+c,KAAK0nG,SAAWrkH,EAAG,MAAQJ,IAAM+c,KAAKy2K,qBAAuBnwL,EAAEskL,SAASlmI,KAAKzhD,IAAK+c,KAAK0tE,QAAQohG,sBAAsB9uK,OAC3H/c,EAAEc,UAAU4oL,4BAA8B,SAAUtpL,EAAGiD,GACxD,OAAO0Z,KAAK0nG,SAAWphH,EAAG0Z,KAAK0tE,QAAQshG,iCAAiChvK,KAAM3c,IAC7EJ,EAAEc,UAAU+oL,gBAAkB,WAC/B,IAAIzpL,EACJ,OAAO2c,KAAK+1K,mBAAmB,cAAe,mBAAsB1yL,EAAI2c,KAAK0tE,SAASwhG,qBAAuB7rL,EAAE6rL,qBAAqBlvK,WAAQ,GAC3I/c,EAAEc,UAAU6xL,cAAgB,WAC7B,OAAO51K,KAAK42K,cAAW,GAAU,YAAc52K,KAAKi2H,OAASj2H,KAAK62K,4BAA8B72K,KAAK82K,cAAgB92K,KAAK+2K,kBAAoB/2K,KAAK82K,cAAe92K,KAAK42K,UAAW,IACjL3zL,EAAEc,UAAU8yL,yBAA2B,WACxC,IAAIxzL,EAAGiD,EACP,OAA2E,OAApEjD,EAAI,OAASiD,EAAI0Z,KAAKg3K,iBAAmB1wL,EAAE2wL,oBAAiB,IAAqBj3K,KAAK6oB,WAAWwsJ,iBAAiBhyL,IAAI,QAAM,GAClIJ,EAAEc,UAAUgzL,eAAiB,WAC9B,OAAO,MAAQ/2K,KAAKsgF,SAASgyC,QAAUtyH,KAAK6oB,WAAWkuJ,eAAe/2K,KAAKsgF,SAASgyC,SAAS,QAAM,GAClGrvI,EAAEc,UAAU+yL,YAAc,WAC3B,OAAO92K,KAAK6oB,WAAWwsJ,iBAAiB,CACtC5nL,EAAG,EACHC,EAAG,KAEJzK,EAAEc,UAAUgyL,mBAAqB,SAAU1yL,GAC5C,IAAIiD,EACJ,OAAO,OAASA,EAAI0Z,KAAK81K,eAAezyL,GAAKiD,EAAEjD,GAAKiD,EAAEjD,IAAK,IAAI4+B,MAAOm0H,WACrEnzJ,EAAEc,UAAUmzL,iBAAmB,WAChC,OAAO5wL,EAAEkkL,WAAWxqK,KAAK81K,gBACxBlyL,EAAI,SAAWP,GAChB,OAAQA,GACN,IAAK,UACH,MAAO,qDAET,IAAK,UACL,IAAK,UACH,MAAO,oDAEVJ,EAAEc,UAAUqyL,mBAAqB,WAClC,MAAO,YAAcp2K,KAAKi2H,SAAUj2H,KAAK2uK,qBACxC1rL,EAAEc,UAAUwyL,cAAgB,WAC7B,OAAOv2K,KAAKm3K,oBAAiB,GAAUn3K,KAAK6oB,WAAW0tJ,gBAAiBv2K,KAAKm3K,gBAAiB,IAC7Fl0L,EAAEc,UAAUg+D,OAAS,SAAU1+D,GAChC,OAAO2c,KAAKi2K,eAAgBj2K,KAAKo3K,MAAQ3vL,sBAAsB,SAAUnB,GACvE,OAAO,WACL,OAAOA,EAAE8wL,MAAQ,KAAM/zL,EAAEf,KAAKgE,IAF6B,CAI7D0Z,QACD/c,EAAEc,UAAUkyL,aAAe,WAC5B,OAAOj2K,KAAKo3K,MAAQjmC,qBAAqBnxI,KAAKo3K,YAAS,GACtDn0L,EAlGK,IAoGVX,KAAK0d,MAAO,WACZ,IAAI3c,EAAI,SAAWg0L,EAAK/wL,GACtB,OAAO,WACL,OAAO+wL,EAAIhvL,MAAM/B,EAAG4B,aAIxB5B,EAAEgxL,WAAa,WACb,SAASr0L,IACP+c,KAAKu3K,aAAel0L,EAAE2c,KAAKu3K,aAAcv3K,MAAOA,KAAKw3K,cAAgBn0L,EAAE2c,KAAKw3K,cAAex3K,MAAOA,KAAKiwK,WAAa5sL,EAAE2c,KAAKiwK,WAAYjwK,MAAOA,KAAK4wI,QAAU,IAAItqJ,EAAEopL,QAAQ1vK,MAAOA,KAAKk0F,KAAO,IAAI5tG,EAAEouL,KAAK10K,MAAOA,KAAKy3K,cAAgB,IAAInxL,EAAE2uL,cAAcj1K,MAAOA,KAAKg3K,gBAAkB,GAAIh3K,KAAK89C,aAAc99C,KAAKuqK,oBAAoB,KAGzU,OAAOtnL,EAAEc,UAAU0E,MAAQ,WACzB,OAAOnC,EAAE+jL,YAAcrqK,KAAK2iH,SAAWjpG,iBAAiB,QAAS1Z,KAAKw3K,eAAe,GAAK99J,iBAAiB,mBAAoB1Z,KAAKiwK,YAAY,GAAKjwK,KAAKy3K,cAAchvL,QAASuX,KAAK03K,eAAgB13K,KAAK2iH,SAAU,EAAI3iH,KAAKorC,SAAU,QAAM,GAC7OnoD,EAAEc,UAAU6jG,QAAU,WACvB,OAAO5nF,KAAKorC,SAAU,GACrBnoD,EAAEc,UAAUo5C,KAAO,WACpB,OAAOn9B,KAAK2iH,SAAWhpG,oBAAoB,QAAS3Z,KAAKw3K,eAAe,GAAK79J,oBAAoB,mBAAoB3Z,KAAKiwK,YAAY,GAAKjwK,KAAKy3K,cAAct6I,OAAQn9B,KAAK23K,cAAe33K,KAAK2iH,SAAU,QAAM,GAC9M1/H,EAAEc,UAAU+5D,WAAa,WAC1B,OAAO99C,KAAK6F,MAAQ,IAAIvf,EAAEkvL,cAAc,KACvCvyL,EAAEc,UAAUumL,MAAQ,SAAUjnL,EAAGJ,GAClC,IAAIW,EAAGhB,EACP,OAAO,MAAQK,IAAMA,EAAI,IAAKI,EAAIiD,EAAEskL,SAASlmI,KAAKrhD,GAAI2c,KAAK43K,kCAAkCv0L,GAAK2c,KAAK63K,oBAAoBx0L,IAAMO,EAAI,OAAShB,EAAIK,EAAEgzI,QAAUrzI,EAAI,UAAWod,KAAK0tE,QAAQ0gG,kCAAkC/qL,EAAGO,IAAM2D,OAAO+4F,SAAWj9F,OAAI,GAC1PJ,EAAEc,UAAUsqL,+BAAiC,SAAUhrL,EAAGJ,EAAGW,GAC9D,IAAIhB,EACJ,OAAO0D,EAAE+jL,WAAaznL,EAAIod,KAAK83K,gCAAgCl0L,GAAIoc,KAAK+3K,WAAW10L,EAAGJ,EAAG,CACvF+zL,gBAAiBp0L,KACb2E,OAAO+4F,SAAWj9F,GACvBJ,EAAEc,UAAUwmL,oBAAsB,SAAUlnL,GAC7C,OAAO2c,KAAKwvK,iBAAmBnsL,GAC9BJ,EAAEc,UAAU2zL,aAAe,WAC5B,OAAO13K,KAAKsgF,SAAWh6F,EAAEskL,SAASlmI,KAAKn9C,OAAO+4F,UAAWtgF,KAAK+vK,sBAAwBzpL,EAAEqkL,OAAQ3qK,KAAK4wI,QAAQnoJ,QAASuX,KAAK4wI,QAAQ5xI,QAAQgB,KAAKsgF,SAAUtgF,KAAK+vK,wBAC9J9sL,EAAEc,UAAU4zL,YAAc,WAC3B,OAAO33K,KAAK4wI,QAAQzzG,QACnBl6C,EAAEc,UAAUi0L,gDAAkD,SAAU30L,EAAGJ,GAC5E,OAAO+c,KAAK+vK,sBAAwB9sL,EAAG+c,KAAKsgF,SAAWh6F,EAAEskL,SAASlmI,KAAKrhD,GAAI2c,KAAK4wI,QAAQlrI,KAAK1F,KAAKsgF,SAAUtgF,KAAK+vK,wBAChH9sL,EAAEc,UAAU4yL,mDAAqD,SAAUtzL,EAAGJ,GAC/E,OAAO+c,KAAK+vK,sBAAwB9sL,EAAG+c,KAAKsgF,SAAWh6F,EAAEskL,SAASlmI,KAAKrhD,GAAI2c,KAAK4wI,QAAQ5xI,QAAQgB,KAAKsgF,SAAUtgF,KAAK+vK,wBACnH9sL,EAAEc,UAAUisL,iDAAmD,SAAU3sL,EAAGJ,GAC7E,IAAIW,EACJ,OAAOoc,KAAK+vK,sBAAwB9sL,EAAG+c,KAAKorC,SAAWxnD,EAAIoc,KAAK83K,gCAAgC93K,KAAK+vK,uBAAwB/vK,KAAK+3K,WAAW10L,EAAG,UAAW,CACzJ0sL,sBAAuB/vK,KAAK+vK,sBAC5BiH,gBAAiBpzL,EACjBuyL,gBAAgB,IACdn2K,KAAKsgF,SAAWh6F,EAAEskL,SAASlmI,KAAKrhD,IAAM2c,KAAK0tE,QAAQ4hG,mBACtDrsL,EAAEc,UAAUuyL,6BAA+B,SAAUjzL,GACtD,IAAIiD,EACJ,OAAO,OAASA,EAAI0Z,KAAK6F,MAAM7iB,IAAIK,IAAMiD,EAAEkZ,aAAU,GACpDvc,EAAEc,UAAUk0L,oBAAsB,WACnC,OAAOj4K,KAAKk0F,KAAK0gF,cAAc/C,eAC9B5uL,EAAEc,UAAUwyL,cAAgB,WAC7B,IAAIlzL,EAAGJ,EACP,OAAO+c,KAAKi4K,uBAAyBj4K,KAAKk4K,yCAA0Cj1L,EAAI+c,KAAKk0F,KAAK0gF,cAAevxL,EAAI2c,KAAKm4K,qBAAsB7xL,EAAEkmG,MAAM,SAAUlmG,GAChK,OAAO,WACL,OAAOA,EAAEuf,MAAMq2J,IAAI74K,EAAGJ,EAAEuc,UAF4H,CAItJQ,aAAU,GACX/c,EAAEc,UAAUgzL,eAAiB,SAAU1zL,GACxC,IAAIiD,EACJ,OAAQA,EAAI0Z,KAAKk0F,KAAKo9E,oBAAoBjuL,IAAM2c,KAAKm1K,gBAAgB7uL,GAAK0Z,KAAKq1K,iBAAiB,CAC9F5nL,EAAG,EACHC,EAAG,KAEJzK,EAAEc,UAAUoxL,gBAAkB,SAAU9xL,GACzC,OAAO2c,KAAKy3K,cAActC,gBAAgB9xL,IACzCJ,EAAEc,UAAUsxL,iBAAmB,SAAUhyL,GAC1C,OAAO2c,KAAKy3K,cAAcpC,iBAAiBhyL,IAC1CJ,EAAEc,UAAUwxL,sBAAwB,SAAUlyL,GAE/C,OAAW2c,KAAKo4K,4BAA+BnB,eAAiB5zL,GAC/DJ,EAAEc,UAAUg+D,OAAS,SAAU1+D,EAAGiD,GACnC,OAAO0Z,KAAKk0F,KAAKnyC,OAAO1+D,EAAGiD,IAC1BrD,EAAEc,UAAUsuL,gBAAkB,WAC/B,OAAOryK,KAAK0tE,QAAQ4hG,mBACnBrsL,EAAEc,UAAUkuL,eAAiB,SAAU5uL,GACxC,OAAO2c,KAAKq4K,8BAA8Bh1L,IACzCJ,EAAEc,UAAUouL,aAAe,WAC5B,OAAOnyK,KAAKm4K,qBAAuBn4K,KAAKs4K,aAAah4F,SAAUtgF,KAAKu4K,gCACnEt1L,EAAEc,UAAUksL,WAAa,WAC1B,OAAOjwK,KAAKm4K,qBAAuBn4K,KAAKsgF,SAAUtgF,KAAKw4K,kCACtDv1L,EAAEc,UAAUyzL,cAAgB,WAC7B,OAAO79J,oBAAoB,QAAS3Z,KAAKu3K,cAAc,GAAK79J,iBAAiB,QAAS1Z,KAAKu3K,cAAc,IACxGt0L,EAAEc,UAAUwzL,aAAe,SAAUl0L,GACtC,IAAIiD,EAAGrD,EAAGW,EACV,OAAOoc,KAAKorC,SAAWprC,KAAKy4K,wBAAwBp1L,KAAOJ,EAAI+c,KAAK04K,wBAAwBr1L,EAAEqC,WAAa9B,EAAIoc,KAAK24K,4BAA4B11L,KAAO+c,KAAK44K,yCAAyC31L,EAAGW,IAAMP,EAAEqtG,iBAAkBpqG,EAAI0Z,KAAK64K,iBAAiB51L,GAAI+c,KAAKsqK,MAAM1mL,EAAG,CAC5QqyI,OAAQ3vI,UACJ,GACLrD,EAAEc,UAAU60L,yCAA2C,SAAUv1L,EAAGiD,GAErE,OAAW0Z,KAAK84K,6CAA6Cz1L,EAAGiD,GAAO8sG,kBACtEnwG,EAAEc,UAAU6zL,kCAAoC,SAAUv0L,GAE3D,OAAW2c,KAAK+4K,wCAAwC11L,GAAO+vG,kBAC9DnwG,EAAEc,UAAU+0L,6CAA+C,SAAUz1L,EAAGJ,GACzE,OAAOqD,EAAEgrG,SAAS,mBAAoB,CACpC5rG,OAAQrC,EACR8hB,KAAM,CACJq/F,IAAKvhH,EAAE4nL,aAETrvH,YAAY,KAEbv4D,EAAEc,UAAUg1L,wCAA0C,SAAU11L,GACjE,OAAOiD,EAAEgrG,SAAS,0BAA2B,CAC3CnsF,KAAM,CACJq/F,IAAKnhH,EAAEwnL,aAETrvH,YAAY,KAEbv4D,EAAEc,UAAUi1L,uCAAyC,SAAU31L,GAChE,OAAOiD,EAAEgrG,SAAS,mBAAoB,CACpCnsF,KAAM,CACJq/F,IAAKnhH,EAAEwnL,gBAGV5nL,EAAEc,UAAUm0L,uCAAyC,WACtD,OAAO5xL,EAAEgrG,SAAS,4BACjBruG,EAAEc,UAAUs0L,8BAAgC,SAAUh1L,GACvD,OAAOiD,EAAEgrG,SAAS,2BAA4B,CAC5CnsF,KAAM,CACJ+sK,QAAS7uL,MAGZJ,EAAEc,UAAUw0L,6BAA+B,WAC5C,OAAOjyL,EAAEgrG,SAAS,sBACjBruG,EAAEc,UAAUy0L,+BAAiC,SAAUn1L,GACxD,OAAO,MAAQA,IAAMA,EAAI,IAAKiD,EAAEgrG,SAAS,kBAAmB,CAC1DnsF,KAAM,CACJq/F,IAAKxkG,KAAKsgF,SAASuqF,YACnBoO,OAAQ51L,MAGXJ,EAAEc,UAAUg0L,WAAa,SAAU10L,EAAGiD,EAAGrD,GAC1C,IAAIW,EACJ,OAAO,OAASA,EAAIoc,KAAKs4K,eAAiB10L,EAAE2/B,SAAUvjB,KAAKs4K,aAAet4K,KAAKk5K,YAAY71L,EAAGiD,EAAGrD,GAAI+c,KAAKs4K,aAAa7vL,QAASuX,KAAKg5K,uCAAuC31L,IAC3KJ,EAAEc,UAAUm1L,YAAc,SAAU71L,EAAGJ,EAAGW,GAC3C,IAAIhB,EAAGT,EAAG+B,EAAGyK,EAAGsiI,EAChB,OAA+BtiI,GAAxBxM,EAAI,MAAQyB,EAAIA,EAAI,IAAUmsL,sBAAuB7rL,EAAI/B,EAAE60L,gBAAiBp0L,EAAIT,EAAEg0L,gBAAgBllD,EAAI,IAAI3qI,EAAEqvL,MAAM31K,KAAM3c,EAAGJ,IAAM8sL,sBAAwB,MAAQphL,EAAIA,EAAIrI,EAAEqkL,OAAQ15C,EAAE+lD,gBAAkB1wL,EAAEkkL,WAAWtmL,GAAI+sI,EAAEklD,eAAiBvzL,EAAGquI,EAAE+6C,SAAWhsK,KAAKsgF,SAAU2wC,GAChRhuI,EAAEc,UAAUqrL,eAAiB,SAAU/rL,GACxC,OAAO2c,KAAKw4K,+BAA+Bn1L,EAAE6zL,qBAC5Cj0L,EAAEc,UAAU00L,wBAA0B,SAAUp1L,GACjD,QAASA,EAAE+vG,kBAAoB/vG,EAAEqC,OAAO80J,mBAAqBn3J,EAAEuxG,MAAQ,GAAKvxG,EAAEmwG,QAAUnwG,EAAEswG,SAAWtwG,EAAEywG,SAAWzwG,EAAE4wG,WACnHhxG,EAAEc,UAAU20L,wBAA0B,SAAUr1L,GACjD,OAAO2c,KAAKm5K,gBAAgB91L,GAAKiD,EAAEo/F,QAAQriG,EAAG,8CAA2C,GACxFJ,EAAEc,UAAU40L,4BAA8B,SAAUt1L,GACrD,IAAIJ,EACJ,OAAOA,EAAI,IAAIqD,EAAEskL,SAASvnL,EAAEulD,aAAa,SAAU5oC,KAAK63K,oBAAoB50L,GAAKA,OAAI,GACpFA,EAAEc,UAAU80L,iBAAmB,SAAUx1L,GAC1C,IAAIiD,EACJ,OAAO,OAASA,EAAIjD,EAAEulD,aAAa,2BAA6BtiD,EAAI,WACnErD,EAAEc,UAAUo1L,gBAAkB,SAAU91L,GACzC,IAAIJ,EACJ,QAAQA,EAAIqD,EAAEo/F,QAAQriG,EAAG,uBAAwB,UAAYJ,EAAE2lD,aAAa,oBAC3E3lD,EAAEc,UAAU8zL,oBAAsB,SAAUx0L,GAC7C,OAAOA,EAAEgoL,aAAarrK,KAAKk0F,KAAKi9E,oBAAsB9tL,EAAE+nL,UACvDnoL,EAAEc,UAAUq0L,0BAA4B,WACzC,OAAOp4K,KAAK83K,gCAAgC93K,KAAK+vK,wBAChD9sL,EAAEc,UAAU+zL,gCAAkC,SAAUz0L,GACzD,IAAIiD,EACJ,OAAO,OAASA,EAAI0Z,KAAKg3K,iBAAiB3zL,GAAKiD,EAAEjD,GAAKiD,EAAEjD,GAAK,IAC5DJ,EAxJU,IA0JfX,KAAK0d,MAAO,YACX,WACC,IAAI3c,EAAGiD,EACP,IAAKjD,EAAIiD,EAAI8gD,SAASgyI,iBAAmB9yL,EAAE84H,aAAa,oCAAqC,KAAO/7H,EAAIA,EAAE+yB,YACxG,GAAI/yB,IAAM+jD,SAASs2B,KAAM,OAAO/wD,QAAQC,KAAK,4dAA6dtmB,EAAE2gI,WAH/gB,IAMD3kI,KAAK0d,MAAO,WACZ,IAAI3c,EAAGJ,EAAGW,EACV0C,EAAEmC,MAAQ,WACR,OAAOxF,KAAO,MAAQqD,EAAEuiC,aAAeviC,EAAEuiC,WAAaxlC,KAAMiD,EAAEuiC,WAAWpgC,cAAW,GACnFxF,EAAI,WACL,OAAO,MAAQsE,OAAO6iL,aAAe7iL,OAAO6iL,WAAa9jL,GAAI1C,KAC5DP,EAAI,WACL,IAAIA,EACJ,OAAOA,EAAI,IAAIiD,EAAEgxL,WAAcj0L,EAAEqqF,QAAU,IAAIpnF,EAAE0nL,eAAe3qL,GAAIA,IACnEO,EAAI,WACL,OAAO2D,OAAO6iL,aAAe9jL,OACrBA,EAAEmC,SACZnG,KAAK0d,QACN1d,KAAK0d,MAAO,UAA2D5a,EAAQlD,IAAYA,EAAOD,QAAUC,EAAOD,QAAUqE,OAAyD,2BAAR,KAAQ,oCACxLhE,KAAK0d,Q,oCC1hCR,UAEmB8yE,EAFnB,cAAoW,OAAtO1tF,EAArD,oBAAXlC,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,GAEhW6tF,EAEV,SAAU7wF,GACjB,aAQA,IAAIo3L,EANJ,SAA8B1xL,EAAIzF,GAChC,OAEGyF,EAFIzF,EAAS,CACdD,QAAS,IACGC,EAAOD,SAAUC,EAAOD,QAGzBq3L,EAAqB,SAAUp3L,EAAQD,GAGhDC,EAAOD,QAER,SAAUgR,GACX,IAAIsmL,EAAU,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAE1F,SAASC,EAAS/rL,EAAG7C,GACnB,IAAI+D,EAAIlB,EAAE,GACNmB,EAAInB,EAAE,GACNjL,EAAIiL,EAAE,GACNhL,EAAIgL,EAAE,GAQVmB,IADAA,KADApM,IADAA,KADAC,IADAA,KADAkM,IADAA,IAAMC,EAAIpM,GAAKoM,EAAInM,GAAKmI,EAAE,GAAK,UAAY,IACjC,EAAI+D,IAAM,IAAMC,EAAI,GACpBA,GAAKD,EAAInM,GAAKoI,EAAE,GAAK,UAAY,IACjC,GAAKnI,IAAM,IAAMkM,EAAI,GACrBA,GAAKlM,EAAImM,GAAKhE,EAAE,GAAK,UAAY,IACjC,GAAKpI,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAImM,GAAK/D,EAAE,GAAK,WAAa,IAClC,GAAKgE,IAAM,IAAMpM,EAAI,EAQ/BoM,IADAA,KADApM,IADAA,KADAC,IADAA,KADAkM,IADAA,IAAMC,EAAIpM,GAAKoM,EAAInM,GAAKmI,EAAE,GAAK,UAAY,IACjC,EAAI+D,IAAM,IAAMC,EAAI,GACpBA,GAAKD,EAAInM,GAAKoI,EAAE,GAAK,WAAa,IAClC,GAAKnI,IAAM,IAAMkM,EAAI,GACrBA,GAAKlM,EAAImM,GAAKhE,EAAE,GAAK,WAAa,IAClC,GAAKpI,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAImM,GAAK/D,EAAE,GAAK,SAAW,IAChC,GAAKgE,IAAM,IAAMpM,EAAI,EAQ/BoM,IADAA,KADApM,IADAA,KADAC,IADAA,KADAkM,IADAA,IAAMC,EAAIpM,GAAKoM,EAAInM,GAAKmI,EAAE,GAAK,WAAa,IAClC,EAAI+D,IAAM,IAAMC,EAAI,GACpBA,GAAKD,EAAInM,GAAKoI,EAAE,GAAK,WAAa,IAClC,GAAKnI,IAAM,IAAMkM,EAAI,GACrBA,GAAKlM,EAAImM,GAAKhE,EAAE,IAAM,MAAQ,IAC9B,GAAKpI,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAImM,GAAK/D,EAAE,IAAM,WAAa,IACnC,GAAKgE,IAAM,IAAMpM,EAAI,EAQ/BoM,IADAA,KADApM,IADAA,KADAC,IADAA,KADAkM,IADAA,IAAMC,EAAIpM,GAAKoM,EAAInM,GAAKmI,EAAE,IAAM,WAAa,IACnC,EAAI+D,IAAM,IAAMC,EAAI,GACpBA,GAAKD,EAAInM,GAAKoI,EAAE,IAAM,SAAW,IACjC,GAAKnI,IAAM,IAAMkM,EAAI,GACrBA,GAAKlM,EAAImM,GAAKhE,EAAE,IAAM,WAAa,IACnC,GAAKpI,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAImM,GAAK/D,EAAE,IAAM,WAAa,IACnC,GAAKgE,IAAM,IAAMpM,EAAI,EAQ/BoM,IADAA,KADApM,IADAA,KADAC,IADAA,KADAkM,IADAA,IAAMC,EAAInM,EAAID,GAAKC,GAAKmI,EAAE,GAAK,UAAY,IACjC,EAAI+D,IAAM,IAAMC,EAAI,GACpBpM,EAAIoM,GAAKpM,GAAKoI,EAAE,GAAK,WAAa,IAClC,EAAInI,IAAM,IAAMkM,EAAI,GACpBC,EAAID,GAAKC,GAAKhE,EAAE,IAAM,UAAY,IAClC,GAAKpI,IAAM,IAAMC,EAAI,GACrBkM,EAAIlM,GAAKkM,GAAK/D,EAAE,GAAK,UAAY,IACjC,GAAKgE,IAAM,IAAMpM,EAAI,EAQ/BoM,IADAA,KADApM,IADAA,KADAC,IADAA,KADAkM,IADAA,IAAMC,EAAInM,EAAID,GAAKC,GAAKmI,EAAE,GAAK,UAAY,IACjC,EAAI+D,IAAM,IAAMC,EAAI,GACpBpM,EAAIoM,GAAKpM,GAAKoI,EAAE,IAAM,SAAW,IACjC,EAAInI,IAAM,IAAMkM,EAAI,GACpBC,EAAID,GAAKC,GAAKhE,EAAE,IAAM,UAAY,IAClC,GAAKpI,IAAM,IAAMC,EAAI,GACrBkM,EAAIlM,GAAKkM,GAAK/D,EAAE,GAAK,UAAY,IACjC,GAAKgE,IAAM,IAAMpM,EAAI,EAQ/BoM,IADAA,KADApM,IADAA,KADAC,IADAA,KADAkM,IADAA,IAAMC,EAAInM,EAAID,GAAKC,GAAKmI,EAAE,GAAK,UAAY,IACjC,EAAI+D,IAAM,IAAMC,EAAI,GACpBpM,EAAIoM,GAAKpM,GAAKoI,EAAE,IAAM,WAAa,IACnC,EAAInI,IAAM,IAAMkM,EAAI,GACpBC,EAAID,GAAKC,GAAKhE,EAAE,GAAK,UAAY,IACjC,GAAKpI,IAAM,IAAMC,EAAI,GACrBkM,EAAIlM,GAAKkM,GAAK/D,EAAE,GAAK,WAAa,IAClC,GAAKgE,IAAM,IAAMpM,EAAI,EAQ/BoM,IADAA,KADApM,IADAA,KADAC,IADAA,KADAkM,IADAA,IAAMC,EAAInM,EAAID,GAAKC,GAAKmI,EAAE,IAAM,WAAa,IACnC,EAAI+D,IAAM,IAAMC,EAAI,GACpBpM,EAAIoM,GAAKpM,GAAKoI,EAAE,GAAK,SAAW,IAChC,EAAInI,IAAM,IAAMkM,EAAI,GACpBC,EAAID,GAAKC,GAAKhE,EAAE,GAAK,WAAa,IAClC,GAAKpI,IAAM,IAAMC,EAAI,GACrBkM,EAAIlM,GAAKkM,GAAK/D,EAAE,IAAM,WAAa,IACnC,GAAKgE,IAAM,IAAMpM,EAAI,EAQ/BoM,IADAA,KADApM,IADAA,KADAC,IADAA,KADAkM,IADAA,IAAMC,EAAIpM,EAAIC,GAAKmI,EAAE,GAAK,OAAS,IACzB,EAAI+D,IAAM,IAAMC,EAAI,GACpBA,EAAIpM,GAAKoI,EAAE,GAAK,WAAa,IAC7B,GAAKnI,IAAM,IAAMkM,EAAI,GACrBA,EAAIC,GAAKhE,EAAE,IAAM,WAAa,IAC9B,GAAKpI,IAAM,IAAMC,EAAI,GACrBA,EAAIkM,GAAK/D,EAAE,IAAM,SAAW,IAC5B,GAAKgE,IAAM,GAAKpM,EAAI,EAQ9BoM,IADAA,KADApM,IADAA,KADAC,IADAA,KADAkM,IADAA,IAAMC,EAAIpM,EAAIC,GAAKmI,EAAE,GAAK,WAAa,IAC7B,EAAI+D,IAAM,IAAMC,EAAI,GACpBA,EAAIpM,GAAKoI,EAAE,GAAK,WAAa,IAC7B,GAAKnI,IAAM,IAAMkM,EAAI,GACrBA,EAAIC,GAAKhE,EAAE,GAAK,UAAY,IAC5B,GAAKpI,IAAM,IAAMC,EAAI,GACrBA,EAAIkM,GAAK/D,EAAE,IAAM,WAAa,IAC9B,GAAKgE,IAAM,GAAKpM,EAAI,EAQ9BoM,IADAA,KADApM,IADAA,KADAC,IADAA,KADAkM,IADAA,IAAMC,EAAIpM,EAAIC,GAAKmI,EAAE,IAAM,UAAY,IAC7B,EAAI+D,IAAM,IAAMC,EAAI,GACpBA,EAAIpM,GAAKoI,EAAE,GAAK,UAAY,IAC5B,GAAKnI,IAAM,IAAMkM,EAAI,GACrBA,EAAIC,GAAKhE,EAAE,GAAK,UAAY,IAC5B,GAAKpI,IAAM,IAAMC,EAAI,GACrBA,EAAIkM,GAAK/D,EAAE,GAAK,SAAW,IAC3B,GAAKgE,IAAM,GAAKpM,EAAI,EAQ9BoM,IADAA,KADApM,IADAA,KADAC,IADAA,KADAkM,IADAA,IAAMC,EAAIpM,EAAIC,GAAKmI,EAAE,GAAK,UAAY,IAC5B,EAAI+D,IAAM,IAAMC,EAAI,GACpBA,EAAIpM,GAAKoI,EAAE,IAAM,UAAY,IAC7B,GAAKnI,IAAM,IAAMkM,EAAI,GACrBA,EAAIC,GAAKhE,EAAE,IAAM,UAAY,IAC7B,GAAKpI,IAAM,IAAMC,EAAI,GACrBA,EAAIkM,GAAK/D,EAAE,GAAK,UAAY,IAC5B,GAAKgE,IAAM,GAAKpM,EAAI,EAQ9BoM,IADAA,KAHAnM,IADAA,IAAMmM,IADND,IADAA,IAAMnM,GAAKoM,GAAKnM,IAAMmI,EAAE,GAAK,UAAY,IAC/B,EAAI+D,IAAM,IAAMC,EAAI,IACdpM,IAAMoI,EAAE,GAAK,WAAa,IAChC,GAAKnI,IAAM,IAAMkM,EAAI,KAE/BnM,IADAA,IAAMmM,GAAKlM,GAAKmM,IAAMhE,EAAE,IAAM,WAAa,IACjC,GAAKpI,IAAM,IAAMC,EAAI,IACfkM,IAAM/D,EAAE,GAAK,SAAW,IAC9B,GAAKgE,IAAM,IAAMpM,EAAI,EAQ/BoM,IADAA,KAHAnM,IADAA,IAAMmM,IADND,IADAA,IAAMnM,GAAKoM,GAAKnM,IAAMmI,EAAE,IAAM,WAAa,IACjC,EAAI+D,IAAM,IAAMC,EAAI,IACdpM,IAAMoI,EAAE,GAAK,WAAa,IAChC,GAAKnI,IAAM,IAAMkM,EAAI,KAE/BnM,IADAA,IAAMmM,GAAKlM,GAAKmM,IAAMhE,EAAE,IAAM,QAAU,IAC9B,GAAKpI,IAAM,IAAMC,EAAI,IACfkM,IAAM/D,EAAE,GAAK,WAAa,IAChC,GAAKgE,IAAM,IAAMpM,EAAI,EAQ/BoM,IADAA,KAHAnM,IADAA,IAAMmM,IADND,IADAA,IAAMnM,GAAKoM,GAAKnM,IAAMmI,EAAE,GAAK,WAAa,IAChC,EAAI+D,IAAM,IAAMC,EAAI,IACdpM,IAAMoI,EAAE,IAAM,SAAW,IAC/B,GAAKnI,IAAM,IAAMkM,EAAI,KAE/BnM,IADAA,IAAMmM,GAAKlM,GAAKmM,IAAMhE,EAAE,GAAK,WAAa,IAChC,GAAKpI,IAAM,IAAMC,EAAI,IACfkM,IAAM/D,EAAE,IAAM,WAAa,IACjC,GAAKgE,IAAM,IAAMpM,EAAI,EAQ/BoM,IADAA,KAHAnM,IADAA,IAAMmM,IADND,IADAA,IAAMnM,GAAKoM,GAAKnM,IAAMmI,EAAE,GAAK,UAAY,IAC/B,EAAI+D,IAAM,IAAMC,EAAI,IACdpM,IAAMoI,EAAE,IAAM,WAAa,IACjC,GAAKnI,IAAM,IAAMkM,EAAI,KAE/BnM,IADAA,IAAMmM,GAAKlM,GAAKmM,IAAMhE,EAAE,GAAK,UAAY,IAC/B,GAAKpI,IAAM,IAAMC,EAAI,IACfkM,IAAM/D,EAAE,GAAK,UAAY,IAC/B,GAAKgE,IAAM,IAAMpM,EAAI,EAC/BiL,EAAE,GAAKkB,EAAIlB,EAAE,GAAK,EAClBA,EAAE,GAAKmB,EAAInB,EAAE,GAAK,EAClBA,EAAE,GAAKjL,EAAIiL,EAAE,GAAK,EAClBA,EAAE,GAAKhL,EAAIgL,EAAE,GAAK,EAGpB,SAASgsL,EAAOv1L,GACd,IACI/B,EADAu3L,EAAU,GAGd,IAAKv3L,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBu3L,EAAQv3L,GAAK,GAAK+B,EAAEy1F,WAAWx3F,IAAM+B,EAAEy1F,WAAWx3F,EAAI,IAAM,IAAM+B,EAAEy1F,WAAWx3F,EAAI,IAAM,KAAO+B,EAAEy1F,WAAWx3F,EAAI,IAAM,IAGzH,OAAOu3L,EAGT,SAASC,EAAahrL,GACpB,IACIxM,EADAu3L,EAAU,GAGd,IAAKv3L,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBu3L,EAAQv3L,GAAK,GAAKwM,EAAExM,IAAMwM,EAAExM,EAAI,IAAM,IAAMwM,EAAExM,EAAI,IAAM,KAAOwM,EAAExM,EAAI,IAAM,IAG7E,OAAOu3L,EAGT,SAASE,EAAK11L,GACZ,IAEI/B,EACAyD,EACAi0L,EACAt6K,EACAgO,EACAD,EAPA1pB,EAAIM,EAAE0B,OACN0iG,EAAQ,CAAC,YAAa,WAAY,WAAY,WAQlD,IAAKnmG,EAAI,GAAIA,GAAKyB,EAAGzB,GAAK,GACxBq3L,EAASlxF,EAAOmxF,EAAOv1L,EAAEq7I,UAAUp9I,EAAI,GAAIA,KAO7C,IAHAyD,GADA1B,EAAIA,EAAEq7I,UAAUp9I,EAAI,KACTyD,OACXi0L,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEhD13L,EAAI,EAAGA,EAAIyD,EAAQzD,GAAK,EAC3B03L,EAAK13L,GAAK,IAAM+B,EAAEy1F,WAAWx3F,KAAOA,EAAI,GAAK,GAK/C,GAFA03L,EAAK13L,GAAK,IAAM,MAAQA,EAAI,GAAK,GAE7BA,EAAI,GAGN,IAFAq3L,EAASlxF,EAAOuxF,GAEX13L,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB03L,EAAK13L,GAAK,EAWd,OANAod,GADAA,EAAU,EAAJ3b,GACIqD,SAAS,IAAI8kB,MAAM,kBAC7BwB,EAAKtO,SAASM,EAAI,GAAI,IACtB+N,EAAKrO,SAASM,EAAI,GAAI,KAAO,EAC7Bs6K,EAAK,IAAMtsK,EACXssK,EAAK,IAAMvsK,EACXksK,EAASlxF,EAAOuxF,GACTvxF,EAGT,SAASwxF,EAAWnrL,GAClB,IAEIxM,EACAyD,EACAi0L,EACAt6K,EACAgO,EACAD,EAPA1pB,EAAI+K,EAAE/I,OACN0iG,EAAQ,CAAC,YAAa,WAAY,WAAY,WAQlD,IAAKnmG,EAAI,GAAIA,GAAKyB,EAAGzB,GAAK,GACxBq3L,EAASlxF,EAAOqxF,EAAahrL,EAAEorL,SAAS53L,EAAI,GAAIA,KAOlD,IAHAyD,GADA+I,EAAIxM,EAAI,GAAKyB,EAAI+K,EAAEorL,SAAS53L,EAAI,IAAM,IAAI63L,WAAW,IAC1Cp0L,OACXi0L,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEhD13L,EAAI,EAAGA,EAAIyD,EAAQzD,GAAK,EAC3B03L,EAAK13L,GAAK,IAAMwM,EAAExM,KAAOA,EAAI,GAAK,GAKpC,GAFA03L,EAAK13L,GAAK,IAAM,MAAQA,EAAI,GAAK,GAE7BA,EAAI,GAGN,IAFAq3L,EAASlxF,EAAOuxF,GAEX13L,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB03L,EAAK13L,GAAK,EAWd,OANAod,GADAA,EAAU,EAAJ3b,GACIqD,SAAS,IAAI8kB,MAAM,kBAC7BwB,EAAKtO,SAASM,EAAI,GAAI,IACtB+N,EAAKrO,SAASM,EAAI,GAAI,KAAO,EAC7Bs6K,EAAK,IAAMtsK,EACXssK,EAAK,IAAMvsK,EACXksK,EAASlxF,EAAOuxF,GACTvxF,EAGT,SAAS2xF,EAAKr2L,GACZ,IACI+a,EADAza,EAAI,GAGR,IAAKya,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtBza,GAAKq1L,EAAQ31L,GAAS,EAAJ+a,EAAQ,EAAI,IAAM46K,EAAQ31L,GAAS,EAAJ+a,EAAQ,IAG3D,OAAOza,EAGT,SAAS8N,EAAIvE,GACX,IAAItL,EAEJ,IAAKA,EAAI,EAAGA,EAAIsL,EAAE7H,OAAQzD,GAAK,EAC7BsL,EAAEtL,GAAK83L,EAAKxsL,EAAEtL,IAGhB,OAAOsL,EAAEgjB,KAAK,IA4ChB,SAASypK,EAAOruL,GAKd,MAJI,kBAAkB1E,KAAK0E,KACzBA,EAAMsuL,SAASx3E,mBAAmB92G,KAG7BA,EAGT,SAASuuL,EAAoBvuL,EAAKwuL,GAChC,IAGIl4L,EAHAyD,EAASiG,EAAIjG,OACb00L,EAAO,IAAIC,YAAY30L,GACvBxB,EAAM,IAAI41L,WAAWM,GAGzB,IAAKn4L,EAAI,EAAGA,EAAIyD,EAAQzD,GAAK,EAC3BiC,EAAIjC,GAAK0J,EAAI8tF,WAAWx3F,GAG1B,OAAOk4L,EAAmBj2L,EAAMk2L,EAGlC,SAASE,EAAoBF,GAC3B,OAAO98G,OAAO8b,aAAajxF,MAAM,KAAM,IAAI2xL,WAAWM,IAGxD,SAASG,EAAwBlvI,EAAOwhC,EAAQstG,GAC9C,IAAIrjK,EAAS,IAAIgjK,WAAWzuI,EAAMmvI,WAAa3tG,EAAO2tG,YAGtD,OAFA1jK,EAAO5W,IAAI,IAAI45K,WAAWzuI,IAC1Bv0B,EAAO5W,IAAI,IAAI45K,WAAWjtG,GAASxhC,EAAMmvI,YAClCL,EAAmBrjK,EAASA,EAAO2jK,OAG5C,SAASC,EAAkB5oL,GACzB,IAEIvE,EAFAotL,EAAQ,GACRj1L,EAASoM,EAAIpM,OAGjB,IAAK6H,EAAI,EAAGA,EAAI7H,EAAS,EAAG6H,GAAK,EAC/BotL,EAAMn1K,KAAKzG,SAASjN,EAAIhJ,OAAOyE,EAAG,GAAI,KAGxC,OAAO+vE,OAAO8b,aAAajxF,MAAMm1E,OAAQq9G,GAG3C,SAASC,IACP96K,KAAK2zB,QA+KP,OArQI3hC,EAAI4nL,EAAK,UAEc,qBAAhBW,aAAgCA,YAAYx2L,UAAUmD,OAC/D,WACE,SAAS6zL,EAAMj6K,EAAKlb,GAGlB,OAFAkb,EAAY,EAANA,GAAW,GAEP,EACD3U,KAAK6B,IAAI8S,EAAMlb,EAAQ,GAGzBuG,KAAK4B,IAAI+S,EAAKlb,GAGvB20L,YAAYx2L,UAAUmD,MAAQ,SAAUvC,EAAM++B,GAC5C,IAGIlJ,EACA90B,EACAs1L,EACAC,EANAr1L,EAASoa,KAAK06K,WACdQ,EAAQH,EAAMp2L,EAAMiB,GACpB8C,EAAM9C,EAUV,OAJI89B,IAAOzwB,IACTvK,EAAMqyL,EAAMr3J,EAAI99B,IAGds1L,EAAQxyL,EACH,IAAI6xL,YAAY,IAGzB//J,EAAM9xB,EAAMwyL,EACZx1L,EAAS,IAAI60L,YAAY//J,GACzBwgK,EAAc,IAAIhB,WAAWt0L,GAC7Bu1L,EAAc,IAAIjB,WAAWh6K,KAAMk7K,EAAO1gK,GAC1CwgK,EAAY56K,IAAI66K,GACTv1L,IAjCX,GAsFFo1L,EAAS/2L,UAAU6yG,OAAS,SAAU/qG,GAEpC,OADAmU,KAAKm7K,aAAajB,EAAOruL,IAClBmU,MAGT86K,EAAS/2L,UAAUo3L,aAAe,SAAU51F,GAC1CvlF,KAAKo7K,OAAS71F,EACdvlF,KAAKkyB,SAAWqzD,EAAS3/F,OACzB,IACIzD,EADAyD,EAASoa,KAAKo7K,MAAMx1L,OAGxB,IAAKzD,EAAI,GAAIA,GAAKyD,EAAQzD,GAAK,GAC7Bq3L,EAASx5K,KAAKq7K,MAAO5B,EAAOz5K,KAAKo7K,MAAM77C,UAAUp9I,EAAI,GAAIA,KAI3D,OADA6d,KAAKo7K,MAAQp7K,KAAKo7K,MAAM77C,UAAUp9I,EAAI,IAC/B6d,MAGT86K,EAAS/2L,UAAU2E,IAAM,SAAUqnC,GACjC,IAEI5tC,EAEA8d,EAJAq6K,EAAOt6K,KAAKo7K,MACZx1L,EAAS00L,EAAK10L,OAEdi0L,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGzD,IAAK13L,EAAI,EAAGA,EAAIyD,EAAQzD,GAAK,EAC3B03L,EAAK13L,GAAK,IAAMm4L,EAAK3gG,WAAWx3F,KAAOA,EAAI,GAAK,GAYlD,OATA6d,KAAKs7K,QAAQzB,EAAMj0L,GAEnBqa,EAAMjO,EAAIgO,KAAKq7K,OAEXtrJ,IACF9vB,EAAM26K,EAAkB36K,IAG1BD,KAAK2zB,QACE1zB,GAGT66K,EAAS/2L,UAAU4vC,MAAQ,WAIzB,OAHA3zB,KAAKo7K,MAAQ,GACbp7K,KAAKkyB,QAAU,EACflyB,KAAKq7K,MAAQ,CAAC,YAAa,WAAY,WAAY,WAC5Cr7K,MAGT86K,EAAS/2L,UAAUw3L,SAAW,WAC5B,MAAO,CACLjB,KAAMt6K,KAAKo7K,MACXx1L,OAAQoa,KAAKkyB,QACbmuD,KAAMrgF,KAAKq7K,QAIfP,EAAS/2L,UAAUy3L,SAAW,SAAUlzF,GAItC,OAHAtoF,KAAKo7K,MAAQ9yF,EAAMgyF,KACnBt6K,KAAKkyB,QAAUo2D,EAAM1iG,OACrBoa,KAAKq7K,MAAQ/yF,EAAMjI,KACZrgF,MAGT86K,EAAS/2L,UAAUuuE,QAAU,kBACpBtyD,KAAKq7K,aACLr7K,KAAKo7K,aACLp7K,KAAKkyB,SAGd4oJ,EAAS/2L,UAAUu3L,QAAU,SAAUzB,EAAMj0L,GAC3C,IACI2Z,EACAgO,EACAD,EAHAnrB,EAAIyD,EAMR,GAFAi0L,EAAK13L,GAAK,IAAM,MAAQA,EAAI,GAAK,GAE7BA,EAAI,GAGN,IAFAq3L,EAASx5K,KAAKq7K,MAAOxB,GAEhB13L,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB03L,EAAK13L,GAAK,EAKdod,GADAA,EAAqB,EAAfS,KAAKkyB,SACDjrC,SAAS,IAAI8kB,MAAM,kBAC7BwB,EAAKtO,SAASM,EAAI,GAAI,IACtB+N,EAAKrO,SAASM,EAAI,GAAI,KAAO,EAC7Bs6K,EAAK,IAAMtsK,EACXssK,EAAK,IAAMvsK,EACXksK,EAASx5K,KAAKq7K,MAAOxB,IAGvBiB,EAASz6F,KAAO,SAAUx0F,EAAKkkC,GAC7B,OAAO+qJ,EAASW,WAAWvB,EAAOruL,GAAMkkC,IAG1C+qJ,EAASW,WAAa,SAAUr1F,EAASr2D,GACvC,IACI9vB,EAAMjO,EADC4nL,EAAKxzF,IAEhB,OAAOr2D,EAAM6qJ,EAAkB36K,GAAOA,GAGxC66K,EAASP,YAAc,WACrBv6K,KAAK2zB,SAGPmnJ,EAASP,YAAYx2L,UAAU6yG,OAAS,SAAUxyG,GAChD,IAEIjC,EAFAm4L,EAAOG,EAAwBz6K,KAAKo7K,MAAMT,OAAQv2L,GAAK,GACvDwB,EAAS00L,EAAK10L,OAIlB,IAFAoa,KAAKkyB,SAAW9tC,EAAIs2L,WAEfv4L,EAAI,GAAIA,GAAKyD,EAAQzD,GAAK,GAC7Bq3L,EAASx5K,KAAKq7K,MAAO1B,EAAaW,EAAKP,SAAS53L,EAAI,GAAIA,KAI1D,OADA6d,KAAKo7K,MAAQj5L,EAAI,GAAKyD,EAAS,IAAIo0L,WAAWM,EAAKK,OAAOzzL,MAAM/E,EAAI,KAAO,IAAI63L,WAAW,GACnFh6K,MAGT86K,EAASP,YAAYx2L,UAAU2E,IAAM,SAAUqnC,GAC7C,IAGI5tC,EACA8d,EAJAq6K,EAAOt6K,KAAKo7K,MACZx1L,EAAS00L,EAAK10L,OACdi0L,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAIzD,IAAK13L,EAAI,EAAGA,EAAIyD,EAAQzD,GAAK,EAC3B03L,EAAK13L,GAAK,IAAMm4L,EAAKn4L,KAAOA,EAAI,GAAK,GAYvC,OATA6d,KAAKs7K,QAAQzB,EAAMj0L,GAEnBqa,EAAMjO,EAAIgO,KAAKq7K,OAEXtrJ,IACF9vB,EAAM26K,EAAkB36K,IAG1BD,KAAK2zB,QACE1zB,GAGT66K,EAASP,YAAYx2L,UAAU4vC,MAAQ,WAIrC,OAHA3zB,KAAKo7K,MAAQ,IAAIpB,WAAW,GAC5Bh6K,KAAKkyB,QAAU,EACflyB,KAAKq7K,MAAQ,CAAC,YAAa,WAAY,WAAY,WAC5Cr7K,MAGT86K,EAASP,YAAYx2L,UAAUw3L,SAAW,WACxC,IAAIjzF,EAAQwyF,EAAS/2L,UAAUw3L,SAASj5L,KAAK0d,MAE7C,OADAsoF,EAAMgyF,KAAOE,EAAoBlyF,EAAMgyF,MAChChyF,GAGTwyF,EAASP,YAAYx2L,UAAUy3L,SAAW,SAAUlzF,GAElD,OADAA,EAAMgyF,KAAOF,EAAoB9xF,EAAMgyF,MAAM,GACtCQ,EAAS/2L,UAAUy3L,SAASl5L,KAAK0d,KAAMsoF,IAGhDwyF,EAASP,YAAYx2L,UAAUuuE,QAAUwoH,EAAS/2L,UAAUuuE,QAC5DwoH,EAASP,YAAYx2L,UAAUu3L,QAAUR,EAAS/2L,UAAUu3L,QAE5DR,EAASP,YAAYl6F,KAAO,SAAUj8F,EAAK2rC,GACzC,IACI9vB,EAAMjO,EADC8nL,EAAW,IAAIE,WAAW51L,KAErC,OAAO2rC,EAAM6qJ,EAAkB36K,GAAOA,GAGjC66K,EAphBYhoG,MAwhBnB4oG,EAAiB,SAAwBn2L,EAAUC,GACrD,KAAMD,aAAoBC,GACxB,MAAM,IAAIV,UAAU,sCAIpB62L,EAAc,WAChB,SAAS/2K,EAAiBlf,EAAQC,GAChC,IAAK,IAAIxD,EAAI,EAAGA,EAAIwD,EAAMC,OAAQzD,IAAK,CACrC,IAAI0D,EAAaF,EAAMxD,GACvB0D,EAAW9C,WAAa8C,EAAW9C,aAAc,EACjD8C,EAAWX,cAAe,EACtB,UAAWW,IAAYA,EAAWV,UAAW,GACjDtC,OAAOC,eAAe4C,EAAQG,EAAWnC,IAAKmC,IAIlD,OAAO,SAAUL,EAAaO,EAAYC,GAGxC,OAFID,GAAY6e,EAAiBpf,EAAYzB,UAAWgC,GACpDC,GAAa4e,EAAiBpf,EAAaQ,GACxCR,GAdO,GAkBdo2L,EAAYC,KAAK93L,UAAUmD,OAAS20L,KAAK93L,UAAU+3L,UAAYD,KAAK93L,UAAUg4L,YAE9EC,EAAe,WASjB,SAASA,EAAa/6F,GACpBy6F,EAAe17K,KAAMg8K,GACrBh8K,KAAKihF,KAAOA,EACZjhF,KAAKi8K,UAAY,QACjBj8K,KAAKk8K,WAAa/vL,KAAKs/C,KAAKzrC,KAAKihF,KAAKh+E,KAAOjD,KAAKi8K,WAClDj8K,KAAKm8K,WAAa,EAkDpB,OA/DAR,EAAYK,EAAc,KAAM,CAAC,CAC/Bt4L,IAAK,SACLN,MAAO,SAAgB69F,EAAMz5F,GACZ,IAAIw0L,EAAa/6F,GACvBx9F,OAAO+D,OAYpBm0L,EAAYK,EAAc,CAAC,CACzBt4L,IAAK,SACLN,MAAO,SAAgBoE,GACrB,IAAIuwC,EAAQ/3B,KAEZA,KAAKxY,SAAWA,EAChBwY,KAAKo8K,UAAY,IAAI/C,EAASkB,YAC9Bv6K,KAAKq8K,WAAa,IAAIC,WACtBt8K,KAAKq8K,WAAW3iK,iBAAiB,QAAQ,SAAUqJ,GACjD,OAAOgV,EAAMwkJ,kBAAkBx5J,MAEjC/iB,KAAKq8K,WAAW3iK,iBAAiB,SAAS,SAAUqJ,GAClD,OAAOgV,EAAMykJ,mBAAmBz5J,MAElC/iB,KAAKy8K,kBAEN,CACD/4L,IAAK,oBACLN,MAAO,SAA2B2/B,GAGhC,GAFA/iB,KAAKo8K,UAAUxlF,OAAO7zE,EAAMr9B,OAAOsxB,SAE9BhX,KAAKy8K,gBAAiB,CACzB,IAAIC,EAAe18K,KAAKo8K,UAAU1zL,KAAI,GAClCi0L,EAAeC,KAAKF,GACxB18K,KAAKxY,SAAS,KAAMm1L,MAGvB,CACDj5L,IAAK,qBACLN,MAAO,SAA4B2/B,GACjC/iB,KAAKxY,SAAS,iBAAmBwY,KAAKihF,KAAKv+F,QAE5C,CACDgB,IAAK,gBACLN,MAAO,WACL,GAAI4c,KAAKm8K,WAAan8K,KAAKk8K,YAAiC,GAAnBl8K,KAAKm8K,YAAsC,GAAnBn8K,KAAKk8K,WAAiB,CACrF,IAAIzzL,EAAQuX,KAAKm8K,WAAan8K,KAAKi8K,UAC/BvzL,EAAMyD,KAAK4B,IAAItF,EAAQuX,KAAKi8K,UAAWj8K,KAAKihF,KAAKh+E,MACjD43K,EAAQe,EAAUt5L,KAAK0d,KAAKihF,KAAMx4F,EAAOC,GAG7C,OAFAsX,KAAKq8K,WAAWQ,kBAAkBhC,GAClC76K,KAAKm8K,cACE,EAEP,OAAO,MAINH,EAhEU,GAqFnB,SAASc,EAAYh7K,EAAMwyE,GAMzB,MALmB,iBAARxyE,IACTwyE,EAAWxyE,EACXA,EAAOslC,UAGFtlC,EAAK4rG,cAAcp5B,GAG5B,SAASw5C,EAAcn3G,EAAS5tB,GAC9B,IAAIg0L,EAAY70L,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,GAChFwnC,EAAW/Y,EAAQ+Y,SACnB+jE,EAAUspF,EAAUtpF,QACpBj4C,EAAauhI,EAAUvhI,WACvBo4C,EAASmpF,EAAUnpF,OACnB7wE,EAAQqkB,SAAS0sF,YAAY,SACjC/wG,EAAMotH,UAAUpnJ,EAAM0qG,IAAW,EAAMj4C,IAAc,GACrDz4B,EAAM6wE,OAASA,GAAU,GAEzB,IACEj9E,EAAQ+Y,UAAW,EACnB/Y,EAAQm3G,cAAc/qG,GACtB,QACApM,EAAQ+Y,SAAWA,EAGrB,OAAO3M,EAGT,SAASi6J,EAAU55L,GACjB,OAAIiB,MAAMC,QAAQlB,GACTA,EACEiB,MAAMM,KACRN,MAAMM,KAAKvB,GAEX,GAAG8D,MAAM5E,KAAKc,GAIzB,IAAI65L,EAAa,WACf,SAASA,EAAWh8F,EAAMi8F,EAAU14E,GAClC,IAAIzsE,EAAQ/3B,KAEZ07K,EAAe17K,KAAMi9K,GACrBj9K,KAAKihF,KAAOA,EACZjhF,KAAKi4E,WAAa,CAChBklG,SAAUl8F,EAAKv+F,KACf06L,aAAcn8F,EAAKl4F,MAAQ,2BAC3Bs0L,UAAWp8F,EAAKh+E,KAChBi6K,SAAUA,GAEZl9K,KAAK4oG,IAAM,IAAIC,eACf7oG,KAAK4oG,IAAIO,KAAK,OAAQ3E,GAAK,GAC3BxkG,KAAK4oG,IAAIe,aAAe,OACxB3pG,KAAK4oG,IAAInC,iBAAiB,eAAgB,oBAC1CzmG,KAAK4oG,IAAInC,iBAAiB,SAAU,oBACpCzmG,KAAK4oG,IAAInC,iBAAiB,mBAAoB,kBAC9C,IAAIitB,EA3ER,SAAsBhxI,GACpB,IAAIi0B,EAAUmmK,EAAY11I,SAAS/S,KAAM,cAAgB3xC,EAAO,MAEhE,GAAIi0B,EACF,OAAOA,EAAQiyB,aAAa,WAuEZgoI,CAAa,mBAEZ39K,GAAbygI,GACF1zH,KAAK4oG,IAAInC,iBAAiB,eAAgBitB,GAG5C1zH,KAAK4oG,IAAIlvF,iBAAiB,QAAQ,SAAUqJ,GAC1C,OAAOgV,EAAMulJ,eAAev6J,MAE9B/iB,KAAK4oG,IAAIlvF,iBAAiB,SAAS,SAAUqJ,GAC3C,OAAOgV,EAAMwlJ,gBAAgBx6J,MA6DjC,OAzDA44J,EAAYsB,EAAY,CAAC,CACvBv5L,IAAK,SACLN,MAAO,SAAgBoE,GACrBwY,KAAKxY,SAAWA,EAChBwY,KAAK4oG,IAAItB,KAAK3sF,KAAKC,UAAU,CAC3B4iK,KAAMx9K,KAAKi4E,gBAGd,CACDv0F,IAAK,iBACLN,MAAO,SAAwB2/B,GAC7B,GAAI/iB,KAAK4mG,QAAU,KAAO5mG,KAAK4mG,OAAS,IAAK,CAC3C,IAAIc,EAAW1nG,KAAK0nG,SAChB+1E,EAAgB/1E,EAAS+1E,qBACtB/1E,EAAS+1E,cAChBz9K,KAAKi4E,WAAayvB,EAClB1nG,KAAK09K,iBAAmBD,EACxBz9K,KAAKxY,SAAS,KAAMwY,KAAKwrK,eAEzBxrK,KAAKu9K,gBAAgBx6J,KAGxB,CACDr/B,IAAK,kBACLN,MAAO,SAAyB2/B,GAC9B/iB,KAAKxY,SAAS,4BAA8BwY,KAAKihF,KAAKv+F,KAAO,cAAgBsd,KAAK4mG,UAEnF,CACDljH,IAAK,SACLN,MAAO,WACL,IAAI4zB,EAAS,GAEb,IAAK,IAAItzB,KAAOsc,KAAKi4E,WACnBjhE,EAAOtzB,GAAOsc,KAAKi4E,WAAWv0F,GAGhC,OAAOszB,IAER,CACDtzB,IAAK,SACLV,IAAK,WACH,OAAOgd,KAAK4oG,IAAIhC,SAEjB,CACDljH,IAAK,WACLV,IAAK,WACH,IAAI26L,EAAO39K,KAAK4oG,IACZe,EAAeg0E,EAAKh0E,aACpBjC,EAAWi2E,EAAKj2E,SAEpB,MAAoB,QAAhBiC,EACKjC,EAEA/sF,KAAKoT,MAAM25E,OAIjBu1E,EAzFQ,GA4FbW,EAAa,WACf,SAASA,EAAWJ,GAClB,IAAIzlJ,EAAQ/3B,KAEZ07K,EAAe17K,KAAM49K,GACrB59K,KAAKw9K,KAAOA,EACZx9K,KAAKihF,KAAOu8F,EAAKv8F,KACjB,IAAI48F,EAAwBL,EAAKE,iBAC7Bl5E,EAAMq5E,EAAsBr5E,IAC5B2C,EAAU02E,EAAsB12E,QAKpC,IAAK,IAAIzjH,KAJTsc,KAAK4oG,IAAM,IAAIC,eACf7oG,KAAK4oG,IAAIO,KAAK,MAAO3E,GAAK,GAC1BxkG,KAAK4oG,IAAIe,aAAe,OAERxC,EACdnnG,KAAK4oG,IAAInC,iBAAiB/iH,EAAKyjH,EAAQzjH,IAGzCsc,KAAK4oG,IAAIlvF,iBAAiB,QAAQ,SAAUqJ,GAC1C,OAAOgV,EAAMulJ,eAAev6J,MAE9B/iB,KAAK4oG,IAAIlvF,iBAAiB,SAAS,SAAUqJ,GAC3C,OAAOgV,EAAMwlJ,gBAAgBx6J,MA6BjC,OAzBA44J,EAAYiC,EAAY,CAAC,CACvBl6L,IAAK,SACLN,MAAO,SAAgBoE,GACrBwY,KAAKxY,SAAWA,EAChBwY,KAAK4oG,IAAItB,KAAKtnG,KAAKihF,KAAK/5F,WAEzB,CACDxD,IAAK,iBACLN,MAAO,SAAwB2/B,GAC7B,IAAI46J,EAAO39K,KAAK4oG,IACZhC,EAAS+2E,EAAK/2E,OACdc,EAAWi2E,EAAKj2E,SAEhBd,GAAU,KAAOA,EAAS,IAC5B5mG,KAAKxY,SAAS,KAAMkgH,GAEpB1nG,KAAKu9K,gBAAgBx6J,KAGxB,CACDr/B,IAAK,kBACLN,MAAO,SAAyB2/B,GAC9B/iB,KAAKxY,SAAS,kBAAoBwY,KAAKihF,KAAKv+F,KAAO,cAAgBsd,KAAK4oG,IAAIhC,YAGzEg3E,EAnDQ,GAsDbh1L,EAAK,EAELk1L,EAAe,WACjB,SAASA,EAAa78F,EAAMujB,EAAK0H,GAC/BwvE,EAAe17K,KAAM89K,GACrB99K,KAAKpX,KAAOA,EACZoX,KAAKihF,KAAOA,EACZjhF,KAAKwkG,IAAMA,EACXxkG,KAAKksG,SAAWA,EAkClB,OA/BAyvE,EAAYmC,EAAc,CAAC,CACzBp6L,IAAK,SACLN,MAAO,SAAgBoE,GACrB,IAAIuwC,EAAQ/3B,KAEZg8K,EAAav4L,OAAOuc,KAAKihF,MAAM,SAAU5/B,EAAO67H,GAC9C,GAAI77H,EACF75D,EAAS65D,OADX,CAKA,IAAIm8H,EAAO,IAAIP,EAAWllJ,EAAMkpD,KAAMi8F,EAAUnlJ,EAAMysE,KACtD9+C,EAAO3tB,EAAMm0E,SAAU,oCAAqCsxE,EAAK50E,KACjE40E,EAAK/5L,QAAO,SAAU49D,GACpB,GAAIA,EACF75D,EAAS65D,OACJ,CACL,IAAI08H,EAAS,IAAIH,EAAWJ,GAC5B93H,EAAO3tB,EAAMm0E,SAAU,mCAAoC6xE,EAAOn1E,KAClEm1E,EAAOt6L,QAAO,SAAU49D,GAClBA,EACF75D,EAAS65D,GAET75D,EAAS,KAAMg2L,EAAKhS,yBAQ3BsS,EAxCU,GA2CnB,SAASp4H,EAAO7hE,EAAQwsI,GACtB,GAAIxsI,GAAuC,mBAAtBA,EAAOwsI,GAA2B,CACrD,IAAK,IAAIpoI,EAAOC,UAAUtC,OAAQo4L,EAAW35L,MAAM4D,EAAO,EAAIA,EAAO,EAAI,GAAIG,EAAO,EAAGA,EAAOH,EAAMG,IAClG41L,EAAS51L,EAAO,GAAKF,UAAUE,GAGjC,OAAOvE,EAAOwsI,GAAYhoI,MAAMxE,EAAQm6L,IAI5C,IAAIC,EAAyB,WAC3B,SAASA,EAAuBr+K,EAAOqhF,GACrCy6F,EAAe17K,KAAMi+K,GACrBj+K,KAAKJ,MAAQA,EACbI,KAAKihF,KAAOA,EACZjhF,KAAKk+K,aAAe,IAAIJ,EAAa99K,KAAKihF,KAAMjhF,KAAKwkG,IAAKxkG,MAC1DA,KAAKsxF,SAAS,cAoFhB,OAjFAqqF,EAAYsC,EAAwB,CAAC,CACnCv6L,IAAK,QACLN,MAAO,SAAeoE,GACpB,IAAIuwC,EAAQ/3B,KAERm+K,EAAc/2I,SAAS6sC,cAAc,SACzCkqG,EAAYp1L,KAAO,SACnBo1L,EAAYz7L,KAAOsd,KAAKJ,MAAMld,KAC9Bsd,KAAKJ,MAAM43G,sBAAsB,cAAe2mE,GAChDn+K,KAAKsxF,SAAS,SACdtxF,KAAKk+K,aAAaz6L,QAAO,SAAU49D,EAAO42B,GACpC52B,GACF88H,EAAY/nK,WAAW+9D,YAAYgqG,GAEnCpmJ,EAAMqmJ,cAAc/8H,IAEpB88H,EAAY/6L,MAAQ60F,EAAWomG,UAGjCtmJ,EAAMu5D,SAAS,OAEf9pG,EAAS65D,QAGZ,CACD39D,IAAK,2BACLN,MAAO,SAAkC2/B,GACvC,IAAID,EAAWC,EAAMiuG,OAASjuG,EAAMoX,MAAQ,IAExCrX,GACF9iB,KAAKsxF,SAAS,WAAY,CACxBxuE,SAAUA,MAIf,CACDp/B,IAAK,WACLN,MAAO,SAAkBV,GACvB,IAAIkxG,EAAS1rG,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,GAGjF,OAFA0rG,EAAO3S,KAAOjhF,KAAKihF,KACnB2S,EAAOhrG,GAAKoX,KAAKk+K,aAAat1L,GACvBklI,EAAc9tH,KAAKJ,MAAO,iBAAmBld,EAAM,CACxDkxG,OAAQA,MAGX,CACDlwG,IAAK,gBACLN,MAAO,SAAuBi+D,GAChBrhD,KAAKsxF,SAAS,QAAS,CACjCjwC,MAAOA,IAGE+xC,kBACTkrF,MAAMj9H,KAGT,CACD39D,IAAK,oCACLN,MAAO,SAA2CwlH,GAChD5oG,KAAKsxF,SAAS,sBAAuB,CACnCsX,IAAKA,MAGR,CACDllH,IAAK,mCACLN,MAAO,SAA0CwlH,GAC/C,IAAIlrE,EAAS19B,KAEbA,KAAKsxF,SAAS,yBAA0B,CACtCsX,IAAKA,IAEPA,EAAIm1E,OAAOrkK,iBAAiB,YAAY,SAAUqJ,GAChD,OAAO2a,EAAO6gJ,yBAAyBx7J,QAG1C,CACDr/B,IAAK,MACLV,IAAK,WACH,OAAOgd,KAAKJ,MAAMgpC,aAAa,8BAG5Bq1I,EA1FoB,GA+FzBO,EAA0B,WAC5B,SAASA,EAAwB1pD,GA1VnC,IAAsBhzH,EAAMwyE,EA2VxBonG,EAAe17K,KAAMw+K,GACrBx+K,KAAK80H,KAAOA,EACZ90H,KAAK+M,QA7VajL,EA6VSgzH,EA7VHxgD,EAuVR,2DAtVC,iBAARxyE,IACTwyE,EAAWxyE,EACXA,EAAOslC,UAIF41I,EADQl7K,EAAKg5E,iBAAiBxG,KAuVaxjE,QAAO,SAAUlR,GAC/D,OAAOA,EAAMilH,MAAMj/H,UAuDvB,OAnDA+1L,EAAY6C,EAAyB,CAAC,CACpC96L,IAAK,QACLN,MAAO,SAAeoE,GACpB,IAAIuwC,EAAQ/3B,KAERs5C,EAAct5C,KAAKy+K,gCAsBvBz+K,KAAKsxF,SAAS,SApBY,SAASotF,IACjC,IAAI71J,EAAaywB,EAAY3vB,QAEzBd,EACFA,EAAWpgC,OAAM,SAAU44D,GACrBA,GACF75D,EAAS65D,GAETtpB,EAAMu5D,SAAS,QAEfotF,QAIJl3L,IAEAuwC,EAAMu5D,SAAS,QAKnBotF,KAED,CACDh7L,IAAK,gCACLN,MAAO,WACL,IAAIk2D,EAAc,GAOlB,OANAt5C,KAAK+M,OAAOiB,SAAQ,SAAUpO,GAC5Bo9K,EAAUp9K,EAAMilH,OAAO72G,SAAQ,SAAUizE,GACvC,IAAIp4D,EAAa,IAAIo1J,EAAuBr+K,EAAOqhF,GACnD3nC,EAAY5zC,KAAKmjB,SAGdywB,IAER,CACD51D,IAAK,WACLN,MAAO,SAAkBV,GACvB,IAAIkxG,EAAS1rG,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,GACjF,OAAO4lI,EAAc9tH,KAAK80H,KAAM,kBAAoBpyI,EAAM,CACxDkxG,OAAQA,QAIP4qF,EA5DqB,GA+D1BG,EAAsB,iCACtBC,EAAsB,IAAI9hH,QAC1B6lD,GAAU,EAEd,SAASl6H,IACFk6H,IACHA,GAAU,EACVv7E,SAAS1tB,iBAAiB,QAASmlK,GAAU,GAC7Cz3I,SAAS1tB,iBAAiB,SAAUolK,GACpC13I,SAAS1tB,iBAAiB,cAAeqlK,IAI7C,SAASF,EAAS97J,GAChB,IAAIr9B,EAASq9B,EAAMr9B,OAEI,SAAlBA,EAAOu7H,SAAwC,UAAlBv7H,EAAOu7H,SAAuC,UAAfv7H,EAAOqD,OAAoBrD,EAAOovI,MACjG8pD,EAAoBx+K,IAAI1a,EAAOovI,KAAMpvI,GAIzC,SAASo5L,EAAc/7J,GACrBi8J,EAA0Bj8J,GAG5B,SAASg8J,EAAuBh8J,GACF,QAAxBA,EAAMr9B,OAAOu7H,SACf+9D,EAA0Bj8J,GAI9B,SAASi8J,EAA0Bj8J,GACjC,IAAI+xG,EAAO/xG,EAAMr9B,OAEjB,GAAIovI,EAAK1V,aAAau/D,GACpB57J,EAAM2tE,qBADR,CAKA,IAAI7nE,EAAa,IAAI21J,EAAwB1pD,GACzC/nH,EAAS8b,EAAW9b,OAEpBA,EAAOnnB,SACTm9B,EAAM2tE,iBACNokC,EAAK5rF,aAAay1I,EAAqB,IACvC5xK,EAAOiB,QAAQ45E,GACf/+D,EAAWpgC,OAAM,SAAU44D,GACzByzE,EAAK7rF,gBAAgB01I,GAEjBt9H,EACFt0C,EAAOiB,QAAQm9I,GAQvB,SAAoBr2B,GAClB,IAAIniC,EAASisF,EAAoB57L,IAAI8xI,IAASgoD,EAAYhoD,EAAM,2CAEhE,GAAIniC,EAAQ,CACV,IACIjjE,EADUijE,EACSjjE,SACvBijE,EAAOjjE,UAAW,EAClBijE,EAAOkC,QACPlC,EAAOK,QACPL,EAAOjjE,SAAWA,OAElBijE,EAASvrD,SAAS6sC,cAAc,UACzBlrF,KAAO,SACd4pG,EAAOzvF,MAAMu7B,QAAU,OACvBq2F,EAAK5gD,YAAYye,GACjBA,EAAOK,QACP8hC,EAAK3gD,YAAYwe,GAGnBisF,EAAoBluK,OAAOokH,GAzBrBmqD,CAAWnqD,QA4BnB,SAASltC,EAAQhoF,GACfA,EAAM8vB,UAAW,EAGnB,SAASy7H,EAAOvrJ,GACdA,EAAM8vB,UAAW,EASnBwxB,YANA,WACM35D,OAAO23L,eACTz2L,MAIkB,GACtBxG,EAAQwG,MAAQA,EAChBxG,EAAQ67L,aAAeA,EACvBj7L,OAAOC,eAAeb,EAAS,aAAc,CAC3CmB,OAAO,KApoC6D,WAAtBgC,EAAQnD,IAA4C,qBAAXC,EAAyB4wF,EAAQ7wF,IAAwD,EAAO,CAAC,QAAmB,2BAAP,EAAF,GAAS,iC,gBCA/M,IAAMk9L,EAAWvY,MACjBuY,EAASp1L,OAAOikB,QAAQmxK,I,cCJxB,SAASC,EAAoBC,GAC5B,IAAI/4L,EAAI,IAAIkqB,MAAM,uBAAyB6uK,EAAM,KAEjD,MADA/4L,EAAEwtF,KAAO,mBACHxtF,EAEP84L,EAAoBr1L,KAAO,WAAa,MAAO,IAC/Cq1L,EAAoBtyK,QAAUsyK,EAC9Bl9L,EAAOD,QAAUm9L,EACjBA,EAAoBx2L,GAAK,I,gBCRzB,IAAI8B,EAAM,CACT,wBAAyB,GACzB,4BAA6B,GAC7B,+BAAgC,GAChC,mCAAoC,GACpC,+BAAgC,GAChC,mCAAoC,GACpC,+BAAgC,GAChC,mCAAoC,GACpC,+BAAgC,GAChC,mCAAoC,GACpC,+BAAgC,GAChC,mCAAoC,GACpC,+BAAgC,GAChC,mCAAoC,GACpC,+BAAgC,GAChC,mCAAoC,GACpC,+BAAgC,GAChC,mCAAoC,GACpC,+BAAgC,GAChC,mCAAoC,GACpC,sBAAuB,GACvB,0BAA2B,GAC3B,uBAAwB,GACxB,2BAA4B,GAC5B,oCAAqC,GACrC,wCAAyC,GACzC,oCAAqC,GACrC,wCAAyC,GACzC,oCAAqC,GACrC,wCAAyC,GACzC,oCAAqC,GACrC,wCAAyC,GACzC,oCAAqC,GACrC,wCAAyC,GACzC,oCAAqC,GACrC,wCAAyC,GACzC,oCAAqC,GACrC,wCAAyC,GACzC,oCAAqC,GACrC,wCAAyC,GACzC,oCAAqC,GACrC,wCAAyC,GACzC,4CAA6C,GAC7C,gDAAiD,GACjD,4CAA6C,GAC7C,gDAAiD,GACjD,4CAA6C,GAC7C,gDAAiD,GACjD,0BAA2B,GAC3B,+BAAgC,GAChC,0BAA2B,GAC3B,8BAA+B,GAC/B,0BAA2B,GAC3B,8BAA+B,GAC/B,0BAA2B,GAC3B,8BAA+B,IAIhC,SAAS40L,EAAeD,GACvB,IAAIz2L,EAAK22L,EAAsBF,GAC/B,OAAOt9L,EAAoB6G,GAE5B,SAAS22L,EAAsBF,GAC9B,IAAIt9L,EAAoBa,EAAE8H,EAAK20L,GAAM,CACpC,IAAI/4L,EAAI,IAAIkqB,MAAM,uBAAyB6uK,EAAM,KAEjD,MADA/4L,EAAEwtF,KAAO,mBACHxtF,EAEP,OAAOoE,EAAI20L,GAEZC,EAAev1L,KAAO,WACrB,OAAOlH,OAAOkH,KAAKW,IAEpB40L,EAAexyK,QAAUyyK,EACzBr9L,EAAOD,QAAUq9L,EACjBA,EAAe12L,GAAK,I,spEC7Eb,IAAI,EAAM,MACNggB,EAAS,SACTF,EAAQ,QACRD,EAAO,OACPm6I,EAAO,OACP48B,EAAiB,CAAC,EAAK52K,EAAQF,EAAOD,GACtChgB,EAAQ,QACRC,EAAM,MACN,EAAkB,kBAClB+2L,EAAW,WACX,EAAS,SACT,EAAY,YACZC,EAAmCF,EAAer8J,QAAO,SAAUC,EAAKu8J,GACjF,OAAOv8J,EAAI/iB,OAAO,CAACs/K,EAAY,IAAMl3L,EAAOk3L,EAAY,IAAMj3L,MAC7D,IACQ,EAA0B,GAAG2X,OAAOm/K,EAAgB,CAAC58B,IAAOz/H,QAAO,SAAUC,EAAKu8J,GAC3F,OAAOv8J,EAAI/iB,OAAO,CAACs/K,EAAWA,EAAY,IAAMl3L,EAAOk3L,EAAY,IAAMj3L,MACxE,IAEQk3L,EAAa,aACbzzK,EAAO,OACP0zK,EAAY,YAEZC,EAAa,aACbC,EAAO,OACPC,EAAY,YAEZC,EAAc,cACdvK,EAAQ,QACRwK,EAAa,aACbC,EAAiB,CAACP,EAAYzzK,EAAM0zK,EAAWC,EAAYC,EAAMC,EAAWC,EAAavK,EAAOwK,GC9B5F,SAASE,EAAYzpK,GAClC,OAAOA,GAAWA,EAAQojE,UAAY,IAAI36E,cAAgB,KCD7C,SAASgyI,EAAUzvI,GAChC,GAAY,MAARA,EACF,OAAOpa,OAGT,GAAwB,oBAApBoa,EAAK1a,WAAkC,CACzC,IAAIuzF,EAAgB74E,EAAK64E,cACzB,OAAOA,GAAgBA,EAAc6B,aAAwB90F,OAG/D,OAAOoa,ECRT,SAASiuG,EAAUjuG,GAEjB,OAAOA,aADUyvI,EAAUzvI,GAAM4nC,SACI5nC,aAAgB4nC,QAGvD,SAAS82I,EAAc1+K,GAErB,OAAOA,aADUyvI,EAAUzvI,GAAMyyG,aACIzyG,aAAgByyG,YAGvD,SAASksE,EAAa3+K,GAEpB,MAA0B,qBAAf4+K,aAKJ5+K,aADUyvI,EAAUzvI,GAAM4+K,YACI5+K,aAAgB4+K,YCyDxC,OACb79L,KAAM,cACN0oD,SAAS,EACTo1I,MAAO,QACP74L,GA5EF,SAAqB80B,GACnB,IAAI6rE,EAAQ7rE,EAAK6rE,MACjBzlG,OAAOkH,KAAKu+F,EAAMzlF,UAAUmL,SAAQ,SAAUtrB,GAC5C,IAAIwgB,EAAQolF,EAAMxxE,OAAOp0B,IAAS,GAC9Bu1F,EAAaqQ,EAAMrQ,WAAWv1F,IAAS,GACvCi0B,EAAU2xE,EAAMzlF,SAASngB,GAExB29L,EAAc1pK,IAAaypK,EAAYzpK,KAO5C9zB,OAAO6c,OAAOiX,EAAQzT,MAAOA,GAC7BrgB,OAAOkH,KAAKkuF,GAAYjqE,SAAQ,SAAUtrB,GACxC,IAAIU,EAAQ60F,EAAWv1F,IAET,IAAVU,EACFuzB,EAAQsyB,gBAAgBvmD,GAExBi0B,EAAQuyB,aAAaxmD,GAAgB,IAAVU,EAAiB,GAAKA,WAwDvD67I,OAlDF,SAAgBhuG,GACd,IAAIq3D,EAAQr3D,EAAMq3D,MACdm4F,EAAgB,CAClBC,OAAQ,CACNngJ,SAAU+nD,EAAMt9F,QAAQ21L,SACxBl4K,KAAM,IACNE,IAAK,IACLH,OAAQ,KAEVo4K,MAAO,CACLrgJ,SAAU,YAEZsgJ,UAAW,IASb,OAPAh+L,OAAO6c,OAAO4oF,EAAMzlF,SAAS69K,OAAOx9K,MAAOu9K,EAAcC,QACzDp4F,EAAMxxE,OAAS2pK,EAEXn4F,EAAMzlF,SAAS+9K,OACjB/9L,OAAO6c,OAAO4oF,EAAMzlF,SAAS+9K,MAAM19K,MAAOu9K,EAAcG,OAGnD,WACL/9L,OAAOkH,KAAKu+F,EAAMzlF,UAAUmL,SAAQ,SAAUtrB,GAC5C,IAAIi0B,EAAU2xE,EAAMzlF,SAASngB,GACzBu1F,EAAaqQ,EAAMrQ,WAAWv1F,IAAS,GAGvCwgB,EAFkBrgB,OAAOkH,KAAKu+F,EAAMxxE,OAAO9yB,eAAetB,GAAQ4lG,EAAMxxE,OAAOp0B,GAAQ+9L,EAAc/9L,IAE7EygC,QAAO,SAAUjgB,EAAOpf,GAElD,OADAof,EAAMpf,GAAY,GACXof,IACN,IAEEm9K,EAAc1pK,IAAaypK,EAAYzpK,KAI5C9zB,OAAO6c,OAAOiX,EAAQzT,MAAOA,GAC7BrgB,OAAOkH,KAAKkuF,GAAYjqE,SAAQ,SAAUg2G,GACxCrtG,EAAQsyB,gBAAgB+6E,YAa9B88D,SAAU,CAAC,kBCjFE,SAASC,EAAiBpB,GACvC,OAAOA,EAAU/9K,MAAM,KAAK,GCFf,SAASmW,EAAsBpB,GAC5C,IAAI1O,EAAO0O,EAAQoB,wBACnB,MAAO,CACLtS,MAAOwC,EAAKxC,MACZsB,OAAQkB,EAAKlB,OACb4B,IAAKV,EAAKU,IACVD,MAAOT,EAAKS,MACZE,OAAQX,EAAKW,OACbH,KAAMR,EAAKQ,KACXhb,EAAGwa,EAAKQ,KACR/a,EAAGua,EAAKU,KCPG,SAASq4K,EAAcrqK,GACpC,IAAIsqK,EAAalpK,EAAsBpB,GAGnClR,EAAQkR,EAAQkiF,YAChB9xF,EAAS4P,EAAQgjF,aAUrB,OARIxtG,KAAKyB,IAAIqzL,EAAWx7K,MAAQA,IAAU,IACxCA,EAAQw7K,EAAWx7K,OAGjBtZ,KAAKyB,IAAIqzL,EAAWl6K,OAASA,IAAW,IAC1CA,EAASk6K,EAAWl6K,QAGf,CACLtZ,EAAGkpB,EAAQ48B,WACX7lD,EAAGipB,EAAQ67G,UACX/sH,MAAOA,EACPsB,OAAQA,GCrBG,SAASowE,EAASnlE,EAAQkgG,GACvC,IAAIgvE,EAAWhvE,EAAMrlB,aAAeqlB,EAAMrlB,cAE1C,GAAI76E,EAAOmlE,SAAS+6B,GAClB,OAAO,EAEJ,GAAIgvE,GAAYZ,EAAaY,GAAW,CACzC,IAAIr6L,EAAOqrH,EAEX,EAAG,CACD,GAAIrrH,GAAQmrB,EAAOmvK,WAAWt6L,GAC5B,OAAO,EAITA,EAAOA,EAAKuvB,YAAcvvB,EAAKwvB,WACxBxvB,GAIb,OAAO,ECpBM,SAAS,EAAiB8vB,GACvC,OAAOy6H,EAAUz6H,GAASD,iBAAiBC,GCD9B,SAASyqK,EAAezqK,GACrC,MAAO,CAAC,QAAS,KAAM,MAAM7rB,QAAQs1L,EAAYzpK,KAAa,ECDjD,SAAS0qK,EAAmB1qK,GAEzC,QAASi5F,EAAUj5F,GAAWA,EAAQ6jE,cACtC7jE,EAAQywB,WAAa7/C,OAAO6/C,UAAU80C,gBCDzB,SAASolG,EAAc3qK,GACpC,MAA6B,SAAzBypK,EAAYzpK,GACPA,EAMPA,EAAQ0iI,cACR1iI,EAAQP,aACRkqK,EAAa3pK,GAAWA,EAAQN,KAAO,OAEvCgrK,EAAmB1qK,GCRvB,SAAS4qK,EAAoB5qK,GAC3B,OAAK0pK,EAAc1pK,IACoB,UAAvC,EAAiBA,GAAS4pB,SAInB5pB,EAAQ+0F,aAHN,KAwCI,SAAS81E,EAAgB7qK,GAItC,IAHA,IAAIpvB,EAAS6pJ,EAAUz6H,GACnB+0F,EAAe61E,EAAoB5qK,GAEhC+0F,GAAgB01E,EAAe11E,IAA6D,WAA5C,EAAiBA,GAAcnrE,UACpFmrE,EAAe61E,EAAoB71E,GAGrC,OAAIA,IAA+C,SAA9B00E,EAAY10E,IAA0D,SAA9B00E,EAAY10E,IAAwE,WAA5C,EAAiBA,GAAcnrE,UAC3Hh5C,EAGFmkH,GA5CT,SAA4B/0F,GAC1B,IAAI8qK,GAAsE,IAA1DjhE,UAAUC,UAAUrhH,cAActU,QAAQ,WAG1D,IAFuD,IAA5C01H,UAAUC,UAAU31H,QAAQ,YAE3Bu1L,EAAc1pK,IAII,UAFX,EAAiBA,GAEnB4pB,SACb,OAAO,KAMX,IAFA,IAAImhJ,EAAcJ,EAAc3qK,GAEzB0pK,EAAcqB,IAAgB,CAAC,OAAQ,QAAQ52L,QAAQs1L,EAAYsB,IAAgB,GAAG,CAC3F,IAAI30F,EAAM,EAAiB20F,GAI3B,GAAsB,SAAlB30F,EAAIs+B,WAA4C,SAApBt+B,EAAI40F,aAA0C,UAAhB50F,EAAI60F,UAAiF,IAA1D,CAAC,YAAa,eAAe92L,QAAQiiG,EAAI80F,aAAsBJ,GAAgC,WAAnB10F,EAAI80F,YAA2BJ,GAAa10F,EAAIj8E,QAAyB,SAAfi8E,EAAIj8E,OACjO,OAAO4wK,EAEPA,EAAcA,EAAYtrK,WAI9B,OAAO,KAiBgB0rK,CAAmBnrK,IAAYpvB,EC9DzC,SAASw6L,EAAyBpC,GAC/C,MAAO,CAAC,MAAO,UAAU70L,QAAQ60L,IAAc,EAAI,IAAM,ICDpD,IAAI,EAAMxzL,KAAK6B,IACX,EAAM7B,KAAK4B,IACXd,EAAQd,KAAKc,MCDT,SAAS+0L,EAAOj0L,EAAK3K,EAAO4K,GACzC,OAAO,EAAQD,EAAK,EAAQ3K,EAAO4K,ICDtB,SAASi0L,EAAmBC,GACzC,OAAOr/L,OAAO6c,OAAO,GCDd,CACLiJ,IAAK,EACLD,MAAO,EACPE,OAAQ,EACRH,KAAM,GDHuCy5K,GEFlC,SAASC,EAAgB/+L,EAAO2G,GAC7C,OAAOA,EAAKo5B,QAAO,SAAUi/J,EAAS1+L,GAEpC,OADA0+L,EAAQ1+L,GAAON,EACRg/L,IACN,ICwFU,OACb1/L,KAAM,QACN0oD,SAAS,EACTo1I,MAAO,OACP74L,GA9EF,SAAe80B,GACb,IAAI4lK,EAEA/5F,EAAQ7rE,EAAK6rE,MACb5lG,EAAO+5B,EAAK/5B,KACZsI,EAAUyxB,EAAKzxB,QACfs3L,EAAeh6F,EAAMzlF,SAAS+9K,MAC9B2B,EAAgBj6F,EAAMk6F,cAAcD,cACpCE,EAAgB1B,EAAiBz4F,EAAMq3F,WACvCx2J,EAAO44J,EAAyBU,GAEhCr7L,EADa,CAACqhB,EAAMC,GAAO5d,QAAQ23L,IAAkB,EAClC,SAAW,QAElC,GAAKH,GAAiBC,EAAtB,CAIA,IAAIL,EAxBgB,SAAyBl+I,EAASskD,GAItD,OAAO25F,EAAsC,kBAH7Cj+I,EAA6B,oBAAZA,EAAyBA,EAAQnhD,OAAO6c,OAAO,GAAI4oF,EAAM3xD,MAAO,CAC/EgpJ,UAAWr3F,EAAMq3F,aACb37I,GACkDA,EAAUm+I,EAAgBn+I,EAASw7I,IAoBvE,CAAgBx0L,EAAQg5C,QAASskD,GACjDo6F,EAAY1B,EAAcsB,GAC1BK,EAAmB,MAATx5J,EAAe,EAAM1gB,EAC/Bm6K,EAAmB,MAATz5J,EAAevgB,EAASF,EAClCm6K,EAAUv6F,EAAM3xD,MAAMkqJ,UAAUz5L,GAAOkhG,EAAM3xD,MAAMkqJ,UAAU13J,GAAQo5J,EAAcp5J,GAAQm/D,EAAM3xD,MAAM+pJ,OAAOt5L,GAC9G07L,EAAYP,EAAcp5J,GAAQm/D,EAAM3xD,MAAMkqJ,UAAU13J,GACxD45J,EAAoBvB,EAAgBc,GACpCU,EAAaD,EAA6B,MAAT55J,EAAe45J,EAAkBhqK,cAAgB,EAAIgqK,EAAkBjqK,aAAe,EAAI,EAC3HmqK,EAAoBJ,EAAU,EAAIC,EAAY,EAG9C/0L,EAAMm0L,EAAcS,GACpB30L,EAAMg1L,EAAaN,EAAUt7L,GAAO86L,EAAcU,GAClDluJ,EAASsuJ,EAAa,EAAIN,EAAUt7L,GAAO,EAAI67L,EAC/CpsJ,EAASmrJ,EAAOj0L,EAAK2mC,EAAQ1mC,GAE7Bk1L,EAAW/5J,EACfm/D,EAAMk6F,cAAc9/L,KAAS2/L,EAAwB,IAA0Ba,GAAYrsJ,EAAQwrJ,EAAsBc,aAAetsJ,EAASnC,EAAQ2tJ,KA6CzJpjD,OA1CF,SAAgBhuG,GACd,IAAIq3D,EAAQr3D,EAAMq3D,MAEd86F,EADUnyJ,EAAMjmC,QACW2rB,QAC3B2rK,OAAoC,IAArBc,EAA8B,sBAAwBA,EAErD,MAAhBd,IAKwB,kBAAjBA,IACTA,EAAeh6F,EAAMzlF,SAAS69K,OAAOhzE,cAAc40E,MAahDnrG,EAASmR,EAAMzlF,SAAS69K,OAAQ4B,KAQrCh6F,EAAMzlF,SAAS+9K,MAAQ0B,IAUvBxB,SAAU,CAAC,iBACXuC,iBAAkB,CAAC,oBC3FjBC,EAAa,CACf36K,IAAK,OACLD,MAAO,OACPE,OAAQ,OACRH,KAAM,QAgBD,SAAS86K,EAAYtyJ,GAC1B,IAAIuyJ,EAEA9C,EAASzvJ,EAAMyvJ,OACf+C,EAAaxyJ,EAAMwyJ,WACnB9D,EAAY1uJ,EAAM0uJ,UAClB/uG,EAAU3/C,EAAM2/C,QAChBrwC,EAAWtP,EAAMsP,SACjBmjJ,EAAkBzyJ,EAAMyyJ,gBACxBC,EAAW1yJ,EAAM0yJ,SACjBC,EAAe3yJ,EAAM2yJ,aAErB3d,GAAyB,IAAjB2d,EAvBd,SAA2BnnK,GACzB,IAAIhvB,EAAIgvB,EAAKhvB,EACTC,EAAI+uB,EAAK/uB,EAETk6C,EADMrgD,OACIib,kBAAoB,EAClC,MAAO,CACL/U,EAAGR,EAAMA,EAAMQ,EAAIm6C,GAAOA,IAAQ,EAClCl6C,EAAGT,EAAMA,EAAMS,EAAIk6C,GAAOA,IAAQ,GAgBAi8I,CAAkBjzG,GAAmC,oBAAjBgzG,EAA8BA,EAAahzG,GAAWA,EAC1HkzG,EAAU7d,EAAMx4K,EAChBA,OAAgB,IAAZq2L,EAAqB,EAAIA,EAC7BC,EAAU9d,EAAMv4K,EAChBA,OAAgB,IAAZq2L,EAAqB,EAAIA,EAE7BC,EAAOpzG,EAAQ5sF,eAAe,KAC9BigM,EAAOrzG,EAAQ5sF,eAAe,KAC9BkgM,EAAQz7K,EACR07K,EAAQ,EACR54E,EAAMhkH,OAEV,GAAIo8L,EAAU,CACZ,IAAIj4E,EAAe81E,EAAgBd,GAC/B0D,EAAa,eACbC,EAAY,cAEZ34E,IAAiB0lC,EAAUsvC,IAGmB,WAA5C,EAFJh1E,EAAe21E,EAAmBX,IAECngJ,WACjC6jJ,EAAa,eACbC,EAAY,eAKhB34E,EAAeA,EAEXi0E,IAAc,IAChBwE,EAAQv7K,EAERlb,GAAKg+G,EAAa04E,GAAcX,EAAW18K,OAC3CrZ,GAAKg2L,EAAkB,GAAK,GAG1B/D,IAAcl3K,IAChBy7K,EAAQx7K,EAERjb,GAAKi+G,EAAa24E,GAAaZ,EAAWh+K,MAC1ChY,GAAKi2L,EAAkB,GAAK,GAIhC,IAKMY,EALFC,EAAe1hM,OAAO6c,OAAO,CAC/B6gC,SAAUA,GACTojJ,GAAYL,GAEf,OAAII,EAGK7gM,OAAO6c,OAAO,GAAI6kL,IAAeD,EAAiB,IAAmBH,GAASF,EAAO,IAAM,GAAIK,EAAeJ,GAASF,EAAO,IAAM,GAAIM,EAAej5D,WAAa9f,EAAI/oG,kBAAoB,GAAK,EAAI,aAAe/U,EAAI,OAASC,EAAI,MAAQ,eAAiBD,EAAI,OAASC,EAAI,SAAU42L,IAG3RzhM,OAAO6c,OAAO,GAAI6kL,IAAef,EAAkB,IAAoBW,GAASF,EAAOv2L,EAAI,KAAO,GAAI81L,EAAgBU,GAASF,EAAOv2L,EAAI,KAAO,GAAI+1L,EAAgBn4D,UAAY,GAAIm4D,IAsD/K,QACb9gM,KAAM,gBACN0oD,SAAS,EACTo1I,MAAO,cACP74L,GAvDF,SAAuB69D,GACrB,IAAI8iC,EAAQ9iC,EAAM8iC,MACdt9F,EAAUw6D,EAAMx6D,QAChBw5L,EAAwBx5L,EAAQ04L,gBAChCA,OAA4C,IAA1Bc,GAA0CA,EAC5DC,EAAoBz5L,EAAQ24L,SAC5BA,OAAiC,IAAtBc,GAAsCA,EACjDC,EAAwB15L,EAAQ44L,aAChCA,OAAyC,IAA1Bc,GAA0CA,EAYzDH,EAAe,CACjB5E,UAAWoB,EAAiBz4F,EAAMq3F,WAClCe,OAAQp4F,EAAMzlF,SAAS69K,OACvB+C,WAAYn7F,EAAM3xD,MAAM+pJ,OACxBgD,gBAAiBA,GAGsB,MAArCp7F,EAAMk6F,cAAcD,gBACtBj6F,EAAMxxE,OAAO4pK,OAAS79L,OAAO6c,OAAO,GAAI4oF,EAAMxxE,OAAO4pK,OAAQ6C,EAAY1gM,OAAO6c,OAAO,GAAI6kL,EAAc,CACvG3zG,QAAS0X,EAAMk6F,cAAcD,cAC7BhiJ,SAAU+nD,EAAMt9F,QAAQ21L,SACxBgD,SAAUA,EACVC,aAAcA,OAIe,MAA7Bt7F,EAAMk6F,cAAc5B,QACtBt4F,EAAMxxE,OAAO8pK,MAAQ/9L,OAAO6c,OAAO,GAAI4oF,EAAMxxE,OAAO8pK,MAAO2C,EAAY1gM,OAAO6c,OAAO,GAAI6kL,EAAc,CACrG3zG,QAAS0X,EAAMk6F,cAAc5B,MAC7BrgJ,SAAU,WACVojJ,UAAU,EACVC,aAAcA,OAIlBt7F,EAAMrQ,WAAWyoG,OAAS79L,OAAO6c,OAAO,GAAI4oF,EAAMrQ,WAAWyoG,OAAQ,CACnE,wBAAyBp4F,EAAMq3F,aAUjCx6K,KAAM,ICvJJwhC,GAAU,CACZA,SAAS,GAsCI,QACbjkD,KAAM,iBACN0oD,SAAS,EACTo1I,MAAO,QACP74L,GAAI,aACJs3I,OAxCF,SAAgBxiH,GACd,IAAI6rE,EAAQ7rE,EAAK6rE,MACb/iG,EAAWk3B,EAAKl3B,SAChByF,EAAUyxB,EAAKzxB,QACf25L,EAAkB35L,EAAQy5K,OAC1BA,OAA6B,IAApBkgB,GAAoCA,EAC7CC,EAAkB55L,EAAQ06B,OAC1BA,OAA6B,IAApBk/J,GAAoCA,EAC7Cr9L,EAAS6pJ,EAAU9oD,EAAMzlF,SAAS69K,QAClCmE,EAAgB,GAAGxkL,OAAOioF,EAAMu8F,cAAchE,UAAWv4F,EAAMu8F,cAAcnE,QAYjF,OAVIjc,GACFogB,EAAc72K,SAAQ,SAAU82K,GAC9BA,EAAaprK,iBAAiB,SAAUn0B,EAAS4hC,OAAQwf,OAIzDjhB,GACFn+B,EAAOmyB,iBAAiB,SAAUn0B,EAAS4hC,OAAQwf,IAG9C,WACD89H,GACFogB,EAAc72K,SAAQ,SAAU82K,GAC9BA,EAAanrK,oBAAoB,SAAUp0B,EAAS4hC,OAAQwf,OAI5DjhB,GACFn+B,EAAOoyB,oBAAoB,SAAUp0B,EAAS4hC,OAAQwf,MAY1DxhC,KAAM,IC/CJk7E,GAAO,CACT53E,KAAM,QACNC,MAAO,OACPE,OAAQ,MACRD,IAAK,UAEQ,SAASo8K,GAAqBpF,GAC3C,OAAOA,EAAU3gL,QAAQ,0BAA0B,SAAUghF,GAC3D,OAAOK,GAAKL,MCRhB,IAAI,GAAO,CACTv3F,MAAO,MACPC,IAAK,SAEQ,SAASs8L,GAA8BrF,GACpD,OAAOA,EAAU3gL,QAAQ,cAAc,SAAUghF,GAC/C,OAAO,GAAKA,MCLD,SAASilG,GAAgBtjL,GACtC,IAAI4pG,EAAM6lC,EAAUzvI,GAGpB,MAAO,CACLo6F,WAHewP,EAAIE,YAInB3P,UAHcyP,EAAIC,aCDP,SAAS05E,GAAoBvuK,GAQ1C,OAAOoB,EAAsBspK,EAAmB1qK,IAAUlO,KAAOw8K,GAAgBtuK,GAASolF,WCV7E,SAASopF,GAAexuK,GAErC,IAAIyuK,EAAoB,EAAiBzuK,GACrCknF,EAAWunF,EAAkBvnF,SAC7BC,EAAYsnF,EAAkBtnF,UAC9BC,EAAYqnF,EAAkBrnF,UAElC,MAAO,6BAA6B52G,KAAK02G,EAAWE,EAAYD,GCJnD,SAASunF,GAAgB1jL,GACtC,MAAI,CAAC,OAAQ,OAAQ,aAAa7W,QAAQs1L,EAAYz+K,KAAU,EAEvDA,EAAK64E,cAAc9c,KAGxB2iH,EAAc1+K,IAASwjL,GAAexjL,GACjCA,EAGF0jL,GAAgB/D,EAAc3/K,ICHxB,SAAS2jL,GAAkB3uK,EAASkhE,GACjD,IAAI0tG,OAES,IAAT1tG,IACFA,EAAO,IAGT,IAAIitG,EAAeO,GAAgB1uK,GAC/B6uK,EAASV,KAAqE,OAAlDS,EAAwB5uK,EAAQ6jE,oBAAyB,EAAS+qG,EAAsB7nH,MACpH6tC,EAAM6lC,EAAU0zC,GAChBp/L,EAAS8/L,EAAS,CAACj6E,GAAKlrG,OAAOkrG,EAAIk6E,gBAAkB,GAAIN,GAAeL,GAAgBA,EAAe,IAAMA,EAC7GY,EAAc7tG,EAAKx3E,OAAO3a,GAC9B,OAAO8/L,EAASE,EAChBA,EAAYrlL,OAAOilL,GAAkBhE,EAAc57L,KCxBtC,SAASigM,GAAiB19K,GACvC,OAAOplB,OAAO6c,OAAO,GAAIuI,EAAM,CAC7BQ,KAAMR,EAAKxa,EACXkb,IAAKV,EAAKva,EACVgb,MAAOT,EAAKxa,EAAIwa,EAAKxC,MACrBmD,OAAQX,EAAKva,EAAIua,EAAKlB,SCuB1B,SAAS6+K,GAA2BjvK,EAASkvK,GAC3C,OAAOA,IAAmBpG,EAAWkG,GC1BxB,SAAyBhvK,GACtC,IAAI40F,EAAM6lC,EAAUz6H,GAChBw/E,EAAOkrF,EAAmB1qK,GAC1B8uK,EAAiBl6E,EAAIk6E,eACrBhgL,EAAQ0wF,EAAKr9E,YACb/R,EAASovF,EAAKp9E,aACdtrB,EAAI,EACJC,EAAI,EAuBR,OAjBI+3L,IACFhgL,EAAQggL,EAAehgL,MACvBsB,EAAS0+K,EAAe1+K,OASnB,iCAAiC5f,KAAKq5H,UAAUC,aACnDhzH,EAAIg4L,EAAelyI,WACnB7lD,EAAI+3L,EAAejzD,YAIhB,CACL/sH,MAAOA,EACPsB,OAAQA,EACRtZ,EAAGA,EAAIy3L,GAAoBvuK,GAC3BjpB,EAAGA,GDRiDo4L,CAAgBnvK,IAAY0pK,EAAcwF,GAdlG,SAAoClvK,GAClC,IAAI1O,EAAO8P,EAAsBpB,GASjC,OARA1O,EAAKU,IAAMV,EAAKU,IAAMgO,EAAQ28H,UAC9BrrI,EAAKQ,KAAOR,EAAKQ,KAAOkO,EAAQ48H,WAChCtrI,EAAKW,OAASX,EAAKU,IAAMgO,EAAQoC,aACjC9Q,EAAKS,MAAQT,EAAKQ,KAAOkO,EAAQmC,YACjC7Q,EAAKxC,MAAQkR,EAAQmC,YACrB7Q,EAAKlB,OAAS4P,EAAQoC,aACtB9Q,EAAKxa,EAAIwa,EAAKQ,KACdR,EAAKva,EAAIua,EAAKU,IACPV,EAI2G89K,CAA2BF,GAAkBF,GEtBlJ,SAAyBhvK,GACtC,IAAI4uK,EAEApvF,EAAOkrF,EAAmB1qK,GAC1BqvK,EAAYf,GAAgBtuK,GAC5B+mD,EAA0D,OAAlD6nH,EAAwB5uK,EAAQ6jE,oBAAyB,EAAS+qG,EAAsB7nH,KAChGj4D,EAAQ,EAAI0wF,EAAKo+D,YAAap+D,EAAKr9E,YAAa4kD,EAAOA,EAAK62F,YAAc,EAAG72F,EAAOA,EAAK5kD,YAAc,GACvG/R,EAAS,EAAIovF,EAAK4c,aAAc5c,EAAKp9E,aAAc2kD,EAAOA,EAAKq1C,aAAe,EAAGr1C,EAAOA,EAAK3kD,aAAe,GAC5GtrB,GAAKu4L,EAAUjqF,WAAampF,GAAoBvuK,GAChDjpB,GAAKs4L,EAAUlqF,UAMnB,MAJiD,QAA7C,EAAiBp+B,GAAQy4B,GAAMr6E,YACjCruB,GAAK,EAAI0oG,EAAKr9E,YAAa4kD,EAAOA,EAAK5kD,YAAc,GAAKrT,GAGrD,CACLA,MAAOA,EACPsB,OAAQA,EACRtZ,EAAGA,EACHC,EAAGA,GFG2Ku4L,CAAgB5E,EAAmB1qK,KAuBtM,SAASuvK,GAAgBvvK,EAASu9C,EAAUiyH,GACzD,IAAIC,EAAmC,oBAAblyH,EAlB5B,SAA4Bv9C,GAC1B,IAAI0vK,EAAkBf,GAAkBhE,EAAc3qK,IAElD2vK,EADoB,CAAC,WAAY,SAASx7L,QAAQ,EAAiB6rB,GAAS4pB,WAAa,GACnD8/I,EAAc1pK,GAAW6qK,EAAgB7qK,GAAWA,EAE9F,OAAKi5F,EAAU02E,GAKRD,EAAgBv1K,QAAO,SAAU+0K,GACtC,OAAOj2E,EAAUi2E,IAAmB1uG,EAAS0uG,EAAgBS,IAAmD,SAAhClG,EAAYyF,MALrF,GAYkDU,CAAmB5vK,GAAW,GAAGtW,OAAO6zD,GAC/FmyH,EAAkB,GAAGhmL,OAAO+lL,EAAqB,CAACD,IAClDK,EAAsBH,EAAgB,GACtCI,EAAeJ,EAAgBljK,QAAO,SAAUujK,EAASb,GAC3D,IAAI59K,EAAO29K,GAA2BjvK,EAASkvK,GAK/C,OAJAa,EAAQ/9K,IAAM,EAAIV,EAAKU,IAAK+9K,EAAQ/9K,KACpC+9K,EAAQh+K,MAAQ,EAAIT,EAAKS,MAAOg+K,EAAQh+K,OACxCg+K,EAAQ99K,OAAS,EAAIX,EAAKW,OAAQ89K,EAAQ99K,QAC1C89K,EAAQj+K,KAAO,EAAIR,EAAKQ,KAAMi+K,EAAQj+K,MAC/Bi+K,IACNd,GAA2BjvK,EAAS6vK,IAKvC,OAJAC,EAAahhL,MAAQghL,EAAa/9K,MAAQ+9K,EAAah+K,KACvDg+K,EAAa1/K,OAAS0/K,EAAa79K,OAAS69K,EAAa99K,IACzD89K,EAAah5L,EAAIg5L,EAAah+K,KAC9Bg+K,EAAa/4L,EAAI+4L,EAAa99K,IACvB89K,EGpEM,SAASE,GAAahH,GACnC,OAAOA,EAAU/9K,MAAM,KAAK,GCGf,SAASglL,GAAenqK,GACrC,IAOIm0D,EAPAiwG,EAAYpkK,EAAKokK,UACjBlqK,EAAU8F,EAAK9F,QACfgpK,EAAYljK,EAAKkjK,UACjB8C,EAAgB9C,EAAYoB,EAAiBpB,GAAa,KAC1DkH,EAAYlH,EAAYgH,GAAahH,GAAa,KAClDmH,EAAUjG,EAAUpzL,EAAIozL,EAAUp7K,MAAQ,EAAIkR,EAAQlR,MAAQ,EAC9DshL,EAAUlG,EAAUnzL,EAAImzL,EAAU95K,OAAS,EAAI4P,EAAQ5P,OAAS,EAGpE,OAAQ07K,GACN,KAAK,EACH7xG,EAAU,CACRnjF,EAAGq5L,EACHp5L,EAAGmzL,EAAUnzL,EAAIipB,EAAQ5P,QAE3B,MAEF,KAAK6B,EACHgoE,EAAU,CACRnjF,EAAGq5L,EACHp5L,EAAGmzL,EAAUnzL,EAAImzL,EAAU95K,QAE7B,MAEF,KAAK2B,EACHkoE,EAAU,CACRnjF,EAAGozL,EAAUpzL,EAAIozL,EAAUp7K,MAC3B/X,EAAGq5L,GAEL,MAEF,KAAKt+K,EACHmoE,EAAU,CACRnjF,EAAGozL,EAAUpzL,EAAIkpB,EAAQlR,MACzB/X,EAAGq5L,GAEL,MAEF,QACEn2G,EAAU,CACRnjF,EAAGozL,EAAUpzL,EACbC,EAAGmzL,EAAUnzL,GAInB,IAAIs5L,EAAWvE,EAAgBV,EAAyBU,GAAiB,KAEzE,GAAgB,MAAZuE,EAAkB,CACpB,IAAI5/L,EAAmB,MAAb4/L,EAAmB,SAAW,QAExC,OAAQH,GACN,KAAKp+L,EACHmoF,EAAQo2G,GAAYp2G,EAAQo2G,IAAanG,EAAUz5L,GAAO,EAAIuvB,EAAQvvB,GAAO,GAC7E,MAEF,KAAKsB,EACHkoF,EAAQo2G,GAAYp2G,EAAQo2G,IAAanG,EAAUz5L,GAAO,EAAIuvB,EAAQvvB,GAAO,IAOnF,OAAOwpF,EC1DM,SAASq2G,GAAe3+F,EAAOt9F,QAC5B,IAAZA,IACFA,EAAU,IAGZ,IAAIq1D,EAAWr1D,EACXk8L,EAAqB7mI,EAASs/H,UAC9BA,OAAmC,IAAvBuH,EAAgC5+F,EAAMq3F,UAAYuH,EAC9DC,EAAoB9mI,EAAS6T,SAC7BA,OAAiC,IAAtBizH,EAA+B,EAAkBA,EAC5DC,EAAwB/mI,EAAS8lI,aACjCA,OAAyC,IAA1BiB,EAAmC3H,EAAW2H,EAC7DC,EAAwBhnI,EAASinI,eACjCA,OAA2C,IAA1BD,EAAmC,EAASA,EAC7DE,EAAuBlnI,EAASmnI,YAChCA,OAAuC,IAAzBD,GAA0CA,EACxDE,EAAmBpnI,EAASrc,QAC5BA,OAA+B,IAArByjJ,EAA8B,EAAIA,EAC5CvF,EAAgBD,EAAsC,kBAAZj+I,EAAuBA,EAAUm+I,EAAgBn+I,EAASw7I,IACpGkI,EAAaJ,IAAmB,EAAS,EAAY,EACrDK,EAAmBr/F,EAAMzlF,SAASg+K,UAClC4C,EAAan7F,EAAM3xD,MAAM+pJ,OACzB/pK,EAAU2xE,EAAMzlF,SAAS2kL,EAAcE,EAAaJ,GACpDM,EAAqB1B,GAAgBt2E,EAAUj5F,GAAWA,EAAUA,EAAQkxK,gBAAkBxG,EAAmB/4F,EAAMzlF,SAAS69K,QAASxsH,EAAUiyH,GACnJ2B,EAAsB/vK,EAAsB4vK,GAC5CpF,EAAgBqE,GAAe,CACjC/F,UAAWiH,EACXnxK,QAAS8sK,EACT9C,SAAU,WACVhB,UAAWA,IAEToI,EAAmBpC,GAAiB9iM,OAAO6c,OAAO,GAAI+jL,EAAYlB,IAClEyF,EAAoBV,IAAmB,EAASS,EAAmBD,EAGnEG,EAAkB,CACpBt/K,IAAKi/K,EAAmBj/K,IAAMq/K,EAAkBr/K,IAAMu5K,EAAcv5K,IACpEC,OAAQo/K,EAAkBp/K,OAASg/K,EAAmBh/K,OAASs5K,EAAct5K,OAC7EH,KAAMm/K,EAAmBn/K,KAAOu/K,EAAkBv/K,KAAOy5K,EAAcz5K,KACvEC,MAAOs/K,EAAkBt/K,MAAQk/K,EAAmBl/K,MAAQw5K,EAAcx5K,OAExEw/K,EAAa5/F,EAAMk6F,cAAc3rJ,OAErC,GAAIywJ,IAAmB,GAAUY,EAAY,CAC3C,IAAIrxJ,EAASqxJ,EAAWvI,GACxB98L,OAAOkH,KAAKk+L,GAAiBj6K,SAAQ,SAAUtqB,GAC7C,IAAIykM,EAAW,CAACz/K,EAAOE,GAAQ9d,QAAQpH,IAAQ,EAAI,GAAK,EACpDylC,EAAO,CAAC,EAAKvgB,GAAQ9d,QAAQpH,IAAQ,EAAI,IAAM,IACnDukM,EAAgBvkM,IAAQmzC,EAAO1N,GAAQg/J,KAI3C,OAAOF,EC2EM,QACbvlM,KAAM,OACN0oD,SAAS,EACTo1I,MAAO,OACP74L,GA5HF,SAAc80B,GACZ,IAAI6rE,EAAQ7rE,EAAK6rE,MACbt9F,EAAUyxB,EAAKzxB,QACftI,EAAO+5B,EAAK/5B,KAEhB,IAAI4lG,EAAMk6F,cAAc9/L,GAAMwsC,MAA9B,CAoCA,IAhCA,IAAIk5J,EAAoBp9L,EAAQg8L,SAC5BqB,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBt9L,EAAQu9L,QAC3BC,OAAoC,IAArBF,GAAqCA,EACpDG,EAA8Bz9L,EAAQ09L,mBACtC1kJ,EAAUh5C,EAAQg5C,QAClBkwB,EAAWlpE,EAAQkpE,SACnBiyH,EAAen7L,EAAQm7L,aACvBqB,EAAcx8L,EAAQw8L,YACtBmB,EAAwB39L,EAAQ49L,eAChCA,OAA2C,IAA1BD,GAA0CA,EAC3DE,EAAwB79L,EAAQ69L,sBAChCC,EAAqBxgG,EAAMt9F,QAAQ20L,UACnC8C,EAAgB1B,EAAiB+H,GAEjCJ,EAAqBD,IADHhG,IAAkBqG,IACqCF,EAAiB,CAAC7D,GAAqB+D,IAjCtH,SAAuCnJ,GACrC,GAAIoB,EAAiBpB,KAAe/8B,EAClC,MAAO,GAGT,IAAImmC,EAAoBhE,GAAqBpF,GAC7C,MAAO,CAACqF,GAA8BrF,GAAYoJ,EAAmB/D,GAA8B+D,IA2BwCC,CAA8BF,IACrKG,EAAa,CAACH,GAAoBzoL,OAAOqoL,GAAoBvlK,QAAO,SAAUC,EAAKu8J,GACrF,OAAOv8J,EAAI/iB,OAAO0gL,EAAiBpB,KAAe/8B,ECvCvC,SAA8Bt6D,EAAOt9F,QAClC,IAAZA,IACFA,EAAU,IAGZ,IAAIq1D,EAAWr1D,EACX20L,EAAYt/H,EAASs/H,UACrBzrH,EAAW7T,EAAS6T,SACpBiyH,EAAe9lI,EAAS8lI,aACxBniJ,EAAUqc,EAASrc,QACnB4kJ,EAAiBvoI,EAASuoI,eAC1BM,EAAwB7oI,EAASwoI,sBACjCA,OAAkD,IAA1BK,EAAmC,EAAgBA,EAC3ErC,EAAYF,GAAahH,GACzBsJ,EAAapC,EAAY+B,EAAiBlJ,EAAsBA,EAAoB5uK,QAAO,SAAU6uK,GACvG,OAAOgH,GAAahH,KAAekH,KAChCrH,EACD2J,EAAoBF,EAAWn4K,QAAO,SAAU6uK,GAClD,OAAOkJ,EAAsB/9L,QAAQ60L,IAAc,KAGpB,IAA7BwJ,EAAkBvjM,SACpBujM,EAAoBF,GAQtB,IAAIG,EAAYD,EAAkBhmK,QAAO,SAAUC,EAAKu8J,GAOtD,OANAv8J,EAAIu8J,GAAasH,GAAe3+F,EAAO,CACrCq3F,UAAWA,EACXzrH,SAAUA,EACViyH,aAAcA,EACdniJ,QAASA,IACR+8I,EAAiBpB,IACbv8J,IACN,IACH,OAAOvgC,OAAOkH,KAAKq/L,GAAWp3J,MAAK,SAAUrjC,EAAGC,GAC9C,OAAOw6L,EAAUz6L,GAAKy6L,EAAUx6L,MDDyBy6L,CAAqB/gG,EAAO,CACnFq3F,UAAWA,EACXzrH,SAAUA,EACViyH,aAAcA,EACdniJ,QAASA,EACT4kJ,eAAgBA,EAChBC,sBAAuBA,IACpBlJ,KACJ,IACC2J,EAAgBhhG,EAAM3xD,MAAMkqJ,UAC5B4C,EAAan7F,EAAM3xD,MAAM+pJ,OACzB6I,EAAY,IAAIjvK,IAChBkvK,GAAqB,EACrBC,EAAwBR,EAAW,GAE9B9mM,EAAI,EAAGA,EAAI8mM,EAAWrjM,OAAQzD,IAAK,CAC1C,IAAIw9L,EAAYsJ,EAAW9mM,GAEvBunM,EAAiB3I,EAAiBpB,GAElCgK,EAAmBhD,GAAahH,KAAel3L,EAC/CsyJ,EAAa,CAAC,EAAKnyI,GAAQ9d,QAAQ4+L,IAAmB,EACtDtiM,EAAM2zJ,EAAa,QAAU,SAC7Bl9C,EAAWopF,GAAe3+F,EAAO,CACnCq3F,UAAWA,EACXzrH,SAAUA,EACViyH,aAAcA,EACdqB,YAAaA,EACbxjJ,QAASA,IAEP4lJ,EAAoB7uC,EAAa4uC,EAAmBjhL,EAAQD,EAAOkhL,EAAmB/gL,EAAS,EAE/F0gL,EAAcliM,GAAOq8L,EAAWr8L,KAClCwiM,EAAoB7E,GAAqB6E,IAG3C,IAAIC,EAAmB9E,GAAqB6E,GACxCE,EAAS,GAUb,GARIzB,GACFyB,EAAOpkL,KAAKm4F,EAAS6rF,IAAmB,GAGtClB,GACFsB,EAAOpkL,KAAKm4F,EAAS+rF,IAAsB,EAAG/rF,EAASgsF,IAAqB,GAG1EC,EAAOC,OAAM,SAAU9qG,GACzB,OAAOA,KACL,CACFwqG,EAAwB9J,EACxB6J,GAAqB,EACrB,MAGFD,EAAUnpL,IAAIu/K,EAAWmK,GAG3B,GAAIN,EAqBF,IAnBA,IAEIhlK,EAAQ,SAAe9D,GACzB,IAAIspK,EAAmBf,EAAWrsG,MAAK,SAAU+iG,GAC/C,IAAImK,EAASP,EAAUvmM,IAAI28L,GAE3B,GAAImK,EACF,OAAOA,EAAO5iM,MAAM,EAAGw5B,GAAIqpK,OAAM,SAAU9qG,GACzC,OAAOA,QAKb,GAAI+qG,EAEF,OADAP,EAAwBO,EACjB,SAIFtpK,EAnBYkoK,EAAiB,EAAI,EAmBZloK,EAAK,EAAGA,IAAM,CAG1C,GAAa,UAFF8D,EAAM9D,GAEK,MAItB4nE,EAAMq3F,YAAc8J,IACtBnhG,EAAMk6F,cAAc9/L,GAAMwsC,OAAQ,EAClCo5D,EAAMq3F,UAAY8J,EAClBnhG,EAAM30D,OAAQ,KAUhB0vJ,iBAAkB,CAAC,UACnBl+K,KAAM,CACJ+pB,OAAO,IE7IX,SAAS+6J,GAAepsF,EAAU51F,EAAMiiL,GAQtC,YAPyB,IAArBA,IACFA,EAAmB,CACjBz8L,EAAG,EACHC,EAAG,IAIA,CACLib,IAAKk1F,EAASl1F,IAAMV,EAAKlB,OAASmjL,EAAiBx8L,EACnDgb,MAAOm1F,EAASn1F,MAAQT,EAAKxC,MAAQykL,EAAiBz8L,EACtDmb,OAAQi1F,EAASj1F,OAASX,EAAKlB,OAASmjL,EAAiBx8L,EACzD+a,KAAMo1F,EAASp1F,KAAOR,EAAKxC,MAAQykL,EAAiBz8L,GAIxD,SAAS08L,GAAsBtsF,GAC7B,MAAO,CAAC,EAAKn1F,EAAOE,EAAQH,GAAMyzC,MAAK,SAAU45F,GAC/C,OAAOj4C,EAASi4C,IAAS,KAiCd,QACbpzJ,KAAM,OACN0oD,SAAS,EACTo1I,MAAO,OACP6C,iBAAkB,CAAC,mBACnB17L,GAlCF,SAAc80B,GACZ,IAAI6rE,EAAQ7rE,EAAK6rE,MACb5lG,EAAO+5B,EAAK/5B,KACZ4mM,EAAgBhhG,EAAM3xD,MAAMkqJ,UAC5B4C,EAAan7F,EAAM3xD,MAAM+pJ,OACzBwJ,EAAmB5hG,EAAMk6F,cAAc4H,gBACvCC,EAAoBpD,GAAe3+F,EAAO,CAC5Cg/F,eAAgB,cAEdgD,EAAoBrD,GAAe3+F,EAAO,CAC5Ck/F,aAAa,IAEX+C,EAA2BN,GAAeI,EAAmBf,GAC7DkB,EAAsBP,GAAeK,EAAmB7G,EAAYyG,GACpEO,EAAoBN,GAAsBI,GAC1CG,EAAmBP,GAAsBK,GAC7CliG,EAAMk6F,cAAc9/L,GAAQ,CAC1B6nM,yBAA0BA,EAC1BC,oBAAqBA,EACrBC,kBAAmBA,EACnBC,iBAAkBA,GAEpBpiG,EAAMrQ,WAAWyoG,OAAS79L,OAAO6c,OAAO,GAAI4oF,EAAMrQ,WAAWyoG,OAAQ,CACnE,+BAAgC+J,EAChC,sBAAuBC,MCHZ,QACbhoM,KAAM,SACN0oD,SAAS,EACTo1I,MAAO,OACPM,SAAU,CAAC,iBACXn5L,GA5BF,SAAgBspC,GACd,IAAIq3D,EAAQr3D,EAAMq3D,MACdt9F,EAAUimC,EAAMjmC,QAChBtI,EAAOuuC,EAAMvuC,KACbioM,EAAkB3/L,EAAQ6rC,OAC1BA,OAA6B,IAApB8zJ,EAA6B,CAAC,EAAG,GAAKA,EAC/CxlL,EAAO,EAAWge,QAAO,SAAUC,EAAKu8J,GAE1C,OADAv8J,EAAIu8J,GA5BD,SAAiCA,EAAWhpJ,EAAOE,GACxD,IAAI4rJ,EAAgB1B,EAAiBpB,GACjCiL,EAAiB,CAACniL,EAAM,GAAK3d,QAAQ23L,IAAkB,GAAK,EAAI,EAEhEhmK,EAAyB,oBAAXoa,EAAwBA,EAAOh0C,OAAO6c,OAAO,GAAIi3B,EAAO,CACxEgpJ,UAAWA,KACP9oJ,EACFg0J,EAAWpuK,EAAK,GAChBglB,EAAWhlB,EAAK,GAIpB,OAFAouK,EAAWA,GAAY,EACvBppJ,GAAYA,GAAY,GAAKmpJ,EACtB,CAACniL,EAAMC,GAAO5d,QAAQ23L,IAAkB,EAAI,CACjDh1L,EAAGg0C,EACH/zC,EAAGm9L,GACD,CACFp9L,EAAGo9L,EACHn9L,EAAG+zC,GAWcqpJ,CAAwBnL,EAAWr3F,EAAM3xD,MAAOE,GAC1DzT,IACN,IACC2nK,EAAwB5lL,EAAKmjF,EAAMq3F,WACnClyL,EAAIs9L,EAAsBt9L,EAC1BC,EAAIq9L,EAAsBr9L,EAEW,MAArC46F,EAAMk6F,cAAcD,gBACtBj6F,EAAMk6F,cAAcD,cAAc90L,GAAKA,EACvC66F,EAAMk6F,cAAcD,cAAc70L,GAAKA,GAGzC46F,EAAMk6F,cAAc9/L,GAAQyiB,ICxBf,QACbziB,KAAM,gBACN0oD,SAAS,EACTo1I,MAAO,OACP74L,GApBF,SAAuB80B,GACrB,IAAI6rE,EAAQ7rE,EAAK6rE,MACb5lG,EAAO+5B,EAAK/5B,KAKhB4lG,EAAMk6F,cAAc9/L,GAAQkkM,GAAe,CACzC/F,UAAWv4F,EAAM3xD,MAAMkqJ,UACvBlqK,QAAS2xE,EAAM3xD,MAAM+pJ,OACrBC,SAAU,WACVhB,UAAWr3F,EAAMq3F,aAUnBx6K,KAAM,IC6FO,QACbziB,KAAM,kBACN0oD,SAAS,EACTo1I,MAAO,OACP74L,GA5GF,SAAyB80B,GACvB,IAAI6rE,EAAQ7rE,EAAK6rE,MACbt9F,EAAUyxB,EAAKzxB,QACftI,EAAO+5B,EAAK/5B,KACZ0lM,EAAoBp9L,EAAQg8L,SAC5BqB,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBt9L,EAAQu9L,QAC3BC,OAAoC,IAArBF,GAAsCA,EACrDp0H,EAAWlpE,EAAQkpE,SACnBiyH,EAAen7L,EAAQm7L,aACvBqB,EAAcx8L,EAAQw8L,YACtBxjJ,EAAUh5C,EAAQg5C,QAClBgnJ,EAAkBhgM,EAAQigM,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CE,EAAwBlgM,EAAQmgM,aAChCA,OAAyC,IAA1BD,EAAmC,EAAIA,EACtDrtF,EAAWopF,GAAe3+F,EAAO,CACnCp0B,SAAUA,EACViyH,aAAcA,EACdniJ,QAASA,EACTwjJ,YAAaA,IAEX/E,EAAgB1B,EAAiBz4F,EAAMq3F,WACvCkH,EAAYF,GAAar+F,EAAMq3F,WAC/ByL,GAAmBvE,EACnBG,EAAWjF,EAAyBU,GACpC8F,ECrCY,MDqCSvB,ECrCH,IAAM,IDsCxBzE,EAAgBj6F,EAAMk6F,cAAcD,cACpC+G,EAAgBhhG,EAAM3xD,MAAMkqJ,UAC5B4C,EAAan7F,EAAM3xD,MAAM+pJ,OACzB2K,EAA4C,oBAAjBF,EAA8BA,EAAatoM,OAAO6c,OAAO,GAAI4oF,EAAM3xD,MAAO,CACvGgpJ,UAAWr3F,EAAMq3F,aACbwL,EACFhmL,EAAO,CACT1X,EAAG,EACHC,EAAG,GAGL,GAAK60L,EAAL,CAIA,GAAI8F,GAAiBG,EAAc,CACjC,IAAI8C,EAAwB,MAAbtE,EAAmB,EAAMv+K,EACpC8iL,EAAuB,MAAbvE,EAAmBp+K,EAASF,EACtCthB,EAAmB,MAAb4/L,EAAmB,SAAW,QACpCnwJ,EAAS0rJ,EAAcyE,GACvBj5L,EAAMw0L,EAAcyE,GAAYnpF,EAASytF,GACzCt9L,EAAMu0L,EAAcyE,GAAYnpF,EAAS0tF,GACzCC,EAAWP,GAAUxH,EAAWr8L,GAAO,EAAI,EAC3CJ,EAAS6/L,IAAcp+L,EAAQ6gM,EAAcliM,GAAOq8L,EAAWr8L,GAC/DqkM,EAAS5E,IAAcp+L,GAASg7L,EAAWr8L,IAAQkiM,EAAcliM,GAGjEk7L,EAAeh6F,EAAMzlF,SAAS+9K,MAC9B8B,EAAYuI,GAAU3I,EAAetB,EAAcsB,GAAgB,CACrE78K,MAAO,EACPsB,OAAQ,GAEN2kL,EAAqBpjG,EAAMk6F,cAAc,oBAAsBl6F,EAAMk6F,cAAc,oBAAoBx+I,QxBtEtG,CACLr7B,IAAK,EACLD,MAAO,EACPE,OAAQ,EACRH,KAAM,GwBmEFkjL,EAAkBD,EAAmBJ,GACrCM,EAAkBF,EAAmBH,GAMrCM,EAAW7J,EAAO,EAAGsH,EAAcliM,GAAMs7L,EAAUt7L,IACnD0kM,GAAYV,EAAkB9B,EAAcliM,GAAO,EAAIokM,EAAWK,EAAWF,EAAkBN,EAAoBrkM,EAAS6kM,EAAWF,EAAkBN,EACzJU,GAAYX,GAAmB9B,EAAcliM,GAAO,EAAIokM,EAAWK,EAAWD,EAAkBP,EAAoBI,EAASI,EAAWD,EAAkBP,EAC1JtI,GAAoBz6F,EAAMzlF,SAAS+9K,OAASY,EAAgBl5F,EAAMzlF,SAAS+9K,OAC3EoL,GAAejJ,GAAiC,MAAbiE,EAAmBjE,GAAkBzvC,WAAa,EAAIyvC,GAAkBxvC,YAAc,EAAI,EAC7H04C,GAAsB3jG,EAAMk6F,cAAc3rJ,OAASyxD,EAAMk6F,cAAc3rJ,OAAOyxD,EAAMq3F,WAAWqH,GAAY,EAC3GkF,GAAY3J,EAAcyE,GAAY8E,GAAYG,GAAsBD,GACxEG,GAAY5J,EAAcyE,GAAY+E,GAAYE,GAEtD,GAAI5D,EAAe,CACjB,IAAI+D,GAAkBpK,EAAOiJ,EAAS,EAAQl9L,EAAKm+L,IAAan+L,EAAK8oC,EAAQo0J,EAAS,EAAQj9L,EAAKm+L,IAAan+L,GAChHu0L,EAAcyE,GAAYoF,GAC1BjnL,EAAK6hL,GAAYoF,GAAkBv1J,EAGrC,GAAI2xJ,EAAc,CAChB,IAAI6D,GAAyB,MAAbrF,EAAmB,EAAMv+K,EAErC6jL,GAAwB,MAAbtF,EAAmBp+K,EAASF,EAEvC6jL,GAAUhK,EAAcgG,GAExBiE,GAAOD,GAAU1uF,EAASwuF,IAE1BI,GAAOF,GAAU1uF,EAASyuF,IAE1BI,GAAmB1K,EAAOiJ,EAAS,EAAQuB,GAAMN,IAAaM,GAAMD,GAAStB,EAAS,EAAQwB,GAAMN,IAAaM,IAErHlK,EAAcgG,GAAWmE,GACzBvnL,EAAKojL,GAAWmE,GAAmBH,IAIvCjkG,EAAMk6F,cAAc9/L,GAAQyiB,IAS5Bk+K,iBAAkB,CAAC,WEhHN,SAASsJ,GAAiBC,EAAyBlhF,EAAcmhF,QAC9D,IAAZA,IACFA,GAAU,GAGZ,ICVoClrL,ECJOgV,EFcvCulE,EAAkBmlG,EAAmB31E,GACrCzjG,EAAO8P,EAAsB60K,GAC7BE,EAA0BzM,EAAc30E,GACxC+4D,EAAS,CACX1oE,WAAY,EACZD,UAAW,GAETlrB,EAAU,CACZnjF,EAAG,EACHC,EAAG,GAkBL,OAfIo/L,IAA4BA,IAA4BD,MACxB,SAA9BzM,EAAY10E,IAChBy5E,GAAejpG,MACbuoF,GCzBgC9iK,EDyBT+pG,KCxBd0lC,EAAUzvI,IAAU0+K,EAAc1+K,GCJxC,CACLo6F,YAFyCplF,EDQbhV,GCNRo6F,WACpBD,UAAWnlF,EAAQmlF,WDGZmpF,GAAgBtjL,ID0BnB0+K,EAAc30E,KAChB96B,EAAU74D,EAAsB2zF,IACxBj+G,GAAKi+G,EAAa6nC,WAC1B3iE,EAAQljF,GAAKg+G,EAAa4nC,WACjBp3D,IACTtL,EAAQnjF,EAAIy3L,GAAoBhpG,KAI7B,CACLzuF,EAAGwa,EAAKQ,KAAOg8J,EAAO1oE,WAAanrB,EAAQnjF,EAC3CC,EAAGua,EAAKU,IAAM87J,EAAO3oE,UAAYlrB,EAAQljF,EACzC+X,MAAOwC,EAAKxC,MACZsB,OAAQkB,EAAKlB,QG3CjB,SAAS87C,GAAMkqI,GACb,IAAIriM,EAAM,IAAI4vB,IACVo6C,EAAU,IAAIvmD,IACd6I,EAAS,GAKb,SAASgb,EAAKg7J,GACZt4H,EAAQtmD,IAAI4+K,EAAStqM,MACN,GAAG2d,OAAO2sL,EAASlM,UAAY,GAAIkM,EAAS3J,kBAAoB,IACtEr1K,SAAQ,SAAUi/K,GACzB,IAAKv4H,EAAQrlD,IAAI49K,GAAM,CACrB,IAAIC,EAAcxiM,EAAI1H,IAAIiqM,GAEtBC,GACFl7J,EAAKk7J,OAIXl2K,EAAOtR,KAAKsnL,GASd,OAzBAD,EAAU/+K,SAAQ,SAAUg/K,GAC1BtiM,EAAI0V,IAAI4sL,EAAStqM,KAAMsqM,MAkBzBD,EAAU/+K,SAAQ,SAAUg/K,GACrBt4H,EAAQrlD,IAAI29K,EAAStqM,OAExBsvC,EAAKg7J,MAGFh2K,ECjBT,IAEIm2K,GAAkB,CACpBxN,UAAW,SACXoN,UAAW,GACXpM,SAAU,YAGZ,SAASyM,KACP,IAAK,IAAInlM,EAAOC,UAAUtC,OAAQmC,EAAO,IAAI1D,MAAM4D,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/EL,EAAKK,GAAQF,UAAUE,GAGzB,OAAQL,EAAKm0D,MAAK,SAAUvlC,GAC1B,QAASA,GAAoD,oBAAlCA,EAAQoB,0BAIhC,SAASs1K,GAAgBC,QACL,IAArBA,IACFA,EAAmB,IAGrB,IAAIC,EAAoBD,EACpBE,EAAwBD,EAAkBE,iBAC1CA,OAA6C,IAA1BD,EAAmC,GAAKA,EAC3DE,EAAyBH,EAAkBI,eAC3CA,OAA4C,IAA3BD,EAAoCP,GAAkBO,EAC3E,OAAO,SAAsB7M,EAAWH,EAAQ11L,QAC9B,IAAZA,IACFA,EAAU2iM,GAGZ,IC/C6BhmM,EAC3BimM,ED8CEtlG,EAAQ,CACVq3F,UAAW,SACXkO,iBAAkB,GAClB7iM,QAASnI,OAAO6c,OAAO,GAAIytL,GAAiBQ,GAC5CnL,cAAe,GACf3/K,SAAU,CACRg+K,UAAWA,EACXH,OAAQA,GAEVzoG,WAAY,GACZnhE,OAAQ,IAENg3K,EAAmB,GACnBC,GAAc,EACdxoM,EAAW,CACb+iG,MAAOA,EACP0lG,WAAY,SAAoBhjM,GAC9BijM,IACA3lG,EAAMt9F,QAAUnI,OAAO6c,OAAO,GAAIiuL,EAAgBrlG,EAAMt9F,QAASA,GACjEs9F,EAAMu8F,cAAgB,CACpBhE,UAAWjxE,EAAUixE,GAAayE,GAAkBzE,GAAaA,EAAUgH,eAAiBvC,GAAkBzE,EAAUgH,gBAAkB,GAC1InH,OAAQ4E,GAAkB5E,IAI5B,IAAImN,EDtCG,SAAwBd,GAErC,IAAIc,EAAmBhrI,GAAMkqI,GAE7B,OAAO5M,EAAeh9J,QAAO,SAAUC,EAAKo9J,GAC1C,OAAOp9J,EAAI/iB,OAAOwtL,EAAiB/8K,QAAO,SAAUk8K,GAClD,OAAOA,EAASxM,QAAUA,QAE3B,IC8B0B0N,CExEhB,SAAqBnB,GAClC,IAAIoB,EAASpB,EAAU5pK,QAAO,SAAUgrK,EAAQl5K,GAC9C,IAAIm5K,EAAWD,EAAOl5K,EAAQvyB,MAK9B,OAJAyrM,EAAOl5K,EAAQvyB,MAAQ0rM,EAAWvrM,OAAO6c,OAAO,GAAI0uL,EAAUn5K,EAAS,CACrEjqB,QAASnI,OAAO6c,OAAO,GAAI0uL,EAASpjM,QAASiqB,EAAQjqB,SACrDma,KAAMtiB,OAAO6c,OAAO,GAAI0uL,EAASjpL,KAAM8P,EAAQ9P,QAC5C8P,EACEk5K,IACN,IAEH,OAAOtrM,OAAOkH,KAAKokM,GAAQzjM,KAAI,SAAUhH,GACvC,OAAOyqM,EAAOzqM,MF6D4B2qM,CAAY,GAAGhuL,OAAOotL,EAAkBnlG,EAAMt9F,QAAQ+hM,aAyC5F,OAvCAzkG,EAAMulG,iBAAmBA,EAAiB/8K,QAAO,SAAUvuB,GACzD,OAAOA,EAAE6oD,WAqJbk9C,EAAMulG,iBAAiB7/K,SAAQ,SAAUi4J,GACvC,IAAIvjL,EAAOujL,EAAMvjL,KACb4rM,EAAgBroB,EAAMj7K,QACtBA,OAA4B,IAAlBsjM,EAA2B,GAAKA,EAC1CrvD,EAASgnC,EAAMhnC,OAEnB,GAAsB,oBAAXA,EAAuB,CAChC,IAAIsvD,EAAYtvD,EAAO,CACrB32C,MAAOA,EACP5lG,KAAMA,EACN6C,SAAUA,EACVyF,QAASA,IAGPwjM,EAAS,aAEbV,EAAiBpoL,KAAK6oL,GAAaC,OA/H9BjpM,EAAS4hC,UAOlBsnK,YAAa,WACX,IAAIV,EAAJ,CAIA,IAAIW,EAAkBpmG,EAAMzlF,SACxBg+K,EAAY6N,EAAgB7N,UAC5BH,EAASgO,EAAgBhO,OAG7B,GAAK0M,GAAiBvM,EAAWH,GAAjC,CASAp4F,EAAM3xD,MAAQ,CACZkqJ,UAAW8L,GAAiB9L,EAAWW,EAAgBd,GAAoC,UAA3Bp4F,EAAMt9F,QAAQ21L,UAC9ED,OAAQM,EAAcN,IAOxBp4F,EAAM30D,OAAQ,EACd20D,EAAMq3F,UAAYr3F,EAAMt9F,QAAQ20L,UAKhCr3F,EAAMulG,iBAAiB7/K,SAAQ,SAAUg/K,GACvC,OAAO1kG,EAAMk6F,cAAcwK,EAAStqM,MAAQG,OAAO6c,OAAO,GAAIstL,EAAS7nL,SAIzE,IAFA,IAES5a,EAAQ,EAAGA,EAAQ+9F,EAAMulG,iBAAiBjoM,OAAQ2E,IAUzD,IAAoB,IAAhB+9F,EAAM30D,MAAV,CAMA,IAAIg7J,EAAwBrmG,EAAMulG,iBAAiBtjM,GAC/C5C,EAAKgnM,EAAsBhnM,GAC3BinM,EAAyBD,EAAsB3jM,QAC/Cq1D,OAAsC,IAA3BuuI,EAAoC,GAAKA,EACpDlsM,EAAOisM,EAAsBjsM,KAEf,oBAAPiF,IACT2gG,EAAQ3gG,EAAG,CACT2gG,MAAOA,EACPt9F,QAASq1D,EACT39D,KAAMA,EACN6C,SAAUA,KACN+iG,QAjBNA,EAAM30D,OAAQ,EACdppC,GAAS,KAsBf48B,QCjM2Bx/B,EDiMV,WACf,OAAO,IAAIs9B,SAAQ,SAAUnY,GAC3BvnB,EAASkpM,cACT3hL,EAAQw7E,OClMT,WAUL,OATKslG,IACHA,EAAU,IAAI3oK,SAAQ,SAAUnY,GAC9BmY,QAAQnY,UAAUoa,MAAK,WACrB0mK,OAAU36L,EACV6Z,EAAQnlB,YAKPimM,ID2LLt7H,QAAS,WACP27H,IACAF,GAAc,IAIlB,IAAKX,GAAiBvM,EAAWH,GAK/B,OAAOn7L,EAmCT,SAAS0oM,IACPH,EAAiB9/K,SAAQ,SAAUrmB,GACjC,OAAOA,OAETmmM,EAAmB,GAGrB,OAvCAvoM,EAASyoM,WAAWhjM,GAASk8B,MAAK,SAAUohE,IACrCylG,GAAe/iM,EAAQ6jM,eAC1B7jM,EAAQ6jM,cAAcvmG,MAqCnB/iG,GAGJ,IG/PHupM,GH+PO,GAA4BzB,KIpPnC,GAA4BA,GAAgB,CAC9CI,iBAFqB,CAACsB,GAAgB,GAAe,GAAe,EAAa,GAAQ,GAAM,GAAiB,EAAO,MCJrH,GAA4B1B,GAAgB,CAC9CI,iBAFqB,CAACsB,GAAgB,GAAe,GAAe,KFHtE,SAAShwK,GAAKr5B,EAAQ5B,EAAUusB,GAAuV,OAAtR0O,GAA9B,qBAAZ7P,SAA2BA,QAAQlsB,IAAcksB,QAAQlsB,IAAqB,SAAc0C,EAAQ5B,EAAUusB,GAAY,IAAI2O,EAErL,SAAwBn7B,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASo7B,GAAgBp7B,MAAuC,OAAOA,EAFOq7B,CAAex5B,EAAQ5B,GAAW,GAAKk7B,EAAL,CAAmB,IAAIG,EAAOt8B,OAAOosB,yBAAyB+P,EAAMl7B,GAAW,OAAIq7B,EAAKn8B,IAAcm8B,EAAKn8B,IAAIV,KAAK+tB,GAAoB8O,EAAK/7B,SAAwBsC,EAAQ5B,EAAUusB,GAAY3qB,GAIja,SAAS8pB,GAAQ3rB,EAAQ46B,GAAkB,IAAI10B,EAAOlH,OAAOkH,KAAKlG,GAAS,GAAIhB,OAAO67B,sBAAuB,CAAE,IAAIC,EAAU97B,OAAO67B,sBAAsB76B,GAAa46B,IAAkBE,EAAUA,EAAQ7N,QAAO,SAAU8N,GAAO,OAAO/7B,OAAOosB,yBAAyBprB,EAAQ+6B,GAAK77B,eAAkBgH,EAAK2b,KAAKrd,MAAM0B,EAAM40B,GAAY,OAAO50B,EAElV,SAAS80B,GAAcn5B,GAAU,IAAK,IAAIvD,EAAI,EAAGA,EAAI+F,UAAUtC,OAAQzD,IAAK,CAAE,IAAIsI,EAAyB,MAAhBvC,UAAU/F,GAAa+F,UAAU/F,GAAK,GAAQA,EAAI,EAAKqtB,GAAQ3sB,OAAO4H,IAAS,GAAMujB,SAAQ,SAAUtqB,GAAOsB,GAAgBU,EAAQhC,EAAK+G,EAAO/G,OAAsBb,OAAOi8B,0BAA6Bj8B,OAAO+hB,iBAAiBlf,EAAQ7C,OAAOi8B,0BAA0Br0B,IAAmB+kB,GAAQ3sB,OAAO4H,IAASujB,SAAQ,SAAUtqB,GAAOb,OAAOC,eAAe4C,EAAQhC,EAAKb,OAAOosB,yBAAyBxkB,EAAQ/G,OAAe,OAAOgC,EAE7gB,SAASV,GAAgBC,EAAKvB,EAAKN,GAAiK,OAApJM,KAAOuB,EAAOpC,OAAOC,eAAemC,EAAKvB,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAMmC,cAAc,EAAMC,UAAU,IAAkBF,EAAIvB,GAAON,EAAgB6B,EAE3M,SAASm6B,GAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIx6B,UAAU,sDAAyDu6B,EAASt7B,UAAYlB,OAAOY,OAAO67B,GAAcA,EAAWv7B,UAAW,CAAEsB,YAAa,CAAEjC,MAAOi8B,EAAUl6B,UAAU,EAAMD,cAAc,KAAeo6B,GAAYC,GAAgBF,EAAUC,GAEnX,SAASC,GAAgB38B,EAAGqB,GAA+G,OAA1Gs7B,GAAkB18B,OAAO28B,gBAAkB,SAAyB58B,EAAGqB,GAAsB,OAAjBrB,EAAE68B,UAAYx7B,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASy7B,GAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZ1Q,UAA4BA,QAAQ2Q,UAAW,OAAO,EAAO,GAAI3Q,QAAQ2Q,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlR,MAAsB,OAAO,EAAM,IAAsF,OAAhFmR,QAAQh8B,UAAUi8B,QAAQ19B,KAAK4sB,QAAQ2Q,UAAUE,QAAS,IAAI,iBAAyB,EAAQ,MAAOz5B,GAAK,OAAO,GAN9P25B,GAA6B,OAAO,WAAkC,IAAsCjJ,EAAlCkJ,EAAQjB,GAAgBU,GAAkB,GAAIC,EAA2B,CAAE,IAAIO,EAAYlB,GAAgBjf,MAAM3a,YAAa2xB,EAAS9H,QAAQ2Q,UAAUK,EAAOh4B,UAAWi4B,QAAqBnJ,EAASkJ,EAAM73B,MAAM2X,KAAM9X,WAAc,OAAOk4B,GAA2BpgB,KAAMgX,IAE5Z,SAASoJ,GAA2BC,EAAM/9B,GAAQ,OAAIA,GAA2B,WAAlB8C,GAAQ9C,IAAsC,oBAATA,EAEpG,SAAgC+9B,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIE,eAAe,6DAAgE,OAAOF,EAFbC,CAAuBD,GAAtC/9B,EAMnI,SAAS28B,GAAgBr8B,GAAwJ,OAAnJq8B,GAAkBp8B,OAAO28B,eAAiB38B,OAAOusB,eAAiB,SAAyBxsB,GAAK,OAAOA,EAAE68B,WAAa58B,OAAOusB,eAAexsB,KAA8BA,GAExM,SAAS0C,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIV,UAAU,qCAEhH,SAASW,GAAkBC,EAAQC,GAAS,IAAK,IAAIxD,EAAI,EAAGA,EAAIwD,EAAMC,OAAQzD,IAAK,CAAE,IAAI0D,EAAaF,EAAMxD,GAAI0D,EAAW9C,WAAa8C,EAAW9C,aAAc,EAAO8C,EAAWX,cAAe,EAAU,UAAWW,IAAYA,EAAWV,UAAW,GAAMtC,OAAOC,eAAe4C,EAAQG,EAAWnC,IAAKmC,IAE7S,SAASC,GAAaN,EAAaO,EAAYC,GAAmJ,OAAhID,GAAYN,GAAkBD,EAAYzB,UAAWgC,GAAiBC,GAAaP,GAAkBD,EAAaQ,GAAqBR,EAEzM,SAASg7B,GAAep8B,EAAKjC,GAAK,OAMlC,SAAyBiC,GAAO,GAAIC,MAAMC,QAAQF,GAAM,OAAOA,EANtBq8B,CAAgBr8B,IAIzD,SAA+BA,EAAKjC,GAAK,IAAIu+B,EAAY,MAAPt8B,EAAc,KAAyB,qBAAXlB,QAA0BkB,EAAIlB,OAAOwB,WAAaN,EAAI,cAAe,GAAU,MAANs8B,EAAY,OAAQ,IAAkDC,EAAIp6B,EAAlDq6B,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKJ,EAAKA,EAAGp+B,KAAK8B,KAAQy8B,GAAMF,EAAKD,EAAG75B,QAAQR,QAAoBu6B,EAAKlb,KAAKib,EAAGv9B,QAAYjB,GAAKy+B,EAAKh7B,SAAWzD,GAA3D0+B,GAAK,IAAoE,MAAOp6B,GAAOq6B,GAAK,EAAMv6B,EAAKE,EAAO,QAAU,IAAWo6B,GAAsB,MAAhBH,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAII,EAAI,MAAMv6B,GAAQ,OAAOq6B,EAJzbG,CAAsB38B,EAAKjC,IAAM0C,GAA4BT,EAAKjC,IAEnI,WAA8B,MAAM,IAAI2C,UAAU,6IAFuFk8B,GAQzI,SAAS57B,GAAQH,GAAmV,OAAtOG,GAArD,oBAAXlC,QAAoD,kBAApBA,OAAOwB,SAAmC,SAAiBO,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAII,cAAgBnC,QAAU+B,IAAQ/B,OAAOa,UAAY,gBAAkBkB,IAAyBA,GAEnX,SAASd,GAAmBC,GAAO,OAQnC,SAA4BA,GAAO,GAAIC,MAAMC,QAAQF,GAAM,OAAOG,GAAkBH,GAR1CI,CAAmBJ,IAM7D,SAA0BK,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOwB,WAA2C,MAAtBD,EAAK,cAAuB,OAAOJ,MAAMM,KAAKF,GANjFG,CAAiBR,IAAQS,GAA4BT,IAE1H,WAAgC,MAAM,IAAIU,UAAU,wIAF8EC,GAIlI,SAASF,GAA4BjC,EAAGoE,GAAU,GAAKpE,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAO2B,GAAkB3B,EAAGoE,GAAS,IAAIpD,EAAIf,OAAOkB,UAAUkD,SAAS3E,KAAKM,GAAGsE,MAAM,GAAI,GAAiE,MAAnD,WAANtD,GAAkBhB,EAAEyC,cAAazB,EAAIhB,EAAEyC,YAAY3C,MAAgB,QAANkB,GAAqB,QAANA,EAAoBS,MAAMM,KAAK/B,GAAc,cAANgB,GAAqB,2CAA2CuD,KAAKvD,GAAWW,GAAkB3B,EAAGoE,QAAzG,GAM7S,SAASzC,GAAkBH,EAAKgD,IAAkB,MAAPA,GAAeA,EAAMhD,EAAIwB,UAAQwB,EAAMhD,EAAIwB,QAAQ,IAAK,IAAIzD,EAAI,EAAGkF,EAAO,IAAIhD,MAAM+C,GAAMjF,EAAIiF,EAAKjF,IAAOkF,EAAKlF,GAAKiC,EAAIjC,GAAM,OAAOkF,EAqBhL,IACI2nM,GACI,SAAc16G,GAClB,IAAI73D,EAEA9F,EAAUzuB,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAKk/C,SAAS80C,gBAC3F,OAAQz/D,EAAO,IAAIpc,OAAOhY,MAAMo0B,EAAMt4B,GAAmBolD,QAAQxlD,UAAU+2F,iBAAiBx4F,KAAKq0B,EAAS29D,MAL1G06G,GAOO,SAAiB16G,GACxB,IAAI39D,EAAUzuB,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAKk/C,SAAS80C,gBAC3F,OAAO3yC,QAAQxlD,UAAU2pH,cAAcprH,KAAKq0B,EAAS29D,IATrD06G,GAWQ,SAAkBr4K,EAAS29D,GACnC,IAAIrjD,EAEJ,OAAQA,EAAQ,IAAI5wB,OAAOhY,MAAM4oC,EAAO9sC,GAAmBwyB,EAAQi8D,WAAW9hE,QAAO,SAAUohG,GAC7F,OAAOA,EAAMpmG,QAAQwoE,OAfvB06G,GAkBO,SAAiBr4K,EAAS29D,GAIjC,IAHA,IAAIuR,EAAU,GACVopG,EAAWt4K,EAAQP,WAEhB64K,GAAYA,EAASz7G,WAAai3F,KAAKC,cAvBlC,IAuBkDukB,EAASz7G,UACjEy7G,EAASnjL,QAAQwoE,IACnBuR,EAAQngF,KAAKupL,GAGfA,EAAWA,EAAS74K,WAGtB,OAAOyvE,GA9BPmpG,GAgCI,SAAcr4K,EAAS29D,GAG3B,IAFA,IAAIrrE,EAAW0N,EAAQu9H,uBAEhBjrI,GAAU,CACf,GAAIA,EAAS6C,QAAQwoE,GACnB,MAAO,CAACrrE,GAGVA,EAAWA,EAASirI,uBAGtB,MAAO,IA3CP86C,GA6CI,SAAcr4K,EAAS29D,GAG3B,IAFA,IAAIztF,EAAO8vB,EAAQo9H,mBAEZltJ,GAAM,CACX,GAAIA,EAAKilB,QAAQwoE,GACf,MAAO,CAACztF,GAGVA,EAAOA,EAAKktJ,mBAGd,MAAO,IAYPm7C,GAAiB,gBAgBjBC,GAAS,SAAgBt9K,GAC3B,GACEA,GAAU1lB,KAAKkB,MApBL,IAoBWlB,KAAKqpF,gBACnBpuC,SAASsY,eAAe7tC,IAEjC,OAAOA,GAGL2xH,GAAc,SAAqB7sH,GACrC,IAAI29D,EAAW39D,EAAQiyB,aAAa,kBAEpC,IAAK0rC,GAAyB,MAAbA,EAAkB,CACjC,IAAI86G,EAAWz4K,EAAQiyB,aAAa,QAKpC,IAAKwmJ,IAAaA,EAAS7/K,SAAS,OAAS6/K,EAASrqL,WAAW,KAC/D,OAAO,KAILqqL,EAAS7/K,SAAS,OAAS6/K,EAASrqL,WAAW,OACjDqqL,EAAW,IAAI/uL,OAAO+uL,EAASxtL,MAAM,KAAK,KAG5C0yE,EAAW86G,GAAyB,MAAbA,EAAmBA,EAAS1iF,OAAS,KAG9D,OAAOp4B,GAGL+6G,GAAyB,SAAgC14K,GAC3D,IAAI29D,EAAWkvD,GAAY7sH,GAE3B,OAAI29D,GACKltC,SAASsmE,cAAcp5B,GAAYA,EAGrC,MAGLg7G,GAAyB,SAAgC34K,GAC3D,IAAI29D,EAAWkvD,GAAY7sH,GAC3B,OAAO29D,EAAWltC,SAASsmE,cAAcp5B,GAAY,MAGnDi7G,GAAmC,SAA0C54K,GAC/E,IAAKA,EACH,OAAO,EAIT,IAAI64K,EAAwBjoM,OAAOmvB,iBAAiBC,GAChDw0G,EAAqBqkE,EAAsBrkE,mBAC3C8e,EAAkBulD,EAAsBvlD,gBAExCwlD,EAA0BtmM,OAAOQ,WAAWwhI,GAC5CukE,EAAuBvmM,OAAOQ,WAAWsgJ,GAE7C,OAAKwlD,GAA4BC,GAKjCvkE,EAAqBA,EAAmBvpH,MAAM,KAAK,GACnDqoI,EAAkBA,EAAgBroI,MAAM,KAAK,GAnFjB,KAoFpBzY,OAAOQ,WAAWwhI,GAAsBhiI,OAAOQ,WAAWsgJ,KANzD,GASP0lD,GAAuB,SAA8Bh5K,GACvDA,EAAQm3G,cAAc,IAAIl9B,MAAMs+F,MAG9B,GAAY,SAAmBjqM,GACjC,SAAKA,GAAwB,WAAjBG,GAAQH,MAIM,qBAAfA,EAAIuvF,SACbvvF,EAAMA,EAAI,IAGmB,qBAAjBA,EAAIuuF,WAGhBtwB,GAAa,SAAoBj+D,GACnC,OAAI,GAAUA,GAELA,EAAIuvF,OAASvvF,EAAI,GAAKA,EAGZ,kBAARA,GAAoBA,EAAIW,OAAS,EACnCopM,GAAuB/pM,GAGzB,MAGL2qM,GAAkB,SAAyBC,EAAe7pK,EAAQ8pK,GACpEjtM,OAAOkH,KAAK+lM,GAAa9hL,SAAQ,SAAUlqB,GACzC,IAnHyBmB,EAmHrB8qM,EAAgBD,EAAYhsM,GAC5BV,EAAQ4iC,EAAOliC,GACfksM,EAAY5sM,GAAS,GAAUA,GAAS,UApHlC,QADe6B,EAqHsC7B,SApHrC6P,IAARhO,EACX,GAAGob,OAAOpb,GAGZ,GAAGgC,SAAS3E,KAAK2C,GAAK8mB,MAAM,eAAe,GAAG3M,cAkHnD,IAAK,IAAIuM,OAAOokL,GAAe5oM,KAAK6oM,GAClC,MAAM,IAAIlrM,UAAU,GAAGub,OAAOwvL,EAAc9jM,cAAe,cAAesU,OAAOvc,EAAU,qBAAuBuc,OAAO2vL,EAAW,yBAA2B3vL,OAAO0vL,EAAe,WAKvLp+E,GAAY,SAAmBh7F,GACjC,SAAK,GAAUA,IAAgD,IAApCA,EAAQukF,iBAAiBt1G,SAIgB,YAA7D8wB,iBAAiBC,GAASmD,iBAAiB,eAGhD8hE,GAAa,SAAoBjlE,GACnC,OAAKA,GAAWA,EAAQ68D,WAAai3F,KAAKC,iBAItC/zJ,EAAQm7F,UAAU36B,SAAS,cAIC,qBAArBxgE,EAAQ+Y,SACV/Y,EAAQ+Y,SAGV/Y,EAAQyoG,aAAa,aAAoD,UAArCzoG,EAAQiyB,aAAa,eAG9DqnJ,GAAiB,SAASA,EAAet5K,GAC3C,IAAKywB,SAAS80C,gBAAgBg0G,aAC5B,OAAO,KAIT,GAAmC,oBAAxBv5K,EAAQk2E,YAA4B,CAC7C,IAAI/qF,EAAO6U,EAAQk2E,cACnB,OAAO/qF,aAAgBy+K,WAAaz+K,EAAO,KAG7C,OAAI6U,aAAmB4pK,WACd5pK,EAIJA,EAAQP,WAIN65K,EAAet5K,EAAQP,YAHrB,MAMPztB,GAAO,aAEPwnM,GAAS,SAAgBx5K,GAC3B,OAAOA,EAAQgjF,cAGby2F,GAAY,WACd,IACI/7G,EADU9sF,OACO8sF,OAErB,OAAIA,IAAWjtC,SAASs2B,KAAK0hD,aAAa,qBACjC/qC,EAGF,MAGLg8G,GAA4B,GAmB5BC,GAAQ,WACV,MAAwC,QAAjClpJ,SAAS80C,gBAAgBlC,KAG9Bu2G,GAAqB,SAA4Bh1I,GArB5B,IAA4B/zD,IAsBhC,WACjB,IAAIqlH,EAAIujF,KAGR,GAAIvjF,EAAG,CACL,IAAInqH,EAAO64D,EAAOi1I,KACdC,EAAqB5jF,EAAEllH,GAAGjF,GAC9BmqH,EAAEllH,GAAGjF,GAAQ64D,EAAOm1I,gBACpB7jF,EAAEllH,GAAGjF,GAAM8C,YAAc+1D,EAEzBsxD,EAAEllH,GAAGjF,GAAMoqH,WAAa,WAEtB,OADAD,EAAEllH,GAAGjF,GAAQ+tM,EACNl1I,EAAOm1I,mBAjCQ,YAAxBtpJ,SAASsjD,YAEN2lG,GAA0BzqM,QAC7BwhD,SAAS1tB,iBAAiB,oBAAoB,WAC5C22K,GAA0BriL,SAAQ,SAAUxmB,GAC1C,OAAOA,UAKb6oM,GAA0B3qL,KAAKle,IAE/BA,KA2BAkiL,GAAU,SAAiBliL,GACL,oBAAbA,GACTA,KAIAmpM,GAAyB,SAAgCnpM,EAAUopM,GACrE,IAAIC,IAAoB3oM,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,KAAmBA,UAAU,GAEvF,GAAK2oM,EAAL,CAKA,IAAIC,EAAkB,EAClBC,EAAmBxB,GAAiCqB,GAAqBE,EACzEE,GAAS,EAETxwJ,EAAU,SAASA,EAAQylI,GAChBA,EAAMvgL,SAEJkrM,IAIfI,GAAS,EACTJ,EAAkBj3K,oBAAoBu1K,GAAgB1uJ,GACtDkpI,GAAQliL,KAGVopM,EAAkBl3K,iBAAiBw1K,GAAgB1uJ,GACnD0gB,YAAW,WACJ8vI,GACHrB,GAAqBiB,KAEtBG,QAzBDrnB,GAAQliL,IAsCRypM,GAAuB,SAA8Bp5G,EAAM0I,EAAe2wG,EAAeC,GAC3F,IAAI5mM,EAAQstF,EAAK/sF,QAAQy1F,GAEzB,IAAe,IAAXh2F,EACF,OAAOstF,GAAMq5G,GAAiBC,EAAiBt5G,EAAKjyF,OAAS,EAAI,GAGnE,IAAIwrM,EAAav5G,EAAKjyF,OAOtB,OANA2E,GAAS2mM,EAAgB,GAAK,EAE1BC,IACF5mM,GAASA,EAAQ6mM,GAAcA,GAG1Bv5G,EAAK1rF,KAAK6B,IAAI,EAAG7B,KAAK4B,IAAIxD,EAAO6mM,EAAa,MAgBnDC,GAAiB,qBACjBC,GAAiB,OACjBC,GAAgB,SAChBC,GAAgB,GAEhBC,GAAW,EACXC,GAAe,CACjB38F,WAAY,YACZC,WAAY,YAEV28F,GAAoB,4BACpBC,GAAe,IAAIzjL,IAAI,CAAC,QAAS,WAAY,UAAW,YAAa,cAAe,aAAc,iBAAkB,YAAa,WAAY,YAAa,cAAe,YAAa,UAAW,WAAY,QAAS,oBAAqB,aAAc,YAAa,WAAY,cAAe,cAAe,cAAe,YAAa,eAAgB,gBAAiB,eAAgB,gBAAiB,aAAc,QAAS,OAAQ,SAAU,QAAS,SAAU,SAAU,UAAW,WAAY,OAAQ,SAAU,eAAgB,SAAU,OAAQ,mBAAoB,mBAAoB,QAAS,QAAS,WAO7lB,SAAS0jL,GAAYl7K,EAAS9tB,GAC5B,OAAOA,GAAO,GAAGwX,OAAOxX,EAAK,MAAMwX,OAAOoxL,OAAe96K,EAAQ86K,UAAYA,KAG/E,SAASK,GAASn7K,GAChB,IAAI9tB,EAAMgpM,GAAYl7K,GAGtB,OAFAA,EAAQ86K,SAAW5oM,EACnB2oM,GAAc3oM,GAAO2oM,GAAc3oM,IAAQ,GACpC2oM,GAAc3oM,GAuCvB,SAASkpM,GAAYjvL,EAAQ09B,GAI3B,IAHA,IAAIwxJ,EAAqB9pM,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,KACzF+pM,EAAepvM,OAAOkH,KAAK+Y,GAEtB3gB,EAAI,EAAGiF,EAAM6qM,EAAarsM,OAAQzD,EAAIiF,EAAKjF,IAAK,CACvD,IAAI4gC,EAAQjgB,EAAOmvL,EAAa9vM,IAEhC,GAAI4gC,EAAMmvK,kBAAoB1xJ,GAAWzd,EAAMivK,qBAAuBA,EACpE,OAAOjvK,EAIX,OAAO,KAGT,SAASovK,GAAgBC,EAAmB5xJ,EAAS6xJ,GACnD,IAAIC,EAAgC,kBAAZ9xJ,EACpB0xJ,EAAkBI,EAAaD,EAAe7xJ,EAC9C+xJ,EAAYC,GAAaJ,GAO7B,OANeR,GAAaviL,IAAIkjL,KAG9BA,EAAYH,GAGP,CAACE,EAAYJ,EAAiBK,GAGvC,SAASE,GAAW97K,EAASy7K,EAAmB5xJ,EAAS6xJ,EAAcK,GACrE,GAAiC,kBAAtBN,GAAmCz7K,EAA9C,CAWA,GAPK6pB,IACHA,EAAU6xJ,EACVA,EAAe,MAKbV,GAAkBxqM,KAAKirM,GAAoB,CAC7C,IAAIO,EAAS,SAAgBhrM,GAC3B,OAAO,SAAUo7B,GACf,IAAKA,EAAMswE,eAAiBtwE,EAAMswE,gBAAkBtwE,EAAMkvE,iBAAmBlvE,EAAMkvE,eAAe9a,SAASp0D,EAAMswE,eAC/G,OAAO1rG,EAAGrF,KAAK0d,KAAM+iB,KAKvBsvK,EACFA,EAAeM,EAAON,GAEtB7xJ,EAAUmyJ,EAAOnyJ,GAIrB,IACIoyJ,EAAoBpyK,GADD2xK,GAAgBC,EAAmB5xJ,EAAS6xJ,GACV,GACrDC,EAAaM,EAAkB,GAC/BV,EAAkBU,EAAkB,GACpCL,EAAYK,EAAkB,GAE9B9vL,EAASgvL,GAASn7K,GAClBq6E,EAAWluF,EAAOyvL,KAAezvL,EAAOyvL,GAAa,IACrDM,EAAad,GAAY/gG,EAAUkhG,EAAiBI,EAAa9xJ,EAAU,MAE/E,GAAIqyJ,EACFA,EAAWH,OAASG,EAAWH,QAAUA,MAD3C,CAKA,IAAI7pM,EAAMgpM,GAAYK,EAAiBE,EAAkBpzL,QAAQqyL,GAAgB,KAC7E1pM,EAAK2qM,EAhGX,SAAoC37K,EAAS29D,EAAU3sF,GACrD,OAAO,SAAS64C,EAAQzd,GAGtB,IAFA,IAAI+vK,EAAcn8K,EAAQmkE,iBAAiBxG,GAElC5uF,EAASq9B,EAAMr9B,OAAQA,GAAUA,IAAWsa,KAAMta,EAASA,EAAO0wB,WACzE,IAAK,IAAIj0B,EAAI2wM,EAAYltM,OAAQzD,KAC/B,GAAI2wM,EAAY3wM,KAAOuD,EAQrB,OAPAq9B,EAAMkvE,eAAiBvsG,EAEnB86C,EAAQkyJ,QAEVK,GAAa7iG,IAAIv5E,EAASoM,EAAMh6B,KAAMurF,EAAU3sF,GAG3CA,EAAGU,MAAM3C,EAAQ,CAACq9B,IAM/B,OAAO,MA4EaiwK,CAA2Br8K,EAAS6pB,EAAS6xJ,GA5GrE,SAA0B17K,EAAShvB,GACjC,OAAO,SAAS64C,EAAQzd,GAOtB,OANAA,EAAMkvE,eAAiBt7E,EAEnB6pB,EAAQkyJ,QACVK,GAAa7iG,IAAIv5E,EAASoM,EAAMh6B,KAAMpB,GAGjCA,EAAGU,MAAMsuB,EAAS,CAACoM,KAoGuDkwK,CAAiBt8K,EAAS6pB,GAC7G74C,EAAGqqM,mBAAqBM,EAAa9xJ,EAAU,KAC/C74C,EAAGuqM,gBAAkBA,EACrBvqM,EAAG+qM,OAASA,EACZ/qM,EAAG8pM,SAAW5oM,EACdmoG,EAASnoG,GAAOlB,EAChBgvB,EAAQ+C,iBAAiB64K,EAAW5qM,EAAI2qM,KAG1C,SAASY,GAAcv8K,EAAS7T,EAAQyvL,EAAW/xJ,EAASwxJ,GAC1D,IAAIrqM,EAAKoqM,GAAYjvL,EAAOyvL,GAAY/xJ,EAASwxJ,GAE5CrqM,IAILgvB,EAAQgD,oBAAoB44K,EAAW5qM,EAAIo4B,QAAQiyK,WAC5ClvL,EAAOyvL,GAAW5qM,EAAG8pM,WAa9B,SAASe,GAAazvK,GAGpB,OADAA,EAAQA,EAAM/jB,QAAQsyL,GAAgB,IAC/BI,GAAa3uK,IAAUA,EAGhC,IAAIgwK,GAAe,CACjB79F,GAAI,SAAYv+E,EAASoM,EAAOyd,EAAS6xJ,GACvCI,GAAW97K,EAASoM,EAAOyd,EAAS6xJ,GAAc,IAEpDriG,IAAK,SAAar5E,EAASoM,EAAOyd,EAAS6xJ,GACzCI,GAAW97K,EAASoM,EAAOyd,EAAS6xJ,GAAc,IAEpDniG,IAAK,SAAav5E,EAASy7K,EAAmB5xJ,EAAS6xJ,GACrD,GAAiC,kBAAtBD,GAAmCz7K,EAA9C,CAIA,IACIw8K,EAAoB3yK,GADA2xK,GAAgBC,EAAmB5xJ,EAAS6xJ,GACV,GACtDC,EAAaa,EAAkB,GAC/BjB,EAAkBiB,EAAkB,GACpCZ,EAAYY,EAAkB,GAE9BC,EAAcb,IAAcH,EAC5BtvL,EAASgvL,GAASn7K,GAClB08K,EAAcjB,EAAkBrtL,WAAW,KAE/C,GAA+B,qBAApBmtL,EAAX,CAUImB,GACFxwM,OAAOkH,KAAK+Y,GAAQkL,SAAQ,SAAUslL,IAjD5C,SAAkC38K,EAAS7T,EAAQyvL,EAAWv2G,GAC5D,IAAIu3G,EAAoBzwL,EAAOyvL,IAAc,GAC7C1vM,OAAOkH,KAAKwpM,GAAmBvlL,SAAQ,SAAUwlL,GAC/C,GAAIA,EAAWjkL,SAASysE,GAAY,CAClC,IAAIj5D,EAAQwwK,EAAkBC,GAC9BN,GAAcv8K,EAAS7T,EAAQyvL,EAAWxvK,EAAMmvK,gBAAiBnvK,EAAMivK,wBA6CrEyB,CAAyB98K,EAAS7T,EAAQwwL,EAAclB,EAAkBlrM,MAAM,OAIpF,IAAIqsM,EAAoBzwL,EAAOyvL,IAAc,GAC7C1vM,OAAOkH,KAAKwpM,GAAmBvlL,SAAQ,SAAU0lL,GAC/C,IAAIF,EAAaE,EAAY10L,QAAQuyL,GAAe,IAEpD,IAAK6B,GAAehB,EAAkB7iL,SAASikL,GAAa,CAC1D,IAAIzwK,EAAQwwK,EAAkBG,GAC9BR,GAAcv8K,EAAS7T,EAAQyvL,EAAWxvK,EAAMmvK,gBAAiBnvK,EAAMivK,4BAtB3E,CAEE,IAAKlvL,IAAWA,EAAOyvL,GACrB,OAGFW,GAAcv8K,EAAS7T,EAAQyvL,EAAWL,EAAiBI,EAAa9xJ,EAAU,SAoBtFmwD,QAAS,SAAiBh6E,EAASoM,EAAOh7B,GACxC,GAAqB,kBAAVg7B,IAAuBpM,EAChC,OAAO,KAGT,IAIIg9K,EAJA9mF,EAAIujF,KACJmC,EAAYC,GAAazvK,GACzBqwK,EAAcrwK,IAAUwvK,EACxBqB,EAAWhC,GAAaviL,IAAIkjL,GAE5B9+F,GAAU,EACVogG,GAAiB,EACjBzgG,GAAmB,EACnBl8E,EAAM,KA2CV,OAzCIk8K,GAAevmF,IACjB8mF,EAAc9mF,EAAEjc,MAAM7tE,EAAOh7B,GAC7B8kH,EAAEl2F,GAASg6E,QAAQgjG,GACnBlgG,GAAWkgG,EAAYxhG,uBACvB0hG,GAAkBF,EAAYthG,gCAC9Be,EAAmBugG,EAAYxgG,sBAG7BygG,GACF18K,EAAMkwB,SAAS0sF,YAAY,eACvBqc,UAAUoiD,EAAW9+F,GAAS,GAElCv8E,EAAM,IAAI28G,YAAY9wG,EAAO,CAC3B0wE,QAASA,EACTj4C,YAAY,IAKI,qBAATzzD,GACTlF,OAAOkH,KAAKhC,GAAMimB,SAAQ,SAAUtqB,GAClCb,OAAOC,eAAeo0B,EAAKxzB,EAAK,CAC9BV,IAAK,WACH,OAAO+E,EAAKrE,SAMhB0vG,GACFl8E,EAAIw5E,iBAGFmjG,GACFl9K,EAAQm3G,cAAc52G,GAGpBA,EAAIk8E,kBAA2C,qBAAhBugG,GACjCA,EAAYjjG,iBAGPx5E,IAgBP48K,GAAa,IAAIx5K,IACjBkxE,GACG,SAAa70E,EAASjzB,EAAK6B,GACzBuuM,GAAWzkL,IAAIsH,IAClBm9K,GAAW1zL,IAAIuW,EAAS,IAAI2D,KAG9B,IAAIy5K,EAAcD,GAAW9wM,IAAI2zB,GAG5Bo9K,EAAY1kL,IAAI3rB,IAA6B,IAArBqwM,EAAY9wL,KAMzC8wL,EAAY3zL,IAAI1c,EAAK6B,GAJnBonB,QAAQ00C,MAAM,+EAA+EhhD,OAAOhc,MAAMM,KAAKovM,EAAYhqM,QAAQ,GAAI,OAXzIyhG,GAiBG,SAAa70E,EAASjzB,GACzB,OAAIowM,GAAWzkL,IAAIsH,IACVm9K,GAAW9wM,IAAI2zB,GAAS3zB,IAAIU,IAG9B,MAtBP8nG,GAwBM,SAAgB70E,EAASjzB,GAC/B,GAAKowM,GAAWzkL,IAAIsH,GAApB,CAIA,IAAIo9K,EAAcD,GAAW9wM,IAAI2zB,GACjCo9K,EAAYrjL,OAAOhtB,GAEM,IAArBqwM,EAAY9wL,MACd6wL,GAAWpjL,OAAOiG,KAmBpBq9K,GAA6B,WAC/B,SAASA,EAAcr9K,GACrBrxB,GAAgB0a,KAAMg0L,IAEtBr9K,EAAUusC,GAAWvsC,MAMrB3W,KAAK27D,SAAWhlD,EAChB60E,GAASxrF,KAAK27D,SAAU37D,KAAK3a,YAAY4uM,SAAUj0L,OAuDrD,OApDAla,GAAakuM,EAAe,CAAC,CAC3BtwM,IAAK,UACLN,MAAO,WACL,IAAI20C,EAAQ/3B,KAEZwrF,GAAYxrF,KAAK27D,SAAU37D,KAAK3a,YAAY4uM,UAC5ClB,GAAa7iG,IAAIlwF,KAAK27D,SAAU37D,KAAK3a,YAAY6uM,WACjDrxM,OAAOwjC,oBAAoBrmB,MAAMgO,SAAQ,SAAU8+H,GACjD/0G,EAAM+0G,GAAgB,UAGzB,CACDppJ,IAAK,iBACLN,MAAO,SAAwBoE,EAAUmvB,GACvC,IAAIw9K,IAAajsM,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,KAAmBA,UAAU,GAChFyoM,GAAuBnpM,EAAUmvB,EAASw9K,MAI1C,CAAC,CACHzwM,IAAK,cACLN,MAAO,SAAqBuzB,GAC1B,OAAO60E,GAAS70E,EAAS3W,KAAKi0L,YAE/B,CACDvwM,IAAK,sBACLN,MAAO,SAA6BuzB,GAClC,IAAIqP,EAAS99B,UAAUtC,OAAS,QAAsBqN,IAAjB/K,UAAU,GAAmBA,UAAU,GAAK,GACjF,OAAO8X,KAAKo0L,YAAYz9K,IAAY,IAAI3W,KAAK2W,EAA6B,WAApBvxB,GAAQ4gC,GAAuBA,EAAS,QAE/F,CACDtiC,IAAK,UACLV,IAAK,WACH,MAjDQ,UAmDT,CACDU,IAAK,OACLV,IAAK,WACH,MAAM,IAAIwtB,MAAM,yEAEjB,CACD9sB,IAAK,WACLV,IAAK,WACH,MAAO,MAAMqd,OAAOL,KAAKwwL,QAE1B,CACD9sM,IAAK,YACLV,IAAK,WACH,MAAO,IAAIqd,OAAOL,KAAKi0L,cAIpBD,EAlEwB,GAoF7BK,GAAc,IAAIh0L,OADL,YAIbi0L,GAAc,QAAQj0L,OAAOg0L,IAC7BE,GAAe,SAASl0L,OAAOg0L,IAC/BG,GAAyB,QAAQn0L,OAAOg0L,IAAah0L,OAJpC,aAcjBo0L,GAAqB,SAAUC,GACjCt1K,GAAUq1K,EAAOC,GAEjB,IAAIthK,EAAS1T,GAAa+0K,GAE1B,SAASA,IAGP,OAFAnvM,GAAgB0a,KAAMy0L,GAEfrhK,EAAO/qC,MAAM2X,KAAM9X,WA6E5B,OA1EApC,GAAa2uM,EAAO,CAAC,CACnB/wM,IAAK,QACLN,MACA,SAAeuzB,GACb,IAAIg+K,EAAch+K,EAAU3W,KAAK40L,gBAAgBj+K,GAAW3W,KAAK27D,SAE7Dk5H,EAAc70L,KAAK80L,mBAAmBH,GAEtB,OAAhBE,GAAwBA,EAAYzhG,kBAIxCpzF,KAAK+0L,eAAeJ,KAGrB,CACDjxM,IAAK,kBACLN,MAAO,SAAyBuzB,GAC9B,OAAO24K,GAAuB34K,IAAYA,EAAQ+uE,QAAQ,IAAIrlF,OAtC7C,YAwClB,CACD3c,IAAK,qBACLN,MAAO,SAA4BuzB,GACjC,OAAOo8K,GAAapiG,QAAQh6E,EAAS29K,MAEtC,CACD5wM,IAAK,iBACLN,MAAO,SAAwBuzB,GAC7B,IAAI+mB,EAAS19B,KAEb2W,EAAQm7F,UAAUltD,OAhDA,QAiDlB,IAAIuvI,EAAax9K,EAAQm7F,UAAU36B,SAlDjB,QAoDlBn3E,KAAKg1L,gBAAe,WAClB,OAAOt3J,EAAOu3J,gBAAgBt+K,KAC7BA,EAASw9K,KAEb,CACDzwM,IAAK,kBACLN,MAAO,SAAyBuzB,GAC9BA,EAAQiuC,SACRmuI,GAAapiG,QAAQh6E,EAAS49K,OAG9B,CAAC,CACH7wM,IAAK,OACLV,IACA,WACE,MA5EO,UA8ER,CACDU,IAAK,kBACLN,MAAO,SAAyB4iC,GAC9B,OAAOhmB,KAAKpW,MAAK,WACf,IAAIub,EAAOsvL,EAAMS,oBAAoBl1L,MAEtB,UAAXgmB,GACF7gB,EAAK6gB,GAAQhmB,WAIlB,CACDtc,IAAK,gBACLN,MAAO,SAAuB+xM,GAC5B,OAAO,SAAUpyK,GACXA,GACFA,EAAM2tE,iBAGRykG,EAAcrmF,MAAM9uG,WAKnBy0L,EArFgB,CAsFvBT,IAQFjB,GAAa79F,GAAG9tD,SAAUotJ,GA3GH,4BA2G6CC,GAAMW,cAAc,IAAIX,KAQ5FlE,GAAmBkE,IAcnB,IAEIY,GAAc,IAAIh1L,OADL,aAIbi1L,GAAyB,4BACzBC,GAAyB,QAAQl1L,OAAOg1L,IAAah1L,OAHpC,aAUjBm1L,GAAsB,SAAUC,GAClCr2K,GAAUo2K,EAAQC,GAElB,IAAIt+J,EAAUzX,GAAa81K,GAE3B,SAASA,IAGP,OAFAlwM,GAAgB0a,KAAMw1L,GAEfr+J,EAAQ9uC,MAAM2X,KAAM9X,WA8B7B,OA3BApC,GAAa0vM,EAAQ,CAAC,CACpB9xM,IAAK,SACLN,MACA,WAEE4c,KAAK27D,SAASzyB,aAAa,eAAgBlpC,KAAK27D,SAASm2C,UAAUpkB,OAzB/C,cA4BpB,CAAC,CACHhqG,IAAK,OACLV,IACA,WACE,MApCO,WAsCR,CACDU,IAAK,kBACLN,MAAO,SAAyB4iC,GAC9B,OAAOhmB,KAAKpW,MAAK,WACf,IAAIub,EAAOqwL,EAAON,oBAAoBl1L,MAEvB,WAAXgmB,GACF7gB,EAAK6gB,YAMNwvK,EAtCiB,CAuCxBxB,IA6BF,SAAS0B,GAAc50L,GACrB,MAAY,SAARA,GAIQ,UAARA,IAIAA,IAAQ3X,OAAO2X,GAAK7Z,WACfkC,OAAO2X,GAGJ,KAARA,GAAsB,SAARA,EACT,KAGFA,GAGT,SAAS60L,GAAiBjyM,GACxB,OAAOA,EAAIsb,QAAQ,UAAU,SAAU42L,GACrC,MAAO,IAAIv1L,OAAOu1L,EAAIx2L,kBA3C1B2zL,GAAa79F,GAAG9tD,SAAUmuJ,GAAwBD,IAAwB,SAAUvyK,GAClFA,EAAM2tE,iBACN,IAAIiC,EAAS5vE,EAAMr9B,OAAOggG,QAAQ4vG,IACvBE,GAAON,oBAAoBviG,GACjCjF,YASP6iG,GAAmBiF,IAkCnB,IAAIK,GAAc,CAChBC,iBAAkB,SAA0Bn/K,EAASjzB,EAAKN,GACxDuzB,EAAQuyB,aAAa,WAAW7oC,OAAOs1L,GAAiBjyM,IAAON,IAEjE2yM,oBAAqB,SAA6Bp/K,EAASjzB,GACzDizB,EAAQsyB,gBAAgB,WAAW5oC,OAAOs1L,GAAiBjyM,MAE7DsyM,kBAAmB,SAA2Br/K,GAC5C,IAAKA,EACH,MAAO,GAGT,IAAIshE,EAAa,GAQjB,OAPAp1F,OAAOkH,KAAK4sB,EAAQyU,SAASta,QAAO,SAAUptB,GAC5C,OAAOA,EAAIqhB,WAAW,SACrBiJ,SAAQ,SAAUtqB,GACnB,IAAIuyM,EAAUvyM,EAAIsb,QAAQ,MAAO,IACjCi3L,EAAUA,EAAQnqM,OAAO,GAAGsT,cAAgB62L,EAAQ/uM,MAAM,EAAG+uM,EAAQrwM,QACrEqyF,EAAWg+G,GAAWP,GAAc/+K,EAAQyU,QAAQ1nC,OAE/Cu0F,GAETi+G,iBAAkB,SAA0Bv/K,EAASjzB,GACnD,OAAOgyM,GAAc/+K,EAAQiyB,aAAa,WAAWvoC,OAAOs1L,GAAiBjyM,OAE/EmzC,OAAQ,SAAgBlgB,GACtB,IAAI1O,EAAO0O,EAAQoB,wBACnB,MAAO,CACLpP,IAAKV,EAAKU,IAAMy+B,SAASs2B,KAAKo+B,UAC9BrzF,KAAMR,EAAKQ,KAAO2+B,SAASs2B,KAAKq+B,aAGpCx7D,SAAU,SAAkB5pB,GAC1B,MAAO,CACLhO,IAAKgO,EAAQ67G,UACb/pH,KAAMkO,EAAQ48B,cAiBhB4iJ,GAAS,WAETC,GAAc,IAAI/1L,OADL,eAEbg2L,GAAiB,YAMjBC,GAAY,CACdloH,SAAU,IACV+qD,UAAU,EACViD,OAAO,EACPgJ,MAAO,QACP1gG,MAAM,EACNw3F,OAAO,GAELq6D,GAAgB,CAClBnoH,SAAU,mBACV+qD,SAAU,UACViD,MAAO,mBACPgJ,MAAO,mBACP1gG,KAAM,UACNw3F,MAAO,WAELs6D,GAAa,OACbC,GAAa,OACbC,GAAiB,OACjBC,GAAkB,QAClBC,IAA4C5xM,GAAxB8pM,GAAoB,GAzBvB,YAyB8E6H,IAAkB3xM,GAAgB8pM,GAxB/G,aAwBmJ4H,IAAiB5H,IACtL+H,GAAc,QAAQx2L,OAAO+1L,IAC7BU,GAAa,OAAOz2L,OAAO+1L,IAC3BW,GAAgB,UAAU12L,OAAO+1L,IACjCY,GAAmB,aAAa32L,OAAO+1L,IACvCa,GAAmB,aAAa52L,OAAO+1L,IACvCc,GAAmB,aAAa72L,OAAO+1L,IACvCe,GAAkB,YAAY92L,OAAO+1L,IACrCgB,GAAiB,WAAW/2L,OAAO+1L,IACnCiB,GAAoB,cAAch3L,OAAO+1L,IACzCkB,GAAkB,YAAYj3L,OAAO+1L,IACrCmB,GAAmB,YAAYl3L,OAAO+1L,IACtCoB,GAAwB,OAAOn3L,OAAO+1L,IAAa/1L,OAAOg2L,IAC1DoB,GAAyB,QAAQp3L,OAAO+1L,IAAa/1L,OAAOg2L,IAE5DqB,GAAsB,SAQtBC,GAAuB,wBAQvBC,GAAqB,QAQrBC,GAAwB,SAAUC,GACpC14K,GAAUy4K,EAAUC,GAEpB,IAAIhgK,EAAUpY,GAAam4K,GAE3B,SAASA,EAASlhL,EAASqP,GACzB,IAAIuY,EAoBJ,OAlBAj5C,GAAgB0a,KAAM63L,IAEtBt5J,EAASzG,EAAQx1C,KAAK0d,KAAM2W,IACrBohL,OAAS,KAChBx5J,EAAOy5J,UAAY,KACnBz5J,EAAO05J,eAAiB,KACxB15J,EAAO25J,WAAY,EACnB35J,EAAO45J,YAAa,EACpB55J,EAAO65J,aAAe,KACtB75J,EAAO85J,YAAc,EACrB95J,EAAO+5J,YAAc,EACrB/5J,EAAOmf,QAAUnf,EAAOg6J,WAAWvyK,GACnCuY,EAAOi6J,mBAAqBxJ,GAhCN,uBAgCkDzwJ,EAAOo9B,UAC/Ep9B,EAAOk6J,gBAAkB,iBAAkBrxJ,SAAS80C,iBAAmBskC,UAAUgE,eAAiB,EAClGjmF,EAAOm6J,cAAgB34K,QAAQx4B,OAAOoxM,cAEtCp6J,EAAOq6J,qBAEAr6J,EAqdT,OAjdAz4C,GAAa+xM,EAAU,CAAC,CACtBn0M,IAAK,OACLN,MACA,WACE4c,KAAK64L,OAAOrC,MAEb,CACD9yM,IAAK,kBACLN,MAAO,YAGAgkD,SAAShM,QAAUu2E,GAAU3xG,KAAK27D,WACrC37D,KAAKnZ,SAGR,CACDnD,IAAK,OACLN,MAAO,WACL4c,KAAK64L,OAAOpC,MAEb,CACD/yM,IAAK,QACLN,MAAO,SAAe2/B,GACfA,IACH/iB,KAAKk4L,WAAY,GAGflJ,GAtEe,2CAsE4BhvL,KAAK27D,YAClDg0H,GAAqB3vL,KAAK27D,UAC1B37D,KAAK84L,OAAM,IAGb9/D,cAAch5H,KAAKg4L,WACnBh4L,KAAKg4L,UAAY,OAElB,CACDt0M,IAAK,QACLN,MAAO,SAAe2/B,GACfA,IACH/iB,KAAKk4L,WAAY,GAGfl4L,KAAKg4L,YACPh/D,cAAch5H,KAAKg4L,WACnBh4L,KAAKg4L,UAAY,MAGfh4L,KAAK09C,SAAW19C,KAAK09C,QAAQ0wB,WAAapuE,KAAKk4L,YACjDl4L,KAAK+4L,kBAEL/4L,KAAKg4L,UAAYj/D,aAAa3xF,SAASwiI,gBAAkB5pK,KAAKg5L,gBAAkBh5L,KAAKnZ,MAAMlD,KAAKqc,MAAOA,KAAK09C,QAAQ0wB,aAGvH,CACD1qF,IAAK,KACLN,MAAO,SAAYmH,GACjB,IAAIgkD,EAASvuC,KAEbA,KAAKi4L,eAAiBjJ,GAAuB2I,GAAsB33L,KAAK27D,UAExE,IAAIw8E,EAAcn4I,KAAKi5L,cAAcj5L,KAAKi4L,gBAE1C,KAAI1tM,EAAQyV,KAAK+3L,OAAOnyM,OAAS,GAAK2E,EAAQ,GAI9C,GAAIyV,KAAKm4L,WACPpF,GAAa/iG,IAAIhwF,KAAK27D,SAAUm7H,IAAY,WAC1C,OAAOvoJ,EAAO7qB,GAAGn5B,UAFrB,CAOA,GAAI4tJ,IAAgB5tJ,EAGlB,OAFAyV,KAAKolI,aACLplI,KAAK84L,QAIP,IAAIj2I,EAAQt4D,EAAQ4tJ,EAAcq+C,GAAaC,GAE/Cz2L,KAAK64L,OAAOh2I,EAAO7iD,KAAK+3L,OAAOxtM,OAGhC,CACD7G,IAAK,aACLN,MAAO,SAAoB4iC,GAGzB,OAFAA,EAASnH,GAAcA,GAAcA,GAAc,GAAIy3K,IAAYT,GAAYG,kBAAkBh2L,KAAK27D,WAAgC,WAApBv2E,GAAQ4gC,GAAuBA,EAAS,IAC1J4pK,GAAgBuG,GAAQnwK,EAAQuwK,IACzBvwK,IAER,CACDtiC,IAAK,eACLN,MAAO,WACL,IAAI81M,EAAY/sM,KAAKyB,IAAIoS,KAAKs4L,aAE9B,KAAIY,GA1LY,IA0LhB,CAIA,IAAIp9K,EAAYo9K,EAAYl5L,KAAKs4L,YACjCt4L,KAAKs4L,YAAc,EAEdx8K,GAIL9b,KAAK64L,OAAO/8K,EAAY,EAAI66K,GAAkBD,OAE/C,CACDhzM,IAAK,qBACLN,MAAO,WACL,IAAI08D,EAAS9/C,KAETA,KAAK09C,QAAQy7E,UACf45D,GAAa79F,GAAGl1F,KAAK27D,SAAUo7H,IAAe,SAAUh0K,GACtD,OAAO+8B,EAAOq5I,SAASp2K,MAIA,UAAvB/iB,KAAK09C,QAAQ0nF,QACf2tD,GAAa79F,GAAGl1F,KAAK27D,SAAUq7H,IAAkB,SAAUj0K,GACzD,OAAO+8B,EAAOslF,MAAMriH,MAEtBgwK,GAAa79F,GAAGl1F,KAAK27D,SAAUs7H,IAAkB,SAAUl0K,GACzD,OAAO+8B,EAAOg5I,MAAM/1K,OAIpB/iB,KAAK09C,QAAQw+E,OAASl8H,KAAKy4L,iBAC7Bz4L,KAAKo5L,4BAGR,CACD11M,IAAK,0BACLN,MAAO,WACL,IAAI4iE,EAAShmD,KAETvX,EAAQ,SAAes6B,IACrBijC,EAAO0yI,eAhLI,QAgLc31K,EAAMwxE,aAAoCxxE,EAAMwxE,cAAgBqjG,GAEjF5xI,EAAO0yI,gBACjB1yI,EAAOqyI,YAAct1K,EAAMtL,QAAQ,GAAGO,SAFtCguC,EAAOqyI,YAAct1K,EAAM/K,SAW3BtvB,EAAM,SAAaq6B,IACjBijC,EAAO0yI,eA7LI,QA6Lc31K,EAAMwxE,aAAoCxxE,EAAMwxE,cAAgBqjG,KAC3F5xI,EAAOsyI,YAAcv1K,EAAM/K,QAAUguC,EAAOqyI,aAG9CryI,EAAOqzI,eAEsB,UAAzBrzI,EAAOtI,QAAQ0nF,QAQjBp/E,EAAOo/E,QAEHp/E,EAAOoyI,cACTn3I,aAAa+E,EAAOoyI,cAGtBpyI,EAAOoyI,aAAel3I,YAAW,SAAUn+B,GACzC,OAAOijC,EAAO8yI,MAAM/1K,KAzQH,IA0QSijC,EAAOtI,QAAQ0wB,YAI/C4gH,GA9NkB,qBA8NqBhvL,KAAK27D,UAAU3tD,SAAQ,SAAUsrL,GACtEvG,GAAa79F,GAAGokG,EAAS/B,IAAkB,SAAUjxM,GACnD,OAAOA,EAAEoqG,uBAIT1wF,KAAK04L,eACP3F,GAAa79F,GAAGl1F,KAAK27D,SAAU07H,IAAmB,SAAUt0K,GAC1D,OAAOt6B,EAAMs6B,MAEfgwK,GAAa79F,GAAGl1F,KAAK27D,SAAU27H,IAAiB,SAAUv0K,GACxD,OAAOr6B,EAAIq6B,MAGb/iB,KAAK27D,SAASm2C,UAAU1jG,IAhPD,mBAkPvB2kL,GAAa79F,GAAGl1F,KAAK27D,SAAUu7H,IAAkB,SAAUn0K,GACzD,OAAOt6B,EAAMs6B,MAEfgwK,GAAa79F,GAAGl1F,KAAK27D,SAAUw7H,IAAiB,SAAUp0K,GACxD,OApDO,SAAcA,GAEvBijC,EAAOsyI,YAAcv1K,EAAMtL,SAAWsL,EAAMtL,QAAQ7xB,OAAS,EAAI,EAAIm9B,EAAMtL,QAAQ,GAAGO,QAAUguC,EAAOqyI,YAkD9F7mK,CAAKzO,MAEdgwK,GAAa79F,GAAGl1F,KAAK27D,SAAUy7H,IAAgB,SAAUr0K,GACvD,OAAOr6B,EAAIq6B,SAIhB,CACDr/B,IAAK,WACLN,MAAO,SAAkB2/B,GACvB,IAAI,kBAAkB57B,KAAK47B,EAAMr9B,OAAOu7H,SAAxC,CAIA,IAAInlG,EAAY86K,GAAiB7zK,EAAMr/B,KAEnCo4B,IACFiH,EAAM2tE,iBAEN1wF,KAAK64L,OAAO/8K,OAGf,CACDp4B,IAAK,gBACLN,MAAO,SAAuBuzB,GAE5B,OADA3W,KAAK+3L,OAASphL,GAAWA,EAAQP,WAAa44K,GA5QhC,iBA4QmEr4K,EAAQP,YAAc,GAChGpW,KAAK+3L,OAAOjtM,QAAQ6rB,KAE5B,CACDjzB,IAAK,kBACLN,MAAO,SAAyBy/D,EAAO09B,GACrC,IAAIg5G,EAAS12I,IAAU2zI,GACvB,OAAOvF,GAAqBjxL,KAAK+3L,OAAQx3G,EAAeg5G,EAAQv5L,KAAK09C,QAAQhZ,QAE9E,CACDhhD,IAAK,qBACLN,MAAO,SAA4BiwG,EAAemmG,GAChD,IAAIC,EAAcz5L,KAAKi5L,cAAc5lG,GAEjCqmG,EAAY15L,KAAKi5L,cAAcjK,GAAuB2I,GAAsB33L,KAAK27D,WAErF,OAAOo3H,GAAapiG,QAAQ3wF,KAAK27D,SAAUk7H,GAAa,CACtDxjG,cAAeA,EACfv3E,UAAW09K,EACX70M,KAAM+0M,EACNh2K,GAAI+1K,MAGP,CACD/1M,IAAK,6BACLN,MAAO,SAAoCuzB,GACzC,GAAI3W,KAAKw4L,mBAAoB,CAC3B,IAAImB,EAAkB3K,GAzSN,UAySgDhvL,KAAKw4L,oBACrEmB,EAAgB7nF,UAAUltD,OAAO8yI,IACjCiC,EAAgB1wJ,gBAAgB,gBAGhC,IAFA,IAAI2wJ,EAAa5K,GAtSA,mBAsSwChvL,KAAKw4L,oBAErDr2M,EAAI,EAAGA,EAAIy3M,EAAWh0M,OAAQzD,IACrC,GAAIgH,OAAO8V,SAAS26L,EAAWz3M,GAAGymD,aAAa,oBAAqB,MAAQ5oC,KAAKi5L,cAActiL,GAAU,CACvGijL,EAAWz3M,GAAG2vH,UAAU1jG,IAAIspL,IAC5BkC,EAAWz3M,GAAG+mD,aAAa,eAAgB,QAC3C,UAKP,CACDxlD,IAAK,kBACLN,MAAO,WACL,IAAIuzB,EAAU3W,KAAKi4L,gBAAkBjJ,GAAuB2I,GAAsB33L,KAAK27D,UAEvF,GAAKhlD,EAAL,CAIA,IAAIkjL,EAAkB1wM,OAAO8V,SAAS0X,EAAQiyB,aAAa,oBAAqB,IAE5EixJ,GACF75L,KAAK09C,QAAQo8I,gBAAkB95L,KAAK09C,QAAQo8I,iBAAmB95L,KAAK09C,QAAQ0wB,SAC5EpuE,KAAK09C,QAAQ0wB,SAAWyrH,GAExB75L,KAAK09C,QAAQ0wB,SAAWpuE,KAAK09C,QAAQo8I,iBAAmB95L,KAAK09C,QAAQ0wB,YAGxE,CACD1qF,IAAK,SACLN,MAAO,SAAgB22M,EAAkBpjL,GACvC,IAAIyyC,EAASppD,KAET6iD,EAAQ7iD,KAAKg6L,kBAAkBD,GAE/Bx5G,EAAgByuG,GAAuB2I,GAAsB33L,KAAK27D,UAElEs+H,EAAqBj6L,KAAKi5L,cAAc14G,GAExC25G,EAAcvjL,GAAW3W,KAAKm6L,gBAAgBt3I,EAAO09B,GAErD65G,EAAmBp6L,KAAKi5L,cAAciB,GAEtCG,EAAYt6K,QAAQ/f,KAAKg4L,WACzBuB,EAAS12I,IAAU2zI,GACnB8D,EAAuBf,EA9VV,sBADF,oBAgWXgB,EAAiBhB,EA9VL,qBACA,qBA+VZC,EAAqBx5L,KAAKw6L,kBAAkB33I,GAEhD,GAAIq3I,GAAeA,EAAYpoF,UAAU36B,SAASugH,IAChD13L,KAAKm4L,YAAa,OAIpB,IAAIn4L,KAAKm4L,aAIQn4L,KAAKy6L,mBAAmBP,EAAaV,GAEvCpmG,kBAIV7S,GAAkB25G,EAAvB,CAKAl6L,KAAKm4L,YAAa,EAEdkC,GACFr6L,KAAKolI,QAGPplI,KAAK06L,2BAA2BR,GAEhCl6L,KAAKi4L,eAAiBiC,EAEtB,IAAIS,EAAmB,WACrB5H,GAAapiG,QAAQvnC,EAAOuS,SAAUm7H,GAAY,CAChDzjG,cAAe6mG,EACfp+K,UAAW09K,EACX70M,KAAMs1M,EACNv2K,GAAI02K,KAIR,GAAIp6L,KAAK27D,SAASm2C,UAAU36B,SA5YX,SA4YuC,CACtD+iH,EAAYpoF,UAAU1jG,IAAImsL,GAC1BpK,GAAO+J,GACP35G,EAAcuxB,UAAU1jG,IAAIksL,GAC5BJ,EAAYpoF,UAAU1jG,IAAIksL,GAU1Bt6L,KAAKg1L,gBARkB,WACrBkF,EAAYpoF,UAAUltD,OAAO01I,EAAsBC,GACnDL,EAAYpoF,UAAU1jG,IAAIspL,IAC1Bn3G,EAAcuxB,UAAUltD,OAAO8yI,GAAqB6C,EAAgBD,GACpElxI,EAAO+uI,YAAa,EACpBj3I,WAAWy5I,EAAkB,KAGOp6G,GAAe,QAErDA,EAAcuxB,UAAUltD,OAAO8yI,IAC/BwC,EAAYpoF,UAAU1jG,IAAIspL,IAC1B13L,KAAKm4L,YAAa,EAClBwC,IAGEN,GACFr6L,KAAK84L,WAGR,CACDp1M,IAAK,oBACLN,MAAO,SAA2B04B,GAChC,MAAK,CAAC66K,GAAiBD,IAAgBnnL,SAASuM,GAI5Cw0K,KACKx0K,IAAc46K,GAAiBD,GAAaD,GAG9C16K,IAAc46K,GAAiBF,GAAaC,GAP1C36K,IASV,CACDp4B,IAAK,oBACLN,MAAO,SAA2By/D,GAChC,MAAK,CAAC2zI,GAAYC,IAAYlnL,SAASszC,GAInCytI,KACKztI,IAAU4zI,GAAaC,GAAiBC,GAG1C9zI,IAAU4zI,GAAaE,GAAkBD,GAPvC7zI,KAUT,CAAC,CACHn/D,IAAK,UACLV,IAAK,WACH,OAAOszM,KAER,CACD5yM,IAAK,OACLV,IAAK,WACH,OAAOmzM,KAER,CACDzyM,IAAK,oBACLN,MAAO,SAA2BuzB,EAASqP,GACzC,IAAI7gB,EAAO0yL,EAAS3C,oBAAoBv+K,EAASqP,GAC7C03B,EAAUv4C,EAAKu4C,QAEK,WAApBt4D,GAAQ4gC,KACV03B,EAAU7+B,GAAcA,GAAc,GAAI6+B,GAAU13B,IAGtD,IAAIiwG,EAA2B,kBAAXjwG,EAAsBA,EAAS03B,EAAQ0+E,MAE3D,GAAsB,kBAAXp2G,EACT7gB,EAAKue,GAAGsC,QACH,GAAsB,kBAAXiwG,EAAqB,CACrC,GAA4B,qBAAjB9wH,EAAK8wH,GACd,MAAM,IAAInxI,UAAU,oBAAqBub,OAAO41H,EAAQ,MAG1D9wH,EAAK8wH,UACIv4E,EAAQ0wB,UAAY1wB,EAAQk9I,OACrCz1L,EAAKigI,QACLjgI,EAAK2zL,WAGR,CACDp1M,IAAK,kBACLN,MAAO,SAAyB4iC,GAC9B,OAAOhmB,KAAKpW,MAAK,WACfiuM,EAASgD,kBAAkB76L,KAAMgmB,QAGpC,CACDtiC,IAAK,sBACLN,MAAO,SAA6B2/B,GAClC,IAAIr9B,EAAS4pM,GAAuBtvL,MAEpC,GAAKta,GAAWA,EAAOosH,UAAU36B,SAlfb,YAkfpB,CAIA,IAAInxD,EAASnH,GAAcA,GAAc,GAAIg3K,GAAYG,kBAAkBtwM,IAAUmwM,GAAYG,kBAAkBh2L,OAE/GykI,EAAazkI,KAAK4oC,aAAa,oBAE/B67F,IACFz+G,EAAOooD,UAAW,GAGpBypH,EAASgD,kBAAkBn1M,EAAQsgC,GAE/By+G,GACFozD,EAASzD,YAAY1uM,GAAQg+B,GAAG+gH,GAGlC1hH,EAAM2tE,sBAIHmnG,EA/emB,CAgf1B7D,IAQFjB,GAAa79F,GAAG9tD,SAAUqwJ,GAlgBA,sCAkgB6CI,GAASiD,qBAChF/H,GAAa79F,GAAG3tG,OAAQiwM,IAAuB,WAG7C,IAFA,IAAIuD,EAAY/L,GAngBO,6BAqgBd7sM,EAAI,EAAGiF,EAAM2zM,EAAUn1M,OAAQzD,EAAIiF,EAAKjF,IAC/C01M,GAASgD,kBAAkBE,EAAU54M,GAAI01M,GAASzD,YAAY2G,EAAU54M,QAU5EouM,GAAmBsH,IAcnB,IAAImD,GAAS,WACTC,GAAa,cACbC,GAAc,IAAI76L,OAAO46L,IAEzBE,GAAY,CACdztG,QAAQ,EACR17E,OAAQ,IAENopL,GAAgB,CAClB1tG,OAAQ,UACR17E,OAAQ,oBAENqpL,GAAe,OAAOh7L,OAAO66L,IAC7BI,GAAgB,QAAQj7L,OAAO66L,IAC/BK,GAAe,OAAOl7L,OAAO66L,IAC7BM,GAAiB,SAASn7L,OAAO66L,IACjCO,GAAyB,QAAQp7L,OAAO66L,IAAa76L,OAbpC,aAcjBq7L,GAAoB,OACpBC,GAAsB,WACtBC,GAAwB,aACxBC,GAAuB,YACvBC,GAAQ,QAGRC,GAAyB,8BAOzBC,GAAwB,SAAUC,GACpC78K,GAAU48K,EAAUC,GAEpB,IAAIrgK,EAAUlc,GAAas8K,GAE3B,SAASA,EAASrlL,EAASqP,GACzB,IAAI6mC,EAEJvnE,GAAgB0a,KAAMg8L,IAEtBnvI,EAASjxB,EAAQt5C,KAAK0d,KAAM2W,IACrBulL,kBAAmB,EAC1BrvI,EAAOnP,QAAUmP,EAAO0rI,WAAWvyK,GACnC6mC,EAAOsvI,cAAgBnN,GAAoB,GAAG3uL,OAAO07L,GAAwB,YAAa17L,OAAOwsD,EAAO8O,SAAS/yE,GAAI,OAAU,GAAGyX,OAAO07L,GAAwB,sBAAuB17L,OAAOwsD,EAAO8O,SAAS/yE,GAAI,OAGnN,IAFA,IAAIwzM,EAAapN,GAAoB+M,IAE5B55M,EAAI,EAAGiF,EAAMg1M,EAAWx2M,OAAQzD,EAAIiF,EAAKjF,IAAK,CACrD,IAAI0yF,EAAOunH,EAAWj6M,GAClBmyF,EAAW+6G,GAAuBx6G,GAClCwnH,EAAgBrN,GAAoB16G,GAAUxjE,QAAO,SAAUwrL,GACjE,OAAOA,IAAczvI,EAAO8O,YAGb,OAAb2Y,GAAqB+nH,EAAcz2M,SACrCinE,EAAO0vI,UAAYjoH,EAEnBznB,EAAOsvI,cAAcz2L,KAAKmvE,IAc9B,OAVAhoB,EAAOwnF,QAAUxnF,EAAOnP,QAAQ1rC,OAAS66C,EAAO2vI,aAAe,KAE1D3vI,EAAOnP,QAAQ1rC,QAClB66C,EAAO4vI,0BAA0B5vI,EAAO8O,SAAU9O,EAAOsvI,eAGvDtvI,EAAOnP,QAAQgwC,QACjB7gC,EAAO6gC,SAGF7gC,EAiQT,OA7PA/mE,GAAak2M,EAAU,CAAC,CACtBt4M,IAAK,SACLN,MACA,WACM4c,KAAK27D,SAASm2C,UAAU36B,SAASukH,IACnC17L,KAAK8lB,OAEL9lB,KAAK2lB,SAGR,CACDjiC,IAAK,OACLN,MAAO,WACL,IAAI0qE,EAAS9tD,KAEb,IAAIA,KAAKk8L,mBAAoBl8L,KAAK27D,SAASm2C,UAAU36B,SAASukH,IAA9D,CAIA,IAAIgB,EACAC,EAEA38L,KAAKq0I,SASgB,KARvBqoD,EAAU1N,GA3EK,qBA2EiChvL,KAAKq0I,SAASvjI,QAAO,SAAU+jE,GAC7E,MAAqC,kBAA1B/mB,EAAOpQ,QAAQ1rC,OACjB6iE,EAAKjsC,aAAa,oBAAsBklB,EAAOpQ,QAAQ1rC,OAGzD6iE,EAAKi9B,UAAU36B,SAASwkH,QAGrB/1M,SACV82M,EAAU,MAId,IAAIhkL,EAAYs2K,GAAuBhvL,KAAKu8L,WAE5C,GAAIG,EAAS,CACX,IAAIE,EAAiBF,EAAQ9/G,MAAK,SAAU/H,GAC1C,OAAOn8D,IAAcm8D,KAIvB,IAFA8nH,EAAcC,EAAiBZ,EAAS5H,YAAYwI,GAAkB,OAEnDD,EAAYT,iBAC7B,OAMJ,IAFiBnJ,GAAapiG,QAAQ3wF,KAAK27D,SAAU0/H,IAEtCjoG,iBAAf,CAIIspG,GACFA,EAAQ1uL,SAAQ,SAAU6uL,GACpBnkL,IAAcmkL,GAChBb,EAASc,kBAAkBD,EAAY,QAGpCF,GACHnxG,GAASqxG,EAAY5B,GAAY,SAKvC,IAAIxxM,EAAYuW,KAAK+8L,gBAErB/8L,KAAK27D,SAASm2C,UAAUltD,OAAO+2I,IAE/B37L,KAAK27D,SAASm2C,UAAU1jG,IAAIwtL,IAE5B57L,KAAK27D,SAASz4D,MAAMzZ,GAAa,EAE7BuW,KAAKm8L,cAAcv2M,QACrBoa,KAAKm8L,cAAcnuL,SAAQ,SAAU2I,GACnCA,EAAQm7F,UAAUltD,OAAOi3I,IACzBllL,EAAQuyB,aAAa,iBAAiB,MAI1ClpC,KAAKg9L,kBAAiB,GAEtB,IAYIC,EAAuBxzM,EAAU,GAAGsC,cAAgBtC,EAAUvC,MAAM,GACpEg2M,EAAa,SAAS78L,OAAO48L,GAEjCj9L,KAAKg1L,gBAfU,WACblnI,EAAO6N,SAASm2C,UAAUltD,OAAOg3I,IAEjC9tI,EAAO6N,SAASm2C,UAAU1jG,IAAIutL,GAAqBD,IAEnD5tI,EAAO6N,SAASz4D,MAAMzZ,GAAa,GAEnCqkE,EAAOkvI,kBAAiB,GAExBjK,GAAapiG,QAAQ7iC,EAAO6N,SAAU2/H,MAMVt7L,KAAK27D,UAAU,GAE7C37D,KAAK27D,SAASz4D,MAAMzZ,GAAa,GAAG4W,OAAOL,KAAK27D,SAASuhI,GAAa,UAEvE,CACDx5M,IAAK,OACLN,MAAO,WACL,IAAI0sE,EAAU9vD,KAEd,IAAIA,KAAKk8L,kBAAqBl8L,KAAK27D,SAASm2C,UAAU36B,SAASukH,MAI9C3I,GAAapiG,QAAQ3wF,KAAK27D,SAAU4/H,IAEtCnoG,iBAAf,CAIA,IAAI3pG,EAAYuW,KAAK+8L,gBAErB/8L,KAAK27D,SAASz4D,MAAMzZ,GAAa,GAAG4W,OAAOL,KAAK27D,SAAS5jD,wBAAwBtuB,GAAY,MAC7F0mM,GAAOnwL,KAAK27D,UAEZ37D,KAAK27D,SAASm2C,UAAU1jG,IAAIwtL,IAE5B57L,KAAK27D,SAASm2C,UAAUltD,OAAO+2I,GAAqBD,IAEpD,IAAIyB,EAAqBn9L,KAAKm8L,cAAcv2M,OAE5C,GAAIu3M,EAAqB,EACvB,IAAK,IAAIh7M,EAAI,EAAGA,EAAIg7M,EAAoBh7M,IAAK,CAC3C,IAAIwuG,EAAU3wF,KAAKm8L,cAAch6M,GAC7B0yF,EAAOy6G,GAAuB3+F,GAE9B9b,IAASA,EAAKi9B,UAAU36B,SAASukH,MACnC/qG,EAAQmhB,UAAU1jG,IAAIytL,IACtBlrG,EAAQznD,aAAa,iBAAiB,IAK5ClpC,KAAKg9L,kBAAiB,GAYtBh9L,KAAK27D,SAASz4D,MAAMzZ,GAAa,GAEjCuW,KAAKg1L,gBAZU,WACbllI,EAAQktI,kBAAiB,GAEzBltI,EAAQ6L,SAASm2C,UAAUltD,OAAOg3I,IAElC9rI,EAAQ6L,SAASm2C,UAAU1jG,IAAIutL,IAE/B5I,GAAapiG,QAAQ7gC,EAAQ6L,SAAU6/H,MAKXx7L,KAAK27D,UAAU,MAE9C,CACDj4E,IAAK,mBACLN,MAAO,SAA0ByoJ,GAC/B7rI,KAAKk8L,iBAAmBrwD,IAGzB,CACDnoJ,IAAK,aACLN,MAAO,SAAoB4iC,GAKzB,OAJAA,EAASnH,GAAcA,GAAc,GAAIs8K,IAAYn1K,IAC9C0nE,OAAS3tE,QAAQiG,EAAO0nE,QAE/BkiG,GAAgBoL,GAAQh1K,EAAQo1K,IACzBp1K,IAER,CACDtiC,IAAK,gBACLN,MAAO,WACL,OAAO4c,KAAK27D,SAASm2C,UAAU36B,SAAS2kH,IAASA,GApO1C,WAsOR,CACDp4M,IAAK,aACLN,MAAO,WACL,IAAI80E,EAAUl4D,KAEVgS,EAAShS,KAAK09C,QAAQ1rC,OAC1BA,EAASkxC,GAAWlxC,GACpB,IAAIsiE,EAAW,GAAGj0E,OAAO07L,GAAwB,qBAAsB17L,OAAO2R,EAAQ,MAMtF,OALAg9K,GAAoB16G,EAAUtiE,GAAQhE,SAAQ,SAAU2I,GACtD,IAAIiqE,EAAW0uG,GAAuB34K,GAEtCuhD,EAAQukI,0BAA0B77G,EAAU,CAACjqE,OAExC3E,IAER,CACDtuB,IAAK,4BACLN,MAAO,SAAmCuzB,EAASymL,GACjD,GAAKzmL,GAAYymL,EAAax3M,OAA9B,CAIA,IAAIy3M,EAAS1mL,EAAQm7F,UAAU36B,SAASukH,IACxC0B,EAAapvL,SAAQ,SAAU6mE,GACzBwoH,EACFxoH,EAAKi9B,UAAUltD,OAAOi3I,IAEtBhnH,EAAKi9B,UAAU1jG,IAAIytL,IAGrBhnH,EAAK3rC,aAAa,gBAAiBm0J,UAIrC,CAAC,CACH35M,IAAK,UACLV,IAAK,WACH,OAAOm4M,KAER,CACDz3M,IAAK,OACLV,IAAK,WACH,OAAOg4M,KAER,CACDt3M,IAAK,oBACLN,MAAO,SAA2BuzB,EAASqP,GACzC,IAAI7gB,EAAO62L,EAAS5H,YAAYz9K,GAE5B+mC,EAAU7+B,GAAcA,GAAcA,GAAc,GAAIs8K,IAAYtF,GAAYG,kBAAkBr/K,IAA+B,WAApBvxB,GAAQ4gC,IAAwBA,EAASA,EAAS,IAUnK,IARK7gB,GAAQu4C,EAAQgwC,QAA4B,kBAAX1nE,GAAuB,YAAY7+B,KAAK6+B,KAC5E03B,EAAQgwC,QAAS,GAGdvoF,IACHA,EAAO,IAAI62L,EAASrlL,EAAS+mC,IAGT,kBAAX13B,EAAqB,CAC9B,GAA4B,qBAAjB7gB,EAAK6gB,GACd,MAAM,IAAIlhC,UAAU,oBAAqBub,OAAO2lB,EAAQ,MAG1D7gB,EAAK6gB,QAGR,CACDtiC,IAAK,kBACLN,MAAO,SAAyB4iC,GAC9B,OAAOhmB,KAAKpW,MAAK,WACfoyM,EAASc,kBAAkB98L,KAAMgmB,UAKhCg2K,EAzSmB,CA0S1BhI,IAQFjB,GAAa79F,GAAG9tD,SAAUq0J,GAAwBM,IAAwB,SAAUh5K,IAErD,MAAzBA,EAAMr9B,OAAOu7H,SAAmBl+F,EAAMkvE,gBAAmD,MAAjClvE,EAAMkvE,eAAegvB,UAC/El+F,EAAM2tE,iBAGR,IAAI4sG,EAAczH,GAAYG,kBAAkBh2L,MAC5Cs0E,EAAW+6G,GAAuBrvL,MACfgvL,GAAoB16G,GAC1BtmE,SAAQ,SAAU2I,GACjC,IACIqP,EADA7gB,EAAO62L,GAAS5H,YAAYz9K,GAG5BxR,GAEmB,OAAjBA,EAAKkvI,SAAkD,kBAAvBipD,EAAYtrL,SAC9C7M,EAAKu4C,QAAQ1rC,OAASsrL,EAAYtrL,OAClC7M,EAAKkvI,QAAUlvI,EAAKq3L,cAGtBx2K,EAAS,UAETA,EAASs3K,EAGXtB,GAASc,kBAAkBnmL,EAASqP,SAUxCuqK,GAAmByL,IAcnB,IAAIuB,GAAS,WAETC,GAAc,IAAIn9L,OADL,eAEbo9L,GAAiB,YACjBC,GAAe,SACfC,GAAY,QAEZC,GAAe,UACfC,GAAiB,YAGjBC,GAAiB,IAAInyL,OAAO,GAAGtL,OAAOu9L,GAAc,KAAKv9L,OAAOw9L,GAAgB,KAAKx9L,OAAOq9L,KAC5FK,GAAe,OAAO19L,OAAOm9L,IAC7BQ,GAAiB,SAAS39L,OAAOm9L,IACjCS,GAAe,OAAO59L,OAAOm9L,IAC7BU,GAAgB,QAAQ79L,OAAOm9L,IAC/BW,GAAc,QAAQ99L,OAAOm9L,IAC7BY,GAAyB,QAAQ/9L,OAAOm9L,IAAan9L,OAAOo9L,IAC5DY,GAAyB,UAAUh+L,OAAOm9L,IAAan9L,OAAOo9L,IAC9Da,GAAuB,QAAQj+L,OAAOm9L,IAAan9L,OAAOo9L,IAC1Dc,GAAoB,OAKpBC,GAAyB,8BACzBC,GAAgB,iBAGhBC,GAAgBpO,KAAU,UAAY,YACtCqO,GAAmBrO,KAAU,YAAc,UAC3CsO,GAAmBtO,KAAU,aAAe,eAC5CuO,GAAsBvO,KAAU,eAAiB,aACjDwO,GAAkBxO,KAAU,aAAe,cAC3CyO,GAAiBzO,KAAU,cAAgB,aAC3C0O,GAAY,CACdnoK,OAAQ,CAAC,EAAG,GACZq9B,SAAU,kBACV2sH,UAAW,SACXpiJ,QAAS,UACTwgK,aAAc,KACdC,WAAW,GAETC,GAAgB,CAClBtoK,OAAQ,0BACRq9B,SAAU,mBACV2sH,UAAW,0BACXpiJ,QAAS,SACTwgK,aAAc,yBACdC,UAAW,oBAQT,GAAwB,SAAUE,GACpChgL,GAAUigL,EAAUD,GAEpB,IAAI3hK,EAAU/d,GAAa2/K,GAE3B,SAASA,EAAS1oL,EAASqP,GACzB,IAAIo2C,EAYJ,OAVA92E,GAAgB0a,KAAMq/L,IAEtBjjI,EAAU3+B,EAAQn7C,KAAK0d,KAAM2W,IACrB2oL,QAAU,KAClBljI,EAAQ1e,QAAU0e,EAAQm8H,WAAWvyK,GACrCo2C,EAAQmjI,MAAQnjI,EAAQojI,kBACxBpjI,EAAQqjI,UAAYrjI,EAAQsjI,gBAE5BtjI,EAAQw8H,qBAEDx8H,EA8ZT,OA1ZAt2E,GAAau5M,EAAU,CAAC,CACtB37M,IAAK,SACLN,MACA,WACMw4F,GAAW57E,KAAK27D,YAIL37D,KAAK27D,SAASm2C,UAAU36B,SAASonH,IAG9Cv+L,KAAK8lB,OAIP9lB,KAAK2lB,UAEN,CACDjiC,IAAK,OACLN,MAAO,WACL,IAAIw4F,GAAW57E,KAAK27D,YAAa37D,KAAKu/L,MAAMztF,UAAU36B,SAASonH,IAA/D,CAIA,IAAIvsL,EAASqtL,EAASM,qBAAqB3/L,KAAK27D,UAC5C03B,EAAgB,CAClBA,cAAerzF,KAAK27D,UAItB,IAFgBo3H,GAAapiG,QAAQ3wF,KAAK27D,SAAUsiI,GAAc5qG,GAEpDD,iBAAd,CAKA,GAAIpzF,KAAKy/L,UACP5J,GAAYC,iBAAiB91L,KAAKu/L,MAAO,SAAU,YAC9C,CACL,GAAsB,qBAAX,EACT,MAAM,IAAIz6M,UAAU,gEAGtB,IAAI6iM,EAAmB3nL,KAAK27D,SAEG,WAA3B37D,KAAK09C,QAAQmjI,UACf8G,EAAmB31K,EACV,GAAUhS,KAAK09C,QAAQmjI,WAChC8G,EAAmBzkI,GAAWljD,KAAK09C,QAAQmjI,WACE,WAApCz7L,GAAQ4a,KAAK09C,QAAQmjI,aAC9B8G,EAAmB3nL,KAAK09C,QAAQmjI,WAGlC,IAAIoe,EAAej/L,KAAK4/L,mBAEpBC,EAAkBZ,EAAalS,UAAUnwG,MAAK,SAAUowG,GAC1D,MAAyB,gBAAlBA,EAAStqM,OAA+C,IAArBsqM,EAAS5hJ,WAErDprC,KAAKs/L,QAAU,GAAoB3X,EAAkB3nL,KAAKu/L,MAAON,GAE7DY,GACFhK,GAAYC,iBAAiB91L,KAAKu/L,MAAO,SAAU,UASrD,IAAI/5I,EADN,GAAI,iBAAkBpe,SAAS80C,kBAAoBlqE,EAAO0zE,QAxHtC,gBA2HjBlgC,EAAQ,IAAInlD,OAAOhY,MAAMm9D,EAAOrhE,GAAmBijD,SAASs2B,KAAKkV,WAAW5kE,SAAQ,SAAU6mE,GAC7F,OAAOk+G,GAAa79F,GAAGrgB,EAAM,YAAalsF,OAI9CqX,KAAK27D,SAASk5B,QAEd70F,KAAK27D,SAASzyB,aAAa,iBAAiB,GAE5ClpC,KAAKu/L,MAAMztF,UAAUpkB,OAAO6wG,IAE5Bv+L,KAAK27D,SAASm2C,UAAUpkB,OAAO6wG,IAE/BxL,GAAapiG,QAAQ3wF,KAAK27D,SAAUuiI,GAAe7qG,OAEpD,CACD3vG,IAAK,OACLN,MAAO,WACL,IAAIw4F,GAAW57E,KAAK27D,WAAc37D,KAAKu/L,MAAMztF,UAAU36B,SAASonH,IAAhE,CAIA,IAAIlrG,EAAgB,CAClBA,cAAerzF,KAAK27D,UAGtB37D,KAAK8/L,cAAczsG,MAEpB,CACD3vG,IAAK,UACLN,MAAO,WACD4c,KAAKs/L,SACPt/L,KAAKs/L,QAAQhtI,UAGfvzC,GAAKE,GAAgBogL,EAASt7M,WAAY,UAAWic,MAAM1d,KAAK0d,QAEjE,CACDtc,IAAK,SACLN,MAAO,WACL4c,KAAKy/L,UAAYz/L,KAAK0/L,gBAElB1/L,KAAKs/L,SACPt/L,KAAKs/L,QAAQn4K,WAIhB,CACDzjC,IAAK,qBACLN,MAAO,WACL,IAAIk9E,EAAUtgE,KAEd+yL,GAAa79F,GAAGl1F,KAAK27D,SAAUwiI,IAAa,SAAUp7K,GACpDA,EAAM2tE,iBAENpwB,EAAQotB,cAGX,CACDhqG,IAAK,gBACLN,MAAO,SAAuBiwG,GAG5B,IAFgB0/F,GAAapiG,QAAQ3wF,KAAK27D,SAAUoiI,GAAc1qG,GAEpDD,iBAAd,CAOE,IAAI/nC,EADN,GAAI,iBAAkBjkB,SAAS80C,iBAG5B7wB,EAAQ,IAAIhrD,OAAOhY,MAAMgjE,EAAOlnE,GAAmBijD,SAASs2B,KAAKkV,WAAW5kE,SAAQ,SAAU6mE,GAC7F,OAAOk+G,GAAa7iG,IAAIrb,EAAM,YAAalsF,OAI3CqX,KAAKs/L,SACPt/L,KAAKs/L,QAAQhtI,UAGftyD,KAAKu/L,MAAMztF,UAAUltD,OAAO25I,IAE5Bv+L,KAAK27D,SAASm2C,UAAUltD,OAAO25I,IAE/Bv+L,KAAK27D,SAASzyB,aAAa,gBAAiB,SAE5C2sJ,GAAYE,oBAAoB/1L,KAAKu/L,MAAO,UAC5CxM,GAAapiG,QAAQ3wF,KAAK27D,SAAUqiI,GAAgB3qG,MAErD,CACD3vG,IAAK,aACLN,MAAO,SAAoB4iC,GAIzB,GAHAA,EAASnH,GAAcA,GAAcA,GAAc,GAAI7e,KAAK3a,YAAY06M,SAAUlK,GAAYG,kBAAkBh2L,KAAK27D,WAAY31C,GACjI4pK,GAAgB2N,GAAQv3K,EAAQhmB,KAAK3a,YAAY26M,aAEf,WAA9B56M,GAAQ4gC,EAAO66J,aAA4B,GAAU76J,EAAO66J,YAAgE,oBAA3C76J,EAAO66J,UAAU9oK,sBAEpG,MAAM,IAAIjzB,UAAU,GAAGub,OAAOk9L,GAAOxxM,cAAe,mGAGtD,OAAOi6B,IAER,CACDtiC,IAAK,kBACLN,MAAO,WACL,OAAO4rM,GAAoBhvL,KAAK27D,SAAU8iI,IAAe,KAE1D,CACD/6M,IAAK,gBACLN,MAAO,WACL,IAAI68M,EAAiBjgM,KAAK27D,SAASvlD,WAEnC,GAAI6pL,EAAenuF,UAAU36B,SAjPV,WAkPjB,OAAO2nH,GAGT,GAAImB,EAAenuF,UAAU36B,SApPR,aAqPnB,OAAO4nH,GAIT,IAAI/gD,EAAkF,QAA1EtnI,iBAAiB1W,KAAKu/L,OAAOzlL,iBAAiB,iBAAiB4yF,OAE3E,OAAIuzF,EAAenuF,UAAU36B,SA7PX,UA8PT6mE,EAAQ2gD,GAAmBD,GAG7B1gD,EAAQ6gD,GAAsBD,KAEtC,CACDl7M,IAAK,gBACLN,MAAO,WACL,OAAgE,OAAzD4c,KAAK27D,SAAS+pB,QAAQ,IAAIrlF,OAnQf,aAqQnB,CACD3c,IAAK,aACLN,MAAO,WACL,IAAIuiF,EAAU3lE,KAEV62B,EAAS72B,KAAK09C,QAAQ7mB,OAE1B,MAAsB,kBAAXA,EACFA,EAAOj1B,MAAM,KAAKlX,KAAI,SAAUoW,GACrC,OAAO3X,OAAO8V,SAAS6B,EAAK,OAIV,oBAAX+1B,EACF,SAAUqpK,GACf,OAAOrpK,EAAOqpK,EAAYv6H,EAAQhK,WAI/B9kC,IAER,CACDnzC,IAAK,mBACLN,MAAO,WACL,IAAI+8M,EAAwB,CAC1BxgB,UAAW3/K,KAAKogM,gBAChBrT,UAAW,CAAC,CACVrqM,KAAM,kBACNsI,QAAS,CACPkpE,SAAUl0D,KAAK09C,QAAQwW,WAExB,CACDxxE,KAAM,SACNsI,QAAS,CACP6rC,OAAQ72B,KAAKqgM,iBAYnB,MAP6B,WAAzBrgM,KAAK09C,QAAQjf,UACf0hK,EAAsBpT,UAAY,CAAC,CACjCrqM,KAAM,cACN0oD,SAAS,KAINvsB,GAAcA,GAAc,GAAIshL,GAA6D,oBAA9BngM,KAAK09C,QAAQuhJ,aAA8Bj/L,KAAK09C,QAAQuhJ,aAAakB,GAAyBngM,KAAK09C,QAAQuhJ,gBAElL,CACDv7M,IAAK,kBACLN,MAAO,SAAyBuoE,GAC9B,IAAIjoE,EAAMioE,EAAMjoE,IACZgC,EAASimE,EAAMjmE,OACfwoB,EAAQ8gL,GAtTW,8DAsTiChvL,KAAKu/L,OAAOzuL,OAAO6gG,IAEtEzjG,EAAMtoB,QAMXqrM,GAAqB/iL,EAAOxoB,EAAQhC,IAAQm6M,IAAiB3vL,EAAMqB,SAAS7pB,IAASmvG,WAGrF,CAAC,CACHnxG,IAAK,UACLV,IAAK,WACH,OAAOg8M,KAER,CACDt7M,IAAK,cACLV,IAAK,WACH,OAAOm8M,KAER,CACDz7M,IAAK,OACLV,IAAK,WACH,OAAOu6M,KAER,CACD75M,IAAK,oBACLN,MAAO,SAA2BuzB,EAASqP,GACzC,IAAI7gB,EAAOk6L,EAASnK,oBAAoBv+K,EAASqP,GAEjD,GAAsB,kBAAXA,EAAqB,CAC9B,GAA4B,qBAAjB7gB,EAAK6gB,GACd,MAAM,IAAIlhC,UAAU,oBAAqBub,OAAO2lB,EAAQ,MAG1D7gB,EAAK6gB,QAGR,CACDtiC,IAAK,kBACLN,MAAO,SAAyB4iC,GAC9B,OAAOhmB,KAAKpW,MAAK,WACfy1M,EAASiB,kBAAkBtgM,KAAMgmB,QAGpC,CACDtiC,IAAK,aACLN,MAAO,SAAoB2/B,GACzB,IAAIA,GA1Xe,IA0XLA,EAAM4vE,SAAgD,UAAf5vE,EAAMh6B,MA7XnD,QA6XuEg6B,EAAMr/B,KAMrF,IAFA,IAAI68M,EAAUvR,GAAoBwP,IAEzBr8M,EAAI,EAAGiF,EAAMm5M,EAAQ36M,OAAQzD,EAAIiF,EAAKjF,IAAK,CAClD,IAAIsgB,EAAU48L,EAASjL,YAAYmM,EAAQp+M,IAE3C,GAAKsgB,IAAyC,IAA9BA,EAAQi7C,QAAQwhJ,WAI3Bz8L,EAAQk5D,SAASm2C,UAAU36B,SAASonH,IAAzC,CAIA,IAAIlrG,EAAgB,CAClBA,cAAe5wF,EAAQk5D,UAGzB,GAAI54C,EAAO,CACT,IAAIg6H,EAAeh6H,EAAMg6H,eACrByjD,EAAezjD,EAAaxtI,SAAS9M,EAAQ88L,OAEjD,GAAIxiD,EAAaxtI,SAAS9M,EAAQk5D,WAA2C,WAA9Bl5D,EAAQi7C,QAAQwhJ,YAA2BsB,GAA8C,YAA9B/9L,EAAQi7C,QAAQwhJ,WAA2BsB,EACnJ,SAIF,GAAI/9L,EAAQ88L,MAAMpoH,SAASp0D,EAAMr9B,UAA2B,UAAfq9B,EAAMh6B,MA3Z/C,QA2ZmEg6B,EAAMr/B,KAAmB,qCAAqCyD,KAAK47B,EAAMr9B,OAAOu7H,UACrJ,SAGiB,UAAfl+F,EAAMh6B,OACRsqG,EAAcotG,WAAa19K,GAI/BtgB,EAAQq9L,cAAczsG,OAGzB,CACD3vG,IAAK,uBACLN,MAAO,SAA8BuzB,GACnC,OAAO24K,GAAuB34K,IAAYA,EAAQP,aAEnD,CACD1yB,IAAK,wBACLN,MAAO,SAA+B2/B,GACpC,IAAIwkD,EAAUvnE,KASd,KAAI,kBAAkB7Y,KAAK47B,EAAMr9B,OAAOu7H,SAAWl+F,EAAMr/B,MAAQi6M,IAAa56K,EAAMr/B,MAAQg6M,KAAiB36K,EAAMr/B,MAAQm6M,IAAkB96K,EAAMr/B,MAAQk6M,IAAgB76K,EAAMr9B,OAAOggG,QAAQ+4G,MAAmBX,GAAe32M,KAAK47B,EAAMr/B,MAA7O,CAIA,IAAIg9M,EAAW1gM,KAAK8xG,UAAU36B,SAASonH,IAEvC,IAAKmC,GAAY39K,EAAMr/B,MAAQg6M,MAI/B36K,EAAM2tE,iBACN3tE,EAAMytE,mBAEF5U,GAAW57E,OAAf,CAIA,IAAI2gM,EAAkB,WACpB,OAAOp5H,EAAQz7D,QAAQ0yL,IAA0Bj3H,EAAUynH,GAAoBznH,EAASi3H,IAAwB,IAGlH,OAAIz7K,EAAMr/B,MAAQg6M,IAChBiD,IAAkB9rG,aAClBwqG,EAASuB,cAIP79K,EAAMr/B,MAAQk6M,IAAgB76K,EAAMr/B,MAAQm6M,IACzC6C,GACHC,IAAkB3tG,aAGpBqsG,EAASjL,YAAYuM,KAAmBE,gBAAgB99K,SAKrD29K,GAAY39K,EAAMr/B,MAAQi6M,IAC7B0B,EAASuB,oBAKRvB,EAhbmB,CAib1BrL,IAQFjB,GAAa79F,GAAG9tD,SAAUi3J,GAAwBG,GAAwB,GAASsC,uBACnF/N,GAAa79F,GAAG9tD,SAAUi3J,GAAwBI,GAAe,GAASqC,uBAC1E/N,GAAa79F,GAAG9tD,SAAUg3J,GAAwB,GAASwC,YAC3D7N,GAAa79F,GAAG9tD,SAAUk3J,GAAsB,GAASsC,YACzD7N,GAAa79F,GAAG9tD,SAAUg3J,GAAwBI,IAAwB,SAAUz7K,GAClFA,EAAM2tE,iBACN,GAAS4vG,kBAAkBtgM,SAS7BuwL,GAAmB,IAQnB,IAAIwQ,GAAyB,oDACzBC,GAA0B,cAE1BC,GAA+B,WACjC,SAASA,IACP37M,GAAgB0a,KAAMihM,GAEtBjhM,KAAK27D,SAAWv0B,SAASs2B,KA8G3B,OA3GA53E,GAAam7M,EAAiB,CAAC,CAC7Bv9M,IAAK,WACLN,MAAO,WAEL,IAAI89M,EAAgB95J,SAAS80C,gBAAgBpjE,YAC7C,OAAO3sB,KAAKyB,IAAIrG,OAAO6lH,WAAa8zF,KAErC,CACDx9M,IAAK,OACLN,MAAO,WACL,IAAIqiB,EAAQzF,KAAKmhM,WAEjBnhM,KAAKohM,mBAGLphM,KAAKqhM,sBAAsBrhM,KAAK27D,SAAU,gBAAgB,SAAU2lI,GAClE,OAAOA,EAAkB77L,KAI3BzF,KAAKqhM,sBAAsBN,GAAwB,gBAAgB,SAAUO,GAC3E,OAAOA,EAAkB77L,KAG3BzF,KAAKqhM,sBAAsBL,GAAyB,eAAe,SAAUM,GAC3E,OAAOA,EAAkB77L,OAG5B,CACD/hB,IAAK,mBACLN,MAAO,WACL4c,KAAKuhM,sBAAsBvhM,KAAK27D,SAAU,YAE1C37D,KAAK27D,SAASz4D,MAAM26F,SAAW,WAEhC,CACDn6G,IAAK,wBACLN,MAAO,SAA+BkxF,EAAUktH,EAAWh6M,GACzD,IAAIohF,EAAU5oE,KAEVqgH,EAAiBrgH,KAAKmhM,WAa1BnhM,KAAKyhM,2BAA2BntH,GAXL,SAA8B39D,GACvD,KAAIA,IAAYiyD,EAAQjN,UAAYp0E,OAAO6lH,WAAaz2F,EAAQmC,YAAcunG,GAA9E,CAIAz3C,EAAQ24H,sBAAsB5qL,EAAS6qL,GAEvC,IAAIF,EAAkB/5M,OAAOmvB,iBAAiBC,GAAS6qL,GACvD7qL,EAAQzT,MAAMs+L,GAAa,GAAGnhM,OAAO7Y,EAAS2B,OAAOQ,WAAW23M,IAAmB,YAKtF,CACD59M,IAAK,QACLN,MAAO,WACL4c,KAAK0hM,wBAAwB1hM,KAAK27D,SAAU,YAE5C37D,KAAK0hM,wBAAwB1hM,KAAK27D,SAAU,gBAE5C37D,KAAK0hM,wBAAwBX,GAAwB,gBAErD/gM,KAAK0hM,wBAAwBV,GAAyB,iBAEvD,CACDt9M,IAAK,wBACLN,MAAO,SAA+BuzB,EAAS6qL,GAC7C,IAAIG,EAAchrL,EAAQzT,MAAMs+L,GAE5BG,GACF9L,GAAYC,iBAAiBn/K,EAAS6qL,EAAWG,KAGpD,CACDj+M,IAAK,0BACLN,MAAO,SAAiCkxF,EAAUktH,GAYhDxhM,KAAKyhM,2BAA2BntH,GAXL,SAA8B39D,GACvD,IAAIvzB,EAAQyyM,GAAYK,iBAAiBv/K,EAAS6qL,GAE7B,qBAAVp+M,EACTuzB,EAAQzT,MAAM2vG,eAAe2uF,IAE7B3L,GAAYE,oBAAoBp/K,EAAS6qL,GACzC7qL,EAAQzT,MAAMs+L,GAAap+M,QAMhC,CACDM,IAAK,6BACLN,MAAO,SAAoCkxF,EAAUstH,GAC/C,GAAUttH,GACZstH,EAASttH,GAET06G,GAAoB16G,EAAUt0E,KAAK27D,UAAU3tD,QAAQ4zL,KAGxD,CACDl+M,IAAK,gBACLN,MAAO,WACL,OAAO4c,KAAKmhM,WAAa,MAItBF,EAlH0B,GA4H/BY,GAAY,CACdlwF,WAAW,EAEXwiF,YAAY,EACZQ,YAAa,OAEbmN,cAAe,MAEbC,GAAgB,CAClBpwF,UAAW,UACXwiF,WAAY,UACZQ,YAAa,mBACbmN,cAAe,mBAEbE,GAAS,WAGTC,GAAoB,OACpBC,GAAkB,gBAAgB7hM,OAAO2hM,IAEzCG,GAAwB,WAC1B,SAASA,EAASn8K,GAChB1gC,GAAgB0a,KAAMmiM,GAEtBniM,KAAK09C,QAAU19C,KAAKu4L,WAAWvyK,GAC/BhmB,KAAKoiM,aAAc,EACnBpiM,KAAK27D,SAAW,KAuGlB,OApGA71E,GAAaq8M,EAAU,CAAC,CACtBz+M,IAAK,OACLN,MAAO,SAAcoE,GACdwY,KAAK09C,QAAQi0D,WAKlB3xG,KAAKqiM,UAEDriM,KAAK09C,QAAQy2I,YACfhE,GAAOnwL,KAAKsiM,eAGdtiM,KAAKsiM,cAAcxwF,UAAU1jG,IAAI6zL,IAEjCjiM,KAAKuiM,mBAAkB,WACrB74B,GAAQliL,OAbRkiL,GAAQliL,KAgBX,CACD9D,IAAK,OACLN,MAAO,SAAcoE,GACnB,IAAIyjF,EAAUjrE,KAETA,KAAK09C,QAAQi0D,WAKlB3xG,KAAKsiM,cAAcxwF,UAAUltD,OAAOq9I,IAEpCjiM,KAAKuiM,mBAAkB,WACrBt3H,EAAQu3H,UAER94B,GAAQliL,OATRkiL,GAAQliL,KAaX,CACD9D,IAAK,cACLN,MAAO,WACL,IAAK4c,KAAK27D,SAAU,CAClB,IAAI9kB,EAAWzP,SAAS6sC,cAAc,OACtCp9B,EAAS0lC,UA1DS,iBA4Ddv8E,KAAK09C,QAAQy2I,YACft9I,EAASi7D,UAAU1jG,IA5DL,QA+DhBpO,KAAK27D,SAAW9kB,EAGlB,OAAO72C,KAAK27D,WAEb,CACDj4E,IAAK,aACLN,MAAO,SAAoB4iC,GAKzB,OAJAA,EAASnH,GAAcA,GAAc,GAAIgjL,IAAgC,WAApBz8M,GAAQ4gC,GAAuBA,EAAS,KAEtF2uK,YAAczxI,GAAWl9B,EAAO2uK,aACvC/E,GAAgBoS,GAAQh8K,EAAQ+7K,IACzB/7K,IAER,CACDtiC,IAAK,UACLN,MAAO,WACL,IAAI4rF,EAAUhvE,KAEVA,KAAKoiM,cAITpiM,KAAK09C,QAAQi3I,YAAYzgH,YAAYl0E,KAAKsiM,eAE1CvP,GAAa79F,GAAGl1F,KAAKsiM,cAAeJ,IAAiB,WACnDx4B,GAAQ16F,EAAQtxB,QAAQokJ,kBAE1B9hM,KAAKoiM,aAAc,KAEpB,CACD1+M,IAAK,UACLN,MAAO,WACA4c,KAAKoiM,cAIVrP,GAAa7iG,IAAIlwF,KAAK27D,SAAUumI,IAEhCliM,KAAK27D,SAAS/W,SAEd5kD,KAAKoiM,aAAc,KAEpB,CACD1+M,IAAK,oBACLN,MAAO,SAA2BoE,GAChCmpM,GAAuBnpM,EAAUwY,KAAKsiM,cAAetiM,KAAK09C,QAAQy2I,gBAI/DgO,EA7GmB,GA6HxBM,GAAS,QAETC,GAAc,IAAIriM,OADL,YAGbsiM,GAAe,SACfC,GAAY,CACd/rJ,UAAU,EACVsiF,UAAU,EACVtkC,OAAO,GAELguG,GAAgB,CAClBhsJ,SAAU,mBACVsiF,SAAU,UACVtkC,MAAO,WAELiuG,GAAe,OAAOziM,OAAOqiM,IAC7BK,GAAuB,gBAAgB1iM,OAAOqiM,IAC9CM,GAAiB,SAAS3iM,OAAOqiM,IACjCO,GAAe,OAAO5iM,OAAOqiM,IAC7BQ,GAAgB,QAAQ7iM,OAAOqiM,IAC/BS,GAAkB,UAAU9iM,OAAOqiM,IACnCU,GAAe,SAAS/iM,OAAOqiM,IAC/BW,GAAwB,gBAAgBhjM,OAAOqiM,IAC/CY,GAA0B,kBAAkBjjM,OAAOqiM,IACnDa,GAAwB,kBAAkBljM,OAAOqiM,IACjDc,GAA0B,oBAAoBnjM,OAAOqiM,IACrDe,GAAyB,QAAQpjM,OAAOqiM,IAAariM,OAvBpC,aAwBjBqjM,GAAkB,aAElBC,GAAoB,OACpBC,GAAoB,eAWpBC,GAAqB,SAAUC,GACjC1kL,GAAUykL,EAAOC,GAEjB,IAAIhlK,EAAUpf,GAAamkL,GAE3B,SAASA,EAAMltL,EAASqP,GACtB,IAAImsD,EAYJ,OAVA7sF,GAAgB0a,KAAM6jM,IAEtB1xH,EAAUrzC,EAAQx8C,KAAK0d,KAAM2W,IACrB+mC,QAAUy0B,EAAQomH,WAAWvyK,GACrCmsD,EAAQ4xH,QAAU/U,GAtBA,gBAsBwC78G,EAAQxW,UAClEwW,EAAQ6xH,UAAY7xH,EAAQ8xH,sBAC5B9xH,EAAQ+xH,UAAW,EACnB/xH,EAAQgyH,sBAAuB,EAC/BhyH,EAAQ+pH,kBAAmB,EAC3B/pH,EAAQiyH,WAAa,IAAInD,GAClB9uH,EAkYT,OA9XArsF,GAAa+9M,EAAO,CAAC,CACnBngN,IAAK,SACLN,MACA,SAAgBiwG,GACd,OAAOrzF,KAAKkkM,SAAWlkM,KAAK8lB,OAAS9lB,KAAK2lB,KAAK0tE,KAEhD,CACD3vG,IAAK,OACLN,MAAO,SAAciwG,GACnB,IAAIgxG,EAAUrkM,KAEVA,KAAKkkM,UAAYlkM,KAAKk8L,mBAIVnJ,GAAapiG,QAAQ3wF,KAAK27D,SAAUsnI,GAAc,CAChE5vG,cAAeA,IAGHD,mBAIdpzF,KAAKkkM,UAAW,EAEZlkM,KAAKskM,gBACPtkM,KAAKk8L,kBAAmB,GAG1Bl8L,KAAKokM,WAAWt+K,OAEhBshB,SAASs2B,KAAKo0C,UAAU1jG,IAAIs1L,IAE5B1jM,KAAKukM,gBAELvkM,KAAKwkM,kBAELxkM,KAAKykM,kBAEL1R,GAAa79F,GAAGl1F,KAAK27D,SAAU0nI,GApEP,6BAoEuD,SAAUtgL,GACvF,OAAOshL,EAAQv+K,KAAK/C,MAEtBgwK,GAAa79F,GAAGl1F,KAAK+jM,QAASP,IAAyB,WACrDzQ,GAAa/iG,IAAIq0G,EAAQ1oI,SAAU4nI,IAAuB,SAAUxgL,GAC9DA,EAAMr9B,SAAW2+M,EAAQ1oI,WAC3B0oI,EAAQF,sBAAuB,SAKrCnkM,KAAK0kM,eAAc,WACjB,OAAOL,EAAQM,aAAatxG,UAG/B,CACD3vG,IAAK,OACLN,MAAO,SAAc2/B,GACnB,IAAI6hL,EAAU5kM,KAMd,IAJI+iB,GAAS,CAAC,IAAK,QAAQxT,SAASwT,EAAMr9B,OAAOu7H,UAC/Cl+F,EAAM2tE,iBAGH1wF,KAAKkkM,WAAYlkM,KAAKk8L,oBAIXnJ,GAAapiG,QAAQ3wF,KAAK27D,SAAUmnI,IAEtC1vG,iBAAd,CAIApzF,KAAKkkM,UAAW,EAEhB,IAAI/P,EAAan0L,KAAKskM,cAElBnQ,IACFn0L,KAAKk8L,kBAAmB,GAG1Bl8L,KAAKwkM,kBAELxkM,KAAKykM,kBAEL1R,GAAa7iG,IAAI9oD,SAAU+7J,IAE3BnjM,KAAK27D,SAASm2C,UAAUltD,OAAO++I,IAE/B5Q,GAAa7iG,IAAIlwF,KAAK27D,SAAU0nI,IAChCtQ,GAAa7iG,IAAIlwF,KAAK+jM,QAASP,IAE/BxjM,KAAKg1L,gBAAe,WAClB,OAAO4P,EAAQC,eACd7kM,KAAK27D,SAAUw4H,MAEnB,CACDzwM,IAAK,UACLN,MAAO,WACL,CAACmE,OAAQyY,KAAK+jM,SAAS/1L,SAAQ,SAAU2mK,GACvC,OAAOoe,GAAa7iG,IAAIykF,EAAa+tB,OAGvC1iM,KAAKgkM,UAAUxB,UAEfzjL,GAAKE,GAAgB4kL,EAAM9/M,WAAY,UAAWic,MAAM1d,KAAK0d,MAQ7D+yL,GAAa7iG,IAAI9oD,SAAU+7J,MAE5B,CACDz/M,IAAK,eACLN,MAAO,WACL4c,KAAKukM,kBAGN,CACD7gN,IAAK,sBACLN,MAAO,WACL,OAAO,IAAI++M,GAAS,CAClBxwF,UAAW5xF,QAAQ/f,KAAK09C,QAAQ7G,UAEhCs9I,WAAYn0L,KAAKskM,kBAGpB,CACD5gN,IAAK,aACLN,MAAO,SAAoB4iC,GAGzB,OAFAA,EAASnH,GAAcA,GAAcA,GAAc,GAAI+jL,IAAY/M,GAAYG,kBAAkBh2L,KAAK27D,WAAgC,WAApBv2E,GAAQ4gC,GAAuBA,EAAS,IAC1J4pK,GAAgB6S,GAAQz8K,EAAQ68K,IACzB78K,IAER,CACDtiC,IAAK,eACLN,MAAO,SAAsBiwG,GAC3B,IAAIyxG,EAAU9kM,KAEVm0L,EAAan0L,KAAKskM,cAElBS,EAAY/V,GA/KI,cA+KwChvL,KAAK+jM,SAE5D/jM,KAAK27D,SAASvlD,YAAcpW,KAAK27D,SAASvlD,WAAWo9D,WAAai3F,KAAKC,cAE1EtjI,SAASs2B,KAAKwW,YAAYl0E,KAAK27D,UAGjC37D,KAAK27D,SAASz4D,MAAMu7B,QAAU,QAE9Bz+B,KAAK27D,SAAS1yB,gBAAgB,eAE9BjpC,KAAK27D,SAASzyB,aAAa,cAAc,GAEzClpC,KAAK27D,SAASzyB,aAAa,OAAQ,UAEnClpC,KAAK27D,SAASmgC,UAAY,EAEtBipG,IACFA,EAAUjpG,UAAY,GAGpBq4F,GACFhE,GAAOnwL,KAAK27D,UAGd37D,KAAK27D,SAASm2C,UAAU1jG,IAAIu1L,IAExB3jM,KAAK09C,QAAQm3C,OACf70F,KAAKglM,gBAcPhlM,KAAKg1L,gBAXoB,WACnB8P,EAAQpnJ,QAAQm3C,OAClBiwG,EAAQnpI,SAASk5B,QAGnBiwG,EAAQ5I,kBAAmB,EAC3BnJ,GAAapiG,QAAQm0G,EAAQnpI,SAAUunI,GAAe,CACpD7vG,cAAeA,MAIqBrzF,KAAK+jM,QAAS5P,KAEvD,CACDzwM,IAAK,gBACLN,MAAO,WACL,IAAI6hN,EAAUjlM,KAEd+yL,GAAa7iG,IAAI9oD,SAAU+7J,IAE3BpQ,GAAa79F,GAAG9tD,SAAU+7J,IAAiB,SAAUpgL,GAC/CqkB,WAAarkB,EAAMr9B,QAAUu/M,EAAQtpI,WAAa54C,EAAMr9B,QAAWu/M,EAAQtpI,SAASwb,SAASp0D,EAAMr9B,SACrGu/M,EAAQtpI,SAASk5B,aAItB,CACDnxG,IAAK,kBACLN,MAAO,WACL,IAAI8hN,EAAUllM,KAEVA,KAAKkkM,SACPnR,GAAa79F,GAAGl1F,KAAK27D,SAAU2nI,IAAyB,SAAUvgL,GAC5DmiL,EAAQxnJ,QAAQy7E,UAAYp2G,EAAMr/B,MAAQi/M,IAC5C5/K,EAAM2tE,iBAENw0G,EAAQp/K,QACEo/K,EAAQxnJ,QAAQy7E,UAAYp2G,EAAMr/B,MAAQi/M,IACpDuC,EAAQC,gCAIZpS,GAAa7iG,IAAIlwF,KAAK27D,SAAU2nI,MAGnC,CACD5/M,IAAK,kBACLN,MAAO,WACL,IAAIgiN,EAAUplM,KAEVA,KAAKkkM,SACPnR,GAAa79F,GAAG3tG,OAAQ67M,IAAc,WACpC,OAAOgC,EAAQb,mBAGjBxR,GAAa7iG,IAAI3oG,OAAQ67M,MAG5B,CACD1/M,IAAK,aACLN,MAAO,WACL,IAAIiiN,EAAUrlM,KAEdA,KAAK27D,SAASz4D,MAAMu7B,QAAU,OAE9Bz+B,KAAK27D,SAASzyB,aAAa,eAAe,GAE1ClpC,KAAK27D,SAAS1yB,gBAAgB,cAE9BjpC,KAAK27D,SAAS1yB,gBAAgB,QAE9BjpC,KAAKk8L,kBAAmB,EAExBl8L,KAAKgkM,UAAUl+K,MAAK,WAClBshB,SAASs2B,KAAKo0C,UAAUltD,OAAO8+I,IAE/B2B,EAAQC,oBAERD,EAAQjB,WAAWzwK,QAEnBo/J,GAAapiG,QAAQ00G,EAAQ1pI,SAAUqnI,SAG1C,CACDt/M,IAAK,gBACLN,MAAO,SAAuBoE,GAC5B,IAAI+9M,EAAUvlM,KAEd+yL,GAAa79F,GAAGl1F,KAAK27D,SAAU0nI,IAAuB,SAAUtgL,GAC1DwiL,EAAQpB,qBACVoB,EAAQpB,sBAAuB,EAI7BphL,EAAMr9B,SAAWq9B,EAAMqvE,iBAIM,IAA7BmzG,EAAQ7nJ,QAAQ7G,SAClB0uJ,EAAQz/K,OAC8B,WAA7By/K,EAAQ7nJ,QAAQ7G,UACzB0uJ,EAAQJ,iCAIZnlM,KAAKgkM,UAAUr+K,KAAKn+B,KAErB,CACD9D,IAAK,cACLN,MAAO,WACL,OAAO4c,KAAK27D,SAASm2C,UAAU36B,SAhUb,UAkUnB,CACDzzF,IAAK,6BACLN,MAAO,WACL,IAAIoiN,EAAUxlM,KAId,IAFgB+yL,GAAapiG,QAAQ3wF,KAAK27D,SAAUonI,IAEtC3vG,iBAAd,CAIA,IAAIqyG,EAAiBzlM,KAAK27D,SACtBm2C,EAAY2zF,EAAe3zF,UAC3BiB,EAAe0yF,EAAe1yF,aAC9B7vG,EAAQuiM,EAAeviM,MACvBwiM,EAAqB3yF,EAAe3rE,SAAS80C,gBAAgBnjE,cAE5D2sL,GAA0C,WAApBxiM,EAAM66F,WAA0B+T,EAAU36B,SAASysH,MAIzE8B,IACHxiM,EAAM66F,UAAY,UAGpB+T,EAAU1jG,IAAIw1L,IAEd5jM,KAAKg1L,gBAAe,WAClBljF,EAAUltD,OAAOg/I,IAEZ8B,GACHF,EAAQxQ,gBAAe,WACrB9xL,EAAM66F,UAAY,KACjBynG,EAAQzB,WAEZ/jM,KAAK+jM,SAER/jM,KAAK27D,SAASk5B,YAKf,CACDnxG,IAAK,gBACLN,MAAO,WACL,IAAIsiN,EAAqB1lM,KAAK27D,SAASo3C,aAAe3rE,SAAS80C,gBAAgBnjE,aAE3EsnG,EAAiBrgH,KAAKokM,WAAWjD,WAEjCwE,EAAoBtlF,EAAiB,IAEpCslF,GAAqBD,IAAuBpV,MAAWqV,IAAsBD,GAAsBpV,QACtGtwL,KAAK27D,SAASz4D,MAAMyrC,YAAc,GAAGtuC,OAAOggH,EAAgB,QAG1DslF,IAAsBD,IAAuBpV,OAAYqV,GAAqBD,GAAsBpV,QACtGtwL,KAAK27D,SAASz4D,MAAM0rC,aAAe,GAAGvuC,OAAOggH,EAAgB,SAGhE,CACD38H,IAAK,oBACLN,MAAO,WACL4c,KAAK27D,SAASz4D,MAAMyrC,YAAc,GAClC3uC,KAAK27D,SAASz4D,MAAM0rC,aAAe,MAGnC,CAAC,CACHlrD,IAAK,UACLV,IAAK,WACH,OAAO4/M,KAER,CACDl/M,IAAK,OACLV,IAAK,WACH,OAAOy/M,KAER,CACD/+M,IAAK,kBACLN,MAAO,SAAyB4iC,EAAQqtE,GACtC,OAAOrzF,KAAKpW,MAAK,WACf,IAAIub,EAAO0+L,EAAM3O,oBAAoBl1L,KAAMgmB,GAE3C,GAAsB,kBAAXA,EAAX,CAIA,GAA4B,qBAAjB7gB,EAAK6gB,GACd,MAAM,IAAIlhC,UAAU,oBAAqBub,OAAO2lB,EAAQ,MAG1D7gB,EAAK6gB,GAAQqtE,WAKZwwG,EApZgB,CAqZvB7P,IAQFjB,GAAa79F,GAAG9tD,SAAUq8J,GAraG,4BAqa6C,SAAU1gL,GAClF,IAAI6iL,EAAU5lM,KAEVta,EAAS4pM,GAAuBtvL,MAEhC,CAAC,IAAK,QAAQuP,SAASvP,KAAKihH,UAC9Bl+F,EAAM2tE,iBAGRqiG,GAAa/iG,IAAItqG,EAAQu9M,IAAc,SAAU4C,GAC3CA,EAAUzyG,kBAKd2/F,GAAa/iG,IAAItqG,EAAQs9M,IAAgB,WACnCrxF,GAAUi0F,IACZA,EAAQ/wG,cAIHgvG,GAAM3O,oBAAoBxvM,GAChCgoG,OAAO1tF,SASduwL,GAAmBsT,IAcnB,IAAIiC,GAAS,YAETC,GAAc,IAAI1lM,OADL,gBAEb2lM,GAAiB,YACjBC,GAAwB,OAAO5lM,OAAO0lM,IAAa1lM,OAAO2lM,IAE1DE,GAAY,CACdrvJ,UAAU,EACVsiF,UAAU,EACVsrC,QAAQ,GAEN0hC,GAAgB,CAClBtvJ,SAAU,UACVsiF,SAAU,UACVsrC,OAAQ,WAEN2hC,GAAoB,OACpBC,GAAgB,kBAChBC,GAAe,OAAOjmM,OAAO0lM,IAC7BQ,GAAgB,QAAQlmM,OAAO0lM,IAC/BS,GAAe,OAAOnmM,OAAO0lM,IAC7BU,GAAiB,SAASpmM,OAAO0lM,IACjCW,GAAkB,UAAUrmM,OAAO0lM,IACnCY,GAAyB,QAAQtmM,OAAO0lM,IAAa1lM,OAAO2lM,IAC5DY,GAAwB,gBAAgBvmM,OAAO0lM,IAC/Cc,GAAwB,kBAAkBxmM,OAAO0lM,IASjDe,GAAyB,SAAUC,GACrC3nL,GAAU0nL,EAAWC,GAErB,IAAI9nK,EAAUvf,GAAaonL,GAE3B,SAASA,EAAUnwL,EAASqP,GAC1B,IAAIghL,EAWJ,OATA1hN,GAAgB0a,KAAM8mM,IAEtBE,EAAU/nK,EAAQ38C,KAAK0d,KAAM2W,IACrB+mC,QAAUspJ,EAAQzO,WAAWvyK,GACrCghL,EAAQ9C,UAAW,EACnB8C,EAAQhD,UAAYgD,EAAQ/C,sBAE5B+C,EAAQpO,qBAEDoO,EAwLT,OApLAlhN,GAAaghN,EAAW,CAAC,CACvBpjN,IAAK,SACLN,MACA,SAAgBiwG,GACd,OAAOrzF,KAAKkkM,SAAWlkM,KAAK8lB,OAAS9lB,KAAK2lB,KAAK0tE,KAEhD,CACD3vG,IAAK,OACLN,MAAO,SAAciwG,GACnB,IAAI4zG,EAAUjnM,KAEd,IAAIA,KAAKkkM,WAIOnR,GAAapiG,QAAQ3wF,KAAK27D,SAAU2qI,GAAc,CAChEjzG,cAAeA,IAGHD,iBAAd,CAIApzF,KAAKkkM,UAAW,EAChBlkM,KAAK27D,SAASz4D,MAAMo3F,WAAa,UAEjCt6F,KAAKgkM,UAAUr+K,OAEV3lB,KAAK09C,QAAQ+mH,UAChB,IAAIw8B,IAAkBn7K,OAEtB9lB,KAAKknM,uBAAuBlnM,KAAK27D,WAGnC37D,KAAK27D,SAAS1yB,gBAAgB,eAE9BjpC,KAAK27D,SAASzyB,aAAa,cAAc,GAEzClpC,KAAK27D,SAASzyB,aAAa,OAAQ,UAEnClpC,KAAK27D,SAASm2C,UAAU1jG,IAAIg4L,IAQ5BpmM,KAAKg1L,gBANkB,WACrBjC,GAAapiG,QAAQs2G,EAAQtrI,SAAU4qI,GAAe,CACpDlzG,cAAeA,MAImBrzF,KAAK27D,UAAU,MAEtD,CACDj4E,IAAK,OACLN,MAAO,WACL,IAAI+jN,EAAUnnM,KAEd,GAAKA,KAAKkkM,WAIMnR,GAAapiG,QAAQ3wF,KAAK27D,SAAU6qI,IAEtCpzG,iBAAd,CAIA2/F,GAAa7iG,IAAI9oD,SAAUs/J,IAE3B1mM,KAAK27D,SAASm5B,OAEd90F,KAAKkkM,UAAW,EAEhBlkM,KAAK27D,SAASm2C,UAAUltD,OAAOwhJ,IAE/BpmM,KAAKgkM,UAAUl+K,OAkBf9lB,KAAKg1L,gBAhBkB,WACrBmS,EAAQxrI,SAASzyB,aAAa,eAAe,GAE7Ci+J,EAAQxrI,SAAS1yB,gBAAgB,cAEjCk+J,EAAQxrI,SAAS1yB,gBAAgB,QAEjCk+J,EAAQxrI,SAASz4D,MAAMo3F,WAAa,SAE/B6sG,EAAQzpJ,QAAQ+mH,SACnB,IAAIw8B,IAAkBttK,QAGxBo/J,GAAapiG,QAAQw2G,EAAQxrI,SAAU8qI,MAGHzmM,KAAK27D,UAAU,MAEtD,CACDj4E,IAAK,UACLN,MAAO,WACL4c,KAAKgkM,UAAUxB,UAEfzjL,GAAKE,GAAgB6nL,EAAU/iN,WAAY,UAAWic,MAAM1d,KAAK0d,MAEjE+yL,GAAa7iG,IAAI9oD,SAAUs/J,MAG5B,CACDhjN,IAAK,aACLN,MAAO,SAAoB4iC,GAGzB,OAFAA,EAASnH,GAAcA,GAAcA,GAAc,GAAIqnL,IAAYrQ,GAAYG,kBAAkBh2L,KAAK27D,WAAgC,WAApBv2E,GAAQ4gC,GAAuBA,EAAS,IAC1J4pK,GAAgBkW,GAAQ9/K,EAAQmgL,IACzBngL,IAER,CACDtiC,IAAK,sBACLN,MAAO,WACL,IAAIgkN,EAAUpnM,KAEd,OAAO,IAAImiM,GAAS,CAClBxwF,UAAW3xG,KAAK09C,QAAQ7G,SACxBs9I,YAAY,EACZQ,YAAa30L,KAAK27D,SAASvlD,WAC3B0rL,cAAe,WACb,OAAOsF,EAAQthL,YAIpB,CACDpiC,IAAK,yBACLN,MAAO,SAAgCuzB,GACrCo8K,GAAa7iG,IAAI9oD,SAAUs/J,IAE3B3T,GAAa79F,GAAG9tD,SAAUs/J,IAAiB,SAAU3jL,GAC/CqkB,WAAarkB,EAAMr9B,QAAUixB,IAAYoM,EAAMr9B,QAAWixB,EAAQwgE,SAASp0D,EAAMr9B,SACnFixB,EAAQk+E,WAGZl+E,EAAQk+E,UAET,CACDnxG,IAAK,qBACLN,MAAO,WACL,IAAIikN,EAAUrnM,KAEd+yL,GAAa79F,GAAGl1F,KAAK27D,SAAUirI,GA1KP,iCA0KuD,WAC7E,OAAOS,EAAQvhL,UAEjBitK,GAAa79F,GAAGl1F,KAAK27D,SAAUkrI,IAAuB,SAAU9jL,GAC1DskL,EAAQ3pJ,QAAQy7E,UAnMX,WAmMuBp2G,EAAMr/B,KACpC2jN,EAAQvhL,aAKZ,CAAC,CACHpiC,IAAK,OACLV,IAAK,WACH,OAAO8iN,KAER,CACDpiN,IAAK,UACLV,IAAK,WACH,OAAOkjN,KAER,CACDxiN,IAAK,kBACLN,MAAO,SAAyB4iC,GAC9B,OAAOhmB,KAAKpW,MAAK,WACf,IAAIub,EAAO2hM,EAAU5R,oBAAoBl1L,KAAMgmB,GAE/C,GAAsB,kBAAXA,EAAX,CAIA,QAAqB/yB,IAAjBkS,EAAK6gB,IAAyBA,EAAOjhB,WAAW,MAAmB,gBAAXihB,EAC1D,MAAM,IAAIlhC,UAAU,oBAAqBub,OAAO2lB,EAAQ,MAG1D7gB,EAAK6gB,GAAQhmB,cAKZ8mM,EAzMoB,CA0M3B9S,IAQFjB,GAAa79F,GAAG9tD,SAAUu/J,GAzNG,gCAyN6C,SAAU5jL,GAClF,IAAIukL,EAAUtnM,KAEVta,EAAS4pM,GAAuBtvL,MAMpC,GAJI,CAAC,IAAK,QAAQuP,SAASvP,KAAKihH,UAC9Bl+F,EAAM2tE,kBAGJ9U,GAAW57E,MAAf,CAIA+yL,GAAa/iG,IAAItqG,EAAQ+gN,IAAgB,WAEnC90F,GAAU21F,IACZA,EAAQzyG,WAIZ,IAAI0yG,EAAevY,GAAuBqX,IAEtCkB,GAAgBA,IAAiB7hN,GACnCohN,GAAU1S,YAAYmT,GAAczhL,OAG3BghL,GAAU5R,oBAAoBxvM,GACpCgoG,OAAO1tF,UAEd+yL,GAAa79F,GAAG3tG,OAAQ0+M,IAAuB,WAC7C,OAAOjX,GAAoBqX,IAAer4L,SAAQ,SAAU6L,GAC1D,OAAOitL,GAAU5R,oBAAoBr7K,GAAI8L,aAS7C4qK,GAAmBuW,IAQnB,IAAIU,GAAW,IAAIr5L,IAAI,CAAC,aAAc,OAAQ,OAAQ,WAAY,WAAY,SAAU,MAAO,eAQ3Fs5L,GAAmB,6DAOnBC,GAAmB,qIA0BnBC,GAAmB,CAErB,IAAK,CAAC,QAAS,MAAO,KAAM,OAAQ,OA1CT,kBA2C3Bh5M,EAAG,CAAC,SAAU,OAAQ,QAAS,OAC/B4Z,KAAM,GACN3Z,EAAG,GACHg5M,GAAI,GACJruI,IAAK,GACLua,KAAM,GACN6Z,IAAK,GACLk6G,GAAI,GACJC,GAAI,GACJ71M,GAAI,GACJC,GAAI,GACJ61M,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJ/lN,EAAG,GACHg6I,IAAK,CAAC,MAAO,SAAU,MAAO,QAAS,QAAS,UAChDgsE,GAAI,GACJC,GAAI,GACJnkN,EAAG,GACHokN,IAAK,GACLnkN,EAAG,GACHokN,MAAO,GACPv2H,KAAM,GACNp0D,IAAK,GACL4qL,IAAK,GACLC,OAAQ,GACRv3E,EAAG,GACHw3E,GAAI,IAGN,SAASC,GAAaC,EAAYC,EAAWC,GAC3C,IAAI10I,EAEJ,IAAKw0I,EAAW/iN,OACd,OAAO+iN,EAGT,GAAIE,GAAoC,oBAAfA,EACvB,OAAOA,EAAWF,GA8BpB,IA3BA,IACIG,GADY,IAAIvhN,OAAO26G,WACKC,gBAAgBwmG,EAAY,aACxDI,EAAgBlmN,OAAOkH,KAAK6+M,GAE5B/lM,GAAYsxD,EAAQ,IAAI9zD,OAAOhY,MAAM8rE,EAAOhwE,GAAmB2kN,EAAgBprI,KAAKod,iBAAiB,OAErGt2D,EAAQ,SAAeriC,EAAGiF,GAC5B,IAAIktE,EAEAz6C,EAAKhX,EAAS1gB,GACd6mN,EAASnvL,EAAGkgE,SAAS36E,cAEzB,IAAK2pM,EAAcx5L,SAASy5L,GAE1B,OADAnvL,EAAG+qC,SACI,WAGT,IAAIqkJ,GAAiB30I,EAAQ,IAAIj0D,OAAOhY,MAAMisE,EAAOnwE,GAAmB01B,EAAGo+D,aAEvE8rC,EAAoB,GAAG1jH,OAAOuoM,EAAU,MAAQ,GAAIA,EAAUI,IAAW,IAC7EC,EAAcj7L,SAAQ,SAAU8vE,IAzFb,SAA0BA,EAAMorH,GACrD,IAAIpyF,EAAWh5B,EAAK/D,SAAS36E,cAE7B,GAAI8pM,EAAqB35L,SAASunG,GAChC,OAAI0wF,GAASn4L,IAAIynG,IACR/2F,QAAQ0nL,GAAiBtgN,KAAK22F,EAAKS,YAAcmpH,GAAiBvgN,KAAK22F,EAAKS,YAUvF,IAJA,IAAI4qH,EAASD,EAAqBp4L,QAAO,SAAUs4L,GACjD,OAAOA,aAAqBz9L,UAGrBxpB,EAAI,EAAGiF,EAAM+hN,EAAOvjN,OAAQzD,EAAIiF,EAAKjF,IAC5C,GAAIgnN,EAAOhnN,GAAGgF,KAAK2vH,GACjB,OAAO,EAIX,OAAO,GAqEEuyF,CAAiBvrH,EAAMimC,IAC1BlqG,EAAGovB,gBAAgB60C,EAAK/D,cAKrB53F,EAAI,EAAGiF,EAAMyb,EAASjd,OAAQzD,EAAIiF,EAAKjF,IACnCqiC,EAAMriC,GAKnB,OAAO2mN,EAAgBprI,KAAKqf,UAgB9B,IAAIusH,GAAS,UAETC,GAAc,IAAIlpM,OADL,cAEbmpM,GAAiB,aACjBC,GAAuB,IAAI99L,OAAO,UAAUtL,OAAOmpM,GAAgB,QAAS,KAC5EE,GAAwB,IAAIv7L,IAAI,CAAC,WAAY,YAAa,eAC1Dw7L,GAAgB,CAClBvnM,UAAW,UACX85G,SAAU,SACVvkF,MAAO,4BACPg5D,QAAS,SACTpsE,MAAO,kBACP4xE,KAAM,UACN7hB,SAAU,mBACVqrG,UAAW,oBACX9oJ,OAAQ,0BACRne,UAAW,2BACXgwK,mBAAoB,QACpBx0H,SAAU,mBACVo+C,YAAa,oBACbs3F,SAAU,UACVf,WAAY,kBACZD,UAAW,SACX3J,aAAc,0BAEZ4K,GAAgB,CAClBC,KAAM,OACNC,IAAK,MACLC,MAAO1Z,KAAU,OAAS,QAC1B2Z,OAAQ,SACRC,KAAM5Z,KAAU,QAAU,QAExB6Z,GAAY,CACd/nM,WAAW,EACX85G,SAAU,+GACVvrB,QAAS,cACTh5D,MAAO,GACPpT,MAAO,EACP4xE,MAAM,EACN7hB,UAAU,EACVqrG,UAAW,MACX9oJ,OAAQ,CAAC,EAAG,GACZne,WAAW,EACXgwK,mBAAoB,CAAC,MAAO,QAAS,SAAU,QAC/Cx0H,SAAU,kBACVo+C,YAAa,GACbs3F,UAAU,EACVf,WAAY,KACZD,UAAWjB,GACX1I,aAAc,MAEZmL,GAAU,CACZC,KAAM,OAAOhqM,OAAOkpM,IACpBe,OAAQ,SAASjqM,OAAOkpM,IACxBgB,KAAM,OAAOlqM,OAAOkpM,IACpBiB,MAAO,QAAQnqM,OAAOkpM,IACtBkB,SAAU,WAAWpqM,OAAOkpM,IAC5BmB,MAAO,QAAQrqM,OAAOkpM,IACtBoB,QAAS,UAAUtqM,OAAOkpM,IAC1BqB,SAAU,WAAWvqM,OAAOkpM,IAC5BsB,WAAY,aAAaxqM,OAAOkpM,IAChCuB,WAAY,aAAazqM,OAAOkpM,KAE9BwB,GAAoB,OACpBC,GAAmB,QACnBC,GAAoB,OACpBC,GAAmB,OACnBC,GAAkB,MAElBC,GAAgB,QAChBC,GAAgB,QAShB,GAAuB,SAAUC,GACnClsL,GAAUghD,EAASkrI,GAEnB,IAAI/rK,EAAU7f,GAAa0gD,GAE3B,SAASA,EAAQzpD,EAASqP,GACxB,IAAIulL,EAIJ,GAFAjmN,GAAgB0a,KAAMogE,GAEA,qBAAX,EACT,MAAM,IAAIt7E,UAAU,+DAgBtB,OAbAymN,EAAUhsK,EAAQj9C,KAAK0d,KAAM2W,IAErB60L,YAAa,EACrBD,EAAQE,SAAW,EACnBF,EAAQG,YAAc,GACtBH,EAAQI,eAAiB,GACzBJ,EAAQjM,QAAU,KAElBiM,EAAQ7tJ,QAAU6tJ,EAAQhT,WAAWvyK,GACrCulL,EAAQK,IAAM,KAEdL,EAAQM,gBAEDN,EAmnBT,OA/mBAzlN,GAAas6E,EAAS,CAAC,CACrB18E,IAAK,SACLN,MACA,WACE4c,KAAKwrM,YAAa,IAEnB,CACD9nN,IAAK,UACLN,MAAO,WACL4c,KAAKwrM,YAAa,IAEnB,CACD9nN,IAAK,gBACLN,MAAO,WACL4c,KAAKwrM,YAAcxrM,KAAKwrM,aAEzB,CACD9nN,IAAK,SACLN,MAAO,SAAgB2/B,GACrB,GAAK/iB,KAAKwrM,WAIV,GAAIzoL,EAAO,CACT,IAAItgB,EAAUzC,KAAK8rM,6BAA6B/oL,GAEhDtgB,EAAQkpM,eAAe34G,OAASvwF,EAAQkpM,eAAe34G,MAEnDvwF,EAAQspM,uBACVtpM,EAAQupM,OAAO,KAAMvpM,GAErBA,EAAQwpM,OAAO,KAAMxpM,OAElB,CACL,GAAIzC,KAAKksM,gBAAgBp6F,UAAU36B,SAAS8zH,IAG1C,YAFAjrM,KAAKisM,OAAO,KAAMjsM,MAKpBA,KAAKgsM,OAAO,KAAMhsM,SAGrB,CACDtc,IAAK,UACLN,MAAO,WACL69D,aAAajhD,KAAKyrM,UAClB1Y,GAAa7iG,IAAIlwF,KAAK27D,SAAS+pB,QAAQ,IAAIrlF,OAAO2qM,KAAoB,gBAAiBhrM,KAAKmsM,mBAExFnsM,KAAK4rM,KACP5rM,KAAK4rM,IAAIhnJ,SAGP5kD,KAAKs/L,SACPt/L,KAAKs/L,QAAQhtI,UAGfvzC,GAAKE,GAAgBmhD,EAAQr8E,WAAY,UAAWic,MAAM1d,KAAK0d,QAEhE,CACDtc,IAAK,OACLN,MAAO,WACL,IAAIgpN,EAAUpsM,KAEd,GAAoC,SAAhCA,KAAK27D,SAASz4D,MAAMu7B,QACtB,MAAM,IAAIjuB,MAAM,uCAGlB,GAAMxQ,KAAKqsM,iBAAmBrsM,KAAKwrM,WAAnC,CAIA,IAAI3F,EAAY9S,GAAapiG,QAAQ3wF,KAAK27D,SAAU37D,KAAK3a,YAAYurG,MAAM25G,MACvE1yL,EAAao4K,GAAejwL,KAAK27D,UACjC2wI,EAA4B,OAAfz0L,EAAsB7X,KAAK27D,SAAS6e,cAAc0B,gBAAgB/E,SAASn3E,KAAK27D,UAAY9jD,EAAWs/D,SAASn3E,KAAK27D,UAEtI,IAAIkqI,EAAUzyG,kBAAqBk5G,EAAnC,CAIA,IAAIV,EAAM5rM,KAAKksM,gBACXK,EAAQpd,GAAOnvL,KAAK3a,YAAYmrM,MACpCob,EAAI1iK,aAAa,KAAMqjK,GAEvBvsM,KAAK27D,SAASzyB,aAAa,mBAAoBqjK,GAE/CvsM,KAAK44G,aAED54G,KAAK09C,QAAQt7C,WACfwpM,EAAI95F,UAAU1jG,IAAI28L,IAGpB,IAAIprB,EAA8C,oBAA3B3/K,KAAK09C,QAAQiiI,UAA2B3/K,KAAK09C,QAAQiiI,UAAUr9L,KAAK0d,KAAM4rM,EAAK5rM,KAAK27D,UAAY37D,KAAK09C,QAAQiiI,UAEhI6sB,EAAaxsM,KAAKysM,eAAe9sB,GAErC3/K,KAAK0sM,oBAAoBF,GAEzB,IAAI9zL,EAAY1Y,KAAK09C,QAAQhlC,UAC7B8yE,GAASogH,EAAK5rM,KAAK3a,YAAY4uM,SAAUj0L,MAEpCA,KAAK27D,SAAS6e,cAAc0B,gBAAgB/E,SAASn3E,KAAK4rM,OAC7DlzL,EAAUw7D,YAAY03H,GACtB7Y,GAAapiG,QAAQ3wF,KAAK27D,SAAU37D,KAAK3a,YAAYurG,MAAM65G,WAGzDzqM,KAAKs/L,QACPt/L,KAAKs/L,QAAQn4K,SAEbnnB,KAAKs/L,QAAU,GAAoBt/L,KAAK27D,SAAUiwI,EAAK5rM,KAAK4/L,iBAAiB4M,IAG/EZ,EAAI95F,UAAU1jG,IAAI68L,IAClB,IAGM0B,EAUA33I,EAbFs9C,EAAkD,oBAA7BtyG,KAAK09C,QAAQ40D,YAA6BtyG,KAAK09C,QAAQ40D,cAAgBtyG,KAAK09C,QAAQ40D,YAE7G,GAAIA,GAGDq6F,EAAiBf,EAAI95F,WAAW1jG,IAAI/lB,MAAMskN,EAAgBxoN,GAAmBmuH,EAAY1wG,MAAM,OAOlG,GAAI,iBAAkBwlC,SAAS80C,iBAG5BlnB,EAAQ,IAAI30D,OAAOhY,MAAM2sE,EAAO7wE,GAAmBijD,SAASs2B,KAAKkV,WAAW5kE,SAAQ,SAAU2I,GAC7Fo8K,GAAa79F,GAAGv+E,EAAS,YAAahuB,OAI1C,IAUIwrM,EAAan0L,KAAK4rM,IAAI95F,UAAU36B,SAAS4zH,IAE7C/qM,KAAKg1L,gBAZU,WACb,IAAI4X,EAAiBR,EAAQV,YAC7BU,EAAQV,YAAc,KACtB3Y,GAAapiG,QAAQy7G,EAAQzwI,SAAUywI,EAAQ/mN,YAAYurG,MAAM45G,OAE7DoC,IAAmBzB,IACrBiB,EAAQH,OAAO,KAAMG,KAMKpsM,KAAK4rM,IAAKzX,OAEzC,CACDzwM,IAAK,OACLN,MAAO,WACL,IAAIypN,EAAU7sM,KAEd,GAAKA,KAAKs/L,QAAV,CAIA,IAAIsM,EAAM5rM,KAAKksM,gBA0Bf,IAFgBnZ,GAAapiG,QAAQ3wF,KAAK27D,SAAU37D,KAAK3a,YAAYurG,MAAMy5G,MAE7Dj3G,iBAAd,CAQE,IAAI05G,EADN,GAHAlB,EAAI95F,UAAUltD,OAAOqmJ,IAGjB,iBAAkB7jK,SAAS80C,iBAG5B4wH,EAAS,IAAIzsM,OAAOhY,MAAMykN,EAAQ3oN,GAAmBijD,SAASs2B,KAAKkV,WAAW5kE,SAAQ,SAAU2I,GAC/F,OAAOo8K,GAAa7iG,IAAIv5E,EAAS,YAAahuB,OAIlDqX,KAAK2rM,eAA4B,OAAI,EACrC3rM,KAAK2rM,eAA4B,OAAI,EACrC3rM,KAAK2rM,eAA4B,OAAI,EACrC,IAAIxX,EAAan0L,KAAK4rM,IAAI95F,UAAU36B,SAAS4zH,IAE7C/qM,KAAKg1L,gBA5CU,WACT6X,EAAQd,yBAIRc,EAAQnB,cAAgBR,IAC1BU,EAAIhnJ,SAGNioJ,EAAQE,iBAERF,EAAQlxI,SAAS1yB,gBAAgB,oBAEjC8pJ,GAAapiG,QAAQk8G,EAAQlxI,SAAUkxI,EAAQxnN,YAAYurG,MAAM05G,QAE7DuC,EAAQvN,UACVuN,EAAQvN,QAAQhtI,UAEhBu6I,EAAQvN,QAAU,SA0BQt/L,KAAK4rM,IAAKzX,GAExCn0L,KAAK0rM,YAAc,OAEpB,CACDhoN,IAAK,SACLN,MAAO,WACgB,OAAjB4c,KAAKs/L,SACPt/L,KAAKs/L,QAAQn4K,WAIhB,CACDzjC,IAAK,gBACLN,MAAO,WACL,OAAO28B,QAAQ/f,KAAKkiE,cAErB,CACDx+E,IAAK,gBACLN,MAAO,WACL,GAAI4c,KAAK4rM,IACP,OAAO5rM,KAAK4rM,IAGd,IAAIj1L,EAAUywB,SAAS6sC,cAAc,OAGrC,OAFAt9D,EAAQomE,UAAY/8E,KAAK09C,QAAQw+D,SACjCl8G,KAAK4rM,IAAMj1L,EAAQi8D,SAAS,GACrB5yE,KAAK4rM,MAEb,CACDloN,IAAK,aACLN,MAAO,WACL,IAAIwoN,EAAM5rM,KAAKksM,gBACflsM,KAAKgtM,kBAAkBhe,GArRA,iBAqR+C4c,GAAM5rM,KAAKkiE,YACjF0pI,EAAI95F,UAAUltD,OAAOmmJ,GAAmBE,MAEzC,CACDvnN,IAAK,oBACLN,MAAO,SAA2BuzB,EAASyvE,GACzC,GAAgB,OAAZzvE,EAIJ,OAAI,GAAUyvE,IACZA,EAAUljC,GAAWkjC,QAEjBpmF,KAAK09C,QAAQy4C,KACX/P,EAAQhwE,aAAeO,IACzBA,EAAQomE,UAAY,GACpBpmE,EAAQu9D,YAAYkS,IAGtBzvE,EAAQ0nE,YAAc+H,EAAQ/H,mBAM9Br+E,KAAK09C,QAAQy4C,MACXn2F,KAAK09C,QAAQksJ,WACfxjH,EAAUsiH,GAAatiH,EAASpmF,KAAK09C,QAAQkrJ,UAAW5oM,KAAK09C,QAAQmrJ,aAGvElyL,EAAQomE,UAAYqJ,GAEpBzvE,EAAQ0nE,YAAc+H,KAGzB,CACD1iG,IAAK,WACLN,MAAO,WACL,IAAIu0C,EAAQ33B,KAAK27D,SAAS/yB,aAAa,0BAMvC,OAJKjR,IACHA,EAAsC,oBAAvB33B,KAAK09C,QAAQ/lB,MAAuB33B,KAAK09C,QAAQ/lB,MAAMr1C,KAAK0d,KAAK27D,UAAY37D,KAAK09C,QAAQ/lB,OAGpGA,IAER,CACDj0C,IAAK,mBACLN,MAAO,SAA0BopN,GAC/B,MAAmB,UAAfA,EACK,MAGU,SAAfA,EACK,QAGFA,IAGR,CACD9oN,IAAK,+BACLN,MAAO,SAAsC2/B,EAAOtgB,GAClD,IAAIwqM,EAAUjtM,KAAK3a,YAAY4uM,SAQ/B,OAPAxxL,EAAUA,GAAW+oF,GAASzoE,EAAMkvE,eAAgBg7G,MAGlDxqM,EAAU,IAAIzC,KAAK3a,YAAY09B,EAAMkvE,eAAgBjyF,KAAKktM,sBAC1D1hH,GAASzoE,EAAMkvE,eAAgBg7G,EAASxqM,IAGnCA,IAER,CACD/e,IAAK,aACLN,MAAO,WACL,IAAI+pN,EAAUntM,KAEV62B,EAAS72B,KAAK09C,QAAQ7mB,OAE1B,MAAsB,kBAAXA,EACFA,EAAOj1B,MAAM,KAAKlX,KAAI,SAAUoW,GACrC,OAAO3X,OAAO8V,SAAS6B,EAAK,OAIV,oBAAX+1B,EACF,SAAUqpK,GACf,OAAOrpK,EAAOqpK,EAAYiN,EAAQxxI,WAI/B9kC,IAER,CACDnzC,IAAK,mBACLN,MAAO,SAA0BopN,GAC/B,IAAIY,EAAUptM,KAEVmgM,EAAwB,CAC1BxgB,UAAW6sB,EACXzf,UAAW,CAAC,CACVrqM,KAAM,OACNsI,QAAS,CACP09L,mBAAoB1oL,KAAK09C,QAAQgrI,qBAElC,CACDhmM,KAAM,SACNsI,QAAS,CACP6rC,OAAQ72B,KAAKqgM,eAEd,CACD39M,KAAM,kBACNsI,QAAS,CACPkpE,SAAUl0D,KAAK09C,QAAQwW,WAExB,CACDxxE,KAAM,QACNsI,QAAS,CACP2rB,QAAS,IAAItW,OAAOL,KAAK3a,YAAYmrM,KAAM,YAE5C,CACD9tM,KAAM,WACN0oD,SAAS,EACTo1I,MAAO,aACP74L,GAAI,SAAYwd,GACd,OAAOioM,EAAQC,6BAA6BloM,MAGhD0pL,cAAe,SAAuB1pL,GAChCA,EAAKna,QAAQ20L,YAAcx6K,EAAKw6K,WAClCytB,EAAQC,6BAA6BloM,KAI3C,OAAO0Z,GAAcA,GAAc,GAAIshL,GAA6D,oBAA9BngM,KAAK09C,QAAQuhJ,aAA8Bj/L,KAAK09C,QAAQuhJ,aAAakB,GAAyBngM,KAAK09C,QAAQuhJ,gBAElL,CACDv7M,IAAK,sBACLN,MAAO,SAA6BopN,GAClCxsM,KAAKksM,gBAAgBp6F,UAAU1jG,IAAI,GAAG/N,OAAOmpM,GAAgB,KAAKnpM,OAAOL,KAAKstM,iBAAiBd,OAEhG,CACD9oN,IAAK,iBACLN,MAAO,SAAwBu8L,GAC7B,OAAOkqB,GAAclqB,EAAU5zL,iBAEhC,CACDrI,IAAK,gBACLN,MAAO,WACL,IAAImqN,EAAUvtM,KAECA,KAAK09C,QAAQizC,QAAQ/uF,MAAM,KAEjCoM,SAAQ,SAAU2iF,GACzB,GAAgB,UAAZA,EACFoiG,GAAa79F,GAAGq4G,EAAQ5xI,SAAU4xI,EAAQloN,YAAYurG,MAAM85G,MAAO6C,EAAQ7vJ,QAAQ42B,UAAU,SAAUvxD,GACrG,OAAOwqL,EAAQ7/G,OAAO3qE,WAEnB,GAhbM,WAgbF4tE,EAA4B,CACrC,IAAI68G,EAAU78G,IAAYy6G,GAAgBmC,EAAQloN,YAAYurG,MAAMi6G,WAAa0C,EAAQloN,YAAYurG,MAAM+5G,QACvG8C,EAAW98G,IAAYy6G,GAAgBmC,EAAQloN,YAAYurG,MAAMk6G,WAAayC,EAAQloN,YAAYurG,MAAMg6G,SAC5G7X,GAAa79F,GAAGq4G,EAAQ5xI,SAAU6xI,EAASD,EAAQ7vJ,QAAQ42B,UAAU,SAAUvxD,GAC7E,OAAOwqL,EAAQvB,OAAOjpL,MAExBgwK,GAAa79F,GAAGq4G,EAAQ5xI,SAAU8xI,EAAUF,EAAQ7vJ,QAAQ42B,UAAU,SAAUvxD,GAC9E,OAAOwqL,EAAQtB,OAAOlpL,UAK5B/iB,KAAKmsM,kBAAoB,WACnBoB,EAAQ5xI,UACV4xI,EAAQznL,QAIZitK,GAAa79F,GAAGl1F,KAAK27D,SAAS+pB,QAAQ,IAAIrlF,OAAO2qM,KAAoB,gBAAiBhrM,KAAKmsM,mBAEvFnsM,KAAK09C,QAAQ42B,SACft0E,KAAK09C,QAAU7+B,GAAcA,GAAc,GAAI7e,KAAK09C,SAAU,GAAI,CAChEizC,QAAS,SACTrc,SAAU,KAGZt0E,KAAK0tM,cAGR,CACDhqN,IAAK,YACLN,MAAO,WACL,IAAIu0C,EAAQ33B,KAAK27D,SAAS/yB,aAAa,SAEnC+kK,EAAoBvoN,GAAQ4a,KAAK27D,SAAS/yB,aAAa,4BAEvDjR,GAA+B,WAAtBg2K,KACX3tM,KAAK27D,SAASzyB,aAAa,yBAA0BvR,GAAS,KAE1DA,GAAU33B,KAAK27D,SAAS/yB,aAAa,eAAkB5oC,KAAK27D,SAAS0iB,aACvEr+E,KAAK27D,SAASzyB,aAAa,aAAcvR,GAG3C33B,KAAK27D,SAASzyB,aAAa,QAAS,OAGvC,CACDxlD,IAAK,SACLN,MAAO,SAAgB2/B,EAAOtgB,GAC5BA,EAAUzC,KAAK8rM,6BAA6B/oL,EAAOtgB,GAE/CsgB,IACFtgB,EAAQkpM,eAA8B,YAAf5oL,EAAMh6B,KAAqBsiN,GAAgBD,KAAiB,GAGjF3oM,EAAQypM,gBAAgBp6F,UAAU36B,SAAS8zH,KAAsBxoM,EAAQipM,cAAgBR,GAC3FzoM,EAAQipM,YAAcR,IAIxBjqJ,aAAax+C,EAAQgpM,UACrBhpM,EAAQipM,YAAcR,GAEjBzoM,EAAQi7C,QAAQn5B,OAAU9hB,EAAQi7C,QAAQn5B,MAAMoB,KAKrDljB,EAAQgpM,SAAWvqJ,YAAW,WACxBz+C,EAAQipM,cAAgBR,IAC1BzoM,EAAQkjB,SAETljB,EAAQi7C,QAAQn5B,MAAMoB,MARvBljB,EAAQkjB,UAUX,CACDjiC,IAAK,SACLN,MAAO,SAAgB2/B,EAAOtgB,GAC5BA,EAAUzC,KAAK8rM,6BAA6B/oL,EAAOtgB,GAE/CsgB,IACFtgB,EAAQkpM,eAA8B,aAAf5oL,EAAMh6B,KAAsBsiN,GAAgBD,IAAiB3oM,EAAQk5D,SAASwb,SAASp0D,EAAMswE,gBAGlH5wF,EAAQspM,yBAIZ9qJ,aAAax+C,EAAQgpM,UACrBhpM,EAAQipM,YAAcP,GAEjB1oM,EAAQi7C,QAAQn5B,OAAU9hB,EAAQi7C,QAAQn5B,MAAMuB,KAKrDrjB,EAAQgpM,SAAWvqJ,YAAW,WACxBz+C,EAAQipM,cAAgBP,IAC1B1oM,EAAQqjB,SAETrjB,EAAQi7C,QAAQn5B,MAAMuB,MARvBrjB,EAAQqjB,UAUX,CACDpiC,IAAK,uBACLN,MAAO,WACL,IAAK,IAAIutG,KAAW3wF,KAAK2rM,eACvB,GAAI3rM,KAAK2rM,eAAeh7G,GACtB,OAAO,EAIX,OAAO,IAER,CACDjtG,IAAK,aACLN,MAAO,SAAoB4iC,GACzB,IAAI4nL,EAAiB/X,GAAYG,kBAAkBh2L,KAAK27D,UA8BxD,OA7BA94E,OAAOkH,KAAK6jN,GAAgB5/L,SAAQ,SAAU89E,GACxC49G,GAAsBr6L,IAAIy8E,WACrB8hH,EAAe9hH,OAG1B9lE,EAASnH,GAAcA,GAAcA,GAAc,GAAI7e,KAAK3a,YAAY06M,SAAU6N,GAAqC,WAApBxoN,GAAQ4gC,IAAwBA,EAASA,EAAS,KAC9ItN,WAAiC,IAArBsN,EAAOtN,UAAsB0uB,SAASs2B,KAAOxa,GAAWl9B,EAAOtN,WAEtD,kBAAjBsN,EAAOzB,QAChByB,EAAOzB,MAAQ,CACboB,KAAMK,EAAOzB,MACbuB,KAAME,EAAOzB,QAIW,kBAAjByB,EAAO2R,QAChB3R,EAAO2R,MAAQ3R,EAAO2R,MAAM1wC,YAGA,kBAAnB++B,EAAOogE,UAChBpgE,EAAOogE,QAAUpgE,EAAOogE,QAAQn/F,YAGlC2oM,GAAgB0Z,GAAQtjL,EAAQhmB,KAAK3a,YAAY26M,aAE7Ch6K,EAAO4jL,WACT5jL,EAAOk2F,SAAWwsF,GAAa1iL,EAAOk2F,SAAUl2F,EAAO4iL,UAAW5iL,EAAO6iL,aAGpE7iL,IAER,CACDtiC,IAAK,qBACLN,MAAO,WACL,IAAI4iC,EAAS,GAEb,GAAIhmB,KAAK09C,QACP,IAAK,IAAIh6D,KAAOsc,KAAK09C,QACf19C,KAAK3a,YAAY06M,QAAQr8M,KAASsc,KAAK09C,QAAQh6D,KACjDsiC,EAAOtiC,GAAOsc,KAAK09C,QAAQh6D,IAKjC,OAAOsiC,IAER,CACDtiC,IAAK,iBACLN,MAAO,WACL,IAAIwoN,EAAM5rM,KAAKksM,gBACX2B,EAAWjC,EAAIhjK,aAAa,SAAS78B,MAAM09L,IAE9B,OAAboE,GAAqBA,EAASjoN,OAAS,GACzCioN,EAASnjN,KAAI,SAAUu5F,GACrB,OAAOA,EAAMyoB,UACZ1+F,SAAQ,SAAU8/L,GACnB,OAAOlC,EAAI95F,UAAUltD,OAAOkpJ,QAIjC,CACDpqN,IAAK,+BACLN,MAAO,SAAsC88M,GAC3C,IAAI53G,EAAQ43G,EAAW53G,MAElBA,IAILtoF,KAAK4rM,IAAMtjH,EAAMzlF,SAAS69K,OAE1B1gL,KAAK+sM,iBAEL/sM,KAAK0sM,oBAAoB1sM,KAAKysM,eAAenkH,EAAMq3F,gBAGnD,CAAC,CACHj8L,IAAK,UACLV,IAAK,WACH,OAAOmnN,KAER,CACDzmN,IAAK,OACLV,IAAK,WACH,OAAOsmN,KAER,CACD5lN,IAAK,QACLV,IAAK,WACH,OAAOonN,KAER,CACD1mN,IAAK,cACLV,IAAK,WACH,OAAO2mN,KAER,CACDjmN,IAAK,kBACLN,MAAO,SAAyB4iC,GAC9B,OAAOhmB,KAAKpW,MAAK,WACf,IAAIub,EAAOi7D,EAAQ80H,oBAAoBl1L,KAAMgmB,GAE7C,GAAsB,kBAAXA,EAAqB,CAC9B,GAA4B,qBAAjB7gB,EAAK6gB,GACd,MAAM,IAAIlhC,UAAU,oBAAqBub,OAAO2lB,EAAQ,MAG1D7gB,EAAK6gB,aAMNo6C,EA9oBkB,CA+oBzB4zH,IASFzD,GAAmB,IAcnB,IAEIwd,GAAc,IAAI1tM,OADL,cAEb2tM,GAAe,aACfC,GAAqB,IAAItiM,OAAO,UAAUtL,OAAO2tM,GAAc,QAAS,KAExEE,GAAYrvL,GAAcA,GAAc,GAAI,GAAQkhL,SAAU,GAAI,CACpEpgB,UAAW,QACX9oJ,OAAQ,CAAC,EAAG,GACZ85D,QAAS,QACTvK,QAAS,GACT81B,SAAU,gJAGRiyF,GAAgBtvL,GAAcA,GAAc,GAAI,GAAQmhL,aAAc,GAAI,CAC5E55G,QAAS,8BAGPgoH,GAAU,CACZ/D,KAAM,OAAOhqM,OAAO0tM,IACpBzD,OAAQ,SAASjqM,OAAO0tM,IACxBxD,KAAM,OAAOlqM,OAAO0tM,IACpBvD,MAAO,QAAQnqM,OAAO0tM,IACtBtD,SAAU,WAAWpqM,OAAO0tM,IAC5BrD,MAAO,QAAQrqM,OAAO0tM,IACtBpD,QAAS,UAAUtqM,OAAO0tM,IAC1BnD,SAAU,WAAWvqM,OAAO0tM,IAC5BlD,WAAY,aAAaxqM,OAAO0tM,IAChCjD,WAAY,aAAazqM,OAAO0tM,KAI9BM,GAAiB,kBACjBC,GAAmB,gBAOnBC,GAAuB,SAAUC,GACnCpvL,GAAUmvL,EAASC,GAEnB,IAAI1oK,EAAUpmB,GAAa6uL,GAE3B,SAASA,IAGP,OAFAjpN,GAAgB0a,KAAMuuM,GAEfzoK,EAAQz9C,MAAM2X,KAAM9X,WA4G7B,OAzGApC,GAAayoN,EAAS,CAAC,CACrB7qN,IAAK,gBACLN,MACA,WACE,OAAO4c,KAAKkiE,YAAcliE,KAAKyuM,gBAEhC,CACD/qN,IAAK,gBACLN,MAAO,WACL,OAAI4c,KAAK4rM,MAIT5rM,KAAK4rM,IAAM7sL,GAAKE,GAAgBsvL,EAAQxqN,WAAY,gBAAiBic,MAAM1d,KAAK0d,MAE3EA,KAAKkiE,YACR8sH,GAAuBqf,GAAgBruM,KAAK4rM,KAAKhnJ,SAG9C5kD,KAAKyuM,eACRzf,GAAuBsf,GAAkBtuM,KAAK4rM,KAAKhnJ,UAV5C5kD,KAAK4rM,MAef,CACDloN,IAAK,aACLN,MAAO,WACL,IAAIwoN,EAAM5rM,KAAKksM,gBAEflsM,KAAKgtM,kBAAkBhe,GAAuBqf,GAAgBzC,GAAM5rM,KAAKkiE,YAEzE,IAAIkkB,EAAUpmF,KAAKyuM,cAEI,oBAAZroH,IACTA,EAAUA,EAAQ9jG,KAAK0d,KAAK27D,WAG9B37D,KAAKgtM,kBAAkBhe,GAAuBsf,GAAkB1C,GAAMxlH,GACtEwlH,EAAI95F,UAAUltD,OA5DI,OACA,UA8DnB,CACDlhE,IAAK,sBACLN,MAAO,SAA6BopN,GAClCxsM,KAAKksM,gBAAgBp6F,UAAU1jG,IAAI,GAAG/N,OAAO2tM,GAAc,KAAK3tM,OAAOL,KAAKstM,iBAAiBd,OAE9F,CACD9oN,IAAK,cACLN,MAAO,WACL,OAAO4c,KAAK27D,SAAS/yB,aAAa,oBAAsB5oC,KAAK09C,QAAQ0oC,UAEtE,CACD1iG,IAAK,iBACLN,MAAO,WACL,IAAIwoN,EAAM5rM,KAAKksM,gBACX2B,EAAWjC,EAAIhjK,aAAa,SAAS78B,MAAMkiM,IAE9B,OAAbJ,GAAqBA,EAASjoN,OAAS,GACzCioN,EAASnjN,KAAI,SAAUu5F,GACrB,OAAOA,EAAMyoB,UACZ1+F,SAAQ,SAAU8/L,GACnB,OAAOlC,EAAI95F,UAAUltD,OAAOkpJ,SAKhC,CAAC,CACHpqN,IAAK,UACLV,IACA,WACE,OAAOkrN,KAER,CACDxqN,IAAK,OACLV,IAAK,WACH,MA/HO,YAiIR,CACDU,IAAK,QACLV,IAAK,WACH,OAAOorN,KAER,CACD1qN,IAAK,cACLV,IAAK,WACH,OAAOmrN,KAER,CACDzqN,IAAK,kBACLN,MAAO,SAAyB4iC,GAC9B,OAAOhmB,KAAKpW,MAAK,WACf,IAAIub,EAAOopM,EAAQrZ,oBAAoBl1L,KAAMgmB,GAE7C,GAAsB,kBAAXA,EAAqB,CAC9B,GAA4B,qBAAjB7gB,EAAK6gB,GACd,MAAM,IAAIlhC,UAAU,oBAAqBub,OAAO2lB,EAAQ,MAG1D7gB,EAAK6gB,aAMNuoL,EApHkB,CAqHzB,IASFhe,GAAmBge,IAcnB,IAAIG,GAAS,YAETC,GAAc,IAAItuM,OADL,gBAGbuuM,GAAY,CACd/3K,OAAQ,GACRxR,OAAQ,OACR3/B,OAAQ,IAENmpN,GAAgB,CAClBh4K,OAAQ,SACRxR,OAAQ,SACR3/B,OAAQ,oBAENopN,GAAiB,WAAWzuM,OAAOsuM,IACnCI,GAAe,SAAS1uM,OAAOsuM,IAC/BK,GAAsB,OAAO3uM,OAAOsuM,IAAatuM,OAbhC,aAcjB4uM,GAA2B,gBAC3BC,GAAsB,SAGtBC,GAAqB,YAErBC,GAAsB,mBAItBC,GAAkB,WAOlBC,GAAyB,SAAUC,GACrCnwL,GAAUkwL,EAAWC,GAErB,IAAI7mK,EAAWhpB,GAAa4vL,GAE5B,SAASA,EAAU34L,EAASqP,GAC1B,IAAIwpL,EAoBJ,OAlBAlqN,GAAgB0a,KAAMsvM,IAEtBE,EAAU9mK,EAASpmD,KAAK0d,KAAM2W,IACtB84L,eAA8C,SAA7BD,EAAQ7zI,SAASslD,QAAqB15H,OAASioN,EAAQ7zI,SAChF6zI,EAAQ9xJ,QAAU8xJ,EAAQjX,WAAWvyK,GACrCwpL,EAAQjT,UAAY,GAAGl8L,OAAOmvM,EAAQ9xJ,QAAQh4D,OAAQ,KAAK2a,OAAO8uM,GAAoB,MAAM9uM,OAAOmvM,EAAQ9xJ,QAAQh4D,OAAQ,KAAK2a,OAAO+uM,GAAqB,MAAM/uM,OAAOmvM,EAAQ9xJ,QAAQh4D,OAAQ,MAAM2a,OAAO4uM,IAC9MO,EAAQrgI,SAAW,GACnBqgI,EAAQE,SAAW,GACnBF,EAAQG,cAAgB,KACxBH,EAAQI,cAAgB,EACxB7c,GAAa79F,GAAGs6G,EAAQC,eAAgBV,IAAc,WACpD,OAAOS,EAAQK,cAGjBL,EAAQ79E,UAER69E,EAAQK,WAEDL,EAsMT,OAlMA1pN,GAAawpN,EAAW,CAAC,CACvB5rN,IAAK,UACLN,MACA,WACE,IAAI0sN,EAAU9vM,KAEV+vM,EAAa/vM,KAAKyvM,iBAAmBzvM,KAAKyvM,eAAeloN,OA5C/C,SA4CwE8nN,GAClFW,EAAuC,SAAxBhwM,KAAK09C,QAAQr4B,OAAoB0qL,EAAa/vM,KAAK09C,QAAQr4B,OAC1E4qL,EAAaD,IAAiBX,GAAkBrvM,KAAKkwM,gBAAkB,EAC3ElwM,KAAKmvE,SAAW,GAChBnvE,KAAK0vM,SAAW,GAChB1vM,KAAK4vM,cAAgB5vM,KAAKmwM,mBACZnhB,GAAoBhvL,KAAKu8L,WAC/B7xM,KAAI,SAAUisB,GACpB,IAAI27H,EAAiB+8C,GAAuB14K,GACxCjxB,EAAS4sJ,EAAiB08C,GAAuB18C,GAAkB,KAEvE,GAAI5sJ,EAAQ,CACV,IAAI0qN,EAAY1qN,EAAOqyB,wBAEvB,GAAIq4L,EAAU3qM,OAAS2qM,EAAUrpM,OAC/B,MAAO,CAAC8uL,GAAYma,GAActqN,GAAQijB,IAAMsnM,EAAY39D,GAIhE,OAAO,QACNxhI,QAAO,SAAUuR,GAClB,OAAOA,KACN2P,MAAK,SAAUrjC,EAAGC,GACnB,OAAOD,EAAE,GAAKC,EAAE,MACfof,SAAQ,SAAUqU,GACnBytL,EAAQ3gI,SAASzpE,KAAK2c,EAAK,IAE3BytL,EAAQJ,SAAShqM,KAAK2c,EAAK,SAG9B,CACD3+B,IAAK,UACLN,MAAO,WACL2vM,GAAa7iG,IAAIlwF,KAAKyvM,eAAgBd,IAEtC5vL,GAAKE,GAAgBqwL,EAAUvrN,WAAY,UAAWic,MAAM1d,KAAK0d,QAGlE,CACDtc,IAAK,aACLN,MAAO,SAAoB4iC,GAGzB,GAA6B,kBAF7BA,EAASnH,GAAcA,GAAcA,GAAc,GAAI+vL,IAAY/Y,GAAYG,kBAAkBh2L,KAAK27D,WAAgC,WAApBv2E,GAAQ4gC,IAAwBA,EAASA,EAAS,KAElJtgC,QAAuB,GAAUsgC,EAAOtgC,QAAS,CACjE,IAAIkD,EAAKo9B,EAAOtgC,OAAOkD,GAElBA,IACHA,EAAKumM,GAAOuf,IACZ1oL,EAAOtgC,OAAOkD,GAAKA,GAGrBo9B,EAAOtgC,OAAS,IAAI2a,OAAOzX,GAI7B,OADAgnM,GAAgB8e,GAAQ1oL,EAAQ6oL,IACzB7oL,IAER,CACDtiC,IAAK,gBACLN,MAAO,WACL,OAAO4c,KAAKyvM,iBAAmBloN,OAASyY,KAAKyvM,eAAejkG,YAAcxrG,KAAKyvM,eAAe3zG,YAE/F,CACDp4G,IAAK,mBACLN,MAAO,WACL,OAAO4c,KAAKyvM,eAAe18F,cAAgB5mH,KAAK6B,IAAIo5C,SAASs2B,KAAKq1C,aAAc3rE,SAAS80C,gBAAgB62B,gBAE1G,CACDrvH,IAAK,mBACLN,MAAO,WACL,OAAO4c,KAAKyvM,iBAAmBloN,OAASA,OAAO8lH,YAAcrtG,KAAKyvM,eAAe13L,wBAAwBhR,SAE1G,CACDrjB,IAAK,WACLN,MAAO,WACL,IAAI04G,EAAY97F,KAAKkwM,gBAAkBlwM,KAAK09C,QAAQ7mB,OAEhDk8E,EAAe/yG,KAAKmwM,mBAEpBE,EAAYrwM,KAAK09C,QAAQ7mB,OAASk8E,EAAe/yG,KAAKswM,mBAM1D,GAJItwM,KAAK4vM,gBAAkB78F,GACzB/yG,KAAK2xH,UAGH71B,GAAau0G,EAAjB,CACE,IAAI3qN,EAASsa,KAAK0vM,SAAS1vM,KAAK0vM,SAAS9pN,OAAS,GAE9Coa,KAAK2vM,gBAAkBjqN,GACzBsa,KAAKuwM,UAAU7qN,OAJnB,CAUA,GAAIsa,KAAK2vM,eAAiB7zG,EAAY97F,KAAKmvE,SAAS,IAAMnvE,KAAKmvE,SAAS,GAAK,EAK3E,OAJAnvE,KAAK2vM,cAAgB,UAErB3vM,KAAKwwM,SAKP,IAAK,IAAIruN,EAAI6d,KAAKmvE,SAASvpF,OAAQzD,KAAM,CAClB6d,KAAK2vM,gBAAkB3vM,KAAK0vM,SAASvtN,IAAM25G,GAAa97F,KAAKmvE,SAAShtF,KAAuC,qBAAzB6d,KAAKmvE,SAAShtF,EAAI,IAAsB25G,EAAY97F,KAAKmvE,SAAShtF,EAAI,KAG7K6d,KAAKuwM,UAAUvwM,KAAK0vM,SAASvtN,QAIlC,CACDuB,IAAK,YACLN,MAAO,SAAmBsC,GACxBsa,KAAK2vM,cAAgBjqN,EAErBsa,KAAKwwM,SAEL,IAAIC,EAAUzwM,KAAKu8L,UAAU36L,MAAM,KAAKlX,KAAI,SAAU4pF,GACpD,MAAO,GAAGj0E,OAAOi0E,EAAU,qBAAsBj0E,OAAO3a,EAAQ,OAAQ2a,OAAOi0E,EAAU,WAAYj0E,OAAO3a,EAAQ,SAGlHswI,EAAOg5D,GAAuByhB,EAAQhgM,KAAK,MAE3CulH,EAAKlkB,UAAU36B,SAAS83H,KAC1BjgB,GA1KyB,mBA0K0Bh5D,EAAKtwC,QA3KtC,cA2KoEosB,UAAU1jG,IAAI8gM,IACpGl5E,EAAKlkB,UAAU1jG,IAAI8gM,MAGnBl5E,EAAKlkB,UAAU1jG,IAAI8gM,IACnBlgB,GAAuBh5D,EApLC,qBAoLgChoH,SAAQ,SAAU0iM,GAGxE1hB,GAAoB0hB,EAAW,GAAGrwM,OAAO8uM,GAAoB,MAAM9uM,OAAO+uM,KAAsBphM,SAAQ,SAAUqU,GAChH,OAAOA,EAAKyvF,UAAU1jG,IAAI8gM,OAG5BlgB,GAAoB0hB,EAzLL,aAyLoC1iM,SAAQ,SAAU2iM,GACnE3hB,GAAwB2hB,EAASxB,IAAoBnhM,SAAQ,SAAUqU,GACrE,OAAOA,EAAKyvF,UAAU1jG,IAAI8gM,cAMlCnc,GAAapiG,QAAQ3wF,KAAKyvM,eAAgBX,GAAgB,CACxDz7G,cAAe3tG,MAGlB,CACDhC,IAAK,SACLN,MAAO,WACL4rM,GAAoBhvL,KAAKu8L,WAAWzrL,QAAO,SAAUnP,GACnD,OAAOA,EAAKmwG,UAAU36B,SAAS+3H,OAC9BlhM,SAAQ,SAAUrM,GACnB,OAAOA,EAAKmwG,UAAUltD,OAAOsqJ,UAI/B,CAAC,CACHxrN,IAAK,UACLV,IAAK,WACH,OAAO4rN,KAER,CACDlrN,IAAK,OACLV,IAAK,WACH,OAAO0rN,KAER,CACDhrN,IAAK,kBACLN,MAAO,SAAyB4iC,GAC9B,OAAOhmB,KAAKpW,MAAK,WACf,IAAIub,EAAOmqM,EAAUpa,oBAAoBl1L,KAAMgmB,GAE/C,GAAsB,kBAAXA,EAAX,CAIA,GAA4B,qBAAjB7gB,EAAK6gB,GACd,MAAM,IAAIlhC,UAAU,oBAAqBub,OAAO2lB,EAAQ,MAG1D7gB,EAAK6gB,aAKJspL,EAhOoB,CAiO3Btb,IAQFjB,GAAa79F,GAAG3tG,OAAQynN,IAAqB,WAC3ChgB,GAzPsB,0BAyPiBhhL,SAAQ,SAAU4iM,GACvD,OAAO,IAAItB,GAAUsB,SAUzBrgB,GAAmB+e,IAcnB,IAEIuB,GAAc,IAAIxwM,OADL,UAGbywM,GAAe,OAAOzwM,OAAOwwM,IAC7BE,GAAiB,SAAS1wM,OAAOwwM,IACjCG,GAAe,OAAO3wM,OAAOwwM,IAC7BI,GAAgB,QAAQ5wM,OAAOwwM,IAC/BK,GAAuB,QAAQ7wM,OAAOwwM,IAAaxwM,OALpC,aAOf8wM,GAAoB,SACpBC,GAAoB,OACpBC,GAAoB,OAGpBC,GAAkB,UAClBC,GAAqB,wBAUrBC,GAAmB,SAAUC,GAC/BryL,GAAUoyL,EAAKC,GAEf,IAAInjK,EAAW5uB,GAAa8xL,GAE5B,SAASA,IAGP,OAFAlsN,GAAgB0a,KAAMwxM,GAEfljK,EAASjmD,MAAM2X,KAAM9X,WAoJ9B,OAjJApC,GAAa0rN,EAAK,CAAC,CACjB9tN,IAAK,OACLN,MACA,WACE,IAAIsuN,EAAU1xM,KAEd,IAAIA,KAAK27D,SAASvlD,YAAcpW,KAAK27D,SAASvlD,WAAWo9D,WAAai3F,KAAKC,eAAgB1qK,KAAK27D,SAASm2C,UAAU36B,SAASg6H,IAA5H,CAIA,IAAIloM,EACAvjB,EAAS4pM,GAAuBtvL,KAAK27D,UAErCg2I,EAAc3xM,KAAK27D,SAAS+pB,QApCR,qBAsCxB,GAAIisH,EAAa,CACf,IAAIvlF,EAAwC,OAAzBulF,EAAY53H,UAA8C,OAAzB43H,EAAY53H,SAAoBw3H,GAAqBD,GAEzGroM,GADAA,EAAW+lL,GAAoB5iE,EAAculF,IACzB1oM,EAASrjB,OAAS,GAGxC,IAAIgsN,EAAY3oM,EAAW8pL,GAAapiG,QAAQ1nF,EAAU6nM,GAAc,CACtEz9G,cAAerzF,KAAK27D,WACjB,KAKL,KAJgBo3H,GAAapiG,QAAQ3wF,KAAK27D,SAAUq1I,GAAc,CAChE39G,cAAepqF,IAGHmqF,kBAAkC,OAAdw+G,GAAsBA,EAAUx+G,kBAAlE,CAIApzF,KAAKuwM,UAAUvwM,KAAK27D,SAAUg2I,GAE9B,IAAI9uL,EAAW,WACbkwK,GAAapiG,QAAQ1nF,EAAU8nM,GAAgB,CAC7C19G,cAAeq+G,EAAQ/1I,WAEzBo3H,GAAapiG,QAAQ+gH,EAAQ/1I,SAAUs1I,GAAe,CACpD59G,cAAepqF,KAIfvjB,EACFsa,KAAKuwM,UAAU7qN,EAAQA,EAAO0wB,WAAYyM,GAE1CA,QAIH,CACDn/B,IAAK,YACLN,MAAO,SAAmBuzB,EAAS+B,EAAWlxB,GAC5C,IAAIqqN,EAAU7xM,KAGVylB,IADiB/M,GAAqC,OAAvBA,EAAUqhE,UAA4C,OAAvBrhE,EAAUqhE,SAA0Ei1G,GAAwBt2K,EAAW44L,IAAxFtiB,GAAoBuiB,GAAoB74L,IAC7G,GACxBmzH,EAAkBrkJ,GAAYi+B,GAAUA,EAAOqsF,UAAU36B,SAASi6H,IAElEvuL,EAAW,WACb,OAAOgvL,EAAQC,oBAAoBn7L,EAAS8O,EAAQj+B,IAGlDi+B,GAAUomH,GACZpmH,EAAOqsF,UAAUltD,OAAOysJ,IAExBrxM,KAAKg1L,eAAenyK,EAAUlM,GAAS,IAEvCkM,MAGH,CACDn/B,IAAK,sBACLN,MAAO,SAA6BuzB,EAAS8O,EAAQj+B,GACnD,GAAIi+B,EAAQ,CACVA,EAAOqsF,UAAUltD,OAAOusJ,IACxB,IAAIY,EAAgB/iB,GA9FS,kCA8F8CvpK,EAAOrP,YAE9E27L,GACFA,EAAcjgG,UAAUltD,OAAOusJ,IAGG,QAAhC1rL,EAAOmjB,aAAa,SACtBnjB,EAAOyjB,aAAa,iBAAiB,GAIzCvyB,EAAQm7F,UAAU1jG,IAAI+iM,IAEe,QAAjCx6L,EAAQiyB,aAAa,SACvBjyB,EAAQuyB,aAAa,iBAAiB,GAGxCinJ,GAAOx5K,GAEHA,EAAQm7F,UAAU36B,SAASi6H,KAC7Bz6L,EAAQm7F,UAAU1jG,IAAIijM,IAGxB,IAAIr/L,EAAS2E,EAAQP,WAMrB,GAJIpE,GAA8B,OAApBA,EAAO+nE,WACnB/nE,EAASA,EAAOoE,YAGdpE,GAAUA,EAAO8/F,UAAU36B,SArIN,iBAqI0C,CACjE,IAAI66H,EAAkBr7L,EAAQ+uE,QAlId,aAoIZssH,GACFhjB,GAhIqB,mBAgIyBgjB,GAAiBhkM,SAAQ,SAAUikM,GAC/E,OAAOA,EAASngG,UAAU1jG,IAAI+iM,OAIlCx6L,EAAQuyB,aAAa,iBAAiB,GAGpC1hD,GACFA,OAIF,CAAC,CACH9D,IAAK,OACLV,IACA,WACE,MAnKO,QAqKR,CACDU,IAAK,kBACLN,MAAO,SAAyB4iC,GAC9B,OAAOhmB,KAAKpW,MAAK,WACf,IAAIub,EAAOqsM,EAAItc,oBAAoBl1L,MAEnC,GAAsB,kBAAXgmB,EAAqB,CAC9B,GAA4B,qBAAjB7gB,EAAK6gB,GACd,MAAM,IAAIlhC,UAAU,oBAAqBub,OAAO2lB,EAAQ,MAG1D7gB,EAAK6gB,aAMNwrL,EA5Jc,CA6JrBxd,IAQFjB,GAAa79F,GAAG9tD,SAAU8pK,GA9KC,4EA8K2C,SAAUnuL,IAC1E,CAAC,IAAK,QAAQxT,SAASvP,KAAKihH,UAC9Bl+F,EAAM2tE,iBAGJ9U,GAAW57E,QAIJwxM,GAAItc,oBAAoBl1L,MAC9B2lB,UASP4qK,GAAmBihB,IAcnB,IAAIhhB,GAAO,QAEP0D,GAAY,IAAI7zL,OADL,YAEX6xM,GAAsB,gBAAgB7xM,OAAO6zL,IAC7Cie,GAAkB,YAAY9xM,OAAO6zL,IACrCke,GAAiB,WAAW/xM,OAAO6zL,IACnCme,GAAgB,UAAUhyM,OAAO6zL,IACjCoe,GAAiB,WAAWjyM,OAAO6zL,IACnCqe,GAAa,OAAOlyM,OAAO6zL,IAC3Bse,GAAe,SAASnyM,OAAO6zL,IAC/Bue,GAAa,OAAOpyM,OAAO6zL,IAC3Bwe,GAAc,QAAQryM,OAAO6zL,IAE7Bye,GAAkB,OAClBC,GAAkB,OAClBC,GAAqB,UACrB7S,GAAc,CAChB59L,UAAW,UACX0wM,SAAU,UACVvuL,MAAO,UAELw7K,GAAU,CACZ39L,WAAW,EACX0wM,UAAU,EACVvuL,MAAO,KASLwuL,GAAqB,SAAUC,GACjC5zL,GAAU2zL,EAAOC,GAEjB,IAAI7pJ,EAAWzpC,GAAaqzL,GAE5B,SAASA,EAAMp8L,EAASqP,GACtB,IAAIitL,EAYJ,OAVA3tN,GAAgB0a,KAAM+yM,IAEtBE,EAAU9pJ,EAAS7mE,KAAK0d,KAAM2W,IACtB+mC,QAAUu1J,EAAQ1a,WAAWvyK,GACrCitL,EAAQxH,SAAW,KACnBwH,EAAQC,sBAAuB,EAC/BD,EAAQE,yBAA0B,EAElCF,EAAQpH,gBAEDoH,EA8LT,OA1LAntN,GAAaitN,EAAO,CAAC,CACnBrvN,IAAK,OACLN,MACA,WACE,IAAIgwN,EAAUpzM,KAId,IAFgB+yL,GAAapiG,QAAQ3wF,KAAK27D,SAAU82I,IAEtCr/G,iBAAd,CAIApzF,KAAKqzM,gBAEDrzM,KAAK09C,QAAQt7C,WACfpC,KAAK27D,SAASm2C,UAAU1jG,IA1DV,QAuEhBpO,KAAK27D,SAASm2C,UAAUltD,OAAO+tJ,IAE/BxiB,GAAOnwL,KAAK27D,UAEZ37D,KAAK27D,SAASm2C,UAAU1jG,IAAIykM,IAE5B7yM,KAAKg1L,gBAhBU,WACboe,EAAQz3I,SAASm2C,UAAUltD,OAAOiuJ,IAElCO,EAAQz3I,SAASm2C,UAAU1jG,IAAIwkM,IAE/B7f,GAAapiG,QAAQyiH,EAAQz3I,SAAU+2I,IAEvCU,EAAQE,uBASoBtzM,KAAK27D,SAAU37D,KAAK09C,QAAQt7C,cAE3D,CACD1e,IAAK,OACLN,MAAO,WACL,IAAImwN,EAAUvzM,KAEd,GAAKA,KAAK27D,SAASm2C,UAAU36B,SAASy7H,MAItB7f,GAAapiG,QAAQ3wF,KAAK27D,SAAU42I,IAEtCn/G,iBAAd,CAUApzF,KAAK27D,SAASm2C,UAAUltD,OAAOguJ,IAE/B5yM,KAAKg1L,gBARU,WACbue,EAAQ53I,SAASm2C,UAAU1jG,IAAIukM,IAE/B5f,GAAapiG,QAAQ4iH,EAAQ53I,SAAU62I,MAKXxyM,KAAK27D,SAAU37D,KAAK09C,QAAQt7C,cAE3D,CACD1e,IAAK,UACLN,MAAO,WACL4c,KAAKqzM,gBAEDrzM,KAAK27D,SAASm2C,UAAU36B,SAASy7H,KACnC5yM,KAAK27D,SAASm2C,UAAUltD,OAAOguJ,IAGjC7zL,GAAKE,GAAgB8zL,EAAMhvN,WAAY,UAAWic,MAAM1d,KAAK0d,QAG9D,CACDtc,IAAK,aACLN,MAAO,SAAoB4iC,GAGzB,OAFAA,EAASnH,GAAcA,GAAcA,GAAc,GAAIkhL,IAAUlK,GAAYG,kBAAkBh2L,KAAK27D,WAAgC,WAApBv2E,GAAQ4gC,IAAwBA,EAASA,EAAS,IAClK4pK,GAAgBY,GAAMxqK,EAAQhmB,KAAK3a,YAAY26M,aACxCh6K,IAER,CACDtiC,IAAK,qBACLN,MAAO,WACL,IAAIowN,EAAUxzM,KAETA,KAAK09C,QAAQo1J,WAId9yM,KAAKkzM,sBAAwBlzM,KAAKmzM,0BAItCnzM,KAAKyrM,SAAWvqJ,YAAW,WACzBsyJ,EAAQ1tL,SACP9lB,KAAK09C,QAAQn5B,WAEjB,CACD7gC,IAAK,iBACLN,MAAO,SAAwB2/B,EAAO0wL,GACpC,OAAQ1wL,EAAMh6B,MACZ,IAAK,YACL,IAAK,WACHiX,KAAKkzM,qBAAuBO,EAC5B,MAEF,IAAK,UACL,IAAK,WACHzzM,KAAKmzM,wBAA0BM,EAInC,GAAIA,EACFzzM,KAAKqzM,oBADP,CAMA,IAAInZ,EAAcn3K,EAAMswE,cAEpBrzF,KAAK27D,WAAau+H,GAAel6L,KAAK27D,SAASwb,SAAS+iH,IAI5Dl6L,KAAKszM,wBAEN,CACD5vN,IAAK,gBACLN,MAAO,WACL,IAAIswN,EAAU1zM,KAEd+yL,GAAa79F,GAAGl1F,KAAK27D,SAAUu2I,GAhKT,6BAgKqD,WACzE,OAAOwB,EAAQ5tL,UAEjBitK,GAAa79F,GAAGl1F,KAAK27D,SAAUw2I,IAAiB,SAAUpvL,GACxD,OAAO2wL,EAAQC,eAAe5wL,GAAO,MAEvCgwK,GAAa79F,GAAGl1F,KAAK27D,SAAUy2I,IAAgB,SAAUrvL,GACvD,OAAO2wL,EAAQC,eAAe5wL,GAAO,MAEvCgwK,GAAa79F,GAAGl1F,KAAK27D,SAAU02I,IAAe,SAAUtvL,GACtD,OAAO2wL,EAAQC,eAAe5wL,GAAO,MAEvCgwK,GAAa79F,GAAGl1F,KAAK27D,SAAU22I,IAAgB,SAAUvvL,GACvD,OAAO2wL,EAAQC,eAAe5wL,GAAO,QAGxC,CACDr/B,IAAK,gBACLN,MAAO,WACL69D,aAAajhD,KAAKyrM,UAClBzrM,KAAKyrM,SAAW,QAGhB,CAAC,CACH/nN,IAAK,cACLV,IAAK,WACH,OAAOg9M,KAER,CACDt8M,IAAK,UACLV,IAAK,WACH,OAAO+8M,KAER,CACDr8M,IAAK,OACLV,IAAK,WACH,OAAOwtM,KAER,CACD9sM,IAAK,kBACLN,MAAO,SAAyB4iC,GAC9B,OAAOhmB,KAAKpW,MAAK,WACf,IAAIub,EAAO4tM,EAAM7d,oBAAoBl1L,KAAMgmB,GAE3C,GAAsB,kBAAXA,EAAqB,CAC9B,GAA4B,qBAAjB7gB,EAAK6gB,GACd,MAAM,IAAIlhC,UAAU,oBAAqBub,OAAO2lB,EAAQ,MAG1D7gB,EAAK6gB,GAAQhmB,cAMd+yM,EAhNgB,CAiNvB/e,IASFzD,GAAmBwiB","file":"js/application-c63cb4489bbd4751abb9.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/public/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 52);\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/*!\n * Chart.js v3.4.1\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n\nvar requestAnimFrame = function () {\n if (typeof window === 'undefined') {\n return function (callback) {\n return callback();\n };\n }\n\n return window.requestAnimationFrame;\n}();\n\nfunction throttled(fn, thisArg, updateFn) {\n var updateArgs = updateFn || function (args) {\n return Array.prototype.slice.call(args);\n };\n\n var ticking = false;\n var args = [];\n return function () {\n for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n\n args = updateArgs(rest);\n\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, function () {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\n\nfunction debounce(fn, delay) {\n var timeout;\n return function () {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay);\n } else {\n fn();\n }\n\n return delay;\n };\n}\n\nvar _toLeftRightCenter = function _toLeftRightCenter(align) {\n return align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n};\n\nvar _alignStartEnd = function _alignStartEnd(align, start, end) {\n return align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n};\n\nvar _textX = function _textX(align, left, right, rtl) {\n var check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction noop() {}\n\nvar uid = function () {\n var id = 0;\n return function () {\n return id++;\n };\n}();\n\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\n\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n\n var type = Object.prototype.toString.call(value);\n\n if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n return true;\n }\n\n return false;\n}\n\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n\nvar isNumberFinite = function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n};\n\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\n\nvar toPercentage = function toPercentage(value, dimension) {\n return typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : value / dimension;\n};\n\nvar toDimension = function toDimension(value, dimension) {\n return typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n};\n\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\n\nfunction each(loopable, fn, thisArg, reverse) {\n var i, len, keys;\n\n if (isArray(loopable)) {\n len = loopable.length;\n\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n\nfunction _elementsEqual(a0, a1) {\n var i, ilen, v0, v1;\n\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n\n if (isObject(source)) {\n var target = Object.create(null);\n var keys = Object.keys(source);\n var klen = keys.length;\n var k = 0;\n\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n\n return target;\n }\n\n return source;\n}\n\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\n\nfunction merge(target, source, options) {\n var sources = isArray(source) ? source : [source];\n var ilen = sources.length;\n\n if (!isObject(target)) {\n return target;\n }\n\n options = options || {};\n var merger = options.merger || _merger;\n\n for (var i = 0; i < ilen; ++i) {\n source = sources[i];\n\n if (!isObject(source)) {\n continue;\n }\n\n var keys = Object.keys(source);\n\n for (var k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n\n return target;\n}\n\nfunction mergeIf(target, source) {\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\n\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n\nvar emptyString = '';\nvar dot = '.';\n\nfunction indexOfDotOrLength(key, start) {\n var idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\n\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n\n var pos = 0;\n var idx = indexOfDotOrLength(key, pos);\n\n while (obj && idx > pos) {\n obj = obj[key.substr(pos, idx - pos)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n\n return obj;\n}\n\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nvar defined = function defined(value) {\n return typeof value !== 'undefined';\n};\n\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n\nvar setsEqual = function setsEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n\n var _iterator = _createForOfIteratorHelper(a),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n\n if (!b.has(item)) {\n return false;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return true;\n};\n\nvar PI = Math.PI;\nvar TAU = 2 * PI;\nvar PITAU = TAU + PI;\nvar INFINITY = Number.POSITIVE_INFINITY;\nvar RAD_PER_DEG = PI / 180;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\nvar log10 = Math.log10;\nvar sign = Math.sign;\n\nfunction niceNum(range) {\n var roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n var niceRange = Math.pow(10, Math.floor(log10(range)));\n var fraction = range / niceRange;\n var niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n\nfunction _factorize(value) {\n var result = [];\n var sqrt = Math.sqrt(value);\n var i;\n\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n\n result.sort(function (a, b) {\n return a - b;\n }).pop();\n return result;\n}\n\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n\nfunction almostWhole(x, epsilon) {\n var rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n\nfunction _setMinAndMaxByKey(array, target, property) {\n var i, ilen, value;\n\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\n\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\n\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n\n var e = 1;\n var p = 0;\n\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n\n return p;\n}\n\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n var distanceFromXCenter = anglePoint.x - centrePoint.x;\n var distanceFromYCenter = anglePoint.y - centrePoint.y;\n var radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n var angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n if (angle < -0.5 * PI) {\n angle += TAU;\n }\n\n return {\n angle: angle,\n distance: radialDistanceFromCenter\n };\n}\n\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n var a = _normalizeAngle(angle);\n\n var s = _normalizeAngle(start);\n\n var e = _normalizeAngle(end);\n\n var angleToStart = _normalizeAngle(s - a);\n\n var angleToEnd = _normalizeAngle(e - a);\n\n var startToAngle = _normalizeAngle(a - s);\n\n var endToAngle = _normalizeAngle(a - e);\n\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n\nvar atEdge = function atEdge(t) {\n return t === 0 || t === 1;\n};\n\nvar elasticIn = function elasticIn(t, s, p) {\n return -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\n};\n\nvar elasticOut = function elasticOut(t, s, p) {\n return Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n};\n\nvar effects = {\n linear: function linear(t) {\n return t;\n },\n easeInQuad: function easeInQuad(t) {\n return t * t;\n },\n easeOutQuad: function easeOutQuad(t) {\n return -t * (t - 2);\n },\n easeInOutQuad: function easeInOutQuad(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1);\n },\n easeInCubic: function easeInCubic(t) {\n return t * t * t;\n },\n easeOutCubic: function easeOutCubic(t) {\n return (t -= 1) * t * t + 1;\n },\n easeInOutCubic: function easeInOutCubic(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2);\n },\n easeInQuart: function easeInQuart(t) {\n return t * t * t * t;\n },\n easeOutQuart: function easeOutQuart(t) {\n return -((t -= 1) * t * t * t - 1);\n },\n easeInOutQuart: function easeInOutQuart(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2);\n },\n easeInQuint: function easeInQuint(t) {\n return t * t * t * t * t;\n },\n easeOutQuint: function easeOutQuint(t) {\n return (t -= 1) * t * t * t * t + 1;\n },\n easeInOutQuint: function easeInOutQuint(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2);\n },\n easeInSine: function easeInSine(t) {\n return -Math.cos(t * HALF_PI) + 1;\n },\n easeOutSine: function easeOutSine(t) {\n return Math.sin(t * HALF_PI);\n },\n easeInOutSine: function easeInOutSine(t) {\n return -0.5 * (Math.cos(PI * t) - 1);\n },\n easeInExpo: function easeInExpo(t) {\n return t === 0 ? 0 : Math.pow(2, 10 * (t - 1));\n },\n easeOutExpo: function easeOutExpo(t) {\n return t === 1 ? 1 : -Math.pow(2, -10 * t) + 1;\n },\n easeInOutExpo: function easeInOutExpo(t) {\n return atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2);\n },\n easeInCirc: function easeInCirc(t) {\n return t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1);\n },\n easeOutCirc: function easeOutCirc(t) {\n return Math.sqrt(1 - (t -= 1) * t);\n },\n easeInOutCirc: function easeInOutCirc(t) {\n return (t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n },\n easeInElastic: function easeInElastic(t) {\n return atEdge(t) ? t : elasticIn(t, 0.075, 0.3);\n },\n easeOutElastic: function easeOutElastic(t) {\n return atEdge(t) ? t : elasticOut(t, 0.075, 0.3);\n },\n easeInOutElastic: function easeInOutElastic(t) {\n var s = 0.1125;\n var p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack: function easeInBack(t) {\n var s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack: function easeOutBack(t) {\n var s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack: function easeInOutBack(t) {\n var s = 1.70158;\n\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: function easeInBounce(t) {\n return 1 - effects.easeOutBounce(1 - t);\n },\n easeOutBounce: function easeOutBounce(t) {\n var m = 7.5625;\n var d = 2.75;\n\n if (t < 1 / d) {\n return m * t * t;\n }\n\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: function easeInOutBounce(t) {\n return t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n }\n};\n/*!\n * @kurkle/color v0.1.9\n * https://github.com/kurkle/color#readme\n * (c) 2020 Jukka Kurkela\n * Released under the MIT License\n */\n\nvar map = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n a: 10,\n b: 11,\n c: 12,\n d: 13,\n e: 14,\n f: 15\n};\nvar hex = '0123456789ABCDEF';\n\nvar h1 = function h1(b) {\n return hex[b & 0xF];\n};\n\nvar h2 = function h2(b) {\n return hex[(b & 0xF0) >> 4] + hex[b & 0xF];\n};\n\nvar eq = function eq(b) {\n return (b & 0xF0) >> 4 === (b & 0xF);\n};\n\nfunction isShort(v) {\n return eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\n}\n\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map[str[1]] * 17,\n g: 255 & map[str[2]] * 17,\n b: 255 & map[str[3]] * 17,\n a: len === 5 ? map[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map[str[1]] << 4 | map[str[2]],\n g: map[str[3]] << 4 | map[str[4]],\n b: map[str[5]] << 4 | map[str[6]],\n a: len === 9 ? map[str[7]] << 4 | map[str[8]] : 255\n };\n }\n }\n\n return ret;\n}\n\nfunction _hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v ? '#' + f(v.r) + f(v.g) + f(v.b) + (v.a < 255 ? f(v.a) : '') : v;\n}\n\nfunction round(v) {\n return v + 0.5 | 0;\n}\n\nvar lim = function lim(v, l, h) {\n return Math.max(Math.min(v, h), l);\n};\n\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\n\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\n\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\n\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nvar RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\n\nfunction rgbParse(str) {\n var m = RGB_RE.exec(str);\n var a = 255;\n var r, g, b;\n\n if (!m) {\n return;\n }\n\n if (m[7] !== r) {\n var v = +m[7];\n a = 255 & (m[8] ? p2b(v) : v * 255);\n }\n\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : r);\n g = 255 & (m[4] ? p2b(g) : g);\n b = 255 & (m[6] ? p2b(b) : b);\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\n\nfunction _rgbString(v) {\n return v && (v.a < 255 ? \"rgba(\".concat(v.r, \", \").concat(v.g, \", \").concat(v.b, \", \").concat(b2n(v.a), \")\") : \"rgb(\".concat(v.r, \", \").concat(v.g, \", \").concat(v.b, \")\"));\n}\n\nvar HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\n\nfunction hsl2rgbn(h, s, l) {\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n return [f(0), f(8), f(4)];\n}\n\nfunction hsv2rgbn(h, s, v) {\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 60) % 6;\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n };\n\n return [f(5), f(3), f(1)];\n}\n\nfunction hwb2rgbn(h, w, b) {\n var rgb = hsl2rgbn(h, 1, 0.5);\n var i;\n\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n\n return rgb;\n}\n\nfunction rgb2hsl(v) {\n var range = 255;\n var r = v.r / range;\n var g = v.g / range;\n var b = v.b / range;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var l = (max + min) / 2;\n var h, s, d;\n\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;\n h = h * 60 + 0.5;\n }\n\n return [h | 0, s || 0, l];\n}\n\nfunction calln(f, a, b, c) {\n return (Array.isArray(a) ? f(a[0], a[1], a[2]) : f(a, b, c)).map(n2b);\n}\n\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\n\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\n\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\n\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\n\nfunction hueParse(str) {\n var m = HUE_RE.exec(str);\n var a = 255;\n var v;\n\n if (!m) {\n return;\n }\n\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n\n var h = hue(+m[2]);\n var p1 = +m[3] / 100;\n var p2 = +m[4] / 100;\n\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\n\nfunction _rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\n\nfunction _hslString(v) {\n if (!v) {\n return;\n }\n\n var a = rgb2hsl(v);\n var h = a[0];\n var s = n2p(a[1]);\n var l = n2p(a[2]);\n return v.a < 255 ? \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(b2n(v.a), \")\") : \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\");\n}\n\nvar map$1 = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nvar names = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\n\nfunction unpack() {\n var unpacked = {};\n var keys = Object.keys(names);\n var tkeys = Object.keys(map$1);\n var i, j, k, ok, nk;\n\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map$1[k]);\n }\n\n k = parseInt(names[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n\n return unpacked;\n}\n\nvar names$1;\n\nfunction nameParse(str) {\n if (!names$1) {\n names$1 = unpack();\n names$1.transparent = [0, 0, 0, 0];\n }\n\n var a = names$1[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n var tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\n\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\n\nfunction fromObject(input) {\n var v = {\n r: 0,\n g: 0,\n b: 0,\n a: 255\n };\n\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {\n r: input[0],\n g: input[1],\n b: input[2],\n a: 255\n };\n\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {\n r: 0,\n g: 0,\n b: 0,\n a: 1\n });\n v.a = n2b(v.a);\n }\n\n return v;\n}\n\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n\n return hueParse(str);\n}\n\nvar Color = /*#__PURE__*/function () {\n function Color(input) {\n _classCallCheck(this, Color);\n\n if (input instanceof Color) {\n return input;\n }\n\n var type = _typeof(input);\n\n var v;\n\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n\n this._rgb = v;\n this._valid = !!v;\n }\n\n _createClass(Color, [{\n key: \"valid\",\n get: function get() {\n return this._valid;\n }\n }, {\n key: \"rgb\",\n get: function get() {\n var v = clone(this._rgb);\n\n if (v) {\n v.a = b2n(v.a);\n }\n\n return v;\n },\n set: function set(obj) {\n this._rgb = fromObject(obj);\n }\n }, {\n key: \"rgbString\",\n value: function rgbString() {\n return this._valid ? _rgbString(this._rgb) : this._rgb;\n }\n }, {\n key: \"hexString\",\n value: function hexString() {\n return this._valid ? _hexString(this._rgb) : this._rgb;\n }\n }, {\n key: \"hslString\",\n value: function hslString() {\n return this._valid ? _hslString(this._rgb) : this._rgb;\n }\n }, {\n key: \"mix\",\n value: function mix(color, weight) {\n var me = this;\n\n if (color) {\n var c1 = me.rgb;\n var c2 = color.rgb;\n var w2;\n var p = weight === w2 ? 0.5 : weight;\n var w = 2 * p - 1;\n var a = c1.a - c2.a;\n var w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n me.rgb = c1;\n }\n\n return me;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new Color(this.rgb);\n }\n }, {\n key: \"alpha\",\n value: function alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n }, {\n key: \"clearer\",\n value: function clearer(ratio) {\n var rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n }, {\n key: \"greyscale\",\n value: function greyscale() {\n var rgb = this._rgb;\n var val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n }, {\n key: \"opaquer\",\n value: function opaquer(ratio) {\n var rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n }, {\n key: \"negate\",\n value: function negate() {\n var v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n }, {\n key: \"lighten\",\n value: function lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n }, {\n key: \"darken\",\n value: function darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n }, {\n key: \"saturate\",\n value: function saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n }, {\n key: \"desaturate\",\n value: function desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n }, {\n key: \"rotate\",\n value: function rotate(deg) {\n _rotate(this._rgb, deg);\n\n return this;\n }\n }]);\n\n return Color;\n}();\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nvar isPatternOrGradient = function isPatternOrGradient(value) {\n return value instanceof CanvasGradient || value instanceof CanvasPattern;\n};\n\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\n\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nvar overrides = Object.create(null);\nvar descriptors = Object.create(null);\n\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n\n var keys = key.split('.');\n\n for (var i = 0, n = keys.length; i < n; ++i) {\n var k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n\n return node;\n}\n\nfunction _set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n\n return merge(getScope$1(root, ''), scope);\n}\n\nvar Defaults = /*#__PURE__*/function () {\n function Defaults(_descriptors) {\n _classCallCheck(this, Defaults);\n\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n\n this.devicePixelRatio = function (context) {\n return context.chart.platform.getDevicePixelRatio();\n };\n\n this.elements = {};\n this.events = ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n\n this.hoverBackgroundColor = function (ctx, options) {\n return getHoverColor(options.backgroundColor);\n };\n\n this.hoverBorderColor = function (ctx, options) {\n return getHoverColor(options.borderColor);\n };\n\n this.hoverColor = function (ctx, options) {\n return getHoverColor(options.color);\n };\n\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.describe(_descriptors);\n }\n\n _createClass(Defaults, [{\n key: \"set\",\n value: function set(scope, values) {\n return _set(this, scope, values);\n }\n }, {\n key: \"get\",\n value: function get(scope) {\n return getScope$1(this, scope);\n }\n }, {\n key: \"describe\",\n value: function describe(scope, values) {\n return _set(descriptors, scope, values);\n }\n }, {\n key: \"override\",\n value: function override(scope, values) {\n return _set(overrides, scope, values);\n }\n }, {\n key: \"route\",\n value: function route(scope, name, targetScope, targetName) {\n var _Object$definePropert;\n\n var scopeObject = getScope$1(this, scope);\n var targetScopeObject = getScope$1(this, targetScope);\n var privateName = '_' + name;\n Object.defineProperties(scopeObject, (_Object$definePropert = {}, _defineProperty(_Object$definePropert, privateName, {\n value: scopeObject[name],\n writable: true\n }), _defineProperty(_Object$definePropert, name, {\n enumerable: true,\n get: function get() {\n var local = this[privateName];\n var target = targetScopeObject[targetName];\n\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n\n return valueOrDefault(local, target);\n },\n set: function set(value) {\n this[privateName] = value;\n }\n }), _Object$definePropert));\n }\n }]);\n\n return Defaults;\n}();\n\nvar defaults = new Defaults({\n _scriptable: function _scriptable(name) {\n return !name.startsWith('on');\n },\n _indexable: function _indexable(name) {\n return name !== 'events';\n },\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n\nfunction _measureText(ctx, data, gc, longest, string) {\n var textWidth = data[string];\n\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n\n if (textWidth > longest) {\n longest = textWidth;\n }\n\n return longest;\n}\n\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n var data = cache.data = cache.data || {};\n var gc = cache.garbageCollect = cache.garbageCollect || [];\n\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n\n ctx.save();\n ctx.font = font;\n var longest = 0;\n var ilen = arrayOfThings.length;\n var i, j, jlen, thing, nestedThing;\n\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n\n ctx.restore();\n var gcLen = gc.length / 2;\n\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n\n gc.splice(0, gcLen);\n }\n\n return longest;\n}\n\nfunction _alignPixel(chart, pixel, width) {\n var devicePixelRatio = chart.currentDevicePixelRatio;\n var halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\n\nfunction drawPoint(ctx, options, x, y) {\n var type, xOffset, yOffset, size, cornerRadius;\n var style = options.pointStyle;\n var rotation = options.rotation;\n var radius = options.radius;\n var rad = (rotation || 0) * RAD_PER_DEG;\n\n if (style && _typeof(style) === 'object') {\n type = style.toString();\n\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n\n ctx.beginPath();\n\n switch (style) {\n default:\n ctx.arc(x, y, radius, 0, TAU);\n ctx.closePath();\n break;\n\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n ctx.rect(x - size, y - size, 2 * size, 2 * size);\n break;\n }\n\n rad += QUARTER_PI;\n\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n\n case 'crossRot':\n rad += QUARTER_PI;\n\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n\n case 'line':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n\n ctx.fill();\n\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\n\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\n\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n\n if (mode === 'middle') {\n var midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n\n ctx.lineTo(target.x, target.y);\n}\n\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\n\nfunction renderText(ctx, text, x, y, font) {\n var opts = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var lines = isArray(text) ? text : [text];\n var stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n var i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n\n ctx.restore();\n}\n\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\n\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n var metrics = ctx.measureText(line);\n var left = x - metrics.actualBoundingBoxLeft;\n var right = x + metrics.actualBoundingBoxRight;\n var top = y - metrics.actualBoundingBoxAscent;\n var bottom = y + metrics.actualBoundingBoxDescent;\n var yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\n\nfunction addRoundedRectPath(ctx, rect) {\n var x = rect.x,\n y = rect.y,\n w = rect.w,\n h = rect.h,\n radius = rect.radius;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nvar LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nvar FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\n\nfunction toLineHeight(value, size) {\n var matches = ('' + value).match(LINE_HEIGHT);\n\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n\n value = +matches[2];\n\n switch (matches[3]) {\n case 'px':\n return value;\n\n case '%':\n value /= 100;\n break;\n }\n\n return size * value;\n}\n\nvar numberOrZero = function numberOrZero(v) {\n return +v || 0;\n};\n\nfunction _readValueToProps(value, props) {\n var ret = {};\n var objProps = isObject(props);\n var keys = objProps ? Object.keys(props) : props;\n var read = isObject(value) ? objProps ? function (prop) {\n return valueOrDefault(value[prop], value[props[prop]]);\n } : function (prop) {\n return value[prop];\n } : function () {\n return value;\n };\n\n var _iterator2 = _createForOfIteratorHelper(keys),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var prop = _step2.value;\n ret[prop] = numberOrZero(read(prop));\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return ret;\n}\n\nfunction toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\n\nfunction toPadding(value) {\n var obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n var size = valueOrDefault(options.size, fallback.size);\n\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n\n var style = valueOrDefault(options.style, fallback.style);\n\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n\n var font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size: size,\n style: style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n\nfunction resolve(inputs, context, index, info) {\n var cacheable = true;\n var i, ilen, value;\n\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n\n if (value === undefined) {\n continue;\n }\n\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n\n return value;\n }\n }\n}\n\nfunction _addGrace(minmax, grace) {\n var min = minmax.min,\n max = minmax.max;\n return {\n min: min - Math.abs(toDimension(grace, min)),\n max: max + toDimension(grace, max)\n };\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || function (index) {\n return table[index] < value;\n };\n\n var hi = table.length - 1;\n var lo = 0;\n var mid;\n\n while (hi - lo > 1) {\n mid = lo + hi >> 1;\n\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n\n return {\n lo: lo,\n hi: hi\n };\n}\n\nvar _lookupByKey = function _lookupByKey(table, key, value) {\n return _lookup(table, value, function (index) {\n return table[index][key] < value;\n });\n};\n\nvar _rlookupByKey = function _rlookupByKey(table, key, value) {\n return _lookup(table, value, function (index) {\n return table[index][key] >= value;\n });\n};\n\nfunction _filterBetween(values, min, max) {\n var start = 0;\n var end = values.length;\n\n while (start < end && values[start] < min) {\n start++;\n }\n\n while (end > start && values[end - 1] > max) {\n end--;\n }\n\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n\n return;\n }\n\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach(function (key) {\n var method = '_onData' + _capitalize(key);\n\n var base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value: function value() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var res = base.apply(this, args);\n\n array._chartjs.listeners.forEach(function (object) {\n if (typeof object[method] === 'function') {\n object[method].apply(object, args);\n }\n });\n\n return res;\n }\n });\n });\n}\n\nfunction unlistenArrayEvents(array, listener) {\n var stub = array._chartjs;\n\n if (!stub) {\n return;\n }\n\n var listeners = stub.listeners;\n var index = listeners.indexOf(listener);\n\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length > 0) {\n return;\n }\n\n arrayEvents.forEach(function (key) {\n delete array[key];\n });\n delete array._chartjs;\n}\n\nfunction _arrayUnique(items) {\n var set = new Set();\n var i, ilen;\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n\n if (set.size === ilen) {\n return items;\n }\n\n return Array.from(set);\n}\n\nfunction _createResolver(scopes) {\n var _cache;\n\n var prefixes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [''];\n var rootScopes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : scopes;\n var fallback = arguments.length > 3 ? arguments[3] : undefined;\n var getTarget = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function () {\n return scopes[0];\n };\n\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n\n var cache = (_cache = {}, _defineProperty(_cache, Symbol.toStringTag, 'Object'), _defineProperty(_cache, \"_cacheable\", true), _defineProperty(_cache, \"_scopes\", scopes), _defineProperty(_cache, \"_rootScopes\", rootScopes), _defineProperty(_cache, \"_fallback\", fallback), _defineProperty(_cache, \"_getTarget\", getTarget), _defineProperty(_cache, \"override\", function override(scope) {\n return _createResolver([scope].concat(_toConsumableArray(scopes)), prefixes, rootScopes, fallback);\n }), _cache);\n return new Proxy(cache, {\n deleteProperty: function deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get: function get(target, prop) {\n return _cached(target, prop, function () {\n return _resolveWithPrefixes(prop, prefixes, scopes, target);\n });\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf: function getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has: function has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys: function ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set: function set(target, prop, value) {\n var storage = target._storage || (target._storage = getTarget());\n storage[prop] = value;\n delete target[prop];\n delete target._keys;\n return true;\n }\n });\n}\n\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n var cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: function setContext(ctx) {\n return _attachContext(proxy, ctx, subProxy, descriptorDefaults);\n },\n override: function override(scope) {\n return _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults);\n }\n };\n return new Proxy(cache, {\n deleteProperty: function deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get: function get(target, prop, receiver) {\n return _cached(target, prop, function () {\n return _resolveWithContext(target, prop, receiver);\n });\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf: function getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has: function has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys: function ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set: function set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\n\nfunction _descriptors(proxy) {\n var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n scriptable: true,\n indexable: true\n };\n\n var _proxy$_scriptable = proxy._scriptable,\n _scriptable = _proxy$_scriptable === void 0 ? defaults.scriptable : _proxy$_scriptable,\n _proxy$_indexable = proxy._indexable,\n _indexable = _proxy$_indexable === void 0 ? defaults.indexable : _proxy$_indexable,\n _proxy$_allKeys = proxy._allKeys,\n _allKeys = _proxy$_allKeys === void 0 ? defaults.allKeys : _proxy$_allKeys;\n\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : function () {\n return _scriptable;\n },\n isIndexable: isFunction(_indexable) ? _indexable : function () {\n return _indexable;\n }\n };\n}\n\nvar readKey = function readKey(prefix, name) {\n return prefix ? prefix + _capitalize(name) : name;\n};\n\nvar needsSubResolver = function needsSubResolver(prop, value) {\n return isObject(value) && prop !== 'adapters';\n};\n\nfunction _cached(target, prop, resolve) {\n var value = target[prop];\n\n if (defined(value)) {\n return value;\n }\n\n value = resolve();\n\n if (defined(value)) {\n target[prop] = value;\n }\n\n return value;\n}\n\nfunction _resolveWithContext(target, prop, receiver) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n var value = _proxy[prop];\n\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n\n return value;\n}\n\nfunction _resolveScriptable(prop, value, target, receiver) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n _stack = target._stack;\n\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n\n _stack.add(prop);\n\n value = value(_context, _subProxy || receiver);\n\n _stack.delete(prop);\n\n if (isObject(value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n\n return value;\n}\n\nfunction _resolveArray(prop, value, target, isIndexable) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n var arr = value;\n\n var scopes = _proxy._scopes.filter(function (s) {\n return s !== arr;\n });\n\n value = [];\n\n var _iterator3 = _createForOfIteratorHelper(arr),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var item = _step3.value;\n var resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n\n return value;\n}\n\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\n\nvar getScope = function getScope(key, parent) {\n return key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\n};\n\nfunction addScopes(set, parentScopes, key, parentFallback) {\n var _iterator4 = _createForOfIteratorHelper(parentScopes),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var parent = _step4.value;\n var scope = getScope(key, parent);\n\n if (scope) {\n set.add(scope);\n var fallback = resolveFallback(scope._fallback, key, scope);\n\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n return false;\n}\n\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n var rootScopes = resolver._rootScopes;\n var fallback = resolveFallback(resolver._fallback, prop, value);\n var allScopes = [].concat(_toConsumableArray(parentScopes), _toConsumableArray(rootScopes));\n var set = new Set();\n set.add(value);\n var key = addScopesFromKey(set, allScopes, prop, fallback || prop);\n\n if (key === null) {\n return false;\n }\n\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key);\n\n if (key === null) {\n return false;\n }\n }\n\n return _createResolver(Array.from(set), [''], rootScopes, fallback, function () {\n return subGetTarget(resolver, prop, value);\n });\n}\n\nfunction addScopesFromKey(set, allScopes, key, fallback) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback);\n }\n\n return key;\n}\n\nfunction subGetTarget(resolver, prop, value) {\n var parent = resolver._getTarget();\n\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n\n var target = parent[prop];\n\n if (isArray(target) && isObject(value)) {\n return value;\n }\n\n return target;\n}\n\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n var value;\n\n var _iterator5 = _createForOfIteratorHelper(prefixes),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var prefix = _step5.value;\n value = _resolve(readKey(prefix, prop), scopes);\n\n if (defined(value)) {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n}\n\nfunction _resolve(key, scopes) {\n var _iterator6 = _createForOfIteratorHelper(scopes),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var scope = _step6.value;\n\n if (!scope) {\n continue;\n }\n\n var value = scope[key];\n\n if (defined(value)) {\n return value;\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n}\n\nfunction getKeysFromAllScopes(target) {\n var keys = target._keys;\n\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n\n return keys;\n}\n\nfunction resolveKeysFromAllScopes(scopes) {\n var set = new Set();\n\n var _iterator7 = _createForOfIteratorHelper(scopes),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var scope = _step7.value;\n\n var _iterator8 = _createForOfIteratorHelper(Object.keys(scope).filter(function (k) {\n return !k.startsWith('_');\n })),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var key = _step8.value;\n set.add(key);\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n return Array.from(set);\n}\n\nvar EPSILON = Number.EPSILON || 1e-14;\n\nvar getPoint = function getPoint(points, i) {\n return i < points.length && !points[i].skip && points[i];\n};\n\nvar getValueAxis = function getValueAxis(indexAxis) {\n return indexAxis === 'x' ? 'y' : 'x';\n};\n\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n var previous = firstPoint.skip ? middlePoint : firstPoint;\n var current = middlePoint;\n var next = afterPoint.skip ? middlePoint : afterPoint;\n var d01 = distanceBetweenPoints(current, previous);\n var d12 = distanceBetweenPoints(next, current);\n var s01 = d01 / (d01 + d12);\n var s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n var fa = t * s01;\n var fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n\nfunction monotoneAdjust(points, deltaK, mK) {\n var pointsLen = points.length;\n var alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (var i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n\n if (squaredMagnitude <= 9) {\n continue;\n }\n\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\n\nfunction monotoneCompute(points, mK) {\n var indexAxis = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'x';\n var valueAxis = getValueAxis(indexAxis);\n var pointsLen = points.length;\n var delta, pointBefore, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (var i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent) {\n continue;\n }\n\n var iPixel = pointCurrent[indexAxis];\n var vPixel = pointCurrent[valueAxis];\n\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[\"cp1\".concat(indexAxis)] = iPixel - delta;\n pointCurrent[\"cp1\".concat(valueAxis)] = vPixel - delta * mK[i];\n }\n\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[\"cp2\".concat(indexAxis)] = iPixel + delta;\n pointCurrent[\"cp2\".concat(valueAxis)] = vPixel + delta * mK[i];\n }\n }\n}\n\nfunction splineCurveMonotone(points) {\n var indexAxis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n var valueAxis = getValueAxis(indexAxis);\n var pointsLen = points.length;\n var deltaK = Array(pointsLen).fill(0);\n var mK = Array(pointsLen);\n var i, pointBefore, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent) {\n continue;\n }\n\n if (pointAfter) {\n var slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\n\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\n\nfunction capBezierPoints(points, area) {\n var i, ilen, point, inArea, inAreaPrev;\n\n var inAreaNext = _isPointInArea(points[0], area);\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n\n if (!inArea) {\n continue;\n }\n\n point = points[i];\n\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n var i, ilen, point, controlPoints;\n\n if (options.spanGaps) {\n points = points.filter(function (pt) {\n return !pt.skip;\n });\n }\n\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n var prev = loop ? points[points.length - 1] : points[0];\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _getParentNode(domNode) {\n var parent = domNode.parentNode;\n\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n\n return parent;\n}\n\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n var valueInPixels;\n\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n\n return valueInPixels;\n}\n\nvar getComputedStyle = function getComputedStyle(element) {\n return window.getComputedStyle(element, null);\n};\n\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\n\nvar positions = ['top', 'right', 'bottom', 'left'];\n\nfunction getPositionedStyle(styles, style, suffix) {\n var result = {};\n suffix = suffix ? '-' + suffix : '';\n\n for (var i = 0; i < 4; i++) {\n var pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\n\nvar useOffsetPos = function useOffsetPos(x, y, target) {\n return (x > 0 || y > 0) && (!target || !target.shadowRoot);\n};\n\nfunction getCanvasPosition(evt, canvas) {\n var e = evt.native || evt;\n var touches = e.touches;\n var source = touches && touches.length ? touches[0] : e;\n var offsetX = source.offsetX,\n offsetY = source.offsetY;\n var box = false;\n var x, y;\n\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n var rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n\n return {\n x: x,\n y: y,\n box: box\n };\n}\n\nfunction getRelativePosition(evt, chart) {\n var canvas = chart.canvas,\n currentDevicePixelRatio = chart.currentDevicePixelRatio;\n var style = getComputedStyle(canvas);\n var borderBox = style.boxSizing === 'border-box';\n var paddings = getPositionedStyle(style, 'padding');\n var borders = getPositionedStyle(style, 'border', 'width');\n\n var _getCanvasPosition = getCanvasPosition(evt, canvas),\n x = _getCanvasPosition.x,\n y = _getCanvasPosition.y,\n box = _getCanvasPosition.box;\n\n var xOffset = paddings.left + (box && borders.left);\n var yOffset = paddings.top + (box && borders.top);\n var width = chart.width,\n height = chart.height;\n\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\n\nfunction getContainerSize(canvas, width, height) {\n var maxWidth, maxHeight;\n\n if (width === undefined || height === undefined) {\n var container = _getParentNode(canvas);\n\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n var rect = container.getBoundingClientRect();\n var containerStyle = getComputedStyle(container);\n var containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n var containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n\n return {\n width: width,\n height: height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\n\nvar round1 = function round1(v) {\n return Math.round(v * 10) / 10;\n};\n\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n var style = getComputedStyle(canvas);\n var margins = getPositionedStyle(style, 'margin');\n var maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n var maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n var containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n var width = containerSize.width,\n height = containerSize.height;\n\n if (style.boxSizing === 'content-box') {\n var borders = getPositionedStyle(style, 'border', 'width');\n var paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n\n if (width && !height) {\n height = round1(width / 2);\n }\n\n return {\n width: width,\n height: height\n };\n}\n\nfunction retinaScale(chart, forceRatio, forceStyle) {\n var pixelRatio = forceRatio || 1;\n var deviceHeight = Math.floor(chart.height * pixelRatio);\n var deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n var canvas = chart.canvas;\n\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = \"\".concat(chart.height, \"px\");\n canvas.style.width = \"\".concat(chart.width, \"px\");\n }\n\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n\n return false;\n}\n\nvar supportsEventListenerOptions = function () {\n var passiveSupported = false;\n\n try {\n var options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {}\n\n return passiveSupported;\n}();\n\nfunction readUsedSize(element, property) {\n var value = getStyle(element, property);\n var matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n\nfunction _bezierInterpolation(p1, p2, t, mode) {\n var cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n var cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n\n var a = _pointInLine(p1, cp1, t);\n\n var b = _pointInLine(cp1, cp2, t);\n\n var c = _pointInLine(cp2, p2, t);\n\n var d = _pointInLine(a, b, t);\n\n var e = _pointInLine(b, c, t);\n\n return _pointInLine(d, e, t);\n}\n\nvar intlCache = new Map();\n\nfunction getNumberFormat(locale, options) {\n options = options || {};\n var cacheKey = locale + JSON.stringify(options);\n var formatter = intlCache.get(cacheKey);\n\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n\n return formatter;\n}\n\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nvar getRightToLeftAdapter = function getRightToLeftAdapter(rectX, width) {\n return {\n x: function x(_x) {\n return rectX + rectX + width - _x;\n },\n setWidth: function setWidth(w) {\n width = w;\n },\n textAlign: function textAlign(align) {\n if (align === 'center') {\n return align;\n }\n\n return align === 'right' ? 'left' : 'right';\n },\n xPlus: function xPlus(x, value) {\n return x - value;\n },\n leftForLtr: function leftForLtr(x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\n\nvar getLeftToRightAdapter = function getLeftToRightAdapter() {\n return {\n x: function x(_x2) {\n return _x2;\n },\n setWidth: function setWidth(w) {},\n textAlign: function textAlign(align) {\n return align;\n },\n xPlus: function xPlus(x, value) {\n return x + value;\n },\n leftForLtr: function leftForLtr(x, _itemWidth) {\n return x;\n }\n };\n};\n\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\n\nfunction overrideTextDirection(ctx, direction) {\n var style, original;\n\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [style.getPropertyValue('direction'), style.getPropertyPriority('direction')];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\n\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n\n return {\n between: function between(n, s, e) {\n return n >= Math.min(s, e) && n <= Math.max(e, s);\n },\n compare: function compare(a, b) {\n return a - b;\n },\n normalize: function normalize(x) {\n return x;\n }\n };\n}\n\nfunction normalizeSegment(_ref) {\n var start = _ref.start,\n end = _ref.end,\n count = _ref.count,\n loop = _ref.loop,\n style = _ref.style;\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style: style\n };\n}\n\nfunction getSegment(segment, points, bounds) {\n var property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n\n var _propertyFn = propertyFn(property),\n between = _propertyFn.between,\n normalize = _propertyFn.normalize;\n\n var count = points.length;\n var start = segment.start,\n end = segment.end,\n loop = segment.loop;\n var i, ilen;\n\n if (loop) {\n start += count;\n end += count;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n\n start--;\n end--;\n }\n\n start %= count;\n end %= count;\n }\n\n if (end < start) {\n end += count;\n }\n\n return {\n start: start,\n end: end,\n loop: loop,\n style: segment.style\n };\n}\n\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n\n var property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n var count = points.length;\n\n var _propertyFn2 = propertyFn(property),\n compare = _propertyFn2.compare,\n between = _propertyFn2.between,\n normalize = _propertyFn2.normalize;\n\n var _getSegment = getSegment(segment, points, bounds),\n start = _getSegment.start,\n end = _getSegment.end,\n loop = _getSegment.loop,\n style = _getSegment.style;\n\n var result = [];\n var inside = false;\n var subStart = null;\n var value, point, prevValue;\n\n var startIsBefore = function startIsBefore() {\n return between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n };\n\n var endIsBefore = function endIsBefore() {\n return compare(endBound, value) === 0 || between(endBound, prevValue, value);\n };\n\n var shouldStart = function shouldStart() {\n return inside || startIsBefore();\n };\n\n var shouldStop = function shouldStop() {\n return !inside || endIsBefore();\n };\n\n for (var i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n\n if (point.skip) {\n continue;\n }\n\n value = normalize(point[property]);\n\n if (value === prevValue) {\n continue;\n }\n\n inside = between(value, startBound, endBound);\n\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop: loop,\n count: count,\n style: style\n }));\n subStart = null;\n }\n\n prev = i;\n prevValue = value;\n }\n\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end: end,\n loop: loop,\n count: count,\n style: style\n }));\n }\n\n return result;\n}\n\nfunction _boundSegments(line, bounds) {\n var result = [];\n var segments = line.segments;\n\n for (var i = 0; i < segments.length; i++) {\n var sub = _boundSegment(segments[i], line.points, bounds);\n\n if (sub.length) {\n result.push.apply(result, _toConsumableArray(sub));\n }\n }\n\n return result;\n}\n\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n var start = 0;\n var end = count - 1;\n\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n\n while (start < count && points[start].skip) {\n start++;\n }\n\n start %= count;\n\n if (loop) {\n end += start;\n }\n\n while (end > start && points[end % count].skip) {\n end--;\n }\n\n end %= count;\n return {\n start: start,\n end: end\n };\n}\n\nfunction solidSegments(points, start, max, loop) {\n var count = points.length;\n var result = [];\n var last = start;\n var prev = points[start];\n var end;\n\n for (end = start + 1; end <= max; ++end) {\n var cur = points[end % count];\n\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop: loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n\n if (prev.skip) {\n start = end;\n }\n }\n\n prev = cur;\n }\n\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop: loop\n });\n }\n\n return result;\n}\n\nfunction _computeSegments(line, segmentOptions) {\n var points = line.points;\n var spanGaps = line.options.spanGaps;\n var count = points.length;\n\n if (!count) {\n return [];\n }\n\n var loop = !!line._loop;\n\n var _findStartAndEnd = findStartAndEnd(points, count, loop, spanGaps),\n start = _findStartAndEnd.start,\n end = _findStartAndEnd.end;\n\n if (spanGaps === true) {\n return splitByStyles([{\n start: start,\n end: end,\n loop: loop\n }], points, segmentOptions);\n }\n\n var max = end < start ? end + count : end;\n var completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n\nfunction splitByStyles(segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n\n return doSplitByStyles(segments, points, segmentOptions);\n}\n\nfunction doSplitByStyles(segments, points, segmentOptions) {\n var count = points.length;\n var result = [];\n var start = segments[0].start;\n var i = start;\n\n var _iterator9 = _createForOfIteratorHelper(segments),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var segment = _step9.value;\n var prevStyle = void 0,\n style = void 0;\n var prev = points[start % count];\n\n for (i = start + 1; i <= segment.end; i++) {\n var pt = points[i % count];\n style = readStyle(segmentOptions.setContext({\n type: 'segment',\n p0: prev,\n p1: pt\n }));\n\n if (styleChanged(style, prevStyle)) {\n result.push({\n start: start,\n end: i - 1,\n loop: segment.loop,\n style: prevStyle\n });\n prevStyle = style;\n start = i - 1;\n }\n\n prev = pt;\n prevStyle = style;\n }\n\n if (start < i - 1) {\n result.push({\n start: start,\n end: i - 1,\n loop: segment.loop,\n style: style\n });\n start = i - 1;\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n return result;\n}\n\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\n\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { merge as $, toPadding as A, each as B, getMaximumSize as C, _getParentNode as D, readUsedSize as E, throttled as F, supportsEventListenerOptions as G, HALF_PI as H, log10 as I, _factorize as J, finiteOrDefault as K, callback as L, _addGrace as M, toDegrees as N, _measureText as O, PI as P, _int16Range as Q, _alignPixel as R, clipArea as S, TAU as T, renderText as U, unclipArea as V, toFont as W, _toLeftRightCenter as X, _alignStartEnd as Y, overrides as Z, _arrayUnique as _, resolve as a, _capitalize as a0, descriptors as a1, isFunction as a2, _attachContext as a3, _createResolver as a4, _descriptors as a5, mergeIf as a6, uid as a7, debounce as a8, retinaScale as a9, niceNum as aA, almostWhole as aB, almostEquals as aC, _decimalPlaces as aD, _longestText as aE, _filterBetween as aF, _lookup as aG, getHoverColor as aH, clone$1 as aI, _merger as aJ, _mergerIf as aK, _deprecated as aL, toFontString as aM, splineCurve as aN, splineCurveMonotone as aO, getStyle as aP, fontString as aQ, toLineHeight as aR, PITAU as aS, INFINITY as aT, RAD_PER_DEG as aU, QUARTER_PI as aV, TWO_THIRDS_PI as aW, _angleDiff as aX, clearCanvas as aa, setsEqual as ab, _elementsEqual as ac, getAngleFromPoint as ad, _readValueToProps as ae, _updateBezierControlPoints as af, _computeSegments as ag, _boundSegments as ah, _steppedInterpolation as ai, _bezierInterpolation as aj, _pointInLine as ak, _steppedLineTo as al, _bezierCurveTo as am, drawPoint as an, addRoundedRectPath as ao, toTRBL as ap, toTRBLCorners as aq, _boundSegment as ar, _normalizeAngle as as, getRtlAdapter as at, overrideTextDirection as au, _textX as av, restoreTextDirection as aw, noop as ax, distanceBetweenPoints as ay, _setMinAndMaxByKey as az, isArray as b, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, isNullOrUndef as j, toPercentage as k, listenArrayEvents as l, toDimension as m, formatNumber as n, _angleBetween as o, isNumber as p, _limitValue as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _lookupByKey as w, getRelativePosition as x, _isPointInArea as y, _rlookupByKey as z };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*!\n * Chart.js v3.4.1\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as _color, i as isObject, b as isArray, d as defaults, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as defined, s as sign, j as isNullOrUndef, _ as _arrayUnique, t as toRadians, k as toPercentage, m as toDimension, T as TAU, n as formatNumber, o as _angleBetween, H as HALF_PI, P as PI, p as isNumber, q as _limitValue, w as _lookupByKey, x as getRelativePosition$1, y as _isPointInArea, z as _rlookupByKey, A as toPadding, B as each, C as _getMaximumSize, D as _getParentNode, E as readUsedSize, F as throttled, G as supportsEventListenerOptions, I as log10, J as _factorize, K as finiteOrDefault, L as callback, M as _addGrace, N as toDegrees, O as _measureText, Q as _int16Range, R as _alignPixel, S as clipArea, U as renderText, V as unclipArea, W as toFont, X as _toLeftRightCenter, Y as _alignStartEnd, Z as overrides, $ as merge, a0 as _capitalize, a1 as descriptors, a2 as isFunction, a3 as _attachContext, a4 as _createResolver, a5 as _descriptors, a6 as mergeIf, a7 as uid, a8 as debounce, a9 as retinaScale, aa as clearCanvas, ab as setsEqual, ac as _elementsEqual, ad as getAngleFromPoint, ae as _readValueToProps, af as _updateBezierControlPoints, ag as _computeSegments, ah as _boundSegments, ai as _steppedInterpolation, aj as _bezierInterpolation, ak as _pointInLine, al as _steppedLineTo, am as _bezierCurveTo, an as drawPoint, ao as addRoundedRectPath, ap as toTRBL, aq as toTRBLCorners, ar as _boundSegment, as as _normalizeAngle, at as getRtlAdapter, au as overrideTextDirection, av as _textX, aw as restoreTextDirection, ax as noop, ay as distanceBetweenPoints, az as _setMinAndMaxByKey, aA as niceNum, aB as almostWhole, aC as almostEquals, aD as _decimalPlaces, aE as _longestText, aF as _filterBetween, aG as _lookup } from './chunks/helpers.segment.js';\nexport { d as defaults } from './chunks/helpers.segment.js';\n\nvar Animator = /*#__PURE__*/function () {\n function Animator() {\n _classCallCheck(this, Animator);\n\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n\n _createClass(Animator, [{\n key: \"_notify\",\n value: function _notify(chart, anims, date, type) {\n var callbacks = anims.listeners[type];\n var numSteps = anims.duration;\n callbacks.forEach(function (fn) {\n return fn({\n chart: chart,\n initial: anims.initial,\n numSteps: numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n });\n });\n }\n }, {\n key: \"_refresh\",\n value: function _refresh() {\n var me = this;\n\n if (me._request) {\n return;\n }\n\n me._running = true;\n me._request = requestAnimFrame.call(window, function () {\n me._update();\n\n me._request = null;\n\n if (me._running) {\n me._refresh();\n }\n });\n }\n }, {\n key: \"_update\",\n value: function _update() {\n var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Date.now();\n var me = this;\n var remaining = 0;\n\n me._charts.forEach(function (anims, chart) {\n if (!anims.running || !anims.items.length) {\n return;\n }\n\n var items = anims.items;\n var i = items.length - 1;\n var draw = false;\n var item;\n\n for (; i >= 0; --i) {\n item = items[i];\n\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n\n if (draw) {\n chart.draw();\n\n me._notify(chart, anims, date, 'progress');\n }\n\n if (!items.length) {\n anims.running = false;\n\n me._notify(chart, anims, date, 'complete');\n\n anims.initial = false;\n }\n\n remaining += items.length;\n });\n\n me._lastDate = date;\n\n if (remaining === 0) {\n me._running = false;\n }\n }\n }, {\n key: \"_getAnims\",\n value: function _getAnims(chart) {\n var charts = this._charts;\n var anims = charts.get(chart);\n\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n\n return anims;\n }\n }, {\n key: \"listen\",\n value: function listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n }, {\n key: \"add\",\n value: function add(chart, items) {\n var _this$_getAnims$items;\n\n if (!items || !items.length) {\n return;\n }\n\n (_this$_getAnims$items = this._getAnims(chart).items).push.apply(_this$_getAnims$items, _toConsumableArray(items));\n }\n }, {\n key: \"has\",\n value: function has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n }, {\n key: \"start\",\n value: function start(chart) {\n var anims = this._charts.get(chart);\n\n if (!anims) {\n return;\n }\n\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce(function (acc, cur) {\n return Math.max(acc, cur._duration);\n }, 0);\n\n this._refresh();\n }\n }, {\n key: \"running\",\n value: function running(chart) {\n if (!this._running) {\n return false;\n }\n\n var anims = this._charts.get(chart);\n\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"stop\",\n value: function stop(chart) {\n var anims = this._charts.get(chart);\n\n if (!anims || !anims.items.length) {\n return;\n }\n\n var items = anims.items;\n var i = items.length - 1;\n\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n\n anims.items = [];\n\n this._notify(chart, anims, Date.now(), 'complete');\n }\n }, {\n key: \"remove\",\n value: function remove(chart) {\n return this._charts.delete(chart);\n }\n }]);\n\n return Animator;\n}();\n\nvar animator = new Animator();\nvar transparent = 'transparent';\nvar interpolators = {\n boolean: function boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color: function color(from, to, factor) {\n var c0 = _color(from || transparent);\n\n var c1 = c0.valid && _color(to || transparent);\n\n return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n },\n number: function number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\n\nvar Animation = /*#__PURE__*/function () {\n function Animation(cfg, target, prop, to) {\n _classCallCheck(this, Animation);\n\n var currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n var from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || _typeof(from)];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n\n _createClass(Animation, [{\n key: \"active\",\n value: function active() {\n return this._active;\n }\n }, {\n key: \"update\",\n value: function update(cfg, to, date) {\n var me = this;\n\n if (me._active) {\n me._notify(false);\n\n var currentValue = me._target[me._prop];\n var elapsed = date - me._start;\n var remain = me._duration - elapsed;\n me._start = date;\n me._duration = Math.floor(Math.max(remain, cfg.duration));\n me._total += elapsed;\n me._loop = !!cfg.loop;\n me._to = resolve([cfg.to, to, currentValue, cfg.from]);\n me._from = resolve([cfg.from, currentValue, to]);\n }\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n var me = this;\n\n if (me._active) {\n me.tick(Date.now());\n me._active = false;\n\n me._notify(false);\n }\n }\n }, {\n key: \"tick\",\n value: function tick(date) {\n var me = this;\n var elapsed = date - me._start;\n var duration = me._duration;\n var prop = me._prop;\n var from = me._from;\n var loop = me._loop;\n var to = me._to;\n var factor;\n me._active = from !== to && (loop || elapsed < duration);\n\n if (!me._active) {\n me._target[prop] = to;\n\n me._notify(true);\n\n return;\n }\n\n if (elapsed < 0) {\n me._target[prop] = from;\n return;\n }\n\n factor = elapsed / duration % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = me._easing(Math.min(1, Math.max(0, factor)));\n me._target[prop] = me._fn(from, to, factor);\n }\n }, {\n key: \"wait\",\n value: function wait() {\n var promises = this._promises || (this._promises = []);\n return new Promise(function (res, rej) {\n promises.push({\n res: res,\n rej: rej\n });\n });\n }\n }, {\n key: \"_notify\",\n value: function _notify(resolved) {\n var method = resolved ? 'res' : 'rej';\n var promises = this._promises || [];\n\n for (var i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n }]);\n\n return Animation;\n}();\n\nvar numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nvar colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined\n});\nvar animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: function _scriptable(name) {\n return name !== 'onProgress' && name !== 'onComplete' && name !== 'fn';\n }\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n }\n});\ndefaults.describe('animations', {\n _fallback: 'animation'\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n }\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: function fn(v) {\n return v | 0;\n }\n }\n }\n }\n});\n\nvar Animations = /*#__PURE__*/function () {\n function Animations(chart, config) {\n _classCallCheck(this, Animations);\n\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n\n _createClass(Animations, [{\n key: \"configure\",\n value: function configure(config) {\n if (!isObject(config)) {\n return;\n }\n\n var animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(function (key) {\n var cfg = config[key];\n\n if (!isObject(cfg)) {\n return;\n }\n\n var resolved = {};\n\n var _iterator = _createForOfIteratorHelper(animationOptions),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var option = _step.value;\n resolved[option] = cfg[option];\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n (isArray(cfg.properties) && cfg.properties || [key]).forEach(function (prop) {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n }, {\n key: \"_animateOptions\",\n value: function _animateOptions(target, values) {\n var newOptions = values.options;\n var options = resolveTargetOptions(target, newOptions);\n\n if (!options) {\n return [];\n }\n\n var animations = this._createAnimations(options, newOptions);\n\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(function () {\n target.options = newOptions;\n }, function () {});\n }\n\n return animations;\n }\n }, {\n key: \"_createAnimations\",\n value: function _createAnimations(target, values) {\n var animatedProps = this._properties;\n var animations = [];\n var running = target.$animations || (target.$animations = {});\n var props = Object.keys(values);\n var date = Date.now();\n var i;\n\n for (i = props.length - 1; i >= 0; --i) {\n var prop = props[i];\n\n if (prop.charAt(0) === '$') {\n continue;\n }\n\n if (prop === 'options') {\n animations.push.apply(animations, _toConsumableArray(this._animateOptions(target, values)));\n continue;\n }\n\n var value = values[prop];\n var animation = running[prop];\n var cfg = animatedProps.get(prop);\n\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n\n return animations;\n }\n }, {\n key: \"update\",\n value: function update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n\n var animations = this._createAnimations(target, values);\n\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n }]);\n\n return Animations;\n}();\n\nfunction awaitAll(animations, properties) {\n var running = [];\n var keys = Object.keys(properties);\n\n for (var i = 0; i < keys.length; i++) {\n var anim = animations[keys[i]];\n\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n\n return Promise.all(running);\n}\n\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n\n var options = target.options;\n\n if (!options) {\n target.options = newOptions;\n return;\n }\n\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {\n $shared: false,\n $animations: {}\n });\n }\n\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n var opts = scale && scale.options || {};\n var reverse = opts.reverse;\n var min = opts.min === undefined ? allowedOverflow : 0;\n var max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\n\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n\n var x = scaleClip(xScale, allowedOverflow);\n var y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\n\nfunction toClip(value) {\n var t, r, b, l;\n\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\n\nfunction getSortedDatasetIndices(chart, filterVisible) {\n var keys = [];\n\n var metasets = chart._getSortedDatasetMetas(filterVisible);\n\n var i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n\n return keys;\n}\n\nfunction _applyStack(stack, value, dsIndex, options) {\n var keys = stack.keys;\n var singleMode = options.mode === 'single';\n var i, ilen, datasetIndex, otherValue;\n\n if (value === null) {\n return;\n }\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n\n break;\n }\n\n otherValue = stack.values[datasetIndex];\n\n if (isNumberFinite(otherValue) && (singleMode || value === 0 || sign(value) === sign(otherValue))) {\n value += otherValue;\n }\n }\n\n return value;\n}\n\nfunction convertObjectDataToArray(data) {\n var keys = Object.keys(data);\n var adata = new Array(keys.length);\n var i, ilen, key;\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n\n return adata;\n}\n\nfunction isStacked(scale, meta) {\n var stacked = scale && scale.options.stacked;\n return stacked || stacked === undefined && meta.stack !== undefined;\n}\n\nfunction getStackKey(indexScale, valueScale, meta) {\n return \"\".concat(indexScale.id, \".\").concat(valueScale.id, \".\").concat(meta.stack || meta.type);\n}\n\nfunction getUserBounds(scale) {\n var _scale$getUserBounds = scale.getUserBounds(),\n min = _scale$getUserBounds.min,\n max = _scale$getUserBounds.max,\n minDefined = _scale$getUserBounds.minDefined,\n maxDefined = _scale$getUserBounds.maxDefined;\n\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\n\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n var subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\n\nfunction getLastIndexInStack(stack, vScale, positive) {\n var _iterator2 = _createForOfIteratorHelper(vScale.getMatchingVisibleMetas('bar').reverse()),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var meta = _step2.value;\n var value = stack[meta.index];\n\n if (positive && value > 0 || !positive && value < 0) {\n return meta.index;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return null;\n}\n\nfunction updateStacks(controller, parsed) {\n var chart = controller.chart,\n meta = controller._cachedMeta;\n var stacks = chart._stacks || (chart._stacks = {});\n var iScale = meta.iScale,\n vScale = meta.vScale,\n datasetIndex = meta.index;\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n var key = getStackKey(iScale, vScale, meta);\n var ilen = parsed.length;\n var stack;\n\n for (var i = 0; i < ilen; ++i) {\n var item = parsed[i];\n var index = item[iAxis],\n value = item[vAxis];\n var itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true);\n stack._bottom = getLastIndexInStack(stack, vScale, false);\n }\n}\n\nfunction getFirstScaleId(chart, axis) {\n var scales = chart.scales;\n return Object.keys(scales).filter(function (key) {\n return scales[key].axis === axis;\n }).shift();\n}\n\nfunction createDatasetContext(parent, index) {\n return Object.assign(Object.create(parent), {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index: index,\n mode: 'default',\n type: 'dataset'\n });\n}\n\nfunction createDataContext(parent, index, element) {\n return Object.assign(Object.create(parent), {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element: element,\n index: index,\n mode: 'default',\n type: 'data'\n });\n}\n\nfunction clearStacks(meta, items) {\n var axis = meta.vScale && meta.vScale.axis;\n\n if (!axis) {\n return;\n }\n\n items = items || meta._parsed;\n\n var _iterator3 = _createForOfIteratorHelper(items),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var parsed = _step3.value;\n var stacks = parsed._stacks;\n\n if (!stacks || stacks[axis] === undefined || stacks[axis][meta.index] === undefined) {\n return;\n }\n\n delete stacks[axis][meta.index];\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n}\n\nvar isDirectUpdateMode = function isDirectUpdateMode(mode) {\n return mode === 'reset' || mode === 'none';\n};\n\nvar cloneIfNotShared = function cloneIfNotShared(cached, shared) {\n return shared ? cached : Object.assign({}, cached);\n};\n\nvar DatasetController = /*#__PURE__*/function () {\n function DatasetController(chart, datasetIndex) {\n _classCallCheck(this, DatasetController);\n\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n\n _createClass(DatasetController, [{\n key: \"initialize\",\n value: function initialize() {\n var me = this;\n var meta = me._cachedMeta;\n me.configure();\n me.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n me.addElements();\n }\n }, {\n key: \"updateIndex\",\n value: function updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n\n this.index = datasetIndex;\n }\n }, {\n key: \"linkScales\",\n value: function linkScales() {\n var me = this;\n var chart = me.chart;\n var meta = me._cachedMeta;\n var dataset = me.getDataset();\n\n var chooseId = function chooseId(axis, x, y, r) {\n return axis === 'x' ? x : axis === 'r' ? r : y;\n };\n\n var xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n var yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n var rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n var indexAxis = meta.indexAxis;\n var iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n var vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = me.getScaleForId(xid);\n meta.yScale = me.getScaleForId(yid);\n meta.rScale = me.getScaleForId(rid);\n meta.iScale = me.getScaleForId(iid);\n meta.vScale = me.getScaleForId(vid);\n }\n }, {\n key: \"getDataset\",\n value: function getDataset() {\n return this.chart.data.datasets[this.index];\n }\n }, {\n key: \"getMeta\",\n value: function getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n }, {\n key: \"getScaleForId\",\n value: function getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n }, {\n key: \"_getOtherScale\",\n value: function _getOtherScale(scale) {\n var meta = this._cachedMeta;\n return scale === meta.iScale ? meta.vScale : meta.iScale;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this._update('reset');\n }\n }, {\n key: \"_destroy\",\n value: function _destroy() {\n var meta = this._cachedMeta;\n\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n }, {\n key: \"_dataCheck\",\n value: function _dataCheck() {\n var me = this;\n var dataset = me.getDataset();\n var data = dataset.data || (dataset.data = []);\n var _data = me._data;\n\n if (isObject(data)) {\n me._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, me);\n var meta = me._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, me);\n }\n\n me._syncList = [];\n me._data = data;\n }\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n var me = this;\n var meta = me._cachedMeta;\n\n me._dataCheck();\n\n if (me.datasetElementType) {\n meta.dataset = new me.datasetElementType();\n }\n }\n }, {\n key: \"buildOrUpdateElements\",\n value: function buildOrUpdateElements(resetNewElements) {\n var me = this;\n var meta = me._cachedMeta;\n var dataset = me.getDataset();\n var stackChanged = false;\n\n me._dataCheck();\n\n var oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n\n me._resyncElements(resetNewElements);\n\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(me, meta._parsed);\n }\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var me = this;\n var config = me.chart.config;\n var scopeKeys = config.datasetScopeKeys(me._type);\n var scopes = config.getOptionScopes(me.getDataset(), scopeKeys, true);\n me.options = config.createResolver(scopes, me.getContext());\n me._parsing = me.options.parsing;\n }\n }, {\n key: \"parse\",\n value: function parse(start, count) {\n var me = this;\n var meta = me._cachedMeta,\n data = me._data;\n var iScale = meta.iScale,\n _stacked = meta._stacked;\n var iAxis = iScale.axis;\n var sorted = start === 0 && count === data.length ? true : meta._sorted;\n var prev = start > 0 && meta._parsed[start - 1];\n var i, cur, parsed;\n\n if (me._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = me.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = me.parseObjectData(meta, data, start, count);\n } else {\n parsed = me.parsePrimitiveData(meta, data, start, count);\n }\n\n var isNotInOrderComparedToPrev = function isNotInOrderComparedToPrev() {\n return cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n };\n\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n\n prev = cur;\n }\n }\n\n meta._sorted = sorted;\n }\n\n if (_stacked) {\n updateStacks(me, parsed);\n }\n }\n }, {\n key: \"parsePrimitiveData\",\n value: function parsePrimitiveData(meta, data, start, count) {\n var iScale = meta.iScale,\n vScale = meta.vScale;\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n var labels = iScale.getLabels();\n var singleScale = iScale === vScale;\n var parsed = new Array(count);\n var i, ilen, index;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n var _parsed$i;\n\n index = i + start;\n parsed[i] = (_parsed$i = {}, _defineProperty(_parsed$i, iAxis, singleScale || iScale.parse(labels[index], index)), _defineProperty(_parsed$i, vAxis, vScale.parse(data[index], index)), _parsed$i);\n }\n\n return parsed;\n }\n }, {\n key: \"parseArrayData\",\n value: function parseArrayData(meta, data, start, count) {\n var xScale = meta.xScale,\n yScale = meta.yScale;\n var parsed = new Array(count);\n var i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n\n return parsed;\n }\n }, {\n key: \"parseObjectData\",\n value: function parseObjectData(meta, data, start, count) {\n var xScale = meta.xScale,\n yScale = meta.yScale;\n var _this$_parsing = this._parsing,\n _this$_parsing$xAxisK = _this$_parsing.xAxisKey,\n xAxisKey = _this$_parsing$xAxisK === void 0 ? 'x' : _this$_parsing$xAxisK,\n _this$_parsing$yAxisK = _this$_parsing.yAxisKey,\n yAxisKey = _this$_parsing$yAxisK === void 0 ? 'y' : _this$_parsing$yAxisK;\n var parsed = new Array(count);\n var i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n\n return parsed;\n }\n }, {\n key: \"getParsed\",\n value: function getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n }, {\n key: \"getDataElement\",\n value: function getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n }, {\n key: \"applyStack\",\n value: function applyStack(scale, parsed, mode) {\n var chart = this.chart;\n var meta = this._cachedMeta;\n var value = parsed[scale.axis];\n var stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return _applyStack(stack, value, meta.index, {\n mode: mode\n });\n }\n }, {\n key: \"updateRangeFromParsed\",\n value: function updateRangeFromParsed(range, scale, parsed, stack) {\n var parsedValue = parsed[scale.axis];\n var value = parsedValue === null ? NaN : parsedValue;\n var values = stack && parsed._stacks[scale.axis];\n\n if (stack && values) {\n stack.values = values;\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n value = _applyStack(stack, parsedValue, this._cachedMeta.index, {\n all: true\n });\n }\n\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n }, {\n key: \"getMinMax\",\n value: function getMinMax(scale, canStack) {\n var me = this;\n var meta = me._cachedMeta;\n var _parsed = meta._parsed;\n var sorted = meta._sorted && scale === meta.iScale;\n var ilen = _parsed.length;\n\n var otherScale = me._getOtherScale(scale);\n\n var stack = canStack && meta._stacked && {\n keys: getSortedDatasetIndices(me.chart, true),\n values: null\n };\n var range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n\n var _getUserBounds = getUserBounds(otherScale),\n otherMin = _getUserBounds.min,\n otherMax = _getUserBounds.max;\n\n var i, value, parsed, otherValue;\n\n function _skip() {\n parsed = _parsed[i];\n value = parsed[scale.axis];\n otherValue = parsed[otherScale.axis];\n return !isNumberFinite(value) || otherMin > otherValue || otherMax < otherValue;\n }\n\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n\n me.updateRangeFromParsed(range, scale, parsed, stack);\n\n if (sorted) {\n break;\n }\n }\n\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n\n me.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n\n return range;\n }\n }, {\n key: \"getAllParsedValues\",\n value: function getAllParsedValues(scale) {\n var parsed = this._cachedMeta._parsed;\n var values = [];\n var i, ilen, value;\n\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n\n return values;\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n return false;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var me = this;\n var meta = me._cachedMeta;\n var iScale = meta.iScale;\n var vScale = meta.vScale;\n var parsed = me.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n }, {\n key: \"_update\",\n value: function _update(mode) {\n var me = this;\n var meta = me._cachedMeta;\n me.configure();\n me._cachedDataOpts = {};\n me.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(me.options.clip, defaultClip(meta.xScale, meta.yScale, me.getMaxOverflow())));\n }\n }, {\n key: \"update\",\n value: function update(mode) {}\n }, {\n key: \"draw\",\n value: function draw() {\n var me = this;\n var ctx = me._ctx;\n var chart = me.chart;\n var meta = me._cachedMeta;\n var elements = meta.data || [];\n var area = chart.chartArea;\n var active = [];\n var start = me._drawStart || 0;\n var count = me._drawCount || elements.length - start;\n var i;\n\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n\n for (i = start; i < start + count; ++i) {\n var element = elements[i];\n\n if (element.active) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n }, {\n key: \"getStyle\",\n value: function getStyle(index, active) {\n var mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n }\n }, {\n key: \"getContext\",\n value: function getContext(index, active, mode) {\n var me = this;\n var dataset = me.getDataset();\n var context;\n\n if (index >= 0 && index < me._cachedMeta.data.length) {\n var element = me._cachedMeta.data[index];\n context = element.$context || (element.$context = createDataContext(me.getContext(), index, element));\n context.parsed = me.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = me.$context || (me.$context = createDatasetContext(me.chart.getContext(), me.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = me.index;\n }\n\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n }, {\n key: \"resolveDatasetElementOptions\",\n value: function resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n }, {\n key: \"resolveDataElementOptions\",\n value: function resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n }, {\n key: \"_resolveElementOptions\",\n value: function _resolveElementOptions(elementType) {\n var mode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n var index = arguments.length > 2 ? arguments[2] : undefined;\n var me = this;\n var active = mode === 'active';\n var cache = me._cachedDataOpts;\n var cacheKey = elementType + '-' + mode;\n var cached = cache[cacheKey];\n var sharing = me.enableOptionSharing && defined(index);\n\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n\n var config = me.chart.config;\n var scopeKeys = config.datasetElementScopeKeys(me._type, elementType);\n var prefixes = active ? [\"\".concat(elementType, \"Hover\"), 'hover', elementType, ''] : [elementType, ''];\n var scopes = config.getOptionScopes(me.getDataset(), scopeKeys);\n var names = Object.keys(defaults.elements[elementType]);\n\n var context = function context() {\n return me.getContext(index, active);\n };\n\n var values = config.resolveNamedOptions(scopes, names, context, prefixes);\n\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n\n return values;\n }\n }, {\n key: \"_resolveAnimations\",\n value: function _resolveAnimations(index, transition, active) {\n var me = this;\n var chart = me.chart;\n var cache = me._cachedDataOpts;\n var cacheKey = \"animation-\".concat(transition);\n var cached = cache[cacheKey];\n\n if (cached) {\n return cached;\n }\n\n var options;\n\n if (chart.options.animation !== false) {\n var config = me.chart.config;\n var scopeKeys = config.datasetAnimationScopeKeys(me._type, transition);\n var scopes = config.getOptionScopes(me.getDataset(), scopeKeys);\n options = config.createResolver(scopes, me.getContext(index, active, transition));\n }\n\n var animations = new Animations(chart, options && options.animations);\n\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n\n return animations;\n }\n }, {\n key: \"getSharedOptions\",\n value: function getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n }, {\n key: \"includeOptions\",\n value: function includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n }, {\n key: \"updateElement\",\n value: function updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n }, {\n key: \"updateSharedOptions\",\n value: function updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n }, {\n key: \"_setStyle\",\n value: function _setStyle(element, index, mode, active) {\n element.active = active;\n var options = this.getStyle(index, active);\n\n this._resolveAnimations(index, mode, active).update(element, {\n options: !active && this.getSharedOptions(options) || options\n });\n }\n }, {\n key: \"removeHoverStyle\",\n value: function removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n }, {\n key: \"setHoverStyle\",\n value: function setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n }, {\n key: \"_removeDatasetHoverStyle\",\n value: function _removeDatasetHoverStyle() {\n var element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n }, {\n key: \"_setDatasetHoverStyle\",\n value: function _setDatasetHoverStyle() {\n var element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n }, {\n key: \"_resyncElements\",\n value: function _resyncElements(resetNewElements) {\n var me = this;\n var data = me._data;\n var elements = me._cachedMeta.data;\n\n var _iterator4 = _createForOfIteratorHelper(me._syncList),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _ref3 = _step4.value;\n\n var _ref2 = _slicedToArray(_ref3, 3);\n\n var method = _ref2[0];\n var arg1 = _ref2[1];\n var arg2 = _ref2[2];\n me[method](arg1, arg2);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n me._syncList = [];\n var numMeta = elements.length;\n var numData = data.length;\n var count = Math.min(numData, numMeta);\n\n if (count) {\n me.parse(0, count);\n }\n\n if (numData > numMeta) {\n me._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n me._removeElements(numData, numMeta - numData);\n }\n }\n }, {\n key: \"_insertElements\",\n value: function _insertElements(start, count) {\n var resetNewElements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var me = this;\n var meta = me._cachedMeta;\n var data = meta.data;\n var end = start + count;\n var i;\n\n var move = function move(arr) {\n arr.length += count;\n\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n\n move(data);\n\n for (i = start; i < end; ++i) {\n data[i] = new me.dataElementType();\n }\n\n if (me._parsing) {\n move(meta._parsed);\n }\n\n me.parse(start, count);\n\n if (resetNewElements) {\n me.updateElements(data, start, count, 'reset');\n }\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(element, start, count, mode) {}\n }, {\n key: \"_removeElements\",\n value: function _removeElements(start, count) {\n var me = this;\n var meta = me._cachedMeta;\n\n if (me._parsing) {\n var removed = meta._parsed.splice(start, count);\n\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n\n meta.data.splice(start, count);\n }\n }, {\n key: \"_onDataPush\",\n value: function _onDataPush() {\n var count = arguments.length;\n\n this._syncList.push(['_insertElements', this.getDataset().data.length - count, count]);\n }\n }, {\n key: \"_onDataPop\",\n value: function _onDataPop() {\n this._syncList.push(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n }, {\n key: \"_onDataShift\",\n value: function _onDataShift() {\n this._syncList.push(['_removeElements', 0, 1]);\n }\n }, {\n key: \"_onDataSplice\",\n value: function _onDataSplice(start, count) {\n this._syncList.push(['_removeElements', start, count]);\n\n this._syncList.push(['_insertElements', start, arguments.length - 2]);\n }\n }, {\n key: \"_onDataUnshift\",\n value: function _onDataUnshift() {\n this._syncList.push(['_insertElements', 0, arguments.length]);\n }\n }]);\n\n return DatasetController;\n}();\n\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale) {\n if (!scale._cache.$bar) {\n var metas = scale.getMatchingVisibleMetas('bar');\n var values = [];\n\n for (var i = 0, ilen = metas.length; i < ilen; i++) {\n values = values.concat(metas[i].controller.getAllParsedValues(scale));\n }\n\n scale._cache.$bar = _arrayUnique(values.sort(function (a, b) {\n return a - b;\n }));\n }\n\n return scale._cache.$bar;\n}\n\nfunction computeMinSampleSize(scale) {\n var values = getAllScaleValues(scale);\n var min = scale._length;\n var i, ilen, curr, prev;\n\n var updateMinAndPrev = function updateMinAndPrev() {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n\n prev = curr;\n };\n\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n\n prev = undefined;\n\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n\n return min;\n}\n\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n var thickness = options.barThickness;\n var size, ratio;\n\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n\n return {\n chunk: size / stackCount,\n ratio: ratio,\n start: ruler.pixels[index] - size / 2\n };\n}\n\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n var pixels = ruler.pixels;\n var curr = pixels[index];\n var prev = index > 0 ? pixels[index - 1] : null;\n var next = index < pixels.length - 1 ? pixels[index + 1] : null;\n var percent = options.categoryPercentage;\n\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n\n if (next === null) {\n next = curr + curr - prev;\n }\n\n var start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n var size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start: start\n };\n}\n\nfunction parseFloatBar(entry, item, vScale, i) {\n var startValue = vScale.parse(entry[0], i);\n var endValue = vScale.parse(entry[1], i);\n var min = Math.min(startValue, endValue);\n var max = Math.max(startValue, endValue);\n var barStart = min;\n var barEnd = max;\n\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart: barStart,\n barEnd: barEnd,\n start: startValue,\n end: endValue,\n min: min,\n max: max\n };\n}\n\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n\n return item;\n}\n\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n var iScale = meta.iScale;\n var vScale = meta.vScale;\n var labels = iScale.getLabels();\n var singleScale = iScale === vScale;\n var parsed = [];\n var i, ilen, item, entry;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n\n return parsed;\n}\n\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\n\nvar BarController = /*#__PURE__*/function (_DatasetController) {\n _inherits(BarController, _DatasetController);\n\n var _super = _createSuper(BarController);\n\n function BarController() {\n _classCallCheck(this, BarController);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(BarController, [{\n key: \"parsePrimitiveData\",\n value: function parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n }, {\n key: \"parseArrayData\",\n value: function parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n }, {\n key: \"parseObjectData\",\n value: function parseObjectData(meta, data, start, count) {\n var iScale = meta.iScale,\n vScale = meta.vScale;\n var _this$_parsing2 = this._parsing,\n _this$_parsing2$xAxis = _this$_parsing2.xAxisKey,\n xAxisKey = _this$_parsing2$xAxis === void 0 ? 'x' : _this$_parsing2$xAxis,\n _this$_parsing2$yAxis = _this$_parsing2.yAxisKey,\n yAxisKey = _this$_parsing2$yAxis === void 0 ? 'y' : _this$_parsing2$yAxis;\n var iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n var vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n var parsed = [];\n var i, ilen, item, obj;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n\n return parsed;\n }\n }, {\n key: \"updateRangeFromParsed\",\n value: function updateRangeFromParsed(range, scale, parsed, stack) {\n _get(_getPrototypeOf(BarController.prototype), \"updateRangeFromParsed\", this).call(this, range, scale, parsed, stack);\n\n var custom = parsed._custom;\n\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n return 0;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var me = this;\n var meta = me._cachedMeta;\n var iScale = meta.iScale,\n vScale = meta.vScale;\n var parsed = me.getParsed(index);\n var custom = parsed._custom;\n var value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value: value\n };\n }\n }, {\n key: \"initialize\",\n value: function initialize() {\n var me = this;\n me.enableOptionSharing = true;\n\n _get(_getPrototypeOf(BarController.prototype), \"initialize\", this).call(this);\n\n var meta = me._cachedMeta;\n meta.stack = me.getDataset().stack;\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var me = this;\n var meta = me._cachedMeta;\n me.updateElements(meta.data, 0, meta.data.length, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(bars, start, count, mode) {\n var me = this;\n var reset = mode === 'reset';\n var vScale = me._cachedMeta.vScale;\n var base = vScale.getBasePixel();\n var horizontal = vScale.isHorizontal();\n\n var ruler = me._getRuler();\n\n var firstOpts = me.resolveDataElementOptions(start, mode);\n var sharedOptions = me.getSharedOptions(firstOpts);\n var includeOptions = me.includeOptions(mode, sharedOptions);\n me.updateSharedOptions(sharedOptions, mode, firstOpts);\n\n for (var i = start; i < start + count; i++) {\n var parsed = me.getParsed(i);\n var vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {\n base: base,\n head: base\n } : me._calculateBarValuePixels(i);\n\n var ipixels = me._calculateBarIndexPixels(i, ruler);\n\n var stack = (parsed._stacks || {})[vScale.axis];\n var properties = {\n horizontal: horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || me.index === stack._top || me.index === stack._bottom,\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n\n if (includeOptions) {\n properties.options = sharedOptions || me.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n\n me.updateElement(bars[i], i, properties, mode);\n }\n }\n }, {\n key: \"_getStacks\",\n value: function _getStacks(last, dataIndex) {\n var me = this;\n var meta = me._cachedMeta;\n var iScale = meta.iScale;\n var metasets = iScale.getMatchingVisibleMetas(me._type);\n var stacked = iScale.options.stacked;\n var ilen = metasets.length;\n var stacks = [];\n var i, item;\n\n for (i = 0; i < ilen; ++i) {\n item = metasets[i];\n\n if (!item.controller.options.grouped) {\n continue;\n }\n\n if (typeof dataIndex !== 'undefined') {\n var val = item.controller.getParsed(dataIndex)[item.controller._cachedMeta.vScale.axis];\n\n if (isNullOrUndef(val) || isNaN(val)) {\n continue;\n }\n }\n\n if (stacked === false || stacks.indexOf(item.stack) === -1 || stacked === undefined && item.stack === undefined) {\n stacks.push(item.stack);\n }\n\n if (item.index === last) {\n break;\n }\n }\n\n if (!stacks.length) {\n stacks.push(undefined);\n }\n\n return stacks;\n }\n }, {\n key: \"_getStackCount\",\n value: function _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n }, {\n key: \"_getStackIndex\",\n value: function _getStackIndex(datasetIndex, name, dataIndex) {\n var stacks = this._getStacks(datasetIndex, dataIndex);\n\n var index = name !== undefined ? stacks.indexOf(name) : -1;\n return index === -1 ? stacks.length - 1 : index;\n }\n }, {\n key: \"_getRuler\",\n value: function _getRuler() {\n var me = this;\n var opts = me.options;\n var meta = me._cachedMeta;\n var iScale = meta.iScale;\n var pixels = [];\n var i, ilen;\n\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(me.getParsed(i)[iScale.axis], i));\n }\n\n var barThickness = opts.barThickness;\n var min = barThickness || computeMinSampleSize(iScale);\n return {\n min: min,\n pixels: pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: me._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n }, {\n key: \"_calculateBarValuePixels\",\n value: function _calculateBarValuePixels(index) {\n var me = this;\n var _me$_cachedMeta = me._cachedMeta,\n vScale = _me$_cachedMeta.vScale,\n _stacked = _me$_cachedMeta._stacked;\n var _me$options = me.options,\n baseValue = _me$options.base,\n minBarLength = _me$options.minBarLength;\n var parsed = me.getParsed(index);\n var custom = parsed._custom;\n var floating = isFloatBar(custom);\n var value = parsed[vScale.axis];\n var start = 0;\n var length = _stacked ? me.applyStack(vScale, parsed, _stacked) : value;\n var head, size;\n\n if (length !== value) {\n start = length - value;\n length = value;\n }\n\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n\n start += value;\n }\n\n var startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n var base = vScale.getPixelForValue(startValue);\n\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n\n size = head - base;\n\n if (minBarLength !== undefined && Math.abs(size) < minBarLength) {\n size = size < 0 ? -minBarLength : minBarLength;\n\n if (value === 0) {\n base -= size / 2;\n }\n\n head = base + size;\n }\n\n var actualBase = baseValue || 0;\n\n if (base === vScale.getPixelForValue(actualBase)) {\n var halfGrid = vScale.getLineWidthForValue(actualBase) / 2;\n\n if (size > 0) {\n base += halfGrid;\n size -= halfGrid;\n } else if (size < 0) {\n base -= halfGrid;\n size += halfGrid;\n }\n }\n\n return {\n size: size,\n base: base,\n head: head,\n center: head + size / 2\n };\n }\n }, {\n key: \"_calculateBarIndexPixels\",\n value: function _calculateBarIndexPixels(index, ruler) {\n var me = this;\n var scale = ruler.scale;\n var options = me.options;\n var skipNull = options.skipNull;\n var maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n var center, size;\n\n if (ruler.grouped) {\n var stackCount = skipNull ? me._getStackCount(index) : ruler.stackCount;\n var range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount) : computeFitCategoryTraits(index, ruler, options, stackCount);\n\n var stackIndex = me._getStackIndex(me.index, me._cachedMeta.stack, skipNull ? index : undefined);\n\n center = range.start + range.chunk * stackIndex + range.chunk / 2;\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(me.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n\n return {\n base: center - size / 2,\n head: center + size / 2,\n center: center,\n size: size\n };\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var me = this;\n var meta = me._cachedMeta;\n var vScale = meta.vScale;\n var rects = meta.data;\n var ilen = rects.length;\n var i = 0;\n\n for (; i < ilen; ++i) {\n if (me.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(me._ctx);\n }\n }\n }\n }]);\n\n return BarController;\n}(DatasetController);\n\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n interaction: {\n mode: 'index'\n },\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true\n }\n }\n};\n\nvar BubbleController = /*#__PURE__*/function (_DatasetController2) {\n _inherits(BubbleController, _DatasetController2);\n\n var _super2 = _createSuper(BubbleController);\n\n function BubbleController() {\n _classCallCheck(this, BubbleController);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(BubbleController, [{\n key: \"initialize\",\n value: function initialize() {\n this.enableOptionSharing = true;\n\n _get(_getPrototypeOf(BubbleController.prototype), \"initialize\", this).call(this);\n }\n }, {\n key: \"parseObjectData\",\n value: function parseObjectData(meta, data, start, count) {\n var xScale = meta.xScale,\n yScale = meta.yScale;\n var _this$_parsing3 = this._parsing,\n _this$_parsing3$xAxis = _this$_parsing3.xAxisKey,\n xAxisKey = _this$_parsing3$xAxis === void 0 ? 'x' : _this$_parsing3$xAxis,\n _this$_parsing3$yAxis = _this$_parsing3.yAxisKey,\n yAxisKey = _this$_parsing3$yAxis === void 0 ? 'y' : _this$_parsing3$yAxis;\n var parsed = [];\n var i, ilen, item;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n item = data[i];\n parsed.push({\n x: xScale.parse(resolveObjectKey(item, xAxisKey), i),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), i),\n _custom: item && item.r && +item.r\n });\n }\n\n return parsed;\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n var _this$_cachedMeta = this._cachedMeta,\n data = _this$_cachedMeta.data,\n _parsed = _this$_cachedMeta._parsed;\n var max = 0;\n\n for (var i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size() / 2, _parsed[i]._custom);\n }\n\n return max > 0 && max;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var me = this;\n var meta = me._cachedMeta;\n var xScale = meta.xScale,\n yScale = meta.yScale;\n var parsed = me.getParsed(index);\n var x = xScale.getLabelForValue(parsed.x);\n var y = yScale.getLabelForValue(parsed.y);\n var r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var me = this;\n var points = me._cachedMeta.data;\n me.updateElements(points, 0, points.length, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var me = this;\n var reset = mode === 'reset';\n var _me$_cachedMeta2 = me._cachedMeta,\n iScale = _me$_cachedMeta2.iScale,\n vScale = _me$_cachedMeta2.vScale;\n var firstOpts = me.resolveDataElementOptions(start, mode);\n var sharedOptions = me.getSharedOptions(firstOpts);\n var includeOptions = me.includeOptions(mode, sharedOptions);\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n\n for (var i = start; i < start + count; i++) {\n var point = points[i];\n var parsed = !reset && me.getParsed(i);\n var properties = {};\n var iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n var vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n\n if (includeOptions) {\n properties.options = me.resolveDataElementOptions(i, point.active ? 'active' : mode);\n\n if (reset) {\n properties.options.radius = 0;\n }\n }\n\n me.updateElement(point, i, properties, mode);\n }\n\n me.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n }, {\n key: \"resolveDataElementOptions\",\n value: function resolveDataElementOptions(index, mode) {\n var parsed = this.getParsed(index);\n\n var values = _get(_getPrototypeOf(BubbleController.prototype), \"resolveDataElementOptions\", this).call(this, index, mode);\n\n if (values.$shared) {\n values = Object.assign({}, values, {\n $shared: false\n });\n }\n\n var radius = values.radius;\n\n if (mode !== 'active') {\n values.radius = 0;\n }\n\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n }]);\n\n return BubbleController;\n}(DatasetController);\n\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title: function title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n var ratioX = 1;\n var ratioY = 1;\n var offsetX = 0;\n var offsetY = 0;\n\n if (circumference < TAU) {\n var startAngle = rotation;\n var endAngle = startAngle + circumference;\n var startX = Math.cos(startAngle);\n var startY = Math.sin(startAngle);\n var endX = Math.cos(endAngle);\n var endY = Math.sin(endAngle);\n\n var calcMax = function calcMax(angle, a, b) {\n return _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n };\n\n var calcMin = function calcMin(angle, a, b) {\n return _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n };\n\n var maxX = calcMax(0, startX, endX);\n var maxY = calcMax(HALF_PI, startY, endY);\n var minX = calcMin(PI, startX, endX);\n var minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n\n return {\n ratioX: ratioX,\n ratioY: ratioY,\n offsetX: offsetX,\n offsetY: offsetY\n };\n}\n\nvar DoughnutController = /*#__PURE__*/function (_DatasetController3) {\n _inherits(DoughnutController, _DatasetController3);\n\n var _super3 = _createSuper(DoughnutController);\n\n function DoughnutController(chart, datasetIndex) {\n var _this;\n\n _classCallCheck(this, DoughnutController);\n\n _this = _super3.call(this, chart, datasetIndex);\n _this.enableOptionSharing = true;\n _this.innerRadius = undefined;\n _this.outerRadius = undefined;\n _this.offsetX = undefined;\n _this.offsetY = undefined;\n return _this;\n }\n\n _createClass(DoughnutController, [{\n key: \"linkScales\",\n value: function linkScales() {}\n }, {\n key: \"parse\",\n value: function parse(start, count) {\n var data = this.getDataset().data;\n var meta = this._cachedMeta;\n var i, ilen;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = +data[i];\n }\n }\n }, {\n key: \"_getRotation\",\n value: function _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n }, {\n key: \"_getCircumference\",\n value: function _getCircumference() {\n return toRadians(this.options.circumference);\n }\n }, {\n key: \"_getRotationExtents\",\n value: function _getRotationExtents() {\n var min = TAU;\n var max = -TAU;\n var me = this;\n\n for (var i = 0; i < me.chart.data.datasets.length; ++i) {\n if (me.chart.isDatasetVisible(i)) {\n var controller = me.chart.getDatasetMeta(i).controller;\n\n var rotation = controller._getRotation();\n\n var circumference = controller._getCircumference();\n\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n\n return {\n rotation: min,\n circumference: max - min\n };\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var me = this;\n var chart = me.chart;\n var chartArea = chart.chartArea;\n var meta = me._cachedMeta;\n var arcs = meta.data;\n var spacing = me.getMaxBorderWidth() + me.getMaxOffset(arcs) + me.options.spacing;\n var maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n var cutout = Math.min(toPercentage(me.options.cutout, maxSize), 1);\n\n var chartWeight = me._getRingWeight(me.index);\n\n var _me$_getRotationExten = me._getRotationExtents(),\n circumference = _me$_getRotationExten.circumference,\n rotation = _me$_getRotationExten.rotation;\n\n var _getRatioAndOffset = getRatioAndOffset(rotation, circumference, cutout),\n ratioX = _getRatioAndOffset.ratioX,\n ratioY = _getRatioAndOffset.ratioY,\n offsetX = _getRatioAndOffset.offsetX,\n offsetY = _getRatioAndOffset.offsetY;\n\n var maxWidth = (chartArea.width - spacing) / ratioX;\n var maxHeight = (chartArea.height - spacing) / ratioY;\n var maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n var outerRadius = toDimension(me.options.radius, maxRadius);\n var innerRadius = Math.max(outerRadius * cutout, 0);\n\n var radiusLength = (outerRadius - innerRadius) / me._getVisibleDatasetWeightTotal();\n\n me.offsetX = offsetX * outerRadius;\n me.offsetY = offsetY * outerRadius;\n meta.total = me.calculateTotal();\n me.outerRadius = outerRadius - radiusLength * me._getRingWeightOffset(me.index);\n me.innerRadius = Math.max(me.outerRadius - radiusLength * chartWeight, 0);\n me.updateElements(arcs, 0, arcs.length, mode);\n }\n }, {\n key: \"_circumference\",\n value: function _circumference(i, reset) {\n var me = this;\n var opts = me.options;\n var meta = me._cachedMeta;\n\n var circumference = me._getCircumference();\n\n if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null) {\n return 0;\n }\n\n return me.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(arcs, start, count, mode) {\n var me = this;\n var reset = mode === 'reset';\n var chart = me.chart;\n var chartArea = chart.chartArea;\n var opts = chart.options;\n var animationOpts = opts.animation;\n var centerX = (chartArea.left + chartArea.right) / 2;\n var centerY = (chartArea.top + chartArea.bottom) / 2;\n var animateScale = reset && animationOpts.animateScale;\n var innerRadius = animateScale ? 0 : me.innerRadius;\n var outerRadius = animateScale ? 0 : me.outerRadius;\n var firstOpts = me.resolveDataElementOptions(start, mode);\n var sharedOptions = me.getSharedOptions(firstOpts);\n var includeOptions = me.includeOptions(mode, sharedOptions);\n\n var startAngle = me._getRotation();\n\n var i;\n\n for (i = 0; i < start; ++i) {\n startAngle += me._circumference(i, reset);\n }\n\n for (i = start; i < start + count; ++i) {\n var circumference = me._circumference(i, reset);\n\n var arc = arcs[i];\n var properties = {\n x: centerX + me.offsetX,\n y: centerY + me.offsetY,\n startAngle: startAngle,\n endAngle: startAngle + circumference,\n circumference: circumference,\n outerRadius: outerRadius,\n innerRadius: innerRadius\n };\n\n if (includeOptions) {\n properties.options = sharedOptions || me.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n\n startAngle += circumference;\n me.updateElement(arc, i, properties, mode);\n }\n\n me.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n }, {\n key: \"calculateTotal\",\n value: function calculateTotal() {\n var meta = this._cachedMeta;\n var metaData = meta.data;\n var total = 0;\n var i;\n\n for (i = 0; i < metaData.length; i++) {\n var value = meta._parsed[i];\n\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i)) {\n total += Math.abs(value);\n }\n }\n\n return total;\n }\n }, {\n key: \"calculateCircumference\",\n value: function calculateCircumference(value) {\n var total = this._cachedMeta.total;\n\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n\n return 0;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var me = this;\n var meta = me._cachedMeta;\n var chart = me.chart;\n var labels = chart.data.labels || [];\n var value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value: value\n };\n }\n }, {\n key: \"getMaxBorderWidth\",\n value: function getMaxBorderWidth(arcs) {\n var me = this;\n var max = 0;\n var chart = me.chart;\n var i, ilen, meta, controller, options;\n\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n\n if (controller !== me) {\n controller.configure();\n }\n\n break;\n }\n }\n }\n\n if (!arcs) {\n return 0;\n }\n\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n\n return max;\n }\n }, {\n key: \"getMaxOffset\",\n value: function getMaxOffset(arcs) {\n var max = 0;\n\n for (var i = 0, ilen = arcs.length; i < ilen; ++i) {\n var options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n\n return max;\n }\n }, {\n key: \"_getRingWeightOffset\",\n value: function _getRingWeightOffset(datasetIndex) {\n var ringWeightOffset = 0;\n\n for (var i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n\n return ringWeightOffset;\n }\n }, {\n key: \"_getRingWeight\",\n value: function _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n }, {\n key: \"_getVisibleDatasetWeightTotal\",\n value: function _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n }]);\n\n return DoughnutController;\n}(DatasetController);\n\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n }\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r'\n};\nDoughnutController.descriptors = {\n _scriptable: function _scriptable(name) {\n return name !== 'spacing';\n },\n _indexable: function _indexable(name) {\n return name !== 'spacing';\n }\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels: function generateLabels(chart) {\n var data = chart.data;\n\n if (data.labels.length && data.datasets.length) {\n var pointStyle = chart.legend.options.labels.pointStyle;\n return data.labels.map(function (label, i) {\n var meta = chart.getDatasetMeta(0);\n var style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n\n return [];\n }\n },\n onClick: function onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title: function title() {\n return '';\n },\n label: function label(tooltipItem) {\n var dataLabel = tooltipItem.label;\n var value = ': ' + tooltipItem.formattedValue;\n\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n\n return dataLabel;\n }\n }\n }\n }\n};\n\nvar LineController = /*#__PURE__*/function (_DatasetController4) {\n _inherits(LineController, _DatasetController4);\n\n var _super4 = _createSuper(LineController);\n\n function LineController() {\n _classCallCheck(this, LineController);\n\n return _super4.apply(this, arguments);\n }\n\n _createClass(LineController, [{\n key: \"initialize\",\n value: function initialize() {\n this.enableOptionSharing = true;\n\n _get(_getPrototypeOf(LineController.prototype), \"initialize\", this).call(this);\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var me = this;\n var meta = me._cachedMeta;\n var line = meta.dataset,\n _meta$data = meta.data,\n points = _meta$data === void 0 ? [] : _meta$data,\n _dataset = meta._dataset;\n var animationsDisabled = me.chart._animationsDisabled;\n\n var _getStartAndCountOfVi = getStartAndCountOfVisiblePoints(meta, points, animationsDisabled),\n start = _getStartAndCountOfVi.start,\n count = _getStartAndCountOfVi.count;\n\n me._drawStart = start;\n me._drawCount = count;\n\n if (scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n\n line._decimated = !!_dataset._decimated;\n line.points = points;\n var options = me.resolveDatasetElementOptions(mode);\n\n if (!me.options.showLine) {\n options.borderWidth = 0;\n }\n\n options.segment = me.options.segment;\n me.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options: options\n }, mode);\n me.updateElements(points, start, count, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var me = this;\n var reset = mode === 'reset';\n var _me$_cachedMeta3 = me._cachedMeta,\n iScale = _me$_cachedMeta3.iScale,\n vScale = _me$_cachedMeta3.vScale,\n _stacked = _me$_cachedMeta3._stacked;\n var firstOpts = me.resolveDataElementOptions(start, mode);\n var sharedOptions = me.getSharedOptions(firstOpts);\n var includeOptions = me.includeOptions(mode, sharedOptions);\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n var spanGaps = me.options.spanGaps;\n var maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n var directUpdate = me.chart._animationsDisabled || reset || mode === 'none';\n var prevParsed = start > 0 && me.getParsed(start - 1);\n\n for (var i = start; i < start + count; ++i) {\n var point = points[i];\n var parsed = me.getParsed(i);\n var properties = directUpdate ? point : {};\n var nullData = isNullOrUndef(parsed[vAxis]);\n var iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n var vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? me.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && parsed[iAxis] - prevParsed[iAxis] > maxGapLength;\n properties.parsed = parsed;\n\n if (includeOptions) {\n properties.options = sharedOptions || me.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n\n if (!directUpdate) {\n me.updateElement(point, i, properties, mode);\n }\n\n prevParsed = parsed;\n }\n\n me.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n var me = this;\n var meta = me._cachedMeta;\n var dataset = meta.dataset;\n var border = dataset.options && dataset.options.borderWidth || 0;\n var data = meta.data || [];\n\n if (!data.length) {\n return border;\n }\n\n var firstPoint = data[0].size(me.resolveDataElementOptions(0));\n var lastPoint = data[data.length - 1].size(me.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n\n _get(_getPrototypeOf(LineController.prototype), \"draw\", this).call(this);\n }\n }]);\n\n return LineController;\n}(DatasetController);\n\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category'\n },\n _value_: {\n type: 'linear'\n }\n }\n};\n\nfunction getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n var pointCount = points.length;\n var start = 0;\n var count = pointCount;\n\n if (meta._sorted) {\n var iScale = meta.iScale,\n _parsed = meta._parsed;\n var axis = iScale.axis;\n\n var _iScale$getUserBounds = iScale.getUserBounds(),\n min = _iScale$getUserBounds.min,\n max = _iScale$getUserBounds.max,\n minDefined = _iScale$getUserBounds.minDefined,\n maxDefined = _iScale$getUserBounds.maxDefined;\n\n if (minDefined) {\n start = _limitValue(Math.min(_lookupByKey(_parsed, iScale.axis, min).lo, animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo), 0, pointCount - 1);\n }\n\n if (maxDefined) {\n count = _limitValue(Math.max(_lookupByKey(_parsed, iScale.axis, max).hi + 1, animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max)).hi + 1), start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n\n return {\n start: start,\n count: count\n };\n}\n\nfunction scaleRangesChanged(meta) {\n var xScale = meta.xScale,\n yScale = meta.yScale,\n _scaleRanges = meta._scaleRanges;\n var newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n\n var changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nvar PolarAreaController = /*#__PURE__*/function (_DatasetController5) {\n _inherits(PolarAreaController, _DatasetController5);\n\n var _super5 = _createSuper(PolarAreaController);\n\n function PolarAreaController(chart, datasetIndex) {\n var _this2;\n\n _classCallCheck(this, PolarAreaController);\n\n _this2 = _super5.call(this, chart, datasetIndex);\n _this2.innerRadius = undefined;\n _this2.outerRadius = undefined;\n return _this2;\n }\n\n _createClass(PolarAreaController, [{\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var me = this;\n var meta = me._cachedMeta;\n var chart = me.chart;\n var labels = chart.data.labels || [];\n var value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value: value\n };\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var arcs = this._cachedMeta.data;\n\n this._updateRadius();\n\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n }, {\n key: \"_updateRadius\",\n value: function _updateRadius() {\n var me = this;\n var chart = me.chart;\n var chartArea = chart.chartArea;\n var opts = chart.options;\n var minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n var outerRadius = Math.max(minSize / 2, 0);\n var innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n var radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n me.outerRadius = outerRadius - radiusLength * me.index;\n me.innerRadius = me.outerRadius - radiusLength;\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(arcs, start, count, mode) {\n var me = this;\n var reset = mode === 'reset';\n var chart = me.chart;\n var dataset = me.getDataset();\n var opts = chart.options;\n var animationOpts = opts.animation;\n var scale = me._cachedMeta.rScale;\n var centerX = scale.xCenter;\n var centerY = scale.yCenter;\n var datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n var angle = datasetStartAngle;\n var i;\n var defaultAngle = 360 / me.countVisibleElements();\n\n for (i = 0; i < start; ++i) {\n angle += me._computeAngle(i, mode, defaultAngle);\n }\n\n for (i = start; i < start + count; i++) {\n var arc = arcs[i];\n var startAngle = angle;\n\n var endAngle = angle + me._computeAngle(i, mode, defaultAngle);\n\n var outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(dataset.data[i]) : 0;\n angle = endAngle;\n\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n\n var properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle,\n options: me.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n me.updateElement(arc, i, properties, mode);\n }\n }\n }, {\n key: \"countVisibleElements\",\n value: function countVisibleElements() {\n var _this3 = this;\n\n var dataset = this.getDataset();\n var meta = this._cachedMeta;\n var count = 0;\n meta.data.forEach(function (element, index) {\n if (!isNaN(dataset.data[index]) && _this3.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n }, {\n key: \"_computeAngle\",\n value: function _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index) ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n }\n }]);\n\n return PolarAreaController;\n}(DatasetController);\n\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n }\n },\n indexAxis: 'r',\n startAngle: 0\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels: function generateLabels(chart) {\n var data = chart.data;\n\n if (data.labels.length && data.datasets.length) {\n var pointStyle = chart.legend.options.labels.pointStyle;\n return data.labels.map(function (label, i) {\n var meta = chart.getDatasetMeta(0);\n var style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n\n return [];\n }\n },\n onClick: function onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title: function title() {\n return '';\n },\n label: function label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nvar PieController = /*#__PURE__*/function (_DoughnutController) {\n _inherits(PieController, _DoughnutController);\n\n var _super6 = _createSuper(PieController);\n\n function PieController() {\n _classCallCheck(this, PieController);\n\n return _super6.apply(this, arguments);\n }\n\n return PieController;\n}(DoughnutController);\n\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nvar RadarController = /*#__PURE__*/function (_DatasetController6) {\n _inherits(RadarController, _DatasetController6);\n\n var _super7 = _createSuper(RadarController);\n\n function RadarController() {\n _classCallCheck(this, RadarController);\n\n return _super7.apply(this, arguments);\n }\n\n _createClass(RadarController, [{\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var me = this;\n var vScale = me._cachedMeta.vScale;\n var parsed = me.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var me = this;\n var meta = me._cachedMeta;\n var line = meta.dataset;\n var points = meta.data || [];\n var labels = meta.iScale.getLabels();\n line.points = points;\n\n if (mode !== 'resize') {\n var options = me.resolveDatasetElementOptions(mode);\n\n if (!me.options.showLine) {\n options.borderWidth = 0;\n }\n\n var properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options: options\n };\n me.updateElement(line, undefined, properties, mode);\n }\n\n me.updateElements(points, 0, points.length, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var me = this;\n var dataset = me.getDataset();\n var scale = me._cachedMeta.rScale;\n var reset = mode === 'reset';\n\n for (var i = start; i < start + count; i++) {\n var point = points[i];\n var options = me.resolveDataElementOptions(i, point.active ? 'active' : mode);\n var pointPosition = scale.getPointPositionForValue(i, dataset.data[i]);\n var x = reset ? scale.xCenter : pointPosition.x;\n var y = reset ? scale.yCenter : pointPosition.y;\n var properties = {\n x: x,\n y: y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options: options\n };\n me.updateElement(point, i, properties, mode);\n }\n }\n }]);\n\n return RadarController;\n}(DatasetController);\n\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n }\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear'\n }\n }\n};\n\nvar ScatterController = /*#__PURE__*/function (_LineController) {\n _inherits(ScatterController, _LineController);\n\n var _super8 = _createSuper(ScatterController);\n\n function ScatterController() {\n _classCallCheck(this, ScatterController);\n\n return _super8.apply(this, arguments);\n }\n\n return ScatterController;\n}(LineController);\n\nScatterController.id = 'scatter';\nScatterController.defaults = {\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title: function title() {\n return '';\n },\n label: function label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\nvar controllers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n BarController: BarController,\n BubbleController: BubbleController,\n DoughnutController: DoughnutController,\n LineController: LineController,\n PolarAreaController: PolarAreaController,\n PieController: PieController,\n RadarController: RadarController,\n ScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n\nvar DateAdapter = /*#__PURE__*/function () {\n function DateAdapter(options) {\n _classCallCheck(this, DateAdapter);\n\n this.options = options || {};\n }\n\n _createClass(DateAdapter, [{\n key: \"formats\",\n value: function formats() {\n return abstract();\n }\n }, {\n key: \"parse\",\n value: function parse(value, format) {\n return abstract();\n }\n }, {\n key: \"format\",\n value: function format(timestamp, _format) {\n return abstract();\n }\n }, {\n key: \"add\",\n value: function add(timestamp, amount, unit) {\n return abstract();\n }\n }, {\n key: \"diff\",\n value: function diff(a, b, unit) {\n return abstract();\n }\n }, {\n key: \"startOf\",\n value: function startOf(timestamp, unit, weekday) {\n return abstract();\n }\n }, {\n key: \"endOf\",\n value: function endOf(timestamp, unit) {\n return abstract();\n }\n }]);\n\n return DateAdapter;\n}();\n\nDateAdapter.override = function (members) {\n Object.assign(DateAdapter.prototype, members);\n};\n\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction getRelativePosition(e, chart) {\n if ('native' in e) {\n return {\n x: e.x,\n y: e.y\n };\n }\n\n return getRelativePosition$1(e, chart);\n}\n\nfunction evaluateAllVisibleItems(chart, handler) {\n var metasets = chart.getSortedVisibleDatasetMetas();\n var index, data, element;\n\n for (var i = 0, ilen = metasets.length; i < ilen; ++i) {\n var _metasets$i = metasets[i];\n index = _metasets$i.index;\n data = _metasets$i.data;\n\n for (var j = 0, jlen = data.length; j < jlen; ++j) {\n element = data[j];\n\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n\nfunction binarySearch(metaset, axis, value, intersect) {\n var controller = metaset.controller,\n data = metaset.data,\n _sorted = metaset._sorted;\n var iScale = controller._cachedMeta.iScale;\n\n if (iScale && axis === iScale.axis && _sorted && data.length) {\n var lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n var el = data[0];\n var range = typeof el.getRange === 'function' && el.getRange(axis);\n\n if (range) {\n var start = lookupMethod(data, axis, value - range);\n var end = lookupMethod(data, axis, value + range);\n return {\n lo: start.lo,\n hi: end.hi\n };\n }\n }\n }\n\n return {\n lo: 0,\n hi: data.length - 1\n };\n}\n\nfunction optimizedEvaluateItems(chart, axis, position, handler, intersect) {\n var metasets = chart.getSortedVisibleDatasetMetas();\n var value = position[axis];\n\n for (var i = 0, ilen = metasets.length; i < ilen; ++i) {\n var _metasets$i2 = metasets[i],\n index = _metasets$i2.index,\n data = _metasets$i2.data;\n\n var _binarySearch = binarySearch(metasets[i], axis, value, intersect),\n lo = _binarySearch.lo,\n hi = _binarySearch.hi;\n\n for (var j = lo; j <= hi; ++j) {\n var element = data[j];\n\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n\nfunction getDistanceMetricForAxis(axis) {\n var useX = axis.indexOf('x') !== -1;\n var useY = axis.indexOf('y') !== -1;\n return function (pt1, pt2) {\n var deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n var deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n\nfunction getIntersectItems(chart, position, axis, useFinalPosition) {\n var items = [];\n\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n\n var evaluationFunc = function evaluationFunc(element, datasetIndex, index) {\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({\n element: element,\n datasetIndex: datasetIndex,\n index: index\n });\n }\n };\n\n optimizedEvaluateItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition) {\n var distanceMetric = getDistanceMetricForAxis(axis);\n var minDistance = Number.POSITIVE_INFINITY;\n var items = [];\n\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n\n var evaluationFunc = function evaluationFunc(element, datasetIndex, index) {\n if (intersect && !element.inRange(position.x, position.y, useFinalPosition)) {\n return;\n }\n\n var center = element.getCenterPoint(useFinalPosition);\n\n if (!_isPointInArea(center, chart.chartArea, chart._minPadding)) {\n return;\n }\n\n var distance = distanceMetric(position, center);\n\n if (distance < minDistance) {\n items = [{\n element: element,\n datasetIndex: datasetIndex,\n index: index\n }];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({\n element: element,\n datasetIndex: datasetIndex,\n index: index\n });\n }\n };\n\n optimizedEvaluateItems(chart, axis, position, evaluationFunc);\n return items;\n}\n\nfunction getAxisItems(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var items = [];\n var axis = options.axis;\n var rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n var intersectsItem = false;\n evaluateAllVisibleItems(chart, function (element, datasetIndex, index) {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({\n element: element,\n datasetIndex: datasetIndex,\n index: index\n });\n }\n\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n intersectsItem = true;\n }\n });\n\n if (options.intersect && !intersectsItem) {\n return [];\n }\n\n return items;\n}\n\nvar Interaction = {\n modes: {\n index: function index(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'x';\n var items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition) : getNearestItems(chart, position, axis, false, useFinalPosition);\n var elements = [];\n\n if (!items.length) {\n return [];\n }\n\n chart.getSortedVisibleDatasetMetas().forEach(function (meta) {\n var index = items[0].index;\n var element = meta.data[index];\n\n if (element && !element.skip) {\n elements.push({\n element: element,\n datasetIndex: meta.index,\n index: index\n });\n }\n });\n return elements;\n },\n dataset: function dataset(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'xy';\n var items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition) : getNearestItems(chart, position, axis, false, useFinalPosition);\n\n if (items.length > 0) {\n var datasetIndex = items[0].datasetIndex;\n var data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n\n for (var i = 0; i < data.length; ++i) {\n items.push({\n element: data[i],\n datasetIndex: datasetIndex,\n index: i\n });\n }\n }\n\n return items;\n },\n point: function point(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'xy';\n return getIntersectItems(chart, position, axis, useFinalPosition);\n },\n nearest: function nearest(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'xy';\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition);\n },\n x: function x(chart, e, options, useFinalPosition) {\n options.axis = 'x';\n return getAxisItems(chart, e, options, useFinalPosition);\n },\n y: function y(chart, e, options, useFinalPosition) {\n options.axis = 'y';\n return getAxisItems(chart, e, options, useFinalPosition);\n }\n }\n};\nvar STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\n\nfunction filterByPosition(array, position) {\n return array.filter(function (v) {\n return v.pos === position;\n });\n}\n\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(function (v) {\n return STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis;\n });\n}\n\nfunction sortByWeight(array, reverse) {\n return array.sort(function (a, b) {\n var v0 = reverse ? b : a;\n var v1 = reverse ? a : b;\n return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n });\n}\n\nfunction wrapBoxes(boxes) {\n var layoutBoxes = [];\n var i, ilen, box;\n\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n layoutBoxes.push({\n index: i,\n box: box,\n pos: box.position,\n horizontal: box.isHorizontal(),\n weight: box.weight\n });\n }\n\n return layoutBoxes;\n}\n\nfunction setLayoutDims(layouts, params) {\n var i, ilen, layout;\n\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n\n if (layout.horizontal) {\n layout.width = layout.box.fullSize && params.availableWidth;\n layout.height = params.hBoxMaxHeight;\n } else {\n layout.width = params.vBoxMaxWidth;\n layout.height = layout.box.fullSize && params.availableHeight;\n }\n }\n}\n\nfunction buildLayoutBoxes(boxes) {\n var layoutBoxes = wrapBoxes(boxes);\n var fullSize = sortByWeight(layoutBoxes.filter(function (wrap) {\n return wrap.box.fullSize;\n }), true);\n var left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n var right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n var top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n var bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n var centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n var centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize: fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\n\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\n\nfunction updateDims(chartArea, params, layout) {\n var box = layout.box;\n var maxPadding = chartArea.maxPadding;\n\n if (!isObject(layout.pos)) {\n if (layout.size) {\n chartArea[layout.pos] -= layout.size;\n }\n\n layout.size = layout.horizontal ? box.height : box.width;\n chartArea[layout.pos] += layout.size;\n }\n\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n\n var newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n var newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n var widthChanged = newWidth !== chartArea.w;\n var heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal ? {\n same: widthChanged,\n other: heightChanged\n } : {\n same: heightChanged,\n other: widthChanged\n };\n}\n\nfunction handleMaxPadding(chartArea) {\n var maxPadding = chartArea.maxPadding;\n\n function updatePos(pos) {\n var change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n var maxPadding = chartArea.maxPadding;\n\n function marginForPositions(positions) {\n var margin = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n positions.forEach(function (pos) {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n\n return horizontal ? marginForPositions(['left', 'right']) : marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params) {\n var refitBoxes = [];\n var i, ilen, layout, box, refit, changed;\n\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n\n var _updateDims = updateDims(chartArea, params, layout),\n same = _updateDims.same,\n other = _updateDims.other;\n\n refit |= same && refitBoxes.length;\n changed = changed || other;\n\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n\n return refit && fitBoxes(refitBoxes, chartArea, params) || changed;\n}\n\nfunction placeBoxes(boxes, chartArea, params) {\n var userPadding = params.padding;\n var x = chartArea.x;\n var y = chartArea.y;\n var i, ilen, layout, box;\n\n for (i = 0, ilen = boxes.length; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n\n if (layout.horizontal) {\n box.left = box.fullSize ? userPadding.left : chartArea.left;\n box.right = box.fullSize ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\n box.top = y;\n box.bottom = y + box.height;\n box.width = box.right - box.left;\n y = box.bottom;\n } else {\n box.left = x;\n box.right = x + box.width;\n box.top = box.fullSize ? userPadding.top : chartArea.top;\n box.bottom = box.fullSize ? params.outerHeight - userPadding.bottom : chartArea.top + chartArea.h;\n box.height = box.bottom - box.top;\n x = box.right;\n }\n }\n\n chartArea.x = x;\n chartArea.y = y;\n}\n\ndefaults.set('layout', {\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox: function addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n\n item._layers = item._layers || function () {\n return [{\n z: 0,\n draw: function draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n\n chart.boxes.push(item);\n },\n removeBox: function removeBox(chart, layoutItem) {\n var index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure: function configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update: function update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n\n var padding = toPadding(chart.options.layout.padding);\n var availableWidth = Math.max(width - padding.width, 0);\n var availableHeight = Math.max(height - padding.height, 0);\n var boxes = buildLayoutBoxes(chart.boxes);\n var verticalBoxes = boxes.vertical;\n var horizontalBoxes = boxes.horizontal;\n each(chart.boxes, function (box) {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n var visibleVerticalBoxCount = verticalBoxes.reduce(function (total, wrap) {\n return wrap.box.options && wrap.box.options.display === false ? total : total + 1;\n }, 0) || 1;\n var params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding: padding,\n availableWidth: availableWidth,\n availableHeight: availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n var maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n var chartArea = Object.assign({\n maxPadding: maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params);\n fitBoxes(verticalBoxes, chartArea, params);\n\n if (fitBoxes(horizontalBoxes, chartArea, params)) {\n fitBoxes(verticalBoxes, chartArea, params);\n }\n\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w\n };\n each(boxes.chartArea, function (layout) {\n var box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h);\n });\n }\n};\n\nvar BasePlatform = /*#__PURE__*/function () {\n function BasePlatform() {\n _classCallCheck(this, BasePlatform);\n }\n\n _createClass(BasePlatform, [{\n key: \"acquireContext\",\n value: function acquireContext(canvas, aspectRatio) {}\n }, {\n key: \"releaseContext\",\n value: function releaseContext(context) {\n return false;\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(chart, type, listener) {}\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(chart, type, listener) {}\n }, {\n key: \"getDevicePixelRatio\",\n value: function getDevicePixelRatio() {\n return 1;\n }\n }, {\n key: \"getMaximumSize\",\n value: function getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width: width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n }, {\n key: \"isAttached\",\n value: function isAttached(canvas) {\n return true;\n }\n }]);\n\n return BasePlatform;\n}();\n\nvar BasicPlatform = /*#__PURE__*/function (_BasePlatform) {\n _inherits(BasicPlatform, _BasePlatform);\n\n var _super9 = _createSuper(BasicPlatform);\n\n function BasicPlatform() {\n _classCallCheck(this, BasicPlatform);\n\n return _super9.apply(this, arguments);\n }\n\n _createClass(BasicPlatform, [{\n key: \"acquireContext\",\n value: function acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n }]);\n\n return BasicPlatform;\n}(BasePlatform);\n\nvar EXPANDO_KEY = '$chartjs';\nvar EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\n\nvar isNullOrEmpty = function isNullOrEmpty(value) {\n return value === null || value === '';\n};\n\nfunction initCanvas(canvas, aspectRatio) {\n var style = canvas.style;\n var renderHeight = canvas.getAttribute('height');\n var renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n\n if (isNullOrEmpty(renderWidth)) {\n var displayWidth = readUsedSize(canvas, 'width');\n\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n var displayHeight = readUsedSize(canvas, 'height');\n\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n\n return canvas;\n}\n\nvar eventListenerOptions = supportsEventListenerOptions ? {\n passive: true\n} : false;\n\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\n\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\n\nfunction fromNativeEvent(event, chart) {\n var type = EVENT_TYPES[event.type] || event.type;\n\n var _getRelativePosition$ = getRelativePosition$1(event, chart),\n x = _getRelativePosition$.x,\n y = _getRelativePosition$.y;\n\n return {\n type: type,\n chart: chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null\n };\n}\n\nfunction createAttachObserver(chart, type, listener) {\n var canvas = chart.canvas;\n\n var container = canvas && _getParentNode(canvas);\n\n var element = container || canvas;\n var observer = new MutationObserver(function (entries) {\n var parent = _getParentNode(element);\n\n entries.forEach(function (entry) {\n for (var i = 0; i < entry.addedNodes.length; i++) {\n var added = entry.addedNodes[i];\n\n if (added === element || added === parent) {\n listener(entry.target);\n }\n }\n });\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\n\nfunction createDetachObserver(chart, type, listener) {\n var canvas = chart.canvas;\n\n var container = canvas && _getParentNode(canvas);\n\n if (!container) {\n return;\n }\n\n var observer = new MutationObserver(function (entries) {\n entries.forEach(function (entry) {\n for (var i = 0; i < entry.removedNodes.length; i++) {\n if (entry.removedNodes[i] === canvas) {\n listener();\n break;\n }\n }\n });\n });\n observer.observe(container, {\n childList: true\n });\n return observer;\n}\n\nvar drpListeningCharts = new Map();\nvar oldDevicePixelRatio = 0;\n\nfunction onWindowResize() {\n var dpr = window.devicePixelRatio;\n\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach(function (resize, chart) {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\n\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n\n drpListeningCharts.set(chart, resize);\n}\n\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\n\nfunction createResizeObserver(chart, type, listener) {\n var canvas = chart.canvas;\n\n var container = canvas && _getParentNode(canvas);\n\n if (!container) {\n return;\n }\n\n var resize = throttled(function (width, height) {\n var w = container.clientWidth;\n listener(width, height);\n\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n var observer = new ResizeObserver(function (entries) {\n var entry = entries[0];\n var width = entry.contentRect.width;\n var height = entry.contentRect.height;\n\n if (width === 0 && height === 0) {\n return;\n }\n\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\n\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\n\nfunction createProxyAndListen(chart, type, listener) {\n var canvas = chart.canvas;\n var proxy = throttled(function (event) {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, function (args) {\n var event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\n\nvar DomPlatform = /*#__PURE__*/function (_BasePlatform2) {\n _inherits(DomPlatform, _BasePlatform2);\n\n var _super10 = _createSuper(DomPlatform);\n\n function DomPlatform() {\n _classCallCheck(this, DomPlatform);\n\n return _super10.apply(this, arguments);\n }\n\n _createClass(DomPlatform, [{\n key: \"acquireContext\",\n value: function acquireContext(canvas, aspectRatio) {\n var context = canvas && canvas.getContext && canvas.getContext('2d');\n\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n\n return null;\n }\n }, {\n key: \"releaseContext\",\n value: function releaseContext(context) {\n var canvas = context.canvas;\n\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n\n var initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach(function (prop) {\n var value = initial[prop];\n\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n var style = initial.style || {};\n Object.keys(style).forEach(function (key) {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n var proxies = chart.$proxies || (chart.$proxies = {});\n var handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n var handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(chart, type) {\n var proxies = chart.$proxies || (chart.$proxies = {});\n var proxy = proxies[type];\n\n if (!proxy) {\n return;\n }\n\n var handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n var handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n }, {\n key: \"getDevicePixelRatio\",\n value: function getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n }, {\n key: \"getMaximumSize\",\n value: function getMaximumSize(canvas, width, height, aspectRatio) {\n return _getMaximumSize(canvas, width, height, aspectRatio);\n }\n }, {\n key: \"isAttached\",\n value: function isAttached(canvas) {\n var container = _getParentNode(canvas);\n\n return !!(container && _getParentNode(container));\n }\n }]);\n\n return DomPlatform;\n}(BasePlatform);\n\nvar Element = /*#__PURE__*/function () {\n function Element() {\n _classCallCheck(this, Element);\n\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n\n _createClass(Element, [{\n key: \"tooltipPosition\",\n value: function tooltipPosition(useFinalPosition) {\n var _this$getProps = this.getProps(['x', 'y'], useFinalPosition),\n x = _this$getProps.x,\n y = _this$getProps.y;\n\n return {\n x: x,\n y: y\n };\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n }, {\n key: \"getProps\",\n value: function getProps(props, final) {\n var me = this;\n var anims = this.$animations;\n\n if (!final || !anims) {\n return me;\n }\n\n var ret = {};\n props.forEach(function (prop) {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : me[prop];\n });\n return ret;\n }\n }]);\n\n return Element;\n}();\n\nElement.defaults = {};\nElement.defaultRoutes = undefined;\nvar formatters = {\n values: function values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric: function numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n\n var locale = this.chart.options.locale;\n var notation;\n var delta = tickValue;\n\n if (ticks.length > 1) {\n var maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n\n delta = calculateDelta(tickValue, ticks);\n }\n\n var logDelta = log10(Math.abs(delta));\n var numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n var options = {\n notation: notation,\n minimumFractionDigits: numDecimal,\n maximumFractionDigits: numDecimal\n };\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic: function logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n\n var remain = tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n\n return '';\n }\n};\n\nfunction calculateDelta(tickValue, ticks) {\n var delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n\n return delta;\n}\n\nvar Ticks = {\n formatters: formatters\n};\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: function tickWidth(_ctx, options) {\n return options.lineWidth;\n },\n tickColor: function tickColor(_ctx, options) {\n return options.color;\n },\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: function _scriptable(name) {\n return !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser';\n },\n _indexable: function _indexable(name) {\n return name !== 'borderDash' && name !== 'tickBorderDash';\n }\n});\ndefaults.describe('scales', {\n _fallback: 'scale'\n});\ndefaults.describe('scale.ticks', {\n _scriptable: function _scriptable(name) {\n return name !== 'backdropPadding' && name !== 'callback';\n },\n _indexable: function _indexable(name) {\n return name !== 'backdropPadding';\n }\n});\n\nfunction autoSkip(scale, ticks) {\n var tickOpts = scale.options.ticks;\n var ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n var majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n var numMajorIndices = majorIndices.length;\n var first = majorIndices[0];\n var last = majorIndices[numMajorIndices - 1];\n var newTicks = [];\n\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n\n var spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n\n if (numMajorIndices > 0) {\n var i, ilen;\n var avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\n\nfunction determineMaxTicks(scale) {\n var offset = scale.options.offset;\n\n var tickLength = scale._tickSize();\n\n var maxScale = scale._length / tickLength + (offset ? 0 : 1);\n var maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n var evenMajorSpacing = getEvenSpacing(majorIndices);\n var spacing = ticks.length / ticksLimit;\n\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n\n var factors = _factorize(evenMajorSpacing);\n\n for (var i = 0, ilen = factors.length - 1; i < ilen; i++) {\n var factor = factors[i];\n\n if (factor > spacing) {\n return factor;\n }\n }\n\n return Math.max(spacing, 1);\n}\n\nfunction getMajorIndices(ticks) {\n var result = [];\n var i, ilen;\n\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n\n return result;\n}\n\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n var count = 0;\n var next = majorIndices[0];\n var i;\n spacing = Math.ceil(spacing);\n\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n var start = valueOrDefault(majorStart, 0);\n var end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n var count = 0;\n var length, i, next;\n spacing = Math.ceil(spacing);\n\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n\n next = start;\n\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n\nfunction getEvenSpacing(arr) {\n var len = arr.length;\n var i, diff;\n\n if (len < 2) {\n return false;\n }\n\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n\n return diff;\n}\n\nvar reverseAlign = function reverseAlign(align) {\n return align === 'left' ? 'right' : align === 'right' ? 'left' : align;\n};\n\nvar offsetFromEdge = function offsetFromEdge(scale, edge, offset) {\n return edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\n};\n\nfunction sample(arr, numItems) {\n var result = [];\n var increment = arr.length / numItems;\n var len = arr.length;\n var i = 0;\n\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n\n return result;\n}\n\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n var length = scale.ticks.length;\n var validIndex = Math.min(index, length - 1);\n var start = scale._startPixel;\n var end = scale._endPixel;\n var epsilon = 1e-6;\n var lineValue = scale.getPixelForTick(validIndex);\n var offset;\n\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n\n lineValue += validIndex < index ? offset : -offset;\n\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n\n return lineValue;\n}\n\nfunction garbageCollect(caches, length) {\n each(caches, function (cache) {\n var gc = cache.gc;\n var gcLen = gc.length / 2;\n var i;\n\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n\n gc.splice(0, gcLen);\n }\n });\n}\n\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n\n var font = toFont(options.font, fallback);\n var padding = toPadding(options.padding);\n var lines = isArray(options.text) ? options.text.length : 1;\n return lines * font.lineHeight + padding.height;\n}\n\nfunction createScaleContext(parent, scale) {\n return Object.assign(Object.create(parent), {\n scale: scale,\n type: 'scale'\n });\n}\n\nfunction createTickContext(parent, index, tick) {\n return Object.assign(Object.create(parent), {\n tick: tick,\n index: index,\n type: 'tick'\n });\n}\n\nfunction titleAlign(align, position, reverse) {\n var ret = _toLeftRightCenter(align);\n\n if (reverse && position !== 'right' || !reverse && position === 'right') {\n ret = reverseAlign(ret);\n }\n\n return ret;\n}\n\nfunction titleArgs(scale, offset, position, align) {\n var top = scale.top,\n left = scale.left,\n bottom = scale.bottom,\n right = scale.right;\n var rotation = 0;\n var maxWidth, titleX, titleY;\n\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = offsetFromEdge(scale, position, offset);\n maxWidth = right - left;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n\n return {\n titleX: titleX,\n titleY: titleY,\n maxWidth: maxWidth,\n rotation: rotation\n };\n}\n\nvar Scale = /*#__PURE__*/function (_Element) {\n _inherits(Scale, _Element);\n\n var _super11 = _createSuper(Scale);\n\n function Scale(cfg) {\n var _this4;\n\n _classCallCheck(this, Scale);\n\n _this4 = _super11.call(this);\n _this4.id = cfg.id;\n _this4.type = cfg.type;\n _this4.options = undefined;\n _this4.ctx = cfg.ctx;\n _this4.chart = cfg.chart;\n _this4.top = undefined;\n _this4.bottom = undefined;\n _this4.left = undefined;\n _this4.right = undefined;\n _this4.width = undefined;\n _this4.height = undefined;\n _this4._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n _this4.maxWidth = undefined;\n _this4.maxHeight = undefined;\n _this4.paddingTop = undefined;\n _this4.paddingBottom = undefined;\n _this4.paddingLeft = undefined;\n _this4.paddingRight = undefined;\n _this4.axis = undefined;\n _this4.labelRotation = undefined;\n _this4.min = undefined;\n _this4.max = undefined;\n _this4._range = undefined;\n _this4.ticks = [];\n _this4._gridLineItems = null;\n _this4._labelItems = null;\n _this4._labelSizes = null;\n _this4._length = 0;\n _this4._maxLength = 0;\n _this4._longestTextCache = {};\n _this4._startPixel = undefined;\n _this4._endPixel = undefined;\n _this4._reversePixels = false;\n _this4._userMax = undefined;\n _this4._userMin = undefined;\n _this4._suggestedMax = undefined;\n _this4._suggestedMin = undefined;\n _this4._ticksLength = 0;\n _this4._borderValue = 0;\n _this4._cache = {};\n _this4._dataLimitsCached = false;\n _this4.$context = undefined;\n return _this4;\n }\n\n _createClass(Scale, [{\n key: \"init\",\n value: function init(options) {\n var me = this;\n me.options = options.setContext(me.getContext());\n me.axis = options.axis;\n me._userMin = me.parse(options.min);\n me._userMax = me.parse(options.max);\n me._suggestedMin = me.parse(options.suggestedMin);\n me._suggestedMax = me.parse(options.suggestedMax);\n }\n }, {\n key: \"parse\",\n value: function parse(raw, index) {\n return raw;\n }\n }, {\n key: \"getUserBounds\",\n value: function getUserBounds() {\n var _userMin = this._userMin,\n _userMax = this._userMax,\n _suggestedMin = this._suggestedMin,\n _suggestedMax = this._suggestedMax;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n }, {\n key: \"getMinMax\",\n value: function getMinMax(canStack) {\n var me = this;\n\n var _me$getUserBounds = me.getUserBounds(),\n min = _me$getUserBounds.min,\n max = _me$getUserBounds.max,\n minDefined = _me$getUserBounds.minDefined,\n maxDefined = _me$getUserBounds.maxDefined;\n\n var range;\n\n if (minDefined && maxDefined) {\n return {\n min: min,\n max: max\n };\n }\n\n var metas = me.getMatchingVisibleMetas();\n\n for (var i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(me, canStack);\n\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n }, {\n key: \"getPadding\",\n value: function getPadding() {\n var me = this;\n return {\n left: me.paddingLeft || 0,\n top: me.paddingTop || 0,\n right: me.paddingRight || 0,\n bottom: me.paddingBottom || 0\n };\n }\n }, {\n key: \"getTicks\",\n value: function getTicks() {\n return this.ticks;\n }\n }, {\n key: \"getLabels\",\n value: function getLabels() {\n var data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n }, {\n key: \"beforeLayout\",\n value: function beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n }, {\n key: \"beforeUpdate\",\n value: function beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n }, {\n key: \"update\",\n value: function update(maxWidth, maxHeight, margins) {\n var me = this;\n var tickOpts = me.options.ticks;\n var sampleSize = tickOpts.sampleSize;\n me.beforeUpdate();\n me.maxWidth = maxWidth;\n me.maxHeight = maxHeight;\n me._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n me.ticks = null;\n me._labelSizes = null;\n me._gridLineItems = null;\n me._labelItems = null;\n me.beforeSetDimensions();\n me.setDimensions();\n me.afterSetDimensions();\n me._maxLength = me.isHorizontal() ? me.width + margins.left + margins.right : me.height + margins.top + margins.bottom;\n\n if (!me._dataLimitsCached) {\n me.beforeDataLimits();\n me.determineDataLimits();\n me.afterDataLimits();\n me._range = _addGrace(me, me.options.grace);\n me._dataLimitsCached = true;\n }\n\n me.beforeBuildTicks();\n me.ticks = me.buildTicks() || [];\n me.afterBuildTicks();\n var samplingEnabled = sampleSize < me.ticks.length;\n\n me._convertTicksToLabels(samplingEnabled ? sample(me.ticks, sampleSize) : me.ticks);\n\n me.configure();\n me.beforeCalculateLabelRotation();\n me.calculateLabelRotation();\n me.afterCalculateLabelRotation();\n\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n me.ticks = autoSkip(me, me.ticks);\n me._labelSizes = null;\n }\n\n if (samplingEnabled) {\n me._convertTicksToLabels(me.ticks);\n }\n\n me.beforeFit();\n me.fit();\n me.afterFit();\n me.afterUpdate();\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var me = this;\n var reversePixels = me.options.reverse;\n var startPixel, endPixel;\n\n if (me.isHorizontal()) {\n startPixel = me.left;\n endPixel = me.right;\n } else {\n startPixel = me.top;\n endPixel = me.bottom;\n reversePixels = !reversePixels;\n }\n\n me._startPixel = startPixel;\n me._endPixel = endPixel;\n me._reversePixels = reversePixels;\n me._length = endPixel - startPixel;\n me._alignToPixels = me.options.alignToPixels;\n }\n }, {\n key: \"afterUpdate\",\n value: function afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n }, {\n key: \"beforeSetDimensions\",\n value: function beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n }, {\n key: \"setDimensions\",\n value: function setDimensions() {\n var me = this;\n\n if (me.isHorizontal()) {\n me.width = me.maxWidth;\n me.left = 0;\n me.right = me.width;\n } else {\n me.height = me.maxHeight;\n me.top = 0;\n me.bottom = me.height;\n }\n\n me.paddingLeft = 0;\n me.paddingTop = 0;\n me.paddingRight = 0;\n me.paddingBottom = 0;\n }\n }, {\n key: \"afterSetDimensions\",\n value: function afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n }, {\n key: \"_callHooks\",\n value: function _callHooks(name) {\n var me = this;\n me.chart.notifyPlugins(name, me.getContext());\n callback(me.options[name], [me]);\n }\n }, {\n key: \"beforeDataLimits\",\n value: function beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {}\n }, {\n key: \"afterDataLimits\",\n value: function afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n }, {\n key: \"beforeBuildTicks\",\n value: function beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n return [];\n }\n }, {\n key: \"afterBuildTicks\",\n value: function afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n }, {\n key: \"beforeTickToLabelConversion\",\n value: function beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n }, {\n key: \"generateTickLabels\",\n value: function generateTickLabels(ticks) {\n var me = this;\n var tickOpts = me.options.ticks;\n var i, ilen, tick;\n\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], me);\n }\n }\n }, {\n key: \"afterTickToLabelConversion\",\n value: function afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n }, {\n key: \"beforeCalculateLabelRotation\",\n value: function beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n }, {\n key: \"calculateLabelRotation\",\n value: function calculateLabelRotation() {\n var me = this;\n var options = me.options;\n var tickOpts = options.ticks;\n var numTicks = me.ticks.length;\n var minRotation = tickOpts.minRotation || 0;\n var maxRotation = tickOpts.maxRotation;\n var labelRotation = minRotation;\n var tickWidth, maxHeight, maxLabelDiagonal;\n\n if (!me._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !me.isHorizontal()) {\n me.labelRotation = minRotation;\n return;\n }\n\n var labelSizes = me._getLabelSizes();\n\n var maxLabelWidth = labelSizes.widest.width;\n var maxLabelHeight = labelSizes.highest.height;\n\n var maxWidth = _limitValue(me.chart.width - maxLabelWidth, 0, me.maxWidth);\n\n tickWidth = options.offset ? me.maxWidth / numTicks : maxWidth / (numTicks - 1);\n\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = me.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, me.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(Math.asin(Math.min((labelSizes.highest.height + 6) / tickWidth, 1)), Math.asin(Math.min(maxHeight / maxLabelDiagonal, 1)) - Math.asin(maxLabelHeight / maxLabelDiagonal)));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n\n me.labelRotation = labelRotation;\n }\n }, {\n key: \"afterCalculateLabelRotation\",\n value: function afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n }, {\n key: \"beforeFit\",\n value: function beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n }, {\n key: \"fit\",\n value: function fit() {\n var me = this;\n var minSize = {\n width: 0,\n height: 0\n };\n var chart = me.chart,\n _me$options2 = me.options,\n tickOpts = _me$options2.ticks,\n titleOpts = _me$options2.title,\n gridOpts = _me$options2.grid;\n\n var display = me._isVisible();\n\n var isHorizontal = me.isHorizontal();\n\n if (display) {\n var titleHeight = getTitleHeight(titleOpts, chart.options.font);\n\n if (isHorizontal) {\n minSize.width = me.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = me.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n\n if (tickOpts.display && me.ticks.length) {\n var _me$_getLabelSizes = me._getLabelSizes(),\n first = _me$_getLabelSizes.first,\n last = _me$_getLabelSizes.last,\n widest = _me$_getLabelSizes.widest,\n highest = _me$_getLabelSizes.highest;\n\n var tickPadding = tickOpts.padding * 2;\n var angleRadians = toRadians(me.labelRotation);\n var cos = Math.cos(angleRadians);\n var sin = Math.sin(angleRadians);\n\n if (isHorizontal) {\n var labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(me.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n var labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(me.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n\n me._calculatePadding(first, last, sin, cos);\n }\n }\n\n me._handleMargins();\n\n if (isHorizontal) {\n me.width = me._length = chart.width - me._margins.left - me._margins.right;\n me.height = minSize.height;\n } else {\n me.width = minSize.width;\n me.height = me._length = chart.height - me._margins.top - me._margins.bottom;\n }\n }\n }, {\n key: \"_calculatePadding\",\n value: function _calculatePadding(first, last, sin, cos) {\n var me = this;\n var _me$options3 = me.options,\n _me$options3$ticks = _me$options3.ticks,\n align = _me$options3$ticks.align,\n padding = _me$options3$ticks.padding,\n position = _me$options3.position;\n var isRotated = me.labelRotation !== 0;\n var labelsBelowTicks = position !== 'top' && me.axis === 'x';\n\n if (me.isHorizontal()) {\n var offsetLeft = me.getPixelForTick(0) - me.left;\n var offsetRight = me.right - me.getPixelForTick(me.ticks.length - 1);\n var paddingLeft = 0;\n var paddingRight = 0;\n\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n\n me.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * me.width / (me.width - offsetLeft), 0);\n me.paddingRight = Math.max((paddingRight - offsetRight + padding) * me.width / (me.width - offsetRight), 0);\n } else {\n var paddingTop = last.height / 2;\n var paddingBottom = first.height / 2;\n\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n\n me.paddingTop = paddingTop + padding;\n me.paddingBottom = paddingBottom + padding;\n }\n }\n }, {\n key: \"_handleMargins\",\n value: function _handleMargins() {\n var me = this;\n\n if (me._margins) {\n me._margins.left = Math.max(me.paddingLeft, me._margins.left);\n me._margins.top = Math.max(me.paddingTop, me._margins.top);\n me._margins.right = Math.max(me.paddingRight, me._margins.right);\n me._margins.bottom = Math.max(me.paddingBottom, me._margins.bottom);\n }\n }\n }, {\n key: \"afterFit\",\n value: function afterFit() {\n callback(this.options.afterFit, [this]);\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n var _this$options = this.options,\n axis = _this$options.axis,\n position = _this$options.position;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n }, {\n key: \"isFullSize\",\n value: function isFullSize() {\n return this.options.fullSize;\n }\n }, {\n key: \"_convertTicksToLabels\",\n value: function _convertTicksToLabels(ticks) {\n var me = this;\n me.beforeTickToLabelConversion();\n me.generateTickLabels(ticks);\n var i, ilen;\n\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n\n me.afterTickToLabelConversion();\n }\n }, {\n key: \"_getLabelSizes\",\n value: function _getLabelSizes() {\n var me = this;\n var labelSizes = me._labelSizes;\n\n if (!labelSizes) {\n var sampleSize = me.options.ticks.sampleSize;\n var ticks = me.ticks;\n\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n\n me._labelSizes = labelSizes = me._computeLabelSizes(ticks, ticks.length);\n }\n\n return labelSizes;\n }\n }, {\n key: \"_computeLabelSizes\",\n value: function _computeLabelSizes(ticks, length) {\n var ctx = this.ctx,\n caches = this._longestTextCache;\n var widths = [];\n var heights = [];\n var widestLabelSize = 0;\n var highestLabelSize = 0;\n var i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {\n data: {},\n gc: []\n };\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n\n garbageCollect(caches, length);\n var widest = widths.indexOf(widestLabelSize);\n var highest = heights.indexOf(highestLabelSize);\n\n var valueAt = function valueAt(idx) {\n return {\n width: widths[idx] || 0,\n height: heights[idx] || 0\n };\n };\n\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths: widths,\n heights: heights\n };\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n return value;\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value, index) {\n return NaN;\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {}\n }, {\n key: \"getPixelForTick\",\n value: function getPixelForTick(index) {\n var ticks = this.ticks;\n\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n\n return this.getPixelForValue(ticks[index].value);\n }\n }, {\n key: \"getPixelForDecimal\",\n value: function getPixelForDecimal(decimal) {\n var me = this;\n\n if (me._reversePixels) {\n decimal = 1 - decimal;\n }\n\n var pixel = me._startPixel + decimal * me._length;\n return _int16Range(me._alignToPixels ? _alignPixel(me.chart, pixel, 0) : pixel);\n }\n }, {\n key: \"getDecimalForPixel\",\n value: function getDecimalForPixel(pixel) {\n var decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n }, {\n key: \"getBasePixel\",\n value: function getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n }, {\n key: \"getBaseValue\",\n value: function getBaseValue() {\n var min = this.min,\n max = this.max;\n return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n }\n }, {\n key: \"getContext\",\n value: function getContext(index) {\n var me = this;\n var ticks = me.ticks || [];\n\n if (index >= 0 && index < ticks.length) {\n var tick = ticks[index];\n return tick.$context || (tick.$context = createTickContext(me.getContext(), index, tick));\n }\n\n return me.$context || (me.$context = createScaleContext(me.chart.getContext(), me));\n }\n }, {\n key: \"_tickSize\",\n value: function _tickSize() {\n var me = this;\n var optionTicks = me.options.ticks;\n var rot = toRadians(me.labelRotation);\n var cos = Math.abs(Math.cos(rot));\n var sin = Math.abs(Math.sin(rot));\n\n var labelSizes = me._getLabelSizes();\n\n var padding = optionTicks.autoSkipPadding || 0;\n var w = labelSizes ? labelSizes.widest.width + padding : 0;\n var h = labelSizes ? labelSizes.highest.height + padding : 0;\n return me.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n }\n }, {\n key: \"_isVisible\",\n value: function _isVisible() {\n var display = this.options.display;\n\n if (display !== 'auto') {\n return !!display;\n }\n\n return this.getMatchingVisibleMetas().length > 0;\n }\n }, {\n key: \"_computeGridLineItems\",\n value: function _computeGridLineItems(chartArea) {\n var me = this;\n var axis = me.axis;\n var chart = me.chart;\n var options = me.options;\n var grid = options.grid,\n position = options.position;\n var offset = grid.offset;\n var isHorizontal = me.isHorizontal();\n var ticks = me.ticks;\n var ticksLength = ticks.length + (offset ? 1 : 0);\n var tl = getTickMarkLength(grid);\n var items = [];\n var borderOpts = grid.setContext(me.getContext());\n var axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n var axisHalfWidth = axisWidth / 2;\n\n var alignBorderValue = function alignBorderValue(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n\n var borderValue, i, lineValue, alignedLineValue;\n var tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n\n if (position === 'top') {\n borderValue = alignBorderValue(me.bottom);\n ty1 = me.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(me.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = me.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(me.right);\n tx1 = me.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(me.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = me.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n var positionAxisID = Object.keys(position)[0];\n var value = position[positionAxisID];\n borderValue = alignBorderValue(me.chart.scales[positionAxisID].getPixelForValue(value));\n }\n\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n var _positionAxisID = Object.keys(position)[0];\n var _value = position[_positionAxisID];\n borderValue = alignBorderValue(me.chart.scales[_positionAxisID].getPixelForValue(_value));\n }\n\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n\n var limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n var step = Math.max(1, Math.ceil(ticksLength / limit));\n\n for (i = 0; i < ticksLength; i += step) {\n var optsAtIndex = grid.setContext(me.getContext(i));\n var lineWidth = optsAtIndex.lineWidth;\n var lineColor = optsAtIndex.color;\n var borderDash = grid.borderDash || [];\n var borderDashOffset = optsAtIndex.borderDashOffset;\n var tickWidth = optsAtIndex.tickWidth;\n var tickColor = optsAtIndex.tickColor;\n var tickBorderDash = optsAtIndex.tickBorderDash || [];\n var tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(me, i, offset);\n\n if (lineValue === undefined) {\n continue;\n }\n\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n\n items.push({\n tx1: tx1,\n ty1: ty1,\n tx2: tx2,\n ty2: ty2,\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n width: lineWidth,\n color: lineColor,\n borderDash: borderDash,\n borderDashOffset: borderDashOffset,\n tickWidth: tickWidth,\n tickColor: tickColor,\n tickBorderDash: tickBorderDash,\n tickBorderDashOffset: tickBorderDashOffset\n });\n }\n\n me._ticksLength = ticksLength;\n me._borderValue = borderValue;\n return items;\n }\n }, {\n key: \"_computeLabelItems\",\n value: function _computeLabelItems(chartArea) {\n var me = this;\n var axis = me.axis;\n var options = me.options;\n var position = options.position,\n optionTicks = options.ticks;\n var isHorizontal = me.isHorizontal();\n var ticks = me.ticks;\n var align = optionTicks.align,\n crossAlign = optionTicks.crossAlign,\n padding = optionTicks.padding,\n mirror = optionTicks.mirror;\n var tl = getTickMarkLength(options.grid);\n var tickAndPadding = tl + padding;\n var hTickAndPadding = mirror ? -padding : tickAndPadding;\n var rotation = -toRadians(me.labelRotation);\n var items = [];\n var i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n var textBaseline = 'middle';\n\n if (position === 'top') {\n y = me.bottom - hTickAndPadding;\n textAlign = me._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = me.top + hTickAndPadding;\n textAlign = me._getXAxisLabelAlignment();\n } else if (position === 'left') {\n var ret = me._getYAxisLabelAlignment(tl);\n\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n var _ret = me._getYAxisLabelAlignment(tl);\n\n textAlign = _ret.textAlign;\n x = _ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = (chartArea.top + chartArea.bottom) / 2 + tickAndPadding;\n } else if (isObject(position)) {\n var positionAxisID = Object.keys(position)[0];\n var value = position[positionAxisID];\n y = me.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n\n textAlign = me._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = (chartArea.left + chartArea.right) / 2 - tickAndPadding;\n } else if (isObject(position)) {\n var _positionAxisID2 = Object.keys(position)[0];\n var _value2 = position[_positionAxisID2];\n x = me.chart.scales[_positionAxisID2].getPixelForValue(_value2);\n }\n\n textAlign = me._getYAxisLabelAlignment(tl).textAlign;\n }\n\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n\n var labelSizes = me._getLabelSizes();\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n var optsAtIndex = optionTicks.setContext(me.getContext(i));\n pixel = me.getPixelForTick(i) + optionTicks.labelOffset;\n font = me._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n var halfCount = lineCount / 2;\n var color = optsAtIndex.color;\n var strokeColor = optsAtIndex.textStrokeColor;\n var strokeWidth = optsAtIndex.textStrokeWidth;\n\n if (isHorizontal) {\n x = pixel;\n\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n\n var backdrop = void 0;\n\n if (optsAtIndex.showLabelBackdrop) {\n var labelPadding = toPadding(optsAtIndex.backdropPadding);\n var height = labelSizes.heights[i];\n var width = labelSizes.widths[i];\n var top = y + textOffset - labelPadding.top;\n var left = x - labelPadding.left;\n\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n\n case 'bottom':\n top -= height;\n break;\n }\n\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n\n case 'right':\n left -= width;\n break;\n }\n\n backdrop = {\n left: left,\n top: top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor\n };\n }\n\n items.push({\n rotation: rotation,\n label: label,\n font: font,\n color: color,\n strokeColor: strokeColor,\n strokeWidth: strokeWidth,\n textOffset: textOffset,\n textAlign: textAlign,\n textBaseline: textBaseline,\n translation: [x, y],\n backdrop: backdrop\n });\n }\n\n return items;\n }\n }, {\n key: \"_getXAxisLabelAlignment\",\n value: function _getXAxisLabelAlignment() {\n var me = this;\n var _me$options4 = me.options,\n position = _me$options4.position,\n ticks = _me$options4.ticks;\n var rotation = -toRadians(me.labelRotation);\n\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n\n var align = 'center';\n\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n }\n\n return align;\n }\n }, {\n key: \"_getYAxisLabelAlignment\",\n value: function _getYAxisLabelAlignment(tl) {\n var me = this;\n var _me$options5 = me.options,\n position = _me$options5.position,\n _me$options5$ticks = _me$options5.ticks,\n crossAlign = _me$options5$ticks.crossAlign,\n mirror = _me$options5$ticks.mirror,\n padding = _me$options5$ticks.padding;\n\n var labelSizes = me._getLabelSizes();\n\n var tickAndPadding = tl + padding;\n var widest = labelSizes.widest.width;\n var textAlign;\n var x;\n\n if (position === 'left') {\n if (mirror) {\n textAlign = 'left';\n x = me.right + padding;\n } else {\n x = me.right - tickAndPadding;\n\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x = me.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n textAlign = 'right';\n x = me.left + padding;\n } else {\n x = me.left + tickAndPadding;\n\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = me.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n\n return {\n textAlign: textAlign,\n x: x\n };\n }\n }, {\n key: \"_computeLabelArea\",\n value: function _computeLabelArea() {\n var me = this;\n\n if (me.options.ticks.mirror) {\n return;\n }\n\n var chart = me.chart;\n var position = me.options.position;\n\n if (position === 'left' || position === 'right') {\n return {\n top: 0,\n left: me.left,\n bottom: chart.height,\n right: me.right\n };\n }\n\n if (position === 'top' || position === 'bottom') {\n return {\n top: me.top,\n left: 0,\n bottom: me.bottom,\n right: chart.width\n };\n }\n }\n }, {\n key: \"drawBackground\",\n value: function drawBackground() {\n var ctx = this.ctx,\n backgroundColor = this.options.backgroundColor,\n left = this.left,\n top = this.top,\n width = this.width,\n height = this.height;\n\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n }, {\n key: \"getLineWidthForValue\",\n value: function getLineWidthForValue(value) {\n var me = this;\n var grid = me.options.grid;\n\n if (!me._isVisible() || !grid.display) {\n return 0;\n }\n\n var ticks = me.ticks;\n var index = ticks.findIndex(function (t) {\n return t.value === value;\n });\n\n if (index >= 0) {\n var opts = grid.setContext(me.getContext(index));\n return opts.lineWidth;\n }\n\n return 0;\n }\n }, {\n key: \"drawGrid\",\n value: function drawGrid(chartArea) {\n var me = this;\n var grid = me.options.grid;\n var ctx = me.ctx;\n\n var items = me._gridLineItems || (me._gridLineItems = me._computeGridLineItems(chartArea));\n\n var i, ilen;\n\n var drawLine = function drawLine(p1, p2, style) {\n if (!style.width || !style.color) {\n return;\n }\n\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n var item = items[i];\n\n if (grid.drawOnChartArea) {\n drawLine({\n x: item.x1,\n y: item.y1\n }, {\n x: item.x2,\n y: item.y2\n }, item);\n }\n\n if (grid.drawTicks) {\n drawLine({\n x: item.tx1,\n y: item.ty1\n }, {\n x: item.tx2,\n y: item.ty2\n }, {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n });\n }\n }\n }\n }\n }, {\n key: \"drawBorder\",\n value: function drawBorder() {\n var me = this;\n var chart = me.chart,\n ctx = me.ctx,\n grid = me.options.grid;\n var borderOpts = grid.setContext(me.getContext());\n var axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n\n if (!axisWidth) {\n return;\n }\n\n var lastLineWidth = grid.setContext(me.getContext(0)).lineWidth;\n var borderValue = me._borderValue;\n var x1, x2, y1, y2;\n\n if (me.isHorizontal()) {\n x1 = _alignPixel(chart, me.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, me.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, me.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, me.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n }, {\n key: \"drawLabels\",\n value: function drawLabels(chartArea) {\n var me = this;\n var optionTicks = me.options.ticks;\n\n if (!optionTicks.display) {\n return;\n }\n\n var ctx = me.ctx;\n\n var area = me._computeLabelArea();\n\n if (area) {\n clipArea(ctx, area);\n }\n\n var items = me._labelItems || (me._labelItems = me._computeLabelItems(chartArea));\n\n var i, ilen;\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n var item = items[i];\n var tickFont = item.font;\n var label = item.label;\n\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n\n var y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n\n if (area) {\n unclipArea(ctx);\n }\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle() {\n var ctx = this.ctx,\n _this$options2 = this.options,\n position = _this$options2.position,\n title = _this$options2.title,\n reverse = _this$options2.reverse;\n\n if (!title.display) {\n return;\n }\n\n var font = toFont(title.font);\n var padding = toPadding(title.padding);\n var align = title.align;\n var offset = font.lineHeight / 2;\n\n if (position === 'bottom') {\n offset += padding.bottom;\n\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n\n var _titleArgs = titleArgs(this, offset, position, align),\n titleX = _titleArgs.titleX,\n titleY = _titleArgs.titleY,\n maxWidth = _titleArgs.maxWidth,\n rotation = _titleArgs.rotation;\n\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth: maxWidth,\n rotation: rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY]\n });\n }\n }, {\n key: \"draw\",\n value: function draw(chartArea) {\n var me = this;\n\n if (!me._isVisible()) {\n return;\n }\n\n me.drawBackground();\n me.drawGrid(chartArea);\n me.drawBorder();\n me.drawTitle();\n me.drawLabels(chartArea);\n }\n }, {\n key: \"_layers\",\n value: function _layers() {\n var me = this;\n var opts = me.options;\n var tz = opts.ticks && opts.ticks.z || 0;\n var gz = opts.grid && opts.grid.z || 0;\n\n if (!me._isVisible() || me.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: function draw(chartArea) {\n me.draw(chartArea);\n }\n }];\n }\n\n return [{\n z: gz,\n draw: function draw(chartArea) {\n me.drawBackground();\n me.drawGrid(chartArea);\n me.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: function draw() {\n me.drawBorder();\n }\n }, {\n z: tz,\n draw: function draw(chartArea) {\n me.drawLabels(chartArea);\n }\n }];\n }\n }, {\n key: \"getMatchingVisibleMetas\",\n value: function getMatchingVisibleMetas(type) {\n var me = this;\n var metas = me.chart.getSortedVisibleDatasetMetas();\n var axisID = me.axis + 'AxisID';\n var result = [];\n var i, ilen;\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n var meta = metas[i];\n\n if (meta[axisID] === me.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n\n return result;\n }\n }, {\n key: \"_resolveTickFontOptions\",\n value: function _resolveTickFontOptions(index) {\n var opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n }, {\n key: \"_maxDigits\",\n value: function _maxDigits() {\n var me = this;\n\n var fontSize = me._resolveTickFontOptions(0).lineHeight;\n\n return (me.isHorizontal() ? me.width : me.height) / fontSize;\n }\n }]);\n\n return Scale;\n}(Element);\n\nvar TypedRegistry = /*#__PURE__*/function () {\n function TypedRegistry(type, scope, override) {\n _classCallCheck(this, TypedRegistry);\n\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n\n _createClass(TypedRegistry, [{\n key: \"isForType\",\n value: function isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n }, {\n key: \"register\",\n value: function register(item) {\n var me = this;\n var proto = Object.getPrototypeOf(item);\n var parentScope;\n\n if (isIChartComponent(proto)) {\n parentScope = me.register(proto);\n }\n\n var items = me.items;\n var id = item.id;\n var scope = me.scope + '.' + id;\n\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n\n if (id in items) {\n return scope;\n }\n\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n\n if (me.override) {\n defaults.override(item.id, item.overrides);\n }\n\n return scope;\n }\n }, {\n key: \"get\",\n value: function get(id) {\n return this.items[id];\n }\n }, {\n key: \"unregister\",\n value: function unregister(item) {\n var items = this.items;\n var id = item.id;\n var scope = this.scope;\n\n if (id in items) {\n delete items[id];\n }\n\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n }]);\n\n return TypedRegistry;\n}();\n\nfunction registerDefaults(item, scope, parentScope) {\n var itemDefaults = merge(Object.create(null), [parentScope ? defaults.get(parentScope) : {}, defaults.get(scope), item.defaults]);\n defaults.set(scope, itemDefaults);\n\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\n\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(function (property) {\n var propertyParts = property.split('.');\n var sourceName = propertyParts.pop();\n var sourceScope = [scope].concat(propertyParts).join('.');\n var parts = routes[property].split('.');\n var targetName = parts.pop();\n var targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\n\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nvar Registry = /*#__PURE__*/function () {\n function Registry() {\n _classCallCheck(this, Registry);\n\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n\n _createClass(Registry, [{\n key: \"add\",\n value: function add() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this._each('register', args);\n }\n }, {\n key: \"remove\",\n value: function remove() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n this._each('unregister', args);\n }\n }, {\n key: \"addControllers\",\n value: function addControllers() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n this._each('register', args, this.controllers);\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n this._each('register', args, this.elements);\n }\n }, {\n key: \"addPlugins\",\n value: function addPlugins() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n this._each('register', args, this.plugins);\n }\n }, {\n key: \"addScales\",\n value: function addScales() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n this._each('register', args, this.scales);\n }\n }, {\n key: \"getController\",\n value: function getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n }, {\n key: \"getElement\",\n value: function getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n }, {\n key: \"getPlugin\",\n value: function getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n }, {\n key: \"getScale\",\n value: function getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n }, {\n key: \"removeControllers\",\n value: function removeControllers() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n this._each('unregister', args, this.controllers);\n }\n }, {\n key: \"removeElements\",\n value: function removeElements() {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n\n this._each('unregister', args, this.elements);\n }\n }, {\n key: \"removePlugins\",\n value: function removePlugins() {\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n this._each('unregister', args, this.plugins);\n }\n }, {\n key: \"removeScales\",\n value: function removeScales() {\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = arguments[_key10];\n }\n\n this._each('unregister', args, this.scales);\n }\n }, {\n key: \"_each\",\n value: function _each(method, args, typedRegistry) {\n var me = this;\n\n _toConsumableArray(args).forEach(function (arg) {\n var reg = typedRegistry || me._getRegistryForType(arg);\n\n if (typedRegistry || reg.isForType(arg) || reg === me.plugins && arg.id) {\n me._exec(method, reg, arg);\n } else {\n each(arg, function (item) {\n var itemReg = typedRegistry || me._getRegistryForType(item);\n\n me._exec(method, itemReg, item);\n });\n }\n });\n }\n }, {\n key: \"_exec\",\n value: function _exec(method, registry, component) {\n var camelMethod = _capitalize(method);\n\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n }, {\n key: \"_getRegistryForType\",\n value: function _getRegistryForType(type) {\n for (var i = 0; i < this._typedRegistries.length; i++) {\n var reg = this._typedRegistries[i];\n\n if (reg.isForType(type)) {\n return reg;\n }\n }\n\n return this.plugins;\n }\n }, {\n key: \"_get\",\n value: function _get(id, typedRegistry, type) {\n var item = typedRegistry.get(id);\n\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n\n return item;\n }\n }]);\n\n return Registry;\n}();\n\nvar registry = new Registry();\n\nvar PluginService = /*#__PURE__*/function () {\n function PluginService() {\n _classCallCheck(this, PluginService);\n\n this._init = [];\n }\n\n _createClass(PluginService, [{\n key: \"notify\",\n value: function notify(chart, hook, args, filter) {\n var me = this;\n\n if (hook === 'beforeInit') {\n me._init = me._createDescriptors(chart, true);\n\n me._notify(me._init, chart, 'install');\n }\n\n var descriptors = filter ? me._descriptors(chart).filter(filter) : me._descriptors(chart);\n\n var result = me._notify(descriptors, chart, hook, args);\n\n if (hook === 'destroy') {\n me._notify(descriptors, chart, 'stop');\n\n me._notify(me._init, chart, 'uninstall');\n }\n\n return result;\n }\n }, {\n key: \"_notify\",\n value: function _notify(descriptors, chart, hook, args) {\n args = args || {};\n\n var _iterator5 = _createForOfIteratorHelper(descriptors),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var descriptor = _step5.value;\n var plugin = descriptor.plugin;\n var method = plugin[hook];\n var params = [chart, args, descriptor.options];\n\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n return true;\n }\n }, {\n key: \"invalidate\",\n value: function invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n }, {\n key: \"_descriptors\",\n value: function _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n\n var descriptors = this._cache = this._createDescriptors(chart);\n\n this._notifyStateChanges(chart);\n\n return descriptors;\n }\n }, {\n key: \"_createDescriptors\",\n value: function _createDescriptors(chart, all) {\n var config = chart && chart.config;\n var options = valueOrDefault(config.options && config.options.plugins, {});\n var plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n }, {\n key: \"_notifyStateChanges\",\n value: function _notifyStateChanges(chart) {\n var previousDescriptors = this._oldCache || [];\n var descriptors = this._cache;\n\n var diff = function diff(a, b) {\n return a.filter(function (x) {\n return !b.some(function (y) {\n return x.plugin.id === y.plugin.id;\n });\n });\n };\n\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n }]);\n\n return PluginService;\n}();\n\nfunction allPlugins(config) {\n var plugins = [];\n var keys = Object.keys(registry.plugins.items);\n\n for (var i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n\n var local = config.plugins || [];\n\n for (var _i2 = 0; _i2 < local.length; _i2++) {\n var plugin = local[_i2];\n\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n }\n }\n\n return plugins;\n}\n\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n\n if (options === true) {\n return {};\n }\n\n return options;\n}\n\nfunction createDescriptors(chart, plugins, options, all) {\n var result = [];\n var context = chart.getContext();\n\n for (var i = 0; i < plugins.length; i++) {\n var plugin = plugins[i];\n var id = plugin.id;\n var opts = getOpts(options[id], all);\n\n if (opts === null) {\n continue;\n }\n\n result.push({\n plugin: plugin,\n options: pluginOpts(chart.config, plugin, opts, context)\n });\n }\n\n return result;\n}\n\nfunction pluginOpts(config, plugin, opts, context) {\n var keys = config.pluginScopeKeys(plugin);\n var scopes = config.getOptionScopes(opts, keys);\n return config.createResolver(scopes, context, [''], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n var datasetDefaults = defaults.datasets[type] || {};\n var datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\n\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n var axis = id;\n\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n\n return axis;\n}\n\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\n\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\n\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\n\nfunction mergeScaleConfig(config, options) {\n var chartDefaults = overrides[config.type] || {\n scales: {}\n };\n var configScales = options.scales || {};\n var chartIndexAxis = getIndexAxis(config.type, options);\n var firstIDs = Object.create(null);\n var scales = Object.create(null);\n Object.keys(configScales).forEach(function (id) {\n var scaleConf = configScales[id];\n var axis = determineAxis(id, scaleConf);\n var defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n var defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{\n axis: axis\n }, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(function (dataset) {\n var type = dataset.type || config.type;\n var indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n var datasetDefaults = overrides[type] || {};\n var defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(function (defaultID) {\n var axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n var id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{\n axis: axis\n }, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(function (key) {\n var scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\n\nfunction initOptions(config) {\n var options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\n\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\n\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\n\nvar keyCache = new Map();\nvar keysCached = new Set();\n\nfunction cachedKeys(cacheKey, generate) {\n var keys = keyCache.get(cacheKey);\n\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n\n return keys;\n}\n\nvar addIfFound = function addIfFound(set, obj, key) {\n var opts = resolveObjectKey(obj, key);\n\n if (opts !== undefined) {\n set.add(opts);\n }\n};\n\nvar Config = /*#__PURE__*/function () {\n function Config(config) {\n _classCallCheck(this, Config);\n\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n\n _createClass(Config, [{\n key: \"type\",\n get: function get() {\n return this._config.type;\n },\n set: function set(type) {\n this._config.type = type;\n }\n }, {\n key: \"data\",\n get: function get() {\n return this._config.data;\n },\n set: function set(data) {\n this._config.data = initData(data);\n }\n }, {\n key: \"options\",\n get: function get() {\n return this._config.options;\n },\n set: function set(options) {\n this._config.options = options;\n }\n }, {\n key: \"plugins\",\n get: function get() {\n return this._config.plugins;\n }\n }, {\n key: \"update\",\n value: function update() {\n var config = this._config;\n this.clearCache();\n initOptions(config);\n }\n }, {\n key: \"clearCache\",\n value: function clearCache() {\n this._scopeCache.clear();\n\n this._resolverCache.clear();\n }\n }, {\n key: \"datasetScopeKeys\",\n value: function datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType, function () {\n return [[\"datasets.\".concat(datasetType), '']];\n });\n }\n }, {\n key: \"datasetAnimationScopeKeys\",\n value: function datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(\"\".concat(datasetType, \".transition.\").concat(transition), function () {\n return [[\"datasets.\".concat(datasetType, \".transitions.\").concat(transition), \"transitions.\".concat(transition)], [\"datasets.\".concat(datasetType), '']];\n });\n }\n }, {\n key: \"datasetElementScopeKeys\",\n value: function datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(\"\".concat(datasetType, \"-\").concat(elementType), function () {\n return [[\"datasets.\".concat(datasetType, \".elements.\").concat(elementType), \"datasets.\".concat(datasetType), \"elements.\".concat(elementType), '']];\n });\n }\n }, {\n key: \"pluginScopeKeys\",\n value: function pluginScopeKeys(plugin) {\n var id = plugin.id;\n var type = this.type;\n return cachedKeys(\"\".concat(type, \"-plugin-\").concat(id), function () {\n return [[\"plugins.\".concat(id)].concat(_toConsumableArray(plugin.additionalOptionScopes || []))];\n });\n }\n }, {\n key: \"_cachedScopes\",\n value: function _cachedScopes(mainScope, resetCache) {\n var _scopeCache = this._scopeCache;\n\n var cache = _scopeCache.get(mainScope);\n\n if (!cache || resetCache) {\n cache = new Map();\n\n _scopeCache.set(mainScope, cache);\n }\n\n return cache;\n }\n }, {\n key: \"getOptionScopes\",\n value: function getOptionScopes(mainScope, keyLists, resetCache) {\n var options = this.options,\n type = this.type;\n\n var cache = this._cachedScopes(mainScope, resetCache);\n\n var cached = cache.get(keyLists);\n\n if (cached) {\n return cached;\n }\n\n var scopes = new Set();\n keyLists.forEach(function (keys) {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(function (key) {\n return addIfFound(scopes, mainScope, key);\n });\n }\n\n keys.forEach(function (key) {\n return addIfFound(scopes, options, key);\n });\n keys.forEach(function (key) {\n return addIfFound(scopes, overrides[type] || {}, key);\n });\n keys.forEach(function (key) {\n return addIfFound(scopes, defaults, key);\n });\n keys.forEach(function (key) {\n return addIfFound(scopes, descriptors, key);\n });\n });\n var array = Array.from(scopes);\n\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n\n return array;\n }\n }, {\n key: \"chartOptionScopes\",\n value: function chartOptionScopes() {\n var options = this.options,\n type = this.type;\n return [options, overrides[type] || {}, defaults.datasets[type] || {}, {\n type: type\n }, defaults, descriptors];\n }\n }, {\n key: \"resolveNamedOptions\",\n value: function resolveNamedOptions(scopes, names, context) {\n var prefixes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [''];\n var result = {\n $shared: true\n };\n\n var _getResolver = getResolver(this._resolverCache, scopes, prefixes),\n resolver = _getResolver.resolver,\n subPrefixes = _getResolver.subPrefixes;\n\n var options = resolver;\n\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n var subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n\n var _iterator6 = _createForOfIteratorHelper(names),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var prop = _step6.value;\n result[prop] = options[prop];\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n return result;\n }\n }, {\n key: \"createResolver\",\n value: function createResolver(scopes, context) {\n var prefixes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [''];\n var descriptorDefaults = arguments.length > 3 ? arguments[3] : undefined;\n\n var _getResolver2 = getResolver(this._resolverCache, scopes, prefixes),\n resolver = _getResolver2.resolver;\n\n return isObject(context) ? _attachContext(resolver, context, undefined, descriptorDefaults) : resolver;\n }\n }]);\n\n return Config;\n}();\n\nfunction getResolver(resolverCache, scopes, prefixes) {\n var cache = resolverCache.get(scopes);\n\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n\n var cacheKey = prefixes.join();\n var cached = cache.get(cacheKey);\n\n if (!cached) {\n var resolver = _createResolver(scopes, prefixes);\n\n cached = {\n resolver: resolver,\n subPrefixes: prefixes.filter(function (p) {\n return !p.toLowerCase().includes('hover');\n })\n };\n cache.set(cacheKey, cached);\n }\n\n return cached;\n}\n\nfunction needContext(proxy, names) {\n var _descriptors2 = _descriptors(proxy),\n isScriptable = _descriptors2.isScriptable,\n isIndexable = _descriptors2.isIndexable;\n\n var _iterator7 = _createForOfIteratorHelper(names),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var prop = _step7.value;\n\n if (isScriptable(prop) && isFunction(proxy[prop]) || isIndexable(prop) && isArray(proxy[prop])) {\n return true;\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n return false;\n}\n\nvar version = \"3.4.1\";\nvar KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\n\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\n\nfunction compare2Level(l1, l2) {\n return function (a, b) {\n return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n };\n}\n\nfunction onAnimationsComplete(context) {\n var chart = context.chart;\n var animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\n\nfunction onAnimationProgress(context) {\n var chart = context.chart;\n var animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\n\nfunction isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\nfunction getCanvas(item) {\n if (isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n\n if (item && item.canvas) {\n item = item.canvas;\n }\n\n return item;\n}\n\nvar instances = {};\n\nvar getChart = function getChart(key) {\n var canvas = getCanvas(key);\n return Object.values(instances).filter(function (c) {\n return c.canvas === canvas;\n }).pop();\n};\n\nvar Chart = /*#__PURE__*/function () {\n function Chart(item, config) {\n var _this5 = this;\n\n _classCallCheck(this, Chart);\n\n var me = this;\n this.config = config = new Config(config);\n var initialCanvas = getCanvas(item);\n var existingChart = getChart(initialCanvas);\n\n if (existingChart) {\n throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas can be reused.');\n }\n\n var options = config.createResolver(config.chartOptionScopes(), me.getContext());\n this.platform = me._initializePlatform(initialCanvas, config);\n var context = me.platform.acquireContext(initialCanvas, options.aspectRatio);\n var canvas = context && context.canvas;\n var height = canvas && canvas.height;\n var width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this.scale = undefined;\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(function () {\n return _this5.update('resize');\n }, options.resizeDelay || 0);\n instances[me.id] = me;\n\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n\n animator.listen(me, 'complete', onAnimationsComplete);\n animator.listen(me, 'progress', onAnimationProgress);\n\n me._initialize();\n\n if (me.attached) {\n me.update();\n }\n }\n\n _createClass(Chart, [{\n key: \"aspectRatio\",\n get: function get() {\n var _this$options3 = this.options,\n aspectRatio = _this$options3.aspectRatio,\n maintainAspectRatio = _this$options3.maintainAspectRatio,\n width = this.width,\n height = this.height,\n _aspectRatio = this._aspectRatio;\n\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n\n return height ? width / height : null;\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.config.data;\n },\n set: function set(data) {\n this.config.data = data;\n }\n }, {\n key: \"options\",\n get: function get() {\n return this._options;\n },\n set: function set(options) {\n this.config.options = options;\n }\n }, {\n key: \"_initialize\",\n value: function _initialize() {\n var me = this;\n me.notifyPlugins('beforeInit');\n\n if (me.options.responsive) {\n me.resize();\n } else {\n retinaScale(me, me.options.devicePixelRatio);\n }\n\n me.bindEvents();\n me.notifyPlugins('afterInit');\n return me;\n }\n }, {\n key: \"_initializePlatform\",\n value: function _initializePlatform(canvas, config) {\n if (config.platform) {\n return new config.platform();\n } else if (!isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n return new BasicPlatform();\n }\n\n return new DomPlatform();\n }\n }, {\n key: \"clear\",\n value: function clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n }, {\n key: \"stop\",\n value: function stop() {\n animator.stop(this);\n return this;\n }\n }, {\n key: \"resize\",\n value: function resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {\n width: width,\n height: height\n };\n }\n }\n }, {\n key: \"_resize\",\n value: function _resize(width, height) {\n var me = this;\n var options = me.options;\n var canvas = me.canvas;\n var aspectRatio = options.maintainAspectRatio && me.aspectRatio;\n var newSize = me.platform.getMaximumSize(canvas, width, height, aspectRatio);\n var newRatio = options.devicePixelRatio || me.platform.getDevicePixelRatio();\n me.width = newSize.width;\n me.height = newSize.height;\n me._aspectRatio = me.aspectRatio;\n\n if (!retinaScale(me, newRatio, true)) {\n return;\n }\n\n me.notifyPlugins('resize', {\n size: newSize\n });\n callback(options.onResize, [me, newSize], me);\n\n if (me.attached) {\n if (me._doResize()) {\n me.render();\n }\n }\n }\n }, {\n key: \"ensureScalesHaveIDs\",\n value: function ensureScalesHaveIDs() {\n var options = this.options;\n var scalesOptions = options.scales || {};\n each(scalesOptions, function (axisOptions, axisID) {\n axisOptions.id = axisID;\n });\n }\n }, {\n key: \"buildOrUpdateScales\",\n value: function buildOrUpdateScales() {\n var me = this;\n var options = me.options;\n var scaleOpts = options.scales;\n var scales = me.scales;\n var updated = Object.keys(scales).reduce(function (obj, id) {\n obj[id] = false;\n return obj;\n }, {});\n var items = [];\n\n if (scaleOpts) {\n items = items.concat(Object.keys(scaleOpts).map(function (id) {\n var scaleOptions = scaleOpts[id];\n var axis = determineAxis(id, scaleOptions);\n var isRadial = axis === 'r';\n var isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n }));\n }\n\n each(items, function (item) {\n var scaleOptions = item.options;\n var id = scaleOptions.id;\n var axis = determineAxis(id, scaleOptions);\n var scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n\n updated[id] = true;\n var scale = null;\n\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n var scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id: id,\n type: scaleType,\n ctx: me.ctx,\n chart: me\n });\n scales[scale.id] = scale;\n }\n\n scale.init(scaleOptions, options);\n });\n each(updated, function (hasUpdated, id) {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, function (scale) {\n layouts.configure(me, scale, scale.options);\n layouts.addBox(me, scale);\n });\n }\n }, {\n key: \"_updateMetasets\",\n value: function _updateMetasets() {\n var me = this;\n var metasets = me._metasets;\n var numData = me.data.datasets.length;\n var numMeta = metasets.length;\n metasets.sort(function (a, b) {\n return a.index - b.index;\n });\n\n if (numMeta > numData) {\n for (var i = numData; i < numMeta; ++i) {\n me._destroyDatasetMeta(i);\n }\n\n metasets.splice(numData, numMeta - numData);\n }\n\n me._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n }, {\n key: \"_removeUnreferencedMetasets\",\n value: function _removeUnreferencedMetasets() {\n var me = this;\n var metasets = me._metasets,\n datasets = me.data.datasets;\n\n if (metasets.length > datasets.length) {\n delete me._stacks;\n }\n\n metasets.forEach(function (meta, index) {\n if (datasets.filter(function (x) {\n return x === meta._dataset;\n }).length === 0) {\n me._destroyDatasetMeta(index);\n }\n });\n }\n }, {\n key: \"buildOrUpdateControllers\",\n value: function buildOrUpdateControllers() {\n var me = this;\n var newControllers = [];\n var datasets = me.data.datasets;\n var i, ilen;\n\n me._removeUnreferencedMetasets();\n\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n var dataset = datasets[i];\n var meta = me.getDatasetMeta(i);\n var type = dataset.type || me.config.type;\n\n if (meta.type && meta.type !== type) {\n me._destroyDatasetMeta(i);\n\n meta = me.getDatasetMeta(i);\n }\n\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, me.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = me.isDatasetVisible(i);\n\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n var ControllerClass = registry.getController(type);\n var _defaults$datasets$ty = defaults.datasets[type],\n datasetElementType = _defaults$datasets$ty.datasetElementType,\n dataElementType = _defaults$datasets$ty.dataElementType;\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(me, i);\n newControllers.push(meta.controller);\n }\n }\n\n me._updateMetasets();\n\n return newControllers;\n }\n }, {\n key: \"_resetElements\",\n value: function _resetElements() {\n var me = this;\n each(me.data.datasets, function (dataset, datasetIndex) {\n me.getDatasetMeta(datasetIndex).controller.reset();\n }, me);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this._resetElements();\n\n this.notifyPlugins('reset');\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var me = this;\n var config = me.config;\n config.update();\n me._options = config.createResolver(config.chartOptionScopes(), me.getContext());\n each(me.scales, function (scale) {\n layouts.removeBox(me, scale);\n });\n var animsDisabled = me._animationsDisabled = !me.options.animation;\n me.ensureScalesHaveIDs();\n me.buildOrUpdateScales();\n var existingEvents = new Set(Object.keys(me._listeners));\n var newEvents = new Set(me.options.events);\n\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== me.options.responsive) {\n me.unbindEvents();\n me.bindEvents();\n }\n\n me._plugins.invalidate();\n\n if (me.notifyPlugins('beforeUpdate', {\n mode: mode,\n cancelable: true\n }) === false) {\n return;\n }\n\n var newControllers = me.buildOrUpdateControllers();\n me.notifyPlugins('beforeElementsUpdate');\n var minPadding = 0;\n\n for (var i = 0, ilen = me.data.datasets.length; i < ilen; i++) {\n var _me$getDatasetMeta = me.getDatasetMeta(i),\n controller = _me$getDatasetMeta.controller;\n\n var reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n\n me._minPadding = minPadding;\n\n me._updateLayout(minPadding);\n\n if (!animsDisabled) {\n each(newControllers, function (controller) {\n controller.reset();\n });\n }\n\n me._updateDatasets(mode);\n\n me.notifyPlugins('afterUpdate', {\n mode: mode\n });\n\n me._layers.sort(compare2Level('z', '_idx'));\n\n if (me._lastEvent) {\n me._eventHandler(me._lastEvent, true);\n }\n\n me.render();\n }\n }, {\n key: \"_updateLayout\",\n value: function _updateLayout(minPadding) {\n var me = this;\n\n if (me.notifyPlugins('beforeLayout', {\n cancelable: true\n }) === false) {\n return;\n }\n\n layouts.update(me, me.width, me.height, minPadding);\n var area = me.chartArea;\n var noArea = area.width <= 0 || area.height <= 0;\n me._layers = [];\n each(me.boxes, function (box) {\n var _me$_layers;\n\n if (noArea && box.position === 'chartArea') {\n return;\n }\n\n if (box.configure) {\n box.configure();\n }\n\n (_me$_layers = me._layers).push.apply(_me$_layers, _toConsumableArray(box._layers()));\n }, me);\n\n me._layers.forEach(function (item, index) {\n item._idx = index;\n });\n\n me.notifyPlugins('afterLayout');\n }\n }, {\n key: \"_updateDatasets\",\n value: function _updateDatasets(mode) {\n var me = this;\n var isFunction = typeof mode === 'function';\n\n if (me.notifyPlugins('beforeDatasetsUpdate', {\n mode: mode,\n cancelable: true\n }) === false) {\n return;\n }\n\n for (var i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n me._updateDataset(i, isFunction ? mode({\n datasetIndex: i\n }) : mode);\n }\n\n me.notifyPlugins('afterDatasetsUpdate', {\n mode: mode\n });\n }\n }, {\n key: \"_updateDataset\",\n value: function _updateDataset(index, mode) {\n var me = this;\n var meta = me.getDatasetMeta(index);\n var args = {\n meta: meta,\n index: index,\n mode: mode,\n cancelable: true\n };\n\n if (me.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n\n meta.controller._update(mode);\n\n args.cancelable = false;\n me.notifyPlugins('afterDatasetUpdate', args);\n }\n }, {\n key: \"render\",\n value: function render() {\n var me = this;\n\n if (me.notifyPlugins('beforeRender', {\n cancelable: true\n }) === false) {\n return;\n }\n\n if (animator.has(me)) {\n if (me.attached && !animator.running(me)) {\n animator.start(me);\n }\n } else {\n me.draw();\n onAnimationsComplete({\n chart: me\n });\n }\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var me = this;\n var i;\n\n if (me._resizeBeforeDraw) {\n var _me$_resizeBeforeDraw = me._resizeBeforeDraw,\n width = _me$_resizeBeforeDraw.width,\n height = _me$_resizeBeforeDraw.height;\n\n me._resize(width, height);\n\n me._resizeBeforeDraw = null;\n }\n\n me.clear();\n\n if (me.width <= 0 || me.height <= 0) {\n return;\n }\n\n if (me.notifyPlugins('beforeDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n\n var layers = me._layers;\n\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(me.chartArea);\n }\n\n me._drawDatasets();\n\n for (; i < layers.length; ++i) {\n layers[i].draw(me.chartArea);\n }\n\n me.notifyPlugins('afterDraw');\n }\n }, {\n key: \"_getSortedDatasetMetas\",\n value: function _getSortedDatasetMetas(filterVisible) {\n var me = this;\n var metasets = me._sortedMetasets;\n var result = [];\n var i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n var meta = metasets[i];\n\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n\n return result;\n }\n }, {\n key: \"getSortedVisibleDatasetMetas\",\n value: function getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n }, {\n key: \"_drawDatasets\",\n value: function _drawDatasets() {\n var me = this;\n\n if (me.notifyPlugins('beforeDatasetsDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n\n var metasets = me.getSortedVisibleDatasetMetas();\n\n for (var i = metasets.length - 1; i >= 0; --i) {\n me._drawDataset(metasets[i]);\n }\n\n me.notifyPlugins('afterDatasetsDraw');\n }\n }, {\n key: \"_drawDataset\",\n value: function _drawDataset(meta) {\n var me = this;\n var ctx = me.ctx;\n var clip = meta._clip;\n var useClip = !clip.disabled;\n var area = me.chartArea;\n var args = {\n meta: meta,\n index: meta.index,\n cancelable: true\n };\n\n if (me.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? me.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? me.height : area.bottom + clip.bottom\n });\n }\n\n meta.controller.draw();\n\n if (useClip) {\n unclipArea(ctx);\n }\n\n args.cancelable = false;\n me.notifyPlugins('afterDatasetDraw', args);\n }\n }, {\n key: \"getElementsAtEventForMode\",\n value: function getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n var method = Interaction.modes[mode];\n\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n\n return [];\n }\n }, {\n key: \"getDatasetMeta\",\n value: function getDatasetMeta(datasetIndex) {\n var me = this;\n var dataset = me.data.datasets[datasetIndex];\n var metasets = me._metasets;\n var meta = metasets.filter(function (x) {\n return x && x._dataset === dataset;\n }).pop();\n\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n\n return meta;\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.$context || (this.$context = {\n chart: this,\n type: 'chart'\n });\n }\n }, {\n key: \"getVisibleDatasetCount\",\n value: function getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n }, {\n key: \"isDatasetVisible\",\n value: function isDatasetVisible(datasetIndex) {\n var dataset = this.data.datasets[datasetIndex];\n\n if (!dataset) {\n return false;\n }\n\n var meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n }, {\n key: \"setDatasetVisibility\",\n value: function setDatasetVisibility(datasetIndex, visible) {\n var meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n }, {\n key: \"toggleDataVisibility\",\n value: function toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n }, {\n key: \"getDataVisibility\",\n value: function getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n }, {\n key: \"_updateDatasetVisibility\",\n value: function _updateDatasetVisibility(datasetIndex, visible) {\n var me = this;\n var mode = visible ? 'show' : 'hide';\n var meta = me.getDatasetMeta(datasetIndex);\n\n var anims = meta.controller._resolveAnimations(undefined, mode);\n\n me.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {\n visible: visible\n });\n me.update(function (ctx) {\n return ctx.datasetIndex === datasetIndex ? mode : undefined;\n });\n }\n }, {\n key: \"hide\",\n value: function hide(datasetIndex) {\n this._updateDatasetVisibility(datasetIndex, false);\n }\n }, {\n key: \"show\",\n value: function show(datasetIndex) {\n this._updateDatasetVisibility(datasetIndex, true);\n }\n }, {\n key: \"_destroyDatasetMeta\",\n value: function _destroyDatasetMeta(datasetIndex) {\n var me = this;\n var meta = me._metasets && me._metasets[datasetIndex];\n\n if (meta && meta.controller) {\n meta.controller._destroy();\n\n delete me._metasets[datasetIndex];\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var me = this;\n var canvas = me.canvas,\n ctx = me.ctx;\n var i, ilen;\n me.stop();\n animator.remove(me);\n\n for (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n me._destroyDatasetMeta(i);\n }\n\n me.config.clearCache();\n\n if (canvas) {\n me.unbindEvents();\n clearCanvas(canvas, ctx);\n me.platform.releaseContext(ctx);\n me.canvas = null;\n me.ctx = null;\n }\n\n me.notifyPlugins('destroy');\n delete instances[me.id];\n }\n }, {\n key: \"toBase64Image\",\n value: function toBase64Image() {\n var _this$canvas;\n\n return (_this$canvas = this.canvas).toDataURL.apply(_this$canvas, arguments);\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n this.bindUserEvents();\n\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n }, {\n key: \"bindUserEvents\",\n value: function bindUserEvents() {\n var me = this;\n var listeners = me._listeners;\n var platform = me.platform;\n\n var _add = function _add(type, listener) {\n platform.addEventListener(me, type, listener);\n listeners[type] = listener;\n };\n\n var listener = function listener(e, x, y) {\n e.offsetX = x;\n e.offsetY = y;\n\n me._eventHandler(e);\n };\n\n each(me.options.events, function (type) {\n return _add(type, listener);\n });\n }\n }, {\n key: \"bindResponsiveEvents\",\n value: function bindResponsiveEvents() {\n var me = this;\n\n if (!me._responsiveListeners) {\n me._responsiveListeners = {};\n }\n\n var listeners = me._responsiveListeners;\n var platform = me.platform;\n\n var _add = function _add(type, listener) {\n platform.addEventListener(me, type, listener);\n listeners[type] = listener;\n };\n\n var _remove = function _remove(type, listener) {\n if (listeners[type]) {\n platform.removeEventListener(me, type, listener);\n delete listeners[type];\n }\n };\n\n var listener = function listener(width, height) {\n if (me.canvas) {\n me.resize(width, height);\n }\n };\n\n var detached;\n\n var attached = function attached() {\n _remove('attach', attached);\n\n me.attached = true;\n me.resize();\n\n _add('resize', listener);\n\n _add('detach', detached);\n };\n\n detached = function detached() {\n me.attached = false;\n\n _remove('resize', listener);\n\n _add('attach', attached);\n };\n\n if (platform.isAttached(me.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n var me = this;\n each(me._listeners, function (listener, type) {\n me.platform.removeEventListener(me, type, listener);\n });\n me._listeners = {};\n each(me._responsiveListeners, function (listener, type) {\n me.platform.removeEventListener(me, type, listener);\n });\n me._responsiveListeners = undefined;\n }\n }, {\n key: \"updateHoverStyle\",\n value: function updateHoverStyle(items, mode, enabled) {\n var prefix = enabled ? 'set' : 'remove';\n var meta, item, i, ilen;\n\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n var controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n }, {\n key: \"getActiveElements\",\n value: function getActiveElements() {\n return this._active || [];\n }\n }, {\n key: \"setActiveElements\",\n value: function setActiveElements(activeElements) {\n var me = this;\n var lastActive = me._active || [];\n var active = activeElements.map(function (_ref4) {\n var datasetIndex = _ref4.datasetIndex,\n index = _ref4.index;\n var meta = me.getDatasetMeta(datasetIndex);\n\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n\n return {\n datasetIndex: datasetIndex,\n element: meta.data[index],\n index: index\n };\n });\n var changed = !_elementsEqual(active, lastActive);\n\n if (changed) {\n me._active = active;\n\n me._updateHoverStyles(active, lastActive);\n }\n }\n }, {\n key: \"notifyPlugins\",\n value: function notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n }, {\n key: \"_updateHoverStyles\",\n value: function _updateHoverStyles(active, lastActive, replay) {\n var me = this;\n var hoverOptions = me.options.hover;\n\n var diff = function diff(a, b) {\n return a.filter(function (x) {\n return !b.some(function (y) {\n return x.datasetIndex === y.datasetIndex && x.index === y.index;\n });\n });\n };\n\n var deactivated = diff(lastActive, active);\n var activated = replay ? active : diff(active, lastActive);\n\n if (deactivated.length) {\n me.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n\n if (activated.length && hoverOptions.mode) {\n me.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n }, {\n key: \"_eventHandler\",\n value: function _eventHandler(e, replay) {\n var _this6 = this;\n\n var me = this;\n var args = {\n event: e,\n replay: replay,\n cancelable: true\n };\n\n var eventFilter = function eventFilter(plugin) {\n return (plugin.options.events || _this6.options.events).includes(e.type);\n };\n\n if (me.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n\n var changed = me._handleEvent(e, replay);\n\n args.cancelable = false;\n me.notifyPlugins('afterEvent', args, eventFilter);\n\n if (changed || args.changed) {\n me.render();\n }\n\n return me;\n }\n }, {\n key: \"_handleEvent\",\n value: function _handleEvent(e, replay) {\n var me = this;\n var _me$_active = me._active,\n lastActive = _me$_active === void 0 ? [] : _me$_active,\n options = me.options;\n var hoverOptions = options.hover;\n var useFinalPosition = replay;\n var active = [];\n var changed = false;\n var lastEvent = null;\n\n if (e.type !== 'mouseout') {\n active = me.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n lastEvent = e.type === 'click' ? me._lastEvent : e;\n }\n\n me._lastEvent = null;\n\n if (_isPointInArea(e, me.chartArea, me._minPadding)) {\n callback(options.onHover, [e, active, me], me);\n\n if (e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu') {\n callback(options.onClick, [e, active, me], me);\n }\n }\n\n changed = !_elementsEqual(active, lastActive);\n\n if (changed || replay) {\n me._active = active;\n\n me._updateHoverStyles(active, lastActive, replay);\n }\n\n me._lastEvent = lastEvent;\n return changed;\n }\n }]);\n\n return Chart;\n}();\n\nvar invalidatePlugins = function invalidatePlugins() {\n return each(Chart.instances, function (chart) {\n return chart._plugins.invalidate();\n });\n};\n\nvar enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable: enumerable,\n value: defaults\n },\n instances: {\n enumerable: enumerable,\n value: instances\n },\n overrides: {\n enumerable: enumerable,\n value: overrides\n },\n registry: {\n enumerable: enumerable,\n value: registry\n },\n version: {\n enumerable: enumerable,\n value: version\n },\n getChart: {\n enumerable: enumerable,\n value: getChart\n },\n register: {\n enumerable: enumerable,\n value: function value() {\n registry.add.apply(registry, arguments);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable: enumerable,\n value: function value() {\n registry.remove.apply(registry, arguments);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n var startAngle = element.startAngle,\n pixelMargin = element.pixelMargin,\n x = element.x,\n y = element.y,\n outerRadius = element.outerRadius,\n innerRadius = element.innerRadius;\n var angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n\n ctx.closePath();\n ctx.clip();\n}\n\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\n\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n var o = toRadiusCorners(arc.options.borderRadius);\n var halfThickness = (outerRadius - innerRadius) / 2;\n var innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n\n var computeOuterLimit = function computeOuterLimit(val) {\n var outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit)\n };\n}\n\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta)\n };\n}\n\nfunction pathArc(ctx, element, offset, spacing, end) {\n var x = element.x,\n y = element.y,\n start = element.startAngle,\n pixelMargin = element.pixelMargin,\n innerR = element.innerRadius;\n var outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n var innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n var spacingOffset = 0;\n var alpha = end - start;\n\n if (spacing) {\n var noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n var noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n var avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n var adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n\n var beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n var angleOffset = (alpha - beta) / 2;\n var startAngle = start + angleOffset + spacingOffset;\n var endAngle = end - angleOffset - spacingOffset;\n\n var _parseBorderRadius$ = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle),\n outerStart = _parseBorderRadius$.outerStart,\n outerEnd = _parseBorderRadius$.outerEnd,\n innerStart = _parseBorderRadius$.innerStart,\n innerEnd = _parseBorderRadius$.innerEnd;\n\n var outerStartAdjustedRadius = outerRadius - outerStart;\n var outerEndAdjustedRadius = outerRadius - outerEnd;\n var outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n var outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n var innerStartAdjustedRadius = innerRadius + innerStart;\n var innerEndAdjustedRadius = innerRadius + innerEnd;\n var innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n var innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n\n if (outerEnd > 0) {\n var pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n\n var p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n\n if (innerEnd > 0) {\n var _pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n\n ctx.arc(_pCenter.x, _pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n\n ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, startAngle + innerStart / innerRadius, true);\n\n if (innerStart > 0) {\n var _pCenter2 = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n\n ctx.arc(_pCenter2.x, _pCenter2.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n\n var p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n\n if (outerStart > 0) {\n var _pCenter3 = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n\n ctx.arc(_pCenter3.x, _pCenter3.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n\n ctx.closePath();\n}\n\nfunction drawArc(ctx, element, offset, spacing) {\n var fullCircles = element.fullCircles,\n startAngle = element.startAngle,\n circumference = element.circumference;\n var endAngle = element.endAngle;\n\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU);\n\n for (var i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.fill();\n return endAngle;\n}\n\nfunction drawFullCircleBorders(ctx, element, inner) {\n var x = element.x,\n y = element.y,\n startAngle = element.startAngle,\n pixelMargin = element.pixelMargin,\n fullCircles = element.fullCircles;\n var outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n var innerRadius = element.innerRadius + pixelMargin;\n var i;\n\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\n\nfunction drawBorder(ctx, element, offset, spacing, endAngle) {\n var options = element.options;\n var inner = options.borderAlign === 'inner';\n\n if (!options.borderWidth) {\n return;\n }\n\n if (inner) {\n ctx.lineWidth = options.borderWidth * 2;\n ctx.lineJoin = 'round';\n } else {\n ctx.lineWidth = options.borderWidth;\n ctx.lineJoin = 'bevel';\n }\n\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.stroke();\n}\n\nvar ArcElement = /*#__PURE__*/function (_Element2) {\n _inherits(ArcElement, _Element2);\n\n var _super12 = _createSuper(ArcElement);\n\n function ArcElement(cfg) {\n var _this7;\n\n _classCallCheck(this, ArcElement);\n\n _this7 = _super12.call(this);\n _this7.options = undefined;\n _this7.circumference = undefined;\n _this7.startAngle = undefined;\n _this7.endAngle = undefined;\n _this7.innerRadius = undefined;\n _this7.outerRadius = undefined;\n _this7.pixelMargin = 0;\n _this7.fullCircles = 0;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this7), cfg);\n }\n\n return _this7;\n }\n\n _createClass(ArcElement, [{\n key: \"inRange\",\n value: function inRange(chartX, chartY, useFinalPosition) {\n var point = this.getProps(['x', 'y'], useFinalPosition);\n\n var _getAngleFromPoint = getAngleFromPoint(point, {\n x: chartX,\n y: chartY\n }),\n angle = _getAngleFromPoint.angle,\n distance = _getAngleFromPoint.distance;\n\n var _this$getProps2 = this.getProps(['startAngle', 'endAngle', 'innerRadius', 'outerRadius', 'circumference'], useFinalPosition),\n startAngle = _this$getProps2.startAngle,\n endAngle = _this$getProps2.endAngle,\n innerRadius = _this$getProps2.innerRadius,\n outerRadius = _this$getProps2.outerRadius,\n circumference = _this$getProps2.circumference;\n\n var rAdjust = this.options.spacing / 2;\n\n var betweenAngles = circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n\n var withinRadius = distance >= innerRadius + rAdjust && distance <= outerRadius + rAdjust;\n return betweenAngles && withinRadius;\n }\n }, {\n key: \"getCenterPoint\",\n value: function getCenterPoint(useFinalPosition) {\n var _this$getProps3 = this.getProps(['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius', 'circumference'], useFinalPosition),\n x = _this$getProps3.x,\n y = _this$getProps3.y,\n startAngle = _this$getProps3.startAngle,\n endAngle = _this$getProps3.endAngle,\n innerRadius = _this$getProps3.innerRadius,\n outerRadius = _this$getProps3.outerRadius;\n\n var _this$options4 = this.options,\n offset = _this$options4.offset,\n spacing = _this$options4.spacing;\n var halfAngle = (startAngle + endAngle) / 2;\n var halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n }, {\n key: \"tooltipPosition\",\n value: function tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n }, {\n key: \"draw\",\n value: function draw(ctx) {\n var me = this;\n var options = me.options,\n circumference = me.circumference;\n var offset = (options.offset || 0) / 2;\n var spacing = (options.spacing || 0) / 2;\n me.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n me.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n\n if (circumference === 0 || me.innerRadius < 0 || me.outerRadius < 0) {\n return;\n }\n\n ctx.save();\n var radiusOffset = 0;\n\n if (offset) {\n radiusOffset = offset / 2;\n var halfAngle = (me.startAngle + me.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n\n if (me.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n var endAngle = drawArc(ctx, me, radiusOffset, spacing);\n drawBorder(ctx, me, radiusOffset, spacing, endAngle);\n ctx.restore();\n }\n }]);\n\n return ArcElement;\n}(Element);\n\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options) {\n var style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : options;\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\n\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n\n return lineTo;\n}\n\nfunction pathVars(points, segment) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var count = points.length;\n var _params$start = params.start,\n paramsStart = _params$start === void 0 ? 0 : _params$start,\n _params$end = params.end,\n paramsEnd = _params$end === void 0 ? count - 1 : _params$end;\n var segmentStart = segment.start,\n segmentEnd = segment.end;\n var start = Math.max(paramsStart, segmentStart);\n var end = Math.min(paramsEnd, segmentEnd);\n var outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count: count,\n start: start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n\nfunction pathSegment(ctx, line, segment, params) {\n var points = line.points,\n options = line.options;\n\n var _pathVars = pathVars(points, segment, params),\n count = _pathVars.count,\n start = _pathVars.start,\n loop = _pathVars.loop,\n ilen = _pathVars.ilen;\n\n var lineMethod = getLineMethod(options);\n\n var _ref5 = params || {},\n _ref5$move = _ref5.move,\n move = _ref5$move === void 0 ? true : _ref5$move,\n reverse = _ref5.reverse;\n\n var i, point, prev;\n\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n\n prev = point;\n }\n\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n\n return !!loop;\n}\n\nfunction fastPathSegment(ctx, line, segment, params) {\n var points = line.points;\n\n var _pathVars2 = pathVars(points, segment, params),\n count = _pathVars2.count,\n start = _pathVars2.start,\n ilen = _pathVars2.ilen;\n\n var _ref6 = params || {},\n _ref6$move = _ref6.move,\n move = _ref6$move === void 0 ? true : _ref6$move,\n reverse = _ref6.reverse;\n\n var avgX = 0;\n var countX = 0;\n var i, point, prevX, minY, maxY, lastY;\n\n var pointIndex = function pointIndex(index) {\n return (start + (reverse ? ilen - index : index)) % count;\n };\n\n var drawX = function drawX() {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n\n if (point.skip) {\n continue;\n }\n\n var x = point.x;\n var y = point.y;\n var truncX = x | 0;\n\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n\n lastY = y;\n }\n\n drawX();\n}\n\nfunction _getSegmentMethod(line) {\n var opts = line.options;\n var borderDash = opts.borderDash && opts.borderDash.length;\n var useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n\n return _pointInLine;\n}\n\nfunction strokePathWithCache(ctx, line, start, count) {\n var path = line._path;\n\n if (!path) {\n path = line._path = new Path2D();\n\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\n\nfunction strokePathDirect(ctx, line, start, count) {\n var segments = line.segments,\n options = line.options;\n\n var segmentMethod = _getSegmentMethod(line);\n\n var _iterator8 = _createForOfIteratorHelper(segments),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var segment = _step8.value;\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n\n if (segmentMethod(ctx, line, segment, {\n start: start,\n end: start + count - 1\n })) {\n ctx.closePath();\n }\n\n ctx.stroke();\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n}\n\nvar usePath2D = typeof Path2D === 'function';\n\nfunction _draw(ctx, line, start, count) {\n if (usePath2D && line.segments.length === 1) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\n\nvar LineElement = /*#__PURE__*/function (_Element3) {\n _inherits(LineElement, _Element3);\n\n var _super13 = _createSuper(LineElement);\n\n function LineElement(cfg) {\n var _this8;\n\n _classCallCheck(this, LineElement);\n\n _this8 = _super13.call(this);\n _this8.animated = true;\n _this8.options = undefined;\n _this8._loop = undefined;\n _this8._fullLoop = undefined;\n _this8._path = undefined;\n _this8._points = undefined;\n _this8._segments = undefined;\n _this8._decimated = false;\n _this8._pointsUpdated = false;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this8), cfg);\n }\n\n return _this8;\n }\n\n _createClass(LineElement, [{\n key: \"updateControlPoints\",\n value: function updateControlPoints(chartArea, indexAxis) {\n var me = this;\n var options = me.options;\n\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !me._pointsUpdated) {\n var loop = options.spanGaps ? me._loop : me._fullLoop;\n\n _updateBezierControlPoints(me._points, options, chartArea, loop, indexAxis);\n\n me._pointsUpdated = true;\n }\n }\n }, {\n key: \"points\",\n get: function get() {\n return this._points;\n },\n set: function set(points) {\n var me = this;\n me._points = points;\n delete me._segments;\n delete me._path;\n me._pointsUpdated = false;\n }\n }, {\n key: \"segments\",\n get: function get() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n }, {\n key: \"first\",\n value: function first() {\n var segments = this.segments;\n var points = this.points;\n return segments.length && points[segments[0].start];\n }\n }, {\n key: \"last\",\n value: function last() {\n var segments = this.segments;\n var points = this.points;\n var count = segments.length;\n return count && points[segments[count - 1].end];\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(point, property) {\n var me = this;\n var options = me.options;\n var value = point[property];\n var points = me.points;\n\n var segments = _boundSegments(me, {\n property: property,\n start: value,\n end: value\n });\n\n if (!segments.length) {\n return;\n }\n\n var result = [];\n\n var _interpolate = _getInterpolationMethod(options);\n\n var i, ilen;\n\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n var _segments$i = segments[i],\n start = _segments$i.start,\n end = _segments$i.end;\n var p1 = points[start];\n var p2 = points[end];\n\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n\n var t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n\n var interpolated = _interpolate(p1, p2, t, options.stepped);\n\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n\n return result.length === 1 ? result[0] : result;\n }\n }, {\n key: \"pathSegment\",\n value: function pathSegment(ctx, segment, params) {\n var segmentMethod = _getSegmentMethod(this);\n\n return segmentMethod(ctx, this, segment, params);\n }\n }, {\n key: \"path\",\n value: function path(ctx, start, count) {\n var me = this;\n var segments = me.segments;\n\n var segmentMethod = _getSegmentMethod(me);\n\n var loop = me._loop;\n start = start || 0;\n count = count || me.points.length - start;\n\n var _iterator9 = _createForOfIteratorHelper(segments),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var segment = _step9.value;\n loop &= segmentMethod(ctx, me, segment, {\n start: start,\n end: start + count - 1\n });\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n return !!loop;\n }\n }, {\n key: \"draw\",\n value: function draw(ctx, chartArea, start, count) {\n var me = this;\n var options = me.options || {};\n var points = me.points || [];\n\n if (!points.length || !options.borderWidth) {\n return;\n }\n\n ctx.save();\n\n _draw(ctx, me, start, count);\n\n ctx.restore();\n\n if (me.animated) {\n me._pointsUpdated = false;\n me._path = undefined;\n }\n }\n }]);\n\n return LineElement;\n}(Element);\n\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: function _indexable(name) {\n return name !== 'borderDash' && name !== 'fill';\n }\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n var options = el.options;\n\n var _el$getProps = el.getProps([axis], useFinalPosition),\n value = _el$getProps[axis];\n\n return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\n\nvar PointElement = /*#__PURE__*/function (_Element4) {\n _inherits(PointElement, _Element4);\n\n var _super14 = _createSuper(PointElement);\n\n function PointElement(cfg) {\n var _this9;\n\n _classCallCheck(this, PointElement);\n\n _this9 = _super14.call(this);\n _this9.options = undefined;\n _this9.parsed = undefined;\n _this9.skip = undefined;\n _this9.stop = undefined;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this9), cfg);\n }\n\n return _this9;\n }\n\n _createClass(PointElement, [{\n key: \"inRange\",\n value: function inRange(mouseX, mouseY, useFinalPosition) {\n var options = this.options;\n\n var _this$getProps4 = this.getProps(['x', 'y'], useFinalPosition),\n x = _this$getProps4.x,\n y = _this$getProps4.y;\n\n return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n }\n }, {\n key: \"inXRange\",\n value: function inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n }, {\n key: \"inYRange\",\n value: function inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n }, {\n key: \"getCenterPoint\",\n value: function getCenterPoint(useFinalPosition) {\n var _this$getProps5 = this.getProps(['x', 'y'], useFinalPosition),\n x = _this$getProps5.x,\n y = _this$getProps5.y;\n\n return {\n x: x,\n y: y\n };\n }\n }, {\n key: \"size\",\n value: function size(options) {\n options = options || this.options || {};\n var radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n var borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n }, {\n key: \"draw\",\n value: function draw(ctx) {\n var me = this;\n var options = me.options;\n\n if (me.skip || options.radius < 0.1) {\n return;\n }\n\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, me.x, me.y);\n }\n }, {\n key: \"getRange\",\n value: function getRange() {\n var options = this.options || {};\n return options.radius + options.hitRadius;\n }\n }]);\n\n return PointElement;\n}(Element);\n\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n var _bar$getProps = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition),\n x = _bar$getProps.x,\n y = _bar$getProps.y,\n base = _bar$getProps.base,\n width = _bar$getProps.width,\n height = _bar$getProps.height;\n\n var left, right, top, bottom, half;\n\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n\n return {\n left: left,\n top: top,\n right: right,\n bottom: bottom\n };\n}\n\nfunction parseBorderSkipped(bar) {\n var edge = bar.options.borderSkipped;\n var res = {};\n\n if (!edge) {\n return res;\n }\n\n edge = bar.horizontal ? parseEdge(edge, 'left', 'right', bar.base > bar.x) : parseEdge(edge, 'bottom', 'top', bar.base < bar.y);\n res[edge] = true;\n return res;\n}\n\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n\n return edge;\n}\n\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\n\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : Math.max(Math.min(value, max), min);\n}\n\nfunction parseBorderWidth(bar, maxW, maxH) {\n var value = bar.options.borderWidth;\n var skip = parseBorderSkipped(bar);\n var o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\n\nfunction parseBorderRadius(bar, maxW, maxH) {\n var _bar$getProps2 = bar.getProps(['enableBorderRadius']),\n enableBorderRadius = _bar$getProps2.enableBorderRadius;\n\n var value = bar.options.borderRadius;\n var o = toTRBLCorners(value);\n var maxR = Math.min(maxW, maxH);\n var skip = parseBorderSkipped(bar);\n var enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\n\nfunction boundingRects(bar) {\n var bounds = getBarBounds(bar);\n var width = bounds.right - bounds.left;\n var height = bounds.bottom - bounds.top;\n var border = parseBorderWidth(bar, width / 2, height / 2);\n var radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius: radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r))\n }\n }\n };\n}\n\nfunction _inRange(bar, x, y, useFinalPosition) {\n var skipX = x === null;\n var skipY = y === null;\n var skipBoth = skipX && skipY;\n var bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds && (skipX || x >= bounds.left && x <= bounds.right) && (skipY || y >= bounds.top && y <= bounds.bottom);\n}\n\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\n\nvar BarElement = /*#__PURE__*/function (_Element5) {\n _inherits(BarElement, _Element5);\n\n var _super15 = _createSuper(BarElement);\n\n function BarElement(cfg) {\n var _this10;\n\n _classCallCheck(this, BarElement);\n\n _this10 = _super15.call(this);\n _this10.options = undefined;\n _this10.horizontal = undefined;\n _this10.base = undefined;\n _this10.width = undefined;\n _this10.height = undefined;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this10), cfg);\n }\n\n return _this10;\n }\n\n _createClass(BarElement, [{\n key: \"draw\",\n value: function draw(ctx) {\n var options = this.options;\n\n var _boundingRects = boundingRects(this),\n inner = _boundingRects.inner,\n outer = _boundingRects.outer;\n\n var addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, outer);\n ctx.clip();\n addRectPath(ctx, inner);\n ctx.fillStyle = options.borderColor;\n ctx.fill('evenodd');\n }\n\n ctx.beginPath();\n addRectPath(ctx, inner);\n ctx.fillStyle = options.backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }, {\n key: \"inRange\",\n value: function inRange(mouseX, mouseY, useFinalPosition) {\n return _inRange(this, mouseX, mouseY, useFinalPosition);\n }\n }, {\n key: \"inXRange\",\n value: function inXRange(mouseX, useFinalPosition) {\n return _inRange(this, mouseX, null, useFinalPosition);\n }\n }, {\n key: \"inYRange\",\n value: function inYRange(mouseY, useFinalPosition) {\n return _inRange(this, null, mouseY, useFinalPosition);\n }\n }, {\n key: \"getCenterPoint\",\n value: function getCenterPoint(useFinalPosition) {\n var _this$getProps6 = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition),\n x = _this$getProps6.x,\n y = _this$getProps6.y,\n base = _this$getProps6.base,\n horizontal = _this$getProps6.horizontal;\n\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n }, {\n key: \"getRange\",\n value: function getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n }]);\n\n return BarElement;\n}(Element);\n\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n enableBorderRadius: true,\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nvar elements = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ArcElement: ArcElement,\n LineElement: LineElement,\n PointElement: PointElement,\n BarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n var samples = options.samples || availableWidth;\n\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n\n var decimated = [];\n var bucketWidth = (count - 2) / (samples - 2);\n var sampledIndex = 0;\n var endIndex = start + count - 1;\n var a = start;\n var i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n\n for (i = 0; i < samples - 2; i++) {\n var avgX = 0;\n var avgY = 0;\n var j = void 0;\n var avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n var avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n var avgRangeLength = avgRangeEnd - avgRangeStart;\n\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n var rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n var rangeTo = Math.floor((i + 1) * bucketWidth) + 1 + start;\n var _data$a = data[a],\n pointAx = _data$a.x,\n pointAy = _data$a.y;\n maxArea = area = -1;\n\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\n\nfunction minMaxDecimation(data, start, count, availableWidth) {\n var avgX = 0;\n var countX = 0;\n var i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n var decimated = [];\n var endIndex = start + count - 1;\n var xMin = data[start].x;\n var xMax = data[endIndex].x;\n var dx = xMax - xMin;\n\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n var truncX = x | 0;\n\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n var lastIndex = i - 1;\n\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n var intermediateIndex1 = Math.min(minIndex, maxIndex);\n var intermediateIndex2 = Math.max(minIndex, maxIndex);\n\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push(_objectSpread(_objectSpread({}, data[intermediateIndex1]), {}, {\n x: avgX\n }));\n }\n\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push(_objectSpread(_objectSpread({}, data[intermediateIndex2]), {}, {\n x: avgX\n }));\n }\n }\n\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n\n return decimated;\n}\n\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n var data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {\n value: data\n });\n }\n}\n\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach(function (dataset) {\n cleanDecimatedDataset(dataset);\n });\n}\n\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n var pointCount = points.length;\n var start = 0;\n var count;\n var iScale = meta.iScale;\n\n var _iScale$getUserBounds2 = iScale.getUserBounds(),\n min = _iScale$getUserBounds2.min,\n max = _iScale$getUserBounds2.max,\n minDefined = _iScale$getUserBounds2.minDefined,\n maxDefined = _iScale$getUserBounds2.maxDefined;\n\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n\n return {\n start: start,\n count: count\n };\n}\n\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false\n },\n beforeElementsUpdate: function beforeElementsUpdate(chart, args, options) {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n\n var availableWidth = chart.width;\n chart.data.datasets.forEach(function (dataset, datasetIndex) {\n var _data = dataset._data,\n indexAxis = dataset.indexAxis;\n var meta = chart.getDatasetMeta(datasetIndex);\n var data = _data || dataset.data;\n\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n\n if (meta.type !== 'line') {\n return;\n }\n\n var xAxis = chart.scales[meta.xAxisID];\n\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n\n if (chart.options.parsing) {\n return;\n }\n\n var _getStartAndCountOfVi2 = getStartAndCountOfVisiblePointsSimplified(meta, data),\n start = _getStartAndCountOfVi2.start,\n count = _getStartAndCountOfVi2.count;\n\n if (count <= 4 * availableWidth) {\n cleanDecimatedDataset(dataset);\n return;\n }\n\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function get() {\n return this._decimated;\n },\n set: function set(d) {\n this._data = d;\n }\n });\n }\n\n var decimated;\n\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n\n default:\n throw new Error(\"Unsupported decimation algorithm '\".concat(options.algorithm, \"'\"));\n }\n\n dataset._decimated = decimated;\n });\n },\n destroy: function destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction getLineByIndex(chart, index) {\n var meta = chart.getDatasetMeta(index);\n var visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\n\nfunction parseFillOption(line) {\n var options = line.options;\n var fillOption = options.fill;\n var fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n\n if (fill === false || fill === null) {\n return false;\n }\n\n if (fill === true) {\n return 'origin';\n }\n\n return fill;\n}\n\nfunction decodeFill(line, index, count) {\n var fill = parseFillOption(line);\n\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n\n var target = parseFloat(fill);\n\n if (isNumberFinite(target) && Math.floor(target) === target) {\n if (fill[0] === '-' || fill[0] === '+') {\n target = index + target;\n }\n\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n\n return target;\n }\n\n return ['origin', 'start', 'end', 'stack'].indexOf(fill) >= 0 && fill;\n}\n\nfunction computeLinearBoundary(source) {\n var _source$scale = source.scale,\n scale = _source$scale === void 0 ? {} : _source$scale,\n fill = source.fill;\n var target = null;\n var horizontal;\n\n if (fill === 'start') {\n target = scale.bottom;\n } else if (fill === 'end') {\n target = scale.top;\n } else if (isObject(fill)) {\n target = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n target = scale.getBasePixel();\n }\n\n if (isNumberFinite(target)) {\n horizontal = scale.isHorizontal();\n return {\n x: horizontal ? target : null,\n y: horizontal ? null : target\n };\n }\n\n return null;\n}\n\nvar simpleArc = /*#__PURE__*/function () {\n function simpleArc(opts) {\n _classCallCheck(this, simpleArc);\n\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n\n _createClass(simpleArc, [{\n key: \"pathSegment\",\n value: function pathSegment(ctx, bounds, opts) {\n var x = this.x,\n y = this.y,\n radius = this.radius;\n bounds = bounds || {\n start: 0,\n end: TAU\n };\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(point) {\n var x = this.x,\n y = this.y,\n radius = this.radius;\n var angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle: angle\n };\n }\n }]);\n\n return simpleArc;\n}();\n\nfunction computeCircularBoundary(source) {\n var scale = source.scale,\n fill = source.fill;\n var options = scale.options;\n var length = scale.getLabels().length;\n var target = [];\n var start = options.reverse ? scale.max : scale.min;\n var end = options.reverse ? scale.min : scale.max;\n var i, center, value;\n\n if (fill === 'start') {\n value = start;\n } else if (fill === 'end') {\n value = end;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n\n if (options.grid.circular) {\n center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n\n for (i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n\n return target;\n}\n\nfunction computeBoundary(source) {\n var scale = source.scale || {};\n\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n\n return computeLinearBoundary(source);\n}\n\nfunction findSegmentEnd(start, end, points) {\n for (; end > start; end--) {\n var point = points[end];\n\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n\n return end;\n}\n\nfunction pointsFromSegments(boundary, line) {\n var _ref7 = boundary || {},\n _ref7$x = _ref7.x,\n x = _ref7$x === void 0 ? null : _ref7$x,\n _ref7$y = _ref7.y,\n y = _ref7$y === void 0 ? null : _ref7$y;\n\n var linePoints = line.points;\n var points = [];\n line.segments.forEach(function (_ref8) {\n var start = _ref8.start,\n end = _ref8.end;\n end = findSegmentEnd(start, end, linePoints);\n var first = linePoints[start];\n var last = linePoints[end];\n\n if (y !== null) {\n points.push({\n x: first.x,\n y: y\n });\n points.push({\n x: last.x,\n y: y\n });\n } else if (x !== null) {\n points.push({\n x: x,\n y: first.y\n });\n points.push({\n x: x,\n y: last.y\n });\n }\n });\n return points;\n}\n\nfunction buildStackLine(source) {\n var chart = source.chart,\n scale = source.scale,\n index = source.index,\n line = source.line;\n var points = [];\n var segments = line.segments;\n var sourcePoints = line.points;\n var linesBelow = getLinesBelow(chart, index);\n linesBelow.push(createBoundaryLine({\n x: null,\n y: scale.bottom\n }, line));\n\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n\n for (var j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n\n return new LineElement({\n points: points,\n options: {}\n });\n}\n\nvar isLineAndNotInHideAnimation = function isLineAndNotInHideAnimation(meta) {\n return meta.type === 'line' && !meta.hidden;\n};\n\nfunction getLinesBelow(chart, index) {\n var below = [];\n var metas = chart.getSortedVisibleDatasetMetas();\n\n for (var i = 0; i < metas.length; i++) {\n var meta = metas[i];\n\n if (meta.index === index) {\n break;\n }\n\n if (isLineAndNotInHideAnimation(meta)) {\n below.unshift(meta.dataset);\n }\n }\n\n return below;\n}\n\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n var postponed = [];\n\n for (var j = 0; j < linesBelow.length; j++) {\n var line = linesBelow[j];\n\n var _findPoint = findPoint(line, sourcePoint, 'x'),\n first = _findPoint.first,\n last = _findPoint.last,\n point = _findPoint.point;\n\n if (!point || first && last) {\n continue;\n }\n\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n\n if (!last) {\n break;\n }\n }\n }\n\n points.push.apply(points, postponed);\n}\n\nfunction findPoint(line, sourcePoint, property) {\n var point = line.interpolate(sourcePoint, property);\n\n if (!point) {\n return {};\n }\n\n var pointValue = point[property];\n var segments = line.segments;\n var linePoints = line.points;\n var first = false;\n var last = false;\n\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n var firstValue = linePoints[segment.start][property];\n var lastValue = linePoints[segment.end][property];\n\n if (pointValue >= firstValue && pointValue <= lastValue) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n\n return {\n first: first,\n last: last,\n point: point\n };\n}\n\nfunction getTarget(source) {\n var chart = source.chart,\n fill = source.fill,\n line = source.line;\n\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n\n if (fill === 'stack') {\n return buildStackLine(source);\n }\n\n var boundary = computeBoundary(source);\n\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n\n return createBoundaryLine(boundary, line);\n}\n\nfunction createBoundaryLine(boundary, line) {\n var points = [];\n var _loop = false;\n\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = pointsFromSegments(boundary, line);\n }\n\n return points.length ? new LineElement({\n points: points,\n options: {\n tension: 0\n },\n _loop: _loop,\n _fullLoop: _loop\n }) : null;\n}\n\nfunction resolveTarget(sources, index, propagate) {\n var source = sources[index];\n var fill = source.fill;\n var visited = [index];\n var target;\n\n if (!propagate) {\n return fill;\n }\n\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n\n target = sources[fill];\n\n if (!target) {\n return false;\n }\n\n if (target.visible) {\n return fill;\n }\n\n visited.push(fill);\n fill = target.fill;\n }\n\n return false;\n}\n\nfunction _clip(ctx, target, clipY) {\n ctx.beginPath();\n target.path(ctx);\n ctx.lineTo(target.last().x, clipY);\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\n\nfunction getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n\n var start = first[property];\n var end = last[property];\n\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n\n return {\n property: property,\n start: start,\n end: end\n };\n}\n\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _segments(line, target, property) {\n var segments = line.segments;\n var points = line.points;\n var tpoints = target.points;\n var parts = [];\n\n var _iterator10 = _createForOfIteratorHelper(segments),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var segment = _step10.value;\n var start = segment.start,\n end = segment.end;\n end = findSegmentEnd(start, end, points);\n var bounds = getBounds(property, points[start], points[end], segment.loop);\n\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n\n var targetSegments = _boundSegments(target, bounds);\n\n var _iterator11 = _createForOfIteratorHelper(targetSegments),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var tgt = _step11.value;\n var subBounds = getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n\n var fillSources = _boundSegment(segment, points, subBounds);\n\n var _iterator12 = _createForOfIteratorHelper(fillSources),\n _step12;\n\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var fillSource = _step12.value;\n parts.push({\n source: fillSource,\n target: tgt,\n start: _defineProperty({}, property, _getEdge(bounds, subBounds, 'start', Math.max)),\n end: _defineProperty({}, property, _getEdge(bounds, subBounds, 'end', Math.min))\n });\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n\n return parts;\n}\n\nfunction clipBounds(ctx, scale, bounds) {\n var _scale$chart$chartAre = scale.chart.chartArea,\n top = _scale$chart$chartAre.top,\n bottom = _scale$chart$chartAre.bottom;\n\n var _ref9 = bounds || {},\n property = _ref9.property,\n start = _ref9.start,\n end = _ref9.end;\n\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\n\nfunction interpolatedLineTo(ctx, target, point, property) {\n var interpolatedPoint = target.interpolate(point, property);\n\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nfunction _fill(ctx, cfg) {\n var line = cfg.line,\n target = cfg.target,\n property = cfg.property,\n color = cfg.color,\n scale = cfg.scale;\n\n var segments = _segments(line, target, property);\n\n var _iterator13 = _createForOfIteratorHelper(segments),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var _ref11 = _step13.value;\n var src = _ref11.source;\n var tgt = _ref11.target;\n var start = _ref11.start;\n var end = _ref11.end;\n var _src$style = src.style;\n _src$style = _src$style === void 0 ? {} : _src$style;\n var _src$style$background = _src$style.backgroundColor,\n backgroundColor = _src$style$background === void 0 ? color : _src$style$background;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, getBounds(property, start, end));\n ctx.beginPath();\n var lineLoop = !!line.pathSegment(ctx, src);\n\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n\n var targetLoop = !!target.pathSegment(ctx, tgt, {\n move: lineLoop,\n reverse: true\n });\n var loop = lineLoop && targetLoop;\n\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n}\n\nfunction doFill(ctx, cfg) {\n var line = cfg.line,\n target = cfg.target,\n above = cfg.above,\n below = cfg.below,\n area = cfg.area,\n scale = cfg.scale;\n var property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n\n if (property === 'x' && below !== above) {\n _clip(ctx, target, area.top);\n\n _fill(ctx, {\n line: line,\n target: target,\n color: above,\n scale: scale,\n property: property\n });\n\n ctx.restore();\n ctx.save();\n\n _clip(ctx, target, area.bottom);\n }\n\n _fill(ctx, {\n line: line,\n target: target,\n color: below,\n scale: scale,\n property: property\n });\n\n ctx.restore();\n}\n\nfunction drawfill(ctx, source, area) {\n var target = getTarget(source);\n var line = source.line,\n scale = source.scale,\n axis = source.axis;\n var lineOpts = line.options;\n var fillOption = lineOpts.fill;\n var color = lineOpts.backgroundColor;\n\n var _ref12 = fillOption || {},\n _ref12$above = _ref12.above,\n above = _ref12$above === void 0 ? color : _ref12$above,\n _ref12$below = _ref12.below,\n below = _ref12$below === void 0 ? color : _ref12$below;\n\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {\n line: line,\n target: target,\n above: above,\n below: below,\n area: area,\n scale: scale,\n axis: axis\n });\n unclipArea(ctx);\n }\n}\n\nvar plugin_filler = {\n id: 'filler',\n afterDatasetsUpdate: function afterDatasetsUpdate(chart, _args, options) {\n var count = (chart.data.datasets || []).length;\n var sources = [];\n var meta, i, line, source;\n\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: decodeFill(line, i, count),\n chart: chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line: line\n };\n }\n\n meta.$filler = source;\n sources.push(source);\n }\n\n for (i = 0; i < count; ++i) {\n source = sources[i];\n\n if (!source || source.fill === false) {\n continue;\n }\n\n source.fill = resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw: function beforeDraw(chart, _args, options) {\n var draw = options.drawTime === 'beforeDraw';\n var metasets = chart.getSortedVisibleDatasetMetas();\n var area = chart.chartArea;\n\n for (var i = metasets.length - 1; i >= 0; --i) {\n var source = metasets[i].$filler;\n\n if (!source) {\n continue;\n }\n\n source.line.updateControlPoints(area, source.axis);\n\n if (draw) {\n drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw: function beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n\n var metasets = chart.getSortedVisibleDatasetMetas();\n\n for (var i = metasets.length - 1; i >= 0; --i) {\n var source = metasets[i].$filler;\n\n if (source) {\n drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw: function beforeDatasetDraw(chart, args, options) {\n var source = args.meta.$filler;\n\n if (!source || source.fill === false || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n\n drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nvar getBoxSize = function getBoxSize(labelOpts, fontSize) {\n var _labelOpts$boxHeight = labelOpts.boxHeight,\n boxHeight = _labelOpts$boxHeight === void 0 ? fontSize : _labelOpts$boxHeight,\n _labelOpts$boxWidth = labelOpts.boxWidth,\n boxWidth = _labelOpts$boxWidth === void 0 ? fontSize : _labelOpts$boxWidth;\n\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = Math.min(boxWidth, fontSize);\n }\n\n return {\n boxWidth: boxWidth,\n boxHeight: boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\n\nvar itemsEqual = function itemsEqual(a, b) {\n return a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\n};\n\nvar Legend = /*#__PURE__*/function (_Element6) {\n _inherits(Legend, _Element6);\n\n var _super16 = _createSuper(Legend);\n\n function Legend(config) {\n var _this11;\n\n _classCallCheck(this, Legend);\n\n _this11 = _super16.call(this);\n _this11._added = false;\n _this11.legendHitBoxes = [];\n _this11._hoveredItem = null;\n _this11.doughnutMode = false;\n _this11.chart = config.chart;\n _this11.options = config.options;\n _this11.ctx = config.ctx;\n _this11.legendItems = undefined;\n _this11.columnSizes = undefined;\n _this11.lineWidths = undefined;\n _this11.maxHeight = undefined;\n _this11.maxWidth = undefined;\n _this11.top = undefined;\n _this11.bottom = undefined;\n _this11.left = undefined;\n _this11.right = undefined;\n _this11.height = undefined;\n _this11.width = undefined;\n _this11._margins = undefined;\n _this11.position = undefined;\n _this11.weight = undefined;\n _this11.fullSize = undefined;\n return _this11;\n }\n\n _createClass(Legend, [{\n key: \"update\",\n value: function update(maxWidth, maxHeight, margins) {\n var me = this;\n me.maxWidth = maxWidth;\n me.maxHeight = maxHeight;\n me._margins = margins;\n me.setDimensions();\n me.buildLabels();\n me.fit();\n }\n }, {\n key: \"setDimensions\",\n value: function setDimensions() {\n var me = this;\n\n if (me.isHorizontal()) {\n me.width = me.maxWidth;\n me.left = me._margins.left;\n me.right = me.width;\n } else {\n me.height = me.maxHeight;\n me.top = me._margins.top;\n me.bottom = me.height;\n }\n }\n }, {\n key: \"buildLabels\",\n value: function buildLabels() {\n var me = this;\n var labelOpts = me.options.labels || {};\n var legendItems = callback(labelOpts.generateLabels, [me.chart], me) || [];\n\n if (labelOpts.filter) {\n legendItems = legendItems.filter(function (item) {\n return labelOpts.filter(item, me.chart.data);\n });\n }\n\n if (labelOpts.sort) {\n legendItems = legendItems.sort(function (a, b) {\n return labelOpts.sort(a, b, me.chart.data);\n });\n }\n\n if (me.options.reverse) {\n legendItems.reverse();\n }\n\n me.legendItems = legendItems;\n }\n }, {\n key: \"fit\",\n value: function fit() {\n var me = this;\n var options = me.options,\n ctx = me.ctx;\n\n if (!options.display) {\n me.width = me.height = 0;\n return;\n }\n\n var labelOpts = options.labels;\n var labelFont = toFont(labelOpts.font);\n var fontSize = labelFont.size;\n\n var titleHeight = me._computeTitleHeight();\n\n var _getBoxSize = getBoxSize(labelOpts, fontSize),\n boxWidth = _getBoxSize.boxWidth,\n itemHeight = _getBoxSize.itemHeight;\n\n var width, height;\n ctx.font = labelFont.string;\n\n if (me.isHorizontal()) {\n width = me.maxWidth;\n height = me._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = me.maxHeight;\n width = me._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n\n me.width = Math.min(width, options.maxWidth || me.maxWidth);\n me.height = Math.min(height, options.maxHeight || me.maxHeight);\n }\n }, {\n key: \"_fitRows\",\n value: function _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n var me = this;\n var ctx = me.ctx,\n maxWidth = me.maxWidth,\n padding = me.options.labels.padding;\n var hitboxes = me.legendHitBoxes = [];\n var lineWidths = me.lineWidths = [0];\n var lineHeight = itemHeight + padding;\n var totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n var row = -1;\n var top = -lineHeight;\n me.legendItems.forEach(function (legendItem, i) {\n var itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n\n hitboxes[i] = {\n left: 0,\n top: top,\n row: row,\n width: itemWidth,\n height: itemHeight\n };\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n }, {\n key: \"_fitCols\",\n value: function _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n var me = this;\n var ctx = me.ctx,\n maxHeight = me.maxHeight,\n padding = me.options.labels.padding;\n var hitboxes = me.legendHitBoxes = [];\n var columnSizes = me.columnSizes = [];\n var heightLimit = maxHeight - titleHeight;\n var totalWidth = padding;\n var currentColWidth = 0;\n var currentColHeight = 0;\n var left = 0;\n var col = 0;\n me.legendItems.forEach(function (legendItem, i) {\n var itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n\n hitboxes[i] = {\n left: left,\n top: currentColHeight,\n col: col,\n width: itemWidth,\n height: itemHeight\n };\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n return totalWidth;\n }\n }, {\n key: \"adjustHitBoxes\",\n value: function adjustHitBoxes() {\n var me = this;\n\n if (!me.options.display) {\n return;\n }\n\n var titleHeight = me._computeTitleHeight();\n\n var hitboxes = me.legendHitBoxes,\n _me$options6 = me.options,\n align = _me$options6.align,\n padding = _me$options6.labels.padding,\n rtl = _me$options6.rtl;\n\n if (this.isHorizontal()) {\n var row = 0;\n\n var left = _alignStartEnd(align, me.left + padding, me.right - me.lineWidths[row]);\n\n var _iterator14 = _createForOfIteratorHelper(hitboxes),\n _step14;\n\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var hitbox = _step14.value;\n\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, me.left + padding, me.right - me.lineWidths[row]);\n }\n\n hitbox.top += me.top + titleHeight + padding;\n hitbox.left = left;\n left += hitbox.width + padding;\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n\n if (rtl) {\n var boxMap = hitboxes.reduce(function (map, box) {\n map[box.row] = map[box.row] || [];\n map[box.row].push(box);\n return map;\n }, {});\n var newBoxes = [];\n Object.keys(boxMap).forEach(function (key) {\n boxMap[key].reverse();\n newBoxes.push.apply(newBoxes, _toConsumableArray(boxMap[key]));\n });\n me.legendHitBoxes = newBoxes;\n }\n } else {\n var col = 0;\n\n var top = _alignStartEnd(align, me.top + titleHeight + padding, me.bottom - me.columnSizes[col].height);\n\n var _iterator15 = _createForOfIteratorHelper(hitboxes),\n _step15;\n\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var _hitbox = _step15.value;\n\n if (_hitbox.col !== col) {\n col = _hitbox.col;\n top = _alignStartEnd(align, me.top + titleHeight + padding, me.bottom - me.columnSizes[col].height);\n }\n\n _hitbox.top = top;\n _hitbox.left += me.left + padding;\n top += _hitbox.height + padding;\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n }\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var me = this;\n\n if (me.options.display) {\n var ctx = me.ctx;\n clipArea(ctx, me);\n\n me._draw();\n\n unclipArea(ctx);\n }\n }\n }, {\n key: \"_draw\",\n value: function _draw() {\n var me = this;\n var opts = me.options,\n columnSizes = me.columnSizes,\n lineWidths = me.lineWidths,\n ctx = me.ctx;\n var align = opts.align,\n labelOpts = opts.labels;\n var defaultColor = defaults.color;\n var rtlHelper = getRtlAdapter(opts.rtl, me.left, me.width);\n var labelFont = toFont(labelOpts.font);\n var fontColor = labelOpts.color,\n padding = labelOpts.padding;\n var fontSize = labelFont.size;\n var halfFontSize = fontSize / 2;\n var cursor;\n me.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n\n var _getBoxSize2 = getBoxSize(labelOpts, fontSize),\n boxWidth = _getBoxSize2.boxWidth,\n boxHeight = _getBoxSize2.boxHeight,\n itemHeight = _getBoxSize2.itemHeight;\n\n var drawLegendBox = function drawLegendBox(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n\n ctx.save();\n var lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n\n if (labelOpts.usePointStyle) {\n var drawOptions = {\n radius: boxWidth * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n var centerX = rtlHelper.xPlus(x, boxWidth / 2);\n var centerY = y + halfFontSize;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n var yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n var xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n var borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n\n if (Object.values(borderRadius).some(function (v) {\n return v !== 0;\n })) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n\n ctx.fill();\n\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n\n ctx.restore();\n };\n\n var fillText = function fillText(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + itemHeight / 2, labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n\n var isHorizontal = me.isHorizontal();\n\n var titleHeight = this._computeTitleHeight();\n\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, me.left + padding, me.right - lineWidths[0]),\n y: me.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: me.left + padding,\n y: _alignStartEnd(align, me.top + titleHeight + padding, me.bottom - columnSizes[0].height),\n line: 0\n };\n }\n\n overrideTextDirection(me.ctx, opts.textDirection);\n var lineHeight = itemHeight + padding;\n me.legendItems.forEach(function (legendItem, i) {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n var textWidth = ctx.measureText(legendItem.text).width;\n var textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n var width = boxWidth + halfFontSize + textWidth;\n var x = cursor.x;\n var y = cursor.y;\n rtlHelper.setWidth(me.width);\n\n if (isHorizontal) {\n if (i > 0 && x + width + padding > me.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, me.left + padding, me.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > me.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, me.top + titleHeight + padding, me.bottom - columnSizes[cursor.line].height);\n }\n\n var realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : me.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(me.ctx, opts.textDirection);\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle() {\n var me = this;\n var opts = me.options;\n var titleOpts = opts.title;\n var titleFont = toFont(titleOpts.font);\n var titlePadding = toPadding(titleOpts.padding);\n\n if (!titleOpts.display) {\n return;\n }\n\n var rtlHelper = getRtlAdapter(opts.rtl, me.left, me.width);\n var ctx = me.ctx;\n var position = titleOpts.position;\n var halfFontSize = titleFont.size / 2;\n var topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n var y;\n var left = me.left;\n var maxWidth = me.width;\n\n if (this.isHorizontal()) {\n maxWidth = Math.max.apply(Math, _toConsumableArray(me.lineWidths));\n y = me.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, me.right - maxWidth);\n } else {\n var maxHeight = me.columnSizes.reduce(function (acc, size) {\n return Math.max(acc, size.height);\n }, 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, me.top, me.bottom - maxHeight - opts.labels.padding - me._computeTitleHeight());\n }\n\n var x = _alignStartEnd(position, left, left + maxWidth);\n\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n }, {\n key: \"_computeTitleHeight\",\n value: function _computeTitleHeight() {\n var titleOpts = this.options.title;\n var titleFont = toFont(titleOpts.font);\n var titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n }, {\n key: \"_getLegendItemAt\",\n value: function _getLegendItemAt(x, y) {\n var me = this;\n var i, hitBox, lh;\n\n if (x >= me.left && x <= me.right && y >= me.top && y <= me.bottom) {\n lh = me.legendHitBoxes;\n\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n\n if (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) {\n return me.legendItems[i];\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(e) {\n var me = this;\n var opts = me.options;\n\n if (!isListened(e.type, opts)) {\n return;\n }\n\n var hoveredItem = me._getLegendItemAt(e.x, e.y);\n\n if (e.type === 'mousemove') {\n var previous = me._hoveredItem;\n var sameItem = itemsEqual(previous, hoveredItem);\n\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, me], me);\n }\n\n me._hoveredItem = hoveredItem;\n\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, me], me);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, me], me);\n }\n }\n }]);\n\n return Legend;\n}(Element);\n\nfunction isListened(type, opts) {\n if (type === 'mousemove' && (opts.onHover || opts.onLeave)) {\n return true;\n }\n\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n\n return false;\n}\n\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start: function start(chart, _args, options) {\n var legend = chart.legend = new Legend({\n ctx: chart.ctx,\n options: options,\n chart: chart\n });\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop: function stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n var legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate: function afterUpdate(chart) {\n var legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent: function afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick: function onClick(e, legendItem, legend) {\n var index = legendItem.datasetIndex;\n var ci = legend.chart;\n\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: function color(ctx) {\n return ctx.chart.options.color;\n },\n boxWidth: 40,\n padding: 10,\n generateLabels: function generateLabels(chart) {\n var datasets = chart.data.datasets;\n var _chart$legend$options = chart.legend.options.labels,\n usePointStyle = _chart$legend$options.usePointStyle,\n pointStyle = _chart$legend$options.pointStyle,\n textAlign = _chart$legend$options.textAlign,\n color = _chart$legend$options.color;\n return chart._getSortedDatasetMetas().map(function (meta) {\n var style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n var borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: function color(ctx) {\n return ctx.chart.options.color;\n },\n display: false,\n position: 'center',\n text: ''\n }\n },\n descriptors: {\n _scriptable: function _scriptable(name) {\n return !name.startsWith('on');\n },\n labels: {\n _scriptable: function _scriptable(name) {\n return !['generateLabels', 'filter', 'sort'].includes(name);\n }\n }\n }\n};\n\nvar Title = /*#__PURE__*/function (_Element7) {\n _inherits(Title, _Element7);\n\n var _super17 = _createSuper(Title);\n\n function Title(config) {\n var _this12;\n\n _classCallCheck(this, Title);\n\n _this12 = _super17.call(this);\n _this12.chart = config.chart;\n _this12.options = config.options;\n _this12.ctx = config.ctx;\n _this12._padding = undefined;\n _this12.top = undefined;\n _this12.bottom = undefined;\n _this12.left = undefined;\n _this12.right = undefined;\n _this12.width = undefined;\n _this12.height = undefined;\n _this12.position = undefined;\n _this12.weight = undefined;\n _this12.fullSize = undefined;\n return _this12;\n }\n\n _createClass(Title, [{\n key: \"update\",\n value: function update(maxWidth, maxHeight) {\n var me = this;\n var opts = me.options;\n me.left = 0;\n me.top = 0;\n\n if (!opts.display) {\n me.width = me.height = me.right = me.bottom = 0;\n return;\n }\n\n me.width = me.right = maxWidth;\n me.height = me.bottom = maxHeight;\n var lineCount = isArray(opts.text) ? opts.text.length : 1;\n me._padding = toPadding(opts.padding);\n\n var textSize = lineCount * toFont(opts.font).lineHeight + me._padding.height;\n\n if (me.isHorizontal()) {\n me.height = textSize;\n } else {\n me.width = textSize;\n }\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n var pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n }, {\n key: \"_drawArgs\",\n value: function _drawArgs(offset) {\n var top = this.top,\n left = this.left,\n bottom = this.bottom,\n right = this.right,\n options = this.options;\n var align = options.align;\n var rotation = 0;\n var maxWidth, titleX, titleY;\n\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n\n maxWidth = bottom - top;\n }\n\n return {\n titleX: titleX,\n titleY: titleY,\n maxWidth: maxWidth,\n rotation: rotation\n };\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var me = this;\n var ctx = me.ctx;\n var opts = me.options;\n\n if (!opts.display) {\n return;\n }\n\n var fontOpts = toFont(opts.font);\n var lineHeight = fontOpts.lineHeight;\n var offset = lineHeight / 2 + me._padding.top;\n\n var _me$_drawArgs = me._drawArgs(offset),\n titleX = _me$_drawArgs.titleX,\n titleY = _me$_drawArgs.titleY,\n maxWidth = _me$_drawArgs.maxWidth,\n rotation = _me$_drawArgs.rotation;\n\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth: maxWidth,\n rotation: rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY]\n });\n }\n }]);\n\n return Title;\n}(Element);\n\nfunction createTitle(chart, titleOpts) {\n var title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart: chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\n\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start: function start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop: function stop(chart) {\n var titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n var title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold'\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\nvar map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start: function start(chart, _args, options) {\n var title = new Title({\n ctx: chart.ctx,\n options: options,\n chart: chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop: function stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n var title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal'\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\nvar positioners = {\n average: function average(items) {\n if (!items.length) {\n return false;\n }\n\n var i, len;\n var x = 0;\n var y = 0;\n var count = 0;\n\n for (i = 0, len = items.length; i < len; ++i) {\n var el = items[i].element;\n\n if (el && el.hasValue()) {\n var pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest: function nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n\n var x = eventPosition.x;\n var y = eventPosition.y;\n var minDistance = Number.POSITIVE_INFINITY;\n var i, len, nearestElement;\n\n for (i = 0, len = items.length; i < len; ++i) {\n var el = items[i].element;\n\n if (el && el.hasValue()) {\n var center = el.getCenterPoint();\n var d = distanceBetweenPoints(eventPosition, center);\n\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n\n if (nearestElement) {\n var tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n\n return {\n x: x,\n y: y\n };\n }\n};\n\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n\n return base;\n}\n\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n\n return str;\n}\n\nfunction createTooltipItem(chart, item) {\n var element = item.element,\n datasetIndex = item.datasetIndex,\n index = item.index;\n var controller = chart.getDatasetMeta(datasetIndex).controller;\n\n var _controller$getLabelA = controller.getLabelAndValue(index),\n label = _controller$getLabelA.label,\n value = _controller$getLabelA.value;\n\n return {\n chart: chart,\n label: label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex: datasetIndex,\n element: element\n };\n}\n\nfunction getTooltipSize(tooltip, options) {\n var ctx = tooltip._chart.ctx;\n var body = tooltip.body,\n footer = tooltip.footer,\n title = tooltip.title;\n var boxWidth = options.boxWidth,\n boxHeight = options.boxHeight;\n var bodyFont = toFont(options.bodyFont);\n var titleFont = toFont(options.titleFont);\n var footerFont = toFont(options.footerFont);\n var titleLineCount = title.length;\n var footerLineCount = footer.length;\n var bodyLineItemCount = body.length;\n var padding = toPadding(options.padding);\n var height = padding.height;\n var width = 0;\n var combinedBodyLength = body.reduce(function (count, bodyItem) {\n return count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length;\n }, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n }\n\n if (combinedBodyLength) {\n var bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n }\n\n if (footerLineCount) {\n height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n }\n\n var widthPadding = 0;\n\n var maxLineWidth = function maxLineWidth(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? boxWidth + 2 : 0;\n each(body, function (bodyItem) {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {\n width: width,\n height: height\n };\n}\n\nfunction determineYAlign(chart, size) {\n var y = size.y,\n height = size.height;\n\n if (y < height / 2) {\n return 'top';\n } else if (y > chart.height - height / 2) {\n return 'bottom';\n }\n\n return 'center';\n}\n\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n var x = size.x,\n width = size.width;\n var caret = options.caretSize + options.caretPadding;\n\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\n\nfunction determineXAlign(chart, options, size, yAlign) {\n var x = size.x,\n width = size.width;\n var chartWidth = chart.width,\n _chart$chartArea = chart.chartArea,\n left = _chart$chartArea.left,\n right = _chart$chartArea.right;\n var xAlign = 'center';\n\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n\n return xAlign;\n}\n\nfunction determineAlignment(chart, options, size) {\n var yAlign = options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign: yAlign\n };\n}\n\nfunction alignX(size, xAlign) {\n var x = size.x,\n width = size.width;\n\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= width / 2;\n }\n\n return x;\n}\n\nfunction alignY(size, yAlign, paddingAndSize) {\n var y = size.y,\n height = size.height;\n\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= height / 2;\n }\n\n return y;\n}\n\nfunction getBackgroundPoint(options, size, alignment, chart) {\n var caretSize = options.caretSize,\n caretPadding = options.caretPadding,\n cornerRadius = options.cornerRadius;\n var xAlign = alignment.xAlign,\n yAlign = alignment.yAlign;\n var paddingAndSize = caretSize + caretPadding;\n var radiusAndPadding = cornerRadius + caretPadding;\n var x = alignX(size, xAlign);\n var y = alignY(size, yAlign, paddingAndSize);\n\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= radiusAndPadding;\n } else if (xAlign === 'right') {\n x += radiusAndPadding;\n }\n\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\n\nfunction getAlignedX(tooltip, align, options) {\n var padding = toPadding(options.padding);\n return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\n\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\n\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return Object.assign(Object.create(parent), {\n tooltip: tooltip,\n tooltipItems: tooltipItems,\n type: 'tooltip'\n });\n}\n\nfunction overrideCallbacks(callbacks, context) {\n var override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\n\nvar Tooltip = /*#__PURE__*/function (_Element8) {\n _inherits(Tooltip, _Element8);\n\n var _super18 = _createSuper(Tooltip);\n\n function Tooltip(config) {\n var _this13;\n\n _classCallCheck(this, Tooltip);\n\n _this13 = _super18.call(this);\n _this13.opacity = 0;\n _this13._active = [];\n _this13._chart = config._chart;\n _this13._eventPosition = undefined;\n _this13._size = undefined;\n _this13._cachedAnimations = undefined;\n _this13._tooltipItems = [];\n _this13.$animations = undefined;\n _this13.$context = undefined;\n _this13.options = config.options;\n _this13.dataPoints = undefined;\n _this13.title = undefined;\n _this13.beforeBody = undefined;\n _this13.body = undefined;\n _this13.afterBody = undefined;\n _this13.footer = undefined;\n _this13.xAlign = undefined;\n _this13.yAlign = undefined;\n _this13.x = undefined;\n _this13.y = undefined;\n _this13.height = undefined;\n _this13.width = undefined;\n _this13.caretX = undefined;\n _this13.caretY = undefined;\n _this13.labelColors = undefined;\n _this13.labelPointStyles = undefined;\n _this13.labelTextColors = undefined;\n return _this13;\n }\n\n _createClass(Tooltip, [{\n key: \"initialize\",\n value: function initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n }, {\n key: \"_resolveAnimations\",\n value: function _resolveAnimations() {\n var me = this;\n var cached = me._cachedAnimations;\n\n if (cached) {\n return cached;\n }\n\n var chart = me._chart;\n var options = me.options.setContext(me.getContext());\n var opts = options.enabled && chart.options.animation && options.animations;\n var animations = new Animations(me._chart, opts);\n\n if (opts._cacheable) {\n me._cachedAnimations = Object.freeze(animations);\n }\n\n return animations;\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n var me = this;\n return me.$context || (me.$context = createTooltipContext(me._chart.getContext(), me, me._tooltipItems));\n }\n }, {\n key: \"getTitle\",\n value: function getTitle(context, options) {\n var me = this;\n var callbacks = options.callbacks;\n var beforeTitle = callbacks.beforeTitle.apply(me, [context]);\n var title = callbacks.title.apply(me, [context]);\n var afterTitle = callbacks.afterTitle.apply(me, [context]);\n var lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n }, {\n key: \"getBeforeBody\",\n value: function getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n }, {\n key: \"getBody\",\n value: function getBody(tooltipItems, options) {\n var me = this;\n var callbacks = options.callbacks;\n var bodyItems = [];\n each(tooltipItems, function (context) {\n var bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n var scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(me, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(me, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(me, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n }, {\n key: \"getAfterBody\",\n value: function getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n }, {\n key: \"getFooter\",\n value: function getFooter(tooltipItems, options) {\n var me = this;\n var callbacks = options.callbacks;\n var beforeFooter = callbacks.beforeFooter.apply(me, [tooltipItems]);\n var footer = callbacks.footer.apply(me, [tooltipItems]);\n var afterFooter = callbacks.afterFooter.apply(me, [tooltipItems]);\n var lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n }, {\n key: \"_createItems\",\n value: function _createItems(options) {\n var me = this;\n var active = me._active;\n var data = me._chart.data;\n var labelColors = [];\n var labelPointStyles = [];\n var labelTextColors = [];\n var tooltipItems = [];\n var i, len;\n\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(me._chart, active[i]));\n }\n\n if (options.filter) {\n tooltipItems = tooltipItems.filter(function (element, index, array) {\n return options.filter(element, index, array, data);\n });\n }\n\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort(function (a, b) {\n return options.itemSort(a, b, data);\n });\n }\n\n each(tooltipItems, function (context) {\n var scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(me, context));\n labelPointStyles.push(scoped.labelPointStyle.call(me, context));\n labelTextColors.push(scoped.labelTextColor.call(me, context));\n });\n me.labelColors = labelColors;\n me.labelPointStyles = labelPointStyles;\n me.labelTextColors = labelTextColors;\n me.dataPoints = tooltipItems;\n return tooltipItems;\n }\n }, {\n key: \"update\",\n value: function update(changed, replay) {\n var me = this;\n var options = me.options.setContext(me.getContext());\n var active = me._active;\n var properties;\n var tooltipItems = [];\n\n if (!active.length) {\n if (me.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n var position = positioners[options.position].call(me, active, me._eventPosition);\n tooltipItems = me._createItems(options);\n me.title = me.getTitle(tooltipItems, options);\n me.beforeBody = me.getBeforeBody(tooltipItems, options);\n me.body = me.getBody(tooltipItems, options);\n me.afterBody = me.getAfterBody(tooltipItems, options);\n me.footer = me.getFooter(tooltipItems, options);\n var size = me._size = getTooltipSize(me, options);\n var positionAndSize = Object.assign({}, position, size);\n var alignment = determineAlignment(me._chart, options, positionAndSize);\n var backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, me._chart);\n me.xAlign = alignment.xAlign;\n me.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n\n me._tooltipItems = tooltipItems;\n me.$context = undefined;\n\n if (properties) {\n me._resolveAnimations().update(me, properties);\n }\n\n if (changed && options.external) {\n options.external.call(me, {\n chart: me._chart,\n tooltip: me,\n replay: replay\n });\n }\n }\n }, {\n key: \"drawCaret\",\n value: function drawCaret(tooltipPoint, ctx, size, options) {\n var caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n }, {\n key: \"getCaretPosition\",\n value: function getCaretPosition(tooltipPoint, size, options) {\n var xAlign = this.xAlign,\n yAlign = this.yAlign;\n var cornerRadius = options.cornerRadius,\n caretSize = options.caretSize;\n var ptX = tooltipPoint.x,\n ptY = tooltipPoint.y;\n var width = size.width,\n height = size.height;\n var x1, x2, x3, y1, y2, y3;\n\n if (yAlign === 'center') {\n y2 = ptY + height / 2;\n\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + cornerRadius + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - cornerRadius - caretSize;\n } else {\n x2 = this.caretX;\n }\n\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n\n y3 = y1;\n }\n\n return {\n x1: x1,\n x2: x2,\n x3: x3,\n y1: y1,\n y2: y2,\n y3: y3\n };\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle(pt, ctx, options) {\n var me = this;\n var title = me.title;\n var length = title.length;\n var titleFont, titleSpacing, i;\n\n if (length) {\n var rtlHelper = getRtlAdapter(options.rtl, me.x, me.width);\n pt.x = getAlignedX(me, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n }, {\n key: \"_drawColorBox\",\n value: function _drawColorBox(ctx, pt, i, rtlHelper, options) {\n var me = this;\n var labelColors = me.labelColors[i];\n var labelPointStyle = me.labelPointStyles[i];\n var boxHeight = options.boxHeight,\n boxWidth = options.boxWidth;\n var bodyFont = toFont(options.bodyFont);\n var colorX = getAlignedX(me, 'left', options);\n var rtlColorX = rtlHelper.x(colorX);\n var yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n var colorY = pt.y + yOffSet;\n\n if (options.usePointStyle) {\n var drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n var centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n var centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = labelColors.borderWidth || 1;\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n var outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n var innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n var borderRadius = toTRBLCorners(labelColors.borderRadius);\n\n if (Object.values(borderRadius).some(function (v) {\n return v !== 0;\n })) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n\n ctx.fillStyle = me.labelTextColors[i];\n }\n }, {\n key: \"drawBody\",\n value: function drawBody(pt, ctx, options) {\n var me = this;\n var body = me.body;\n var bodySpacing = options.bodySpacing,\n bodyAlign = options.bodyAlign,\n displayColors = options.displayColors,\n boxHeight = options.boxHeight,\n boxWidth = options.boxWidth;\n var bodyFont = toFont(options.bodyFont);\n var bodyLineHeight = bodyFont.lineHeight;\n var xLinePadding = 0;\n var rtlHelper = getRtlAdapter(options.rtl, me.x, me.width);\n\n var fillLineOfText = function fillLineOfText(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n\n var bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n var bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(me, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(me.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + 1 : boxWidth + 2 : 0;\n\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = me.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n\n if (displayColors && lines.length) {\n me._drawColorBox(ctx, pt, i, rtlHelper, options);\n\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n\n each(bodyItem.after, fillLineOfText);\n }\n\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(me.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n }, {\n key: \"drawFooter\",\n value: function drawFooter(pt, ctx, options) {\n var me = this;\n var footer = me.footer;\n var length = footer.length;\n var footerFont, i;\n\n if (length) {\n var rtlHelper = getRtlAdapter(options.rtl, me.x, me.width);\n pt.x = getAlignedX(me, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n }, {\n key: \"drawBackground\",\n value: function drawBackground(pt, ctx, tooltipSize, options) {\n var xAlign = this.xAlign,\n yAlign = this.yAlign;\n var x = pt.x,\n y = pt.y;\n var width = tooltipSize.width,\n height = tooltipSize.height;\n var radius = options.cornerRadius;\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + radius, y);\n\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x + width - radius, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x + width, y + height - radius);\n ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x + radius, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x, y + radius);\n ctx.quadraticCurveTo(x, y, x + radius, y);\n ctx.closePath();\n ctx.fill();\n\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n }, {\n key: \"_updateAnimationTarget\",\n value: function _updateAnimationTarget(options) {\n var me = this;\n var chart = me._chart;\n var anims = me.$animations;\n var animX = anims && anims.x;\n var animY = anims && anims.y;\n\n if (animX || animY) {\n var position = positioners[options.position].call(me, me._active, me._eventPosition);\n\n if (!position) {\n return;\n }\n\n var size = me._size = getTooltipSize(me, options);\n var positionAndSize = Object.assign({}, position, me._size);\n var alignment = determineAlignment(chart, options, positionAndSize);\n var point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n\n if (animX._to !== point.x || animY._to !== point.y) {\n me.xAlign = alignment.xAlign;\n me.yAlign = alignment.yAlign;\n me.width = size.width;\n me.height = size.height;\n me.caretX = position.x;\n me.caretY = position.y;\n\n me._resolveAnimations().update(me, point);\n }\n }\n }\n }, {\n key: \"draw\",\n value: function draw(ctx) {\n var me = this;\n var options = me.options.setContext(me.getContext());\n var opacity = me.opacity;\n\n if (!opacity) {\n return;\n }\n\n me._updateAnimationTarget(options);\n\n var tooltipSize = {\n width: me.width,\n height: me.height\n };\n var pt = {\n x: me.x,\n y: me.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n var padding = toPadding(options.padding);\n var hasTooltipContent = me.title.length || me.beforeBody.length || me.body.length || me.afterBody.length || me.footer.length;\n\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n me.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n me.drawTitle(pt, ctx, options);\n me.drawBody(pt, ctx, options);\n me.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n }, {\n key: \"getActiveElements\",\n value: function getActiveElements() {\n return this._active || [];\n }\n }, {\n key: \"setActiveElements\",\n value: function setActiveElements(activeElements, eventPosition) {\n var me = this;\n var lastActive = me._active;\n var active = activeElements.map(function (_ref13) {\n var datasetIndex = _ref13.datasetIndex,\n index = _ref13.index;\n\n var meta = me._chart.getDatasetMeta(datasetIndex);\n\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n\n return {\n datasetIndex: datasetIndex,\n element: meta.data[index],\n index: index\n };\n });\n var changed = !_elementsEqual(lastActive, active);\n\n var positionChanged = me._positionChanged(active, eventPosition);\n\n if (changed || positionChanged) {\n me._active = active;\n me._eventPosition = eventPosition;\n me.update(true);\n }\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(e, replay) {\n var me = this;\n var options = me.options;\n var lastActive = me._active || [];\n var changed = false;\n var active = [];\n\n if (e.type !== 'mouseout') {\n active = me._chart.getElementsAtEventForMode(e, options.mode, options, replay);\n\n if (options.reverse) {\n active.reverse();\n }\n }\n\n var positionChanged = me._positionChanged(active, e);\n\n changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n\n if (changed) {\n me._active = active;\n\n if (options.enabled || options.external) {\n me._eventPosition = {\n x: e.x,\n y: e.y\n };\n me.update(true, replay);\n }\n }\n\n return changed;\n }\n }, {\n key: \"_positionChanged\",\n value: function _positionChanged(active, e) {\n var caretX = this.caretX,\n caretY = this.caretY,\n options = this.options;\n var position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n }]);\n\n return Tooltip;\n}(Element);\n\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners: positioners,\n afterInit: function afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({\n _chart: chart,\n options: options\n });\n }\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset: function reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw: function afterDraw(chart) {\n var tooltip = chart.tooltip;\n var args = {\n tooltip: tooltip\n };\n\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n\n if (tooltip) {\n tooltip.draw(chart.ctx);\n }\n\n chart.notifyPlugins('afterTooltipDraw', args);\n },\n afterEvent: function afterEvent(chart, args) {\n if (chart.tooltip) {\n var useFinalPosition = args.replay;\n\n if (chart.tooltip.handleEvent(args.event, useFinalPosition)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold'\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {},\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold'\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: function boxHeight(ctx, opts) {\n return opts.bodyFont.size;\n },\n boxWidth: function boxWidth(ctx, opts) {\n return opts.bodyFont.size;\n },\n multiKeyBackground: '#fff',\n displayColors: true,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart'\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY']\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title: function title(tooltipItems) {\n if (tooltipItems.length > 0) {\n var item = tooltipItems[0];\n var labels = item.chart.data.labels;\n var labelCount = labels ? labels.length : 0;\n\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label: function label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n\n var label = tooltipItem.dataset.label || '';\n\n if (label) {\n label += ': ';\n }\n\n var value = tooltipItem.formattedValue;\n\n if (!isNullOrUndef(value)) {\n label += value;\n }\n\n return label;\n },\n labelColor: function labelColor(tooltipItem) {\n var meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n var options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0\n };\n },\n labelTextColor: function labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle: function labelPointStyle(tooltipItem) {\n var meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n var options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: function _scriptable(name) {\n return name !== 'filter' && name !== 'itemSort' && name !== 'external';\n },\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\nvar plugins = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Decimation: plugin_decimation,\n Filler: plugin_filler,\n Legend: plugin_legend,\n SubTitle: plugin_subtitle,\n Title: plugin_title,\n Tooltip: plugin_tooltip\n});\n\nvar addIfString = function addIfString(labels, raw, index) {\n return typeof raw === 'string' ? labels.push(raw) - 1 : isNaN(raw) ? null : index;\n};\n\nfunction findOrAddLabel(labels, raw, index) {\n var first = labels.indexOf(raw);\n\n if (first === -1) {\n return addIfString(labels, raw, index);\n }\n\n var last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\n\nvar validIndex = function validIndex(index, max) {\n return index === null ? null : _limitValue(Math.round(index), 0, max);\n};\n\nvar CategoryScale = /*#__PURE__*/function (_Scale) {\n _inherits(CategoryScale, _Scale);\n\n var _super19 = _createSuper(CategoryScale);\n\n function CategoryScale(cfg) {\n var _this14;\n\n _classCallCheck(this, CategoryScale);\n\n _this14 = _super19.call(this, cfg);\n _this14._startValue = undefined;\n _this14._valueRange = 0;\n return _this14;\n }\n\n _createClass(CategoryScale, [{\n key: \"parse\",\n value: function parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n\n var labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, valueOrDefault(index, raw));\n return validIndex(index, labels.length - 1);\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var me = this;\n\n var _me$getUserBounds2 = me.getUserBounds(),\n minDefined = _me$getUserBounds2.minDefined,\n maxDefined = _me$getUserBounds2.maxDefined;\n\n var _me$getMinMax = me.getMinMax(true),\n min = _me$getMinMax.min,\n max = _me$getMinMax.max;\n\n if (me.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n\n if (!maxDefined) {\n max = me.getLabels().length - 1;\n }\n }\n\n me.min = min;\n me.max = max;\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var me = this;\n var min = me.min;\n var max = me.max;\n var offset = me.options.offset;\n var ticks = [];\n var labels = me.getLabels();\n labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n me._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n me._startValue = me.min - (offset ? 0.5 : 0);\n\n for (var value = min; value <= max; value++) {\n ticks.push({\n value: value\n });\n }\n\n return ticks;\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n var me = this;\n var labels = me.getLabels();\n\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n\n return value;\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var me = this;\n\n _get(_getPrototypeOf(CategoryScale.prototype), \"configure\", this).call(this);\n\n if (!me.isHorizontal()) {\n me._reversePixels = !me._reversePixels;\n }\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n var me = this;\n\n if (typeof value !== 'number') {\n value = me.parse(value);\n }\n\n return value === null ? NaN : me.getPixelForDecimal((value - me._startValue) / me._valueRange);\n }\n }, {\n key: \"getPixelForTick\",\n value: function getPixelForTick(index) {\n var me = this;\n var ticks = me.ticks;\n\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n\n return me.getPixelForValue(ticks[index].value);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var me = this;\n return Math.round(me._startValue + me.getDecimalForPixel(pixel) * me._valueRange);\n }\n }, {\n key: \"getBasePixel\",\n value: function getBasePixel() {\n return this.bottom;\n }\n }]);\n\n return CategoryScale;\n}(Scale);\n\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n var ticks = [];\n var MIN_SPACING = 1e-14;\n var bounds = generationOptions.bounds,\n step = generationOptions.step,\n min = generationOptions.min,\n max = generationOptions.max,\n precision = generationOptions.precision,\n count = generationOptions.count,\n maxTicks = generationOptions.maxTicks,\n maxDigits = generationOptions.maxDigits,\n includeBounds = generationOptions.includeBounds;\n var unit = step || 1;\n var maxSpaces = maxTicks - 1;\n var rmin = dataRange.min,\n rmax = dataRange.max;\n var minDefined = !isNullOrUndef(min);\n var maxDefined = !isNullOrUndef(max);\n var countDefined = !isNullOrUndef(count);\n var minSpacing = (rmax - rmin) / (maxDigits + 1);\n var spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n var factor, niceMin, niceMax, numSpaces;\n\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{\n value: rmin\n }, {\n value: rmax\n }];\n }\n\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n\n var decimalPlaces = Math.max(_decimalPlaces(spacing), _decimalPlaces(niceMin));\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n var j = 0;\n\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({\n value: min\n });\n\n if (niceMin < min) {\n j++;\n }\n\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n\n for (; j < numSpaces; ++j) {\n ticks.push({\n value: Math.round((niceMin + j * spacing) * factor) / factor\n });\n }\n\n if (maxDefined && includeBounds && niceMax !== max) {\n if (almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({\n value: max\n });\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({\n value: niceMax\n });\n }\n\n return ticks;\n}\n\nfunction relativeLabelSize(value, minSpacing, _ref14) {\n var horizontal = _ref14.horizontal,\n minRotation = _ref14.minRotation;\n var rad = toRadians(minRotation);\n var ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n var length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\n\nvar LinearScaleBase = /*#__PURE__*/function (_Scale2) {\n _inherits(LinearScaleBase, _Scale2);\n\n var _super20 = _createSuper(LinearScaleBase);\n\n function LinearScaleBase(cfg) {\n var _this15;\n\n _classCallCheck(this, LinearScaleBase);\n\n _this15 = _super20.call(this, cfg);\n _this15.start = undefined;\n _this15.end = undefined;\n _this15._startValue = undefined;\n _this15._endValue = undefined;\n _this15._valueRange = 0;\n return _this15;\n }\n\n _createClass(LinearScaleBase, [{\n key: \"parse\",\n value: function parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n\n return +raw;\n }\n }, {\n key: \"handleTickRangeOptions\",\n value: function handleTickRangeOptions() {\n var me = this;\n var beginAtZero = me.options.beginAtZero;\n\n var _me$getUserBounds3 = me.getUserBounds(),\n minDefined = _me$getUserBounds3.minDefined,\n maxDefined = _me$getUserBounds3.maxDefined;\n\n var min = me.min,\n max = me.max;\n\n var setMin = function setMin(v) {\n return min = minDefined ? min : v;\n };\n\n var setMax = function setMax(v) {\n return max = maxDefined ? max : v;\n };\n\n if (beginAtZero) {\n var minSign = sign(min);\n var maxSign = sign(max);\n\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n\n if (min === max) {\n setMax(max + 1);\n\n if (!beginAtZero) {\n setMin(min - 1);\n }\n }\n\n me.min = min;\n me.max = max;\n }\n }, {\n key: \"getTickLimit\",\n value: function getTickLimit() {\n var me = this;\n var tickOpts = me.options.ticks;\n var maxTicksLimit = tickOpts.maxTicksLimit,\n stepSize = tickOpts.stepSize;\n var maxTicks;\n\n if (stepSize) {\n maxTicks = Math.ceil(me.max / stepSize) - Math.floor(me.min / stepSize) + 1;\n } else {\n maxTicks = me.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n\n return maxTicks;\n }\n }, {\n key: \"computeTickLimit\",\n value: function computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var me = this;\n var opts = me.options;\n var tickOpts = opts.ticks;\n var maxTicks = me.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n var numericGeneratorOptions = {\n maxTicks: maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: me._maxDigits(),\n horizontal: me.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n var dataRange = me._range || me;\n var ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, me, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n me.start = me.max;\n me.end = me.min;\n } else {\n me.start = me.min;\n me.end = me.max;\n }\n\n return ticks;\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var me = this;\n var ticks = me.ticks;\n var start = me.min;\n var end = me.max;\n\n _get(_getPrototypeOf(LinearScaleBase.prototype), \"configure\", this).call(this);\n\n if (me.options.offset && ticks.length) {\n var offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n\n me._startValue = start;\n me._endValue = end;\n me._valueRange = end - start;\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale);\n }\n }]);\n\n return LinearScaleBase;\n}(Scale);\n\nvar LinearScale = /*#__PURE__*/function (_LinearScaleBase) {\n _inherits(LinearScale, _LinearScaleBase);\n\n var _super21 = _createSuper(LinearScale);\n\n function LinearScale() {\n _classCallCheck(this, LinearScale);\n\n return _super21.apply(this, arguments);\n }\n\n _createClass(LinearScale, [{\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var me = this;\n\n var _me$getMinMax2 = me.getMinMax(true),\n min = _me$getMinMax2.min,\n max = _me$getMinMax2.max;\n\n me.min = isNumberFinite(min) ? min : 0;\n me.max = isNumberFinite(max) ? max : 1;\n me.handleTickRangeOptions();\n }\n }, {\n key: \"computeTickLimit\",\n value: function computeTickLimit() {\n var me = this;\n var horizontal = me.isHorizontal();\n var length = horizontal ? me.width : me.height;\n var minRotation = toRadians(me.options.ticks.minRotation);\n var ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n\n var tickFont = me._resolveTickFontOptions(0);\n\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n }]);\n\n return LinearScale;\n}(LinearScaleBase);\n\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n var remain = tickVal / Math.pow(10, Math.floor(log10(tickVal)));\n return remain === 1;\n}\n\nfunction generateTicks(generationOptions, dataRange) {\n var endExp = Math.floor(log10(dataRange.max));\n var endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n var ticks = [];\n var tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n var exp = Math.floor(log10(tickVal));\n var significand = Math.floor(tickVal / Math.pow(10, exp));\n var precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n\n do {\n ticks.push({\n value: tickVal,\n major: isMajor(tickVal)\n });\n ++significand;\n\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || exp === endExp && significand < endSignificand);\n\n var lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({\n value: lastTick,\n major: isMajor(tickVal)\n });\n return ticks;\n}\n\nvar LogarithmicScale = /*#__PURE__*/function (_Scale3) {\n _inherits(LogarithmicScale, _Scale3);\n\n var _super22 = _createSuper(LogarithmicScale);\n\n function LogarithmicScale(cfg) {\n var _this16;\n\n _classCallCheck(this, LogarithmicScale);\n\n _this16 = _super22.call(this, cfg);\n _this16.start = undefined;\n _this16.end = undefined;\n _this16._startValue = undefined;\n _this16._valueRange = 0;\n return _this16;\n }\n\n _createClass(LogarithmicScale, [{\n key: \"parse\",\n value: function parse(raw, index) {\n var value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var me = this;\n\n var _me$getMinMax3 = me.getMinMax(true),\n min = _me$getMinMax3.min,\n max = _me$getMinMax3.max;\n\n me.min = isNumberFinite(min) ? Math.max(0, min) : null;\n me.max = isNumberFinite(max) ? Math.max(0, max) : null;\n\n if (me.options.beginAtZero) {\n me._zero = true;\n }\n\n me.handleTickRangeOptions();\n }\n }, {\n key: \"handleTickRangeOptions\",\n value: function handleTickRangeOptions() {\n var me = this;\n\n var _me$getUserBounds4 = me.getUserBounds(),\n minDefined = _me$getUserBounds4.minDefined,\n maxDefined = _me$getUserBounds4.maxDefined;\n\n var min = me.min;\n var max = me.max;\n\n var setMin = function setMin(v) {\n return min = minDefined ? min : v;\n };\n\n var setMax = function setMax(v) {\n return max = maxDefined ? max : v;\n };\n\n var exp = function exp(v, m) {\n return Math.pow(10, Math.floor(log10(v)) + m);\n };\n\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n\n if (me._zero && me.min !== me._suggestedMin && min === exp(me.min, 0)) {\n setMin(exp(min, -1));\n }\n\n me.min = min;\n me.max = max;\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var me = this;\n var opts = me.options;\n var generationOptions = {\n min: me._userMin,\n max: me._userMax\n };\n var ticks = generateTicks(generationOptions, me);\n\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, me, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n me.start = me.max;\n me.end = me.min;\n } else {\n me.start = me.min;\n me.end = me.max;\n }\n\n return ticks;\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale);\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var me = this;\n var start = me.min;\n\n _get(_getPrototypeOf(LogarithmicScale.prototype), \"configure\", this).call(this);\n\n me._startValue = log10(start);\n me._valueRange = log10(me.max) - log10(start);\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n var me = this;\n\n if (value === undefined || value === 0) {\n value = me.min;\n }\n\n if (value === null || isNaN(value)) {\n return NaN;\n }\n\n return me.getPixelForDecimal(value === me.min ? 0 : (log10(value) - me._startValue) / me._valueRange);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var me = this;\n var decimal = me.getDecimalForPixel(pixel);\n return Math.pow(10, me._startValue + decimal * me._valueRange);\n }\n }]);\n\n return LogarithmicScale;\n}(Scale);\n\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n var tickOpts = opts.ticks;\n\n if (tickOpts.display && opts.display) {\n var padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n\n return 0;\n}\n\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\n\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - size / 2,\n end: pos + size / 2\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n\n return {\n start: pos,\n end: pos + size\n };\n}\n\nfunction fitWithPointLabels(scale) {\n var furthestLimits = {\n l: 0,\n r: scale.width,\n t: 0,\n b: scale.height - scale.paddingTop\n };\n var furthestAngles = {};\n var labelSizes = [];\n var padding = [];\n var valueCount = scale.getLabels().length;\n\n for (var i = 0; i < valueCount; i++) {\n var opts = scale.options.pointLabels.setContext(scale.getContext(i));\n padding[i] = opts.padding;\n var pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i]);\n var plFont = toFont(opts.font);\n var textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n var angleRadians = scale.getIndexAngle(i);\n var angle = toDegrees(angleRadians);\n var hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n var vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n\n if (hLimits.start < furthestLimits.l) {\n furthestLimits.l = hLimits.start;\n furthestAngles.l = angleRadians;\n }\n\n if (hLimits.end > furthestLimits.r) {\n furthestLimits.r = hLimits.end;\n furthestAngles.r = angleRadians;\n }\n\n if (vLimits.start < furthestLimits.t) {\n furthestLimits.t = vLimits.start;\n furthestAngles.t = angleRadians;\n }\n\n if (vLimits.end > furthestLimits.b) {\n furthestLimits.b = vLimits.end;\n furthestAngles.b = angleRadians;\n }\n }\n\n scale._setReductions(scale.drawingArea, furthestLimits, furthestAngles);\n\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\n\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n var items = [];\n var valueCount = scale.getLabels().length;\n var opts = scale.options;\n var tickBackdropHeight = getTickBackdropHeight(opts);\n var outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\n\n for (var i = 0; i < valueCount; i++) {\n var extra = i === 0 ? tickBackdropHeight / 2 : 0;\n var pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i]);\n var angle = toDegrees(scale.getIndexAngle(i));\n var size = labelSizes[i];\n var y = yForAngle(pointLabelPosition.y, size.h, angle);\n var textAlign = getTextAlignForAngle(angle);\n var left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y: y,\n textAlign: textAlign,\n left: left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n\n return items;\n}\n\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n\n return 'right';\n}\n\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= w / 2;\n }\n\n return x;\n}\n\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= h / 2;\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n\n return y;\n}\n\nfunction drawPointLabels(scale, labelCount) {\n var ctx = scale.ctx,\n pointLabels = scale.options.pointLabels;\n\n for (var i = labelCount - 1; i >= 0; i--) {\n var optsAtIndex = pointLabels.setContext(scale.getContext(i));\n var plFont = toFont(optsAtIndex.font);\n var _scale$_pointLabelIte = scale._pointLabelItems[i],\n x = _scale$_pointLabelIte.x,\n y = _scale$_pointLabelIte.y,\n textAlign = _scale$_pointLabelIte.textAlign,\n left = _scale$_pointLabelIte.left,\n top = _scale$_pointLabelIte.top,\n right = _scale$_pointLabelIte.right,\n bottom = _scale$_pointLabelIte.bottom;\n var backdropColor = optsAtIndex.backdropColor;\n\n if (!isNullOrUndef(backdropColor)) {\n var padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n ctx.fillRect(left - padding.left, top - padding.top, right - left + padding.width, bottom - top + padding.height);\n }\n\n renderText(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n });\n }\n}\n\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n var ctx = scale.ctx;\n\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n var pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n\n for (var i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\n\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n var ctx = scale.ctx;\n var circular = gridLineOpts.circular;\n var color = gridLineOpts.color,\n lineWidth = gridLineOpts.lineWidth;\n\n if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n return;\n }\n\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\n\nfunction numberOrZero(param) {\n return isNumber(param) ? param : 0;\n}\n\nvar RadialLinearScale = /*#__PURE__*/function (_LinearScaleBase2) {\n _inherits(RadialLinearScale, _LinearScaleBase2);\n\n var _super23 = _createSuper(RadialLinearScale);\n\n function RadialLinearScale(cfg) {\n var _this17;\n\n _classCallCheck(this, RadialLinearScale);\n\n _this17 = _super23.call(this, cfg);\n _this17.xCenter = undefined;\n _this17.yCenter = undefined;\n _this17.drawingArea = undefined;\n _this17._pointLabels = [];\n _this17._pointLabelItems = [];\n return _this17;\n }\n\n _createClass(RadialLinearScale, [{\n key: \"setDimensions\",\n value: function setDimensions() {\n var me = this;\n me.width = me.maxWidth;\n me.height = me.maxHeight;\n me.paddingTop = getTickBackdropHeight(me.options) / 2;\n me.xCenter = Math.floor(me.width / 2);\n me.yCenter = Math.floor((me.height - me.paddingTop) / 2);\n me.drawingArea = Math.min(me.height - me.paddingTop, me.width) / 2;\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var me = this;\n\n var _me$getMinMax4 = me.getMinMax(false),\n min = _me$getMinMax4.min,\n max = _me$getMinMax4.max;\n\n me.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n me.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n me.handleTickRangeOptions();\n }\n }, {\n key: \"computeTickLimit\",\n value: function computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n }, {\n key: \"generateTickLabels\",\n value: function generateTickLabels(ticks) {\n var me = this;\n LinearScaleBase.prototype.generateTickLabels.call(me, ticks);\n me._pointLabels = me.getLabels().map(function (value, index) {\n var label = callback(me.options.pointLabels.callback, [value, index], me);\n return label || label === 0 ? label : '';\n });\n }\n }, {\n key: \"fit\",\n value: function fit() {\n var me = this;\n var opts = me.options;\n\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(me);\n } else {\n me.setCenterPoint(0, 0, 0, 0);\n }\n }\n }, {\n key: \"_setReductions\",\n value: function _setReductions(largestPossibleRadius, furthestLimits, furthestAngles) {\n var me = this;\n var radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\n var radiusReductionRight = Math.max(furthestLimits.r - me.width, 0) / Math.sin(furthestAngles.r);\n var radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\n var radiusReductionBottom = -Math.max(furthestLimits.b - (me.height - me.paddingTop), 0) / Math.cos(furthestAngles.b);\n radiusReductionLeft = numberOrZero(radiusReductionLeft);\n radiusReductionRight = numberOrZero(radiusReductionRight);\n radiusReductionTop = numberOrZero(radiusReductionTop);\n radiusReductionBottom = numberOrZero(radiusReductionBottom);\n me.drawingArea = Math.max(largestPossibleRadius / 2, Math.min(Math.floor(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2), Math.floor(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2)));\n me.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\n }\n }, {\n key: \"setCenterPoint\",\n value: function setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n var me = this;\n var maxRight = me.width - rightMovement - me.drawingArea;\n var maxLeft = leftMovement + me.drawingArea;\n var maxTop = topMovement + me.drawingArea;\n var maxBottom = me.height - me.paddingTop - bottomMovement - me.drawingArea;\n me.xCenter = Math.floor((maxLeft + maxRight) / 2 + me.left);\n me.yCenter = Math.floor((maxTop + maxBottom) / 2 + me.top + me.paddingTop);\n }\n }, {\n key: \"getIndexAngle\",\n value: function getIndexAngle(index) {\n var angleMultiplier = TAU / this.getLabels().length;\n var startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n }, {\n key: \"getDistanceFromCenterForValue\",\n value: function getDistanceFromCenterForValue(value) {\n var me = this;\n\n if (isNullOrUndef(value)) {\n return NaN;\n }\n\n var scalingFactor = me.drawingArea / (me.max - me.min);\n\n if (me.options.reverse) {\n return (me.max - value) * scalingFactor;\n }\n\n return (value - me.min) * scalingFactor;\n }\n }, {\n key: \"getValueForDistanceFromCenter\",\n value: function getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n\n var me = this;\n var scaledDistance = distance / (me.drawingArea / (me.max - me.min));\n return me.options.reverse ? me.max - scaledDistance : me.min + scaledDistance;\n }\n }, {\n key: \"getPointPosition\",\n value: function getPointPosition(index, distanceFromCenter) {\n var me = this;\n var angle = me.getIndexAngle(index) - HALF_PI;\n return {\n x: Math.cos(angle) * distanceFromCenter + me.xCenter,\n y: Math.sin(angle) * distanceFromCenter + me.yCenter,\n angle: angle\n };\n }\n }, {\n key: \"getPointPositionForValue\",\n value: function getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n }, {\n key: \"getBasePosition\",\n value: function getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n }, {\n key: \"getPointLabelPosition\",\n value: function getPointLabelPosition(index) {\n var _this$_pointLabelItem = this._pointLabelItems[index],\n left = _this$_pointLabelItem.left,\n top = _this$_pointLabelItem.top,\n right = _this$_pointLabelItem.right,\n bottom = _this$_pointLabelItem.bottom;\n return {\n left: left,\n top: top,\n right: right,\n bottom: bottom\n };\n }\n }, {\n key: \"drawBackground\",\n value: function drawBackground() {\n var me = this;\n var _me$options7 = me.options,\n backgroundColor = _me$options7.backgroundColor,\n circular = _me$options7.grid.circular;\n\n if (backgroundColor) {\n var ctx = me.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(me, me.getDistanceFromCenterForValue(me._endValue), circular, me.getLabels().length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n }, {\n key: \"drawGrid\",\n value: function drawGrid() {\n var me = this;\n var ctx = me.ctx;\n var opts = me.options;\n var angleLines = opts.angleLines,\n grid = opts.grid;\n var labelCount = me.getLabels().length;\n var i, offset, position;\n\n if (opts.pointLabels.display) {\n drawPointLabels(me, labelCount);\n }\n\n if (grid.display) {\n me.ticks.forEach(function (tick, index) {\n if (index !== 0) {\n offset = me.getDistanceFromCenterForValue(tick.value);\n var optsAtIndex = grid.setContext(me.getContext(index - 1));\n drawRadiusLine(me, optsAtIndex, offset, labelCount);\n }\n });\n }\n\n if (angleLines.display) {\n ctx.save();\n\n for (i = me.getLabels().length - 1; i >= 0; i--) {\n var optsAtIndex = angleLines.setContext(me.getContext(i));\n var color = optsAtIndex.color,\n lineWidth = optsAtIndex.lineWidth;\n\n if (!lineWidth || !color) {\n continue;\n }\n\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = me.getDistanceFromCenterForValue(opts.ticks.reverse ? me.min : me.max);\n position = me.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(me.xCenter, me.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n\n ctx.restore();\n }\n }\n }, {\n key: \"drawBorder\",\n value: function drawBorder() {}\n }, {\n key: \"drawLabels\",\n value: function drawLabels() {\n var me = this;\n var ctx = me.ctx;\n var opts = me.options;\n var tickOpts = opts.ticks;\n\n if (!tickOpts.display) {\n return;\n }\n\n var startAngle = me.getIndexAngle(0);\n var offset, width;\n ctx.save();\n ctx.translate(me.xCenter, me.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n me.ticks.forEach(function (tick, index) {\n if (index === 0 && !opts.reverse) {\n return;\n }\n\n var optsAtIndex = tickOpts.setContext(me.getContext(index));\n var tickFont = toFont(optsAtIndex.font);\n offset = me.getDistanceFromCenterForValue(me.ticks[index].value);\n\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n var padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, tickFont.size + padding.height);\n }\n\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color\n });\n });\n ctx.restore();\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle() {}\n }]);\n\n return RadialLinearScale;\n}(LinearScaleBase);\n\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback: function callback(label) {\n return label;\n },\n padding: 5\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\nvar INTERVALS = {\n millisecond: {\n common: true,\n size: 1,\n steps: 1000\n },\n second: {\n common: true,\n size: 1000,\n steps: 60\n },\n minute: {\n common: true,\n size: 60000,\n steps: 60\n },\n hour: {\n common: true,\n size: 3600000,\n steps: 24\n },\n day: {\n common: true,\n size: 86400000,\n steps: 30\n },\n week: {\n common: false,\n size: 604800000,\n steps: 4\n },\n month: {\n common: true,\n size: 2.628e9,\n steps: 12\n },\n quarter: {\n common: false,\n size: 7.884e9,\n steps: 4\n },\n year: {\n common: true,\n size: 3.154e10\n }\n};\nvar UNITS = Object.keys(INTERVALS);\n\nfunction sorter(a, b) {\n return a - b;\n}\n\nfunction _parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n\n var adapter = scale._adapter;\n var _scale$_parseOpts = scale._parseOpts,\n parser = _scale$_parseOpts.parser,\n round = _scale$_parseOpts.round,\n isoWeekday = _scale$_parseOpts.isoWeekday;\n var value = input;\n\n if (typeof parser === 'function') {\n value = parser(value);\n }\n\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n }\n\n if (value === null) {\n return null;\n }\n\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n }\n\n return +value;\n}\n\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n var ilen = UNITS.length;\n\n for (var i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n var interval = INTERVALS[UNITS[i]];\n var factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n\n return UNITS[ilen - 1];\n}\n\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (var i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n var unit = UNITS[i];\n\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n\nfunction determineMajorUnit(unit) {\n for (var i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n var _lookup2 = _lookup(timestamps, time),\n lo = _lookup2.lo,\n hi = _lookup2.hi;\n\n var timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n var adapter = scale._adapter;\n var first = +adapter.startOf(ticks[0].value, majorUnit);\n var last = ticks[ticks.length - 1].value;\n var major, index;\n\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n\n return ticks;\n}\n\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n var ticks = [];\n var map = {};\n var ilen = values.length;\n var i, value;\n\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value: value,\n major: false\n });\n }\n\n return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\n\nvar TimeScale = /*#__PURE__*/function (_Scale4) {\n _inherits(TimeScale, _Scale4);\n\n var _super24 = _createSuper(TimeScale);\n\n function TimeScale(props) {\n var _this18;\n\n _classCallCheck(this, TimeScale);\n\n _this18 = _super24.call(this, props);\n _this18._cache = {\n data: [],\n labels: [],\n all: []\n };\n _this18._unit = 'day';\n _this18._majorUnit = undefined;\n _this18._offsets = {};\n _this18._normalized = false;\n _this18._parseOpts = undefined;\n return _this18;\n }\n\n _createClass(TimeScale, [{\n key: \"init\",\n value: function init(scaleOpts, opts) {\n var time = scaleOpts.time || (scaleOpts.time = {});\n var adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n\n _get(_getPrototypeOf(TimeScale.prototype), \"init\", this).call(this, scaleOpts);\n\n this._normalized = opts.normalized;\n }\n }, {\n key: \"parse\",\n value: function parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n\n return _parse(this, raw);\n }\n }, {\n key: \"beforeLayout\",\n value: function beforeLayout() {\n _get(_getPrototypeOf(TimeScale.prototype), \"beforeLayout\", this).call(this);\n\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var me = this;\n var options = me.options;\n var adapter = me._adapter;\n var unit = options.time.unit || 'day';\n\n var _me$getUserBounds5 = me.getUserBounds(),\n min = _me$getUserBounds5.min,\n max = _me$getUserBounds5.max,\n minDefined = _me$getUserBounds5.minDefined,\n maxDefined = _me$getUserBounds5.maxDefined;\n\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n\n if (!minDefined || !maxDefined) {\n _applyBounds(me._getLabelBounds());\n\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(me.getMinMax(false));\n }\n }\n\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n me.min = Math.min(min, max - 1);\n me.max = Math.max(min + 1, max);\n }\n }, {\n key: \"_getLabelBounds\",\n value: function _getLabelBounds() {\n var arr = this.getLabelTimestamps();\n var min = Number.POSITIVE_INFINITY;\n var max = Number.NEGATIVE_INFINITY;\n\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n\n return {\n min: min,\n max: max\n };\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var me = this;\n var options = me.options;\n var timeOpts = options.time;\n var tickOpts = options.ticks;\n var timestamps = tickOpts.source === 'labels' ? me.getLabelTimestamps() : me._generate();\n\n if (options.bounds === 'ticks' && timestamps.length) {\n me.min = me._userMin || timestamps[0];\n me.max = me._userMax || timestamps[timestamps.length - 1];\n }\n\n var min = me.min;\n var max = me.max;\n\n var ticks = _filterBetween(timestamps, min, max);\n\n me._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, me.min, me.max, me._getLabelCapacity(min)) : determineUnitForFormatting(me, ticks.length, timeOpts.minUnit, me.min, me.max));\n me._majorUnit = !tickOpts.major.enabled || me._unit === 'year' ? undefined : determineMajorUnit(me._unit);\n me.initOffsets(timestamps);\n\n if (options.reverse) {\n ticks.reverse();\n }\n\n return ticksFromTimestamps(me, ticks, me._majorUnit);\n }\n }, {\n key: \"initOffsets\",\n value: function initOffsets(timestamps) {\n var me = this;\n var start = 0;\n var end = 0;\n var first, last;\n\n if (me.options.offset && timestamps.length) {\n first = me.getDecimalForValue(timestamps[0]);\n\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (me.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n\n last = me.getDecimalForValue(timestamps[timestamps.length - 1]);\n\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - me.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n\n var limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n me._offsets = {\n start: start,\n end: end,\n factor: 1 / (start + 1 + end)\n };\n }\n }, {\n key: \"_generate\",\n value: function _generate() {\n var me = this;\n var adapter = me._adapter;\n var min = me.min;\n var max = me.max;\n var options = me.options;\n var timeOpts = options.time;\n var minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, me._getLabelCapacity(min));\n var stepSize = valueOrDefault(timeOpts.stepSize, 1);\n var weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n var hasWeekday = isNumber(weekday) || weekday === true;\n var ticks = {};\n var first = min;\n var time, count;\n\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n\n var timestamps = options.ticks.source === 'data' && me.getDataTimestamps();\n\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n\n return Object.keys(ticks).sort(function (a, b) {\n return a - b;\n }).map(function (x) {\n return +x;\n });\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n var me = this;\n var adapter = me._adapter;\n var timeOpts = me.options.time;\n\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n }, {\n key: \"_tickFormatFunction\",\n value: function _tickFormatFunction(time, index, ticks, format) {\n var me = this;\n var options = me.options;\n var formats = options.time.displayFormats;\n var unit = me._unit;\n var majorUnit = me._majorUnit;\n var minorFormat = unit && formats[unit];\n var majorFormat = majorUnit && formats[majorUnit];\n var tick = ticks[index];\n var major = majorUnit && majorFormat && tick && tick.major;\n\n var label = me._adapter.format(time, format || (major ? majorFormat : minorFormat));\n\n var formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], me) : label;\n }\n }, {\n key: \"generateTickLabels\",\n value: function generateTickLabels(ticks) {\n var i, ilen, tick;\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n }, {\n key: \"getDecimalForValue\",\n value: function getDecimalForValue(value) {\n var me = this;\n return value === null ? NaN : (value - me.min) / (me.max - me.min);\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n var me = this;\n var offsets = me._offsets;\n var pos = me.getDecimalForValue(value);\n return me.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var me = this;\n var offsets = me._offsets;\n var pos = me.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return me.min + pos * (me.max - me.min);\n }\n }, {\n key: \"_getLabelSize\",\n value: function _getLabelSize(label) {\n var me = this;\n var ticksOpts = me.options.ticks;\n var tickLabelWidth = me.ctx.measureText(label).width;\n var angle = toRadians(me.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n var cosRotation = Math.cos(angle);\n var sinRotation = Math.sin(angle);\n\n var tickFontSize = me._resolveTickFontOptions(0).size;\n\n return {\n w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n };\n }\n }, {\n key: \"_getLabelCapacity\",\n value: function _getLabelCapacity(exampleTime) {\n var me = this;\n var timeOpts = me.options.time;\n var displayFormats = timeOpts.displayFormats;\n var format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n\n var exampleLabel = me._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(me, [exampleTime], me._majorUnit), format);\n\n var size = me._getLabelSize(exampleLabel);\n\n var capacity = Math.floor(me.isHorizontal() ? me.width / size.w : me.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n }, {\n key: \"getDataTimestamps\",\n value: function getDataTimestamps() {\n var me = this;\n var timestamps = me._cache.data || [];\n var i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n var metas = me.getMatchingVisibleMetas();\n\n if (me._normalized && metas.length) {\n return me._cache.data = metas[0].controller.getAllParsedValues(me);\n }\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(me));\n }\n\n return me._cache.data = me.normalize(timestamps);\n }\n }, {\n key: \"getLabelTimestamps\",\n value: function getLabelTimestamps() {\n var me = this;\n var timestamps = me._cache.labels || [];\n var i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n var labels = me.getLabels();\n\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(_parse(me, labels[i]));\n }\n\n return me._cache.labels = me._normalized ? timestamps : me.normalize(timestamps);\n }\n }, {\n key: \"normalize\",\n value: function normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n }]);\n\n return TimeScale;\n}(Scale);\n\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n var lo = 0;\n var hi = table.length - 1;\n var prevSource, nextSource, prevTarget, nextTarget;\n\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n var _lookupByKey2 = _lookupByKey(table, 'pos', val);\n\n lo = _lookupByKey2.lo;\n hi = _lookupByKey2.hi;\n }\n\n var _table$lo = table[lo];\n prevSource = _table$lo.pos;\n prevTarget = _table$lo.time;\n var _table$hi = table[hi];\n nextSource = _table$hi.pos;\n nextTarget = _table$hi.time;\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n var _lookupByKey3 = _lookupByKey(table, 'time', val);\n\n lo = _lookupByKey3.lo;\n hi = _lookupByKey3.hi;\n }\n\n var _table$lo2 = table[lo];\n prevSource = _table$lo2.time;\n prevTarget = _table$lo2.pos;\n var _table$hi2 = table[hi];\n nextSource = _table$hi2.time;\n nextTarget = _table$hi2.pos;\n }\n\n var span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\n\nvar TimeSeriesScale = /*#__PURE__*/function (_TimeScale) {\n _inherits(TimeSeriesScale, _TimeScale);\n\n var _super25 = _createSuper(TimeSeriesScale);\n\n function TimeSeriesScale(props) {\n var _this19;\n\n _classCallCheck(this, TimeSeriesScale);\n\n _this19 = _super25.call(this, props);\n _this19._table = [];\n _this19._minPos = undefined;\n _this19._tableRange = undefined;\n return _this19;\n }\n\n _createClass(TimeSeriesScale, [{\n key: \"initOffsets\",\n value: function initOffsets() {\n var me = this;\n\n var timestamps = me._getTimestampsForTable();\n\n var table = me._table = me.buildLookupTable(timestamps);\n me._minPos = interpolate(table, me.min);\n me._tableRange = interpolate(table, me.max) - me._minPos;\n\n _get(_getPrototypeOf(TimeSeriesScale.prototype), \"initOffsets\", this).call(this, timestamps);\n }\n }, {\n key: \"buildLookupTable\",\n value: function buildLookupTable(timestamps) {\n var min = this.min,\n max = this.max;\n var items = [];\n var table = [];\n var i, ilen, prev, curr, next;\n\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n\n if (items.length < 2) {\n return [{\n time: min,\n pos: 0\n }, {\n time: max,\n pos: 1\n }];\n }\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({\n time: curr,\n pos: i / (ilen - 1)\n });\n }\n }\n\n return table;\n }\n }, {\n key: \"_getTimestampsForTable\",\n value: function _getTimestampsForTable() {\n var me = this;\n var timestamps = me._cache.all || [];\n\n if (timestamps.length) {\n return timestamps;\n }\n\n var data = me.getDataTimestamps();\n var label = me.getLabelTimestamps();\n\n if (data.length && label.length) {\n timestamps = me.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n\n timestamps = me._cache.all = timestamps;\n return timestamps;\n }\n }, {\n key: \"getDecimalForValue\",\n value: function getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var me = this;\n var offsets = me._offsets;\n var decimal = me.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(me._table, decimal * me._tableRange + me._minPos, true);\n }\n }]);\n\n return TimeSeriesScale;\n}(TimeScale);\n\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\nvar scales = /*#__PURE__*/Object.freeze({\n __proto__: null,\n CategoryScale: CategoryScale,\n LinearScale: LinearScale,\n LogarithmicScale: LogarithmicScale,\n RadialLinearScale: RadialLinearScale,\n TimeScale: TimeScale,\n TimeSeriesScale: TimeSeriesScale\n});\nvar registerables = [controllers, elements, plugins, scales];\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, plugin_filler as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, animator, controllers, elements, layouts, plugins, registerables, registry, scales };","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && _typeof(module.exports) === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n // enough that all such attempts are guarded in a try block.\n \"use strict\";\n\n var arr = [];\n var getProto = Object.getPrototypeOf;\n var _slice = arr.slice;\n var flat = arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n\n var isFunction = function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n // Plus for old WebKit, typeof returns \"function\" for HTML collections\n // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n };\n\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n\n var document = window.document;\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(obj);\n }\n /* global Symbol */\n // Defining this global in .eslintrc.json would create a danger of using the global\n // unguarded in another place, it seems safer to define global only for this module\n\n\n var version = \"3.6.0\",\n // Define a local copy of jQuery\n jQuery = function jQuery(selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function get(num) {\n // Return all the elements in a clean array\n if (num == null) {\n return _slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n even: function even() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function odd() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (_typeof(target) !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n isPlainObject: function isPlainObject(obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function globalEval(code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function funescape(escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function unloadHandler() {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n setDocument(context);\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\");\n }\n\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n } // release memory in IE\n\n\n el = null;\n }\n }\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n\n\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem && elem.namespaceURI,\n docElem = elem && (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\n };\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n\n\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input; // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n\n docElem.appendChild(el).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n\n\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n } // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n return -1;\n } // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 :\n /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 :\n /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function ATTR(match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function CHILD(match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function PSEUDO(match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function TAG(nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function CLASS(className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function ATTR(name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n /* eslint-disable max-len */\n\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n /* eslint-enable max-len */\n };\n },\n \"CHILD\": function CHILD(type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function PSEUDO(pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function target(elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function root(elem) {\n return elem === docElem;\n },\n \"focus\": function focus(elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function checked(elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function selected(elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function empty(elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function parent(elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function header(elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function input(elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function button(elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function text(elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n\n return false;\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function superMatcher(seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0; // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\n };\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (el) {\n el.innerHTML = \"\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, _name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n\n var dir = function dir(elem, _dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[_dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var _siblings = function siblings(n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function has(target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n if (elem.contentDocument != null && // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n _fired,\n // Flag to prevent firing\n _locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function fire() {\n // Enforce single-firing\n _locked = _locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function add() {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function lock() {\n _locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function _catch(fn) {\n return _promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function pipe()\n /* fnDone, fnFail, fnProgress */\n {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function then(onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function mightThrow() {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n _typeof(returned) === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n _state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = _slice.call(arguments),\n // the primary Deferred\n primary = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function updateFunc(i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? _slice.call(arguments) : value;\n\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n\n return primary.promise();\n }\n }); // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n }; // The deferred used on DOM ready\n\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n } // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n } // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n }; // Matches dashed string for camelizing\n\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n } // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (#9572)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n var acceptData = function acceptData(owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function cache(owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function set(owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function get(owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function access(owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function remove(owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function hasData(owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n var dataPriv = new Data();\n var dataUser = new Data(); //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n } // Only convert to a number if it doesn't change the string\n\n\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n }\n\n function dataAttr(elem, key, data) {\n var name; // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function hasData(elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function data(elem, name, _data) {\n return dataUser.access(elem, name, _data);\n },\n removeData: function removeData(elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function _data(elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function _removeData(elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function data(key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (_typeof(key) === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data; // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n\n if (data !== undefined) {\n return data;\n } // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n\n\n data = dataAttr(elem, key);\n\n if (data !== undefined) {\n return data;\n } // We tried really hard, but the data doesn't exist.\n\n\n return;\n } // Set the data...\n\n\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function removeData(key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\n\n var isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n var isHiddenWithinTree = function isHiddenWithinTree(elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n var defaultDisplayMap = {};\n\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n\n if (display) {\n return display;\n }\n\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n\n if (display === \"none\") {\n display = \"block\";\n }\n\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length; // Determine new display value for elements that need to change\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n display = elem.style.display;\n\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\"; // Remember what we're overwriting\n\n dataPriv.set(elem, \"display\", display);\n }\n }\n } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n\n return elements;\n }\n\n jQuery.fn.extend({\n show: function show() {\n return showHide(this, true);\n },\n hide: function hide() {\n return showHide(this);\n },\n toggle: function toggle(state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })(); // We have to close these tags to support XHTML (#13200)\n\n\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (_typeof(types) === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function dispatch(nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = _handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < _handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: _handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function addProp(name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function set(value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function fix(originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function setup(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function trigger(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function _default(event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function postDispatch(event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function handler(event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = _slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault(); // Support: Chrome 86+\n // In Chrome, if an element having a focusout handler is blurred by\n // clicking outside of it, it invokes the handler synchronously. If\n // that handler calls `.remove()` on the element, the data is cleared,\n // leaving `result` undefined. We need to guard against this.\n\n return result && result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\n }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function preventDefault() {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: true\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function setup() {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function trigger() {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n // Suppress native focus or blur as it's already being fired\n // in leverageNative.\n _default: function _default() {\n return true;\n },\n delegateType: delegateType\n };\n }); // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function handle(event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function on(types, selector, data, fn) {\n return _on(this, types, selector, data, fn);\n },\n one: function one(types, selector, data, fn) {\n return _on(this, types, selector, data, fn, 1);\n },\n off: function off(types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (_typeof(types) === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function _remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function htmlPrefilter(html) {\n return html;\n },\n clone: function clone(elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function cleanData(elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function detach(selector) {\n return _remove(this, selector, true);\n },\n remove: function remove(selector) {\n return _remove(this, selector);\n },\n text: function text(value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function append() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function prepend() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function before() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function after() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function empty() {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function clone(dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function html(value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function replaceWith() {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getStyles = function getStyles(elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n\n var swap = function swap(elem, options, callback) {\n var ret,\n name,\n old = {}; // Remember the old values, and insert the new ones\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.call(elem); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function boxSizingReliable() {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function pixelBoxStyles() {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function pixelPosition() {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function reliableMarginLeft() {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function scrollboxSize() {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n //\n // Support: Firefox 70+\n // Only Firefox includes border widths\n // in computed dimensions. (gh-4529)\n reliableTrDimensions: function reliableTrDimensions() {\n var table, tr, trChild, trStyle;\n\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n tr.style.cssText = \"border:1px solid\"; // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\"; // Support: Android 8 Chrome 86+\n // In our bodyBackground.html iframe,\n // display for all div elements is set to \"inline\",\n // which causes a problem only in Android 8 Chrome 86.\n // Ensuring the div is display: block\n // gets around this issue.\n\n trChild.style.display = \"block\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function get() {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n\n if (final) {\n return final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n\n\n if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function get(elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function style(elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = _typeof(value); // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function css(elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function get(elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function set(elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function expand(value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function css(name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function init(elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function cur() {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function run(percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function get(tween) {\n var result; // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n } // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n\n\n result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function set(tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n }; // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function set(tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function linear(p) {\n return p;\n },\n swing: function swing(p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function tick() {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function createTween(prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function stop(gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function tweener(props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function prefilter(callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && _typeof(speed) === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function fadeTo(speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function animate(prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function doAnimation() {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function stop(type, clearQueue, gotoEnd) {\n var stopQueue = function stopQueue(hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function finish(type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n }; // Based off of the plugin by Clint Helfers, with permission.\n // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function attr(name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function attr(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n } // Fallback to prop when attributes are not supported\n\n\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n } // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n elem.setAttribute(name, value + \"\");\n return value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function set(elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n },\n removeAttr: function removeAttr(elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n }); // Hooks for boolean attributes\n\n boolHook = {\n set: function set(elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function prop(name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function removeProp(name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function prop(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function get(elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n }); // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function get(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function set(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n }); // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n\n return [];\n }\n\n jQuery.fn.extend({\n addClass: function addClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function removeClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem); // This expression is here for better compressibility (see addClass)\n\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function toggleClass(value, stateVal) {\n var type = _typeof(value),\n isValidValue = type === \"string\" || Array.isArray(value);\n\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n\n return this.each(function () {\n var className, i, self, classNames;\n\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n\n while (className = classNames[i++]) {\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n } // Toggle whole class name\n\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n } // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function hasClass(selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function val(value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value; // Handle most common string cases\n\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } // Handle cases where value is null/undef or number\n\n\n return ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n } // Treat null/undefined as \"\"; convert numbers to string\n\n\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function get(elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : // Support: IE <=10 - 11 only\n // option.text throws exceptions (#14686, #14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function get(elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n } // Loop through all the selected options\n\n\n for (; i < max; i++) {\n option = options[i]; // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n\n if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val(); // We don't need an array for one selects\n\n if (one) {\n return value;\n } // Multi-Selects return an array\n\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function set(elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n /* eslint-enable no-cond-assign */\n\n } // Force browsers to behave consistently when non-matching value is set\n\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n }); // Radios and checkboxes getter/setter\n\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function set(elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n }); // Return jQuery for attributes-only inclusion\n\n support.focusin = \"onfocusin\" in window;\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function stopPropagationCallback(e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function simulate(type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function trigger(type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function triggerHandler(type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n }); // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function handler(event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n\n jQuery.event.special[fix] = {\n setup: function setup() {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function teardown() {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml, parserErrorElem;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {}\n\n parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n\n if (!xml || parserErrorElem) {\n jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n return el.textContent;\n }).join(\"\\n\") : data));\n }\n\n return xml;\n };\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (_typeof(v) === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function add(key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function serialize() {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function serializeArray() {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\n }\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n } // Check to see if we have a response for the expected dataType\n\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function ajaxSetup(target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function ajax(url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (_typeof(url) === \"object\") {\n options = url;\n url = undefined;\n } // Force options to be an object\n\n\n options = options || {};\n\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n _statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function getResponseHeader(key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function getAllResponseHeaders() {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function setRequestHeader(name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function overrideMimeType(type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function statusCode(map) {\n var code;\n\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n _statusCode[code] = [_statusCode[code], map[code]];\n }\n }\n }\n\n return this;\n },\n // Cancel the request\n abort: function abort(statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\n } // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script but not if jsonp\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(_statusCode);\n _statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function getJSON(url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function getScript(url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n } // The url can be an options object (which then must have .url)\n\n\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (#11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function textScript() {}\n },\n dataFilter: function dataFilter(response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n\n jQuery.fn.extend({\n wrapAll: function wrapAll(html) {\n var wrap;\n\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n } // The elements to wrap the target around\n\n\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function wrapInner(html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function wrap(html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function unwrap(selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // #1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var _callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest\n\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function send(headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n } // Override mime type if needed\n\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n } // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n } // Set headers\n\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n } // Callback\n\n\n _callback = function callback(type) {\n return function () {\n if (_callback) {\n _callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete( // File: protocol always yields status 0; see #8605, #14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n }; // Listen to events\n\n\n xhr.onload = _callback();\n errorCallback = xhr.onerror = xhr.ontimeout = _callback(\"error\"); // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (_callback) {\n errorCallback();\n }\n });\n }\n };\n } // Create the abort callback\n\n\n _callback = _callback(\"abort\");\n\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // #14683: Only rethrow if this hasn't been notified as an error yet\n if (_callback) {\n throw e;\n }\n }\n },\n abort: function abort() {\n if (_callback) {\n _callback();\n }\n }\n };\n }\n }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n }); // Install script dataType\n\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function textScript(text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n }); // Handle cache's special case and crossDomain\n\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n }); // Bind script tag hack transport\n\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, _callback2;\n\n return {\n send: function send(_, complete) {\n script = jQuery(\"