{"version":3,"sources":["webpack:///./src/components/Charts/BarChart.js","webpack:///./src/components/Charts/roundedCornersExtension.js","webpack:///./src/components/Charts/globalOptionsMixin.js","webpack:///./node_modules/element-ui/lib/dropdown-item.js","webpack:///./node_modules/vue-chartjs/es/mixins/index.js","webpack:///./node_modules/vue-chartjs/es/BaseCharts.js","webpack:///./src/components/WorldMap/WorldMap.vue?f127","webpack:///./src/util/throttle.js","webpack:///src/components/WorldMap/WorldMap.vue","webpack:///./src/components/WorldMap/WorldMap.vue?56e3","webpack:///./src/components/WorldMap/WorldMap.vue","webpack:///./node_modules/chart.js/dist/Chart.js","webpack:///./node_modules/core-js/modules/_array-fill.js","webpack:///./node_modules/core-js/modules/_object-to-array.js","webpack:///./src/components/Charts/LineChart.js","webpack:///./node_modules/core-js/modules/es6.array.fill.js","webpack:///./node_modules/element-ui/lib/button-group.js","webpack:///./node_modules/core-js/modules/es7.object.values.js","webpack:///./node_modules/topojson/build/topojson.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./src/components/Charts/optionHelpers.js","webpack:///./src/components/Charts/config.js","webpack:///./node_modules/element-ui/lib/dropdown.js","webpack:///./node_modules/element-ui/lib/dropdown-menu.js","webpack:///./src/views/Dashboard/Dashboard.vue?850b","webpack:///./src/views/Dashboard/ActivityFeed.vue?2a91","webpack:///./src/components/Feed/Comment.vue?3cfa","webpack:///src/components/Feed/Comment.vue","webpack:///./src/components/Feed/Comment.vue?c1b8","webpack:///./src/components/Feed/Comment.vue","webpack:///src/views/Dashboard/ActivityFeed.vue","webpack:///./src/views/Dashboard/ActivityFeed.vue?510f","webpack:///./src/views/Dashboard/ActivityFeed.vue","webpack:///./src/views/Dashboard/TaskList.vue?35ef","webpack:///src/views/Dashboard/TaskList.vue","webpack:///./src/views/Dashboard/TaskList.vue?ff98","webpack:///./src/views/Dashboard/TaskList.vue","webpack:///./src/views/Dashboard/UserList.vue?9f92","webpack:///src/views/Dashboard/UserList.vue","webpack:///./src/views/Dashboard/UserList.vue?19e9","webpack:///./src/views/Dashboard/UserList.vue","webpack:///./src/views/Dashboard/LightTable.vue?bf3a","webpack:///src/views/Dashboard/LightTable.vue","webpack:///./src/views/Dashboard/LightTable.vue?f1e2","webpack:///./src/views/Dashboard/LightTable.vue","webpack:///./src/views/Dashboard/SocialTrafficTable.vue?dab5","webpack:///src/views/Dashboard/SocialTrafficTable.vue","webpack:///./src/views/Dashboard/SocialTrafficTable.vue?998e","webpack:///./src/views/Dashboard/SocialTrafficTable.vue","webpack:///./src/views/Dashboard/PageVisitsTable.vue?b3a2","webpack:///src/views/Dashboard/PageVisitsTable.vue","webpack:///./src/views/Dashboard/PageVisitsTable.vue?38ec","webpack:///./src/views/Dashboard/PageVisitsTable.vue","webpack:///src/views/Dashboard/Dashboard.vue","webpack:///./src/views/Dashboard/Dashboard.vue?86a0","webpack:///./src/views/Dashboard/Dashboard.vue","webpack:///./src/views/Dashboard/AlternativeDashboard.vue?891b","webpack:///./src/views/Widgets/MembersCard.vue?e718","webpack:///src/views/Widgets/MembersCard.vue","webpack:///./src/views/Widgets/MembersCard.vue?fe3a","webpack:///./src/views/Widgets/MembersCard.vue","webpack:///./src/views/Widgets/TaskList.vue?5a6f","webpack:///src/views/Widgets/TaskList.vue","webpack:///./src/views/Widgets/TaskList.vue?7069","webpack:///./src/views/Widgets/TaskList.vue","webpack:///./src/views/Dashboard/quotations.vue?ceed","webpack:///src/views/Dashboard/quotations.vue","webpack:///./src/views/Dashboard/quotations.vue?5872","webpack:///./src/views/Dashboard/quotations.vue","webpack:///./src/views/Dashboard/expiredReservations.vue?dabc","webpack:///src/views/Dashboard/expiredReservations.vue","webpack:///./src/views/Dashboard/expiredReservations.vue?f6eb","webpack:///./src/views/Dashboard/expiredReservations.vue","webpack:///./src/views/Widgets/VectorMapCard.vue?ac05","webpack:///src/views/Widgets/VectorMapCard.vue","webpack:///./src/views/Widgets/VectorMapCard.vue?a037","webpack:///./src/views/Widgets/VectorMapCard.vue","webpack:///src/views/Dashboard/AlternativeDashboard.vue","webpack:///./src/views/Dashboard/AlternativeDashboard.vue?fca2","webpack:///./src/views/Dashboard/AlternativeDashboard.vue","webpack:///./src/views/Dashboard/ProgressTrackList.vue?70d1","webpack:///src/views/Dashboard/ProgressTrackList.vue","webpack:///./src/views/Dashboard/ProgressTrackList.vue?2fe1","webpack:///./src/views/Dashboard/ProgressTrackList.vue"],"names":["name","extends","Bar","mixins","reactiveProp","globalOptionsMixin","props","extraOptions","type","Object","default","data","ctx","mounted","this","$watch","newVal","oldVal","renderChart","chartData","immediate","Chart","elements","Rectangle","prototype","draw","left","right","top","bottom","signX","signY","borderSkipped","_chart","vm","_view","borderWidth","cornerRadius","horizontal","base","x","y","height","width","barSize","Math","min","abs","halfStroke","borderLeft","borderRight","borderTop","borderBottom","beginPath","fillStyle","backgroundColor","strokeStyle","borderColor","lineWidth","corners","borders","startCorner","indexOf","cornerAt","index","corner","moveTo","i","nextCornerId","radius","lineTo","quadraticCurveTo","fill","stroke","initGlobalOptions","module","exports","modules","installedModules","__webpack_require__","moduleId","l","call","m","c","d","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","hasOwnProperty","p","s","0","rawScriptExports","compiledTemplate","functionalTemplate","injectStyles","scopeId","moduleIdentifier","esModule","scriptExports","hook","options","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","existing","beforeCreate","_injectStyles","h","concat","1","80","_dropdownItem","_dropdownItem2","_interopRequireDefault","obj","install","Vue","component","81","__webpack_exports__","value","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_646df6c7_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_item_vue__","normalizeComponent","__vue_template_functional__","__vue_styles__","__vue_scopeId__","__vue_module_identifier__","Component","a","82","_emitter","_emitter2","command","disabled","Boolean","divided","methods","handleClick","e","dispatch","83","_vm","_h","$createElement","_c","_self","staticClass","class","attrs","on","_t","esExports","dataHandler","newData","oldData","chart","$data","newDatasetLabels","datasets","map","dataset","label","oldDatasetLabels","oldLabels","JSON","stringify","newLabels","length","forEach","oldDatasetKeys","keys","newDatasetKeys","deletionKeys","filter","key","attribute","deletionKey","labels","$emit","xLabels","yLabels","update","destroy","reactiveData","watch","required","generateChart","chartId","chartType","createElement","style","styles","cssClasses","id","ref","String","Number","plugins","Array","_plugins","addPlugin","plugin","push","generateLegend","$refs","canvas","Error","getContext","beforeDestroy","Line","throttle","handlerFunc","resizeTimeout","timeout","setTimeout","mapData","points","randomString","color1","color2","highlightFillColor","highlightBorderColor","bubbleHighlightFillColor","bubbleFillColor","generateColors","d3","generateMapColors","defaultFill","fills","colors","val","fillKey","text","possible","charAt","floor","random","global","factory","moment","createCommonjsModule","fn","getCjsExportFromNamespace","colorName","conversions","reverseKeywords","convert","rgb","channels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","model","comparativeDistance","pow","r","g","b","max","delta","rdif","gdif","bdif","v","diff","diffc","w","k","reversed","currentClosestKeyword","currentClosestDistance","Infinity","distance","z","t1","t2","t3","sv","smin","lmin","hi","f","q","t","sl","vmin","wh","bl","ratio","y2","x2","z2","hr","atan2","PI","sqrt","cos","sin","args","arguments","round","ansi","color","mult","rem","integer","string","toString","toUpperCase","substring","match","colorString","split","char","join","parseInt","grayscale","hue","chroma","pure","mg","buildGraph","graph","models","len","deriveBFS","fromModel","queue","current","pop","adjacents","adjacent","node","unshift","link","from","to","wrapConversion","toModel","path","cur","conversion","route","wrapRaw","wrappedFn","undefined","slice","wrapRounded","result","routes","routeModels","raw","colorConvert","colorName$1","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","abbr","rgba","per","hexAlpha","parseFloat","scale","alpha","isNaN","hsla","vals","hexDouble","reverseNames","num","str","Color","valid","values","setValues","red","lightness","whiteness","cyan","isValid","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","green","blue","saturation","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","lum1","lum2","level","contrastRatio","dark","yiq","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","w1","w2","toJSON","clone","source","target","prop","console","error","spaces","maxes","getValues","space","capped","chans","sname","svalues","window","chartjsColor","isValidKey","helpers","noop","uid","isNullOrUndef","isArray","substr","isObject","isFinite","valueOrDefault","defaultValue","valueAtIndexOrDefault","callback","thisArg","apply","each","loopable","reverse","arrayEquals","a0","a1","ilen","v0","v1","create","klen","_merger","tval","sval","merge","_mergerIf","mergeIf","sources","merger","extend","assign","dst","src","inherits","extensions","me","ChartElement","constructor","Surrogate","__super__","_deprecated","scope","previous","warn","helpers_core","callCallback","array","item","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","clear","clearRect","roundedRect","arc","closePath","rect","drawPoint","rotation","xOffset","yOffset","size","rad","save","translate","drawImage","restore","SQRT1_2","_isPointInArea","point","area","epsilon","clipArea","clip","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","defaults","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","toFontString","font","family","helpers_options","toLineHeight","matches","toPadding","_parseFont","globalDefaults","fontSize","fontFamily","lineHeight","fontStyle","resolve","inputs","info","cacheable","exports$2","_factorize","sort","log10","exponent","log","LOG10E","powerOf10","isPowerOf10","helpers_math","getRtlAdapter","rectX","setWidth","textAlign","align","xPlus","leftForLtr","itemWidth","getLtrAdapter","_itemWidth","getAdapter","rtl","overrideTextDirection","direction","original","getPropertyValue","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","helpers_rtl","helpers$1","easing","math","interpolate","start","view","ease","actual","origin","c0","c1","Element","configuration","initialize","_type","hidden","pivot","_model","_start","transition","tooltipPosition","hasValue","isNumber","core_element","exports$3","currentStep","numSteps","onAnimationProgress","onAnimationComplete","core_animation","set","animation","duration","onProgress","onComplete","core_animations","animations","request","addAnimation","lazy","startTime","Date","now","animating","requestAnimationFrame","cancelAnimation","findIndex","splice","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","method","res","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","meta","scales","getDataset","scalesOpts","xAxisID","xAxes","yAxisID","yAxes","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","reset","_update","_data","createMetaDataset","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","element","updateElement","buildOrUpdateElements","isExtensible","resyncElements","_configure","_config","_cachedDataOpts","easingValue","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","hover","readKey","datasetOpts","custom","elementOptions","cached","dataIndex","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","prev","numMeta","numData","insertElements","count","onDataPush","onDataPop","onDataShift","shift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawFullCircleBorders","inner","fullCircles","drawBorder","borderAlign","lineJoin","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","valueOrDefault$1","line","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","skip","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","hitRadius","yRange","mouseY","pointStyle","element_point","inXRange","inYRange","padding","chartArea","defaultColor$2","isVertical","getBarBounds","x1","y1","half","swap","orig","v2","parseBorderSkipped","edge","parseBorderWidth","maxW","maxH","boundingRects","bounds","border","outer","skipX","skipY","rectangle","element_rectangle","rects","fillRect","Arc","Point","deprecated","valueOrDefault$3","computeMinSampleSize","pixels","curr","_length","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","chunk","computeFlexCategoryTraits","next","percent","end","mode","offset","gridLines","offsetGridLines","bar","controller_bar","scaleOpts","stack","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","center","_getStacks","last","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","range","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","position","tooltips","callbacks","title","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","NaN","_options","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","listItemSpan","list","document","setAttribute","appendChild","createTextNode","outerHTML","legend","generateLabels","controller","onClick","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","j","isDatasetVisible","maxWidth","maxHeight","opts","ratioX","ratioY","offsetX","offsetY","arcs","cutout","chartWeight","_getRingWeight","startX","startY","endX","endY","contains0","contains90","contains180","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","ticks","defaultClip","toClip","controller_line","config","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","pt","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","display","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","controller_scatter","controllers","bubble","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","handler","metadata","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","items","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","pos","sortByWeight","wrapBoxes","boxes","box","layoutBoxes","setLayoutDims","layouts","params","layout","fullWidth","availableWidth","vBoxMaxWidth","hBoxMaxHeight","buildLayoutBoxes","leftAndTop","rightAndBottom","vertical","getCombinedMax","maxPadding","updateDims","newWidth","newHeight","getPadding","boxPadding","outerWidth","outerHeight","sizes","handleMaxPadding","updatePos","change","getMargins","marginForPositions","positions","margin","fitBoxes","refit","changed","refitBoxes","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","configure","layoutOptions","availableHeight","verticalBoxes","horizontalBoxes","platform_basic","acquireContext","platform_dom","platform_dom$1","__proto__","stylesheet","EXPANDO_KEY","CSS_PREFIX","CSS_SIZE_MONITOR","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","initCanvas","renderHeight","getAttribute","renderWidth","initial","displayWidth","aspectRatio","displayHeight","supportsEventListenerOptions","supports","addEventListener","eventListenerOptions","passive","addListener","removeListener","removeEventListener","createEvent","nativeEvent","fromNativeEvent","event","throttled","ticking","createDiv","cls","el","className","createResizer","maxSize","resizer","expand","shrink","_reset","scrollLeft","scrollTop","onScroll","bind","watchForRender","expando","proxy","renderProxy","animationName","reflow","offsetParent","classList","unwatchForRender","remove","addResizeListener","container","maintainAspectRatio","parentNode","clientWidth","insertBefore","firstChild","removeResizeListener","removeChild","injectCSS","rootNode","css","containsStyles","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","root","getRootNode","targetNode","host","getElementById","releaseContext","removeAttribute","proxies","addEvent","removeEvent","implementation","platform","core_plugins","_cacheId","register","unregister","idx","getAll","notify","descriptor","descriptors","cache","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","enabled","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","activeElement","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","opacity","legendColorBackground","getTooltipSize","tooltip","body","combinedBodyLength","reduce","bodyItem","before","lines","after","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","determineAlignment","lf","rf","olf","orf","yf","midX","midY","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","existingModel","active","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","tmp","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","initConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","prefix","hasId","positionIsHorizontal","compare2Level","l1","l2","events","onHover","animationDuration","responsive","responsiveAnimationDuration","construct","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","stop","silent","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","order","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","core_controller","Controller","types","configMerge","scaleMerge","core_helpers","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","collection","filterCallback","filtered","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","almostEquals","almostWhole","rounded","NEGATIVE_INFINITY","sign","toRadians","toDegrees","radians","_decimalPlaces","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","loop","niceNum","niceFraction","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","evt","originalEvent","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","paddingLeft","paddingTop","paddingRight","paddingBottom","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","clientHeight","ch","currentStyle","forceRatio","pixelRatio","pixelSize","longestText","arrayOfThings","gc","garbageCollect","thing","nestedThing","longest","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","abstract","DateAdapter","formats","parse","format","startOf","endOf","_create","override","members","_date","core_adapters","core_ticks","formatters","tickValue","logDelta","tickString","maxTick","logTick","numExponential","toExponential","numDecimal","toFixed","logarithmic","remain","valueOrDefault$a","sample","arr","numItems","increment","getPixelForGridLine","validIndex","lineValue","caches","computeLabelSizes","tickFonts","tickFont","nestedLabel","widest","highest","widths","heights","offsets","widestLabelSize","highestLabelSize","major","minor","valueAt","first","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","getEvenSpacing","calculateSpacing","majorIndices","axisLength","ticksLimit","factors","factor","evenMajorSpacing","spacing","getMajorIndices","skipMajors","tick","ceil","majorStart","majorEnd","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","lineSpace","tickPadding","isRotated","angleRadians","cosRotation","sinRotation","labelHeight","offsetLeft","offsetRight","labelWidth","handleMargins","isFullWidth","rawValue","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","getBaseValue","avgMajorSpacing","maxTicksLimit","_tickSize","numMajorIndices","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","defaultConfig","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","generateTicks","generationOptions","dataRange","niceMin","niceMax","numSpaces","MIN_SPACING","stepSize","unit","maxNumSpaces","maxTicks","precision","rmin","rmax","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","ticksAsNumbers","_endValue","defaultConfig$1","DEFAULT_MIN","DEFAULT_MAX","getOrCreateStack","neg","stackData","relativePoints","updateMinMax","scale_linear","hasStacks","stackValues","_defaults$1","valueOrDefault$b","generateTicks$1","exp","significand","tickVal","endExp","endSignificand","minNotZero","lastTick","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","valuesPerStack","valuesForType","minVal","maxVal","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","textSize","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","drawingArea","getIndexAngle","hLimits","vLimits","setReductions","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","pointLabelOpts","tickBackdropHeight","outerDistance","extra","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","param","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","angleMultiplier","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","millisecond","common","steps","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","arrayUnique","hash","out","getMin","time","getMax","buildLookupTable","timestamps","distribution","table","lookup","mid","i0","i1","lo","interpolate$1","skey","tkey","span","toTimestamp","input","adapter","_adapter","parser","determineUnitForAutoTicks","minUnit","capacity","interval","determineUnitForFormatting","determineMajorUnit","generate","timeOpts","unitStepSize","weekday","isoWeekday","computeOffsets","setMajorTicks","majorUnit","ticksFromTimestamps","defaultConfig$4","adapters","displayFormat","displayFormats","scale_time","date","timestamp","labelsAdded","dataLabels","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","tooltipFormat","datetime","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","category","radialLinear","FORMATS","_id","valueOf","amount","filler","propagate","mappers","visible","boundary","decodeFill","computeLinearBoundary","scaleBottom","scaleTop","scaleZero","computeCircularBoundary","cx","cy","computeBoundary","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","p0","p1","d0","d1","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","cursor","drawLegendBox","SQRT2","halfFontSize","xLeft","yMiddle","alignmentOffset","dimension","blockSize","itemHeight","realX","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","plugin_title","_adapters","Animation","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","toLowerCase","toObject","toAbsoluteIndex","toLength","O","aLen","endPos","DESCRIPTORS","getKeys","toIObject","isEnum","isEntries","it","$export","P","155","_buttonGroup","_buttonGroup2","156","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0c71b59b_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_group_vue__","157","158","$values","S","transformAbsolute","transform","x0","y0","kx","ky","dx","dy","transformRelative","bisect","feature","topology","features","geometries","feature$1","properties","geometry","absolute","ring","polygon","geometryType","coordinates","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","stitchArcs","stitchedArcs","fragmentByStart","fragmentByEnd","fragments","emptyIndex","ends","dp","flush","fg","gf","mesh","meshArcs","geomsByArc","geom","geoms","cartesianTriangleArea","triangle","mergeArcs","objects","polygonsByArc","polygons","components","ring$$","_","neighbors","ki","indexesByArc","indexes","ij","ik","compareArea","minAreaHeap","heap","up","down","child","removed","presimplify","triangleArea","relative","triangles","maxArea","version","_typeof","Symbol","iterator","parseOptions","Charts","100","200","300","400","500","600","700","800","900","theme","white","transparent","chartOptions","content","bgColor","initialized","basicOptions","blueChartOptions","10","15","2","72","_dropdown","_dropdown2","73","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue___default","__vue_template__","74","_clickoutside","_clickoutside2","_migrating","_migrating2","_button","_button2","_util","componentName","directives","Clickoutside","ElButton","ElButtonGroup","provide","dropdown","trigger","splitButton","hideOnClick","placement","visibleArrow","showTimeout","hideTimeout","triggerElm","menuItems","menuItemsArray","dropdownElm","focusing","listId","generateId","computed","dropdownSize","$ELEMENT","$on","handleMenuItemClick","initEvent","initAria","broadcast","selfDefine","$el","querySelector","replace","getMigratingConfig","show","_this","clearTimeout","hide","_this2","removeTabindex","resetTabindex","handleTriggerKeyDown","ev","keyCode","focus","preventDefault","stopPropagation","handleItemKeyDown","currentIndex","nextIndex","click","ele","querySelectorAll","_this3","$slots","elm","instance","_this4","handleMainButtonClick","nativeOn","75","8","7","76","_dropdownMenu","_dropdownMenu2","77","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_menu_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_menu_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0b7ce9da_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_menu_vue__","78","_vuePopper","_vuePopper2","arrowOffset","inject","created","showPopper","updatePopper","$parent","popperElm","referenceElm","currentPlacement","79","doDestroy","rawName","expression","_v","slot","bigLineChart","activeIndex","$event","initBigChart","redBarChart","scopedSlots","_u","userImage","_s","userName","domProps","likeCount","shareCount","_l","_obj","done","checkType","description","$$v","$set","user","img","status","BaseProgress","users","projects","itemLimit","row","completion","statusType","tableData","progress","progressType","page","bounceRateDirection","bounceRate","language_terms","loading","_e","dashboard_summary","expired_reservations","membersSearch","member","image","viewAll","clickOnDetails","code","currency_prefix","nett_amount","product_code","product_name"],"mappings":"8HAAA,4BAGe,QACbA,KAAM,YACNC,QAASC,OACTC,OAAQ,CAACA,OAAOC,aAAcC,QAC9BC,MAAO,CACLC,aAAc,CACZC,KAAMC,OACNC,QAAS,iBAAO,MAGpBC,KAVa,WAWX,MAAO,CACLC,IAAK,OAGTC,QAfa,WAeH,WACRC,KAAKC,OACH,aACA,SAACC,EAAQC,GACFA,GACH,EAAKC,YAAY,EAAKC,UAAW,EAAKZ,gBAG1C,CAAEa,WAAW,O,mFCrBnBC,IAAMC,SAASC,UAAUC,UAAUC,KAAO,WAExC,IAEIC,EAAMC,EAAOC,EAAKC,EAAQC,EAAOC,EAAOC,EAFxCpB,EAAME,KAAKmB,OAAOrB,IAClBsB,EAAKpB,KAAKqB,MAEVC,EAAcF,EAAGE,YAGjBC,EAAe,EAwBnB,GAtBKH,EAAGI,YAWNZ,EAAOQ,EAAGK,KACVZ,EAAQO,EAAGM,EACXZ,EAAMM,EAAGO,EAAIP,EAAGQ,OAAS,EACzBb,EAASK,EAAGO,EAAIP,EAAGQ,OAAS,EAC5BZ,EAAQH,EAAQD,EAAO,GAAK,EAC5BK,EAAQ,EACRC,EAAgBE,EAAGF,eAAiB,SAfpCN,EAAOQ,EAAGM,EAAIN,EAAGS,MAAQ,EACzBhB,EAAQO,EAAGM,EAAIN,EAAGS,MAAQ,EAC1Bf,EAAMM,EAAGO,EACTZ,EAASK,EAAGK,KACZT,EAAQ,EACRC,EAAQF,EAASD,EAAM,GAAK,EAC5BI,EAAgBE,EAAGF,eAAiB,UAclCI,EAAa,CAEf,IAAIQ,EAAUC,KAAKC,IAAID,KAAKE,IAAIrB,EAAOC,GAAQkB,KAAKE,IAAInB,EAAMC,IAC9DO,EAAcA,EAAcQ,EAAUA,EAAUR,EAChD,IAAIY,EAAaZ,EAAc,EAE3Ba,EAAavB,GAA0B,SAAlBM,EAA2BgB,EAAalB,EAAQ,GACrEoB,EAAcvB,GAA2B,UAAlBK,GAA6BgB,EAAalB,EAAQ,GACzEqB,EAAYvB,GAAyB,QAAlBI,EAA0BgB,EAAajB,EAAQ,GAClEqB,EAAevB,GAA4B,WAAlBG,GAA8BgB,EAAajB,EAAQ,GAE5EkB,IAAeC,IACjBtB,EAAMuB,EACNtB,EAASuB,GAGPD,IAAcC,IAChB1B,EAAOuB,EACPtB,EAAQuB,GAIZtC,EAAIyC,YACJzC,EAAI0C,UAAYpB,EAAGqB,gBACnB3C,EAAI4C,YAActB,EAAGuB,YACrB7C,EAAI8C,UAAYtB,EAKhB,IAAIuB,EAAU,CACZ,CAACjC,EAAMG,GACP,CAACH,EAAME,GACP,CAACD,EAAOC,GACR,CAACD,EAAOE,IAIN+B,EAAU,CAAC,SAAU,OAAQ,MAAO,SACpCC,EAAcD,EAAQE,QAAQ9B,EAAe,GAKjD,SAAS+B,EAASC,GAChB,OAAOL,GAASE,EAAcG,GAAS,IALpB,IAAjBH,IACFA,EAAc,GAQhB,IAAII,EAASF,EAAS,GACtBnD,EAAIsD,OAAOD,EAAO,GAAIA,EAAO,IAE7B,IAAK,IAAIE,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1BF,EAASF,EAASI,GAClB,IAAIC,EAAeD,EAAI,EACH,GAAhBC,IACFA,EAAe,GAGAL,EAASK,GAA1B,IAEIzB,EAAQgB,EAAQ,GAAG,GAAKA,EAAQ,GAAG,GACnCjB,EAASiB,EAAQ,GAAG,GAAKA,EAAQ,GAAG,GACpCnB,EAAImB,EAAQ,GAAG,GACflB,EAAIkB,EAAQ,GAAG,GAEfU,EAAShC,EAGTgC,EAAS3B,EAAS,IACpB2B,EAAS3B,EAAS,GAEhB2B,EAAS1B,EAAQ,IACnB0B,EAAS1B,EAAQ,GAGnB/B,EAAIsD,OAAO1B,EAAI6B,EAAQ5B,GACvB7B,EAAI0D,OAAO9B,EAAIG,EAAQ0B,EAAQ5B,GAC/B7B,EAAI2D,iBAAiB/B,EAAIG,EAAOF,EAAGD,EAAIG,EAAOF,EAAI4B,GAClDzD,EAAI0D,OAAO9B,EAAIG,EAAOF,EAAIC,EAAS2B,GACnCzD,EAAI2D,iBAAiB/B,EAAIG,EAAOF,EAAIC,EAAQF,EAAIG,EAAQ0B,EAAQ5B,EAAIC,GACpE9B,EAAI0D,OAAO9B,EAAI6B,EAAQ5B,EAAIC,GAC3B9B,EAAI2D,iBAAiB/B,EAAGC,EAAIC,EAAQF,EAAGC,EAAIC,EAAS2B,GACpDzD,EAAI0D,OAAO9B,EAAGC,EAAI4B,GAClBzD,EAAI2D,iBAAiB/B,EAAGC,EAAGD,EAAI6B,EAAQ5B,GAIzC7B,EAAI4D,OACApC,GACFxB,EAAI6D,UC7HO,QACb5D,QADa,WAEX6D,oB,uBCJJC,EAAOC,QACE,SAAUC,GAET,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUJ,QAGnC,IAAID,EAASG,EAAiBE,GAAY,CACzCb,EAAGa,EACHC,GAAG,EACHL,QAAS,IAUV,OANAC,EAAQG,GAAUE,KAAKP,EAAOC,QAASD,EAAQA,EAAOC,QAASG,GAG/DJ,EAAOM,GAAI,EAGJN,EAAOC,QAqCf,OAhCAG,EAAoBI,EAAIN,EAGxBE,EAAoBK,EAAIN,EAGxBC,EAAoBM,EAAI,SAAST,EAAS5E,EAAMsF,GAC3CP,EAAoBQ,EAAEX,EAAS5E,IAClCS,OAAO+E,eAAeZ,EAAS5E,EAAM,CACpCyF,cAAc,EACdC,YAAY,EACZC,IAAKL,KAMRP,EAAoBa,EAAI,SAASjB,GAChC,IAAIW,EAASX,GAAUA,EAAOkB,WAC7B,WAAwB,OAAOlB,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAI,EAAoBM,EAAEC,EAAQ,IAAKA,GAC5BA,GAIRP,EAAoBQ,EAAI,SAASO,EAAQC,GAAY,OAAOtF,OAAOe,UAAUwE,eAAed,KAAKY,EAAQC,IAGzGhB,EAAoBkB,EAAI,SAGjBlB,EAAoBA,EAAoBmB,EAAI,IA9DpD,CAiEC,CAEJC,EACA,SAAUxB,EAAQC,GAQxBD,EAAOC,QAAU,SACfwB,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAIC,EACAC,EAAgBP,EAAmBA,GAAoB,GAGvD5F,SAAc4F,EAAiB1F,QACtB,WAATF,GAA8B,aAATA,IACvBkG,EAAWN,EACXO,EAAgBP,EAAiB1F,SAInC,IAqBIkG,EArBAC,EAAmC,oBAAlBF,EACjBA,EAAcE,QACdF,EA+CJ,GA5CIN,IACFQ,EAAQC,OAAST,EAAiBS,OAClCD,EAAQE,gBAAkBV,EAAiBU,gBAC3CF,EAAQG,WAAY,GAIlBV,IACFO,EAAQI,YAAa,GAInBT,IACFK,EAAQK,SAAWV,GAIjBC,GACFG,EAAO,SAAUO,GAEfA,EACEA,GACCrG,KAAKsG,QAAUtG,KAAKsG,OAAOC,YAC3BvG,KAAKwG,QAAUxG,KAAKwG,OAAOF,QAAUtG,KAAKwG,OAAOF,OAAOC,WAEtDF,GAA0C,qBAAxBI,sBACrBJ,EAAUI,qBAGRhB,GACFA,EAAarB,KAAKpE,KAAMqG,GAGtBA,GAAWA,EAAQK,uBACrBL,EAAQK,sBAAsBC,IAAIhB,IAKtCI,EAAQa,aAAed,GACdL,IACTK,EAAOL,GAGLK,EAAM,CACR,IAAIK,EAAaJ,EAAQI,WACrBU,EAAWV,EACXJ,EAAQC,OACRD,EAAQe,aAEPX,GAQHJ,EAAQgB,cAAgBjB,EAExBC,EAAQC,OAAS,SAAmCgB,EAAGX,GAErD,OADAP,EAAK1B,KAAKiC,GACHQ,EAASG,EAAGX,KAVrBN,EAAQe,aAAeD,EACnB,GAAGI,OAAOJ,EAAUf,GACpB,CAACA,GAaT,MAAO,CACLF,SAAUA,EACV9B,QAAS+B,EACTE,QAASA,KAOPmB,EACA,SAAUrD,EAAQC,GAExBD,EAAOC,QAAU,EAAQ,SAInBqD,GACA,SAAUtD,EAAQC,EAASG,GAEjC,aAGAH,EAAQiB,YAAa,EAErB,IAAIqC,EAAgBnD,EAAoB,IAEpCoD,EAAiBC,EAAuBF,GAE5C,SAASE,EAAuBC,GAAO,OAAOA,GAAOA,EAAIxC,WAAawC,EAAM,CAAE3H,QAAS2H,GAGvFF,EAAezH,QAAQ4H,QAAU,SAAUC,GACzCA,EAAIC,UAAUL,EAAezH,QAAQV,KAAMmI,EAAezH,UAG5DkE,EAAQlE,QAAUyH,EAAezH,SAI3B+H,GACA,SAAU9D,EAAQ+D,EAAqB3D,GAE7C,aACAtE,OAAO+E,eAAekD,EAAqB,aAAc,CAAEC,OAAO,IAC7C,IAAIC,EAAyH7D,EAAoB,IAC7I8D,EAAiI9D,EAAoBa,EAAEgD,GACvJE,EAA+O/D,EAAoB,IACxRgE,EAAqBhE,EAAoB,GAMvCiE,GAA8B,EAEhCC,EAAiB,KAEjBC,EAAkB,KAElBC,EAA4B,KAC5BC,EAAYL,EACdF,EAA+HQ,EAC/HP,EAA6O,KAC7OE,EACAC,EACAC,EACAC,GAG2BT,EAAoB,WAAcU,EAAiB,SAK1EE,GACA,SAAU3E,EAAQC,EAASG,GAEjC,aAGAH,EAAQiB,YAAa,EAErB,IAAI0D,EAAWxE,EAAoB,GAE/ByE,EAAYpB,EAAuBmB,GAEvC,SAASnB,EAAuBC,GAAO,OAAOA,GAAOA,EAAIxC,WAAawC,EAAM,CAAE3H,QAAS2H,GAEvFzD,EAAQlE,QAAU,CAChBV,KAAM,iBAENG,OAAQ,CAACqJ,EAAU9I,SAEnBJ,MAAO,CACLmJ,QAAS,GACTC,SAAUC,QACVC,QAASD,SAGXE,QAAS,CACPC,YAAa,SAAqBC,GAChCjJ,KAAKkJ,SAAS,aAAc,kBAAmB,CAAClJ,KAAK2I,QAAS3I,WAoB9DmJ,GACA,SAAUtF,EAAQ+D,EAAqB3D,GAE7C,aACA,IAAI+B,EAAS,WAAa,IAAIoD,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACE,YAAY,yBAAyBC,MAAM,CAChJ,cAAeN,EAAIR,SACnB,kCAAmCQ,EAAIN,SACvCa,MAAM,CAAC,gBAAgBP,EAAIR,SAAS,SAAWQ,EAAIR,SAAW,MAAQ,GAAGgB,GAAG,CAAC,MAAQR,EAAIJ,cAAc,CAACI,EAAIS,GAAG,YAAY,IAC3H5D,EAAkB,GAClB6D,EAAY,CAAE9D,OAAQA,EAAQC,gBAAiBA,GACtB2B,EAAoB,KAAO,M,oCC5SxD,SAASmC,EAAYC,EAASC,GAC5B,GAAIA,EAAS,CACX,IAAIC,EAAQlK,KAAKmK,MAAMhJ,OACnBiJ,EAAmBJ,EAAQK,SAASC,KAAI,SAAUC,GACpD,OAAOA,EAAQC,SAEbC,EAAmBR,EAAQI,SAASC,KAAI,SAAUC,GACpD,OAAOA,EAAQC,SAEbE,EAAYC,KAAKC,UAAUH,GAC3BI,EAAYF,KAAKC,UAAUR,GAE3BS,IAAcH,GAAaT,EAAQI,SAASS,SAAWd,EAAQK,SAASS,QAC1Ed,EAAQK,SAASU,SAAQ,SAAUR,EAASlH,GAC1C,IAAI2H,EAAiBrL,OAAOsL,KAAKhB,EAAQI,SAAShH,IAC9C6H,EAAiBvL,OAAOsL,KAAKV,GAC7BY,EAAeH,EAAeI,QAAO,SAAUC,GACjD,MAAe,UAARA,IAAoD,IAAjCH,EAAelI,QAAQqI,MAMnD,IAAK,IAAIC,KAJTH,EAAaJ,SAAQ,SAAUQ,UACtBrB,EAAMrK,KAAKwK,SAAShH,GAAGkI,MAGVhB,EAChBA,EAAQrF,eAAeoG,KACzBpB,EAAMrK,KAAKwK,SAAShH,GAAGiI,GAAaf,EAAQe,OAK9CtB,EAAQ9E,eAAe,YACzBgF,EAAMrK,KAAK2L,OAASxB,EAAQwB,OAC5BxL,KAAKyL,MAAM,kBAGTzB,EAAQ9E,eAAe,aACzBgF,EAAMrK,KAAK6L,QAAU1B,EAAQ0B,QAC7B1L,KAAKyL,MAAM,mBAGTzB,EAAQ9E,eAAe,aACzBgF,EAAMrK,KAAK8L,QAAU3B,EAAQ2B,QAC7B3L,KAAKyL,MAAM,mBAGbvB,EAAM0B,SACN5L,KAAKyL,MAAM,kBAEPvB,IACFA,EAAM2B,UACN7L,KAAKyL,MAAM,kBAGbzL,KAAKI,YAAYJ,KAAKK,UAAWL,KAAK+F,SACtC/F,KAAKyL,MAAM,sBAGTzL,KAAKmK,MAAMhJ,SACbnB,KAAKmK,MAAMhJ,OAAO0K,UAElB7L,KAAKyL,MAAM,kBAGbzL,KAAKI,YAAYJ,KAAKK,UAAWL,KAAK+F,SACtC/F,KAAKyL,MAAM,gB,sGAIR,IAAIK,EAAe,CACxBjM,KAAM,WACJ,MAAO,CACLQ,UAAW,OAGf0L,MAAO,CACL,UAAahC,IAGNzK,EAAe,CACxBE,MAAO,CACLa,UAAW,CACTX,KAAMC,OACNqM,UAAU,EACVpM,QAAS,eAGbmM,MAAO,CACL,UAAahC,IAGF,GACb+B,aAAcA,EACdxM,aAAcA,G,qBC3FT,SAAS2M,EAAcC,EAASC,GACrC,MAAO,CACLnG,OAAQ,SAAgBoG,GACtB,OAAOA,EAAc,MAAO,CAC1BC,MAAOrM,KAAKsM,OACZ5C,MAAO1J,KAAKuM,YACX,CAACH,EAAc,SAAU,CAC1BzC,MAAO,CACL6C,GAAIxM,KAAKkM,QACTrK,MAAO7B,KAAK6B,MACZD,OAAQ5B,KAAK4B,QAEf6K,IAAK,cAGTjN,MAAO,CACL0M,QAAS,CACPtM,QAASsM,EACTxM,KAAMgN,QAER7K,MAAO,CACLjC,QAAS,IACTF,KAAMiN,QAER/K,OAAQ,CACNhC,QAAS,IACTF,KAAMiN,QAERJ,WAAY,CACV7M,KAAMgN,OACN9M,QAAS,IAEX0M,OAAQ,CACN5M,KAAMC,QAERiN,QAAS,CACPlN,KAAMmN,MACNjN,QAAS,WACP,MAAO,MAIbC,KAAM,WACJ,MAAO,CACLsB,OAAQ,KACR2L,SAAU9M,KAAK4M,UAGnB7D,QAAS,CACPgE,UAAW,SAAmBC,GAC5BhN,KAAKmK,MAAM2C,SAASG,KAAKD,IAE3BE,eAAgB,WACd,GAAIlN,KAAKmK,MAAMhJ,OACb,OAAOnB,KAAKmK,MAAMhJ,OAAO+L,kBAG7B9M,YAAa,SAAqBP,EAAMkG,GAEtC,GADI/F,KAAKmK,MAAMhJ,QAAQnB,KAAKmK,MAAMhJ,OAAO0K,WACpC7L,KAAKmN,MAAMC,OAAQ,MAAM,IAAIC,MAAM,yIACxCrN,KAAKmK,MAAMhJ,OAAS,IAAI,IAAMnB,KAAKmN,MAAMC,OAAOE,WAAW,MAAO,CAChE5N,KAAMyM,EACNtM,KAAMA,EACNkG,QAASA,EACT6G,QAAS5M,KAAKmK,MAAM2C,aAI1BS,cAAe,WACTvN,KAAKmK,MAAMhJ,QACbnB,KAAKmK,MAAMhJ,OAAO0K,YAKnB,IAAIzM,EAAM6M,EAAc,YAAa,OAGjCuB,GAFgBvB,EAAc,sBAAuB,iBAC1CA,EAAc,iBAAkB,YACpCA,EAAc,aAAc,SAC7BA,EAAc,YAAa,OACrBA,EAAc,cAAe,aACjCA,EAAc,cAAe,SAC5BA,EAAc,eAAgB,UAC7BA,EAAc,gBAAiB,Y,2CCpFpD,IAAIjG,EAAS,WAAa,IAAIoD,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,YAAYE,MAAM,CAAC,GAAKP,EAAIoD,OAC9IvG,EAAkB,G,4HCIf,SAASwH,EAASC,GAA2B,IAC9CC,EADgCC,EAAc,uDAAJ,GAEzCD,IACHA,EAAgBE,YAAW,WACzBF,EAAgB,KAChBD,MAECE,I,4kBCHP,OACE1O,KAAM,YACNM,MAAO,CACLsO,QAAS,CACPpO,KAAMC,OACNC,QAAS,WAAf,WAEImO,OAAQ,CACNrO,KAAMmN,MACNjN,QAAS,WAAf,YAGEC,KAZF,WAaI,MAAO,CACL2M,GAAIxM,KAAKgO,eACTC,OAAQ,UACRC,OAAQ,UACRC,mBAAoB,UACpBxL,YAAa,QACbyL,qBAAsB,QACtBC,yBAA0B,UAC1BC,gBAAiB,YAGrBvF,QAAS,CACPwF,eADJ,SACA,GACM,OAAOC,EAAb,OAEA,cACA,kCAEIC,kBAPJ,WAQM,IAAN,8BACA,yCACA,yBACA,KACA,GACQC,YAAa,WAEf,IAAK,IAAX,mBACQ,IAAR,kBACQC,EAAMtD,GAAOuD,EAAOC,GACpBf,EAAQzC,GAAO,CACbyD,QAASzD,EACTxD,MAAOgH,GAGX,MAAO,CACLf,QAAR,EACQa,MAAR,IAGI,cA5BJ,2LA6BA,oDA7BA,OA6BA,EA7BA,OA8BA,eA9BA,EA+BA,2BA/BA,EA+BA,QA/BA,EA+BA,QACA,SACA,cACA,yCACA,QACA,OACA,cACA,iBACA,6BACA,cACA,gBACA,2CACA,+CACA,uBACA,4BAGA,GACA,SACA,cACA,uBACA,6BACA,+BACA,iCACA,iDACA,oDAEA,+BACA,cACA,GACA,MAGA,aACA,4BACA,0CAGA,mBACA,wBACA,UACA,WACA,WAEA,GA3EA,yGA8EIX,aA9EJ,WAkFM,IAHA,IAAN,KACA,yDAEA,YACQe,GAAQC,EAASC,OAAOlN,KAAKmN,MAAMnN,KAAKoN,SAAWH,EAASlE,SAE9D,OAAOiE,IAGX,QAhHF,uJAiHA,qBAjHA,yGCTiW,I,YCO7VrH,EAAY,eACd,EACA1B,EACAC,GACA,EACA,KACA,KACA,MAIa,aAAAyB,E;;;;;;;CCZd,SAAU0H,EAAQC,GAC4CxL,EAAOC,QAAUuL,EAAQ,WAAa,IAAM,OAAO,EAAQ,QAAa,MAAMpG,KAArD,KADxF,CAIEjJ,GAAM,SAAWsP,GAAU,aAI7B,SAASC,EAAqBC,EAAI3L,GACjC,OAAOA,EAAS,CAAEC,QAAS,IAAM0L,EAAG3L,EAAQA,EAAOC,SAAUD,EAAOC,QAGrE,SAAS2L,EAA2B3K,GACnC,OAAOA,GAAKA,EAAE,YAAcA,EAP7BwK,EAASA,GAAUA,EAAOpK,eAAe,WAAaoK,EAAO,WAAaA,EAU1E,IAAII,EAAY,CACf,UAAa,CAAC,IAAK,IAAK,KACxB,aAAgB,CAAC,IAAK,IAAK,KAC3B,KAAQ,CAAC,EAAG,IAAK,KACjB,WAAc,CAAC,IAAK,IAAK,KACzB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,OAAU,CAAC,IAAK,IAAK,KACrB,MAAS,CAAC,EAAG,EAAG,GAChB,eAAkB,CAAC,IAAK,IAAK,KAC7B,KAAQ,CAAC,EAAG,EAAG,KACf,WAAc,CAAC,IAAK,GAAI,KACxB,MAAS,CAAC,IAAK,GAAI,IACnB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,WAAc,CAAC,IAAK,IAAK,GACzB,UAAa,CAAC,IAAK,IAAK,IACxB,MAAS,CAAC,IAAK,IAAK,IACpB,eAAkB,CAAC,IAAK,IAAK,KAC7B,SAAY,CAAC,IAAK,IAAK,KACvB,QAAW,CAAC,IAAK,GAAI,IACrB,KAAQ,CAAC,EAAG,IAAK,KACjB,SAAY,CAAC,EAAG,EAAG,KACnB,SAAY,CAAC,EAAG,IAAK,KACrB,cAAiB,CAAC,IAAK,IAAK,IAC5B,SAAY,CAAC,IAAK,IAAK,KACvB,UAAa,CAAC,EAAG,IAAK,GACtB,SAAY,CAAC,IAAK,IAAK,KACvB,UAAa,CAAC,IAAK,IAAK,KACxB,YAAe,CAAC,IAAK,EAAG,KACxB,eAAkB,CAAC,GAAI,IAAK,IAC5B,WAAc,CAAC,IAAK,IAAK,GACzB,WAAc,CAAC,IAAK,GAAI,KACxB,QAAW,CAAC,IAAK,EAAG,GACpB,WAAc,CAAC,IAAK,IAAK,KACzB,aAAgB,CAAC,IAAK,IAAK,KAC3B,cAAiB,CAAC,GAAI,GAAI,KAC1B,cAAiB,CAAC,GAAI,GAAI,IAC1B,cAAiB,CAAC,GAAI,GAAI,IAC1B,cAAiB,CAAC,EAAG,IAAK,KAC1B,WAAc,CAAC,IAAK,EAAG,KACvB,SAAY,CAAC,IAAK,GAAI,KACtB,YAAe,CAAC,EAAG,IAAK,KACxB,QAAW,CAAC,IAAK,IAAK,KACtB,QAAW,CAAC,IAAK,IAAK,KACtB,WAAc,CAAC,GAAI,IAAK,KACxB,UAAa,CAAC,IAAK,GAAI,IACvB,YAAe,CAAC,IAAK,IAAK,KAC1B,YAAe,CAAC,GAAI,IAAK,IACzB,QAAW,CAAC,IAAK,EAAG,KACpB,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,KAAQ,CAAC,IAAK,IAAK,GACnB,UAAa,CAAC,IAAK,IAAK,IACxB,KAAQ,CAAC,IAAK,IAAK,KACnB,MAAS,CAAC,EAAG,IAAK,GAClB,YAAe,CAAC,IAAK,IAAK,IAC1B,KAAQ,CAAC,IAAK,IAAK,KACnB,SAAY,CAAC,IAAK,IAAK,KACvB,QAAW,CAAC,IAAK,IAAK,KACtB,UAAa,CAAC,IAAK,GAAI,IACvB,OAAU,CAAC,GAAI,EAAG,KAClB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,SAAY,CAAC,IAAK,IAAK,KACvB,cAAiB,CAAC,IAAK,IAAK,KAC5B,UAAa,CAAC,IAAK,IAAK,GACxB,aAAgB,CAAC,IAAK,IAAK,KAC3B,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,qBAAwB,CAAC,IAAK,IAAK,KACnC,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,YAAe,CAAC,IAAK,IAAK,KAC1B,cAAiB,CAAC,GAAI,IAAK,KAC3B,aAAgB,CAAC,IAAK,IAAK,KAC3B,eAAkB,CAAC,IAAK,IAAK,KAC7B,eAAkB,CAAC,IAAK,IAAK,KAC7B,eAAkB,CAAC,IAAK,IAAK,KAC7B,YAAe,CAAC,IAAK,IAAK,KAC1B,KAAQ,CAAC,EAAG,IAAK,GACjB,UAAa,CAAC,GAAI,IAAK,IACvB,MAAS,CAAC,IAAK,IAAK,KACpB,QAAW,CAAC,IAAK,EAAG,KACpB,OAAU,CAAC,IAAK,EAAG,GACnB,iBAAoB,CAAC,IAAK,IAAK,KAC/B,WAAc,CAAC,EAAG,EAAG,KACrB,aAAgB,CAAC,IAAK,GAAI,KAC1B,aAAgB,CAAC,IAAK,IAAK,KAC3B,eAAkB,CAAC,GAAI,IAAK,KAC5B,gBAAmB,CAAC,IAAK,IAAK,KAC9B,kBAAqB,CAAC,EAAG,IAAK,KAC9B,gBAAmB,CAAC,GAAI,IAAK,KAC7B,gBAAmB,CAAC,IAAK,GAAI,KAC7B,aAAgB,CAAC,GAAI,GAAI,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,SAAY,CAAC,IAAK,IAAK,KACvB,YAAe,CAAC,IAAK,IAAK,KAC1B,KAAQ,CAAC,EAAG,EAAG,KACf,QAAW,CAAC,IAAK,IAAK,KACtB,MAAS,CAAC,IAAK,IAAK,GACpB,UAAa,CAAC,IAAK,IAAK,IACxB,OAAU,CAAC,IAAK,IAAK,GACrB,UAAa,CAAC,IAAK,GAAI,GACvB,OAAU,CAAC,IAAK,IAAK,KACrB,cAAiB,CAAC,IAAK,IAAK,KAC5B,UAAa,CAAC,IAAK,IAAK,KACxB,cAAiB,CAAC,IAAK,IAAK,KAC5B,cAAiB,CAAC,IAAK,IAAK,KAC5B,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,KAAQ,CAAC,IAAK,IAAK,IACnB,KAAQ,CAAC,IAAK,IAAK,KACnB,KAAQ,CAAC,IAAK,IAAK,KACnB,WAAc,CAAC,IAAK,IAAK,KACzB,OAAU,CAAC,IAAK,EAAG,KACnB,cAAiB,CAAC,IAAK,GAAI,KAC3B,IAAO,CAAC,IAAK,EAAG,GAChB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,YAAe,CAAC,IAAK,GAAI,IACzB,OAAU,CAAC,IAAK,IAAK,KACrB,WAAc,CAAC,IAAK,IAAK,IACzB,SAAY,CAAC,GAAI,IAAK,IACtB,SAAY,CAAC,IAAK,IAAK,KACvB,OAAU,CAAC,IAAK,GAAI,IACpB,OAAU,CAAC,IAAK,IAAK,KACrB,QAAW,CAAC,IAAK,IAAK,KACtB,UAAa,CAAC,IAAK,GAAI,KACvB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,KAAQ,CAAC,IAAK,IAAK,KACnB,YAAe,CAAC,EAAG,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,IAAO,CAAC,IAAK,IAAK,KAClB,KAAQ,CAAC,EAAG,IAAK,KACjB,QAAW,CAAC,IAAK,IAAK,KACtB,OAAU,CAAC,IAAK,GAAI,IACpB,UAAa,CAAC,GAAI,IAAK,KACvB,OAAU,CAAC,IAAK,IAAK,KACrB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,WAAc,CAAC,IAAK,IAAK,KACzB,OAAU,CAAC,IAAK,IAAK,GACrB,YAAe,CAAC,IAAK,IAAK,KAGvBC,EAAcJ,GAAqB,SAAU1L,GAQjD,IAAI+L,EAAkB,GACtB,IAAK,IAAIvE,KAAOqE,EACXA,EAAUxK,eAAemG,KAC5BuE,EAAgBF,EAAUrE,IAAQA,GAIpC,IAAIwE,EAAUhM,EAAOC,QAAU,CAC9BgM,IAAK,CAACC,SAAU,EAAGvE,OAAQ,OAC3BwE,IAAK,CAACD,SAAU,EAAGvE,OAAQ,OAC3ByE,IAAK,CAACF,SAAU,EAAGvE,OAAQ,OAC3B0E,IAAK,CAACH,SAAU,EAAGvE,OAAQ,OAC3B2E,KAAM,CAACJ,SAAU,EAAGvE,OAAQ,QAC5B4E,IAAK,CAACL,SAAU,EAAGvE,OAAQ,OAC3B6E,IAAK,CAACN,SAAU,EAAGvE,OAAQ,OAC3B8E,IAAK,CAACP,SAAU,EAAGvE,OAAQ,OAC3B+E,IAAK,CAACR,SAAU,EAAGvE,OAAQ,CAAC,QAC5BgF,QAAS,CAACT,SAAU,EAAGvE,OAAQ,CAAC,YAChCiF,OAAQ,CAACV,SAAU,EAAGvE,OAAQ,CAAC,WAC/BkF,QAAS,CAACX,SAAU,EAAGvE,OAAQ,CAAC,YAChCmF,IAAK,CAACZ,SAAU,EAAGvE,OAAQ,CAAC,IAAK,IAAK,MACtCoF,MAAO,CAACb,SAAU,EAAGvE,OAAQ,CAAC,MAAO,MAAO,QAC5CqF,KAAM,CAACd,SAAU,EAAGvE,OAAQ,CAAC,UAI9B,IAAK,IAAIsF,KAASjB,EACjB,GAAIA,EAAQ3K,eAAe4L,GAAQ,CAClC,KAAM,aAAcjB,EAAQiB,IAC3B,MAAM,IAAIzD,MAAM,8BAAgCyD,GAGjD,KAAM,WAAYjB,EAAQiB,IACzB,MAAM,IAAIzD,MAAM,oCAAsCyD,GAGvD,GAAIjB,EAAQiB,GAAOtF,OAAOV,SAAW+E,EAAQiB,GAAOf,SACnD,MAAM,IAAI1C,MAAM,sCAAwCyD,GAGzD,IAAIf,EAAWF,EAAQiB,GAAOf,SAC1BvE,EAASqE,EAAQiB,GAAOtF,cACrBqE,EAAQiB,GAAOf,gBACfF,EAAQiB,GAAOtF,OACtB7L,OAAO+E,eAAemL,EAAQiB,GAAQ,WAAY,CAACjJ,MAAOkI,IAC1DpQ,OAAO+E,eAAemL,EAAQiB,GAAQ,SAAU,CAACjJ,MAAO2D,IAyH1D,SAASuF,EAAoBrP,EAAGC,GAC/B,OACCI,KAAKiP,IAAItP,EAAE,GAAKC,EAAE,GAAI,GACtBI,KAAKiP,IAAItP,EAAE,GAAKC,EAAE,GAAI,GACtBI,KAAKiP,IAAItP,EAAE,GAAKC,EAAE,GAAI,GAzHxBkO,EAAQC,IAAIE,IAAM,SAAUF,GAC3B,IAMI9I,EACA5B,EACAjB,EARA8M,EAAInB,EAAI,GAAK,IACboB,EAAIpB,EAAI,GAAK,IACbqB,EAAIrB,EAAI,GAAK,IACb9N,EAAMD,KAAKC,IAAIiP,EAAGC,EAAGC,GACrBC,EAAMrP,KAAKqP,IAAIH,EAAGC,EAAGC,GACrBE,EAAQD,EAAMpP,EA+BlB,OA1BIoP,IAAQpP,EACXgF,EAAI,EACMiK,IAAMG,EAChBpK,GAAKkK,EAAIC,GAAKE,EACJH,IAAME,EAChBpK,EAAI,GAAKmK,EAAIF,GAAKI,EACRF,IAAMC,IAChBpK,EAAI,GAAKiK,EAAIC,GAAKG,GAGnBrK,EAAIjF,KAAKC,IAAQ,GAAJgF,EAAQ,KAEjBA,EAAI,IACPA,GAAK,KAGN7C,GAAKnC,EAAMoP,GAAO,EAGjBhM,EADGgM,IAAQpP,EACP,EACMmC,GAAK,GACXkN,GAASD,EAAMpP,GAEfqP,GAAS,EAAID,EAAMpP,GAGjB,CAACgF,EAAO,IAAJ5B,EAAa,IAAJjB,IAGrB0L,EAAQC,IAAIG,IAAM,SAAUH,GAC3B,IAAIwB,EACAC,EACAC,EACAxK,EACA5B,EAEA6L,EAAInB,EAAI,GAAK,IACboB,EAAIpB,EAAI,GAAK,IACbqB,EAAIrB,EAAI,GAAK,IACb2B,EAAI1P,KAAKqP,IAAIH,EAAGC,EAAGC,GACnBO,EAAOD,EAAI1P,KAAKC,IAAIiP,EAAGC,EAAGC,GAC1BQ,EAAQ,SAAUrN,GACrB,OAAQmN,EAAInN,GAAK,EAAIoN,EAAO,IAyB7B,OAtBa,IAATA,EACH1K,EAAI5B,EAAI,GAERA,EAAIsM,EAAOD,EACXH,EAAOK,EAAMV,GACbM,EAAOI,EAAMT,GACbM,EAAOG,EAAMR,GAETF,IAAMQ,EACTzK,EAAIwK,EAAOD,EACDL,IAAMO,EAChBzK,EAAK,EAAI,EAAKsK,EAAOE,EACXL,IAAMM,IAChBzK,EAAK,EAAI,EAAKuK,EAAOD,GAElBtK,EAAI,EACPA,GAAK,EACKA,EAAI,IACdA,GAAK,IAIA,CACF,IAAJA,EACI,IAAJ5B,EACI,IAAJqM,IAIF5B,EAAQC,IAAII,IAAM,SAAUJ,GAC3B,IAAImB,EAAInB,EAAI,GACRoB,EAAIpB,EAAI,GACRqB,EAAIrB,EAAI,GACR9I,EAAI6I,EAAQC,IAAIE,IAAIF,GAAK,GACzB8B,EAAI,EAAI,IAAM7P,KAAKC,IAAIiP,EAAGlP,KAAKC,IAAIkP,EAAGC,IAI1C,OAFAA,EAAI,EAAI,EAAI,IAAMpP,KAAKqP,IAAIH,EAAGlP,KAAKqP,IAAIF,EAAGC,IAEnC,CAACnK,EAAO,IAAJ4K,EAAa,IAAJT,IAGrBtB,EAAQC,IAAIK,KAAO,SAAUL,GAC5B,IAGIxL,EACAD,EACA1C,EACAkQ,EANAZ,EAAInB,EAAI,GAAK,IACboB,EAAIpB,EAAI,GAAK,IACbqB,EAAIrB,EAAI,GAAK,IAWjB,OALA+B,EAAI9P,KAAKC,IAAI,EAAIiP,EAAG,EAAIC,EAAG,EAAIC,GAC/B7M,GAAK,EAAI2M,EAAIY,IAAM,EAAIA,IAAM,EAC7BxN,GAAK,EAAI6M,EAAIW,IAAM,EAAIA,IAAM,EAC7BlQ,GAAK,EAAIwP,EAAIU,IAAM,EAAIA,IAAM,EAEtB,CAAK,IAAJvN,EAAa,IAAJD,EAAa,IAAJ1C,EAAa,IAAJkQ,IAcpChC,EAAQC,IAAIU,QAAU,SAAUV,GAC/B,IAAIgC,EAAWlC,EAAgBE,GAC/B,GAAIgC,EACH,OAAOA,EAGR,IACIC,EADAC,EAAyBC,IAG7B,IAAK,IAAIzB,KAAWd,EACnB,GAAIA,EAAUxK,eAAesL,GAAU,CACtC,IAAI3I,EAAQ6H,EAAUc,GAGlB0B,EAAWnB,EAAoBjB,EAAKjI,GAGpCqK,EAAWF,IACdA,EAAyBE,EACzBH,EAAwBvB,GAK3B,OAAOuB,GAGRlC,EAAQW,QAAQV,IAAM,SAAUU,GAC/B,OAAOd,EAAUc,IAGlBX,EAAQC,IAAIM,IAAM,SAAUN,GAC3B,IAAImB,EAAInB,EAAI,GAAK,IACboB,EAAIpB,EAAI,GAAK,IACbqB,EAAIrB,EAAI,GAAK,IAGjBmB,EAAIA,EAAI,OAAUlP,KAAKiP,KAAMC,EAAI,MAAS,MAAQ,KAAQA,EAAI,MAC9DC,EAAIA,EAAI,OAAUnP,KAAKiP,KAAME,EAAI,MAAS,MAAQ,KAAQA,EAAI,MAC9DC,EAAIA,EAAI,OAAUpP,KAAKiP,KAAMG,EAAI,MAAS,MAAQ,KAAQA,EAAI,MAE9D,IAAIzP,EAAS,MAAJuP,EAAmB,MAAJC,EAAmB,MAAJC,EACnCxP,EAAS,MAAJsP,EAAmB,MAAJC,EAAmB,MAAJC,EACnCgB,EAAS,MAAJlB,EAAmB,MAAJC,EAAmB,MAAJC,EAEvC,MAAO,CAAK,IAAJzP,EAAa,IAAJC,EAAa,IAAJwQ,IAG3BtC,EAAQC,IAAIO,IAAM,SAAUP,GAC3B,IAII3L,EACAoE,EACA4I,EANAf,EAAMP,EAAQC,IAAIM,IAAIN,GACtBpO,EAAI0O,EAAI,GACRzO,EAAIyO,EAAI,GACR+B,EAAI/B,EAAI,GAiBZ,OAZA1O,GAAK,OACLC,GAAK,IACLwQ,GAAK,QAELzQ,EAAIA,EAAI,QAAWK,KAAKiP,IAAItP,EAAG,EAAI,GAAM,MAAQA,EAAM,GAAK,IAC5DC,EAAIA,EAAI,QAAWI,KAAKiP,IAAIrP,EAAG,EAAI,GAAM,MAAQA,EAAM,GAAK,IAC5DwQ,EAAIA,EAAI,QAAWpQ,KAAKiP,IAAImB,EAAG,EAAI,GAAM,MAAQA,EAAM,GAAK,IAE5DhO,EAAK,IAAMxC,EAAK,GAChB4G,EAAI,KAAO7G,EAAIC,GACfwP,EAAI,KAAOxP,EAAIwQ,GAER,CAAChO,EAAGoE,EAAG4I,IAGftB,EAAQG,IAAIF,IAAM,SAAUE,GAC3B,IAGIoC,EACAC,EACAC,EACAxC,EACAjB,EAPA7H,EAAIgJ,EAAI,GAAK,IACb5K,EAAI4K,EAAI,GAAK,IACb7L,EAAI6L,EAAI,GAAK,IAOjB,GAAU,IAAN5K,EAEH,OADAyJ,EAAU,IAAJ1K,EACC,CAAC0K,EAAKA,EAAKA,GAIlBwD,EADGlO,EAAI,GACFA,GAAK,EAAIiB,GAETjB,EAAIiB,EAAIjB,EAAIiB,EAGlBgN,EAAK,EAAIjO,EAAIkO,EAEbvC,EAAM,CAAC,EAAG,EAAG,GACb,IAAK,IAAIzM,EAAI,EAAGA,EAAI,EAAGA,IACtBiP,EAAKtL,EAAI,EAAI,IAAM3D,EAAI,GACnBiP,EAAK,GACRA,IAEGA,EAAK,GACRA,IAIAzD,EADG,EAAIyD,EAAK,EACNF,EAAiB,GAAXC,EAAKD,GAAUE,EACjB,EAAIA,EAAK,EACbD,EACI,EAAIC,EAAK,EACbF,GAAMC,EAAKD,IAAO,EAAI,EAAIE,GAAM,EAEhCF,EAGPtC,EAAIzM,GAAW,IAANwL,EAGV,OAAOiB,GAGRD,EAAQG,IAAIC,IAAM,SAAUD,GAC3B,IAKIuC,EACAd,EANAzK,EAAIgJ,EAAI,GACR5K,EAAI4K,EAAI,GAAK,IACb7L,EAAI6L,EAAI,GAAK,IACbwC,EAAOpN,EACPqN,EAAO1Q,KAAKqP,IAAIjN,EAAG,KAUvB,OANAA,GAAK,EACLiB,GAAMjB,GAAK,EAAKA,EAAI,EAAIA,EACxBqO,GAAQC,GAAQ,EAAIA,EAAO,EAAIA,EAC/BhB,GAAKtN,EAAIiB,GAAK,EACdmN,EAAW,IAANpO,EAAW,EAAIqO,GAASC,EAAOD,GAAS,EAAIpN,GAAMjB,EAAIiB,GAEpD,CAAC4B,EAAQ,IAALuL,EAAc,IAAJd,IAGtB5B,EAAQI,IAAIH,IAAM,SAAUG,GAC3B,IAAIjJ,EAAIiJ,EAAI,GAAK,GACb7K,EAAI6K,EAAI,GAAK,IACbwB,EAAIxB,EAAI,GAAK,IACbyC,EAAK3Q,KAAKmN,MAAMlI,GAAK,EAErB2L,EAAI3L,EAAIjF,KAAKmN,MAAMlI,GACnB7B,EAAI,IAAMsM,GAAK,EAAIrM,GACnBwN,EAAI,IAAMnB,GAAK,EAAKrM,EAAIuN,GACxBE,EAAI,IAAMpB,GAAK,EAAKrM,GAAK,EAAIuN,IAGjC,OAFAlB,GAAK,IAEGiB,GACP,KAAK,EACJ,MAAO,CAACjB,EAAGoB,EAAG1N,GACf,KAAK,EACJ,MAAO,CAACyN,EAAGnB,EAAGtM,GACf,KAAK,EACJ,MAAO,CAACA,EAAGsM,EAAGoB,GACf,KAAK,EACJ,MAAO,CAAC1N,EAAGyN,EAAGnB,GACf,KAAK,EACJ,MAAO,CAACoB,EAAG1N,EAAGsM,GACf,KAAK,EACJ,MAAO,CAACA,EAAGtM,EAAGyN,KAIjB/C,EAAQI,IAAID,IAAM,SAAUC,GAC3B,IAIIwC,EACAK,EACA3O,EANA6C,EAAIiJ,EAAI,GACR7K,EAAI6K,EAAI,GAAK,IACbwB,EAAIxB,EAAI,GAAK,IACb8C,EAAOhR,KAAKqP,IAAIK,EAAG,KAYvB,OAPAtN,GAAK,EAAIiB,GAAKqM,EACdgB,GAAQ,EAAIrN,GAAK2N,EACjBD,EAAK1N,EAAI2N,EACTD,GAAOL,GAAQ,EAAKA,EAAO,EAAIA,EAC/BK,EAAKA,GAAM,EACX3O,GAAK,EAEE,CAAC6C,EAAQ,IAAL8L,EAAc,IAAJ3O,IAItB0L,EAAQK,IAAIJ,IAAM,SAAUI,GAC3B,IAII7M,EACAoO,EACAkB,EACA7N,EAkBAmM,EACAC,EACAC,EA3BAnK,EAAIkJ,EAAI,GAAK,IACb8C,EAAK9C,EAAI,GAAK,IACd+C,EAAK/C,EAAI,GAAK,IACdgD,EAAQF,EAAKC,EAyBjB,OAlBIC,EAAQ,IACXF,GAAME,EACND,GAAMC,GAGP7P,EAAItB,KAAKmN,MAAM,EAAIlI,GACnByK,EAAI,EAAIwB,EACRN,EAAI,EAAI3L,EAAI3D,EAEO,KAAV,EAAJA,KACJsP,EAAI,EAAIA,GAGT7N,EAAIkO,EAAKL,GAAKlB,EAAIuB,GAKV3P,GACP,QACA,KAAK,EACL,KAAK,EAAG4N,EAAIQ,EAAGP,EAAIpM,EAAGqM,EAAI6B,EAAI,MAC9B,KAAK,EAAG/B,EAAInM,EAAGoM,EAAIO,EAAGN,EAAI6B,EAAI,MAC9B,KAAK,EAAG/B,EAAI+B,EAAI9B,EAAIO,EAAGN,EAAIrM,EAAG,MAC9B,KAAK,EAAGmM,EAAI+B,EAAI9B,EAAIpM,EAAGqM,EAAIM,EAAG,MAC9B,KAAK,EAAGR,EAAInM,EAAGoM,EAAI8B,EAAI7B,EAAIM,EAAG,MAC9B,KAAK,EAAGR,EAAIQ,EAAGP,EAAI8B,EAAI7B,EAAIrM,EAAG,MAG/B,MAAO,CAAK,IAAJmM,EAAa,IAAJC,EAAa,IAAJC,IAG3BtB,EAAQM,KAAKL,IAAM,SAAUK,GAC5B,IAIIc,EACAC,EACAC,EANA7M,EAAI6L,EAAK,GAAK,IACd9L,EAAI8L,EAAK,GAAK,IACdxO,EAAIwO,EAAK,GAAK,IACd0B,EAAI1B,EAAK,GAAK,IASlB,OAJAc,EAAI,EAAIlP,KAAKC,IAAI,EAAGsC,GAAK,EAAIuN,GAAKA,GAClCX,EAAI,EAAInP,KAAKC,IAAI,EAAGqC,GAAK,EAAIwN,GAAKA,GAClCV,EAAI,EAAIpP,KAAKC,IAAI,EAAGL,GAAK,EAAIkQ,GAAKA,GAE3B,CAAK,IAAJZ,EAAa,IAAJC,EAAa,IAAJC,IAG3BtB,EAAQO,IAAIN,IAAM,SAAUM,GAC3B,IAGIa,EACAC,EACAC,EALAzP,EAAI0O,EAAI,GAAK,IACbzO,EAAIyO,EAAI,GAAK,IACb+B,EAAI/B,EAAI,GAAK,IA0BjB,OArBAa,EAAS,OAAJvP,GAAoB,OAALC,GAAqB,MAALwQ,EACpCjB,GAAU,MAALxP,EAAoB,OAAJC,EAAmB,MAAJwQ,EACpChB,EAAS,MAAJzP,GAAoB,KAALC,EAAoB,MAAJwQ,EAGpClB,EAAIA,EAAI,SACH,MAAQlP,KAAKiP,IAAIC,EAAG,EAAM,KAAQ,KAChC,MAAJA,EAEHC,EAAIA,EAAI,SACH,MAAQnP,KAAKiP,IAAIE,EAAG,EAAM,KAAQ,KAChC,MAAJA,EAEHC,EAAIA,EAAI,SACH,MAAQpP,KAAKiP,IAAIG,EAAG,EAAM,KAAQ,KAChC,MAAJA,EAEHF,EAAIlP,KAAKC,IAAID,KAAKqP,IAAI,EAAGH,GAAI,GAC7BC,EAAInP,KAAKC,IAAID,KAAKqP,IAAI,EAAGF,GAAI,GAC7BC,EAAIpP,KAAKC,IAAID,KAAKqP,IAAI,EAAGD,GAAI,GAEtB,CAAK,IAAJF,EAAa,IAAJC,EAAa,IAAJC,IAG3BtB,EAAQO,IAAIC,IAAM,SAAUD,GAC3B,IAGIjM,EACAoE,EACA4I,EALAzP,EAAI0O,EAAI,GACRzO,EAAIyO,EAAI,GACR+B,EAAI/B,EAAI,GAiBZ,OAZA1O,GAAK,OACLC,GAAK,IACLwQ,GAAK,QAELzQ,EAAIA,EAAI,QAAWK,KAAKiP,IAAItP,EAAG,EAAI,GAAM,MAAQA,EAAM,GAAK,IAC5DC,EAAIA,EAAI,QAAWI,KAAKiP,IAAIrP,EAAG,EAAI,GAAM,MAAQA,EAAM,GAAK,IAC5DwQ,EAAIA,EAAI,QAAWpQ,KAAKiP,IAAImB,EAAG,EAAI,GAAM,MAAQA,EAAM,GAAK,IAE5DhO,EAAK,IAAMxC,EAAK,GAChB4G,EAAI,KAAO7G,EAAIC,GACfwP,EAAI,KAAOxP,EAAIwQ,GAER,CAAChO,EAAGoE,EAAG4I,IAGftB,EAAQQ,IAAID,IAAM,SAAUC,GAC3B,IAGI3O,EACAC,EACAwQ,EALAhO,EAAIkM,EAAI,GACR9H,EAAI8H,EAAI,GACRc,EAAId,EAAI,GAKZ1O,GAAKwC,EAAI,IAAM,IACfzC,EAAI6G,EAAI,IAAM5G,EACdwQ,EAAIxQ,EAAIwP,EAAI,IAEZ,IAAIgC,EAAKpR,KAAKiP,IAAIrP,EAAG,GACjByR,EAAKrR,KAAKiP,IAAItP,EAAG,GACjB2R,EAAKtR,KAAKiP,IAAImB,EAAG,GASrB,OARAxQ,EAAIwR,EAAK,QAAWA,GAAMxR,EAAI,GAAK,KAAO,MAC1CD,EAAI0R,EAAK,QAAWA,GAAM1R,EAAI,GAAK,KAAO,MAC1CyQ,EAAIkB,EAAK,QAAWA,GAAMlB,EAAI,GAAK,KAAO,MAE1CzQ,GAAK,OACLC,GAAK,IACLwQ,GAAK,QAEE,CAACzQ,EAAGC,EAAGwQ,IAGftC,EAAQQ,IAAIC,IAAM,SAAUD,GAC3B,IAGIiD,EACAtM,EACA1C,EALAH,EAAIkM,EAAI,GACR9H,EAAI8H,EAAI,GACRc,EAAId,EAAI,GAcZ,OATAiD,EAAKvR,KAAKwR,MAAMpC,EAAG5I,GACnBvB,EAAS,IAALsM,EAAW,EAAIvR,KAAKyR,GAEpBxM,EAAI,IACPA,GAAK,KAGN1C,EAAIvC,KAAK0R,KAAKlL,EAAIA,EAAI4I,EAAIA,GAEnB,CAAChN,EAAGG,EAAG0C,IAGf6I,EAAQS,IAAID,IAAM,SAAUC,GAC3B,IAGI/H,EACA4I,EACAmC,EALAnP,EAAImM,EAAI,GACRhM,EAAIgM,EAAI,GACRtJ,EAAIsJ,EAAI,GASZ,OAJAgD,EAAKtM,EAAI,IAAM,EAAIjF,KAAKyR,GACxBjL,EAAIjE,EAAIvC,KAAK2R,IAAIJ,GACjBnC,EAAI7M,EAAIvC,KAAK4R,IAAIL,GAEV,CAACnP,EAAGoE,EAAG4I,IAGftB,EAAQC,IAAIW,OAAS,SAAUmD,GAC9B,IAAI3C,EAAI2C,EAAK,GACT1C,EAAI0C,EAAK,GACTzC,EAAIyC,EAAK,GACT/L,EAAQ,KAAKgM,UAAYA,UAAU,GAAKhE,EAAQC,IAAIG,IAAI2D,GAAM,GAIlE,GAFA/L,EAAQ9F,KAAK+R,MAAMjM,EAAQ,IAEb,IAAVA,EACH,OAAO,GAGR,IAAIkM,EAAO,IACNhS,KAAK+R,MAAM3C,EAAI,MAAQ,EACxBpP,KAAK+R,MAAM5C,EAAI,MAAQ,EACxBnP,KAAK+R,MAAM7C,EAAI,MAMlB,OAJc,IAAVpJ,IACHkM,GAAQ,IAGFA,GAGRlE,EAAQI,IAAIQ,OAAS,SAAUmD,GAG9B,OAAO/D,EAAQC,IAAIW,OAAOZ,EAAQI,IAAIH,IAAI8D,GAAOA,EAAK,KAGvD/D,EAAQC,IAAIY,QAAU,SAAUkD,GAC/B,IAAI3C,EAAI2C,EAAK,GACT1C,EAAI0C,EAAK,GACTzC,EAAIyC,EAAK,GAIb,GAAI3C,IAAMC,GAAKA,IAAMC,EACpB,OAAIF,EAAI,EACA,GAGJA,EAAI,IACA,IAGDlP,KAAK+R,OAAQ7C,EAAI,GAAK,IAAO,IAAM,IAG3C,IAAI8C,EAAO,GACP,GAAKhS,KAAK+R,MAAM7C,EAAI,IAAM,GAC1B,EAAIlP,KAAK+R,MAAM5C,EAAI,IAAM,GAC1BnP,KAAK+R,MAAM3C,EAAI,IAAM,GAExB,OAAO4C,GAGRlE,EAAQY,OAAOX,IAAM,SAAU8D,GAC9B,IAAII,EAAQJ,EAAO,GAGnB,GAAc,IAAVI,GAAyB,IAAVA,EAOlB,OANIJ,EAAO,KACVI,GAAS,KAGVA,EAAQA,EAAQ,KAAO,IAEhB,CAACA,EAAOA,EAAOA,GAGvB,IAAIC,EAA6B,IAAL,KAAbL,EAAO,KAClB3C,GAAc,EAAR+C,GAAaC,EAAQ,IAC3B/C,GAAO8C,GAAS,EAAK,GAAKC,EAAQ,IAClC9C,GAAO6C,GAAS,EAAK,GAAKC,EAAQ,IAEtC,MAAO,CAAChD,EAAGC,EAAGC,IAGftB,EAAQa,QAAQZ,IAAM,SAAU8D,GAE/B,GAAIA,GAAQ,IAAK,CAChB,IAAItP,EAAmB,IAAdsP,EAAO,KAAY,EAC5B,MAAO,CAACtP,EAAGA,EAAGA,GAKf,IAAI4P,EAFJN,GAAQ,GAGR,IAAI3C,EAAIlP,KAAKmN,MAAM0E,EAAO,IAAM,EAAI,IAChC1C,EAAInP,KAAKmN,OAAOgF,EAAMN,EAAO,IAAM,GAAK,EAAI,IAC5CzC,EAAK+C,EAAM,EAAK,EAAI,IAExB,MAAO,CAACjD,EAAGC,EAAGC,IAGftB,EAAQC,IAAIS,IAAM,SAAUqD,GAC3B,IAAIO,IAAkC,IAAtBpS,KAAK+R,MAAMF,EAAK,MAAe,MACpB,IAAtB7R,KAAK+R,MAAMF,EAAK,MAAe,IACV,IAAtB7R,KAAK+R,MAAMF,EAAK,KAEhBQ,EAASD,EAAQE,SAAS,IAAIC,cAClC,MAAO,SAASC,UAAUH,EAAOtJ,QAAUsJ,GAG5CvE,EAAQU,IAAIT,IAAM,SAAU8D,GAC3B,IAAIY,EAAQZ,EAAKS,SAAS,IAAIG,MAAM,4BACpC,IAAKA,EACJ,MAAO,CAAC,EAAG,EAAG,GAGf,IAAIC,EAAcD,EAAM,GAEA,IAApBA,EAAM,GAAG1J,SACZ2J,EAAcA,EAAYC,MAAM,IAAIpK,KAAI,SAAUqK,GACjD,OAAOA,EAAOA,KACZC,KAAK,KAGT,IAAIT,EAAUU,SAASJ,EAAa,IAChCxD,EAAKkD,GAAW,GAAM,IACtBjD,EAAKiD,GAAW,EAAK,IACrBhD,EAAc,IAAVgD,EAER,MAAO,CAAClD,EAAGC,EAAGC,IAGftB,EAAQC,IAAIa,IAAM,SAAUb,GAC3B,IAMIgF,EACAC,EAPA9D,EAAInB,EAAI,GAAK,IACboB,EAAIpB,EAAI,GAAK,IACbqB,EAAIrB,EAAI,GAAK,IACbsB,EAAMrP,KAAKqP,IAAIrP,KAAKqP,IAAIH,EAAGC,GAAIC,GAC/BnP,EAAMD,KAAKC,IAAID,KAAKC,IAAIiP,EAAGC,GAAIC,GAC/B6D,EAAU5D,EAAMpP,EAyBpB,OApBC8S,EADGE,EAAS,EACAhT,GAAO,EAAIgT,GAEX,EAIZD,EADGC,GAAU,EACP,EAEH5D,IAAQH,GACHC,EAAIC,GAAK6D,EAAU,EAExB5D,IAAQF,EACL,GAAKC,EAAIF,GAAK+D,EAEd,GAAK/D,EAAIC,GAAK8D,EAAS,EAG9BD,GAAO,EACPA,GAAO,EAEA,CAAO,IAANA,EAAoB,IAATC,EAA0B,IAAZF,IAGlCjF,EAAQG,IAAIW,IAAM,SAAUX,GAC3B,IAAI5K,EAAI4K,EAAI,GAAK,IACb7L,EAAI6L,EAAI,GAAK,IACb1L,EAAI,EACJqO,EAAI,EAYR,OATCrO,EADGH,EAAI,GACH,EAAMiB,EAAIjB,EAEV,EAAMiB,GAAK,EAAMjB,GAGlBG,EAAI,IACPqO,GAAKxO,EAAI,GAAMG,IAAM,EAAMA,IAGrB,CAAC0L,EAAI,GAAQ,IAAJ1L,EAAa,IAAJqO,IAG1B9C,EAAQI,IAAIU,IAAM,SAAUV,GAC3B,IAAI7K,EAAI6K,EAAI,GAAK,IACbwB,EAAIxB,EAAI,GAAK,IAEb3L,EAAIc,EAAIqM,EACRkB,EAAI,EAMR,OAJIrO,EAAI,IACPqO,GAAKlB,EAAInN,IAAM,EAAIA,IAGb,CAAC2L,EAAI,GAAQ,IAAJ3L,EAAa,IAAJqO,IAG1B9C,EAAQc,IAAIb,IAAM,SAAUa,GAC3B,IAAI3J,EAAI2J,EAAI,GAAK,IACbrM,EAAIqM,EAAI,GAAK,IACbO,EAAIP,EAAI,GAAK,IAEjB,GAAU,IAANrM,EACH,MAAO,CAAK,IAAJ4M,EAAa,IAAJA,EAAa,IAAJA,GAG3B,IAAI+D,EAAO,CAAC,EAAG,EAAG,GACdvC,EAAM1L,EAAI,EAAK,EACfyK,EAAIiB,EAAK,EACTd,EAAI,EAAIH,EACRyD,EAAK,EAET,OAAQnT,KAAKmN,MAAMwD,IAClB,KAAK,EACJuC,EAAK,GAAK,EAAGA,EAAK,GAAKxD,EAAGwD,EAAK,GAAK,EAAG,MACxC,KAAK,EACJA,EAAK,GAAKrD,EAAGqD,EAAK,GAAK,EAAGA,EAAK,GAAK,EAAG,MACxC,KAAK,EACJA,EAAK,GAAK,EAAGA,EAAK,GAAK,EAAGA,EAAK,GAAKxD,EAAG,MACxC,KAAK,EACJwD,EAAK,GAAK,EAAGA,EAAK,GAAKrD,EAAGqD,EAAK,GAAK,EAAG,MACxC,KAAK,EACJA,EAAK,GAAKxD,EAAGwD,EAAK,GAAK,EAAGA,EAAK,GAAK,EAAG,MACxC,QACCA,EAAK,GAAK,EAAGA,EAAK,GAAK,EAAGA,EAAK,GAAKrD,EAKtC,OAFAsD,GAAM,EAAM5Q,GAAK4M,EAEV,CACe,KAApB5M,EAAI2Q,EAAK,GAAKC,GACM,KAApB5Q,EAAI2Q,EAAK,GAAKC,GACM,KAApB5Q,EAAI2Q,EAAK,GAAKC,KAIjBrF,EAAQc,IAAIV,IAAM,SAAUU,GAC3B,IAAIrM,EAAIqM,EAAI,GAAK,IACbO,EAAIP,EAAI,GAAK,IAEbc,EAAInN,EAAI4M,GAAK,EAAM5M,GACnBqO,EAAI,EAMR,OAJIlB,EAAI,IACPkB,EAAIrO,EAAImN,GAGF,CAACd,EAAI,GAAQ,IAAJgC,EAAa,IAAJlB,IAG1B5B,EAAQc,IAAIX,IAAM,SAAUW,GAC3B,IAAIrM,EAAIqM,EAAI,GAAK,IACbO,EAAIP,EAAI,GAAK,IAEbxM,EAAI+M,GAAK,EAAM5M,GAAK,GAAMA,EAC1Bc,EAAI,EASR,OAPIjB,EAAI,GAAOA,EAAI,GAClBiB,EAAId,GAAK,EAAIH,GAEVA,GAAK,IAAOA,EAAI,IACnBiB,EAAId,GAAK,GAAK,EAAIH,KAGZ,CAACwM,EAAI,GAAQ,IAAJvL,EAAa,IAAJjB,IAG1B0L,EAAQc,IAAIT,IAAM,SAAUS,GAC3B,IAAIrM,EAAIqM,EAAI,GAAK,IACbO,EAAIP,EAAI,GAAK,IACbc,EAAInN,EAAI4M,GAAK,EAAM5M,GACvB,MAAO,CAACqM,EAAI,GAAc,KAATc,EAAInN,GAAoB,KAAT,EAAImN,KAGrC5B,EAAQK,IAAIS,IAAM,SAAUT,GAC3B,IAAI0B,EAAI1B,EAAI,GAAK,IACbiB,EAAIjB,EAAI,GAAK,IACbuB,EAAI,EAAIN,EACR7M,EAAImN,EAAIG,EACRV,EAAI,EAMR,OAJI5M,EAAI,IACP4M,GAAKO,EAAInN,IAAM,EAAIA,IAGb,CAAC4L,EAAI,GAAQ,IAAJ5L,EAAa,IAAJ4M,IAG1BrB,EAAQe,MAAMd,IAAM,SAAUc,GAC7B,MAAO,CAAEA,EAAM,GAAK,MAAS,IAAMA,EAAM,GAAK,MAAS,IAAMA,EAAM,GAAK,MAAS,MAGlFf,EAAQC,IAAIc,MAAQ,SAAUd,GAC7B,MAAO,CAAEA,EAAI,GAAK,IAAO,MAAQA,EAAI,GAAK,IAAO,MAAQA,EAAI,GAAK,IAAO,QAG1ED,EAAQgB,KAAKf,IAAM,SAAU8D,GAC5B,MAAO,CAACA,EAAK,GAAK,IAAM,IAAKA,EAAK,GAAK,IAAM,IAAKA,EAAK,GAAK,IAAM,MAGnE/D,EAAQgB,KAAKb,IAAMH,EAAQgB,KAAKZ,IAAM,SAAU2D,GAC/C,MAAO,CAAC,EAAG,EAAGA,EAAK,KAGpB/D,EAAQgB,KAAKX,IAAM,SAAUW,GAC5B,MAAO,CAAC,EAAG,IAAKA,EAAK,KAGtBhB,EAAQgB,KAAKV,KAAO,SAAUU,GAC7B,MAAO,CAAC,EAAG,EAAG,EAAGA,EAAK,KAGvBhB,EAAQgB,KAAKR,IAAM,SAAUQ,GAC5B,MAAO,CAACA,EAAK,GAAI,EAAG,IAGrBhB,EAAQgB,KAAKN,IAAM,SAAUM,GAC5B,IAAIhC,EAAwC,IAAlC9M,KAAK+R,MAAMjD,EAAK,GAAK,IAAM,KACjCsD,GAAWtF,GAAO,KAAOA,GAAO,GAAKA,EAErCuF,EAASD,EAAQE,SAAS,IAAIC,cAClC,MAAO,SAASC,UAAUH,EAAOtJ,QAAUsJ,GAG5CvE,EAAQC,IAAIe,KAAO,SAAUf,GAC5B,IAAIjB,GAAOiB,EAAI,GAAKA,EAAI,GAAKA,EAAI,IAAM,EACvC,MAAO,CAACjB,EAAM,IAAM,SAGDc,EAAYG,IACZH,EAAYK,IACZL,EAAYM,IACZN,EAAYO,IACZP,EAAYQ,KACZR,EAAYS,IACZT,EAAYU,IACZV,EAAYW,IACZX,EAAYY,IACXZ,EAAYa,QACZb,EAAYc,OACZd,EAAYe,QACZf,EAAYgB,IACZhB,EAAYiB,MACZjB,EAAYkB,KAajC,SAASsE,IAKR,IAJA,IAAIC,EAAQ,GAERC,EAAS1V,OAAOsL,KAAK0E,GAEhB2F,EAAMD,EAAOvK,OAAQzH,EAAI,EAAGA,EAAIiS,EAAKjS,IAC7C+R,EAAMC,EAAOhS,IAAM,CAGlB6O,UAAW,EACX1L,OAAQ,MAIV,OAAO4O,EAIR,SAASG,EAAUC,GAClB,IAAIJ,EAAQD,IACRM,EAAQ,CAACD,GAEbJ,EAAMI,GAAWtD,SAAW,EAE5B,MAAOuD,EAAM3K,OAIZ,IAHA,IAAI4K,EAAUD,EAAME,MAChBC,EAAYjW,OAAOsL,KAAK0E,EAAY+F,IAE/BJ,EAAMM,EAAU9K,OAAQzH,EAAI,EAAGA,EAAIiS,EAAKjS,IAAK,CACrD,IAAIwS,EAAWD,EAAUvS,GACrByS,EAAOV,EAAMS,IAEM,IAAnBC,EAAK5D,WACR4D,EAAK5D,SAAWkD,EAAMM,GAASxD,SAAW,EAC1C4D,EAAKtP,OAASkP,EACdD,EAAMM,QAAQF,IAKjB,OAAOT,EAGR,SAASY,EAAKC,EAAMC,GACnB,OAAO,SAAUtC,GAChB,OAAOsC,EAAGD,EAAKrC,KAIjB,SAASuC,EAAeC,EAAShB,GAChC,IAAIiB,EAAO,CAACjB,EAAMgB,GAAS5P,OAAQ4P,GAC/B5G,EAAKG,EAAYyF,EAAMgB,GAAS5P,QAAQ4P,GAExCE,EAAMlB,EAAMgB,GAAS5P,OACzB,MAAO4O,EAAMkB,GAAK9P,OACjB6P,EAAKN,QAAQX,EAAMkB,GAAK9P,QACxBgJ,EAAKwG,EAAKrG,EAAYyF,EAAMkB,GAAK9P,QAAQ8P,GAAM9G,GAC/C8G,EAAMlB,EAAMkB,GAAK9P,OAIlB,OADAgJ,EAAG+G,WAAaF,EACT7G,EAGR,IAAIgH,EAAQ,SAAUhB,GAKrB,IAJA,IAAIJ,EAAQG,EAAUC,GAClBe,EAAa,GAEblB,EAAS1V,OAAOsL,KAAKmK,GAChBE,EAAMD,EAAOvK,OAAQzH,EAAI,EAAGA,EAAIiS,EAAKjS,IAAK,CAClD,IAAI+S,EAAUf,EAAOhS,GACjByS,EAAOV,EAAMgB,GAEG,OAAhBN,EAAKtP,SAKT+P,EAAWH,GAAWD,EAAeC,EAAShB,IAG/C,OAAOmB,GAGJ1G,EAAU,GAEVwF,EAAS1V,OAAOsL,KAAK0E,GAEzB,SAAS8G,EAAQjH,GAChB,IAAIkH,EAAY,SAAU9C,GACzB,YAAa+C,IAAT/C,GAA+B,OAATA,EAClBA,GAGJC,UAAU/I,OAAS,IACtB8I,EAAO/G,MAAMnM,UAAUkW,MAAMxS,KAAKyP,YAG5BrE,EAAGoE,KAQX,MAJI,eAAgBpE,IACnBkH,EAAUH,WAAa/G,EAAG+G,YAGpBG,EAGR,SAASG,EAAYrH,GACpB,IAAIkH,EAAY,SAAU9C,GACzB,QAAa+C,IAAT/C,GAA+B,OAATA,EACzB,OAAOA,EAGJC,UAAU/I,OAAS,IACtB8I,EAAO/G,MAAMnM,UAAUkW,MAAMxS,KAAKyP,YAGnC,IAAIiD,EAAStH,EAAGoE,GAKhB,GAAsB,kBAAXkD,EACV,IAAK,IAAIxB,EAAMwB,EAAOhM,OAAQzH,EAAI,EAAGA,EAAIiS,EAAKjS,IAC7CyT,EAAOzT,GAAKtB,KAAK+R,MAAMgD,EAAOzT,IAIhC,OAAOyT,GAQR,MAJI,eAAgBtH,IACnBkH,EAAUH,WAAa/G,EAAG+G,YAGpBG,EAGRrB,EAAOtK,SAAQ,SAAUyK,GACxB3F,EAAQ2F,GAAa,GAErB7V,OAAO+E,eAAemL,EAAQ2F,GAAY,WAAY,CAAC3N,MAAO8H,EAAY6F,GAAWzF,WACrFpQ,OAAO+E,eAAemL,EAAQ2F,GAAY,SAAU,CAAC3N,MAAO8H,EAAY6F,GAAWhK,SAEnF,IAAIuL,EAASP,EAAMhB,GACfwB,EAAcrX,OAAOsL,KAAK8L,GAE9BC,EAAYjM,SAAQ,SAAUqL,GAC7B,IAAI5G,EAAKuH,EAAOX,GAEhBvG,EAAQ2F,GAAWY,GAAWS,EAAYrH,GAC1CK,EAAQ2F,GAAWY,GAASa,IAAMR,EAAQjH,SAI5C,IAAI0H,EAAerH,EAEfsH,EAAc,CACjB,UAAa,CAAC,IAAK,IAAK,KACxB,aAAgB,CAAC,IAAK,IAAK,KAC3B,KAAQ,CAAC,EAAG,IAAK,KACjB,WAAc,CAAC,IAAK,IAAK,KACzB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,OAAU,CAAC,IAAK,IAAK,KACrB,MAAS,CAAC,EAAG,EAAG,GAChB,eAAkB,CAAC,IAAK,IAAK,KAC7B,KAAQ,CAAC,EAAG,EAAG,KACf,WAAc,CAAC,IAAK,GAAI,KACxB,MAAS,CAAC,IAAK,GAAI,IACnB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,WAAc,CAAC,IAAK,IAAK,GACzB,UAAa,CAAC,IAAK,IAAK,IACxB,MAAS,CAAC,IAAK,IAAK,IACpB,eAAkB,CAAC,IAAK,IAAK,KAC7B,SAAY,CAAC,IAAK,IAAK,KACvB,QAAW,CAAC,IAAK,GAAI,IACrB,KAAQ,CAAC,EAAG,IAAK,KACjB,SAAY,CAAC,EAAG,EAAG,KACnB,SAAY,CAAC,EAAG,IAAK,KACrB,cAAiB,CAAC,IAAK,IAAK,IAC5B,SAAY,CAAC,IAAK,IAAK,KACvB,UAAa,CAAC,EAAG,IAAK,GACtB,SAAY,CAAC,IAAK,IAAK,KACvB,UAAa,CAAC,IAAK,IAAK,KACxB,YAAe,CAAC,IAAK,EAAG,KACxB,eAAkB,CAAC,GAAI,IAAK,IAC5B,WAAc,CAAC,IAAK,IAAK,GACzB,WAAc,CAAC,IAAK,GAAI,KACxB,QAAW,CAAC,IAAK,EAAG,GACpB,WAAc,CAAC,IAAK,IAAK,KACzB,aAAgB,CAAC,IAAK,IAAK,KAC3B,cAAiB,CAAC,GAAI,GAAI,KAC1B,cAAiB,CAAC,GAAI,GAAI,IAC1B,cAAiB,CAAC,GAAI,GAAI,IAC1B,cAAiB,CAAC,EAAG,IAAK,KAC1B,WAAc,CAAC,IAAK,EAAG,KACvB,SAAY,CAAC,IAAK,GAAI,KACtB,YAAe,CAAC,EAAG,IAAK,KACxB,QAAW,CAAC,IAAK,IAAK,KACtB,QAAW,CAAC,IAAK,IAAK,KACtB,WAAc,CAAC,GAAI,IAAK,KACxB,UAAa,CAAC,IAAK,GAAI,IACvB,YAAe,CAAC,IAAK,IAAK,KAC1B,YAAe,CAAC,GAAI,IAAK,IACzB,QAAW,CAAC,IAAK,EAAG,KACpB,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,KAAQ,CAAC,IAAK,IAAK,GACnB,UAAa,CAAC,IAAK,IAAK,IACxB,KAAQ,CAAC,IAAK,IAAK,KACnB,MAAS,CAAC,EAAG,IAAK,GAClB,YAAe,CAAC,IAAK,IAAK,IAC1B,KAAQ,CAAC,IAAK,IAAK,KACnB,SAAY,CAAC,IAAK,IAAK,KACvB,QAAW,CAAC,IAAK,IAAK,KACtB,UAAa,CAAC,IAAK,GAAI,IACvB,OAAU,CAAC,GAAI,EAAG,KAClB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,SAAY,CAAC,IAAK,IAAK,KACvB,cAAiB,CAAC,IAAK,IAAK,KAC5B,UAAa,CAAC,IAAK,IAAK,GACxB,aAAgB,CAAC,IAAK,IAAK,KAC3B,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,qBAAwB,CAAC,IAAK,IAAK,KACnC,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,YAAe,CAAC,IAAK,IAAK,KAC1B,cAAiB,CAAC,GAAI,IAAK,KAC3B,aAAgB,CAAC,IAAK,IAAK,KAC3B,eAAkB,CAAC,IAAK,IAAK,KAC7B,eAAkB,CAAC,IAAK,IAAK,KAC7B,eAAkB,CAAC,IAAK,IAAK,KAC7B,YAAe,CAAC,IAAK,IAAK,KAC1B,KAAQ,CAAC,EAAG,IAAK,GACjB,UAAa,CAAC,GAAI,IAAK,IACvB,MAAS,CAAC,IAAK,IAAK,KACpB,QAAW,CAAC,IAAK,EAAG,KACpB,OAAU,CAAC,IAAK,EAAG,GACnB,iBAAoB,CAAC,IAAK,IAAK,KAC/B,WAAc,CAAC,EAAG,EAAG,KACrB,aAAgB,CAAC,IAAK,GAAI,KAC1B,aAAgB,CAAC,IAAK,IAAK,KAC3B,eAAkB,CAAC,GAAI,IAAK,KAC5B,gBAAmB,CAAC,IAAK,IAAK,KAC9B,kBAAqB,CAAC,EAAG,IAAK,KAC9B,gBAAmB,CAAC,GAAI,IAAK,KAC7B,gBAAmB,CAAC,IAAK,GAAI,KAC7B,aAAgB,CAAC,GAAI,GAAI,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,SAAY,CAAC,IAAK,IAAK,KACvB,YAAe,CAAC,IAAK,IAAK,KAC1B,KAAQ,CAAC,EAAG,EAAG,KACf,QAAW,CAAC,IAAK,IAAK,KACtB,MAAS,CAAC,IAAK,IAAK,GACpB,UAAa,CAAC,IAAK,IAAK,IACxB,OAAU,CAAC,IAAK,IAAK,GACrB,UAAa,CAAC,IAAK,GAAI,GACvB,OAAU,CAAC,IAAK,IAAK,KACrB,cAAiB,CAAC,IAAK,IAAK,KAC5B,UAAa,CAAC,IAAK,IAAK,KACxB,cAAiB,CAAC,IAAK,IAAK,KAC5B,cAAiB,CAAC,IAAK,IAAK,KAC5B,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,KAAQ,CAAC,IAAK,IAAK,IACnB,KAAQ,CAAC,IAAK,IAAK,KACnB,KAAQ,CAAC,IAAK,IAAK,KACnB,WAAc,CAAC,IAAK,IAAK,KACzB,OAAU,CAAC,IAAK,EAAG,KACnB,cAAiB,CAAC,IAAK,GAAI,KAC3B,IAAO,CAAC,IAAK,EAAG,GAChB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,YAAe,CAAC,IAAK,GAAI,IACzB,OAAU,CAAC,IAAK,IAAK,KACrB,WAAc,CAAC,IAAK,IAAK,IACzB,SAAY,CAAC,GAAI,IAAK,IACtB,SAAY,CAAC,IAAK,IAAK,KACvB,OAAU,CAAC,IAAK,GAAI,IACpB,OAAU,CAAC,IAAK,IAAK,KACrB,QAAW,CAAC,IAAK,IAAK,KACtB,UAAa,CAAC,IAAK,GAAI,KACvB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,KAAQ,CAAC,IAAK,IAAK,KACnB,YAAe,CAAC,EAAG,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,IAAO,CAAC,IAAK,IAAK,KAClB,KAAQ,CAAC,EAAG,IAAK,KACjB,QAAW,CAAC,IAAK,IAAK,KACtB,OAAU,CAAC,IAAK,GAAI,IACpB,UAAa,CAAC,GAAI,IAAK,KACvB,OAAU,CAAC,IAAK,IAAK,KACrB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,WAAc,CAAC,IAAK,IAAK,KACzB,OAAU,CAAC,IAAK,IAAK,GACrB,YAAe,CAAC,IAAK,IAAK,KAMvB1C,EAAc,CACf2C,QAASA,EACTC,QAASA,EACTC,OAAQA,EACRC,OAAQA,EACRC,OAAQA,EACRC,SAAUA,EAEVC,UAAWA,EACXC,UAAWA,EACXC,WAAYA,EACZC,cAAeA,EACfC,eAAgBA,EAChBC,UAAWA,EACXC,WAAYA,EACZC,UAAWA,EACXzH,QAASA,GAGZ,SAAS4G,EAAQhD,GACd,GAAKA,EAAL,CAGA,IAAI8D,EAAQ,yBACR3H,EAAO,wCACP4H,EAAO,2FACPC,EAAM,6GACN5H,EAAU,QAEVV,EAAM,CAAC,EAAG,EAAG,GACbvH,EAAI,EACJiM,EAAQJ,EAAOI,MAAM0D,GACrBG,EAAW,GACf,GAAI7D,EAAO,CACRA,EAAQA,EAAM,GACd6D,EAAW7D,EAAM,GACjB,IAAK,IAAInR,EAAI,EAAGA,EAAIyM,EAAIhF,OAAQzH,IAC7ByM,EAAIzM,GAAKwR,SAASL,EAAMnR,GAAKmR,EAAMnR,GAAI,IAEtCgV,IACD9P,EAAIxG,KAAK+R,MAAOe,SAASwD,EAAWA,EAAU,IAAM,IAAO,KAAO,UAGnE,GAAI7D,EAAQJ,EAAOI,MAAMjE,GAAM,CACjC8H,EAAW7D,EAAM,GACjBA,EAAQA,EAAM,GACd,IAASnR,EAAI,EAAGA,EAAIyM,EAAIhF,OAAQzH,IAC7ByM,EAAIzM,GAAKwR,SAASL,EAAMoC,MAAU,EAAJvT,EAAW,EAAJA,EAAQ,GAAI,IAEhDgV,IACD9P,EAAIxG,KAAK+R,MAAOe,SAASwD,EAAU,IAAM,IAAO,KAAO,UAGxD,GAAI7D,EAAQJ,EAAOI,MAAM2D,GAAO,CAClC,IAAS9U,EAAI,EAAGA,EAAIyM,EAAIhF,OAAQzH,IAC7ByM,EAAIzM,GAAKwR,SAASL,EAAMnR,EAAI,IAE/BkF,EAAI+P,WAAW9D,EAAM,SAEnB,GAAIA,EAAQJ,EAAOI,MAAM4D,GAAM,CACjC,IAAS/U,EAAI,EAAGA,EAAIyM,EAAIhF,OAAQzH,IAC7ByM,EAAIzM,GAAKtB,KAAK+R,MAAiC,KAA3BwE,WAAW9D,EAAMnR,EAAI,KAE5CkF,EAAI+P,WAAW9D,EAAM,SAEnB,GAAIA,EAAQJ,EAAOI,MAAMhE,GAAU,CACrC,GAAgB,eAAZgE,EAAM,GACP,MAAO,CAAC,EAAG,EAAG,EAAG,GAGpB,GADA1E,EAAMqH,EAAY3C,EAAM,KACnB1E,EACF,OAIN,IAASzM,EAAI,EAAGA,EAAIyM,EAAIhF,OAAQzH,IAC7ByM,EAAIzM,GAAKkV,EAAMzI,EAAIzM,GAAI,EAAG,KAS7B,OAHGkF,EAJEA,GAAU,GAALA,EAIHgQ,EAAMhQ,EAAG,EAAG,GAHZ,EAKPuH,EAAI,GAAKvH,EACFuH,GAGV,SAASuH,EAAQjD,GACd,GAAKA,EAAL,CAGA,IAAIpE,EAAM,2GACNwE,EAAQJ,EAAOI,MAAMxE,GACzB,GAAIwE,EAAO,CACR,IAAIgE,EAAQF,WAAW9D,EAAM,IACzBxN,EAAIuR,EAAM1D,SAASL,EAAM,IAAK,EAAG,KACjCpP,EAAImT,EAAMD,WAAW9D,EAAM,IAAK,EAAG,KACnCrQ,EAAIoU,EAAMD,WAAW9D,EAAM,IAAK,EAAG,KACnCjM,EAAIgQ,EAAME,MAAMD,GAAS,EAAIA,EAAO,EAAG,GAC3C,MAAO,CAACxR,EAAG5B,EAAGjB,EAAGoE,KAIvB,SAASiP,EAAOpD,GACb,GAAKA,EAAL,CAGA,IAAIlE,EAAM,yGACNsE,EAAQJ,EAAOI,MAAMtE,GACzB,GAAIsE,EAAO,CACV,IAAIgE,EAAQF,WAAW9D,EAAM,IACvBxN,EAAIuR,EAAM1D,SAASL,EAAM,IAAK,EAAG,KACjC5C,EAAI2G,EAAMD,WAAW9D,EAAM,IAAK,EAAG,KACnCrD,EAAIoH,EAAMD,WAAW9D,EAAM,IAAK,EAAG,KACnCjM,EAAIgQ,EAAME,MAAMD,GAAS,EAAIA,EAAO,EAAG,GAC3C,MAAO,CAACxR,EAAG4K,EAAGT,EAAG5I,KAIvB,SAAS+O,EAAOlD,GACb,IAAI+D,EAAOf,EAAQhD,GACnB,OAAO+D,GAAQA,EAAKvB,MAAM,EAAG,GAGhC,SAASW,EAAOnD,GACd,IAAIsE,EAAOrB,EAAQjD,GACnB,OAAOsE,GAAQA,EAAK9B,MAAM,EAAG,GAG/B,SAASa,EAASrD,GACf,IAAIuE,EAAOvB,EAAQhD,GACnB,OAAIuE,IAGKA,EAAOtB,EAAQjD,MAGfuE,EAAOnB,EAAOpD,IALbuE,EAAK,QAKV,EAMR,SAASjB,EAAUS,EAAM5P,GAClBA,OAAWoO,IAANpO,GAAmC,IAAhB4P,EAAKrN,OAAgBvC,EAAI4P,EAAK,GAC1D,MAAO,IAAMS,EAAUT,EAAK,IACfS,EAAUT,EAAK,IACfS,EAAUT,EAAK,KAEb5P,GAAK,GAAKA,EAAI,EACbqQ,EAAU7W,KAAK+R,MAAU,IAAJvL,IACrB,IAInB,SAASoP,EAAUQ,EAAMK,GACtB,OAAIA,EAAQ,GAAML,EAAK,IAAMA,EAAK,GAAK,EAC7BP,EAAWO,EAAMK,GAEpB,OAASL,EAAK,GAAK,KAAOA,EAAK,GAAK,KAAOA,EAAK,GAAK,IAG/D,SAASP,EAAWO,EAAMK,GAIvB,YAHc7B,IAAV6B,IACDA,OAAqB7B,IAAZwB,EAAK,GAAmBA,EAAK,GAAK,GAEvC,QAAUA,EAAK,GAAK,KAAOA,EAAK,GAAK,KAAOA,EAAK,GAC9C,KAAOK,EAAQ,IAG5B,SAASX,EAAcM,EAAMK,GAC1B,GAAIA,EAAQ,GAAML,EAAK,IAAMA,EAAK,GAAK,EACpC,OAAOL,EAAeK,EAAMK,GAE/B,IAAIvH,EAAIlP,KAAK+R,MAAMqE,EAAK,GAAG,IAAM,KAC7BjH,EAAInP,KAAK+R,MAAMqE,EAAK,GAAG,IAAM,KAC7BhH,EAAIpP,KAAK+R,MAAMqE,EAAK,GAAG,IAAM,KAEjC,MAAO,OAASlH,EAAI,MAAQC,EAAI,MAAQC,EAAI,KAG/C,SAAS2G,EAAeK,EAAMK,GAC3B,IAAIvH,EAAIlP,KAAK+R,MAAMqE,EAAK,GAAG,IAAM,KAC7BjH,EAAInP,KAAK+R,MAAMqE,EAAK,GAAG,IAAM,KAC7BhH,EAAIpP,KAAK+R,MAAMqE,EAAK,GAAG,IAAM,KACjC,MAAO,QAAUlH,EAAI,MAAQC,EAAI,MAAQC,EAAI,OAASqH,GAASL,EAAK,IAAM,GAAK,IAGlF,SAASJ,EAAUW,EAAMF,GACtB,OAAIA,EAAQ,GAAME,EAAK,IAAMA,EAAK,GAAK,EAC7BV,EAAWU,EAAMF,GAEpB,OAASE,EAAK,GAAK,KAAOA,EAAK,GAAK,MAAQA,EAAK,GAAK,KAGhE,SAASV,EAAWU,EAAMF,GAIvB,YAHc7B,IAAV6B,IACDA,OAAqB7B,IAAZ+B,EAAK,GAAmBA,EAAK,GAAK,GAEvC,QAAUA,EAAK,GAAK,KAAOA,EAAK,GAAK,MAAQA,EAAK,GAAK,MACpDF,EAAQ,IAKrB,SAASP,EAAU/H,EAAKsI,GAIrB,YAHc7B,IAAV6B,IACDA,OAAoB7B,IAAXzG,EAAI,GAAmBA,EAAI,GAAK,GAErC,OAASA,EAAI,GAAK,KAAOA,EAAI,GAAK,MAAQA,EAAI,GAAK,UACrCyG,IAAV6B,GAAiC,IAAVA,EAAc,KAAOA,EAAQ,IAAM,IAGxE,SAAShI,EAAQV,GACf,OAAO+I,EAAa/I,EAAI8G,MAAM,EAAG,IAInC,SAAS2B,EAAMO,EAAK9W,EAAKoP,GACtB,OAAOrP,KAAKC,IAAID,KAAKqP,IAAIpP,EAAK8W,GAAM1H,GAGvC,SAASwH,EAAUE,GACjB,IAAIC,EAAMD,EAAIzE,SAAS,IAAIC,cAC3B,OAAQyE,EAAIjO,OAAS,EAAK,IAAMiO,EAAMA,EAKxC,IAAIF,EAAe,GACnB,IAAK,IAAI3Z,KAAQiY,EACd0B,EAAa1B,EAAYjY,IAASA,EAOrC,IAAI8Z,EAAQ,SAAUzR,GACrB,OAAIA,aAAeyR,EACXzR,EAEFvH,gBAAgBgZ,GAItBhZ,KAAKiZ,OAAQ,EACbjZ,KAAKkZ,OAAS,CACbpJ,IAAK,CAAC,EAAG,EAAG,GACZE,IAAK,CAAC,EAAG,EAAG,GACZC,IAAK,CAAC,EAAG,EAAG,GACZC,IAAK,CAAC,EAAG,EAAG,GACZC,KAAM,CAAC,EAAG,EAAG,EAAG,GAChBqI,MAAO,QAKW,kBAARjR,GACVoR,EAAOlE,EAAY2C,QAAQ7P,GACvBoR,EACH3Y,KAAKmZ,UAAU,MAAOR,IACZA,EAAOlE,EAAY4C,QAAQ9P,IACrCvH,KAAKmZ,UAAU,MAAOR,IACZA,EAAOlE,EAAY+C,OAAOjQ,KACpCvH,KAAKmZ,UAAU,MAAOR,IAEE,kBAARpR,IACjBoR,EAAOpR,OACQoP,IAAXgC,EAAK1H,QAAgC0F,IAAbgC,EAAKS,IAChCpZ,KAAKmZ,UAAU,MAAOR,QACDhC,IAAXgC,EAAKxU,QAAsCwS,IAAnBgC,EAAKU,UACvCrZ,KAAKmZ,UAAU,MAAOR,QACDhC,IAAXgC,EAAKlH,QAAkCkF,IAAfgC,EAAK9Q,MACvC7H,KAAKmZ,UAAU,MAAOR,QACDhC,IAAXgC,EAAK/G,QAAsC+E,IAAnBgC,EAAKW,UACvCtZ,KAAKmZ,UAAU,MAAOR,QACDhC,IAAXgC,EAAKrU,QAAiCqS,IAAdgC,EAAKY,MACvCvZ,KAAKmZ,UAAU,OAAQR,MAnCjB,IAAIK,EAAMzR,GAclB,IAAIoR,GA0BLK,EAAMtY,UAAY,CACjB8Y,QAAS,WACR,OAAOxZ,KAAKiZ,OAEbnJ,IAAK,WACJ,OAAO9P,KAAKyZ,SAAS,MAAO5F,YAE7B7D,IAAK,WACJ,OAAOhQ,KAAKyZ,SAAS,MAAO5F,YAE7B5D,IAAK,WACJ,OAAOjQ,KAAKyZ,SAAS,MAAO5F,YAE7B3D,IAAK,WACJ,OAAOlQ,KAAKyZ,SAAS,MAAO5F,YAE7B1D,KAAM,WACL,OAAOnQ,KAAKyZ,SAAS,OAAQ5F,YAG9B6F,SAAU,WACT,OAAO1Z,KAAKkZ,OAAOpJ,KAEpB6J,SAAU,WACT,OAAO3Z,KAAKkZ,OAAOlJ,KAEpB4J,SAAU,WACT,OAAO5Z,KAAKkZ,OAAOjJ,KAEpB4J,SAAU,WACT,IAAIX,EAASlZ,KAAKkZ,OAClB,OAAqB,IAAjBA,EAAOV,MACHU,EAAOhJ,IAAIjJ,OAAO,CAACiS,EAAOV,QAE3BU,EAAOhJ,KAEf4J,UAAW,WACV,OAAO9Z,KAAKkZ,OAAO/I,MAEpB4J,UAAW,WACV,IAAIb,EAASlZ,KAAKkZ,OAClB,OAAOA,EAAOpJ,IAAI7I,OAAO,CAACiS,EAAOV,SAElCwB,UAAW,WACV,IAAId,EAASlZ,KAAKkZ,OAClB,OAAOA,EAAOlJ,IAAI/I,OAAO,CAACiS,EAAOV,SAElCA,MAAO,SAAU3J,GAChB,YAAY8H,IAAR9H,EACI7O,KAAKkZ,OAAOV,OAEpBxY,KAAKmZ,UAAU,QAAStK,GACjB7O,OAGRoZ,IAAK,SAAUvK,GACd,OAAO7O,KAAKia,WAAW,MAAO,EAAGpL,IAElCqL,MAAO,SAAUrL,GAChB,OAAO7O,KAAKia,WAAW,MAAO,EAAGpL,IAElCsL,KAAM,SAAUtL,GACf,OAAO7O,KAAKia,WAAW,MAAO,EAAGpL,IAElCkG,IAAK,SAAUlG,GAKd,OAJIA,IACHA,GAAO,IACPA,EAAMA,EAAM,EAAI,IAAMA,EAAMA,GAEtB7O,KAAKia,WAAW,MAAO,EAAGpL,IAElCuL,WAAY,SAAUvL,GACrB,OAAO7O,KAAKia,WAAW,MAAO,EAAGpL,IAElCwK,UAAW,SAAUxK,GACpB,OAAO7O,KAAKia,WAAW,MAAO,EAAGpL,IAElCwL,YAAa,SAAUxL,GACtB,OAAO7O,KAAKia,WAAW,MAAO,EAAGpL,IAElCyK,UAAW,SAAUzK,GACpB,OAAO7O,KAAKia,WAAW,MAAO,EAAGpL,IAElCyL,UAAW,SAAUzL,GACpB,OAAO7O,KAAKia,WAAW,MAAO,EAAGpL,IAElChH,MAAO,SAAUgH,GAChB,OAAO7O,KAAKia,WAAW,MAAO,EAAGpL,IAElC0K,KAAM,SAAU1K,GACf,OAAO7O,KAAKia,WAAW,OAAQ,EAAGpL,IAEnC0L,QAAS,SAAU1L,GAClB,OAAO7O,KAAKia,WAAW,OAAQ,EAAGpL,IAEnC2L,OAAQ,SAAU3L,GACjB,OAAO7O,KAAKia,WAAW,OAAQ,EAAGpL,IAEnC4L,MAAO,SAAU5L,GAChB,OAAO7O,KAAKia,WAAW,OAAQ,EAAGpL,IAGnC6I,UAAW,WACV,OAAOjD,EAAYiD,UAAU1X,KAAKkZ,OAAOpJ,MAE1C6H,UAAW,WACV,OAAOlD,EAAYkD,UAAU3X,KAAKkZ,OAAOpJ,IAAK9P,KAAKkZ,OAAOV,QAE3DZ,WAAY,WACX,OAAOnD,EAAYmD,WAAW5X,KAAKkZ,OAAOpJ,IAAK9P,KAAKkZ,OAAOV,QAE5DX,cAAe,WACd,OAAOpD,EAAYoD,cAAc7X,KAAKkZ,OAAOpJ,IAAK9P,KAAKkZ,OAAOV,QAE/DT,UAAW,WACV,OAAOtD,EAAYsD,UAAU/X,KAAKkZ,OAAOlJ,IAAKhQ,KAAKkZ,OAAOV,QAE3DR,WAAY,WACX,OAAOvD,EAAYuD,WAAWhY,KAAKkZ,OAAOlJ,IAAKhQ,KAAKkZ,OAAOV,QAE5DP,UAAW,WACV,OAAOxD,EAAYwD,UAAUjY,KAAKkZ,OAAOhJ,IAAKlQ,KAAKkZ,OAAOV,QAE3DhI,QAAS,WACR,OAAOiE,EAAYjE,QAAQxQ,KAAKkZ,OAAOpJ,IAAK9P,KAAKkZ,OAAOV,QAGzDkC,UAAW,WACV,IAAI5K,EAAM9P,KAAKkZ,OAAOpJ,IACtB,OAAQA,EAAI,IAAM,GAAOA,EAAI,IAAM,EAAKA,EAAI,IAG7C6K,WAAY,WAIX,IAFA,IAAI7K,EAAM9P,KAAKkZ,OAAOpJ,IAClB8K,EAAM,GACDvX,EAAI,EAAGA,EAAIyM,EAAIhF,OAAQzH,IAAK,CACpC,IAAIwX,EAAO/K,EAAIzM,GAAK,IACpBuX,EAAIvX,GAAMwX,GAAQ,OAAWA,EAAO,MAAQ9Y,KAAKiP,KAAM6J,EAAO,MAAS,MAAQ,KAEhF,MAAO,MAASD,EAAI,GAAK,MAASA,EAAI,GAAK,MAASA,EAAI,IAGzDE,SAAU,SAAU5M,GAEnB,IAAI6M,EAAO/a,KAAK2a,aACZK,EAAO9M,EAAOyM,aAClB,OAAII,EAAOC,GACFD,EAAO,MAASC,EAAO,MAExBA,EAAO,MAASD,EAAO,MAGhCE,MAAO,SAAU/M,GAChB,IAAIgN,EAAgBlb,KAAK8a,SAAS5M,GAClC,OAAIgN,GAAiB,IACb,MAGAA,GAAiB,IAAO,KAAO,IAGxCC,KAAM,WAEL,IAAIrL,EAAM9P,KAAKkZ,OAAOpJ,IAClBsL,GAAgB,IAATtL,EAAI,GAAoB,IAATA,EAAI,GAAoB,IAATA,EAAI,IAAY,IACzD,OAAOsL,EAAM,KAGdC,MAAO,WACN,OAAQrb,KAAKmb,QAGdG,OAAQ,WAEP,IADA,IAAIxL,EAAM,GACDzM,EAAI,EAAGA,EAAI,EAAGA,IACtByM,EAAIzM,GAAK,IAAMrD,KAAKkZ,OAAOpJ,IAAIzM,GAGhC,OADArD,KAAKmZ,UAAU,MAAOrJ,GACf9P,MAGRub,QAAS,SAAUrI,GAClB,IAAIlD,EAAMhQ,KAAKkZ,OAAOlJ,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKkD,EACnBlT,KAAKmZ,UAAU,MAAOnJ,GACfhQ,MAGRwb,OAAQ,SAAUtI,GACjB,IAAIlD,EAAMhQ,KAAKkZ,OAAOlJ,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKkD,EACnBlT,KAAKmZ,UAAU,MAAOnJ,GACfhQ,MAGRyb,SAAU,SAAUvI,GACnB,IAAIlD,EAAMhQ,KAAKkZ,OAAOlJ,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKkD,EACnBlT,KAAKmZ,UAAU,MAAOnJ,GACfhQ,MAGR0b,WAAY,SAAUxI,GACrB,IAAIlD,EAAMhQ,KAAKkZ,OAAOlJ,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKkD,EACnBlT,KAAKmZ,UAAU,MAAOnJ,GACfhQ,MAGR2b,OAAQ,SAAUzI,GACjB,IAAIhD,EAAMlQ,KAAKkZ,OAAOhJ,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKgD,EACnBlT,KAAKmZ,UAAU,MAAOjJ,GACflQ,MAGR4b,QAAS,SAAU1I,GAClB,IAAIhD,EAAMlQ,KAAKkZ,OAAOhJ,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKgD,EACnBlT,KAAKmZ,UAAU,MAAOjJ,GACflQ,MAGR6b,UAAW,WACV,IAAI/L,EAAM9P,KAAKkZ,OAAOpJ,IAElBjB,EAAe,GAATiB,EAAI,GAAoB,IAATA,EAAI,GAAqB,IAATA,EAAI,GAE7C,OADA9P,KAAKmZ,UAAU,MAAO,CAACtK,EAAKA,EAAKA,IAC1B7O,MAGR8b,QAAS,SAAU5I,GAClB,IAAIsF,EAAQxY,KAAKkZ,OAAOV,MAExB,OADAxY,KAAKmZ,UAAU,QAASX,EAASA,EAAQtF,GAClClT,MAGR+b,QAAS,SAAU7I,GAClB,IAAIsF,EAAQxY,KAAKkZ,OAAOV,MAExB,OADAxY,KAAKmZ,UAAU,QAASX,EAASA,EAAQtF,GAClClT,MAGRgc,OAAQ,SAAUC,GACjB,IAAIjM,EAAMhQ,KAAKkZ,OAAOlJ,IAClB+E,GAAO/E,EAAI,GAAKiM,GAAW,IAG/B,OAFAjM,EAAI,GAAK+E,EAAM,EAAI,IAAMA,EAAMA,EAC/B/U,KAAKmZ,UAAU,MAAOnJ,GACfhQ,MAORkc,IAAK,SAAUC,EAAYC,GAC1B,IAAInO,EAASjO,KACTkO,EAASiO,EACThX,OAAewR,IAAXyF,EAAuB,GAAMA,EAEjCxK,EAAI,EAAIzM,EAAI,EACZoD,EAAI0F,EAAOuK,QAAUtK,EAAOsK,QAE5B6D,IAAQzK,EAAIrJ,KAAO,EAAKqJ,GAAKA,EAAIrJ,IAAM,EAAIqJ,EAAIrJ,IAAM,GAAK,EAC1D+T,EAAK,EAAID,EAEb,OAAOrc,KACL8P,IACAuM,EAAKpO,EAAOmL,MAAQkD,EAAKpO,EAAOkL,MAChCiD,EAAKpO,EAAOiM,QAAUoC,EAAKpO,EAAOgM,QAClCmC,EAAKpO,EAAOkM,OAASmC,EAAKpO,EAAOiM,QAEjC3B,MAAMvK,EAAOuK,QAAUrT,EAAI+I,EAAOsK,SAAW,EAAIrT,KAGpDoX,OAAQ,WACP,OAAOvc,KAAK8P,OAGb0M,MAAO,WAKN,IAGI3U,EAAOnI,EAHPoX,EAAS,IAAIkC,EACbyD,EAASzc,KAAKkZ,OACdwD,EAAS5F,EAAOoC,OAGpB,IAAK,IAAIyD,KAAQF,EACZA,EAAOvX,eAAeyX,KACzB9U,EAAQ4U,EAAOE,GACfjd,EAAO,GAAK2U,SAASjQ,KAAKyD,GACb,mBAATnI,EACHgd,EAAOC,GAAQ9U,EAAM+O,MAAM,GACR,oBAATlX,EACVgd,EAAOC,GAAQ9U,EAEf+U,QAAQC,MAAM,0BAA2BhV,IAK5C,OAAOiP,IAITkC,EAAMtY,UAAUoc,OAAS,CACxBhN,IAAK,CAAC,MAAO,QAAS,QACtBE,IAAK,CAAC,MAAO,aAAc,aAC3BC,IAAK,CAAC,MAAO,aAAc,SAC3BC,IAAK,CAAC,MAAO,YAAa,aAC1BC,KAAM,CAAC,OAAQ,UAAW,SAAU,UAGrC6I,EAAMtY,UAAUqc,MAAQ,CACvBjN,IAAK,CAAC,IAAK,IAAK,KAChBE,IAAK,CAAC,IAAK,IAAK,KAChBC,IAAK,CAAC,IAAK,IAAK,KAChBC,IAAK,CAAC,IAAK,IAAK,KAChBC,KAAM,CAAC,IAAK,IAAK,IAAK,MAGvB6I,EAAMtY,UAAUsc,UAAY,SAAUC,GAIrC,IAHA,IAAI/D,EAASlZ,KAAKkZ,OACdP,EAAO,GAEFtV,EAAI,EAAGA,EAAI4Z,EAAMnS,OAAQzH,IACjCsV,EAAKsE,EAAMhO,OAAO5L,IAAM6V,EAAO+D,GAAO5Z,GAQvC,OALqB,IAAjB6V,EAAOV,QACVG,EAAKpQ,EAAI2Q,EAAOV,OAIVG,GAGRK,EAAMtY,UAAUyY,UAAY,SAAU8D,EAAOtE,GAC5C,IAIItV,EAkCA6Z,EAtCAhE,EAASlZ,KAAKkZ,OACd4D,EAAS9c,KAAK8c,OACdC,EAAQ/c,KAAK+c,MACbvE,EAAQ,EAKZ,GAFAxY,KAAKiZ,OAAQ,EAEC,UAAVgE,EACHzE,EAAQG,OACF,GAAIA,EAAK7N,OAEfoO,EAAO+D,GAAStE,EAAK/B,MAAM,EAAGqG,EAAMnS,QACpC0N,EAAQG,EAAKsE,EAAMnS,aACb,QAA8B6L,IAA1BgC,EAAKsE,EAAMhO,OAAO,IAAmB,CAE/C,IAAK5L,EAAI,EAAGA,EAAI4Z,EAAMnS,OAAQzH,IAC7B6V,EAAO+D,GAAO5Z,GAAKsV,EAAKsE,EAAMhO,OAAO5L,IAGtCmV,EAAQG,EAAKpQ,OACP,QAA+BoO,IAA3BgC,EAAKmE,EAAOG,GAAO,IAAmB,CAEhD,IAAIE,EAAQL,EAAOG,GAEnB,IAAK5Z,EAAI,EAAGA,EAAI4Z,EAAMnS,OAAQzH,IAC7B6V,EAAO+D,GAAO5Z,GAAKsV,EAAKwE,EAAM9Z,IAG/BmV,EAAQG,EAAKH,MAKd,GAFAU,EAAOV,MAAQzW,KAAKqP,IAAI,EAAGrP,KAAKC,IAAI,OAAc2U,IAAV6B,EAAsBU,EAAOV,MAAQA,IAE/D,UAAVyE,EACH,OAAO,EAMR,IAAK5Z,EAAI,EAAGA,EAAI4Z,EAAMnS,OAAQzH,IAC7B6Z,EAASnb,KAAKqP,IAAI,EAAGrP,KAAKC,IAAI+a,EAAME,GAAO5Z,GAAI6V,EAAO+D,GAAO5Z,KAC7D6V,EAAO+D,GAAO5Z,GAAKtB,KAAK+R,MAAMoJ,GAI/B,IAAK,IAAIE,KAASN,EACbM,IAAUH,IACb/D,EAAOkE,GAASlG,EAAa+F,GAAOG,GAAOlE,EAAO+D,KAIpD,OAAO,GAGRjE,EAAMtY,UAAU+Y,SAAW,SAAUwD,EAAOrJ,GAC3C,IAAI+E,EAAO/E,EAAK,GAEhB,YAAa+C,IAATgC,EAEI3Y,KAAKgd,UAAUC,IAIH,kBAATtE,IACVA,EAAO9L,MAAMnM,UAAUkW,MAAMxS,KAAKwP,IAGnC5T,KAAKmZ,UAAU8D,EAAOtE,GACf3Y,OAGRgZ,EAAMtY,UAAUuZ,WAAa,SAAUgD,EAAO/Z,EAAO2L,GACpD,IAAIwO,EAAUrd,KAAKkZ,OAAO+D,GAC1B,YAAYtG,IAAR9H,EAEIwO,EAAQna,IACL2L,IAAQwO,EAAQna,KAM3Bma,EAAQna,GAAS2L,EACjB7O,KAAKmZ,UAAU8D,EAAOI,IALdrd,OAUa,qBAAXsd,SACVA,OAAOtE,MAAQA,GAGhB,IAAIuE,EAAevE,EAEnB,SAASwE,EAAWnS,GACnB,OAAmE,IAA5D,CAAC,YAAa,YAAa,eAAerI,QAAQqI,GAM1D,IAAIoS,EAAU,CAIbC,KAAM,aAONC,IAAM,WACL,IAAInR,EAAK,EACT,OAAO,WACN,OAAOA,KAHJ,GAaLoR,cAAe,SAAS/V,GACvB,OAAiB,OAAVA,GAAmC,qBAAVA,GASjCgW,QAAS,SAAShW,GACjB,GAAIgF,MAAMgR,SAAWhR,MAAMgR,QAAQhW,GAClC,OAAO,EAER,IAAInI,EAAOC,OAAOe,UAAU2T,SAASjQ,KAAKyD,GAC1C,MAA0B,YAAtBnI,EAAKoe,OAAO,EAAG,IAAwC,WAApBpe,EAAKoe,QAAQ,IAYrDC,SAAU,SAASlW,GAClB,OAAiB,OAAVA,GAA4D,oBAA1ClI,OAAOe,UAAU2T,SAASjQ,KAAKyD,IAQzDmW,SAAU,SAASnW,GAClB,OAAyB,kBAAVA,GAAsBA,aAAiB8E,SAAWqR,SAASnW,IAS3EoW,eAAgB,SAASpW,EAAOqW,GAC/B,MAAwB,qBAAVrW,EAAwBqW,EAAerW,GAUtDsW,sBAAuB,SAAStW,EAAO3E,EAAOgb,GAC7C,OAAOT,EAAQQ,eAAeR,EAAQI,QAAQhW,GAASA,EAAM3E,GAAS2E,EAAOqW,IAW9EE,SAAU,SAAS5O,EAAIoE,EAAMyK,GAC5B,GAAI7O,GAAyB,oBAAZA,EAAGpL,KACnB,OAAOoL,EAAG8O,MAAMD,EAASzK,IAa3B2K,KAAM,SAASC,EAAUhP,EAAI6O,EAASI,GACrC,IAAIpb,EAAGiS,EAAKrK,EACZ,GAAIwS,EAAQI,QAAQW,GAEnB,GADAlJ,EAAMkJ,EAAS1T,OACX2T,EACH,IAAKpb,EAAIiS,EAAM,EAAGjS,GAAK,EAAGA,IACzBmM,EAAGpL,KAAKia,EAASG,EAASnb,GAAIA,QAG/B,IAAKA,EAAI,EAAGA,EAAIiS,EAAKjS,IACpBmM,EAAGpL,KAAKia,EAASG,EAASnb,GAAIA,QAG1B,GAAIoa,EAAQM,SAASS,GAG3B,IAFAvT,EAAOtL,OAAOsL,KAAKuT,GACnBlJ,EAAMrK,EAAKH,OACNzH,EAAI,EAAGA,EAAIiS,EAAKjS,IACpBmM,EAAGpL,KAAKia,EAASG,EAASvT,EAAK5H,IAAK4H,EAAK5H,KAY5Cqb,YAAa,SAASC,EAAIC,GACzB,IAAIvb,EAAGwb,EAAMC,EAAIC,EAEjB,IAAKJ,IAAOC,GAAMD,EAAG7T,SAAW8T,EAAG9T,OAClC,OAAO,EAGR,IAAKzH,EAAI,EAAGwb,EAAOF,EAAG7T,OAAQzH,EAAIwb,IAAQxb,EAIzC,GAHAyb,EAAKH,EAAGtb,GACR0b,EAAKH,EAAGvb,GAEJyb,aAAcjS,OAASkS,aAAclS,OACxC,IAAK4Q,EAAQiB,YAAYI,EAAIC,GAC5B,OAAO,OAEF,GAAID,IAAOC,EAEjB,OAAO,EAIT,OAAO,GAQRvC,MAAO,SAASC,GACf,GAAIgB,EAAQI,QAAQpB,GACnB,OAAOA,EAAOnS,IAAImT,EAAQjB,OAG3B,GAAIiB,EAAQM,SAAStB,GAAS,CAM7B,IALA,IAAIC,EAAS/c,OAAOqf,OAAOvC,GACvBxR,EAAOtL,OAAOsL,KAAKwR,GACnBwC,EAAOhU,EAAKH,OACZ+G,EAAI,EAEDA,EAAIoN,IAAQpN,EAClB6K,EAAOzR,EAAK4G,IAAM4L,EAAQjB,MAAMC,EAAOxR,EAAK4G,KAG7C,OAAO6K,EAGR,OAAOD,GAQRyC,QAAS,SAAS7T,EAAKqR,EAAQD,EAAQ1W,GACtC,GAAKyX,EAAWnS,GAAhB,CAMA,IAAI8T,EAAOzC,EAAOrR,GACd+T,EAAO3C,EAAOpR,GAEdoS,EAAQM,SAASoB,IAAS1B,EAAQM,SAASqB,GAC9C3B,EAAQ4B,MAAMF,EAAMC,EAAMrZ,GAE1B2W,EAAOrR,GAAOoS,EAAQjB,MAAM4C,KAQ9BE,UAAW,SAASjU,EAAKqR,EAAQD,GAChC,GAAKe,EAAWnS,GAAhB,CAMA,IAAI8T,EAAOzC,EAAOrR,GACd+T,EAAO3C,EAAOpR,GAEdoS,EAAQM,SAASoB,IAAS1B,EAAQM,SAASqB,GAC9C3B,EAAQ8B,QAAQJ,EAAMC,GACX1C,EAAOxX,eAAemG,KACjCqR,EAAOrR,GAAOoS,EAAQjB,MAAM4C,MAa9BC,MAAO,SAAS3C,EAAQD,EAAQ1W,GAC/B,IAEIsZ,EAAOhc,EAAG4H,EAAMgU,EAAMpN,EAFtB2N,EAAU/B,EAAQI,QAAQpB,GAAUA,EAAS,CAACA,GAC9CoC,EAAOW,EAAQ1U,OAGnB,IAAK2S,EAAQM,SAASrB,GACrB,OAAOA,EAMR,IAHA3W,EAAUA,GAAW,GACrBsZ,EAAQtZ,EAAQ0Z,QAAUhC,EAAQyB,QAE7B7b,EAAI,EAAGA,EAAIwb,IAAQxb,EAEvB,GADAoZ,EAAS+C,EAAQnc,GACZoa,EAAQM,SAAStB,GAKtB,IADAxR,EAAOtL,OAAOsL,KAAKwR,GACd5K,EAAI,EAAGoN,EAAOhU,EAAKH,OAAQ+G,EAAIoN,IAAQpN,EAC3CwN,EAAMpU,EAAK4G,GAAI6K,EAAQD,EAAQ1W,GAIjC,OAAO2W,GAUR6C,QAAS,SAAS7C,EAAQD,GACzB,OAAOgB,EAAQ4B,MAAM3C,EAAQD,EAAQ,CAACgD,OAAQhC,EAAQ6B,aAUvDI,OAAQ/f,OAAOggB,QAAU,SAASjD,GACjC,OAAOe,EAAQ4B,MAAM3C,EAAQ,GAAG9F,MAAMxS,KAAKyP,UAAW,GAAI,CACzD4L,OAAQ,SAASpU,EAAKuU,EAAKC,GAC1BD,EAAIvU,GAAOwU,EAAIxU,OAQlByU,SAAU,SAASC,GAClB,IAAIC,EAAKhgB,KACLigB,EAAgBF,GAAcA,EAAW7a,eAAe,eAAkB6a,EAAWG,YAAc,WACtG,OAAOF,EAAG1B,MAAMte,KAAM6T,YAGnBsM,EAAY,WACfngB,KAAKkgB,YAAcD,GAYpB,OATAE,EAAUzf,UAAYsf,EAAGtf,UACzBuf,EAAavf,UAAY,IAAIyf,EAC7BF,EAAaP,OAASjC,EAAQqC,SAE1BC,GACHtC,EAAQiC,OAAOO,EAAavf,UAAWqf,GAGxCE,EAAaG,UAAYJ,EAAGtf,UACrBuf,GAGRI,YAAa,SAASC,EAAOzY,EAAO0Y,EAAU7K,QAC/BiB,IAAV9O,GACH+U,QAAQ4D,KAAKF,EAAQ,MAAQC,EAC5B,gCAAkC7K,EAAU,eAK5C+K,EAAehD,EAWnBA,EAAQiD,aAAejD,EAAQW,SAU/BX,EAAQza,QAAU,SAAS2d,EAAOC,EAAMC,GACvC,OAAOhU,MAAMnM,UAAUsC,QAAQoB,KAAKuc,EAAOC,EAAMC,IAUlDpD,EAAQqD,kBAAoBrD,EAAQQ,eASpCR,EAAQsD,yBAA2BtD,EAAQU,sBAO3C,IAAI6C,EAAU,CACbC,OAAQ,SAASpO,GAChB,OAAOA,GAGRqO,WAAY,SAASrO,GACpB,OAAOA,EAAIA,GAGZsO,YAAa,SAAStO,GACrB,OAAQA,GAAKA,EAAI,IAGlBuO,cAAe,SAASvO,GACvB,OAAKA,GAAK,IAAO,EACT,GAAMA,EAAIA,GAEV,MAAUA,GAAMA,EAAI,GAAK,IAGlCwO,YAAa,SAASxO,GACrB,OAAOA,EAAIA,EAAIA,GAGhByO,aAAc,SAASzO,GACtB,OAAQA,GAAQ,GAAKA,EAAIA,EAAI,GAG9B0O,eAAgB,SAAS1O,GACxB,OAAKA,GAAK,IAAO,EACT,GAAMA,EAAIA,EAAIA,EAEf,KAAQA,GAAK,GAAKA,EAAIA,EAAI,IAGlC2O,YAAa,SAAS3O,GACrB,OAAOA,EAAIA,EAAIA,EAAIA,GAGpB4O,aAAc,SAAS5O,GACtB,SAAUA,GAAQ,GAAKA,EAAIA,EAAIA,EAAI,IAGpC6O,eAAgB,SAAS7O,GACxB,OAAKA,GAAK,IAAO,EACT,GAAMA,EAAIA,EAAIA,EAAIA,GAElB,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAI,IAGvC8O,YAAa,SAAS9O,GACrB,OAAOA,EAAIA,EAAIA,EAAIA,EAAIA,GAGxB+O,aAAc,SAAS/O,GACtB,OAAQA,GAAQ,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,GAGtCgP,eAAgB,SAAShP,GACxB,OAAKA,GAAK,IAAO,EACT,GAAMA,EAAIA,EAAIA,EAAIA,EAAIA,EAEvB,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,IAG1CiP,WAAY,SAASjP,GACpB,OAAsC,EAA9B9Q,KAAK2R,IAAIb,GAAK9Q,KAAKyR,GAAK,KAGjCuO,YAAa,SAASlP,GACrB,OAAO9Q,KAAK4R,IAAId,GAAK9Q,KAAKyR,GAAK,KAGhCwO,cAAe,SAASnP,GACvB,OAAQ,IAAO9Q,KAAK2R,IAAI3R,KAAKyR,GAAKX,GAAK,IAGxCoP,WAAY,SAASpP,GACpB,OAAc,IAANA,EAAW,EAAI9Q,KAAKiP,IAAI,EAAG,IAAM6B,EAAI,KAG9CqP,YAAa,SAASrP,GACrB,OAAc,IAANA,EAAW,EAA4B,EAAvB9Q,KAAKiP,IAAI,GAAI,GAAK6B,IAG3CsP,cAAe,SAAStP,GACvB,OAAU,IAANA,EACI,EAEE,IAANA,EACI,GAEHA,GAAK,IAAO,EACT,GAAM9Q,KAAKiP,IAAI,EAAG,IAAM6B,EAAI,IAE7B,IAAiC,EAAzB9Q,KAAKiP,IAAI,GAAI,KAAO6B,KAGpCuP,WAAY,SAASvP,GACpB,OAAIA,GAAK,EACDA,IAEC9Q,KAAK0R,KAAK,EAAIZ,EAAIA,GAAK,IAGjCwP,YAAa,SAASxP,GACrB,OAAO9Q,KAAK0R,KAAK,GAAKZ,GAAQ,GAAKA,IAGpCyP,cAAe,SAASzP,GACvB,OAAKA,GAAK,IAAO,GACR,IAAO9Q,KAAK0R,KAAK,EAAIZ,EAAIA,GAAK,GAEhC,IAAO9Q,KAAK0R,KAAK,GAAKZ,GAAK,GAAKA,GAAK,IAG7C0P,cAAe,SAAS1P,GACvB,IAAIzN,EAAI,QACJD,EAAI,EACJoD,EAAI,EACR,OAAU,IAANsK,EACI,EAEE,IAANA,EACI,GAEH1N,IACJA,EAAI,IAEDoD,EAAI,GACPA,EAAI,EACJnD,EAAID,EAAI,GAERC,EAAID,GAAK,EAAIpD,KAAKyR,IAAMzR,KAAKygB,KAAK,EAAIja,IAE9BA,EAAIxG,KAAKiP,IAAI,EAAG,IAAM6B,GAAK,IAAM9Q,KAAK4R,KAAKd,EAAIzN,IAAM,EAAIrD,KAAKyR,IAAMrO,KAG9Esd,eAAgB,SAAS5P,GACxB,IAAIzN,EAAI,QACJD,EAAI,EACJoD,EAAI,EACR,OAAU,IAANsK,EACI,EAEE,IAANA,EACI,GAEH1N,IACJA,EAAI,IAEDoD,EAAI,GACPA,EAAI,EACJnD,EAAID,EAAI,GAERC,EAAID,GAAK,EAAIpD,KAAKyR,IAAMzR,KAAKygB,KAAK,EAAIja,GAEhCA,EAAIxG,KAAKiP,IAAI,GAAI,GAAK6B,GAAK9Q,KAAK4R,KAAKd,EAAIzN,IAAM,EAAIrD,KAAKyR,IAAMrO,GAAK,IAG3Eud,iBAAkB,SAAS7P,GAC1B,IAAIzN,EAAI,QACJD,EAAI,EACJoD,EAAI,EACR,OAAU,IAANsK,EACI,EAEW,KAAdA,GAAK,IACF,GAEH1N,IACJA,EAAI,KAEDoD,EAAI,GACPA,EAAI,EACJnD,EAAID,EAAI,GAERC,EAAID,GAAK,EAAIpD,KAAKyR,IAAMzR,KAAKygB,KAAK,EAAIja,GAEnCsK,EAAI,EACQtK,EAAIxG,KAAKiP,IAAI,EAAG,IAAM6B,GAAK,IAAM9Q,KAAK4R,KAAKd,EAAIzN,IAAM,EAAIrD,KAAKyR,IAAMrO,IAA3E,GAEFoD,EAAIxG,KAAKiP,IAAI,GAAI,IAAM6B,GAAK,IAAM9Q,KAAK4R,KAAKd,EAAIzN,IAAM,EAAIrD,KAAKyR,IAAMrO,GAAK,GAAM,IAExFwd,WAAY,SAAS9P,GACpB,IAAIzN,EAAI,QACR,OAAOyN,EAAIA,IAAMzN,EAAI,GAAKyN,EAAIzN,IAG/Bwd,YAAa,SAAS/P,GACrB,IAAIzN,EAAI,QACR,OAAQyN,GAAQ,GAAKA,IAAMzN,EAAI,GAAKyN,EAAIzN,GAAK,GAG9Cyd,cAAe,SAAShQ,GACvB,IAAIzN,EAAI,QACR,OAAKyN,GAAK,IAAO,EACFA,EAAIA,IAAuB,GAAhBzN,GAAK,QAAgByN,EAAIzN,GAA3C,GAED,KAAQyN,GAAK,GAAKA,IAAuB,GAAhBzN,GAAK,QAAgByN,EAAIzN,GAAK,IAG/D0d,aAAc,SAASjQ,GACtB,OAAO,EAAImO,EAAQ+B,cAAc,EAAIlQ,IAGtCkQ,cAAe,SAASlQ,GACvB,OAAIA,EAAK,EAAI,KACL,OAASA,EAAIA,EAEjBA,EAAK,EAAI,KACL,QAAUA,GAAM,IAAM,MAASA,EAAI,IAEvCA,EAAK,IAAM,KACP,QAAUA,GAAM,KAAO,MAASA,EAAI,MAErC,QAAUA,GAAM,MAAQ,MAASA,EAAI,SAG7CmQ,gBAAiB,SAASnQ,GACzB,OAAIA,EAAI,GAC8B,GAA9BmO,EAAQ8B,aAAiB,EAAJjQ,GAEa,GAAnCmO,EAAQ+B,cAAkB,EAAJlQ,EAAQ,GAAW,KAI9CoQ,EAAiB,CACpBjC,QAASA,GAYVP,EAAayC,cAAgBlC,EAE7B,IAAIxN,EAAKzR,KAAKyR,GACV2P,EAAc3P,EAAK,IACnB4P,EAAiB,EAAL5P,EACZ6P,EAAU7P,EAAK,EACf8P,EAAa9P,EAAK,EAClB+P,EAAqB,EAAL/P,EAAS,EAKzBgQ,EAAY,CAKfC,MAAO,SAASvZ,GACfA,EAAMpK,IAAI4jB,UAAU,EAAG,EAAGxZ,EAAMrI,MAAOqI,EAAMtI,SAc9C+hB,YAAa,SAAS7jB,EAAK4B,EAAGC,EAAGE,EAAOD,EAAQ2B,GAC/C,GAAIA,EAAQ,CACX,IAAI0N,EAAIlP,KAAKC,IAAIuB,EAAQ3B,EAAS,EAAGC,EAAQ,GACzCjB,EAAOc,EAAIuP,EACXnQ,EAAMa,EAAIsP,EACVpQ,EAAQa,EAAIG,EAAQoP,EACpBlQ,EAASY,EAAIC,EAASqP,EAE1BnR,EAAIsD,OAAO1B,EAAGZ,GACVF,EAAOC,GAASC,EAAMC,GACzBjB,EAAI8jB,IAAIhjB,EAAME,EAAKmQ,GAAIuC,GAAK6P,GAC5BvjB,EAAI8jB,IAAI/iB,EAAOC,EAAKmQ,GAAIoS,EAAS,GACjCvjB,EAAI8jB,IAAI/iB,EAAOE,EAAQkQ,EAAG,EAAGoS,GAC7BvjB,EAAI8jB,IAAIhjB,EAAMG,EAAQkQ,EAAGoS,EAAS7P,IACxB5S,EAAOC,GACjBf,EAAIsD,OAAOxC,EAAMe,GACjB7B,EAAI8jB,IAAI/iB,EAAOC,EAAKmQ,GAAIoS,EAASA,GACjCvjB,EAAI8jB,IAAIhjB,EAAME,EAAKmQ,EAAGoS,EAAS7P,EAAK6P,IAC1BviB,EAAMC,GAChBjB,EAAI8jB,IAAIhjB,EAAME,EAAKmQ,GAAIuC,EAAI,GAC3B1T,EAAI8jB,IAAIhjB,EAAMG,EAAQkQ,EAAG,EAAGuC,IAE5B1T,EAAI8jB,IAAIhjB,EAAME,EAAKmQ,GAAIuC,EAAIA,GAE5B1T,EAAI+jB,YACJ/jB,EAAIsD,OAAO1B,EAAGC,QAEd7B,EAAIgkB,KAAKpiB,EAAGC,EAAGE,EAAOD,IAIxBmiB,UAAW,SAASjkB,EAAKuM,EAAO9I,EAAQ7B,EAAGC,EAAGqiB,GAC7C,IAAItkB,EAAMukB,EAASC,EAASC,EAAM5iB,EAC9B6iB,GAAOJ,GAAY,GAAKb,EAE5B,GAAI9W,GAA0B,kBAAVA,IACnB3M,EAAO2M,EAAMgI,WACA,8BAAT3U,GAAiD,+BAATA,GAM3C,OALAI,EAAIukB,OACJvkB,EAAIwkB,UAAU5iB,EAAGC,GACjB7B,EAAIkc,OAAOoI,GACXtkB,EAAIykB,UAAUlY,GAAQA,EAAMxK,MAAQ,GAAIwK,EAAMzK,OAAS,EAAGyK,EAAMxK,MAAOwK,EAAMzK,aAC7E9B,EAAI0kB,UAKN,KAAI/L,MAAMlV,IAAWA,GAAU,GAA/B,CAMA,OAFAzD,EAAIyC,YAEI8J,GAER,QACCvM,EAAI8jB,IAAIliB,EAAGC,EAAG4B,EAAQ,EAAG6f,GACzBtjB,EAAI+jB,YACJ,MACD,IAAK,WACJ/jB,EAAIsD,OAAO1B,EAAIK,KAAK4R,IAAIyQ,GAAO7gB,EAAQ5B,EAAII,KAAK2R,IAAI0Q,GAAO7gB,GAC3D6gB,GAAOb,EACPzjB,EAAI0D,OAAO9B,EAAIK,KAAK4R,IAAIyQ,GAAO7gB,EAAQ5B,EAAII,KAAK2R,IAAI0Q,GAAO7gB,GAC3D6gB,GAAOb,EACPzjB,EAAI0D,OAAO9B,EAAIK,KAAK4R,IAAIyQ,GAAO7gB,EAAQ5B,EAAII,KAAK2R,IAAI0Q,GAAO7gB,GAC3DzD,EAAI+jB,YACJ,MACD,IAAK,cAQJtiB,EAAwB,KAATgC,EACf4gB,EAAO5gB,EAAShC,EAChB0iB,EAAUliB,KAAK2R,IAAI0Q,EAAMd,GAAca,EACvCD,EAAUniB,KAAK4R,IAAIyQ,EAAMd,GAAca,EACvCrkB,EAAI8jB,IAAIliB,EAAIuiB,EAAStiB,EAAIuiB,EAAS3iB,EAAc6iB,EAAM5Q,EAAI4Q,EAAMf,GAChEvjB,EAAI8jB,IAAIliB,EAAIwiB,EAASviB,EAAIsiB,EAAS1iB,EAAc6iB,EAAMf,EAASe,GAC/DtkB,EAAI8jB,IAAIliB,EAAIuiB,EAAStiB,EAAIuiB,EAAS3iB,EAAc6iB,EAAKA,EAAMf,GAC3DvjB,EAAI8jB,IAAIliB,EAAIwiB,EAASviB,EAAIsiB,EAAS1iB,EAAc6iB,EAAMf,EAASe,EAAM5Q,GACrE1T,EAAI+jB,YACJ,MACD,IAAK,OACJ,IAAKG,EAAU,CACdG,EAAOpiB,KAAK0iB,QAAUlhB,EACtBzD,EAAIgkB,KAAKpiB,EAAIyiB,EAAMxiB,EAAIwiB,EAAM,EAAIA,EAAM,EAAIA,GAC3C,MAEDC,GAAOd,EAER,IAAK,UACJW,EAAUliB,KAAK2R,IAAI0Q,GAAO7gB,EAC1B2gB,EAAUniB,KAAK4R,IAAIyQ,GAAO7gB,EAC1BzD,EAAIsD,OAAO1B,EAAIuiB,EAAStiB,EAAIuiB,GAC5BpkB,EAAI0D,OAAO9B,EAAIwiB,EAASviB,EAAIsiB,GAC5BnkB,EAAI0D,OAAO9B,EAAIuiB,EAAStiB,EAAIuiB,GAC5BpkB,EAAI0D,OAAO9B,EAAIwiB,EAASviB,EAAIsiB,GAC5BnkB,EAAI+jB,YACJ,MACD,IAAK,WACJO,GAAOd,EAER,IAAK,QACJW,EAAUliB,KAAK2R,IAAI0Q,GAAO7gB,EAC1B2gB,EAAUniB,KAAK4R,IAAIyQ,GAAO7gB,EAC1BzD,EAAIsD,OAAO1B,EAAIuiB,EAAStiB,EAAIuiB,GAC5BpkB,EAAI0D,OAAO9B,EAAIuiB,EAAStiB,EAAIuiB,GAC5BpkB,EAAIsD,OAAO1B,EAAIwiB,EAASviB,EAAIsiB,GAC5BnkB,EAAI0D,OAAO9B,EAAIwiB,EAASviB,EAAIsiB,GAC5B,MACD,IAAK,OACJA,EAAUliB,KAAK2R,IAAI0Q,GAAO7gB,EAC1B2gB,EAAUniB,KAAK4R,IAAIyQ,GAAO7gB,EAC1BzD,EAAIsD,OAAO1B,EAAIuiB,EAAStiB,EAAIuiB,GAC5BpkB,EAAI0D,OAAO9B,EAAIuiB,EAAStiB,EAAIuiB,GAC5BpkB,EAAIsD,OAAO1B,EAAIwiB,EAASviB,EAAIsiB,GAC5BnkB,EAAI0D,OAAO9B,EAAIwiB,EAASviB,EAAIsiB,GAC5BG,GAAOd,EACPW,EAAUliB,KAAK2R,IAAI0Q,GAAO7gB,EAC1B2gB,EAAUniB,KAAK4R,IAAIyQ,GAAO7gB,EAC1BzD,EAAIsD,OAAO1B,EAAIuiB,EAAStiB,EAAIuiB,GAC5BpkB,EAAI0D,OAAO9B,EAAIuiB,EAAStiB,EAAIuiB,GAC5BpkB,EAAIsD,OAAO1B,EAAIwiB,EAASviB,EAAIsiB,GAC5BnkB,EAAI0D,OAAO9B,EAAIwiB,EAASviB,EAAIsiB,GAC5B,MACD,IAAK,OACJA,EAAUliB,KAAK2R,IAAI0Q,GAAO7gB,EAC1B2gB,EAAUniB,KAAK4R,IAAIyQ,GAAO7gB,EAC1BzD,EAAIsD,OAAO1B,EAAIuiB,EAAStiB,EAAIuiB,GAC5BpkB,EAAI0D,OAAO9B,EAAIuiB,EAAStiB,EAAIuiB,GAC5B,MACD,IAAK,OACJpkB,EAAIsD,OAAO1B,EAAGC,GACd7B,EAAI0D,OAAO9B,EAAIK,KAAK2R,IAAI0Q,GAAO7gB,EAAQ5B,EAAII,KAAK4R,IAAIyQ,GAAO7gB,GAC3D,MAGDzD,EAAI4D,OACJ5D,EAAI6D,WAUL+gB,eAAgB,SAASC,EAAOC,GAC/B,IAAIC,EAAU,KAEd,OAAOF,EAAMjjB,EAAIkjB,EAAKhkB,KAAOikB,GAAWF,EAAMjjB,EAAIkjB,EAAK/jB,MAAQgkB,GAC9DF,EAAMhjB,EAAIijB,EAAK9jB,IAAM+jB,GAAWF,EAAMhjB,EAAIijB,EAAK7jB,OAAS8jB,GAG1DC,SAAU,SAAShlB,EAAK8kB,GACvB9kB,EAAIukB,OACJvkB,EAAIyC,YACJzC,EAAIgkB,KAAKc,EAAKhkB,KAAMgkB,EAAK9jB,IAAK8jB,EAAK/jB,MAAQ+jB,EAAKhkB,KAAMgkB,EAAK7jB,OAAS6jB,EAAK9jB,KACzEhB,EAAIilB,QAGLC,WAAY,SAASllB,GACpBA,EAAI0kB,WAGLhhB,OAAQ,SAAS1D,EAAKygB,EAAU7D,EAAQuI,GACvC,IAAIC,EAAUxI,EAAOyI,YACrB,GAAID,EAAJ,CACC,GAAgB,WAAZA,EAAsB,CACzB,IAAIE,GAAY7E,EAAS7e,EAAIgb,EAAOhb,GAAK,EACzC5B,EAAI0D,OAAO4hB,EAAUH,EAAOvI,EAAO/a,EAAI4e,EAAS5e,GAChD7B,EAAI0D,OAAO4hB,EAAUH,EAAO1E,EAAS5e,EAAI+a,EAAO/a,OACzB,UAAZujB,IAAwBD,GAAsB,UAAZC,GAAuBD,EACpEnlB,EAAI0D,OAAO+c,EAAS7e,EAAGgb,EAAO/a,GAE9B7B,EAAI0D,OAAOkZ,EAAOhb,EAAG6e,EAAS5e,GAE/B7B,EAAI0D,OAAOkZ,EAAOhb,EAAGgb,EAAO/a,QAIxB+a,EAAO2I,QAKZvlB,EAAIwlB,cACHL,EAAO1E,EAASgF,sBAAwBhF,EAASiF,kBACjDP,EAAO1E,EAASkF,sBAAwBlF,EAASmF,kBACjDT,EAAOvI,EAAO8I,kBAAoB9I,EAAO6I,sBACzCN,EAAOvI,EAAOgJ,kBAAoBhJ,EAAO+I,sBACzC/I,EAAOhb,EACPgb,EAAO/a,GAVP7B,EAAI0D,OAAOkZ,EAAOhb,EAAGgb,EAAO/a,KAc3BgkB,EAAiBnC,EAWrB/C,EAAagD,MAAQD,EAAUC,MAS/BhD,EAAamF,qBAAuB,SAAS9lB,GAC5CA,EAAIyC,YACJihB,EAAUG,YAAYrF,MAAMkF,EAAW3P,YAGxC,IAAIgS,EAAW,CAIdC,KAAM,SAASxF,EAAOpH,GACrB,OAAOuH,EAAapB,MAAMrf,KAAKsgB,KAAWtgB,KAAKsgB,GAAS,IAAKpH,KAM/D2M,EAASC,KAAK,SAAU,CACvBC,aAAc,kBACdC,iBAAkB,OAClBC,kBAAmB,qDACnBC,gBAAiB,GACjBC,iBAAkB,SAClBC,kBAAmB,IACnBC,WAAW,IAGZ,IAAIC,EAAgBT,EAEhB5H,EAAiBwC,EAAaxC,eAQlC,SAASsI,GAAaC,GACrB,OAAKA,GAAQ/F,EAAa7C,cAAc4I,EAAKrC,OAAS1D,EAAa7C,cAAc4I,EAAKC,QAC9E,MAGAD,EAAKna,MAAQma,EAAKna,MAAQ,IAAM,KACpCma,EAAKpK,OAASoK,EAAKpK,OAAS,IAAM,IACnCoK,EAAKrC,KAAO,MACZqC,EAAKC,OAOT,IAAIC,GAAkB,CASrBC,aAAc,SAAS9e,EAAOsc,GAC7B,IAAIyC,GAAW,GAAK/e,GAAO2M,MAAM,wCACjC,IAAKoS,GAA0B,WAAfA,EAAQ,GACvB,OAAc,IAAPzC,EAKR,OAFAtc,GAAS+e,EAAQ,GAETA,EAAQ,IAChB,IAAK,KACJ,OAAO/e,EACR,IAAK,IACJA,GAAS,IACT,MAGD,OAAOsc,EAAOtc,GAUfgf,UAAW,SAAShf,GACnB,IAAIgL,EAAG5B,EAAGE,EAAGhN,EAWb,OATIsc,EAAa1C,SAASlW,IACzBgL,GAAKhL,EAAM/G,KAAO,EAClBmQ,GAAKpJ,EAAMhH,OAAS,EACpBsQ,GAAKtJ,EAAM9G,QAAU,EACrBoD,GAAK0D,EAAMjH,MAAQ,GAEnBiS,EAAI5B,EAAIE,EAAIhN,GAAK0D,GAAS,EAGpB,CACN/G,IAAK+R,EACLhS,MAAOoQ,EACPlQ,OAAQoQ,EACRvQ,KAAMuD,EACNvC,OAAQiR,EAAI1B,EACZtP,MAAOsC,EAAI8M,IAWb6V,WAAY,SAAS/gB,GACpB,IAAIghB,EAAiBT,EAAclX,OAC/B+U,EAAOlG,EAAelY,EAAQihB,SAAUD,EAAeb,iBACvDM,EAAO,CACVC,OAAQxI,EAAelY,EAAQkhB,WAAYF,EAAed,mBAC1DiB,WAAYzG,EAAa1a,QAAQ4gB,aAAa1I,EAAelY,EAAQmhB,WAAYH,EAAeX,mBAAoBjC,GACpHA,KAAMA,EACN9X,MAAO4R,EAAelY,EAAQohB,UAAWJ,EAAeZ,kBACxD/J,OAAQ,KACRhI,OAAQ,IAIT,OADAoS,EAAKpS,OAASmS,GAAaC,GACpBA,GAcRY,QAAS,SAASC,EAAQhhB,EAASnD,EAAOokB,GACzC,IACIjkB,EAAGwb,EAAMhX,EADT0f,GAAY,EAGhB,IAAKlkB,EAAI,EAAGwb,EAAOwI,EAAOvc,OAAQzH,EAAIwb,IAAQxb,EAE7C,GADAwE,EAAQwf,EAAOhkB,QACDsT,IAAV9O,SAGY8O,IAAZtQ,GAA0C,oBAAVwB,IACnCA,EAAQA,EAAMxB,GACdkhB,GAAY,QAEC5Q,IAAVzT,GAAuBud,EAAa5C,QAAQhW,KAC/CA,EAAQA,EAAM3E,GACdqkB,GAAY,QAEC5Q,IAAV9O,GAIH,OAHIyf,IAASC,IACZD,EAAKC,WAAY,GAEX1f,IAUP2f,GAAY,CAKfC,WAAY,SAAS5f,GACpB,IAEIxE,EAFAyT,EAAS,GACTrD,EAAO1R,KAAK0R,KAAK5L,GAGrB,IAAKxE,EAAI,EAAGA,EAAIoQ,EAAMpQ,IACjBwE,EAAQxE,IAAM,IACjByT,EAAO7J,KAAK5J,GACZyT,EAAO7J,KAAKpF,EAAQxE,IAUtB,OAPIoQ,KAAiB,EAAPA,IACbqD,EAAO7J,KAAKwG,GAGbqD,EAAO4Q,MAAK,SAASnf,EAAG4I,GACvB,OAAO5I,EAAI4I,KACTwE,MACImB,GAGR6Q,MAAO5lB,KAAK4lB,OAAS,SAASjmB,GAC7B,IAAIkmB,EAAW7lB,KAAK8lB,IAAInmB,GAAKK,KAAK+lB,OAG9BC,EAAYhmB,KAAK+R,MAAM8T,GACvBI,EAActmB,IAAMK,KAAKiP,IAAI,GAAI+W,GAErC,OAAOC,EAAcD,EAAYH,IAI/BK,GAAeT,GAWnB/G,EAAakH,MAAQH,GAAUG,MAE/B,IAAIO,GAAgB,SAASC,EAAOtmB,GACnC,MAAO,CACNH,EAAG,SAASA,GACX,OAAOymB,EAAQA,EAAQtmB,EAAQH,GAEhC0mB,SAAU,SAASxW,GAClB/P,EAAQ+P,GAETyW,UAAW,SAASC,GACnB,MAAc,WAAVA,EACIA,EAES,UAAVA,EAAoB,OAAS,SAErCC,MAAO,SAAS7mB,EAAGmG,GAClB,OAAOnG,EAAImG,GAEZ2gB,WAAY,SAAS9mB,EAAG+mB,GACvB,OAAO/mB,EAAI+mB,KAKVC,GAAgB,WACnB,MAAO,CACNhnB,EAAG,SAASA,GACX,OAAOA,GAER0mB,SAAU,SAASxW,KAEnByW,UAAW,SAASC,GACnB,OAAOA,GAERC,MAAO,SAAS7mB,EAAGmG,GAClB,OAAOnG,EAAImG,GAEZ2gB,WAAY,SAAS9mB,EAAGinB,GACvB,OAAOjnB,KAKNknB,GAAa,SAASC,EAAKV,EAAOtmB,GACrC,OAAOgnB,EAAMX,GAAcC,EAAOtmB,GAAS6mB,MAGxCI,GAAwB,SAAShpB,EAAKipB,GACzC,IAAI1c,EAAO2c,EACO,QAAdD,GAAqC,QAAdA,IAC1B1c,EAAQvM,EAAIsN,OAAOf,MACnB2c,EAAW,CACV3c,EAAM4c,iBAAiB,aACvB5c,EAAM6c,oBAAoB,cAG3B7c,EAAM8c,YAAY,YAAaJ,EAAW,aAC1CjpB,EAAIspB,kBAAoBJ,IAItBK,GAAuB,SAASvpB,GACnC,IAAIkpB,EAAWlpB,EAAIspB,uBACFzS,IAAbqS,WACIlpB,EAAIspB,kBACXtpB,EAAIsN,OAAOf,MAAM8c,YAAY,YAAaH,EAAS,GAAIA,EAAS,MAI9DM,GAAc,CACjBpB,cAAeU,GACfE,sBAAuBA,GACvBO,qBAAsBA,IAGnBE,GAAY9I,EACZ+I,GAASvG,EACT7V,GAASuY,EACT5f,GAAU2gB,GACV+C,GAAOxB,GACPY,GAAMS,GAOV,SAASI,GAAYC,EAAOC,EAAM9Y,EAAO+Y,GACxC,IACIxmB,EAAGwb,EAAMxT,EAAKye,EAAQC,EAAQrN,EAAQhd,EAAMsqB,EAAIC,EADhDhf,EAAOtL,OAAOsL,KAAK6F,GAGvB,IAAKzN,EAAI,EAAGwb,EAAO5T,EAAKH,OAAQzH,EAAIwb,IAAQxb,EAa3C,GAZAgI,EAAMJ,EAAK5H,GAEXqZ,EAAS5L,EAAMzF,GAIVue,EAAK1kB,eAAemG,KACxBue,EAAKve,GAAOqR,GAGboN,EAASF,EAAKve,GAEVye,IAAWpN,GAAqB,MAAXrR,EAAI,GAA7B,CAYA,GARKse,EAAMzkB,eAAemG,KACzBse,EAAMte,GAAOye,GAGdC,EAASJ,EAAMte,GAEf3L,SAAcgd,EAEVhd,WAAgBqqB,EACnB,GAAa,WAATrqB,GAEH,GADAsqB,EAAKzM,EAAawM,GACdC,EAAG/Q,QACNgR,EAAK1M,EAAab,GACduN,EAAGhR,OAAO,CACb2Q,EAAKve,GAAO4e,EAAG/N,IAAI8N,EAAIH,GAAMlS,YAC7B,eAGI,GAAI4R,GAAUvL,SAAS+L,IAAWR,GAAUvL,SAAStB,GAAS,CACpEkN,EAAKve,GAAO0e,GAAUrN,EAASqN,GAAUF,EACzC,SAIFD,EAAKve,GAAOqR,GAnDd6M,GAAUC,OAASA,GACnBD,GAAUnc,OAASA,GACnBmc,GAAUxjB,QAAUA,GACpBwjB,GAAUE,KAAOA,GACjBF,GAAUV,IAAMA,GAmDhB,IAAIqB,GAAU,SAASC,GACtBZ,GAAU7J,OAAO1f,KAAMmqB,GACvBnqB,KAAKoqB,WAAW9L,MAAMte,KAAM6T,YAG7B0V,GAAU7J,OAAOwK,GAAQxpB,UAAW,CACnC2pB,WAAO1T,EAEPyT,WAAY,WACXpqB,KAAKsqB,QAAS,GAGfC,MAAO,WACN,IAAIvK,EAAKhgB,KAKT,OAJKggB,EAAG3e,QACP2e,EAAG3e,MAAQkoB,GAAU7J,OAAO,GAAIM,EAAGwK,SAEpCxK,EAAGyK,OAAS,GACLzK,GAGR0K,WAAY,SAASb,GACpB,IAAI7J,EAAKhgB,KACL8Q,EAAQkP,EAAGwK,OACXb,EAAQ3J,EAAGyK,OACXb,EAAO5J,EAAG3e,MAGd,OAAKyP,GAAkB,IAAT+Y,GAMTD,IACJA,EAAO5J,EAAG3e,MAAQ,IAGdsoB,IACJA,EAAQ3J,EAAGyK,OAAS,IAGrBf,GAAYC,EAAOC,EAAM9Y,EAAO+Y,GAEzB7J,IAfNA,EAAG3e,MAAQkoB,GAAU7J,OAAO,GAAI5O,GAChCkP,EAAGyK,OAAS,KACLzK,IAgBT2K,gBAAiB,WAChB,MAAO,CACNjpB,EAAG1B,KAAKwqB,OAAO9oB,EACfC,EAAG3B,KAAKwqB,OAAO7oB,IAIjBipB,SAAU,WACT,OAAOrB,GAAUsB,SAAS7qB,KAAKwqB,OAAO9oB,IAAM6nB,GAAUsB,SAAS7qB,KAAKwqB,OAAO7oB,MAI7EuoB,GAAQxK,OAAS6J,GAAUzJ,SAE3B,IAAIgL,GAAeZ,GAEfa,GAAYD,GAAapL,OAAO,CACnCxV,MAAO,KACP8gB,YAAa,EACbC,SAAU,GACVzB,OAAQ,GACRxjB,OAAQ,KAERklB,oBAAqB,KACrBC,oBAAqB,OAGlBC,GAAiBL,GAUrBprB,OAAO+E,eAAeqmB,GAAUrqB,UAAW,kBAAmB,CAC7DmE,IAAK,WACJ,OAAO7E,QAUTL,OAAO+E,eAAeqmB,GAAUrqB,UAAW,gBAAiB,CAC3DmE,IAAK,WACJ,OAAO7E,KAAKkK,OAEbmhB,IAAK,SAASxjB,GACb7H,KAAKkK,MAAQrC,KAIfye,EAAcR,KAAK,SAAU,CAC5BwF,UAAW,CACVC,SAAU,IACV/B,OAAQ,eACRgC,WAAYjC,GAAU7L,KACtB+N,WAAYlC,GAAU7L,QAIxB,IAAIgO,GAAkB,CACrBC,WAAY,GACZC,QAAS,KAQTC,aAAc,SAAS3hB,EAAOohB,EAAWC,EAAUO,GAClD,IACIzoB,EAAGwb,EADH8M,EAAa3rB,KAAK2rB,WAWtB,IARAL,EAAUphB,MAAQA,EAClBohB,EAAUS,UAAYC,KAAKC,MAC3BX,EAAUC,SAAWA,EAEhBO,IACJ5hB,EAAMgiB,WAAY,GAGd7oB,EAAI,EAAGwb,EAAO8M,EAAW7gB,OAAQzH,EAAIwb,IAAQxb,EACjD,GAAIsoB,EAAWtoB,GAAG6G,QAAUA,EAE3B,YADAyhB,EAAWtoB,GAAKioB,GAKlBK,EAAW1e,KAAKqe,GAGU,IAAtBK,EAAW7gB,QACd9K,KAAKmsB,yBAIPC,gBAAiB,SAASliB,GACzB,IAAIhH,EAAQqmB,GAAU8C,UAAUrsB,KAAK2rB,YAAY,SAASL,GACzD,OAAOA,EAAUphB,QAAUA,MAGb,IAAXhH,IACHlD,KAAK2rB,WAAWW,OAAOppB,EAAO,GAC9BgH,EAAMgiB,WAAY,IAIpBC,sBAAuB,WACtB,IAAInM,EAAKhgB,KACU,OAAfggB,EAAG4L,UAIN5L,EAAG4L,QAAUrC,GAAUgD,iBAAiBnoB,KAAKkZ,QAAQ,WACpD0C,EAAG4L,QAAU,KACb5L,EAAGwM,mBAQNA,YAAa,WACZ,IAAIxM,EAAKhgB,KAETggB,EAAGyM,UAGCzM,EAAG2L,WAAW7gB,OAAS,GAC1BkV,EAAGmM,yBAOLM,QAAS,WACR,IACInB,EAAWphB,EAAO+gB,EAAUyB,EAD5Bf,EAAa3rB,KAAK2rB,WAElBtoB,EAAI,EAGR,MAAOA,EAAIsoB,EAAW7gB,OACrBwgB,EAAYK,EAAWtoB,GACvB6G,EAAQohB,EAAUphB,MAClB+gB,EAAWK,EAAUL,SAIrByB,EAAW3qB,KAAKmN,OAAO8c,KAAKC,MAAQX,EAAUS,WAAaT,EAAUC,SAAWN,GAAY,EAC5FK,EAAUN,YAAcjpB,KAAKC,IAAI0qB,EAAUzB,GAE3C1B,GAAUnL,SAASkN,EAAUtlB,OAAQ,CAACkE,EAAOohB,GAAYphB,GACzDqf,GAAUnL,SAASkN,EAAUJ,oBAAqB,CAACI,GAAYphB,GAE3DohB,EAAUN,aAAeC,GAC5B1B,GAAUnL,SAASkN,EAAUH,oBAAqB,CAACG,GAAYphB,GAC/DA,EAAMgiB,WAAY,EAClBP,EAAWW,OAAOjpB,EAAG,MAEnBA,IAMF+jB,GAAUmC,GAAUxjB,QAAQqhB,QAE5BuF,GAAc,CAAC,OAAQ,MAAO,QAAS,SAAU,WAOrD,SAASC,GAAkBjM,EAAOkM,GAC7BlM,EAAMmM,SACTnM,EAAMmM,SAASC,UAAU9f,KAAK4f,IAI/BltB,OAAO+E,eAAeic,EAAO,WAAY,CACxChc,cAAc,EACdC,YAAY,EACZiD,MAAO,CACNklB,UAAW,CAACF,MAIdF,GAAY5hB,SAAQ,SAASM,GAC5B,IAAI2hB,EAAS,SAAW3hB,EAAI4D,OAAO,GAAGqF,cAAgBjJ,EAAIuL,MAAM,GAC5DnV,EAAOkf,EAAMtV,GAEjB1L,OAAO+E,eAAeic,EAAOtV,EAAK,CACjC1G,cAAc,EACdC,YAAY,EACZiD,MAAO,WACN,IAAI+L,EAAO/G,MAAMnM,UAAUkW,MAAMxS,KAAKyP,WAClCoZ,EAAMxrB,EAAK6c,MAAMte,KAAM4T,GAQ3B,OANA2V,GAAUhL,KAAKoC,EAAMmM,SAASC,WAAW,SAAS/nB,GACnB,oBAAnBA,EAAOgoB,IACjBhoB,EAAOgoB,GAAQ1O,MAAMtZ,EAAQ4O,MAIxBqZ,SAUX,SAASC,GAAoBvM,EAAOkM,GACnC,IAAIM,EAAOxM,EAAMmM,SACjB,GAAKK,EAAL,CAIA,IAAIJ,EAAYI,EAAKJ,UACjB7pB,EAAQ6pB,EAAU/pB,QAAQ6pB,IACf,IAAX3pB,GACH6pB,EAAUT,OAAOppB,EAAO,GAGrB6pB,EAAUjiB,OAAS,IAIvB6hB,GAAY5hB,SAAQ,SAASM,UACrBsV,EAAMtV,aAGPsV,EAAMmM,WAId,IAAIM,GAAoB,SAASljB,EAAOmjB,GACvCrtB,KAAKoqB,WAAWlgB,EAAOmjB,IAGxB9D,GAAU7J,OAAO0N,GAAkB1sB,UAAW,CAM7C4sB,mBAAoB,KAMpBC,gBAAiB,KAQjBC,uBAAwB,CACvB,kBACA,iBACA,cACA,aACA,mBACA,kBACA,eASDC,oBAAqB,CACpB,kBACA,cACA,cACA,cAGDrD,WAAY,SAASlgB,EAAOmjB,GAC3B,IAAIrN,EAAKhgB,KACTggB,EAAG9V,MAAQA,EACX8V,EAAG9c,MAAQmqB,EACXrN,EAAG0N,aACH1N,EAAG2N,cACH3N,EAAGqK,MAAQrK,EAAG4N,UAAUluB,MAGzBmuB,YAAa,SAASR,GACrBrtB,KAAKkD,MAAQmqB,GAGdK,WAAY,WACX,IAAI1N,EAAKhgB,KACL8tB,EAAO9N,EAAG4N,UACV1jB,EAAQ8V,EAAG9V,MACX6jB,EAAS7jB,EAAM6jB,OACfxjB,EAAUyV,EAAGgO,aACbC,EAAa/jB,EAAMnE,QAAQgoB,OAEV,OAAjBD,EAAKI,SAAsBJ,EAAKI,WAAWH,IAAWxjB,EAAQ2jB,UACjEJ,EAAKI,QAAU3jB,EAAQ2jB,SAAWD,EAAWE,MAAM,GAAG3hB,IAElC,OAAjBshB,EAAKM,SAAsBN,EAAKM,WAAWL,IAAWxjB,EAAQ6jB,UACjEN,EAAKM,QAAU7jB,EAAQ6jB,SAAWH,EAAWI,MAAM,GAAG7hB,KAIxDwhB,WAAY,WACX,OAAOhuB,KAAKkK,MAAMrK,KAAKwK,SAASrK,KAAKkD,QAGtC0qB,QAAS,WACR,OAAO5tB,KAAKkK,MAAMokB,eAAetuB,KAAKkD,QAGvCqrB,cAAe,SAASC,GACvB,OAAOxuB,KAAKkK,MAAM6jB,OAAOS,IAM1BC,iBAAkB,WACjB,OAAOzuB,KAAK4tB,UAAUQ,SAMvBM,iBAAkB,WACjB,OAAO1uB,KAAK4tB,UAAUM,SAMvBS,eAAgB,WACf,OAAO3uB,KAAKuuB,cAAcvuB,KAAKyuB,qBAMhCG,eAAgB,WACf,OAAO5uB,KAAKuuB,cAAcvuB,KAAK0uB,qBAGhCG,MAAO,WACN7uB,KAAK8uB,SAAQ,IAMdjjB,QAAS,WACJ7L,KAAK+uB,OACR7B,GAAoBltB,KAAK+uB,MAAO/uB,OAIlCgvB,kBAAmB,WAClB,IAAIhP,EAAKhgB,KACLN,EAAOsgB,EAAGsN,mBACd,OAAO5tB,GAAQ,IAAIA,EAAK,CACvByB,OAAQ6e,EAAG9V,MACX+kB,cAAejP,EAAG9c,SAIpBgsB,eAAgB,SAAShsB,GACxB,IAAI8c,EAAKhgB,KACLN,EAAOsgB,EAAGuN,gBACd,OAAO7tB,GAAQ,IAAIA,EAAK,CACvByB,OAAQ6e,EAAG9V,MACX+kB,cAAejP,EAAG9c,MAClBisB,OAAQjsB,KAIVyqB,YAAa,WACZ,IAIItqB,EAAGwb,EAJHmB,EAAKhgB,KACL8tB,EAAO9N,EAAG4N,UACV/tB,EAAOmgB,EAAGgO,aAAanuB,MAAQ,GAC/BuvB,EAAWtB,EAAKjuB,KAGpB,IAAKwD,EAAI,EAAGwb,EAAOhf,EAAKiL,OAAQzH,EAAIwb,IAAQxb,EAC3C+rB,EAAS/rB,GAAK+rB,EAAS/rB,IAAM2c,EAAGkP,eAAe7rB,GAGhDyqB,EAAKvjB,QAAUujB,EAAKvjB,SAAWyV,EAAGgP,qBAGnCK,mBAAoB,SAASnsB,GAC5B,IAAIosB,EAAUtvB,KAAKkvB,eAAehsB,GAClClD,KAAK4tB,UAAU/tB,KAAKysB,OAAOppB,EAAO,EAAGosB,GACrCtvB,KAAKuvB,cAAcD,EAASpsB,GAAO,IAGpCssB,sBAAuB,WACtB,IAAIxP,EAAKhgB,KACLuK,EAAUyV,EAAGgO,aACbnuB,EAAO0K,EAAQ1K,OAAS0K,EAAQ1K,KAAO,IAKvCmgB,EAAG+O,QAAUlvB,IACZmgB,EAAG+O,OAEN7B,GAAoBlN,EAAG+O,MAAO/O,GAG3BngB,GAAQF,OAAO8vB,aAAa5vB,IAC/B+sB,GAAkB/sB,EAAMmgB,GAEzBA,EAAG+O,MAAQlvB,GAKZmgB,EAAG0P,kBAOJC,WAAY,WACX,IAAI3P,EAAKhgB,KACTggB,EAAG4P,QAAUrG,GAAUlK,MAAM1f,OAAOqf,OAAO,MAAO,CACjDgB,EAAG9V,MAAMnE,QAAQsE,SAAS2V,EAAGqK,OAC7BrK,EAAGgO,cACD,CACFvO,OAAQ,SAASpU,EAAKqR,EAAQD,GACjB,UAARpR,GAA2B,SAARA,GACtBke,GAAUrK,QAAQ7T,EAAKqR,EAAQD,OAMnCqS,QAAS,SAASD,GACjB,IAAI7O,EAAKhgB,KACTggB,EAAG2P,aACH3P,EAAG6P,gBAAkB,KACrB7P,EAAGpU,OAAOijB,IAGXjjB,OAAQ2d,GAAU7L,KAElBgN,WAAY,SAASoF,GAMpB,IALA,IAAIhC,EAAO9tB,KAAK4tB,UACZptB,EAAWstB,EAAKjuB,MAAQ,GACxBgf,EAAOre,EAASsK,OAChBzH,EAAI,EAEDA,EAAIwb,IAAQxb,EAClB7C,EAAS6C,GAAGqnB,WAAWoF,GAGpBhC,EAAKvjB,SACRujB,EAAKvjB,QAAQmgB,WAAWoF,IAI1BnvB,KAAM,WACL,IAAImtB,EAAO9tB,KAAK4tB,UACZptB,EAAWstB,EAAKjuB,MAAQ,GACxBgf,EAAOre,EAASsK,OAChBzH,EAAI,EAMR,IAJIyqB,EAAKvjB,SACRujB,EAAKvjB,QAAQ5J,OAGP0C,EAAIwb,IAAQxb,EAClB7C,EAAS6C,GAAG1C,QAUdovB,SAAU,SAAS7sB,GAClB,IAGImJ,EAHA2T,EAAKhgB,KACL8tB,EAAO9N,EAAG4N,UACVrjB,EAAUujB,EAAKvjB,QAenB,OAZAyV,EAAG2P,aACCplB,QAAqBoM,IAAVzT,EACdmJ,EAAQ2T,EAAGgQ,8BAA8BzlB,GAAW,KAEpDrH,EAAQA,GAAS,EACjBmJ,EAAQ2T,EAAGiQ,2BAA2BnC,EAAKjuB,KAAKqD,IAAU,GAAIA,KAG5C,IAAfmJ,EAAM3I,MAAiC,OAAf2I,EAAM3I,OACjC2I,EAAM5J,gBAAkB4J,EAAM1J,aAGxB0J,GAMR2jB,8BAA+B,SAASV,EAASY,GAChD,IAOI7sB,EAAGwb,EAAMxT,EAAK8kB,EAPdnQ,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MACXkmB,EAAcpQ,EAAG4P,QACjBS,EAASf,EAAQe,QAAU,GAC3BtqB,EAAUmE,EAAMnE,QAAQvF,SAASwf,EAAGsN,mBAAmB5sB,UAAU2pB,QAAU,GAC3EiG,EAAiBtQ,EAAGwN,uBACpBtU,EAAS,GAIT7S,EAAU,CACb6D,MAAOA,EACPK,QAASyV,EAAGgO,aACZX,aAAcrN,EAAG9c,MACjBgtB,MAAOA,GAGR,IAAK7sB,EAAI,EAAGwb,EAAOyR,EAAexlB,OAAQzH,EAAIwb,IAAQxb,EACrDgI,EAAMilB,EAAejtB,GACrB8sB,EAAUD,EAAQ,QAAU7kB,EAAI4D,OAAO,GAAGqF,cAAgBjJ,EAAIuL,MAAM,GAAKvL,EACzE6N,EAAO7N,GAAO+b,GAAQ,CACrBiJ,EAAOF,GACPC,EAAYD,GACZpqB,EAAQoqB,IACN9pB,GAGJ,OAAO6S,GAMR+W,2BAA4B,SAASX,EAASpsB,GAC7C,IAAI8c,EAAKhgB,KACLqwB,EAASf,GAAWA,EAAQe,OAC5BE,EAASvQ,EAAG6P,gBAChB,GAAIU,IAAWF,EACd,OAAOE,EAER,IAiBItlB,EAAM5H,EAAGwb,EAAMxT,EAjBfnB,EAAQ8V,EAAG9V,MACXkmB,EAAcpQ,EAAG4P,QACjB7pB,EAAUmE,EAAMnE,QAAQvF,SAASwf,EAAGuN,gBAAgB7sB,UAAU2pB,QAAU,GACxEiG,EAAiBtQ,EAAGyN,oBACpBvU,EAAS,GAGT7S,EAAU,CACb6D,MAAOA,EACPsmB,UAAWttB,EACXqH,QAASyV,EAAGgO,aACZX,aAAcrN,EAAG9c,OAIdokB,EAAO,CAACC,WAAY8I,GAMxB,GAFAA,EAASA,GAAU,GAEf9G,GAAU1L,QAAQyS,GACrB,IAAKjtB,EAAI,EAAGwb,EAAOyR,EAAexlB,OAAQzH,EAAIwb,IAAQxb,EACrDgI,EAAMilB,EAAejtB,GACrB6V,EAAO7N,GAAO+b,GAAQ,CACrBiJ,EAAOhlB,GACP+kB,EAAY/kB,GACZtF,EAAQsF,IACNhF,EAASnD,EAAOokB,QAIpB,IADArc,EAAOtL,OAAOsL,KAAKqlB,GACdjtB,EAAI,EAAGwb,EAAO5T,EAAKH,OAAQzH,EAAIwb,IAAQxb,EAC3CgI,EAAMJ,EAAK5H,GACX6V,EAAO7N,GAAO+b,GAAQ,CACrBiJ,EAAOhlB,GACP+kB,EAAYE,EAAejlB,IAC3B+kB,EAAY/kB,GACZtF,EAAQsF,IACNhF,EAASnD,EAAOokB,GAQrB,OAJIA,EAAKC,YACRvH,EAAG6P,gBAAkBlwB,OAAO8wB,OAAOvX,IAG7BA,GAGRwX,iBAAkB,SAASpB,GAC1B/F,GAAUlK,MAAMiQ,EAAQ9E,OAAQ8E,EAAQqB,gBAAkB,WACnDrB,EAAQqB,gBAGhBC,cAAe,SAAStB,GACvB,IAAI/kB,EAAUvK,KAAKkK,MAAMrK,KAAKwK,SAASilB,EAAQL,eAC3C/rB,EAAQosB,EAAQH,OAChBkB,EAASf,EAAQe,QAAU,GAC3Bvf,EAAQwe,EAAQ9E,OAChBqG,EAAgBtH,GAAUsH,cAE9BvB,EAAQqB,eAAiB,CACxBluB,gBAAiBqO,EAAMrO,gBACvBE,YAAamO,EAAMnO,YACnBrB,YAAawP,EAAMxP,aAGpBwP,EAAMrO,gBAAkB2kB,GAAQ,CAACiJ,EAAOS,qBAAsBvmB,EAAQumB,qBAAsBD,EAAc/f,EAAMrO,uBAAmBkU,EAAWzT,GAC9I4N,EAAMnO,YAAcykB,GAAQ,CAACiJ,EAAOU,iBAAkBxmB,EAAQwmB,iBAAkBF,EAAc/f,EAAMnO,mBAAegU,EAAWzT,GAC9H4N,EAAMxP,YAAc8lB,GAAQ,CAACiJ,EAAOW,iBAAkBzmB,EAAQymB,iBAAkBlgB,EAAMxP,kBAAcqV,EAAWzT,IAMhH+tB,yBAA0B,WACzB,IAAI3B,EAAUtvB,KAAK4tB,UAAUrjB,QAEzB+kB,GACHtvB,KAAK0wB,iBAAiBpB,IAOxB4B,sBAAuB,WACtB,IAEI7tB,EAAGwb,EAAMxT,EAAKJ,EAAMkmB,EAAcrgB,EAFlCwe,EAAUtvB,KAAK4tB,UAAUrjB,QACzB6mB,EAAO,GAGX,GAAK9B,EAAL,CAQA,IAJAxe,EAAQwe,EAAQ9E,OAChB2G,EAAenxB,KAAKgwB,8BAA8BV,GAAS,GAE3DrkB,EAAOtL,OAAOsL,KAAKkmB,GACd9tB,EAAI,EAAGwb,EAAO5T,EAAKH,OAAQzH,EAAIwb,IAAQxb,EAC3CgI,EAAMJ,EAAK5H,GACX+tB,EAAK/lB,GAAOyF,EAAMzF,GAClByF,EAAMzF,GAAO8lB,EAAa9lB,GAG3BikB,EAAQqB,eAAiBS,IAM1B1B,eAAgB,WACf,IAAI1P,EAAKhgB,KACL8tB,EAAO9N,EAAG4N,UACV/tB,EAAOmgB,EAAGgO,aAAanuB,KACvBwxB,EAAUvD,EAAKjuB,KAAKiL,OACpBwmB,EAAUzxB,EAAKiL,OAEfwmB,EAAUD,EACbvD,EAAKjuB,KAAKysB,OAAOgF,EAASD,EAAUC,GAC1BA,EAAUD,GACpBrR,EAAGuR,eAAeF,EAASC,EAAUD,IAOvCE,eAAgB,SAAS5H,EAAO6H,GAC/B,IAAK,IAAInuB,EAAI,EAAGA,EAAImuB,IAASnuB,EAC5BrD,KAAKqvB,mBAAmB1F,EAAQtmB,IAOlCouB,WAAY,WACX,IAAID,EAAQ3d,UAAU/I,OACtB9K,KAAKuxB,eAAevxB,KAAKguB,aAAanuB,KAAKiL,OAAS0mB,EAAOA,IAM5DE,UAAW,WACV1xB,KAAK4tB,UAAU/tB,KAAK8V,OAMrBgc,YAAa,WACZ3xB,KAAK4tB,UAAU/tB,KAAK+xB,SAMrBC,aAAc,SAASlI,EAAO6H,GAC7BxxB,KAAK4tB,UAAU/tB,KAAKysB,OAAO3C,EAAO6H,GAClCxxB,KAAKuxB,eAAe5H,EAAO9V,UAAU/I,OAAS,IAM/CgnB,cAAe,WACd9xB,KAAKuxB,eAAe,EAAG1d,UAAU/I,WAInCsiB,GAAkB1N,OAAS6J,GAAUzJ,SAErC,IAAIiS,GAAyB3E,GAEzB4E,GAAgB,EAAVjwB,KAAKyR,GAaf,SAASye,GAAQnyB,EAAK8jB,GACrB,IAAIsO,EAAatO,EAAIsO,WACjBC,EAAWvO,EAAIuO,SACfC,EAAcxO,EAAIwO,YAClBC,EAAcD,EAAcxO,EAAI0O,YAChC5wB,EAAIkiB,EAAIliB,EACRC,EAAIiiB,EAAIjiB,EAIZ7B,EAAIyC,YACJzC,EAAI8jB,IAAIliB,EAAGC,EAAGiiB,EAAI0O,YAAaJ,EAAaG,EAAaF,EAAWE,GAChEzO,EAAI2O,YAAcH,GACrBC,EAAcD,EAAcxO,EAAI2O,YAChCzyB,EAAI8jB,IAAIliB,EAAGC,EAAGiiB,EAAI2O,YAAcH,EAAaD,EAAWE,EAAaH,EAAaG,GAAa,IAE/FvyB,EAAI8jB,IAAIliB,EAAGC,EAAGywB,EAAaD,EAAWpwB,KAAKyR,GAAK,EAAG0e,EAAanwB,KAAKyR,GAAK,GAE3E1T,EAAI+jB,YACJ/jB,EAAIilB,OAGL,SAASyN,GAAsB1yB,EAAKsB,EAAIwiB,EAAK6O,GAC5C,IACIpvB,EADA8uB,EAAWvO,EAAIuO,SAenB,IAZIM,IACH7O,EAAIuO,SAAWvO,EAAIsO,WAAaF,GAChCC,GAAQnyB,EAAK8jB,GACbA,EAAIuO,SAAWA,EACXvO,EAAIuO,WAAavO,EAAIsO,YAActO,EAAI8O,cAC1C9O,EAAIuO,UAAYH,GAChBpO,EAAI8O,gBAIN5yB,EAAIyC,YACJzC,EAAI8jB,IAAIA,EAAIliB,EAAGkiB,EAAIjiB,EAAGiiB,EAAI2O,YAAa3O,EAAIsO,WAAaF,GAAKpO,EAAIsO,YAAY,GACxE7uB,EAAI,EAAGA,EAAIugB,EAAI8O,cAAervB,EAClCvD,EAAI6D,SAKL,IAFA7D,EAAIyC,YACJzC,EAAI8jB,IAAIA,EAAIliB,EAAGkiB,EAAIjiB,EAAGP,EAAGkxB,YAAa1O,EAAIsO,WAAYtO,EAAIsO,WAAaF,IAClE3uB,EAAI,EAAGA,EAAIugB,EAAI8O,cAAervB,EAClCvD,EAAI6D,SAIN,SAASgvB,GAAW7yB,EAAKsB,EAAIwiB,GAC5B,IAAI6O,EAA2B,UAAnBrxB,EAAGwxB,YAEXH,GACH3yB,EAAI8C,UAA6B,EAAjBxB,EAAGE,YACnBxB,EAAI+yB,SAAW,UAEf/yB,EAAI8C,UAAYxB,EAAGE,YACnBxB,EAAI+yB,SAAW,SAGZjP,EAAI8O,aACPF,GAAsB1yB,EAAKsB,EAAIwiB,EAAK6O,GAGjCA,GACHR,GAAQnyB,EAAK8jB,GAGd9jB,EAAIyC,YACJzC,EAAI8jB,IAAIA,EAAIliB,EAAGkiB,EAAIjiB,EAAGP,EAAGkxB,YAAa1O,EAAIsO,WAAYtO,EAAIuO,UAC1DryB,EAAI8jB,IAAIA,EAAIliB,EAAGkiB,EAAIjiB,EAAGiiB,EAAI2O,YAAa3O,EAAIuO,SAAUvO,EAAIsO,YAAY,GACrEpyB,EAAI+jB,YACJ/jB,EAAI6D,SAnFL2iB,EAAcR,KAAK,SAAU,CAC5BtlB,SAAU,CACTojB,IAAK,CACJnhB,gBAAiB6jB,EAAclX,OAAO2W,aACtCpjB,YAAa,OACbrB,YAAa,EACbsxB,YAAa,aAgFhB,IAAIE,GAAchI,GAAapL,OAAO,CACrC2K,MAAO,MAEP0I,aAAc,SAASC,GACtB,IAAI5xB,EAAKpB,KAAKqB,MAEd,QAAID,GACKW,KAAKiP,IAAIgiB,EAAS5xB,EAAGM,EAAG,GAAKK,KAAKiP,IAAI5P,EAAGmC,OAASnC,EAAG6xB,YAAa,IAK5EC,QAAS,SAASC,EAAQC,GACzB,IAAIhyB,EAAKpB,KAAKqB,MAEd,GAAID,EAAI,CACP,IAAIiyB,EAAwB9J,GAAU+J,kBAAkBlyB,EAAI,CAACM,EAAGyxB,EAAQxxB,EAAGyxB,IACvEG,EAAQF,EAAsBE,MAC9BrhB,EAAWmhB,EAAsBnhB,SAGjCggB,EAAa9wB,EAAG8wB,WAChBC,EAAW/wB,EAAG+wB,SAClB,MAAOA,EAAWD,EACjBC,GAAYH,GAEb,MAAOuB,EAAQpB,EACdoB,GAASvB,GAEV,MAAOuB,EAAQrB,EACdqB,GAASvB,GAIV,IAAIwB,EAAiBD,GAASrB,GAAcqB,GAASpB,EACjDsB,EAAgBvhB,GAAY9Q,EAAGmxB,aAAergB,GAAY9Q,EAAGkxB,YAEjE,OAAQkB,GAAiBC,EAE1B,OAAO,GAGRC,eAAgB,WACf,IAAItyB,EAAKpB,KAAKqB,MACVsyB,GAAavyB,EAAG8wB,WAAa9wB,EAAG+wB,UAAY,EAC5CyB,GAAcxyB,EAAGmxB,YAAcnxB,EAAGkxB,aAAe,EACrD,MAAO,CACN5wB,EAAGN,EAAGM,EAAIK,KAAK2R,IAAIigB,GAAaC,EAChCjyB,EAAGP,EAAGO,EAAII,KAAK4R,IAAIggB,GAAaC,IAIlCC,QAAS,WACR,IAAIzyB,EAAKpB,KAAKqB,MACd,OAAOU,KAAKyR,KAAOpS,EAAG+wB,SAAW/wB,EAAG8wB,aAAe,EAAInwB,KAAKyR,MAAQzR,KAAKiP,IAAI5P,EAAGkxB,YAAa,GAAKvwB,KAAKiP,IAAI5P,EAAGmxB,YAAa,KAG5H5H,gBAAiB,WAChB,IAAIvpB,EAAKpB,KAAKqB,MACVyyB,EAAc1yB,EAAG8wB,YAAe9wB,EAAG+wB,SAAW/wB,EAAG8wB,YAAc,EAC/D6B,GAAmB3yB,EAAGkxB,YAAclxB,EAAGmxB,aAAe,EAAInxB,EAAGmxB,YAEjE,MAAO,CACN7wB,EAAGN,EAAGM,EAAKK,KAAK2R,IAAIogB,GAAeC,EACnCpyB,EAAGP,EAAGO,EAAKI,KAAK4R,IAAImgB,GAAeC,IAIrCpzB,KAAM,WACL,IAaI0C,EAbAvD,EAAME,KAAKmB,OAAOrB,IAClBsB,EAAKpB,KAAKqB,MACV+wB,EAAkC,UAAnBhxB,EAAGwxB,YAA2B,IAAO,EACpDhP,EAAM,CACTliB,EAAGN,EAAGM,EACNC,EAAGP,EAAGO,EACN4wB,YAAanxB,EAAGmxB,YAChBD,YAAavwB,KAAKqP,IAAIhQ,EAAGkxB,YAAcF,EAAa,GACpDA,YAAaA,EACbF,WAAY9wB,EAAG8wB,WACfC,SAAU/wB,EAAG+wB,SACbO,YAAa3wB,KAAKmN,MAAM9N,EAAG4yB,cAAgBhC,KAS5C,GALAlyB,EAAIukB,OAEJvkB,EAAI0C,UAAYpB,EAAGqB,gBACnB3C,EAAI4C,YAActB,EAAGuB,YAEjBihB,EAAI8O,YAAa,CAMpB,IALA9O,EAAIuO,SAAWvO,EAAIsO,WAAaF,GAChClyB,EAAIyC,YACJzC,EAAI8jB,IAAIA,EAAIliB,EAAGkiB,EAAIjiB,EAAGiiB,EAAI0O,YAAa1O,EAAIsO,WAAYtO,EAAIuO,UAC3DryB,EAAI8jB,IAAIA,EAAIliB,EAAGkiB,EAAIjiB,EAAGiiB,EAAI2O,YAAa3O,EAAIuO,SAAUvO,EAAIsO,YAAY,GACrEpyB,EAAI+jB,YACCxgB,EAAI,EAAGA,EAAIugB,EAAI8O,cAAervB,EAClCvD,EAAI4D,OAELkgB,EAAIuO,SAAWvO,EAAIsO,WAAa9wB,EAAG4yB,cAAgBhC,GAGpDlyB,EAAIyC,YACJzC,EAAI8jB,IAAIA,EAAIliB,EAAGkiB,EAAIjiB,EAAGiiB,EAAI0O,YAAa1O,EAAIsO,WAAYtO,EAAIuO,UAC3DryB,EAAI8jB,IAAIA,EAAIliB,EAAGkiB,EAAIjiB,EAAGiiB,EAAI2O,YAAa3O,EAAIuO,SAAUvO,EAAIsO,YAAY,GACrEpyB,EAAI+jB,YACJ/jB,EAAI4D,OAEAtC,EAAGE,aACNqxB,GAAW7yB,EAAKsB,EAAIwiB,GAGrB9jB,EAAI0kB,aAIFyP,GAAmB1K,GAAUtL,eAE7B8H,GAAeO,EAAclX,OAAO2W,aAExCO,EAAcR,KAAK,SAAU,CAC5BtlB,SAAU,CACT0zB,KAAM,CACL7O,QAAS,GACT5iB,gBAAiBsjB,GACjBzkB,YAAa,EACbqB,YAAaojB,GACboO,eAAgB,OAChBC,WAAY,GACZC,iBAAkB,EAClBC,gBAAiB,QACjBC,iBAAiB,EACjB7wB,MAAM,MAKT,IAAI8wB,GAAe1J,GAAapL,OAAO,CACtC2K,MAAO,OAEP1pB,KAAM,WACL,IASIuC,EAAOqd,EAAUkU,EATjBzU,EAAKhgB,KACLoB,EAAK4e,EAAG3e,MACRvB,EAAMkgB,EAAG7e,OAAOrB,IAChB40B,EAAWtzB,EAAGszB,SACd3mB,EAASiS,EAAG2U,UAAU/d,QACtBmQ,EAAiBT,EAAclX,OAC/BwlB,EAA2B7N,EAAevmB,SAAS0zB,KACnDW,GAAkB,EAClBhR,EAAY7D,EAAG8U,MAGnB,GAAK/mB,EAAOjD,OAAZ,CAIA,GAAIkV,EAAG8U,MAAO,CACb,IAAK5xB,EAAQ,EAAGA,EAAQ6K,EAAOjD,SAAU5H,EAGxC,GAFAqd,EAAWgJ,GAAUwL,aAAahnB,EAAQ7K,IAErC6K,EAAO7K,GAAO7B,MAAM2zB,MAAQzU,EAASlf,MAAM2zB,KAAM,CACrDjnB,EAASA,EAAO6I,MAAM1T,GAAO+D,OAAO8G,EAAO6I,MAAM,EAAG1T,IACpD2gB,EAAY6Q,EACZ,MAIE7Q,GACH9V,EAAOd,KAAKc,EAAO,IA6BrB,IAzBAjO,EAAIukB,OAGJvkB,EAAIm1B,QAAU7zB,EAAG+yB,gBAAkBS,EAAyBT,eAGxDr0B,EAAIo1B,aACPp1B,EAAIo1B,YAAY9zB,EAAGgzB,YAAcQ,EAAyBR,YAG3Dt0B,EAAIq1B,eAAiBlB,GAAiB7yB,EAAGizB,iBAAkBO,EAAyBP,kBACpFv0B,EAAI+yB,SAAWzxB,EAAGkzB,iBAAmBM,EAAyBN,gBAC9Dx0B,EAAI8C,UAAYqxB,GAAiB7yB,EAAGE,YAAaszB,EAAyBtzB,aAC1ExB,EAAI4C,YAActB,EAAGuB,aAAeokB,EAAehB,aAGnDjmB,EAAIyC,YAGJkyB,EAAY1mB,EAAO,GAAG1M,MACjBozB,EAAUO,OACdl1B,EAAIsD,OAAOqxB,EAAU/yB,EAAG+yB,EAAU9yB,GAClCkzB,EAAiB,GAGb3xB,EAAQ,EAAGA,EAAQ6K,EAAOjD,SAAU5H,EACxCuxB,EAAY1mB,EAAO7K,GAAO7B,MAC1Bkf,GAA+B,IAApBsU,EAAwBtL,GAAUwL,aAAahnB,EAAQ7K,GAAS6K,EAAO8mB,GAE7EJ,EAAUO,OACTH,IAAoB3xB,EAAQ,IAAOwxB,IAAiC,IAApBG,EAEpD/0B,EAAIsD,OAAOqxB,EAAU/yB,EAAG+yB,EAAU9yB,GAGlC4nB,GAAUnc,OAAO5J,OAAO1D,EAAKygB,EAASlf,MAAOozB,GAE9CI,EAAiB3xB,GAIf2gB,GACH/jB,EAAI+jB,YAGL/jB,EAAI6D,SACJ7D,EAAI0kB,cAIF4Q,GAAmB7L,GAAUtL,eAE7BoX,GAAiB/O,EAAclX,OAAO2W,aAkB1C,SAASuP,GAAOtC,GACf,IAAI5xB,EAAKpB,KAAKqB,MACd,QAAOD,GAAMW,KAAKE,IAAI+wB,EAAS5xB,EAAGM,GAAKN,EAAGmC,OAASnC,EAAGm0B,UAGvD,SAASC,GAAOC,GACf,IAAIr0B,EAAKpB,KAAKqB,MACd,QAAOD,GAAMW,KAAKE,IAAIwzB,EAASr0B,EAAGO,GAAKP,EAAGmC,OAASnC,EAAGm0B,UAvBvDjP,EAAcR,KAAK,SAAU,CAC5BtlB,SAAU,CACTmkB,MAAO,CACNphB,OAAQ,EACRmyB,WAAY,SACZjzB,gBAAiB4yB,GACjB1yB,YAAa0yB,GACb/zB,YAAa,EAEbi0B,UAAW,EACXtC,YAAa,EACbjC,iBAAkB,MAerB,IAAI2E,GAAgB7K,GAAapL,OAAO,CACvC2K,MAAO,QAEP6I,QAAS,SAASF,EAAQyC,GACzB,IAAIr0B,EAAKpB,KAAKqB,MACd,QAAOD,GAAOW,KAAKiP,IAAIgiB,EAAS5xB,EAAGM,EAAG,GAAKK,KAAKiP,IAAIykB,EAASr0B,EAAGO,EAAG,GAAMI,KAAKiP,IAAI5P,EAAGm0B,UAAYn0B,EAAGmC,OAAQ,IAG7GwvB,aAAcuC,GACdM,SAAUN,GACVO,SAAUL,GAEV9B,eAAgB,WACf,IAAItyB,EAAKpB,KAAKqB,MACd,MAAO,CACNK,EAAGN,EAAGM,EACNC,EAAGP,EAAGO,IAIRkyB,QAAS,WACR,OAAO9xB,KAAKyR,GAAKzR,KAAKiP,IAAIhR,KAAKqB,MAAMkC,OAAQ,IAG9ConB,gBAAiB,WAChB,IAAIvpB,EAAKpB,KAAKqB,MACd,MAAO,CACNK,EAAGN,EAAGM,EACNC,EAAGP,EAAGO,EACNm0B,QAAS10B,EAAGmC,OAASnC,EAAGE,cAI1BX,KAAM,SAASo1B,GACd,IAAI30B,EAAKpB,KAAKqB,MACVvB,EAAME,KAAKmB,OAAOrB,IAClB41B,EAAat0B,EAAGs0B,WAChB1R,EAAW5iB,EAAG4iB,SACdzgB,EAASnC,EAAGmC,OACZ7B,EAAIN,EAAGM,EACPC,EAAIP,EAAGO,EACPolB,EAAiBT,EAAclX,OAC/B2W,EAAegB,EAAehB,aAE9B3kB,EAAG4zB,YAKWre,IAAdof,GAA2BxM,GAAUnc,OAAOsX,eAAetjB,EAAI20B,MAClEj2B,EAAI4C,YAActB,EAAGuB,aAAeojB,EACpCjmB,EAAI8C,UAAYwyB,GAAiBh0B,EAAGE,YAAaylB,EAAevmB,SAASmkB,MAAMrjB,aAC/ExB,EAAI0C,UAAYpB,EAAGqB,iBAAmBsjB,EACtCwD,GAAUnc,OAAO2W,UAAUjkB,EAAK41B,EAAYnyB,EAAQ7B,EAAGC,EAAGqiB,OAKzDgS,GAAiB1P,EAAclX,OAAO2W,aAa1C,SAASkQ,GAAW70B,GACnB,OAAOA,QAAmBuV,IAAbvV,EAAGS,MASjB,SAASq0B,GAAa90B,GACrB,IAAI+0B,EAAI/iB,EAAIgjB,EAAIjjB,EAAIkjB,EAgBpB,OAdIJ,GAAW70B,IACdi1B,EAAOj1B,EAAGS,MAAQ,EAClBs0B,EAAK/0B,EAAGM,EAAI20B,EACZjjB,EAAKhS,EAAGM,EAAI20B,EACZD,EAAKr0B,KAAKC,IAAIZ,EAAGO,EAAGP,EAAGK,MACvB0R,EAAKpR,KAAKqP,IAAIhQ,EAAGO,EAAGP,EAAGK,QAEvB40B,EAAOj1B,EAAGQ,OAAS,EACnBu0B,EAAKp0B,KAAKC,IAAIZ,EAAGM,EAAGN,EAAGK,MACvB2R,EAAKrR,KAAKqP,IAAIhQ,EAAGM,EAAGN,EAAGK,MACvB20B,EAAKh1B,EAAGO,EAAI00B,EACZljB,EAAK/R,EAAGO,EAAI00B,GAGN,CACNz1B,KAAMu1B,EACNr1B,IAAKs1B,EACLv1B,MAAOuS,EACPrS,OAAQoS,GAIV,SAASmjB,GAAKC,EAAMxX,EAAIyX,GACvB,OAAOD,IAASxX,EAAKyX,EAAKD,IAASC,EAAKzX,EAAKwX,EAG9C,SAASE,GAAmBr1B,GAC3B,IAAIs1B,EAAOt1B,EAAGF,cACV+rB,EAAM,GAEV,OAAKyJ,GAIDt1B,EAAGI,WACFJ,EAAGK,KAAOL,EAAGM,IAChBg1B,EAAOJ,GAAKI,EAAM,OAAQ,UAEjBt1B,EAAGK,KAAOL,EAAGO,IACvB+0B,EAAOJ,GAAKI,EAAM,SAAU,QAG7BzJ,EAAIyJ,IAAQ,EACLzJ,GAZCA,EAeT,SAAS0J,GAAiBv1B,EAAIw1B,EAAMC,GACnC,IAEIhkB,EAAG5B,EAAGE,EAAGhN,EAFT0D,EAAQzG,EAAGE,YACX0zB,EAAOyB,GAAmBr1B,GAY9B,OATImoB,GAAUxL,SAASlW,IACtBgL,GAAKhL,EAAM/G,KAAO,EAClBmQ,GAAKpJ,EAAMhH,OAAS,EACpBsQ,GAAKtJ,EAAM9G,QAAU,EACrBoD,GAAK0D,EAAMjH,MAAQ,GAEnBiS,EAAI5B,EAAIE,EAAIhN,GAAK0D,GAAS,EAGpB,CACNgL,EAAGmiB,EAAKl0B,KAAQ+R,EAAI,EAAK,EAAIA,EAAIgkB,EAAOA,EAAOhkB,EAC/C5B,EAAG+jB,EAAKn0B,OAAUoQ,EAAI,EAAK,EAAIA,EAAI2lB,EAAOA,EAAO3lB,EACjDE,EAAG6jB,EAAKj0B,QAAWoQ,EAAI,EAAK,EAAIA,EAAI0lB,EAAOA,EAAO1lB,EAClDhN,EAAG6wB,EAAKp0B,MAASuD,EAAI,EAAK,EAAIA,EAAIyyB,EAAOA,EAAOzyB,GAIlD,SAAS2yB,GAAc11B,GACtB,IAAI21B,EAASb,GAAa90B,GACtBS,EAAQk1B,EAAOl2B,MAAQk2B,EAAOn2B,KAC9BgB,EAASm1B,EAAOh2B,OAASg2B,EAAOj2B,IAChCk2B,EAASL,GAAiBv1B,EAAIS,EAAQ,EAAGD,EAAS,GAEtD,MAAO,CACNq1B,MAAO,CACNv1B,EAAGq1B,EAAOn2B,KACVe,EAAGo1B,EAAOj2B,IACV8Q,EAAG/P,EACHmF,EAAGpF,GAEJ6wB,MAAO,CACN/wB,EAAGq1B,EAAOn2B,KAAOo2B,EAAO7yB,EACxBxC,EAAGo1B,EAAOj2B,IAAMk2B,EAAOnkB,EACvBjB,EAAG/P,EAAQm1B,EAAO7yB,EAAI6yB,EAAO/lB,EAC7BjK,EAAGpF,EAASo1B,EAAOnkB,EAAImkB,EAAO7lB,IAKjC,SAAS+hB,GAAQ9xB,EAAIM,EAAGC,GACvB,IAAIu1B,EAAc,OAANx1B,EACRy1B,EAAc,OAANx1B,EACRo1B,KAAU31B,GAAO81B,GAASC,IAAiBjB,GAAa90B,GAE5D,OAAO21B,IACFG,GAASx1B,GAAKq1B,EAAOn2B,MAAQc,GAAKq1B,EAAOl2B,SACzCs2B,GAASx1B,GAAKo1B,EAAOj2B,KAAOa,GAAKo1B,EAAOh2B,QAzH9CulB,EAAcR,KAAK,SAAU,CAC5BtlB,SAAU,CACT42B,UAAW,CACV30B,gBAAiBuzB,GACjBrzB,YAAaqzB,GACb90B,cAAe,SACfI,YAAa,MAsHhB,IAAI+1B,GAAoBvM,GAAapL,OAAO,CAC3C2K,MAAO,YAEP1pB,KAAM,WACL,IAAIb,EAAME,KAAKmB,OAAOrB,IAClBsB,EAAKpB,KAAKqB,MACVi2B,EAAQR,GAAc11B,GACtB61B,EAAQK,EAAML,MACdxE,EAAQ6E,EAAM7E,MAElB3yB,EAAI0C,UAAYpB,EAAGqB,gBACnB3C,EAAIy3B,SAASN,EAAMv1B,EAAGu1B,EAAMt1B,EAAGs1B,EAAMrlB,EAAGqlB,EAAMjwB,GAE1CiwB,EAAMrlB,IAAM6gB,EAAM7gB,GAAKqlB,EAAMjwB,IAAMyrB,EAAMzrB,IAI7ClH,EAAIukB,OACJvkB,EAAIyC,YACJzC,EAAIgkB,KAAKmT,EAAMv1B,EAAGu1B,EAAMt1B,EAAGs1B,EAAMrlB,EAAGqlB,EAAMjwB,GAC1ClH,EAAIilB,OACJjlB,EAAI0C,UAAYpB,EAAGuB,YACnB7C,EAAIgkB,KAAK2O,EAAM/wB,EAAG+wB,EAAM9wB,EAAG8wB,EAAM7gB,EAAG6gB,EAAMzrB,GAC1ClH,EAAI4D,KAAK,WACT5D,EAAI0kB,YAGL5iB,OAAQ,WACP,IAAIR,EAAKpB,KAAKqB,MACd,OAAOD,EAAGK,KAAOL,EAAGO,GAGrBuxB,QAAS,SAASF,EAAQyC,GACzB,OAAOvC,GAAQlzB,KAAKqB,MAAO2xB,EAAQyC,IAGpC1C,aAAc,SAASC,EAAQyC,GAC9B,IAAIr0B,EAAKpB,KAAKqB,MACd,OAAO40B,GAAW70B,GACf8xB,GAAQ9xB,EAAI4xB,EAAQ,MACpBE,GAAQ9xB,EAAI,KAAMq0B,IAGtBG,SAAU,SAAS5C,GAClB,OAAOE,GAAQlzB,KAAKqB,MAAO2xB,EAAQ,OAGpC6C,SAAU,SAASJ,GAClB,OAAOvC,GAAQlzB,KAAKqB,MAAO,KAAMo0B,IAGlC/B,eAAgB,WACf,IACIhyB,EAAGC,EADHP,EAAKpB,KAAKqB,MAUd,OARI40B,GAAW70B,IACdM,EAAIN,EAAGM,EACPC,GAAKP,EAAGO,EAAIP,EAAGK,MAAQ,IAEvBC,GAAKN,EAAGM,EAAIN,EAAGK,MAAQ,EACvBE,EAAIP,EAAGO,GAGD,CAACD,EAAGA,EAAGC,EAAGA,IAGlBkyB,QAAS,WACR,IAAIzyB,EAAKpB,KAAKqB,MAEd,OAAO40B,GAAW70B,GACfA,EAAGS,MAAQE,KAAKE,IAAIb,EAAGO,EAAIP,EAAGK,MAC9BL,EAAGQ,OAASG,KAAKE,IAAIb,EAAGM,EAAIN,EAAGK,OAGnCkpB,gBAAiB,WAChB,IAAIvpB,EAAKpB,KAAKqB,MACd,MAAO,CACNK,EAAGN,EAAGM,EACNC,EAAGP,EAAGO,MAKLnB,GAAW,GACXg3B,GAAM1E,GACNtlB,GAAOgnB,GACPiD,GAAQ9B,GACRl1B,GAAY42B,GAChB72B,GAASg3B,IAAMA,GACfh3B,GAASgN,KAAOA,GAChBhN,GAASi3B,MAAQA,GACjBj3B,GAASC,UAAYA,GAErB,IAAIi3B,GAAanO,GAAUlJ,YACvBsX,GAAmBpO,GAAUtL,eAmCjC,SAAS2Z,GAAqBrf,EAAOsf,GACpC,IACIzG,EAAM0G,EAAMz0B,EAAGwb,EADf7c,EAAMuW,EAAMwf,QAGhB,IAAK10B,EAAI,EAAGwb,EAAOgZ,EAAO/sB,OAAQzH,EAAIwb,IAAQxb,EAC7CrB,EAAMD,KAAKC,IAAIA,EAAKD,KAAKE,IAAI41B,EAAOx0B,GAAKw0B,EAAOx0B,EAAI,KAGrD,IAAKA,EAAI,EAAGwb,EAAOtG,EAAMyf,WAAWltB,OAAQzH,EAAIwb,IAAQxb,EACvDy0B,EAAOvf,EAAM0f,gBAAgB50B,GAC7BrB,EAAMqB,EAAI,EAAItB,KAAKC,IAAIA,EAAKD,KAAKE,IAAI61B,EAAO1G,IAASpvB,EACrDovB,EAAO0G,EAGR,OAAO91B,EASR,SAASk2B,GAAyBh1B,EAAOi1B,EAAOpyB,GAC/C,IAMIoe,EAAMjR,EANNklB,EAAYryB,EAAQsyB,aACpB7G,EAAQ2G,EAAMG,WACdR,EAAOK,EAAMN,OAAO30B,GACpBlB,EAAMunB,GAAU3L,cAAcwa,GAC/BR,GAAqBO,EAAM5f,MAAO4f,EAAMN,SACvC,EAcJ,OAXItO,GAAU3L,cAAcwa,IAC3BjU,EAAOniB,EAAM+D,EAAQwyB,mBACrBrlB,EAAQnN,EAAQyyB,gBAKhBrU,EAAOiU,EAAY5G,EACnBte,EAAQ,GAGF,CACNulB,MAAOtU,EAAOqN,EACdte,MAAOA,EACPyW,MAAOmO,EAAQ3T,EAAO,GAUxB,SAASuU,GAA0Bx1B,EAAOi1B,EAAOpyB,GAChD,IAKI4jB,EAAOxF,EALP0T,EAASM,EAAMN,OACfC,EAAOD,EAAO30B,GACdkuB,EAAOluB,EAAQ,EAAI20B,EAAO30B,EAAQ,GAAK,KACvCy1B,EAAOz1B,EAAQ20B,EAAO/sB,OAAS,EAAI+sB,EAAO30B,EAAQ,GAAK,KACvD01B,EAAU7yB,EAAQwyB,mBAiBtB,OAda,OAATnH,IAGHA,EAAO0G,GAAiB,OAATa,EAAgBR,EAAMU,IAAMV,EAAMxO,MAAQgP,EAAOb,IAGpD,OAATa,IAEHA,EAAOb,EAAOA,EAAO1G,GAGtBzH,EAAQmO,GAAQA,EAAO/1B,KAAKC,IAAIovB,EAAMuH,IAAS,EAAIC,EACnDzU,EAAOpiB,KAAKE,IAAI02B,EAAOvH,GAAQ,EAAIwH,EAE5B,CACNH,MAAOtU,EAAOgU,EAAMG,WACpBplB,MAAOnN,EAAQyyB,cACf7O,MAAOA,GAlHTrD,EAAcR,KAAK,MAAO,CACzBoK,MAAO,CACN4I,KAAM,SAGP/K,OAAQ,CACPI,MAAO,CAAC,CACPzuB,KAAM,WACNq5B,QAAQ,EACRC,UAAW,CACVC,iBAAiB,KAInB5K,MAAO,CAAC,CACP3uB,KAAM,cAKT4mB,EAAcR,KAAK,SAAU,CAC5Bzb,SAAU,CACT6uB,IAAK,CACJX,mBAAoB,GACpBC,cAAe,OA8FlB,IAAIW,GAAiBpH,GAAuBrS,OAAO,CAElD6N,gBAAiB/sB,GAASC,UAK1BgtB,oBAAqB,CACpB,kBACA,cACA,gBACA,cACA,gBACA,eACA,qBACA,kBACA,gBAGDrD,WAAY,WACX,IACI0D,EAAMsL,EADNpZ,EAAKhgB,KAGT+xB,GAAuBrxB,UAAU0pB,WAAW9L,MAAM0B,EAAInM,WAEtDia,EAAO9N,EAAG4N,UACVE,EAAKuL,MAAQrZ,EAAGgO,aAAaqL,MAC7BvL,EAAKoL,KAAM,EAEXE,EAAYpZ,EAAG4O,iBAAiB7oB,QAChC2xB,GAAW,YAAa0B,EAAUZ,cAAe,iCAAkC,yBACnFd,GAAW,YAAa0B,EAAUf,aAAc,gCAAiC,wBACjFX,GAAW,YAAa0B,EAAUb,mBAAoB,sCAAuC,8BAC7Fb,GAAW,YAAa1X,EAAG2O,iBAAiB5oB,QAAQuzB,aAAc,gCAAiC,wBACnG5B,GAAW,YAAa0B,EAAUG,gBAAiB,mCAAoC,4BAGxF3tB,OAAQ,SAASijB,GAChB,IAEIxrB,EAAGwb,EAFHmB,EAAKhgB,KACLs3B,EAAQtX,EAAG4N,UAAU/tB,KAKzB,IAFAmgB,EAAGwZ,OAASxZ,EAAGyZ,WAEVp2B,EAAI,EAAGwb,EAAOyY,EAAMxsB,OAAQzH,EAAIwb,IAAQxb,EAC5C2c,EAAGuP,cAAc+H,EAAMj0B,GAAIA,EAAGwrB,IAIhCU,cAAe,SAAS6H,EAAWl0B,EAAO2rB,GACzC,IAAI7O,EAAKhgB,KACL8tB,EAAO9N,EAAG4N,UACVrjB,EAAUyV,EAAGgO,aACbjoB,EAAUia,EAAGiQ,2BAA2BmH,EAAWl0B,GAEvDk0B,EAAUsC,QAAU1Z,EAAGuO,cAAcT,EAAKI,SAC1CkJ,EAAUuC,QAAU3Z,EAAGuO,cAAcT,EAAKM,SAC1CgJ,EAAUnI,cAAgBjP,EAAG9c,MAC7Bk0B,EAAUjI,OAASjsB,EACnBk0B,EAAU5M,OAAS,CAClB/nB,gBAAiBsD,EAAQtD,gBACzBE,YAAaoD,EAAQpD,YACrBzB,cAAe6E,EAAQ7E,cACvBI,YAAayE,EAAQzE,YACrBs4B,aAAcrvB,EAAQC,MACtBA,MAAOwV,EAAG9V,MAAMrK,KAAK2L,OAAOtI,IAGzBqmB,GAAU1L,QAAQtT,EAAQ1K,KAAKqD,MAClCk0B,EAAU5M,OAAOtpB,cAAgB,MAGlC8e,EAAG6Z,uBAAuBzC,EAAWl0B,EAAO2rB,EAAO9oB,GAEnDqxB,EAAU7M,SAMXsP,uBAAwB,SAASzC,EAAWl0B,EAAO2rB,EAAO9oB,GACzD,IAAIia,EAAKhgB,KACL8Q,EAAQsmB,EAAU5M,OAClBsP,EAAS9Z,EAAG2O,iBACZltB,EAAOq4B,EAAOC,eACdv4B,EAAas4B,EAAOE,eACpB7B,EAAQnY,EAAGwZ,QAAUxZ,EAAGyZ,WACxBQ,EAAUja,EAAGka,wBAAwBla,EAAG9c,MAAOA,EAAO6C,GACtDo0B,EAAUna,EAAGoa,wBAAwBpa,EAAG9c,MAAOA,EAAOi1B,EAAOpyB,GAEjE+K,EAAMtP,WAAaA,EACnBsP,EAAMrP,KAAOotB,EAAQptB,EAAOw4B,EAAQx4B,KACpCqP,EAAMpP,EAAIF,EAAaqtB,EAAQptB,EAAOw4B,EAAQI,KAAOF,EAAQG,OAC7DxpB,EAAMnP,EAAIH,EAAa24B,EAAQG,OAASzL,EAAQptB,EAAOw4B,EAAQI,KAC/DvpB,EAAMlP,OAASJ,EAAa24B,EAAQhW,UAAOxN,EAC3C7F,EAAMjP,MAAQL,OAAamV,EAAYwjB,EAAQhW,MAShDoW,WAAY,SAASC,GACpB,IAMIn3B,EAAGyqB,EANH9N,EAAKhgB,KACLuY,EAAQyH,EAAG4O,iBACX6L,EAAWliB,EAAMmiB,yBAAyB1a,EAAGqK,OAC7CsQ,EAAUpiB,EAAMxS,QAAQ40B,QACxB9b,EAAO4b,EAAS3vB,OAChB8vB,EAAS,GAGb,IAAKv3B,EAAI,EAAGA,EAAIwb,IAAQxb,EAWvB,GAVAyqB,EAAO2M,EAASp3B,KAMA,IAAZs3B,IAAqD,IAAhCC,EAAO53B,QAAQ8qB,EAAKuL,aAC/B1iB,IAAZgkB,QAAwChkB,IAAfmX,EAAKuL,QAC/BuB,EAAO3tB,KAAK6gB,EAAKuL,OAEdvL,EAAK5qB,QAAUs3B,EAClB,MAIF,OAAOI,GAORC,cAAe,WACd,OAAO76B,KAAKu6B,aAAazvB,QAU1BgwB,cAAe,SAASzN,EAAcnuB,GACrC,IAAI07B,EAAS56B,KAAKu6B,WAAWlN,GACzBnqB,OAAkByT,IAATzX,EACV07B,EAAO53B,QAAQ9D,IACd,EAEJ,OAAmB,IAAXgE,EACL03B,EAAO9vB,OAAS,EAChB5H,GAMJu2B,SAAU,WACT,IAGIp2B,EAAGwb,EAHHmB,EAAKhgB,KACLuY,EAAQyH,EAAG4O,iBACXiJ,EAAS,GAGb,IAAKx0B,EAAI,EAAGwb,EAAOmB,EAAG4N,UAAU/tB,KAAKiL,OAAQzH,EAAIwb,IAAQxb,EACxDw0B,EAAO5qB,KAAKsL,EAAMwiB,iBAAiB,KAAM13B,EAAG2c,EAAG9c,QAGhD,MAAO,CACN20B,OAAQA,EACRlO,MAAOpR,EAAMyiB,YACbnC,IAAKtgB,EAAM0iB,UACX3C,WAAYtY,EAAG6a,gBACftiB,MAAOA,IAQT2hB,wBAAyB,SAAS7M,EAAcnqB,EAAO6C,GACtD,IAaI1C,EAAG63B,EAAOC,EAAQ15B,EAAM44B,EAAMlW,EAAMiX,EAbpCpb,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MACXqO,EAAQyH,EAAG2O,iBACXqL,EAAezhB,EAAMyhB,eACrB3vB,EAAWH,EAAMrK,KAAKwK,SACtBowB,EAAWliB,EAAMmiB,yBAAyB1a,EAAGqK,OAC7CxiB,EAAQ0Q,EAAM8iB,YAAYhxB,EAASgjB,GAAcxtB,KAAKqD,IACtDo2B,EAAevzB,EAAQuzB,aACvBqB,EAAUpiB,EAAMxS,QAAQ40B,QACxBtB,EAAQrZ,EAAG4N,UAAUyL,MACrB1P,OAAwBhT,IAAhB9O,EAAM8hB,MAAsB,EAAI9hB,EAAMuJ,KAAO,GAAKvJ,EAAM7F,KAAO,EAAI6F,EAAM7F,IAAM6F,EAAMuJ,IAC7FtG,OAAyB6L,IAAhB9O,EAAM8hB,MAAsB9hB,EAAMgxB,IAAMhxB,EAAMuJ,KAAO,GAAKvJ,EAAM7F,KAAO,EAAI6F,EAAMuJ,IAAMvJ,EAAM7F,IAAM6F,EAAM7F,IAAM6F,EAAMuJ,IAC9HyN,EAAO4b,EAAS3vB,OAGpB,GAAI6vB,QAAwBhkB,IAAZgkB,QAAmChkB,IAAV0iB,EACxC,IAAKh2B,EAAI,EAAGA,EAAIwb,IAAQxb,EAAG,CAG1B,GAFA63B,EAAQT,EAASp3B,GAEb63B,EAAMh4B,QAAUmqB,EACnB,MAGG6N,EAAM7B,QAAUA,IACnB+B,EAAc7iB,EAAM8iB,YAAYhxB,EAAS6wB,EAAMh4B,OAAOrD,KAAKqD,IAC3Di4B,OAA+BxkB,IAAtBykB,EAAYzR,MAAsByR,EAAYvC,IAAMuC,EAAYp5B,KAAO,GAAKo5B,EAAYhqB,KAAO,EAAIgqB,EAAYhqB,IAAMgqB,EAAYp5B,KAErI6F,EAAM7F,IAAM,GAAKm5B,EAAS,GAAOtzB,EAAMuJ,KAAO,GAAK+pB,EAAS,KAChExR,GAASwR,IAmBb,OAbA15B,EAAO8W,EAAMwiB,iBAAiBpR,GAC9B0Q,EAAO9hB,EAAMwiB,iBAAiBpR,EAAQ7e,GACtCqZ,EAAOkW,EAAO54B,OAEOkV,IAAjB2iB,GAA8Bv3B,KAAKE,IAAIkiB,GAAQmV,IAClDnV,EAAOmV,EAENe,EADGvvB,GAAU,IAAMkvB,GAAgBlvB,EAAS,GAAKkvB,EAC1Cv4B,EAAO63B,EAEP73B,EAAO63B,GAIT,CACNnV,KAAMA,EACN1iB,KAAMA,EACN44B,KAAMA,EACNC,OAAQD,EAAOlW,EAAO,IAOxBiW,wBAAyB,SAAS/M,EAAcnqB,EAAOi1B,EAAOpyB,GAC7D,IAAIia,EAAKhgB,KACLs7B,EAAiC,SAAzBv1B,EAAQsyB,aACjBK,GAA0Bx1B,EAAOi1B,EAAOpyB,GACxCmyB,GAAyBh1B,EAAOi1B,EAAOpyB,GAEtCw1B,EAAavb,EAAG8a,cAAczN,EAAcrN,EAAG4N,UAAUyL,OACzDiB,EAASgB,EAAM3R,MAAS2R,EAAM7C,MAAQ8C,EAAeD,EAAM7C,MAAQ,EACnEtU,EAAOpiB,KAAKC,IACf21B,GAAiB5xB,EAAQwzB,gBAAiBtnB,KAC1CqpB,EAAM7C,MAAQ6C,EAAMpoB,OAErB,MAAO,CACNzR,KAAM64B,EAASnW,EAAO,EACtBkW,KAAMC,EAASnW,EAAO,EACtBmW,OAAQA,EACRnW,KAAMA,IAIRxjB,KAAM,WACL,IAAIqf,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MACXqO,EAAQyH,EAAG2O,iBACX2I,EAAQtX,EAAG4N,UAAU/tB,KACrB0K,EAAUyV,EAAGgO,aACbnP,EAAOyY,EAAMxsB,OACbzH,EAAI,EAIR,IAFAkmB,GAAUnc,OAAO0X,SAAS5a,EAAMpK,IAAKoK,EAAM6rB,WAEpC1yB,EAAIwb,IAAQxb,EAAG,CACrB,IAAIwL,EAAM0J,EAAM8iB,YAAY9wB,EAAQ1K,KAAKwD,IACpCoV,MAAM5J,EAAI7M,MAASyW,MAAM5J,EAAIuC,MACjCkmB,EAAMj0B,GAAG1C,OAIX4oB,GAAUnc,OAAO4X,WAAW9a,EAAMpK,MAMnCmwB,2BAA4B,WAC3B,IAAIjQ,EAAKhgB,KACLkZ,EAASqQ,GAAU7J,OAAO,GAAIqS,GAAuBrxB,UAAUuvB,2BAA2B3R,MAAM0B,EAAInM,YACpG2nB,EAAYxb,EAAG4O,iBAAiB7oB,QAChC01B,EAAYzb,EAAG2O,iBAAiB5oB,QAQpC,OANAmT,EAAOsf,cAAgBb,GAAiB6D,EAAUhD,cAAetf,EAAOsf,eACxEtf,EAAOmf,aAAeV,GAAiB6D,EAAUnD,aAAcnf,EAAOmf,cACtEnf,EAAOqf,mBAAqBZ,GAAiB6D,EAAUjD,mBAAoBrf,EAAOqf,oBAClFrf,EAAOqgB,gBAAkB5B,GAAiB6D,EAAUjC,gBAAiBrgB,EAAOqgB,iBAC5ErgB,EAAOogB,aAAe3B,GAAiB8D,EAAUnC,aAAcpgB,EAAOogB,cAE/DpgB,KAKLwiB,GAAmBnS,GAAUtL,eAC7B0d,GAAYpS,GAAUxjB,QAAQqhB,QAElCd,EAAcR,KAAK,SAAU,CAC5BoK,MAAO,CACN4I,KAAM,UAGP/K,OAAQ,CACPI,MAAO,CAAC,CACPzuB,KAAM,SACNk8B,SAAU,SACVpvB,GAAI,aAEL6hB,MAAO,CAAC,CACP3uB,KAAM,SACNk8B,SAAU,OACVpvB,GAAI,cAINqvB,SAAU,CACTC,UAAW,CACVC,MAAO,WAEN,MAAO,IAERvxB,MAAO,SAASoW,EAAM/gB,GACrB,IAAI+5B,EAAe/5B,EAAKwK,SAASuW,EAAKyM,cAAc7iB,OAAS,GACzDwxB,EAAYn8B,EAAKwK,SAASuW,EAAKyM,cAAcxtB,KAAK+gB,EAAK1d,OAC3D,OAAO02B,EAAe,MAAQhZ,EAAKqb,OAAS,KAAOrb,EAAKsb,OAAS,KAAOF,EAAU/qB,EAAI,SAM1F,IAAIkrB,GAAoBpK,GAAuBrS,OAAO,CAIrD6N,gBAAiB/sB,GAASi3B,MAK1BhK,oBAAqB,CACpB,kBACA,cACA,cACA,uBACA,mBACA,mBACA,cACA,YACA,aACA,YAMD7hB,OAAQ,SAASijB,GAChB,IAAI7O,EAAKhgB,KACL8tB,EAAO9N,EAAG4N,UACV7f,EAAS+f,EAAKjuB,KAGlB0pB,GAAUhL,KAAKxQ,GAAQ,SAAS4W,EAAOzhB,GACtC8c,EAAGuP,cAAc5K,EAAOzhB,EAAO2rB,OAOjCU,cAAe,SAAS5K,EAAOzhB,EAAO2rB,GACrC,IAAI7O,EAAKhgB,KACL8tB,EAAO9N,EAAG4N,UACVyC,EAAS1L,EAAM0L,QAAU,GACzB+L,EAASpc,EAAGuO,cAAcT,EAAKI,SAC/BmO,EAASrc,EAAGuO,cAAcT,EAAKM,SAC/BroB,EAAUia,EAAGiQ,2BAA2BtL,EAAOzhB,GAC/CrD,EAAOmgB,EAAGgO,aAAanuB,KAAKqD,GAC5Bo5B,EAAUtc,EAAG9c,MAEbxB,EAAImtB,EAAQuN,EAAOG,mBAAmB,IAAOH,EAAOrB,iBAAiC,kBAATl7B,EAAoBA,EAAO28B,IAAKt5B,EAAOo5B,GACnH36B,EAAIktB,EAAQwN,EAAOtC,eAAiBsC,EAAOtB,iBAAiBl7B,EAAMqD,EAAOo5B,GAE7E3X,EAAM+U,QAAU0C,EAChBzX,EAAMgV,QAAU0C,EAChB1X,EAAM8X,SAAW12B,EACjB4e,EAAMsK,cAAgBqN,EACtB3X,EAAMwK,OAASjsB,EACfyhB,EAAM6F,OAAS,CACd/nB,gBAAiBsD,EAAQtD,gBACzBE,YAAaoD,EAAQpD,YACrBrB,YAAayE,EAAQzE,YACrBi0B,UAAWxvB,EAAQwvB,UACnBG,WAAY3vB,EAAQ2vB,WACpB1R,SAAUje,EAAQie,SAClBzgB,OAAQsrB,EAAQ,EAAI9oB,EAAQxC,OAC5ByxB,KAAM3E,EAAO2E,MAAQvc,MAAM/W,IAAM+W,MAAM9W,GACvCD,EAAGA,EACHC,EAAGA,GAGJgjB,EAAM4F,SAMPqG,cAAe,SAASjM,GACvB,IAAI7T,EAAQ6T,EAAM6F,OACdzkB,EAAU4e,EAAM8X,SAChB5L,EAAgBtH,GAAUsH,cAE9BlM,EAAMgM,eAAiB,CACtBluB,gBAAiBqO,EAAMrO,gBACvBE,YAAamO,EAAMnO,YACnBrB,YAAawP,EAAMxP,YACnBiC,OAAQuN,EAAMvN,QAGfuN,EAAMrO,gBAAkBi5B,GAAiB31B,EAAQ+qB,qBAAsBD,EAAc9qB,EAAQtD,kBAC7FqO,EAAMnO,YAAc+4B,GAAiB31B,EAAQgrB,iBAAkBF,EAAc9qB,EAAQpD,cACrFmO,EAAMxP,YAAco6B,GAAiB31B,EAAQirB,iBAAkBjrB,EAAQzE,aACvEwP,EAAMvN,OAASwC,EAAQxC,OAASwC,EAAQktB,aAMzChD,2BAA4B,SAAStL,EAAOzhB,GAC3C,IAAI8c,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MACXK,EAAUyV,EAAGgO,aACbqC,EAAS1L,EAAM0L,QAAU,GACzBxwB,EAAO0K,EAAQ1K,KAAKqD,IAAU,GAC9BgW,EAAS6Y,GAAuBrxB,UAAUuvB,2BAA2B3R,MAAM0B,EAAInM,WAG/ExN,EAAU,CACb6D,MAAOA,EACPsmB,UAAWttB,EACXqH,QAASA,EACT8iB,aAAcrN,EAAG9c,OAgBlB,OAZI8c,EAAG6P,kBAAoB3W,IAC1BA,EAASqQ,GAAU7J,OAAO,GAAIxG,IAI/BA,EAAO3V,OAASo4B,GAAU,CACzBtL,EAAO9sB,OACP1D,EAAKoR,EACL+O,EAAG4P,QAAQrsB,OACX2G,EAAMnE,QAAQvF,SAASmkB,MAAMphB,QAC3B8C,EAASnD,GAELgW,KAILwjB,GAAmBnT,GAAUtL,eAE7B0e,GAAO56B,KAAKyR,GACZopB,GAAqB,EAAPD,GACdE,GAAYF,GAAO,EAEvBrW,EAAcR,KAAK,WAAY,CAC9BwF,UAAW,CAEVwR,eAAe,EAEfC,cAAc,GAEf7M,MAAO,CACN4I,KAAM,UAEPkE,eAAgB,SAAS9yB,GACxB,IAII7G,EAAGwb,EAAMoe,EAAUC,EAJnBC,EAAOC,SAAShxB,cAAc,MAC9BvM,EAAOqK,EAAMrK,KACbwK,EAAWxK,EAAKwK,SAChBmB,EAAS3L,EAAK2L,OAIlB,GADA2xB,EAAKE,aAAa,QAASnzB,EAAMsC,GAAK,WAClCnC,EAASS,OACZ,IAAKzH,EAAI,EAAGwb,EAAOxU,EAAS,GAAGxK,KAAKiL,OAAQzH,EAAIwb,IAAQxb,EACvD45B,EAAWE,EAAKG,YAAYF,SAAShxB,cAAc,OACnD8wB,EAAeD,EAASK,YAAYF,SAAShxB,cAAc,SAC3D8wB,EAAa7wB,MAAM5J,gBAAkB4H,EAAS,GAAG5H,gBAAgBY,GAC7DmI,EAAOnI,IACV45B,EAASK,YAAYF,SAASG,eAAe/xB,EAAOnI,KAKvD,OAAO85B,EAAKK,WAEbC,OAAQ,CACPjyB,OAAQ,CACPkyB,eAAgB,SAASxzB,GACxB,IAAIrK,EAAOqK,EAAMrK,KACjB,OAAIA,EAAK2L,OAAOV,QAAUjL,EAAKwK,SAASS,OAChCjL,EAAK2L,OAAOlB,KAAI,SAASE,EAAOnH,GACtC,IAAIyqB,EAAO5jB,EAAMokB,eAAe,GAC5BjiB,EAAQyhB,EAAK6P,WAAW5N,SAAS1sB,GAErC,MAAO,CACN0L,KAAMvE,EACNhI,UAAW6J,EAAM5J,gBACjBC,YAAa2J,EAAM1J,YACnBC,UAAWyJ,EAAM/K,YACjBgpB,OAAQ7R,MAAM5Y,EAAKwK,SAAS,GAAGxK,KAAKwD,KAAOyqB,EAAKjuB,KAAKwD,GAAGinB,OAGxDpnB,MAAOG,MAIH,KAITu6B,QAAS,SAAS30B,EAAG40B,GACpB,IAEIx6B,EAAGwb,EAAMiP,EAFT5qB,EAAQ26B,EAAW36B,MACnBgH,EAAQlK,KAAKkK,MAGjB,IAAK7G,EAAI,EAAGwb,GAAQ3U,EAAMrK,KAAKwK,UAAY,IAAIS,OAAQzH,EAAIwb,IAAQxb,EAClEyqB,EAAO5jB,EAAMokB,eAAejrB,GAExByqB,EAAKjuB,KAAKqD,KACb4qB,EAAKjuB,KAAKqD,GAAOonB,QAAUwD,EAAKjuB,KAAKqD,GAAOonB,QAI9CpgB,EAAM0B,WAKRkyB,iBAAkB,GAGlB9Z,UAAW6Y,GAGX7I,cAAe4I,GAGff,SAAU,CACTC,UAAW,CACVC,MAAO,WACN,MAAO,IAERvxB,MAAO,SAASuzB,EAAal+B,GAC5B,IAAIm+B,EAAYn+B,EAAK2L,OAAOuyB,EAAY76B,OACpC2E,EAAQ,KAAOhI,EAAKwK,SAAS0zB,EAAY1Q,cAAcxtB,KAAKk+B,EAAY76B,OAW5E,OATIqmB,GAAU1L,QAAQmgB,IAGrBA,EAAYA,EAAUpnB,QACtBonB,EAAU,IAAMn2B,GAEhBm2B,GAAan2B,EAGPm2B,OAMX,IAAIC,GAAsBlM,GAAuBrS,OAAO,CAEvD6N,gBAAiB/sB,GAASg3B,IAE1B9J,WAAYnE,GAAU7L,KAKtB+P,oBAAqB,CACpB,kBACA,cACA,cACA,cACA,uBACA,mBACA,oBAIDyQ,aAAc,SAAS7Q,GAGtB,IAFA,IAAI8Q,EAAY,EAEPC,EAAI,EAAGA,EAAI/Q,IAAgB+Q,EAC/Bp+B,KAAKkK,MAAMm0B,iBAAiBD,MAC7BD,EAIJ,OAAOA,GAGRvyB,OAAQ,SAASijB,GAChB,IAaIyP,EAAUC,EAAWl7B,EAAGwb,EAbxBmB,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MACX6rB,EAAY7rB,EAAM6rB,UAClByI,EAAOt0B,EAAMnE,QACb04B,EAAS,EACTC,EAAS,EACTC,EAAU,EACVC,EAAU,EACV9Q,EAAO9N,EAAG4N,UACViR,EAAO/Q,EAAKjuB,KACZi/B,EAASN,EAAKV,iBAAmB,KAAO,EACxC9J,EAAgBwK,EAAKxK,cACrB+K,EAAc/e,EAAGgf,eAAehf,EAAG9c,OAIvC,GAAI8wB,EAAgB4I,GAAa,CAChC,IAAI1K,EAAasM,EAAKxa,SAAW4Y,GACjC1K,GAAcA,GAAcyK,IAAQC,GAAc1K,GAAcyK,GAAOC,GAAc,EACrF,IAAIzK,EAAWD,EAAa8B,EACxBiL,EAASl9B,KAAK2R,IAAIwe,GAClBgN,EAASn9B,KAAK4R,IAAIue,GAClBiN,EAAOp9B,KAAK2R,IAAIye,GAChBiN,EAAOr9B,KAAK4R,IAAIwe,GAChBkN,EAAanN,GAAc,GAAKC,GAAY,GAAMA,GAAYyK,GAC9D0C,EAAcpN,GAAc2K,IAAa1K,GAAY0K,IAAc1K,GAAYyK,GAAcC,GAC7F0C,EAAcrN,KAAgByK,IAAQxK,GAAYwK,GAClD6C,EAAetN,IAAe2K,IAAa1K,IAAa0K,IAAc1K,GAAYwK,GAAOE,GACzF4C,EAAOF,GAAe,EAAIx9B,KAAKC,IAAIi9B,EAAQA,EAASH,EAAQK,EAAMA,EAAOL,GACzEY,EAAOF,GAAe,EAAIz9B,KAAKC,IAAIk9B,EAAQA,EAASJ,EAAQM,EAAMA,EAAON,GACzEa,EAAON,EAAY,EAAIt9B,KAAKqP,IAAI6tB,EAAQA,EAASH,EAAQK,EAAMA,EAAOL,GACtEc,EAAON,EAAa,EAAIv9B,KAAKqP,IAAI8tB,EAAQA,EAASJ,EAAQM,EAAMA,EAAON,GAC3EL,GAAUkB,EAAOF,GAAQ,EACzBf,GAAUkB,EAAOF,GAAQ,EACzBf,IAAYgB,EAAOF,GAAQ,EAC3Bb,IAAYgB,EAAOF,GAAQ,EAG5B,IAAKr8B,EAAI,EAAGwb,EAAOggB,EAAK/zB,OAAQzH,EAAIwb,IAAQxb,EAC3Cw7B,EAAKx7B,GAAGo5B,SAAWzc,EAAGiQ,2BAA2B4O,EAAKx7B,GAAIA,GAiB3D,IAdA6G,EAAM5I,YAAc0e,EAAG6f,oBACvBvB,GAAYvI,EAAUl1B,MAAQk1B,EAAUn1B,KAAOsJ,EAAM5I,aAAem9B,EACpEF,GAAaxI,EAAUh1B,OAASg1B,EAAUj1B,IAAMoJ,EAAM5I,aAAeo9B,EACrEx0B,EAAMooB,YAAcvwB,KAAKqP,IAAIrP,KAAKC,IAAIs8B,EAAUC,GAAa,EAAG,GAChEr0B,EAAMqoB,YAAcxwB,KAAKqP,IAAIlH,EAAMooB,YAAcwM,EAAQ,GACzD50B,EAAM41B,cAAgB51B,EAAMooB,YAAcpoB,EAAMqoB,cAAgBvS,EAAG+f,iCAAmC,GACtG71B,EAAMy0B,QAAUA,EAAUz0B,EAAMooB,YAChCpoB,EAAM00B,QAAUA,EAAU10B,EAAMooB,YAEhCxE,EAAKkS,MAAQhgB,EAAGigB,iBAEhBjgB,EAAGsS,YAAcpoB,EAAMooB,YAAcpoB,EAAM41B,aAAe9f,EAAGkgB,qBAAqBlgB,EAAG9c,OACrF8c,EAAGuS,YAAcxwB,KAAKqP,IAAI4O,EAAGsS,YAAcpoB,EAAM41B,aAAef,EAAa,GAExE17B,EAAI,EAAGwb,EAAOggB,EAAK/zB,OAAQzH,EAAIwb,IAAQxb,EAC3C2c,EAAGuP,cAAcsP,EAAKx7B,GAAIA,EAAGwrB,IAI/BU,cAAe,SAAS3L,EAAK1gB,EAAO2rB,GACnC,IAAI7O,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MACX6rB,EAAY7rB,EAAM6rB,UAClByI,EAAOt0B,EAAMnE,QACbo6B,EAAgB3B,EAAKlT,UACrB8U,GAAWrK,EAAUn1B,KAAOm1B,EAAUl1B,OAAS,EAC/Cw/B,GAAWtK,EAAUj1B,IAAMi1B,EAAUh1B,QAAU,EAC/CmxB,EAAasM,EAAKxa,SAClBmO,EAAWqM,EAAKxa,SAChBzZ,EAAUyV,EAAGgO,aACbgG,EAAgBnF,GAASsR,EAAcrD,eAAoBlZ,EAAI0G,OAAR,EAAqBtK,EAAGsgB,uBAAuB/1B,EAAQ1K,KAAKqD,KAAWs7B,EAAKxK,cAAgB4I,IACnJrK,EAAc1D,GAASsR,EAAcpD,aAAe,EAAI/c,EAAGuS,YAC3DD,EAAczD,GAASsR,EAAcpD,aAAe,EAAI/c,EAAGsS,YAC3DvsB,EAAU6d,EAAI6Y,UAAY,GAE9BlT,GAAU7J,OAAOkE,EAAK,CAErBqL,cAAejP,EAAG9c,MAClBisB,OAAQjsB,EAGRsnB,OAAQ,CACP/nB,gBAAiBsD,EAAQtD,gBACzBE,YAAaoD,EAAQpD,YACrBrB,YAAayE,EAAQzE,YACrBsxB,YAAa7sB,EAAQ6sB,YACrBlxB,EAAG0+B,EAAUl2B,EAAMy0B,QACnBh9B,EAAG0+B,EAAUn2B,EAAM00B,QACnB1M,WAAYA,EACZC,SAAUA,EACV6B,cAAeA,EACf1B,YAAaA,EACbC,YAAaA,EACb/nB,MAAO+e,GAAUpL,sBAAsB5T,EAAQC,MAAOtH,EAAOgH,EAAMrK,KAAK2L,OAAOtI,OAIjF,IAAI4N,EAAQ8S,EAAI4G,OAGXqE,GAAUsR,EAAcrD,gBAE3BhsB,EAAMohB,WADO,IAAVhvB,EACgBs7B,EAAKxa,SAELhE,EAAG4N,UAAU/tB,KAAKqD,EAAQ,GAAGsnB,OAAO2H,SAGxDrhB,EAAMqhB,SAAWrhB,EAAMohB,WAAaphB,EAAMkjB,eAG3CpQ,EAAI2G,SAGL0V,eAAgB,WACf,IAGIp4B,EAHA0C,EAAUvK,KAAKguB,aACfF,EAAO9tB,KAAK4tB,UACZoS,EAAQ,EAcZ,OAXAzW,GAAUhL,KAAKuP,EAAKjuB,MAAM,SAASyvB,EAASpsB,GAC3C2E,EAAQ0C,EAAQ1K,KAAKqD,GAChBuV,MAAM5Q,IAAWynB,EAAQhF,SAC7B0V,GAASj+B,KAAKE,IAAI4F,OAQbm4B,GAGRM,uBAAwB,SAASz4B,GAChC,IAAIm4B,EAAQhgC,KAAK4tB,UAAUoS,MAC3B,OAAIA,EAAQ,IAAMvnB,MAAM5Q,GAChB+0B,IAAe76B,KAAKE,IAAI4F,GAASm4B,GAElC,GAIRH,kBAAmB,SAAShB,GAC3B,IAGIx7B,EAAGwb,EAAMiP,EAAMlK,EAAK+Z,EAAY53B,EAASzE,EAAai/B,EAHtDvgB,EAAKhgB,KACLoR,EAAM,EACNlH,EAAQ8V,EAAG9V,MAGf,IAAK20B,EAEJ,IAAKx7B,EAAI,EAAGwb,EAAO3U,EAAMrK,KAAKwK,SAASS,OAAQzH,EAAIwb,IAAQxb,EAC1D,GAAI6G,EAAMm0B,iBAAiBh7B,GAAI,CAC9ByqB,EAAO5jB,EAAMokB,eAAejrB,GAC5Bw7B,EAAO/Q,EAAKjuB,KACRwD,IAAM2c,EAAG9c,QACZy6B,EAAa7P,EAAK6P,YAEnB,MAKH,IAAKkB,EACJ,OAAO,EAGR,IAAKx7B,EAAI,EAAGwb,EAAOggB,EAAK/zB,OAAQzH,EAAIwb,IAAQxb,EAC3CugB,EAAMib,EAAKx7B,GACPs6B,GACHA,EAAWhO,aACX5pB,EAAU43B,EAAW1N,2BAA2BrM,EAAKvgB,IAErD0C,EAAU6d,EAAI6Y,SAEa,UAAxB12B,EAAQ6sB,cACXtxB,EAAcyE,EAAQzE,YACtBi/B,EAAax6B,EAAQirB,iBAErB5f,EAAM9P,EAAc8P,EAAM9P,EAAc8P,EACxCA,EAAMmvB,EAAanvB,EAAMmvB,EAAanvB,GAGxC,OAAOA,GAMRwf,cAAe,SAAShN,GACvB,IAAI9S,EAAQ8S,EAAI4G,OACZzkB,EAAU6d,EAAI6Y,SACd5L,EAAgBtH,GAAUsH,cAE9BjN,EAAI+M,eAAiB,CACpBluB,gBAAiBqO,EAAMrO,gBACvBE,YAAamO,EAAMnO,YACnBrB,YAAawP,EAAMxP,aAGpBwP,EAAMrO,gBAAkBi6B,GAAiB32B,EAAQ+qB,qBAAsBD,EAAc9qB,EAAQtD,kBAC7FqO,EAAMnO,YAAc+5B,GAAiB32B,EAAQgrB,iBAAkBF,EAAc9qB,EAAQpD,cACrFmO,EAAMxP,YAAco7B,GAAiB32B,EAAQirB,iBAAkBjrB,EAAQzE,cAOxE4+B,qBAAsB,SAAS7S,GAG9B,IAFA,IAAImT,EAAmB,EAEdn9B,EAAI,EAAGA,EAAIgqB,IAAgBhqB,EAC/BrD,KAAKkK,MAAMm0B,iBAAiBh7B,KAC/Bm9B,GAAoBxgC,KAAKg/B,eAAe37B,IAI1C,OAAOm9B,GAMRxB,eAAgB,SAASyB,GACxB,OAAO1+B,KAAKqP,IAAIsrB,GAAiB18B,KAAKkK,MAAMrK,KAAKwK,SAASo2B,GAAcrkB,OAAQ,GAAI,IAOrF2jB,8BAA+B,WAC9B,OAAO//B,KAAKkgC,qBAAqBlgC,KAAKkK,MAAMrK,KAAKwK,SAASS,WAI5Dwb,EAAcR,KAAK,gBAAiB,CACnCoK,MAAO,CACN4I,KAAM,QACN4H,KAAM,KAGP3S,OAAQ,CACPI,MAAO,CAAC,CACPzuB,KAAM,SACNk8B,SAAU,WAGXvN,MAAO,CAAC,CACP3uB,KAAM,WACNk8B,SAAU,OACV7C,QAAQ,EACRC,UAAW,CACVC,iBAAiB,MAKpBz4B,SAAU,CACT42B,UAAW,CACVl2B,cAAe,SAIjB26B,SAAU,CACT/C,KAAM,QACN4H,KAAM,OAIRpa,EAAcR,KAAK,SAAU,CAC5Bzb,SAAU,CACTs2B,cAAe,CACdpI,mBAAoB,GACpBC,cAAe,OAKlB,IAAIoI,GAA2BzH,GAAezZ,OAAO,CAIpD+O,iBAAkB,WACjB,OAAOzuB,KAAK4tB,UAAUM,SAMvBQ,iBAAkB,WACjB,OAAO1uB,KAAK4tB,UAAUQ,WAIpByS,GAAmBtX,GAAUtL,eAC7B6iB,GAAYvX,GAAUxjB,QAAQqhB,QAC9B2Z,GAAgBxX,GAAUnc,OAAOsX,eAsBrC,SAASsc,GAAUzoB,EAAO0oB,GACzB,IAAIC,EAAW3oB,GAASA,EAAMxS,QAAQo7B,OAAS,GAC3C1iB,EAAUyiB,EAASziB,QACnBzc,OAAuB2U,IAAjBuqB,EAASl/B,IAAoBi/B,EAAkB,EACrD7vB,OAAuBuF,IAAjBuqB,EAAS9vB,IAAoB6vB,EAAkB,EACzD,MAAO,CACNtX,MAAOlL,EAAUrN,EAAMpP,EACvB62B,IAAKpa,EAAUzc,EAAMoP,GAIvB,SAASgwB,GAAYhF,EAAQC,EAAQ/6B,GACpC,IAAI2/B,EAAkB3/B,EAAc,EAChCI,EAAIs/B,GAAU5E,EAAQ6E,GACtBt/B,EAAIq/B,GAAU3E,EAAQ4E,GAE1B,MAAO,CACNngC,IAAKa,EAAEk3B,IACPh4B,MAAOa,EAAEm3B,IACT93B,OAAQY,EAAEgoB,MACV/oB,KAAMc,EAAEioB,OAIV,SAAS0X,GAAOx5B,GACf,IAAIgL,EAAG5B,EAAGE,EAAGhN,EAWb,OATIolB,GAAUxL,SAASlW,IACtBgL,EAAIhL,EAAM/G,IACVmQ,EAAIpJ,EAAMhH,MACVsQ,EAAItJ,EAAM9G,OACVoD,EAAI0D,EAAMjH,MAEViS,EAAI5B,EAAIE,EAAIhN,EAAI0D,EAGV,CACN/G,IAAK+R,EACLhS,MAAOoQ,EACPlQ,OAAQoQ,EACRvQ,KAAMuD,GA5DRmiB,EAAcR,KAAK,OAAQ,CAC1BO,WAAW,EACXqO,UAAU,EAEVxE,MAAO,CACN4I,KAAM,SAGP/K,OAAQ,CACPI,MAAO,CAAC,CACPzuB,KAAM,WACN8M,GAAI,aAEL6hB,MAAO,CAAC,CACP3uB,KAAM,SACN8M,GAAI,gBAkDP,IAAI80B,GAAkBvP,GAAuBrS,OAAO,CAEnD4N,mBAAoB9sB,GAASgN,KAE7B+f,gBAAiB/sB,GAASi3B,MAK1BjK,uBAAwB,CACvB,kBACA,iBACA,cACA,aACA,mBACA,kBACA,cACA,yBACA,QAMDC,oBAAqB,CACpBhrB,gBAAiB,uBACjBE,YAAa,mBACbrB,YAAa,mBACbi0B,UAAW,iBACXzE,qBAAsB,4BACtBC,iBAAkB,wBAClBC,iBAAkB,wBAClBiC,YAAa,mBACbyC,WAAY,aACZnyB,OAAQ,cACRygB,SAAU,iBAGXpY,OAAQ,SAASijB,GAChB,IAOIxrB,EAAGwb,EAPHmB,EAAKhgB,KACL8tB,EAAO9N,EAAG4N,UACVsG,EAAOpG,EAAKvjB,QACZwD,EAAS+f,EAAKjuB,MAAQ,GACtBkG,EAAUia,EAAG9V,MAAMnE,QACnBw7B,EAASvhB,EAAG4P,QACZ4R,EAAWxhB,EAAGyhB,UAAYZ,GAAiBU,EAAOC,SAAUz7B,EAAQsgB,WAyBxE,IAtBArG,EAAG0Z,QAAU1Z,EAAGuO,cAAcT,EAAKI,SACnClO,EAAG2Z,QAAU3Z,EAAGuO,cAAcT,EAAKM,SAG/BoT,SAEoB7qB,IAAnB4qB,EAAOlc,cAAgD1O,IAAvB4qB,EAAOG,cAC1CH,EAAOG,YAAcH,EAAOlc,SAI7B6O,EAAKyN,OAAS3hB,EAAG2Z,QACjBzF,EAAKjF,cAAgBjP,EAAG9c,MAExBgxB,EAAKS,UAAY5mB,EAEjBmmB,EAAK1J,OAASxK,EAAGgQ,8BAA8BkE,GAE/CA,EAAK3J,SAIDlnB,EAAI,EAAGwb,EAAO9Q,EAAOjD,OAAQzH,EAAIwb,IAAQxb,EAC7C2c,EAAGuP,cAAcxhB,EAAO1K,GAAIA,EAAGwrB,GAQhC,IALI2S,GAAoC,IAAxBtN,EAAK1J,OAAOnF,SAC3BrF,EAAG4hB,4BAICv+B,EAAI,EAAGwb,EAAO9Q,EAAOjD,OAAQzH,EAAIwb,IAAQxb,EAC7C0K,EAAO1K,GAAGknB,SAIZgF,cAAe,SAAS5K,EAAOzhB,EAAO2rB,GACrC,IASIntB,EAAGC,EATHqe,EAAKhgB,KACL8tB,EAAO9N,EAAG4N,UACVyC,EAAS1L,EAAM0L,QAAU,GACzB9lB,EAAUyV,EAAGgO,aACbX,EAAerN,EAAG9c,MAClB2E,EAAQ0C,EAAQ1K,KAAKqD,GACrBk5B,EAASpc,EAAG0Z,QACZ2C,EAASrc,EAAG2Z,QACZkI,EAAY/T,EAAKvjB,QAAQigB,OAGzBzkB,EAAUia,EAAGiQ,2BAA2BtL,EAAOzhB,GAEnDxB,EAAI06B,EAAOrB,iBAAkC,kBAAVlzB,EAAqBA,EAAQ20B,IAAKt5B,EAAOmqB,GAC5E1rB,EAAIktB,EAAQwN,EAAOtC,eAAiB/Z,EAAG8hB,gBAAgBj6B,EAAO3E,EAAOmqB,GAGrE1I,EAAM+U,QAAU0C,EAChBzX,EAAMgV,QAAU0C,EAChB1X,EAAM8X,SAAW12B,EACjB4e,EAAMsK,cAAgB5B,EACtB1I,EAAMwK,OAASjsB,EAGfyhB,EAAM6F,OAAS,CACd9oB,EAAGA,EACHC,EAAGA,EACHqzB,KAAM3E,EAAO2E,MAAQvc,MAAM/W,IAAM+W,MAAM9W,GAEvC4B,OAAQwC,EAAQxC,OAChBmyB,WAAY3vB,EAAQ2vB,WACpB1R,SAAUje,EAAQie,SAClBvhB,gBAAiBsD,EAAQtD,gBACzBE,YAAaoD,EAAQpD,YACrBrB,YAAayE,EAAQzE,YACrB+jB,QAASwb,GAAiBxQ,EAAOhL,QAASwc,EAAYA,EAAUxc,QAAU,GAC1EF,cAAa0c,GAAYA,EAAU1c,YAEnCoQ,UAAWxvB,EAAQwvB,YAOrBvF,8BAA+B,SAASV,GACvC,IAAItP,EAAKhgB,KACLuhC,EAASvhB,EAAG4P,QACZS,EAASf,EAAQe,QAAU,GAC3BtqB,EAAUia,EAAG9V,MAAMnE,QACnBg8B,EAAch8B,EAAQvF,SAAS0zB,KAC/Bhb,EAAS6Y,GAAuBrxB,UAAUsvB,8BAA8B1R,MAAM0B,EAAInM,WAUtF,OALAqF,EAAOwb,SAAWmM,GAAiBU,EAAO7M,SAAU3uB,EAAQ2uB,UAC5Dxb,EAAOmM,QAAUwb,GAAiBU,EAAOG,YAAaK,EAAY1c,SAClEnM,EAAOiM,YAAc2b,GAAU,CAACzQ,EAAOlL,YAAaoc,EAAOpc,YAAa4c,EAAY7c,UACpFhM,EAAO6L,KAAOsc,GAAOR,GAAiBU,EAAOxc,KAAMqc,GAAYphB,EAAG0Z,QAAS1Z,EAAG2Z,QAASzgB,EAAO5X,eAEvF4X,GAGR4oB,gBAAiB,SAASj6B,EAAO3E,EAAOmqB,GACvC,IAKIhqB,EAAG2+B,EAAIC,EAAQC,EAAmBC,EAAY1H,EAAU5b,EALxDmB,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MACXmyB,EAASrc,EAAG2Z,QACZyI,EAAS,EACTC,EAAS,EAGb,GAAIhG,EAAOt2B,QAAQ40B,QAAS,CAK3B,IAJAwH,GAAc9F,EAAOiG,cAAcz6B,GACnC4yB,EAAWvwB,EAAMq4B,gCACjB1jB,EAAO4b,EAAS3vB,OAEXzH,EAAI,EAAGA,EAAIwb,IAAQxb,EAAG,CAE1B,GADA4+B,EAASxH,EAASp3B,GACd4+B,EAAO/+B,QAAUmqB,EACpB,MAGD2U,EAAK93B,EAAMrK,KAAKwK,SAAS43B,EAAO/+B,OACZ,SAAhB++B,EAAOviC,MAAmBuiC,EAAO7T,UAAYiO,EAAO7vB,KACvD01B,GAAqB7F,EAAOiG,cAAcN,EAAGniC,KAAKqD,IAC9Cg/B,EAAoB,EACvBG,GAAUH,GAAqB,EAE/BE,GAAUF,GAAqB,GAKlC,OAAIC,EAAa,EACT9F,EAAOtB,iBAAiBsH,EAASF,GAElC9F,EAAOtB,iBAAiBqH,EAASD,GAEzC,OAAO9F,EAAOtB,iBAAiBlzB,IAGhC+5B,0BAA2B,WAC1B,IAMIv+B,EAAGwb,EAAM/N,EAAO0xB,EANhBxiB,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MACX4jB,EAAO9N,EAAG4N,UACViU,EAAY/T,EAAKvjB,QAAQigB,OACzB5F,EAAO1a,EAAM6rB,UACbhoB,EAAS+f,EAAKjuB,MAAQ,GAU1B,SAAS4iC,EAAgBC,EAAI1gC,EAAKoP,GACjC,OAAOrP,KAAKqP,IAAIrP,KAAKC,IAAI0gC,EAAItxB,GAAMpP,GAGpC,GAVI6/B,EAAUnN,WACb3mB,EAASA,EAAO3C,QAAO,SAASs3B,GAC/B,OAAQA,EAAGlY,OAAOwK,SAQqB,aAArC6M,EAAUc,uBACbpZ,GAAUqZ,oBAAoB70B,QAE9B,IAAK1K,EAAI,EAAGwb,EAAO9Q,EAAOjD,OAAQzH,EAAIwb,IAAQxb,EAC7CyN,EAAQ/C,EAAO1K,GAAGmnB,OAClBgY,EAAgBjZ,GAAUsZ,YACzBtZ,GAAUwL,aAAahnB,EAAQ1K,GAAGmnB,OAClC1Z,EACAyY,GAAUuZ,SAAS/0B,EAAQ1K,GAAGmnB,OAC9BqX,EAAUxc,SAEXvU,EAAMyU,sBAAwBid,EAAcjiB,SAAS7e,EACrDoP,EAAM2U,sBAAwB+c,EAAcjiB,SAAS5e,EACrDmP,EAAM0U,kBAAoBgd,EAAc7J,KAAKj3B,EAC7CoP,EAAM4U,kBAAoB8c,EAAc7J,KAAKh3B,EAI/C,GAAIuI,EAAMnE,QAAQvF,SAAS0zB,KAAKK,gBAC/B,IAAKlxB,EAAI,EAAGwb,EAAO9Q,EAAOjD,OAAQzH,EAAIwb,IAAQxb,EAC7CyN,EAAQ/C,EAAO1K,GAAGmnB,OACduW,GAAcjwB,EAAO8T,KACpBvhB,EAAI,GAAK09B,GAAchzB,EAAO1K,EAAI,GAAGmnB,OAAQ5F,KAChD9T,EAAMyU,sBAAwBkd,EAAgB3xB,EAAMyU,sBAAuBX,EAAKhkB,KAAMgkB,EAAK/jB,OAC3FiQ,EAAM2U,sBAAwBgd,EAAgB3xB,EAAM2U,sBAAuBb,EAAK9jB,IAAK8jB,EAAK7jB,SAEvFsC,EAAI0K,EAAOjD,OAAS,GAAKi2B,GAAchzB,EAAO1K,EAAI,GAAGmnB,OAAQ5F,KAChE9T,EAAM0U,kBAAoBid,EAAgB3xB,EAAM0U,kBAAmBZ,EAAKhkB,KAAMgkB,EAAK/jB,OACnFiQ,EAAM4U,kBAAoB+c,EAAgB3xB,EAAM4U,kBAAmBd,EAAK9jB,IAAK8jB,EAAK7jB,WAOvFJ,KAAM,WACL,IAQIokB,EARA/E,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MACX4jB,EAAO9N,EAAG4N,UACV7f,EAAS+f,EAAKjuB,MAAQ,GACtB+kB,EAAO1a,EAAM6rB,UACb3oB,EAASlD,EAAMkD,OACf/J,EAAI,EACJwb,EAAO9Q,EAAOjD,OAmBlB,IAhBIkV,EAAGyhB,YACN1c,EAAO+I,EAAKvjB,QAAQigB,OAAOzF,KAE3BwE,GAAUnc,OAAO0X,SAAS5a,EAAMpK,IAAK,CACpCc,MAAoB,IAAdmkB,EAAKnkB,KAAiB,EAAIgkB,EAAKhkB,KAAOmkB,EAAKnkB,KACjDC,OAAsB,IAAfkkB,EAAKlkB,MAAkBuM,EAAOvL,MAAQ+iB,EAAK/jB,MAAQkkB,EAAKlkB,MAC/DC,KAAkB,IAAbikB,EAAKjkB,IAAgB,EAAI8jB,EAAK9jB,IAAMikB,EAAKjkB,IAC9CC,QAAwB,IAAhBgkB,EAAKhkB,OAAmBqM,EAAOxL,OAASgjB,EAAK7jB,OAASgkB,EAAKhkB,SAGpE+sB,EAAKvjB,QAAQ5J,OAEb4oB,GAAUnc,OAAO4X,WAAW9a,EAAMpK,MAI5BuD,EAAIwb,IAAQxb,EAClB0K,EAAO1K,GAAG1C,KAAKikB,IAOjBgM,cAAe,SAASjM,GACvB,IAAI7T,EAAQ6T,EAAM6F,OACdzkB,EAAU4e,EAAM8X,SAChB5L,EAAgBtH,GAAUsH,cAE9BlM,EAAMgM,eAAiB,CACtBluB,gBAAiBqO,EAAMrO,gBACvBE,YAAamO,EAAMnO,YACnBrB,YAAawP,EAAMxP,YACnBiC,OAAQuN,EAAMvN,QAGfuN,EAAMrO,gBAAkBo+B,GAAiB96B,EAAQ+qB,qBAAsBD,EAAc9qB,EAAQtD,kBAC7FqO,EAAMnO,YAAck+B,GAAiB96B,EAAQgrB,iBAAkBF,EAAc9qB,EAAQpD,cACrFmO,EAAMxP,YAAcu/B,GAAiB96B,EAAQirB,iBAAkBjrB,EAAQzE,aACvEwP,EAAMvN,OAASs9B,GAAiB96B,EAAQktB,YAAaltB,EAAQxC,WAI3Dw/B,GAAYxZ,GAAUxjB,QAAQqhB,QAElCd,EAAcR,KAAK,YAAa,CAC/BvN,MAAO,CACN7Y,KAAM,eACNsjC,WAAY,CACXC,SAAS,GAEVjK,UAAW,CACVkK,UAAU,GAEXC,YAAa,CACZF,SAAS,GAEV9B,MAAO,CACNiC,aAAa,IAKf9X,UAAW,CACVwR,eAAe,EACfC,cAAc,GAGf7K,YAAa,GAAMnwB,KAAKyR,GACxBwpB,eAAgB,SAAS9yB,GACxB,IAII7G,EAAGwb,EAAMoe,EAAUC,EAJnBC,EAAOC,SAAShxB,cAAc,MAC9BvM,EAAOqK,EAAMrK,KACbwK,EAAWxK,EAAKwK,SAChBmB,EAAS3L,EAAK2L,OAIlB,GADA2xB,EAAKE,aAAa,QAASnzB,EAAMsC,GAAK,WAClCnC,EAASS,OACZ,IAAKzH,EAAI,EAAGwb,EAAOxU,EAAS,GAAGxK,KAAKiL,OAAQzH,EAAIwb,IAAQxb,EACvD45B,EAAWE,EAAKG,YAAYF,SAAShxB,cAAc,OACnD8wB,EAAeD,EAASK,YAAYF,SAAShxB,cAAc,SAC3D8wB,EAAa7wB,MAAM5J,gBAAkB4H,EAAS,GAAG5H,gBAAgBY,GAC7DmI,EAAOnI,IACV45B,EAASK,YAAYF,SAASG,eAAe/xB,EAAOnI,KAKvD,OAAO85B,EAAKK,WAEbC,OAAQ,CACPjyB,OAAQ,CACPkyB,eAAgB,SAASxzB,GACxB,IAAIrK,EAAOqK,EAAMrK,KACjB,OAAIA,EAAK2L,OAAOV,QAAUjL,EAAKwK,SAASS,OAChCjL,EAAK2L,OAAOlB,KAAI,SAASE,EAAOnH,GACtC,IAAIyqB,EAAO5jB,EAAMokB,eAAe,GAC5BjiB,EAAQyhB,EAAK6P,WAAW5N,SAAS1sB,GAErC,MAAO,CACN0L,KAAMvE,EACNhI,UAAW6J,EAAM5J,gBACjBC,YAAa2J,EAAM1J,YACnBC,UAAWyJ,EAAM/K,YACjBgpB,OAAQ7R,MAAM5Y,EAAKwK,SAAS,GAAGxK,KAAKwD,KAAOyqB,EAAKjuB,KAAKwD,GAAGinB,OAGxDpnB,MAAOG,MAIH,KAITu6B,QAAS,SAAS30B,EAAG40B,GACpB,IAEIx6B,EAAGwb,EAAMiP,EAFT5qB,EAAQ26B,EAAW36B,MACnBgH,EAAQlK,KAAKkK,MAGjB,IAAK7G,EAAI,EAAGwb,GAAQ3U,EAAMrK,KAAKwK,UAAY,IAAIS,OAAQzH,EAAIwb,IAAQxb,EAClEyqB,EAAO5jB,EAAMokB,eAAejrB,GAC5ByqB,EAAKjuB,KAAKqD,GAAOonB,QAAUwD,EAAKjuB,KAAKqD,GAAOonB,OAG7CpgB,EAAM0B,WAKRiwB,SAAU,CACTC,UAAW,CACVC,MAAO,WACN,MAAO,IAERvxB,MAAO,SAASoW,EAAM/gB,GACrB,OAAOA,EAAK2L,OAAOoV,EAAK1d,OAAS,KAAO0d,EAAKsb,YAMjD,IAAImH,GAAuBtR,GAAuBrS,OAAO,CAExD6N,gBAAiB/sB,GAASg3B,IAE1B9J,WAAYnE,GAAU7L,KAKtB+P,oBAAqB,CACpB,kBACA,cACA,cACA,cACA,uBACA,mBACA,oBAMDiB,iBAAkB,WACjB,OAAO1uB,KAAKkK,MAAMqO,MAAM/L,IAMzBiiB,iBAAkB,WACjB,OAAOzuB,KAAKkK,MAAMqO,MAAM/L,IAGzBZ,OAAQ,SAASijB,GAChB,IAOIxrB,EAAGwb,EAAM0U,EAPTvT,EAAKhgB,KACLuK,EAAUyV,EAAGgO,aACbF,EAAO9N,EAAG4N,UACVjE,EAAQ3J,EAAG9V,MAAMnE,QAAQmsB,YAAc,EACvCoR,EAAStjB,EAAGujB,QAAU,GACtBC,EAASxjB,EAAGyjB,QAAU,GACtB5E,EAAO/Q,EAAKjuB,KAOhB,IAJAmgB,EAAG0jB,gBAEH5V,EAAK0D,MAAQxR,EAAG2jB,uBAEXtgC,EAAI,EAAGwb,EAAOtU,EAAQ1K,KAAKiL,OAAQzH,EAAIwb,EAAMxb,IACjDigC,EAAOjgC,GAAKsmB,EACZ4J,EAAQvT,EAAG4jB,cAAcvgC,GACzBmgC,EAAOngC,GAAKkwB,EACZ5J,GAAS4J,EAGV,IAAKlwB,EAAI,EAAGwb,EAAOggB,EAAK/zB,OAAQzH,EAAIwb,IAAQxb,EAC3Cw7B,EAAKx7B,GAAGo5B,SAAWzc,EAAGiQ,2BAA2B4O,EAAKx7B,GAAIA,GAC1D2c,EAAGuP,cAAcsP,EAAKx7B,GAAIA,EAAGwrB,IAO/B6U,cAAe,WACd,IAAI1jB,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MACX6rB,EAAY7rB,EAAM6rB,UAClByI,EAAOt0B,EAAMnE,QACb89B,EAAU9hC,KAAKC,IAAI+zB,EAAUl1B,MAAQk1B,EAAUn1B,KAAMm1B,EAAUh1B,OAASg1B,EAAUj1B,KAEtFoJ,EAAMooB,YAAcvwB,KAAKqP,IAAIyyB,EAAU,EAAG,GAC1C35B,EAAMqoB,YAAcxwB,KAAKqP,IAAIotB,EAAKV,iBAAoB5zB,EAAMooB,YAAc,IAAQkM,EAAqB,iBAAI,EAAG,GAC9Gt0B,EAAM41B,cAAgB51B,EAAMooB,YAAcpoB,EAAMqoB,aAAeroB,EAAM45B,yBAErE9jB,EAAGsS,YAAcpoB,EAAMooB,YAAepoB,EAAM41B,aAAe9f,EAAG9c,MAC9D8c,EAAGuS,YAAcvS,EAAGsS,YAAcpoB,EAAM41B,cAGzCvQ,cAAe,SAAS3L,EAAK1gB,EAAO2rB,GACnC,IAAI7O,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MACXK,EAAUyV,EAAGgO,aACbwQ,EAAOt0B,EAAMnE,QACbo6B,EAAgB3B,EAAKlT,UACrB/S,EAAQrO,EAAMqO,MACd/M,EAAStB,EAAMrK,KAAK2L,OAEpB40B,EAAU7nB,EAAMwrB,QAChB1D,EAAU9nB,EAAMyrB,QAGhBC,EAAoBzF,EAAKtM,WACzBhgB,EAAW0R,EAAI0G,OAAS,EAAI/R,EAAM2rB,8BAA8B35B,EAAQ1K,KAAKqD,IAC7EgvB,EAAalS,EAAGujB,QAAQrgC,GACxBivB,EAAWD,GAActO,EAAI0G,OAAS,EAAItK,EAAGyjB,QAAQvgC,IAErDihC,EAAchE,EAAcpD,aAAe,EAAIxkB,EAAM2rB,8BAA8B35B,EAAQ1K,KAAKqD,IAChG6C,EAAU6d,EAAI6Y,UAAY,GAE9BlT,GAAU7J,OAAOkE,EAAK,CAErBqL,cAAejP,EAAG9c,MAClBisB,OAAQjsB,EACRy+B,OAAQppB,EAGRiS,OAAQ,CACP/nB,gBAAiBsD,EAAQtD,gBACzBE,YAAaoD,EAAQpD,YACrBrB,YAAayE,EAAQzE,YACrBsxB,YAAa7sB,EAAQ6sB,YACrBlxB,EAAG0+B,EACHz+B,EAAG0+B,EACH9N,YAAa,EACbD,YAAazD,EAAQsV,EAAcjyB,EACnCggB,WAAYrD,GAASsR,EAAcrD,cAAgBmH,EAAoB/R,EACvEC,SAAUtD,GAASsR,EAAcrD,cAAgBmH,EAAoB9R,EACrE3nB,MAAO+e,GAAUpL,sBAAsB3S,EAAQtI,EAAOsI,EAAOtI,OAI/D0gB,EAAI2G,SAGLoZ,qBAAsB,WACrB,IAAIp5B,EAAUvK,KAAKguB,aACfF,EAAO9tB,KAAK4tB,UACZ4D,EAAQ,EAQZ,OANAjI,GAAUhL,KAAKuP,EAAKjuB,MAAM,SAASyvB,EAASpsB,GACtCuV,MAAMlO,EAAQ1K,KAAKqD,KAAYosB,EAAQhF,QAC3CkH,OAIKA,GAMRZ,cAAe,SAAShN,GACvB,IAAI9S,EAAQ8S,EAAI4G,OACZzkB,EAAU6d,EAAI6Y,SACd5L,EAAgBtH,GAAUsH,cAC1B5S,EAAiBsL,GAAUtL,eAE/B2F,EAAI+M,eAAiB,CACpBluB,gBAAiBqO,EAAMrO,gBACvBE,YAAamO,EAAMnO,YACnBrB,YAAawP,EAAMxP,aAGpBwP,EAAMrO,gBAAkBwb,EAAelY,EAAQ+qB,qBAAsBD,EAAc9qB,EAAQtD,kBAC3FqO,EAAMnO,YAAcsb,EAAelY,EAAQgrB,iBAAkBF,EAAc9qB,EAAQpD,cACnFmO,EAAMxP,YAAc2c,EAAelY,EAAQirB,iBAAkBjrB,EAAQzE,cAMtEsiC,cAAe,SAAS1gC,GACvB,IAAI8c,EAAKhgB,KACLwxB,EAAQxxB,KAAK4tB,UAAU4D,MACvBjnB,EAAUyV,EAAGgO,aACbF,EAAO9N,EAAG4N,UAEd,GAAInV,MAAMlO,EAAQ1K,KAAKqD,KAAW4qB,EAAKjuB,KAAKqD,GAAOonB,OAClD,OAAO,EAIR,IAAIjkB,EAAU,CACb6D,MAAO8V,EAAG9V,MACVsmB,UAAWttB,EACXqH,QAASA,EACT8iB,aAAcrN,EAAG9c,OAGlB,OAAO6/B,GAAU,CAChB/iB,EAAG9V,MAAMnE,QAAQvF,SAASojB,IAAI2P,MAC7B,EAAIxxB,KAAKyR,GAAMge,GACdnrB,EAASnD,MAIdojB,EAAcR,KAAK,MAAOyD,GAAU/M,MAAM8J,EAAc8d,WACxD9d,EAAcR,KAAK,MAAO,CACzBgY,iBAAkB,IAInB,IAAIuG,GAAiBpG,GAEjBqG,GAAmB/a,GAAUtL,eAEjCqI,EAAcR,KAAK,QAAS,CAC3B4O,UAAU,EACVnc,MAAO,CACN7Y,KAAM,gBAEPc,SAAU,CACT0zB,KAAM,CACLxwB,KAAM,QACN2hB,QAAS,MAKZ,IAAIkf,GAAmBxS,GAAuBrS,OAAO,CACpD4N,mBAAoB9sB,GAASgN,KAE7B+f,gBAAiB/sB,GAASi3B,MAE1B/J,WAAYnE,GAAU7L,KAKtB8P,uBAAwB,CACvB,kBACA,cACA,cACA,iBACA,aACA,mBACA,kBACA,QAMDC,oBAAqB,CACpBhrB,gBAAiB,uBACjBE,YAAa,mBACbrB,YAAa,mBACbi0B,UAAW,iBACXzE,qBAAsB,4BACtBC,iBAAkB,wBAClBC,iBAAkB,wBAClBiC,YAAa,mBACbyC,WAAY,aACZnyB,OAAQ,cACRygB,SAAU,iBAMX0K,iBAAkB,WACjB,OAAO1uB,KAAKkK,MAAMqO,MAAM/L,IAMzBiiB,iBAAkB,WACjB,OAAOzuB,KAAKkK,MAAMqO,MAAM/L,IAGzBZ,OAAQ,SAASijB,GAChB,IAMIxrB,EAAGwb,EANHmB,EAAKhgB,KACL8tB,EAAO9N,EAAG4N,UACVsG,EAAOpG,EAAKvjB,QACZwD,EAAS+f,EAAKjuB,MAAQ,GACtB0Y,EAAQyH,EAAG9V,MAAMqO,MACjBgpB,EAASvhB,EAAG4P,QAoBhB,SAhBuBjZ,IAAnB4qB,EAAOlc,cAAgD1O,IAAvB4qB,EAAOG,cAC1CH,EAAOG,YAAcH,EAAOlc,SAI7B6O,EAAKyN,OAASppB,EACd2b,EAAKjF,cAAgBjP,EAAG9c,MAExBgxB,EAAKS,UAAY5mB,EACjBmmB,EAAKY,OAAQ,EAEbZ,EAAK1J,OAASxK,EAAGgQ,8BAA8BkE,GAE/CA,EAAK3J,QAGAlnB,EAAI,EAAGwb,EAAO9Q,EAAOjD,OAAQzH,EAAIwb,IAAQxb,EAC7C2c,EAAGuP,cAAcxhB,EAAO1K,GAAIA,EAAGwrB,GAOhC,IAHA7O,EAAG4hB,4BAGEv+B,EAAI,EAAGwb,EAAO9Q,EAAOjD,OAAQzH,EAAIwb,IAAQxb,EAC7C0K,EAAO1K,GAAGknB,SAIZgF,cAAe,SAAS5K,EAAOzhB,EAAO2rB,GACrC,IAAI7O,EAAKhgB,KACLqwB,EAAS1L,EAAM0L,QAAU,GACzB9lB,EAAUyV,EAAGgO,aACbzV,EAAQyH,EAAG9V,MAAMqO,MACjBisB,EAAgBjsB,EAAMksB,yBAAyBvhC,EAAOqH,EAAQ1K,KAAKqD,IACnE6C,EAAUia,EAAGiQ,2BAA2BtL,EAAOzhB,GAC/C2+B,EAAY7hB,EAAG4N,UAAUrjB,QAAQigB,OACjC9oB,EAAImtB,EAAQtW,EAAMwrB,QAAUS,EAAc9iC,EAC1CC,EAAIktB,EAAQtW,EAAMyrB,QAAUQ,EAAc7iC,EAG9CgjB,EAAMgd,OAASppB,EACfoM,EAAM8X,SAAW12B,EACjB4e,EAAMsK,cAAgBjP,EAAG9c,MACzByhB,EAAMwK,OAASjsB,EAGfyhB,EAAM6F,OAAS,CACd9oB,EAAGA,EACHC,EAAGA,EACHqzB,KAAM3E,EAAO2E,MAAQvc,MAAM/W,IAAM+W,MAAM9W,GAEvC4B,OAAQwC,EAAQxC,OAChBmyB,WAAY3vB,EAAQ2vB,WACpB1R,SAAUje,EAAQie,SAClBvhB,gBAAiBsD,EAAQtD,gBACzBE,YAAaoD,EAAQpD,YACrBrB,YAAayE,EAAQzE,YACrB+jB,QAASif,GAAiBjU,EAAOhL,QAASwc,EAAYA,EAAUxc,QAAU,GAG1EkQ,UAAWxvB,EAAQwvB,YAOrBvF,8BAA+B,WAC9B,IAAIhQ,EAAKhgB,KACLuhC,EAASvhB,EAAG4P,QACZ7pB,EAAUia,EAAG9V,MAAMnE,QACnBmT,EAAS6Y,GAAuBrxB,UAAUsvB,8BAA8B1R,MAAM0B,EAAInM,WAKtF,OAHAqF,EAAOwb,SAAW4P,GAAiB/C,EAAO7M,SAAU3uB,EAAQ2uB,UAC5Dxb,EAAOmM,QAAUif,GAAiB/C,EAAOG,YAAa37B,EAAQvF,SAAS0zB,KAAK7O,SAErEnM,GAGR0oB,0BAA2B,WAC1B,IAIIv+B,EAAGwb,EAAM/N,EAAO0xB,EAJhBxiB,EAAKhgB,KACL8tB,EAAO9N,EAAG4N,UACVhJ,EAAO5E,EAAG9V,MAAM6rB,UAChBhoB,EAAS+f,EAAKjuB,MAAQ,GAU1B,SAAS4iC,EAAgBC,EAAI1gC,EAAKoP,GACjC,OAAOrP,KAAKqP,IAAIrP,KAAKC,IAAI0gC,EAAItxB,GAAMpP,GAGpC,IAVI8rB,EAAKvjB,QAAQigB,OAAOkK,WACvB3mB,EAASA,EAAO3C,QAAO,SAASs3B,GAC/B,OAAQA,EAAGlY,OAAOwK,SAQf3xB,EAAI,EAAGwb,EAAO9Q,EAAOjD,OAAQzH,EAAIwb,IAAQxb,EAC7CyN,EAAQ/C,EAAO1K,GAAGmnB,OAClBgY,EAAgBjZ,GAAUsZ,YACzBtZ,GAAUwL,aAAahnB,EAAQ1K,GAAG,GAAMmnB,OACxC1Z,EACAyY,GAAUuZ,SAAS/0B,EAAQ1K,GAAG,GAAMmnB,OACpC1Z,EAAMuU,SAIPvU,EAAMyU,sBAAwBkd,EAAgBD,EAAcjiB,SAAS7e,EAAGkjB,EAAKhkB,KAAMgkB,EAAK/jB,OACxFiQ,EAAM2U,sBAAwBgd,EAAgBD,EAAcjiB,SAAS5e,EAAGijB,EAAK9jB,IAAK8jB,EAAK7jB,QACvF+P,EAAM0U,kBAAoBid,EAAgBD,EAAc7J,KAAKj3B,EAAGkjB,EAAKhkB,KAAMgkB,EAAK/jB,OAChFiQ,EAAM4U,kBAAoB+c,EAAgBD,EAAc7J,KAAKh3B,EAAGijB,EAAK9jB,IAAK8jB,EAAK7jB,SAIjF6vB,cAAe,SAASjM,GACvB,IAAI7T,EAAQ6T,EAAM6F,OACdzkB,EAAU4e,EAAM8X,SAChB5L,EAAgBtH,GAAUsH,cAE9BlM,EAAMgM,eAAiB,CACtBluB,gBAAiBqO,EAAMrO,gBACvBE,YAAamO,EAAMnO,YACnBrB,YAAawP,EAAMxP,YACnBiC,OAAQuN,EAAMvN,QAGfuN,EAAMrO,gBAAkB6hC,GAAiBv+B,EAAQ+qB,qBAAsBD,EAAc9qB,EAAQtD,kBAC7FqO,EAAMnO,YAAc2hC,GAAiBv+B,EAAQgrB,iBAAkBF,EAAc9qB,EAAQpD,cACrFmO,EAAMxP,YAAcgjC,GAAiBv+B,EAAQirB,iBAAkBjrB,EAAQzE,aACvEwP,EAAMvN,OAAS+gC,GAAiBv+B,EAAQktB,YAAaltB,EAAQxC,WAI/D+iB,EAAcR,KAAK,UAAW,CAC7BoK,MAAO,CACN4I,KAAM,UAGP/K,OAAQ,CACPI,MAAO,CAAC,CACP3hB,GAAI,WACJ9M,KAAM,SACNk8B,SAAU,WAEXvN,MAAO,CAAC,CACP7hB,GAAI,WACJ9M,KAAM,SACNk8B,SAAU,UAIZC,SAAU,CACTC,UAAW,CACVC,MAAO,WACN,MAAO,IAERvxB,MAAO,SAASoW,GACf,MAAO,IAAMA,EAAKqb,OAAS,KAAOrb,EAAKsb,OAAS,SAMpD5V,EAAcR,KAAK,SAAU,CAC5Bzb,SAAU,CACTq6B,QAAS,CACRlD,UAAU,MAMb,IAAImD,GAAqBrD,GAMrBsD,GAAc,CACjB1L,IAAKC,GACL0L,OAAQ1I,GACRiI,SAAUnG,GACV0C,cAAeC,GACf1M,KAAMoN,GACNwD,UAAWzB,GACX0B,IAAKV,GACLW,MAAOT,GACPG,QAASC,IASV,SAASM,GAAoBh8B,EAAGiB,GAC/B,OAAIjB,EAAEi8B,OACE,CACNxjC,EAAGuH,EAAEvH,EACLC,EAAGsH,EAAEtH,GAIA4nB,GAAU0b,oBAAoBh8B,EAAGiB,GAQzC,SAASi7B,GAAkBj7B,EAAOk7B,GACjC,IACIC,EAAUhiC,EAAG+6B,EAAGvf,EAAMymB,EAAMhW,EAD5BmL,EAAWvwB,EAAMq4B,gCAGrB,IAAKl/B,EAAI,EAAGwb,EAAO4b,EAAS3vB,OAAQzH,EAAIwb,IAAQxb,EAE/C,IADAgiC,EAAW5K,EAASp3B,GAAGxD,KAClBu+B,EAAI,EAAGkH,EAAOD,EAASv6B,OAAQszB,EAAIkH,IAAQlH,EAC/C9O,EAAU+V,EAASjH,GACd9O,EAAQjuB,MAAM2zB,MAClBoQ,EAAQ9V,GAYZ,SAASiW,GAAkBr7B,EAAO0xB,GACjC,IAAIp7B,EAAW,GAQf,OANA2kC,GAAkBj7B,GAAO,SAASolB,GAC7BA,EAAQ4D,QAAQ0I,EAASl6B,EAAGk6B,EAASj6B,IACxCnB,EAASyM,KAAKqiB,MAIT9uB,EAWR,SAASglC,GAAgBt7B,EAAO0xB,EAAU6J,EAAWC,GACpD,IAAIC,EAAch5B,OAAOi5B,kBACrBC,EAAe,GAkBnB,OAhBAV,GAAkBj7B,GAAO,SAASolB,GACjC,IAAImW,GAAcnW,EAAQ4D,QAAQ0I,EAASl6B,EAAGk6B,EAASj6B,GAAvD,CAIA,IAAI24B,EAAShL,EAAQoE,iBACjBxhB,EAAWwzB,EAAe9J,EAAUtB,GACpCpoB,EAAWyzB,GACdE,EAAe,CAACvW,GAChBqW,EAAczzB,GACJA,IAAayzB,GAEvBE,EAAa54B,KAAKqiB,OAIbuW,EAQR,SAASC,GAAyBpF,GACjC,IAAIqF,GAA8B,IAAvBrF,EAAK19B,QAAQ,KACpBgjC,GAA8B,IAAvBtF,EAAK19B,QAAQ,KAExB,OAAO,SAASijC,EAAKC,GACpB,IAAIC,EAASJ,EAAOhkC,KAAKE,IAAIgkC,EAAIvkC,EAAIwkC,EAAIxkC,GAAK,EAC1C0kC,EAASJ,EAAOjkC,KAAKE,IAAIgkC,EAAItkC,EAAIukC,EAAIvkC,GAAK,EAC9C,OAAOI,KAAK0R,KAAK1R,KAAKiP,IAAIm1B,EAAQ,GAAKpkC,KAAKiP,IAAIo1B,EAAQ,KAI1D,SAASC,GAAUn8B,EAAOjB,EAAGlD,GAC5B,IAAI61B,EAAWqJ,GAAoBh8B,EAAGiB,GAEtCnE,EAAQ26B,KAAO36B,EAAQ26B,MAAQ,IAC/B,IAAIgF,EAAiBI,GAAyB//B,EAAQ26B,MAClD4F,EAAQvgC,EAAQ0/B,UAAYF,GAAkBr7B,EAAO0xB,GAAY4J,GAAgBt7B,EAAO0xB,GAAU,EAAO8J,GACzGllC,EAAW,GAEf,OAAK8lC,EAAMx7B,QAIXZ,EAAMq4B,gCAAgCx3B,SAAQ,SAAS+iB,GACtD,IAAIwB,EAAUxB,EAAKjuB,KAAKymC,EAAM,GAAGnX,QAG7BG,IAAYA,EAAQjuB,MAAM2zB,MAC7Bx0B,EAASyM,KAAKqiB,MAIT9uB,GAZC,GA4BT,IAAI+lC,GAAmB,CAEtBC,MAAO,CACNC,OAAQ,SAASv8B,EAAOjB,GACvB,IAAI2yB,EAAWqJ,GAAoBh8B,EAAGiB,GAClC1J,EAAW,GASf,OAPA2kC,GAAkBj7B,GAAO,SAASolB,GACjC,GAAIA,EAAQ4D,QAAQ0I,EAASl6B,EAAGk6B,EAASj6B,GAExC,OADAnB,EAASyM,KAAKqiB,GACP9uB,KAIFA,EAASoW,MAAM,EAAG,IAS1BpM,MAAO67B,GAYPnjC,MAAOmjC,GAWP97B,QAAS,SAASL,EAAOjB,EAAGlD,GAC3B,IAAI61B,EAAWqJ,GAAoBh8B,EAAGiB,GACtCnE,EAAQ26B,KAAO36B,EAAQ26B,MAAQ,KAC/B,IAAIgF,EAAiBI,GAAyB//B,EAAQ26B,MAClD4F,EAAQvgC,EAAQ0/B,UAAYF,GAAkBr7B,EAAO0xB,GAAY4J,GAAgBt7B,EAAO0xB,GAAU,EAAO8J,GAM7G,OAJIY,EAAMx7B,OAAS,IAClBw7B,EAAQp8B,EAAMokB,eAAegY,EAAM,GAAGrX,eAAepvB,MAG/CymC,GASR,SAAU,SAASp8B,EAAOjB,GACzB,OAAOo9B,GAAUn8B,EAAOjB,EAAG,CAACw8B,WAAW,KAWxC9gB,MAAO,SAASza,EAAOjB,GACtB,IAAI2yB,EAAWqJ,GAAoBh8B,EAAGiB,GACtC,OAAOq7B,GAAkBr7B,EAAO0xB,IAWjC8K,QAAS,SAASx8B,EAAOjB,EAAGlD,GAC3B,IAAI61B,EAAWqJ,GAAoBh8B,EAAGiB,GACtCnE,EAAQ26B,KAAO36B,EAAQ26B,MAAQ,KAC/B,IAAIgF,EAAiBI,GAAyB//B,EAAQ26B,MACtD,OAAO8E,GAAgBt7B,EAAO0xB,EAAU71B,EAAQ0/B,UAAWC,IAW5DhkC,EAAG,SAASwI,EAAOjB,EAAGlD,GACrB,IAAI61B,EAAWqJ,GAAoBh8B,EAAGiB,GAClCo8B,EAAQ,GACRK,GAAiB,EAiBrB,OAfAxB,GAAkBj7B,GAAO,SAASolB,GAC7BA,EAAQsG,SAASgG,EAASl6B,IAC7B4kC,EAAMr5B,KAAKqiB,GAGRA,EAAQ4D,QAAQ0I,EAASl6B,EAAGk6B,EAASj6B,KACxCglC,GAAiB,MAMf5gC,EAAQ0/B,YAAckB,IACzBL,EAAQ,IAEFA,GAWR3kC,EAAG,SAASuI,EAAOjB,EAAGlD,GACrB,IAAI61B,EAAWqJ,GAAoBh8B,EAAGiB,GAClCo8B,EAAQ,GACRK,GAAiB,EAiBrB,OAfAxB,GAAkBj7B,GAAO,SAASolB,GAC7BA,EAAQuG,SAAS+F,EAASj6B,IAC7B2kC,EAAMr5B,KAAKqiB,GAGRA,EAAQ4D,QAAQ0I,EAASl6B,EAAGk6B,EAASj6B,KACxCglC,GAAiB,MAMf5gC,EAAQ0/B,YAAckB,IACzBL,EAAQ,IAEFA,KAKN5mB,GAAS6J,GAAU7J,OAEvB,SAASknB,GAAiBjmB,EAAOib,GAChC,OAAOrS,GAAUsd,MAAMlmB,GAAO,SAASlP,GACtC,OAAOA,EAAEq1B,MAAQlL,KAInB,SAASmL,GAAapmB,EAAOlC,GAC5B,OAAOkC,EAAM+G,MAAK,SAASnf,EAAG4I,GAC7B,IAAI2N,EAAKL,EAAUtN,EAAI5I,EACnBwW,EAAKN,EAAUlW,EAAI4I,EACvB,OAAO2N,EAAG1C,SAAW2C,EAAG3C,OACvB0C,EAAG5b,MAAQ6b,EAAG7b,MACd4b,EAAG1C,OAAS2C,EAAG3C,UAIlB,SAAS4qB,GAAUC,GAClB,IACI5jC,EAAGwb,EAAMqoB,EADTC,EAAc,GAGlB,IAAK9jC,EAAI,EAAGwb,GAAQooB,GAAS,IAAIn8B,OAAQzH,EAAIwb,IAAQxb,EACpD6jC,EAAMD,EAAM5jC,GACZ8jC,EAAYl6B,KAAK,CAChB/J,MAAOG,EACP6jC,IAAKA,EACLJ,IAAKI,EAAItL,SACTp6B,WAAY0lC,EAAIlN,eAChB5d,OAAQ8qB,EAAI9qB,SAGd,OAAO+qB,EAGR,SAASC,GAAcC,EAASC,GAC/B,IAAIjkC,EAAGwb,EAAM0oB,EACb,IAAKlkC,EAAI,EAAGwb,EAAOwoB,EAAQv8B,OAAQzH,EAAIwb,IAAQxb,EAC9CkkC,EAASF,EAAQhkC,GAEjBkkC,EAAO1lC,MAAQ0lC,EAAO/lC,WACnB+lC,EAAOL,IAAIM,WAAaF,EAAOG,eAC/BH,EAAOI,aAEVH,EAAO3lC,OAAS2lC,EAAO/lC,YAAc8lC,EAAOK,cAI9C,SAASC,GAAiBX,GACzB,IAAIE,EAAcH,GAAUC,GACxBrmC,EAAOmmC,GAAaH,GAAiBO,EAAa,SAAS,GAC3DtmC,EAAQkmC,GAAaH,GAAiBO,EAAa,UACnDrmC,EAAMimC,GAAaH,GAAiBO,EAAa,QAAQ,GACzDpmC,EAASgmC,GAAaH,GAAiBO,EAAa,WAExD,MAAO,CACNU,WAAYjnC,EAAKqG,OAAOnG,GACxBgnC,eAAgBjnC,EAAMoG,OAAOlG,GAC7Bg1B,UAAW6Q,GAAiBO,EAAa,aACzCY,SAAUnnC,EAAKqG,OAAOpG,GACtBW,WAAYV,EAAImG,OAAOlG,IAIzB,SAASinC,GAAeC,EAAYlS,EAAWxtB,EAAG4I,GACjD,OAAOpP,KAAKqP,IAAI62B,EAAW1/B,GAAIwtB,EAAUxtB,IAAMxG,KAAKqP,IAAI62B,EAAW92B,GAAI4kB,EAAU5kB,IAGlF,SAAS+2B,GAAWnS,EAAWuR,EAAQC,GACtC,IAEIY,EAAUC,EAFVlB,EAAMK,EAAOL,IACbe,EAAalS,EAAUkS,WAU3B,GAPIV,EAAOpjB,OAEV4R,EAAUwR,EAAOT,MAAQS,EAAOpjB,MAEjCojB,EAAOpjB,KAAOojB,EAAO/lC,WAAa0lC,EAAItlC,OAASslC,EAAIrlC,MACnDk0B,EAAUwR,EAAOT,MAAQS,EAAOpjB,KAE5B+iB,EAAImB,WAAY,CACnB,IAAIC,EAAapB,EAAImB,aACrBJ,EAAWnnC,IAAMiB,KAAKqP,IAAI62B,EAAWnnC,IAAKwnC,EAAWxnC,KACrDmnC,EAAWrnC,KAAOmB,KAAKqP,IAAI62B,EAAWrnC,KAAM0nC,EAAW1nC,MACvDqnC,EAAWlnC,OAASgB,KAAKqP,IAAI62B,EAAWlnC,OAAQunC,EAAWvnC,QAC3DknC,EAAWpnC,MAAQkB,KAAKqP,IAAI62B,EAAWpnC,MAAOynC,EAAWznC,OAM1D,GAHAsnC,EAAWb,EAAOiB,WAAaP,GAAeC,EAAYlS,EAAW,OAAQ,SAC7EqS,EAAYd,EAAOkB,YAAcR,GAAeC,EAAYlS,EAAW,MAAO,UAE1EoS,IAAapS,EAAUnkB,GAAKw2B,IAAcrS,EAAU/uB,EAAG,CAC1D+uB,EAAUnkB,EAAIu2B,EACdpS,EAAU/uB,EAAIohC,EAGd,IAAIK,EAAQlB,EAAO/lC,WAAa,CAAC2mC,EAAUpS,EAAUnkB,GAAK,CAACw2B,EAAWrS,EAAU/uB,GAChF,OAAOyhC,EAAM,KAAOA,EAAM,MAAQhwB,MAAMgwB,EAAM,MAAQhwB,MAAMgwB,EAAM,MAIpE,SAASC,GAAiB3S,GACzB,IAAIkS,EAAalS,EAAUkS,WAE3B,SAASU,EAAU7B,GAClB,IAAI8B,EAAS7mC,KAAKqP,IAAI62B,EAAWnB,GAAO/Q,EAAU+Q,GAAM,GAExD,OADA/Q,EAAU+Q,IAAQ8B,EACXA,EAER7S,EAAUp0B,GAAKgnC,EAAU,OACzB5S,EAAUr0B,GAAKinC,EAAU,QACzBA,EAAU,SACVA,EAAU,UAGX,SAASE,GAAWrnC,EAAYu0B,GAC/B,IAAIkS,EAAalS,EAAUkS,WAE3B,SAASa,EAAmBC,GAC3B,IAAIC,EAAS,CAACpoC,KAAM,EAAGE,IAAK,EAAGD,MAAO,EAAGE,OAAQ,GAIjD,OAHAgoC,EAAUh+B,SAAQ,SAAS+7B,GAC1BkC,EAAOlC,GAAO/kC,KAAKqP,IAAI2kB,EAAU+Q,GAAMmB,EAAWnB,OAE5CkC,EAGR,OACGF,EADItnC,EACe,CAAC,OAAQ,SACT,CAAC,MAAO,WAG/B,SAASynC,GAAShC,EAAOlR,EAAWuR,GACnC,IACIjkC,EAAGwb,EAAM0oB,EAAQL,EAAKgC,EAAOC,EAD7BC,EAAa,GAGjB,IAAK/lC,EAAI,EAAGwb,EAAOooB,EAAMn8B,OAAQzH,EAAIwb,IAAQxb,EAC5CkkC,EAASN,EAAM5jC,GACf6jC,EAAMK,EAAOL,IAEbA,EAAIt7B,OACH27B,EAAO1lC,OAASk0B,EAAUnkB,EAC1B21B,EAAO3lC,QAAUm0B,EAAU/uB,EAC3B6hC,GAAWtB,EAAO/lC,WAAYu0B,IAE3BmS,GAAWnS,EAAWuR,EAAQC,KACjC4B,GAAU,EACNC,EAAWt+B,SAGdo+B,GAAQ,IAGLhC,EAAIM,WACR4B,EAAWn8B,KAAKs6B,GAIlB,OAAO2B,GAAQD,GAASG,EAAYrT,EAAWuR,IAAqB6B,EAGrE,SAASE,GAAWpC,EAAOlR,EAAWuR,GACrC,IAGIjkC,EAAGwb,EAAM0oB,EAAQL,EAHjBoC,EAAchC,EAAOxR,QACrBp0B,EAAIq0B,EAAUr0B,EACdC,EAAIo0B,EAAUp0B,EAGlB,IAAK0B,EAAI,EAAGwb,EAAOooB,EAAMn8B,OAAQzH,EAAIwb,IAAQxb,EAC5CkkC,EAASN,EAAM5jC,GACf6jC,EAAMK,EAAOL,IACTK,EAAO/lC,YACV0lC,EAAItmC,KAAOsmC,EAAIM,UAAY8B,EAAY1oC,KAAOm1B,EAAUn1B,KACxDsmC,EAAIrmC,MAAQqmC,EAAIM,UAAYF,EAAOiB,WAAae,EAAYzoC,MAAQk1B,EAAUn1B,KAAOm1B,EAAUnkB,EAC/Fs1B,EAAIpmC,IAAMa,EACVulC,EAAInmC,OAASY,EAAIulC,EAAItlC,OACrBslC,EAAIrlC,MAAQqlC,EAAIrmC,MAAQqmC,EAAItmC,KAC5Be,EAAIulC,EAAInmC,SAERmmC,EAAItmC,KAAOc,EACXwlC,EAAIrmC,MAAQa,EAAIwlC,EAAIrlC,MACpBqlC,EAAIpmC,IAAMi1B,EAAUj1B,IACpBomC,EAAInmC,OAASg1B,EAAUj1B,IAAMi1B,EAAU/uB,EACvCkgC,EAAItlC,OAASslC,EAAInmC,OAASmmC,EAAIpmC,IAC9BY,EAAIwlC,EAAIrmC,OAIVk1B,EAAUr0B,EAAIA,EACdq0B,EAAUp0B,EAAIA,EAGf2kB,EAAcR,KAAK,SAAU,CAC5ByhB,OAAQ,CACPzR,QAAS,CACRh1B,IAAK,EACLD,MAAO,EACPE,OAAQ,EACRH,KAAM,MAyBT,IAAI2oC,GAAe,CAClB1jB,SAAU,GAQV2jB,OAAQ,SAASt/B,EAAO0W,GAClB1W,EAAM+8B,QACV/8B,EAAM+8B,MAAQ,IAIfrmB,EAAK4mB,UAAY5mB,EAAK4mB,YAAa,EACnC5mB,EAAKgb,SAAWhb,EAAKgb,UAAY,MACjChb,EAAKxE,OAASwE,EAAKxE,QAAU,EAC7BwE,EAAK6oB,QAAU7oB,EAAK6oB,SAAW,WAC9B,MAAO,CAAC,CACPt3B,EAAG,EACHxR,KAAM,WACLigB,EAAKjgB,KAAK2d,MAAMsC,EAAM/M,eAKzB3J,EAAM+8B,MAAMh6B,KAAK2T,IAQlB8oB,UAAW,SAASx/B,EAAOy/B,GAC1B,IAAIzmC,EAAQgH,EAAM+8B,MAAQ/8B,EAAM+8B,MAAMjkC,QAAQ2mC,IAAe,GAC9C,IAAXzmC,GACHgH,EAAM+8B,MAAM3a,OAAOppB,EAAO,IAU5B0mC,UAAW,SAAS1/B,EAAO0W,EAAM7a,GAMhC,IALA,IAGI4W,EAHAnd,EAAQ,CAAC,YAAa,WAAY,UAClCqf,EAAOrf,EAAMsL,OACbzH,EAAI,EAGDA,EAAIwb,IAAQxb,EAClBsZ,EAAOnd,EAAM6D,GACT0C,EAAQb,eAAeyX,KAC1BiE,EAAKjE,GAAQ5W,EAAQ4W,KAYxB/Q,OAAQ,SAAS1B,EAAOrI,EAAOD,GAC9B,GAAKsI,EAAL,CAIA,IAAI2/B,EAAgB3/B,EAAMnE,QAAQwhC,QAAU,GACxCzR,EAAUvM,GAAUxjB,QAAQ8gB,UAAUgjB,EAAc/T,SAEpD2R,EAAiB5lC,EAAQi0B,EAAQj0B,MACjCioC,EAAkBloC,EAASk0B,EAAQl0B,OACnCqlC,EAAQW,GAAiB19B,EAAM+8B,OAC/B8C,EAAgB9C,EAAMc,SACtBiC,EAAkB/C,EAAMzlC,WA6BxB8lC,EAAS3nC,OAAO8wB,OAAO,CAC1B8X,WAAY1mC,EACZ2mC,YAAa5mC,EACbk0B,QAASA,EACT2R,eAAgBA,EAChBC,aAAcD,EAAiB,EAAIsC,EAAcj/B,OACjD68B,cAAemC,EAAkB,IAE9B/T,EAAYrW,GAAO,CACtBuoB,WAAYvoB,GAAO,GAAIoW,GACvBlkB,EAAG61B,EACHzgC,EAAG8iC,EACHpoC,EAAGo0B,EAAQl1B,KACXe,EAAGm0B,EAAQh1B,KACTg1B,GAEHsR,GAAc2C,EAAc9iC,OAAO+iC,GAAkB1C,GAGrD2B,GAASc,EAAehU,EAAWuR,GAG/B2B,GAASe,EAAiBjU,EAAWuR,IAExC2B,GAASc,EAAehU,EAAWuR,GAGpCoB,GAAiB3S,GAGjBsT,GAAWpC,EAAMY,WAAY9R,EAAWuR,GAGxCvR,EAAUr0B,GAAKq0B,EAAUnkB,EACzBmkB,EAAUp0B,GAAKo0B,EAAU/uB,EAEzBqiC,GAAWpC,EAAMa,eAAgB/R,EAAWuR,GAE5Cp9B,EAAM6rB,UAAY,CACjBn1B,KAAMm1B,EAAUn1B,KAChBE,IAAKi1B,EAAUj1B,IACfD,MAAOk1B,EAAUn1B,KAAOm1B,EAAUnkB,EAClC7Q,OAAQg1B,EAAUj1B,IAAMi1B,EAAU/uB,GAInCuiB,GAAUhL,KAAK0oB,EAAMlR,WAAW,SAASwR,GACxC,IAAIL,EAAMK,EAAOL,IACjBxnB,GAAOwnB,EAAKh9B,EAAM6rB,WAClBmR,EAAIt7B,OAAOmqB,EAAUnkB,EAAGmkB,EAAU/uB,SAUjCijC,GAAiB,CACpBC,eAAgB,SAAStpB,GAMxB,OALIA,GAAQA,EAAKxT,SAEhBwT,EAAOA,EAAKxT,QAGNwT,GAAQA,EAAKtT,WAAW,OAAS,OAItC68B,GAAe,k9BAEfC,GAA8BzqC,OAAO8wB,OAAO,CAChD4Z,UAAW,KACX,QAAWF,KAGPG,GAAa76B,EAA0B26B,IAEvCG,GAAc,WACdC,GAAa,WACbC,GAAmBD,GAAa,eAChCE,GAAqBF,GAAa,iBAClCG,GAAuBH,GAAa,mBACpCI,GAAyB,CAAC,iBAAkB,wBAO5CC,GAAc,CACjBC,WAAY,YACZC,UAAW,YACXC,SAAU,UACVC,aAAc,aACdC,YAAa,YACbC,YAAa,YACbC,UAAW,UACXC,aAAc,WACdC,WAAY,YAYb,SAASC,GAAajc,EAASrqB,GAC9B,IAAI4C,EAAQ0hB,GAAUwG,SAAST,EAASrqB,GACpC2hB,EAAU/e,GAASA,EAAM2M,MAAM,qBACnC,OAAOoS,EAAUja,OAAOia,EAAQ,SAAMjQ,EAQvC,SAAS60B,GAAWp+B,EAAQm0B,GAC3B,IAAIl1B,EAAQe,EAAOf,MAIfo/B,EAAer+B,EAAOs+B,aAAa,UACnCC,EAAcv+B,EAAOs+B,aAAa,SAoBtC,GAjBAt+B,EAAOm9B,IAAe,CACrBqB,QAAS,CACRhqC,OAAQ6pC,EACR5pC,MAAO8pC,EACPt/B,MAAO,CACN42B,QAAS52B,EAAM42B,QACfrhC,OAAQyK,EAAMzK,OACdC,MAAOwK,EAAMxK,SAQhBwK,EAAM42B,QAAU52B,EAAM42B,SAAW,QAEb,OAAhB0I,GAAwC,KAAhBA,EAAoB,CAC/C,IAAIE,EAAeN,GAAan+B,EAAQ,cACnBuJ,IAAjBk1B,IACHz+B,EAAOvL,MAAQgqC,GAIjB,GAAqB,OAAjBJ,GAA0C,KAAjBA,EAC5B,GAA4B,KAAxBr+B,EAAOf,MAAMzK,OAIhBwL,EAAOxL,OAASwL,EAAOvL,OAAS0/B,EAAOx7B,QAAQ+lC,aAAe,OACxD,CACN,IAAIC,EAAgBR,GAAan+B,EAAQ,eACpBuJ,IAAjBk1B,IACHz+B,EAAOxL,OAASmqC,GAKnB,OAAO3+B,EAQR,IAAI4+B,GAAgC,WACnC,IAAIC,GAAW,EACf,IACC,IAAIlmC,EAAUpG,OAAO+E,eAAe,GAAI,UAAW,CAElDG,IAAK,WACJonC,GAAW,KAGb3uB,OAAO4uB,iBAAiB,IAAK,KAAMnmC,GAClC,MAAOkD,IAGT,OAAOgjC,EAb2B,GAkB/BE,KAAuBH,IAA+B,CAACI,SAAS,GAEpE,SAASC,GAAYv2B,EAAMpW,EAAMmtB,GAChC/W,EAAKo2B,iBAAiBxsC,EAAMmtB,EAAUsf,IAGvC,SAASG,GAAex2B,EAAMpW,EAAMmtB,GACnC/W,EAAKy2B,oBAAoB7sC,EAAMmtB,EAAUsf,IAG1C,SAASK,GAAY9sC,EAAMwK,EAAOxI,EAAGC,EAAG8qC,GACvC,MAAO,CACN/sC,KAAMA,EACNwK,MAAOA,EACPg7B,OAAQuH,GAAe,KACvB/qC,OAASiV,IAANjV,EAAkBA,EAAI,KACzBC,OAASgV,IAANhV,EAAkBA,EAAI,MAI3B,SAAS+qC,GAAgBC,EAAOziC,GAC/B,IAAIxK,EAAOmrC,GAAY8B,EAAMjtC,OAASitC,EAAMjtC,KACxConC,EAAMvd,GAAU0b,oBAAoB0H,EAAOziC,GAC/C,OAAOsiC,GAAY9sC,EAAMwK,EAAO48B,EAAIplC,EAAGolC,EAAInlC,EAAGgrC,GAG/C,SAASC,GAAUp9B,EAAI6O,GACtB,IAAIwuB,GAAU,EACVj5B,EAAO,GAEX,OAAO,WACNA,EAAO/G,MAAMnM,UAAUkW,MAAMxS,KAAKyP,WAClCwK,EAAUA,GAAWre,KAEhB6sC,IACJA,GAAU,EACVtjB,GAAUgD,iBAAiBnoB,KAAKkZ,QAAQ,WACvCuvB,GAAU,EACVr9B,EAAG8O,MAAMD,EAASzK,QAMtB,SAASk5B,GAAUC,GAClB,IAAIC,EAAK5P,SAAShxB,cAAc,OAEhC,OADA4gC,EAAGC,UAAYF,GAAO,GACfC,EAIR,SAASE,GAAc9H,GACtB,IAAI+H,EAAU,IAIVC,EAAUN,GAAUrC,IACpB4C,EAASP,GAAUrC,GAAmB,WACtC6C,EAASR,GAAUrC,GAAmB,WAE1C4C,EAAO/P,YAAYwP,MACnBQ,EAAOhQ,YAAYwP,MAEnBM,EAAQ9P,YAAY+P,GACpBD,EAAQ9P,YAAYgQ,GACpBF,EAAQG,OAAS,WAChBF,EAAOG,WAAaL,EACpBE,EAAOI,UAAYN,EACnBG,EAAOE,WAAaL,EACpBG,EAAOG,UAAYN,GAGpB,IAAIO,EAAW,WACdN,EAAQG,SACRnI,KAMD,OAHAiH,GAAYgB,EAAQ,SAAUK,EAASC,KAAKN,EAAQ,WACpDhB,GAAYiB,EAAQ,SAAUI,EAASC,KAAKL,EAAQ,WAE7CF,EAIR,SAASQ,GAAe93B,EAAMsvB,GAC7B,IAAIyI,EAAU/3B,EAAKy0B,MAAiBz0B,EAAKy0B,IAAe,IACpDuD,EAAQD,EAAQE,YAAc,SAAS9kC,GACtCA,EAAE+kC,gBAAkBrD,IACvBvF,KAIF7b,GAAUhL,KAAKqsB,IAAwB,SAASlrC,GAC/C2sC,GAAYv2B,EAAMpW,EAAMouC,MAQzBD,EAAQI,SAAWn4B,EAAKo4B,aAExBp4B,EAAKq4B,UAAUxnC,IAAI+jC,IAGpB,SAAS0D,GAAiBt4B,GACzB,IAAI+3B,EAAU/3B,EAAKy0B,KAAgB,GAC/BuD,EAAQD,EAAQE,YAEhBD,IACHvkB,GAAUhL,KAAKqsB,IAAwB,SAASlrC,GAC/C4sC,GAAex2B,EAAMpW,EAAMouC,aAGrBD,EAAQE,aAGhBj4B,EAAKq4B,UAAUE,OAAO3D,IAGvB,SAAS4D,GAAkBx4B,EAAM+W,EAAU3iB,GAC1C,IAAI2jC,EAAU/3B,EAAKy0B,MAAiBz0B,EAAKy0B,IAAe,IAGpD6C,EAAUS,EAAQT,QAAUF,GAAcN,IAAU,WACvD,GAAIiB,EAAQT,QAAS,CACpB,IAAImB,EAAYrkC,EAAMnE,QAAQyoC,qBAAuB14B,EAAK24B,WACtD78B,EAAI28B,EAAYA,EAAUG,YAAc,EAC5C7hB,EAAS2f,GAAY,SAAUtiC,IAC3BqkC,GAAaA,EAAUG,YAAc98B,GAAK1H,EAAMkD,QAQnDyf,EAAS2f,GAAY,SAAUtiC,SAOlC0jC,GAAe93B,GAAM,WACpB,GAAI+3B,EAAQT,QAAS,CACpB,IAAImB,EAAYz4B,EAAK24B,WACjBF,GAAaA,IAAcnB,EAAQqB,YACtCF,EAAUI,aAAavB,EAASmB,EAAUK,YAI3CxB,EAAQG,aAKX,SAASsB,GAAqB/4B,GAC7B,IAAI+3B,EAAU/3B,EAAKy0B,KAAgB,GAC/B6C,EAAUS,EAAQT,eAEfS,EAAQT,QACfgB,GAAiBt4B,GAEbs3B,GAAWA,EAAQqB,YACtBrB,EAAQqB,WAAWK,YAAY1B,GASjC,SAAS2B,GAAUC,EAAUC,GAE5B,IAAIpB,EAAUmB,EAASzE,MAAiByE,EAASzE,IAAe,IAChE,IAAKsD,EAAQqB,eAAgB,CAC5BrB,EAAQqB,gBAAiB,EACzBD,EAAM,mBAAqBA,EAC3B,IAAI5iC,EAAQ+wB,SAAShxB,cAAc,SACnCC,EAAMgxB,aAAa,OAAQ,YAC3BhxB,EAAMixB,YAAYF,SAASG,eAAe0R,IAC1CD,EAAS1R,YAAYjxB,IAIvB,IAAI8iC,GAAiB,CAQpBC,qBAAqB,EAOrBC,SAA4B,qBAAX/xB,QAA8C,qBAAb8f,SAOlDkS,cAAe,SAASliC,GACvB,IAAKpN,KAAKovC,oBAAqB,CAI9B,IAAIG,EAAOniC,EAAOoiC,YAAcpiC,EAAOoiC,cAAgBpS,SACnDqS,EAAaF,EAAKG,KAAOH,EAAOnS,SAAS/C,KAC7C0U,GAAUU,EAAYnF,MAIxBJ,eAAgB,SAAStpB,EAAM2gB,GACV,kBAAT3gB,EACVA,EAAOwc,SAASuS,eAAe/uB,GACrBA,EAAK9V,SAEf8V,EAAOA,EAAK,IAGTA,GAAQA,EAAKxT,SAEhBwT,EAAOA,EAAKxT,QAMb,IAAI/G,EAAUua,GAAQA,EAAKtT,YAAcsT,EAAKtT,WAAW,MASzD,OAAIjH,GAAWA,EAAQ+G,SAAWwT,GAGjC5gB,KAAKsvC,cAAc1uB,GACnB4qB,GAAW5qB,EAAM2gB,GACVl7B,GAGD,MAGRupC,eAAgB,SAASvpC,GACxB,IAAI+G,EAAS/G,EAAQ+G,OACrB,GAAKA,EAAOm9B,IAAZ,CAIA,IAAIqB,EAAUx+B,EAAOm9B,IAAaqB,QAClC,CAAC,SAAU,SAAS7gC,SAAQ,SAAS4R,GACpC,IAAI9U,EAAQ+jC,EAAQjvB,GAChB4M,GAAU3L,cAAc/V,GAC3BuF,EAAOyiC,gBAAgBlzB,GAEvBvP,EAAOiwB,aAAa1gB,EAAM9U,MAI5B0hB,GAAUhL,KAAKqtB,EAAQv/B,OAAS,IAAI,SAASxE,EAAOwD,GACnD+B,EAAOf,MAAMhB,GAAOxD,KAQrBuF,EAAOvL,MAAQuL,EAAOvL,aAEfuL,EAAOm9B,MAGf2B,iBAAkB,SAAShiC,EAAOxK,EAAMmtB,GACvC,IAAIzf,EAASlD,EAAMkD,OACnB,GAAa,WAAT1N,EAAJ,CAMA,IAAImuC,EAAUhhB,EAAS0d,MAAiB1d,EAAS0d,IAAe,IAC5DuF,EAAUjC,EAAQiC,UAAYjC,EAAQiC,QAAU,IAChDhC,EAAQgC,EAAQ5lC,EAAMsC,GAAK,IAAM9M,GAAQ,SAASitC,GACrD9f,EAAS6f,GAAgBC,EAAOziC,KAGjCmiC,GAAYj/B,EAAQ1N,EAAMouC,QAVzBQ,GAAkBlhC,EAAQyf,EAAU3iB,IAatCqiC,oBAAqB,SAASriC,EAAOxK,EAAMmtB,GAC1C,IAAIzf,EAASlD,EAAMkD,OACnB,GAAa,WAAT1N,EAAJ,CAMA,IAAImuC,EAAUhhB,EAAS0d,KAAgB,GACnCuF,EAAUjC,EAAQiC,SAAW,GAC7BhC,EAAQgC,EAAQ5lC,EAAMsC,GAAK,IAAM9M,GAChCouC,GAILxB,GAAel/B,EAAQ1N,EAAMouC,QAX5Be,GAAqBzhC,KA0BxBmc,GAAUwmB,SAAW1D,GAWrB9iB,GAAUymB,YAAc1D,GAGxB,IAAI2D,GAAiBd,GAAeE,SAAWF,GAAiBlF,GAO5DiG,GAAW3mB,GAAU7J,OAAO,CAI/B0K,WAAY,aASZ8f,eAAgB,aAQhB0F,eAAgB,aAShB1D,iBAAkB,aAQlBK,oBAAqB,cAEnB0D,IAEH3pB,EAAcR,KAAK,SAAU,CAC5BlZ,QAAS,KAQV,IAAIujC,GAAe,CAKlBrjC,SAAU,GAQVsjC,SAAU,EAMVC,SAAU,SAASzjC,GAClB,IAAIzH,EAAInF,KAAK8M,SACb,GAAK7F,OAAO2F,GAAS7B,SAAQ,SAASiC,IACV,IAAvB7H,EAAEnC,QAAQgK,IACb7H,EAAE8H,KAAKD,MAIThN,KAAKowC,YAONE,WAAY,SAAS1jC,GACpB,IAAIzH,EAAInF,KAAK8M,SACb,GAAK7F,OAAO2F,GAAS7B,SAAQ,SAASiC,GACrC,IAAIujC,EAAMprC,EAAEnC,QAAQgK,IACP,IAATujC,GACHprC,EAAEmnB,OAAOikB,EAAK,MAIhBvwC,KAAKowC,YAON3sB,MAAO,WACNzjB,KAAK8M,SAAW,GAChB9M,KAAKowC,YAQN5e,MAAO,WACN,OAAOxxB,KAAK8M,SAAShC,QAQtB0lC,OAAQ,WACP,OAAOxwC,KAAK8M,UAYb2jC,OAAQ,SAASvmC,EAAOpE,EAAM8N,GAC7B,IAEIvQ,EAAGqtC,EAAY1jC,EAAQs6B,EAAQta,EAF/B2jB,EAAc3wC,KAAK2wC,YAAYzmC,GAC/B2U,EAAO8xB,EAAY7lC,OAGvB,IAAKzH,EAAI,EAAGA,EAAIwb,IAAQxb,EAIvB,GAHAqtC,EAAaC,EAAYttC,GACzB2J,EAAS0jC,EAAW1jC,OACpBggB,EAAShgB,EAAOlH,GACM,oBAAXknB,IACVsa,EAAS,CAACp9B,GAAOjD,OAAO2M,GAAQ,IAChC0zB,EAAOr6B,KAAKyjC,EAAW3qC,UACc,IAAjCinB,EAAO1O,MAAMtR,EAAQs6B,IACxB,OAAO,EAKV,OAAO,GAQRqJ,YAAa,SAASzmC,GACrB,IAAI0mC,EAAQ1mC,EAAM2mC,WAAa3mC,EAAM2mC,SAAW,IAChD,GAAID,EAAMpkC,KAAOxM,KAAKowC,SACrB,OAAOQ,EAAMD,YAGd,IAAI/jC,EAAU,GACV+jC,EAAc,GACdpP,EAAUr3B,GAASA,EAAMq3B,QAAW,GACpCx7B,EAAWw7B,EAAOx7B,SAAWw7B,EAAOx7B,QAAQ6G,SAAY,GA2B5D,OAzBA5M,KAAK8M,SAAS7F,OAAOs6B,EAAO30B,SAAW,IAAI7B,SAAQ,SAASiC,GAC3D,IAAIujC,EAAM3jC,EAAQ5J,QAAQgK,GAC1B,IAAa,IAATujC,EAAJ,CAIA,IAAI/jC,EAAKQ,EAAOR,GACZgyB,EAAOz4B,EAAQyG,IACN,IAATgyB,KAIS,IAATA,IACHA,EAAOjV,GAAU/M,MAAM8J,EAAclX,OAAOxC,QAAQJ,KAGrDI,EAAQK,KAAKD,GACb2jC,EAAY1jC,KAAK,CAChBD,OAAQA,EACRjH,QAASy4B,GAAQ,UAInBoS,EAAMD,YAAcA,EACpBC,EAAMpkC,GAAKxM,KAAKowC,SACTO,GASRG,YAAa,SAAS5mC,UACdA,EAAM2mC,WAIXE,GAAoB,CAGvBC,aAAc,GAKdnrB,SAAU,GACVorB,kBAAmB,SAASvxC,EAAMwxC,EAAkBC,GACnDnxC,KAAKgxC,aAAatxC,GAAQwxC,EAC1BlxC,KAAK6lB,SAASnmB,GAAQ6pB,GAAU/M,MAAM20B,IAEvCC,oBAAqB,SAAS1xC,GAC7B,OAAOM,KAAKgxC,aAAa9rC,eAAexF,GAAQM,KAAKgxC,aAAatxC,QAAQiX,GAE3E06B,iBAAkB,SAAS3xC,GAE1B,OAAOM,KAAK6lB,SAAS3gB,eAAexF,GAAQ6pB,GAAUlK,MAAM1f,OAAOqf,OAAO,MAAO,CAACsH,EAAc/N,MAAOvY,KAAK6lB,SAASnmB,KAAU,IAEhI4xC,oBAAqB,SAAS5xC,EAAM6xC,GACnC,IAAIvxB,EAAKhgB,KACLggB,EAAG6F,SAAS3gB,eAAexF,KAC9BsgB,EAAG6F,SAASnmB,GAAQ6pB,GAAU7J,OAAOM,EAAG6F,SAASnmB,GAAO6xC,KAG1DC,kBAAmB,SAAStnC,GAE3Bqf,GAAUhL,KAAKrU,EAAM6jB,QAAQ,SAASxV,GAErCA,EAAMivB,UAAYjvB,EAAMxS,QAAQyhC,UAChCjvB,EAAMqjB,SAAWrjB,EAAMxS,QAAQ61B,SAC/BrjB,EAAM6D,OAAS7D,EAAMxS,QAAQqW,OAC7BmtB,GAAaC,OAAOt/B,EAAOqO,QAK1Bk5B,GAAmBloB,GAAUtL,eAC7ByzB,GAAenoB,GAAUV,IAAIX,cAEjC5B,EAAcR,KAAK,SAAU,CAC5B+V,SAAU,CACT8V,SAAS,EACTthB,OAAQ,KACRyI,KAAM,UACN8C,SAAU,UACV6J,WAAW,EACXhjC,gBAAiB,kBACjBmvC,eAAgB,OAChBC,aAAc,EACdC,kBAAmB,EACnBC,eAAgB,OAChBC,WAAY,OACZC,YAAa,EACbC,cAAe,OACfC,UAAW,OACXC,gBAAiB,OACjBC,cAAe,EACfC,gBAAiB,EACjBC,gBAAiB,OACjBC,YAAa,OACbC,SAAU,EACVC,SAAU,EACVC,aAAc,EACdC,UAAW,EACXrxC,aAAc,EACdsxC,mBAAoB,OACpBC,eAAe,EACfnwC,YAAa,gBACbrB,YAAa,EACbw6B,UAAW,CAEViX,YAAaxpB,GAAU7L,KACvBqe,MAAO,SAASiX,EAAcnzC,GAC7B,IAAIk8B,EAAQ,GACRvwB,EAAS3L,EAAK2L,OACdynC,EAAaznC,EAASA,EAAOV,OAAS,EAE1C,GAAIkoC,EAAaloC,OAAS,EAAG,CAC5B,IAAI8V,EAAOoyB,EAAa,GACpBpyB,EAAKpW,MACRuxB,EAAQnb,EAAKpW,MACHoW,EAAKqb,OACfF,EAAQnb,EAAKqb,OACHgX,EAAa,GAAKryB,EAAK1d,MAAQ+vC,IACzClX,EAAQvwB,EAAOoV,EAAK1d,QAItB,OAAO64B,GAERmX,WAAY3pB,GAAU7L,KAGtBy1B,WAAY5pB,GAAU7L,KAGtB01B,YAAa7pB,GAAU7L,KACvBlT,MAAO,SAASuzB,EAAal+B,GAC5B,IAAI2K,EAAQ3K,EAAKwK,SAAS0zB,EAAY1Q,cAAc7iB,OAAS,GAU7D,OARIA,IACHA,GAAS,MAEL+e,GAAU3L,cAAcmgB,EAAYl2B,OAGxC2C,GAASuzB,EAAY7B,OAFrB1xB,GAASuzB,EAAYl2B,MAIf2C,GAER6oC,WAAY,SAAStV,EAAa7zB,GACjC,IAAI4jB,EAAO5jB,EAAMokB,eAAeyP,EAAY1Q,cACxCimB,EAAgBxlB,EAAKjuB,KAAKk+B,EAAY76B,OACtC0mB,EAAO0pB,EAAcjyC,MACzB,MAAO,CACNsB,YAAainB,EAAKjnB,YAClBF,gBAAiBmnB,EAAKnnB,kBAGxB8wC,eAAgB,WACf,OAAOvzC,KAAKy8B,SAASyV,eAEtBsB,WAAYjqB,GAAU7L,KAGtB+1B,UAAWlqB,GAAU7L,KAGrBg2B,aAAcnqB,GAAU7L,KACxBi2B,OAAQpqB,GAAU7L,KAClBk2B,YAAarqB,GAAU7L,SAK1B,IAAIm2B,GAAc,CAOjBC,QAAS,SAAStzC,GACjB,IAAKA,EAASsK,OACb,OAAO,EAGR,IAAIzH,EAAGiS,EACH5T,EAAI,EACJC,EAAI,EACJ6vB,EAAQ,EAEZ,IAAKnuB,EAAI,EAAGiS,EAAM9U,EAASsK,OAAQzH,EAAIiS,IAAOjS,EAAG,CAChD,IAAI2pC,EAAKxsC,EAAS6C,GAClB,GAAI2pC,GAAMA,EAAGpiB,WAAY,CACxB,IAAIkc,EAAMkG,EAAGriB,kBACbjpB,GAAKolC,EAAIplC,EACTC,GAAKmlC,EAAInlC,IACP6vB,GAIJ,MAAO,CACN9vB,EAAGA,EAAI8vB,EACP7vB,EAAGA,EAAI6vB,IAWTkV,QAAS,SAASlmC,EAAUuzC,GAC3B,IAGI1wC,EAAGiS,EAAK0+B,EAHRtyC,EAAIqyC,EAAcryC,EAClBC,EAAIoyC,EAAcpyC,EAClBgkC,EAAch5B,OAAOi5B,kBAGzB,IAAKviC,EAAI,EAAGiS,EAAM9U,EAASsK,OAAQzH,EAAIiS,IAAOjS,EAAG,CAChD,IAAI2pC,EAAKxsC,EAAS6C,GAClB,GAAI2pC,GAAMA,EAAGpiB,WAAY,CACxB,IAAI0P,EAAS0S,EAAGtZ,iBACZnvB,EAAIglB,GAAU0qB,sBAAsBF,EAAezZ,GAEnD/1B,EAAIohC,IACPA,EAAcphC,EACdyvC,EAAiBhH,IAKpB,GAAIgH,EAAgB,CACnB,IAAIE,EAAKF,EAAerpB,kBACxBjpB,EAAIwyC,EAAGxyC,EACPC,EAAIuyC,EAAGvyC,EAGR,MAAO,CACND,EAAGA,EACHC,EAAGA,KAMN,SAASwyC,GAAa1yC,EAAM2yC,GAU3B,OATIA,IACC7qB,GAAU1L,QAAQu2B,GAErBvnC,MAAMnM,UAAUuM,KAAKqR,MAAM7c,EAAM2yC,GAEjC3yC,EAAKwL,KAAKmnC,IAIL3yC,EASR,SAAS4yC,GAAct7B,GACtB,OAAoB,kBAARA,GAAoBA,aAAerM,SAAWqM,EAAI/V,QAAQ,OAAS,EACvE+V,EAAIrE,MAAM,MAEXqE,EASR,SAASu7B,GAAkBhlB,GAC1B,IAAI8M,EAAS9M,EAAQoK,QACjB2C,EAAS/M,EAAQqK,SAAWrK,EAAQqS,OACpCz+B,EAAQosB,EAAQH,OAChB9B,EAAeiC,EAAQL,cACvB0O,EAAarO,EAAQnuB,OAAOmtB,eAAejB,GAAcsQ,WACzD4W,EAAa5W,EAAW/O,iBACxB4lB,EAAa7W,EAAWhP,iBAE5B,MAAO,CACNsN,OAAQG,EAASA,EAAOqY,iBAAiBvxC,EAAOmqB,GAAgB,GAChE6O,OAAQG,EAASA,EAAOoY,iBAAiBvxC,EAAOmqB,GAAgB,GAChE7iB,MAAO+pC,EAAa,GAAKA,EAAWE,iBAAiBvxC,EAAOmqB,GAAgB,GAC5ExlB,MAAO2sC,EAAa,GAAKA,EAAWC,iBAAiBvxC,EAAOmqB,GAAgB,GAC5EnqB,MAAOA,EACPmqB,aAAcA,EACd3rB,EAAG4tB,EAAQ9E,OAAO9oB,EAClBC,EAAG2tB,EAAQ9E,OAAO7oB,GAQpB,SAAS+yC,GAAaC,GACrB,IAAI5tB,EAAiBT,EAAclX,OAEnC,MAAO,CAENsjC,SAAUiC,EAAYjC,SACtBD,SAAUkC,EAAYlC,SACtBmC,OAAQD,EAAYC,OACpBC,OAAQF,EAAYE,OAGpBhsB,IAAK8rB,EAAY9rB,IACjBisB,cAAeH,EAAYG,cAG3B5C,cAAeyC,EAAYzC,cAC3B6C,gBAAiBtD,GAAiBkD,EAAYK,eAAgBjuB,EAAed,mBAC7EgvB,eAAgBxD,GAAiBkD,EAAYO,cAAenuB,EAAeZ,kBAC3EgvB,WAAYR,EAAYxC,UACxBiD,aAAc3D,GAAiBkD,EAAYS,aAAcruB,EAAeb,iBACxE+rB,YAAa0C,EAAY1C,YAGzBF,eAAgB4C,EAAY5C,eAC5BsD,iBAAkB5D,GAAiBkD,EAAYW,gBAAiBvuB,EAAed,mBAC/EsvB,gBAAiB9D,GAAiBkD,EAAY/C,eAAgB7qB,EAAeZ,kBAC7EqvB,cAAe/D,GAAiBkD,EAAYa,cAAezuB,EAAeb,iBAC1EuvB,YAAad,EAAY3C,WACzBH,aAAc8C,EAAY9C,aAC1BC,kBAAmB6C,EAAY7C,kBAG/BS,gBAAiBoC,EAAYpC,gBAC7BmD,kBAAmBjE,GAAiBkD,EAAYgB,iBAAkB5uB,EAAed,mBACjF2vB,iBAAkBnE,GAAiBkD,EAAYvC,gBAAiBrrB,EAAeZ,kBAC/E0vB,eAAgBpE,GAAiBkD,EAAYkB,eAAgB9uB,EAAeb,iBAC5E4vB,aAAcnB,EAAYnC,YAC1BH,cAAesC,EAAYtC,cAC3BC,gBAAiBqC,EAAYrC,gBAG7BM,UAAW+B,EAAY/B,UACvBrxC,aAAcozC,EAAYpzC,aAC1BkB,gBAAiBkyC,EAAYlyC,gBAC7BszC,QAAS,EACTC,sBAAuBrB,EAAY9B,mBACnCC,cAAe6B,EAAY7B,cAC3BnwC,YAAagyC,EAAYhyC,YACzBrB,YAAaqzC,EAAYrzC,aAO3B,SAAS20C,GAAeC,EAASplC,GAChC,IAAIhR,EAAMo2C,EAAQ/0C,OAAOrB,IAErB8B,EAA0B,EAAjBkP,EAAM2hC,SACf5wC,EAAQ,EAGRs0C,EAAOrlC,EAAMqlC,KACbC,EAAqBD,EAAKE,QAAO,SAAS7kB,EAAO8kB,GACpD,OAAO9kB,EAAQ8kB,EAASC,OAAOzrC,OAASwrC,EAASE,MAAM1rC,OAASwrC,EAASG,MAAM3rC,SAC7E,GACHsrC,GAAsBtlC,EAAMqiC,WAAWroC,OAASgG,EAAM2iC,UAAU3oC,OAEhE,IAAI4rC,EAAiB5lC,EAAMirB,MAAMjxB,OAC7B6rC,EAAkB7lC,EAAM6iC,OAAO7oC,OAC/B0qC,EAAgB1kC,EAAM0kC,cACtBJ,EAAetkC,EAAMskC,aACrBS,EAAiB/kC,EAAM+kC,eAE3Bj0C,GAAU80C,EAAiBlB,EAC3B5zC,GAAU80C,GAAkBA,EAAiB,GAAK5lC,EAAM+gC,aAAe,EACvEjwC,GAAU80C,EAAiB5lC,EAAMghC,kBAAoB,EACrDlwC,GAAUw0C,EAAqBhB,EAC/BxzC,GAAUw0C,GAAsBA,EAAqB,GAAKtlC,EAAMmhC,YAAc,EAC9ErwC,GAAU+0C,EAAkB7lC,EAAMwhC,gBAAkB,EACpD1wC,GAAU+0C,EAAkB,EAC5B/0C,GAAU+0C,GAAmBA,EAAkB,GAAK7lC,EAAMuhC,cAAgB,EAG1E,IAAIuE,EAAe,EACfC,EAAe,SAAS3iB,GAC3BryB,EAAQE,KAAKqP,IAAIvP,EAAO/B,EAAIg3C,YAAY5iB,GAAMryB,MAAQ+0C,IA4BvD,OAzBA92C,EAAI0mB,KAAO+C,GAAUwtB,WAAWvB,EAAe1kC,EAAMykC,gBAAiBzkC,EAAMukC,kBAC5E9rB,GAAUhL,KAAKzN,EAAMirB,MAAO8a,GAG5B/2C,EAAI0mB,KAAO+C,GAAUwtB,WAAW3B,EAActkC,EAAMmkC,eAAgBnkC,EAAMikC,iBAC1ExrB,GAAUhL,KAAKzN,EAAMqiC,WAAWlsC,OAAO6J,EAAM2iC,WAAYoD,GAGzDD,EAAe9lC,EAAMgiC,cAAiBsC,EAAe,EAAK,EAC1D7rB,GAAUhL,KAAK43B,GAAM,SAASG,GAC7B/sB,GAAUhL,KAAK+3B,EAASC,OAAQM,GAChCttB,GAAUhL,KAAK+3B,EAASE,MAAOK,GAC/BttB,GAAUhL,KAAK+3B,EAASG,MAAOI,MAIhCD,EAAe,EAGf92C,EAAI0mB,KAAO+C,GAAUwtB,WAAWlB,EAAgB/kC,EAAM8kC,iBAAkB9kC,EAAM4kC,mBAC9EnsB,GAAUhL,KAAKzN,EAAM6iC,OAAQkD,GAG7Bh1C,GAAS,EAAIiP,EAAM4hC,SAEZ,CACN7wC,MAAOA,EACPD,OAAQA,GAOV,SAASo1C,GAAmBd,EAAS/xB,GACpC,IAYI8yB,EAAIC,EACJC,EAAKC,EACLC,EAdAvmC,EAAQolC,EAAQ1rB,OAChBtgB,EAAQgsC,EAAQ/0C,OAChB40B,EAAYmgB,EAAQ/0C,OAAO40B,UAC3B6e,EAAS,SACTC,EAAS,SAET/jC,EAAMnP,EAAIwiB,EAAKviB,OAClBizC,EAAS,MACC/jC,EAAMnP,EAAKuI,EAAMtI,OAASuiB,EAAKviB,SACzCizC,EAAS,UAMV,IAAIyC,GAAQvhB,EAAUn1B,KAAOm1B,EAAUl1B,OAAS,EAC5C02C,GAAQxhB,EAAUj1B,IAAMi1B,EAAUh1B,QAAU,EAEjC,WAAX8zC,GACHoC,EAAK,SAASv1C,GACb,OAAOA,GAAK41C,GAEbJ,EAAK,SAASx1C,GACb,OAAOA,EAAI41C,KAGZL,EAAK,SAASv1C,GACb,OAAOA,GAAMyiB,EAAKtiB,MAAQ,GAE3Bq1C,EAAK,SAASx1C,GACb,OAAOA,GAAMwI,EAAMrI,MAASsiB,EAAKtiB,MAAQ,IAI3Cs1C,EAAM,SAASz1C,GACd,OAAOA,EAAIyiB,EAAKtiB,MAAQiP,EAAM8hC,UAAY9hC,EAAM6hC,aAAezoC,EAAMrI,OAEtEu1C,EAAM,SAAS11C,GACd,OAAOA,EAAIyiB,EAAKtiB,MAAQiP,EAAM8hC,UAAY9hC,EAAM6hC,aAAe,GAEhE0E,EAAK,SAAS11C,GACb,OAAOA,GAAK41C,EAAO,MAAQ,UAGxBN,EAAGnmC,EAAMpP,IACZkzC,EAAS,OAGLuC,EAAIrmC,EAAMpP,KACbkzC,EAAS,SACTC,EAASwC,EAAGvmC,EAAMnP,KAETu1C,EAAGpmC,EAAMpP,KACnBkzC,EAAS,QAGLwC,EAAItmC,EAAMpP,KACbkzC,EAAS,SACTC,EAASwC,EAAGvmC,EAAMnP,KAIpB,IAAI68B,EAAO0X,EAAQzZ,SACnB,MAAO,CACNmY,OAAQpW,EAAKoW,OAASpW,EAAKoW,OAASA,EACpCC,OAAQrW,EAAKqW,OAASrW,EAAKqW,OAASA,GAOtC,SAAS2C,GAAmBp2C,EAAI+iB,EAAMszB,EAAWvtC,GAEhD,IAAIxI,EAAIN,EAAGM,EACPC,EAAIP,EAAGO,EAEPixC,EAAYxxC,EAAGwxC,UACfD,EAAevxC,EAAGuxC,aAClBpxC,EAAeH,EAAGG,aAClBqzC,EAAS6C,EAAU7C,OACnBC,EAAS4C,EAAU5C,OACnB6C,EAAiB9E,EAAYD,EAC7BgF,EAAmBp2C,EAAeoxC,EAkCtC,MAhCe,UAAXiC,EACHlzC,GAAKyiB,EAAKtiB,MACW,WAAX+yC,IACVlzC,GAAMyiB,EAAKtiB,MAAQ,EACfH,EAAIyiB,EAAKtiB,MAAQqI,EAAMrI,QAC1BH,EAAIwI,EAAMrI,MAAQsiB,EAAKtiB,OAEpBH,EAAI,IACPA,EAAI,IAIS,QAAXmzC,EACHlzC,GAAK+1C,EAEL/1C,GADqB,WAAXkzC,EACL1wB,EAAKviB,OAAS81C,EAEbvzB,EAAKviB,OAAS,EAGN,WAAXizC,EACY,SAAXD,EACHlzC,GAAKg2C,EACgB,UAAX9C,IACVlzC,GAAKg2C,GAEe,SAAX9C,EACVlzC,GAAKi2C,EACgB,UAAX/C,IACVlzC,GAAKi2C,GAGC,CACNj2C,EAAGA,EACHC,EAAGA,GAIL,SAASi2C,GAAYx2C,EAAIknB,GACxB,MAAiB,WAAVA,EACJlnB,EAAGM,EAAIN,EAAGS,MAAQ,EACR,UAAVymB,EACClnB,EAAGM,EAAIN,EAAGS,MAAQT,EAAGsxC,SACrBtxC,EAAGM,EAAIN,EAAGsxC,SAMf,SAASmF,GAAwBz5B,GAChC,OAAO+1B,GAAa,GAAIE,GAAcj2B,IAGvC,IAAI05B,GAAYhtB,GAAapL,OAAO,CACnC0K,WAAY,WACXpqB,KAAKwqB,OAASkqB,GAAa10C,KAAKy8B,UAChCz8B,KAAK+3C,YAAc,IAKpBC,SAAU,WACT,IAAIh4B,EAAKhgB,KACLw+B,EAAOxe,EAAGyc,SACVX,EAAY0C,EAAK1C,UAEjBiX,EAAcjX,EAAUiX,YAAYz0B,MAAM0B,EAAInM,WAC9CkoB,EAAQD,EAAUC,MAAMzd,MAAM0B,EAAInM,WAClCq/B,EAAapX,EAAUoX,WAAW50B,MAAM0B,EAAInM,WAE5C2iC,EAAQ,GAKZ,OAJAA,EAAQrC,GAAaqC,EAAOnC,GAActB,IAC1CyD,EAAQrC,GAAaqC,EAAOnC,GAActY,IAC1Cya,EAAQrC,GAAaqC,EAAOnC,GAAcnB,IAEnCsD,GAIRyB,cAAe,WACd,OAAOJ,GAAwB73C,KAAKy8B,SAASX,UAAUqX,WAAW70B,MAAMte,KAAM6T,aAI/EqkC,QAAS,SAASlF,EAAcnzC,GAC/B,IAAImgB,EAAKhgB,KACL87B,EAAY9b,EAAGyc,SAASX,UACxBqc,EAAY,GAehB,OAbA5uB,GAAUhL,KAAKy0B,GAAc,SAASjV,GACrC,IAAIuY,EAAW,CACdC,OAAQ,GACRC,MAAO,GACPC,MAAO,IAERtC,GAAamC,EAASC,OAAQlC,GAAcvY,EAAUsX,YAAYhvC,KAAK4b,EAAI+d,EAAal+B,KACxFs0C,GAAamC,EAASE,MAAO1a,EAAUtxB,MAAMpG,KAAK4b,EAAI+d,EAAal+B,IACnEs0C,GAAamC,EAASG,MAAOpC,GAAcvY,EAAU0X,WAAWpvC,KAAK4b,EAAI+d,EAAal+B,KAEtFs4C,EAAUlrC,KAAKqpC,MAGT6B,GAIRC,aAAc,WACb,OAAOP,GAAwB73C,KAAKy8B,SAASX,UAAU2X,UAAUn1B,MAAMte,KAAM6T,aAK9EwkC,UAAW,WACV,IAAIr4B,EAAKhgB,KACL87B,EAAY9b,EAAGyc,SAASX,UAExB4X,EAAe5X,EAAU4X,aAAap1B,MAAM0B,EAAInM,WAChD8/B,EAAS7X,EAAU6X,OAAOr1B,MAAM0B,EAAInM,WACpC+/B,EAAc9X,EAAU8X,YAAYt1B,MAAM0B,EAAInM,WAE9C2iC,EAAQ,GAKZ,OAJAA,EAAQrC,GAAaqC,EAAOnC,GAAcX,IAC1C8C,EAAQrC,GAAaqC,EAAOnC,GAAcV,IAC1C6C,EAAQrC,GAAaqC,EAAOnC,GAAcT,IAEnC4C,GAGR5qC,OAAQ,SAASu9B,GAChB,IA8BI9lC,EAAGiS,EA9BH0K,EAAKhgB,KACLw+B,EAAOxe,EAAGyc,SAKV6b,EAAgBt4B,EAAGwK,OACnB1Z,EAAQkP,EAAGwK,OAASkqB,GAAalW,GACjC+Z,EAASv4B,EAAGw4B,QAEZ34C,EAAOmgB,EAAG+O,MAGV0oB,EAAY,CACf7C,OAAQ0D,EAAc1D,OACtBC,OAAQyD,EAAczD,QAEnB4D,EAAkB,CACrB/2C,EAAG42C,EAAc52C,EACjBC,EAAG22C,EAAc32C,GAEd+2C,EAAc,CACjB72C,MAAOy2C,EAAcz2C,MACrBD,OAAQ02C,EAAc12C,QAEnB+oB,EAAkB,CACrBjpB,EAAG42C,EAAcK,OACjBh3C,EAAG22C,EAAcM,QAKlB,GAAIL,EAAOztC,OAAQ,CAClBgG,EAAMilC,QAAU,EAEhB,IAAI8C,EAAc,GACdC,EAAkB,GACtBnuB,EAAkBkpB,GAAYrV,EAAK5C,UAAUx3B,KAAK4b,EAAIu4B,EAAQv4B,EAAG+4B,gBAEjE,IAAI/F,EAAe,GACnB,IAAK3vC,EAAI,EAAGiS,EAAMijC,EAAOztC,OAAQzH,EAAIiS,IAAOjS,EAC3C2vC,EAAa/lC,KAAKqnC,GAAkBiE,EAAOl1C,KAIxCm7B,EAAKpzB,SACR4nC,EAAeA,EAAa5nC,QAAO,SAAS7C,GAC3C,OAAOi2B,EAAKpzB,OAAO7C,EAAG1I,OAKpB2+B,EAAKwa,WACRhG,EAAeA,EAAatrB,MAAK,SAASnf,EAAG4I,GAC5C,OAAOqtB,EAAKwa,SAASzwC,EAAG4I,EAAGtR,OAK7B0pB,GAAUhL,KAAKy0B,GAAc,SAASjV,GACrC8a,EAAY5rC,KAAKuxB,EAAK1C,UAAUuX,WAAWjvC,KAAK4b,EAAI+d,EAAa/d,EAAG7e,SACpE23C,EAAgB7rC,KAAKuxB,EAAK1C,UAAUyX,eAAenvC,KAAK4b,EAAI+d,EAAa/d,EAAG7e,YAK7E2P,EAAMirB,MAAQ/b,EAAGg4B,SAAShF,EAAcnzC,GACxCiR,EAAMqiC,WAAanzB,EAAGi4B,cAAcjF,EAAcnzC,GAClDiR,EAAMqlC,KAAOn2B,EAAGk4B,QAAQlF,EAAcnzC,GACtCiR,EAAM2iC,UAAYzzB,EAAGo4B,aAAapF,EAAcnzC,GAChDiR,EAAM6iC,OAAS3zB,EAAGq4B,UAAUrF,EAAcnzC,GAG1CiR,EAAMpP,EAAIipB,EAAgBjpB,EAC1BoP,EAAMnP,EAAIgpB,EAAgBhpB,EAC1BmP,EAAM6hC,aAAenU,EAAKmU,aAC1B7hC,EAAM+nC,YAAcA,EACpB/nC,EAAMgoC,gBAAkBA,EAGxBhoC,EAAMmoC,WAAajG,EAGnB0F,EAAczC,GAAej2C,KAAM8Q,GACnC2mC,EAAYT,GAAmBh3C,KAAM04C,GAErCD,EAAkBjB,GAAmB1mC,EAAO4nC,EAAajB,EAAWz3B,EAAG7e,aAEvE2P,EAAMilC,QAAU,EAoBjB,OAjBAjlC,EAAM8jC,OAAS6C,EAAU7C,OACzB9jC,EAAM+jC,OAAS4C,EAAU5C,OACzB/jC,EAAMpP,EAAI+2C,EAAgB/2C,EAC1BoP,EAAMnP,EAAI82C,EAAgB92C,EAC1BmP,EAAMjP,MAAQ62C,EAAY72C,MAC1BiP,EAAMlP,OAAS82C,EAAY92C,OAG3BkP,EAAM6nC,OAAShuB,EAAgBjpB,EAC/BoP,EAAM8nC,OAASjuB,EAAgBhpB,EAE/Bqe,EAAGwK,OAAS1Z,EAERq4B,GAAW3K,EAAKnO,QACnBmO,EAAKnO,OAAOjsB,KAAK4b,EAAIlP,GAGfkP,GAGRk5B,UAAW,SAASC,EAAch1B,GACjC,IAAIrkB,EAAME,KAAKmB,OAAOrB,IAClBsB,EAAKpB,KAAKqB,MACV+3C,EAAgBp5C,KAAKq5C,iBAAiBF,EAAch1B,EAAM/iB,GAE9DtB,EAAI0D,OAAO41C,EAAcjjB,GAAIijB,EAAchjB,IAC3Ct2B,EAAI0D,OAAO41C,EAAchmC,GAAIgmC,EAAcjmC,IAC3CrT,EAAI0D,OAAO41C,EAAcE,GAAIF,EAAcG,KAE5CF,iBAAkB,SAASF,EAAch1B,EAAM/iB,GAC9C,IAAI+0B,EAAI/iB,EAAIkmC,EAAIljB,EAAIjjB,EAAIomC,EACpB3G,EAAYxxC,EAAGwxC,UACfrxC,EAAeH,EAAGG,aAClBqzC,EAASxzC,EAAGwzC,OACZC,EAASzzC,EAAGyzC,OACZ2E,EAAML,EAAaz3C,EACnB+3C,EAAMN,EAAax3C,EACnBE,EAAQsiB,EAAKtiB,MACbD,EAASuiB,EAAKviB,OAElB,GAAe,WAAXizC,EACH1hC,EAAKsmC,EAAO73C,EAAS,EAEN,SAAXgzC,GACHze,EAAKqjB,EACLpmC,EAAK+iB,EAAKyc,EACV0G,EAAKnjB,EAELC,EAAKjjB,EAAKy/B,EACV2G,EAAKpmC,EAAKy/B,IAEVzc,EAAKqjB,EAAM33C,EACXuR,EAAK+iB,EAAKyc,EACV0G,EAAKnjB,EAELC,EAAKjjB,EAAKy/B,EACV2G,EAAKpmC,EAAKy/B,QAgBX,GAbe,SAAXgC,GACHxhC,EAAKomC,EAAMj4C,EAAe,EAC1B40B,EAAK/iB,EAAKw/B,EACV0G,EAAKlmC,EAAKw/B,GACW,UAAXgC,GACVxhC,EAAKomC,EAAM33C,EAAQN,EAAeqxC,EAClCzc,EAAK/iB,EAAKw/B,EACV0G,EAAKlmC,EAAKw/B,IAEVx/B,EAAKhS,EAAGu3C,OACRxiB,EAAK/iB,EAAKw/B,EACV0G,EAAKlmC,EAAKw/B,GAEI,QAAXiC,EACHze,EAAKqjB,EACLtmC,EAAKijB,EAAKwc,EACV2G,EAAKnjB,MACC,CACNA,EAAKqjB,EAAM73C,EACXuR,EAAKijB,EAAKwc,EACV2G,EAAKnjB,EAEL,IAAIsjB,EAAMJ,EACVA,EAAKnjB,EACLA,EAAKujB,EAGP,MAAO,CAACvjB,GAAIA,EAAI/iB,GAAIA,EAAIkmC,GAAIA,EAAIljB,GAAIA,EAAIjjB,GAAIA,EAAIomC,GAAIA,IAGrDI,UAAW,SAASjX,EAAIthC,EAAItB,GAC3B,IAEI01C,EAAe3D,EAAcxuC,EAF7B04B,EAAQ36B,EAAG26B,MACXjxB,EAASixB,EAAMjxB,OAGnB,GAAIA,EAAQ,CACX,IAAI8uC,EAAYlI,GAAatwC,EAAGynB,IAAKznB,EAAGM,EAAGN,EAAGS,OAa9C,IAXA6gC,EAAGhhC,EAAIk2C,GAAYx2C,EAAIA,EAAGq0C,aAE1B31C,EAAIuoB,UAAYuxB,EAAUvxB,UAAUjnB,EAAGq0C,aACvC31C,EAAI+5C,aAAe,SAEnBrE,EAAgBp0C,EAAGo0C,cACnB3D,EAAezwC,EAAGywC,aAElB/xC,EAAI0C,UAAYpB,EAAG2wC,eACnBjyC,EAAI0mB,KAAO+C,GAAUwtB,WAAWvB,EAAep0C,EAAGm0C,gBAAiBn0C,EAAGi0C,kBAEjEhyC,EAAI,EAAGA,EAAIyH,IAAUzH,EACzBvD,EAAIg6C,SAAS/d,EAAM14B,GAAIu2C,EAAUl4C,EAAEghC,EAAGhhC,GAAIghC,EAAG/gC,EAAI6zC,EAAgB,GACjE9S,EAAG/gC,GAAK6zC,EAAgB3D,EAEpBxuC,EAAI,IAAMyH,IACb43B,EAAG/gC,GAAKP,EAAG0wC,kBAAoBD,KAMnCkI,SAAU,SAASrX,EAAIthC,EAAItB,GAC1B,IAeIw2C,EAAU0D,EAAWnB,EAAarC,EAAOnzC,EAAG+6B,EAAGvf,EAAMymB,EAfrD8P,EAAeh0C,EAAGg0C,aAClBnD,EAAc7wC,EAAG6wC,YACjBE,EAAY/wC,EAAG+zC,WACfgB,EAAO/0C,EAAG+0C,KACV8D,EAAiB74C,EAAG0xC,cACpBoH,EAAe,EACfC,EAASF,EAAiBrC,GAAYx2C,EAAI,QAAU,EAEpDw4C,EAAYlI,GAAatwC,EAAGynB,IAAKznB,EAAGM,EAAGN,EAAGS,OAE1Cu4C,EAAiB,SAASlmB,GAC7Bp0B,EAAIg6C,SAAS5lB,EAAM0lB,EAAUl4C,EAAEghC,EAAGhhC,EAAIw4C,GAAexX,EAAG/gC,EAAIyzC,EAAe,GAC3E1S,EAAG/gC,GAAKyzC,EAAenD,GAIpBoI,EAA0BT,EAAUvxB,UAAU8pB,GAiBlD,IAfAryC,EAAIuoB,UAAY8pB,EAChBryC,EAAI+5C,aAAe,SACnB/5C,EAAI0mB,KAAO+C,GAAUwtB,WAAW3B,EAAch0C,EAAG6zC,eAAgB7zC,EAAG2zC,iBAEpErS,EAAGhhC,EAAIk2C,GAAYx2C,EAAIi5C,GAGvBv6C,EAAI0C,UAAYpB,EAAG8wC,cACnB3oB,GAAUhL,KAAKnd,EAAG+xC,WAAYiH,GAE9BF,EAAeD,GAA8C,UAA5BI,EAChB,WAAdlI,EAA0BiD,EAAe,EAAI,EAAMA,EAAe,EAClE,EAGE/xC,EAAI,EAAGwb,EAAOs3B,EAAKrrC,OAAQzH,EAAIwb,IAAQxb,EAAG,CAS9C,IARAizC,EAAWH,EAAK9yC,GAChB22C,EAAY54C,EAAG03C,gBAAgBz1C,GAC/Bw1C,EAAcz3C,EAAGy3C,YAAYx1C,GAE7BvD,EAAI0C,UAAYw3C,EAChBzwB,GAAUhL,KAAK+3B,EAASC,OAAQ6D,GAEhC5D,EAAQF,EAASE,MACZpY,EAAI,EAAGkH,EAAOkR,EAAM1rC,OAAQszB,EAAIkH,IAAQlH,EAAG,CAE/C,GAAI6b,EAAgB,CACnB,IAAIK,EAAYV,EAAUl4C,EAAEy4C,GAG5Br6C,EAAI0C,UAAYpB,EAAG40C,sBACnBl2C,EAAIy3B,SAASqiB,EAAUpxB,WAAW8xB,EAAWlF,GAAe1S,EAAG/gC,EAAGyzC,EAAcA,GAGhFt1C,EAAI8C,UAAY,EAChB9C,EAAI4C,YAAcm2C,EAAYl2C,YAC9B7C,EAAIy6C,WAAWX,EAAUpxB,WAAW8xB,EAAWlF,GAAe1S,EAAG/gC,EAAGyzC,EAAcA,GAGlFt1C,EAAI0C,UAAYq2C,EAAYp2C,gBAC5B3C,EAAIy3B,SAASqiB,EAAUpxB,WAAWoxB,EAAUrxB,MAAM+xB,EAAW,GAAIlF,EAAe,GAAI1S,EAAG/gC,EAAI,EAAGyzC,EAAe,EAAGA,EAAe,GAC/Ht1C,EAAI0C,UAAYw3C,EAGjBI,EAAe5D,EAAMpY,IAGtB7U,GAAUhL,KAAK+3B,EAASG,MAAO2D,GAIhCF,EAAe,EAGf3wB,GAAUhL,KAAKnd,EAAGqyC,UAAW2G,GAC7B1X,EAAG/gC,GAAKswC,GAGTuI,WAAY,SAAS9X,EAAIthC,EAAItB,GAC5B,IAEI+1C,EAAgBxyC,EAFhBswC,EAASvyC,EAAGuyC,OACZ7oC,EAAS6oC,EAAO7oC,OAGpB,GAAIA,EAAQ,CACX,IAAI8uC,EAAYlI,GAAatwC,EAAGynB,IAAKznB,EAAGM,EAAGN,EAAGS,OAa9C,IAXA6gC,EAAGhhC,EAAIk2C,GAAYx2C,EAAIA,EAAG00C,cAC1BpT,EAAG/gC,GAAKP,EAAGkxC,gBAEXxyC,EAAIuoB,UAAYuxB,EAAUvxB,UAAUjnB,EAAG00C,cACvCh2C,EAAI+5C,aAAe,SAEnBhE,EAAiBz0C,EAAGy0C,eAEpB/1C,EAAI0C,UAAYpB,EAAGmxC,gBACnBzyC,EAAI0mB,KAAO+C,GAAUwtB,WAAWlB,EAAgBz0C,EAAGw0C,iBAAkBx0C,EAAGs0C,mBAEnEryC,EAAI,EAAGA,EAAIyH,IAAUzH,EACzBvD,EAAIg6C,SAASnG,EAAOtwC,GAAIu2C,EAAUl4C,EAAEghC,EAAGhhC,GAAIghC,EAAG/gC,EAAIk0C,EAAiB,GACnEnT,EAAG/gC,GAAKk0C,EAAiBz0C,EAAGixC,gBAK/BoI,eAAgB,SAAS/X,EAAIthC,EAAItB,EAAK44C,GACrC54C,EAAI0C,UAAYpB,EAAGqB,gBACnB3C,EAAI4C,YAActB,EAAGuB,YACrB7C,EAAI8C,UAAYxB,EAAGE,YACnB,IAAIszC,EAASxzC,EAAGwzC,OACZC,EAASzzC,EAAGyzC,OACZnzC,EAAIghC,EAAGhhC,EACPC,EAAI+gC,EAAG/gC,EACPE,EAAQ62C,EAAY72C,MACpBD,EAAS82C,EAAY92C,OACrB2B,EAASnC,EAAGG,aAEhBzB,EAAIyC,YACJzC,EAAIsD,OAAO1B,EAAI6B,EAAQ5B,GACR,QAAXkzC,GACH70C,KAAKk5C,UAAUxW,EAAIgW,GAEpB54C,EAAI0D,OAAO9B,EAAIG,EAAQ0B,EAAQ5B,GAC/B7B,EAAI2D,iBAAiB/B,EAAIG,EAAOF,EAAGD,EAAIG,EAAOF,EAAI4B,GACnC,WAAXsxC,GAAkC,UAAXD,GAC1B50C,KAAKk5C,UAAUxW,EAAIgW,GAEpB54C,EAAI0D,OAAO9B,EAAIG,EAAOF,EAAIC,EAAS2B,GACnCzD,EAAI2D,iBAAiB/B,EAAIG,EAAOF,EAAIC,EAAQF,EAAIG,EAAQ0B,EAAQ5B,EAAIC,GACrD,WAAXizC,GACH70C,KAAKk5C,UAAUxW,EAAIgW,GAEpB54C,EAAI0D,OAAO9B,EAAI6B,EAAQ5B,EAAIC,GAC3B9B,EAAI2D,iBAAiB/B,EAAGC,EAAIC,EAAQF,EAAGC,EAAIC,EAAS2B,GACrC,WAAXsxC,GAAkC,SAAXD,GAC1B50C,KAAKk5C,UAAUxW,EAAIgW,GAEpB54C,EAAI0D,OAAO9B,EAAGC,EAAI4B,GAClBzD,EAAI2D,iBAAiB/B,EAAGC,EAAGD,EAAI6B,EAAQ5B,GACvC7B,EAAI+jB,YAEJ/jB,EAAI4D,OAEAtC,EAAGE,YAAc,GACpBxB,EAAI6D,UAINhD,KAAM,WACL,IAAIb,EAAME,KAAKmB,OAAOrB,IAClBsB,EAAKpB,KAAKqB,MAEd,GAAmB,IAAfD,EAAG20C,QAAP,CAIA,IAAI2C,EAAc,CACjB72C,MAAOT,EAAGS,MACVD,OAAQR,EAAGQ,QAER8gC,EAAK,CACRhhC,EAAGN,EAAGM,EACNC,EAAGP,EAAGO,GAIHo0C,EAAUh0C,KAAKE,IAAIb,EAAG20C,QAAU,MAAQ,EAAI30C,EAAG20C,QAG/C2E,EAAoBt5C,EAAG26B,MAAMjxB,QAAU1J,EAAG+xC,WAAWroC,QAAU1J,EAAG+0C,KAAKrrC,QAAU1J,EAAGqyC,UAAU3oC,QAAU1J,EAAGuyC,OAAO7oC,OAElH9K,KAAKy8B,SAASkV,SAAW+I,IAC5B56C,EAAIukB,OACJvkB,EAAI66C,YAAc5E,EAGlB/1C,KAAKy6C,eAAe/X,EAAIthC,EAAItB,EAAK44C,GAGjChW,EAAG/gC,GAAKP,EAAGqxC,SAEXlpB,GAAUV,IAAIC,sBAAsBhpB,EAAKsB,EAAG0zC,eAG5C90C,KAAK25C,UAAUjX,EAAIthC,EAAItB,GAGvBE,KAAK+5C,SAASrX,EAAIthC,EAAItB,GAGtBE,KAAKw6C,WAAW9X,EAAIthC,EAAItB,GAExBypB,GAAUV,IAAIQ,qBAAqBvpB,EAAKsB,EAAG0zC,eAE3Ch1C,EAAI0kB,aAUNo2B,YAAa,SAAS3xC,GACrB,IAAI+W,EAAKhgB,KACL+F,EAAUia,EAAGyc,SACb0M,GAAU,EAgCd,OA9BAnpB,EAAG+3B,YAAc/3B,EAAG+3B,aAAe,GAGpB,aAAX9uC,EAAEvJ,KACLsgB,EAAGw4B,QAAU,IAEbx4B,EAAGw4B,QAAUx4B,EAAG7e,OAAO05C,0BAA0B5xC,EAAGlD,EAAQ+yB,KAAM/yB,GAC9DA,EAAQ0Y,SACXuB,EAAGw4B,QAAQ/5B,WAKb0qB,GAAW5f,GAAU7K,YAAYsB,EAAGw4B,QAASx4B,EAAG+3B,aAG5C5O,IACHnpB,EAAG+3B,YAAc/3B,EAAGw4B,SAEhBzyC,EAAQ4rC,SAAW5rC,EAAQsqB,UAC9BrQ,EAAG+4B,eAAiB,CACnBr3C,EAAGuH,EAAEvH,EACLC,EAAGsH,EAAEtH,GAGNqe,EAAGpU,QAAO,GACVoU,EAAGuK,UAIE4e,KAOL2R,GAAgBjH,GAEhBkH,GAAejD,GACnBiD,GAAalH,YAAciH,GAE3B,IAAIE,GAAmBzxB,GAAUtL,eA4BjC,SAASg9B,KACR,OAAO1xB,GAAUlK,MAAM1f,OAAOqf,OAAO,MAAO,GAAGpI,MAAMxS,KAAKyP,WAAY,CACrE4L,OAAQ,SAASpU,EAAKqR,EAAQD,EAAQ1W,GACrC,GAAY,UAARsF,GAA2B,UAARA,EAAiB,CACvC,IACIhI,EAAG3D,EAAM6Y,EADT2iC,EAAOz+B,EAAOpR,GAAKP,OAOvB,IAJK4R,EAAOrR,KACXqR,EAAOrR,GAAO,IAGVhI,EAAI,EAAGA,EAAI63C,IAAQ73C,EACvBkV,EAAQkE,EAAOpR,GAAKhI,GACpB3D,EAAOs7C,GAAiBziC,EAAM7Y,KAAc,UAAR2L,EAAkB,WAAa,UAE/DhI,GAAKqZ,EAAOrR,GAAKP,QACpB4R,EAAOrR,GAAK4B,KAAK,KAGbyP,EAAOrR,GAAKhI,GAAG3D,MAAS6Y,EAAM7Y,MAAQ6Y,EAAM7Y,OAASgd,EAAOrR,GAAKhI,GAAG3D,KAGxE6pB,GAAUlK,MAAM3C,EAAOrR,GAAKhI,GAAI,CAAC0tC,GAAkBM,iBAAiB3xC,GAAO6Y,IAG3EgR,GAAUlK,MAAM3C,EAAOrR,GAAKhI,GAAIkV,QAIlCgR,GAAUrK,QAAQ7T,EAAKqR,EAAQD,EAAQ1W,MAW3C,SAASo1C,KACR,OAAO5xB,GAAUlK,MAAM1f,OAAOqf,OAAO,MAAO,GAAGpI,MAAMxS,KAAKyP,WAAY,CACrE4L,OAAQ,SAASpU,EAAKqR,EAAQD,EAAQ1W,GACrC,IAAIoZ,EAAOzC,EAAOrR,IAAQ1L,OAAOqf,OAAO,MACpCI,EAAO3C,EAAOpR,GAEN,WAARA,EAEHqR,EAAOrR,GAAO4vC,GAAiB97B,EAAMC,GACnB,UAAR/T,EAEVqR,EAAOrR,GAAOke,GAAUlK,MAAMF,EAAM,CAAC4xB,GAAkBM,iBAAiBjyB,EAAK1f,MAAO0f,IAEpFmK,GAAUrK,QAAQ7T,EAAKqR,EAAQD,EAAQ1W,MAM3C,SAASq1C,GAAW7Z,GACnBA,EAASA,GAAU5hC,OAAOqf,OAAO,MAIjC,IAAInf,EAAO0hC,EAAO1hC,KAAO0hC,EAAO1hC,MAAQ,GASxC,OARAA,EAAKwK,SAAWxK,EAAKwK,UAAY,GACjCxK,EAAK2L,OAAS3L,EAAK2L,QAAU,GAE7B+1B,EAAOx7B,QAAUo1C,GAChB70B,EAAclX,OACdkX,EAAcib,EAAO7hC,MACrB6hC,EAAOx7B,SAAW,IAEZw7B,EAGR,SAAS8Z,GAAanxC,GACrB,IAAIoxC,EAAapxC,EAAMnE,QAEvBwjB,GAAUhL,KAAKrU,EAAM6jB,QAAQ,SAASxV,GACrCgxB,GAAaG,UAAUx/B,EAAOqO,MAG/B+iC,EAAaH,GACZ70B,EAAclX,OACdkX,EAAcpc,EAAMq3B,OAAO7hC,MAC3B47C,GAEDpxC,EAAMnE,QAAUmE,EAAMq3B,OAAOx7B,QAAUu1C,EACvCpxC,EAAMqxC,sBACNrxC,EAAMsxC,sBAGNtxC,EAAMgsC,QAAQzZ,SAAW6e,EAAWzf,SACpC3xB,EAAMgsC,QAAQ9rB,aAGf,SAASqxB,GAAqBC,EAAUC,EAAQz4C,GAC/C,IAAIsJ,EACAovC,EAAQ,SAASr0C,GACpB,OAAOA,EAAIiF,KAAOA,GAGnB,GACCA,EAAKmvC,EAASz4C,UACNqmB,GAAU8C,UAAUqvB,EAAUE,IAAU,GAEjD,OAAOpvC,EAGR,SAASqvC,GAAqBjgB,GAC7B,MAAoB,QAAbA,GAAmC,WAAbA,EAG9B,SAASkgB,GAAcC,EAAIC,GAC1B,OAAO,SAASzzC,EAAG4I,GAClB,OAAO5I,EAAEwzC,KAAQ5qC,EAAE4qC,GAChBxzC,EAAEyzC,GAAM7qC,EAAE6qC,GACVzzC,EAAEwzC,GAAM5qC,EAAE4qC,IAhJfz1B,EAAcR,KAAK,SAAU,CAC5BtlB,SAAU,GACVy7C,OAAQ,CACP,YACA,WACA,QACA,aACA,aAED/rB,MAAO,CACNgsB,QAAS,KACTpjB,KAAM,UACN2M,WAAW,EACX0W,kBAAmB,KAEpBve,QAAS,KACT4Q,qBAAqB,EACrB4N,YAAY,EACZC,4BAA6B,IAkI9B,IAAI97C,GAAQ,SAASqgB,EAAM2gB,GAE1B,OADAvhC,KAAKs8C,UAAU17B,EAAM2gB,GACdvhC,MAGRupB,GAAU7J,OAAOnf,GAAMG,UAA+B,CAIrD47C,UAAW,SAAS17B,EAAM2gB,GACzB,IAAIvhB,EAAKhgB,KAETuhC,EAAS6Z,GAAW7Z,GAEpB,IAAIl7B,EAAU6pC,GAAShG,eAAetpB,EAAM2gB,GACxCn0B,EAAS/G,GAAWA,EAAQ+G,OAC5BxL,EAASwL,GAAUA,EAAOxL,OAC1BC,EAAQuL,GAAUA,EAAOvL,MAE7Bme,EAAGxT,GAAK+c,GAAU5L,MAClBqC,EAAGlgB,IAAMuG,EACT2Z,EAAG5S,OAASA,EACZ4S,EAAGuhB,OAASA,EACZvhB,EAAGne,MAAQA,EACXme,EAAGpe,OAASA,EACZoe,EAAG8rB,YAAclqC,EAASC,EAAQD,EAAS,KAC3Coe,EAAGja,QAAUw7B,EAAOx7B,QACpBia,EAAGu8B,iBAAkB,EACrBv8B,EAAGypB,QAAU,GAUbzpB,EAAG9V,MAAQ8V,EACXA,EAAG2d,WAAa3d,EAGhBzf,GAAMi8C,UAAUx8B,EAAGxT,IAAMwT,EAGzBrgB,OAAO+E,eAAesb,EAAI,OAAQ,CACjCnb,IAAK,WACJ,OAAOmb,EAAGuhB,OAAO1hC,MAElBwrB,IAAK,SAASxjB,GACbmY,EAAGuhB,OAAO1hC,KAAOgI,KAIdxB,GAAY+G,GASjB4S,EAAGoK,aACHpK,EAAGpU,UALFgR,QAAQC,MAAM,sEAWhBuN,WAAY,WACX,IAAIpK,EAAKhgB,KAmBT,OAhBAmwC,GAAaM,OAAOzwB,EAAI,cAExBuJ,GAAUkzB,YAAYz8B,EAAIA,EAAGja,QAAQ22C,kBAErC18B,EAAG28B,aAEC38B,EAAGja,QAAQq2C,YAEdp8B,EAAG48B,QAAO,GAGX58B,EAAG68B,cAGH1M,GAAaM,OAAOzwB,EAAI,aAEjBA,GAGRyD,MAAO,WAEN,OADA8F,GAAUnc,OAAOqW,MAAMzjB,MAChBA,MAGR88C,KAAM,WAGL,OADApxB,GAAgBU,gBAAgBpsB,MACzBA,MAGR48C,OAAQ,SAASG,GAChB,IAAI/8B,EAAKhgB,KACL+F,EAAUia,EAAGja,QACbqH,EAAS4S,EAAG5S,OACZ0+B,EAAe/lC,EAAQyoC,qBAAuBxuB,EAAG8rB,aAAgB,KAMjE3D,EAAWpmC,KAAKqP,IAAI,EAAGrP,KAAKmN,MAAMqa,GAAUyzB,gBAAgB5vC,KAC5Dg7B,EAAYrmC,KAAKqP,IAAI,EAAGrP,KAAKmN,MAAM48B,EAAc3D,EAAW2D,EAAcviB,GAAU0zB,iBAAiB7vC,KAEzG,IAAI4S,EAAGne,QAAUsmC,GAAYnoB,EAAGpe,SAAWwmC,KAI3Ch7B,EAAOvL,MAAQme,EAAGne,MAAQsmC,EAC1B/6B,EAAOxL,OAASoe,EAAGpe,OAASwmC,EAC5Bh7B,EAAOf,MAAMxK,MAAQsmC,EAAW,KAChC/6B,EAAOf,MAAMzK,OAASwmC,EAAY,KAElC7e,GAAUkzB,YAAYz8B,EAAIja,EAAQ22C,mBAE7BK,GAAQ,CAEZ,IAAIG,EAAU,CAACr7C,MAAOsmC,EAAUvmC,OAAQwmC,GACxC+H,GAAaM,OAAOzwB,EAAI,SAAU,CAACk9B,IAG/Bn3C,EAAQo3C,UACXp3C,EAAQo3C,SAASn9B,EAAIk9B,GAGtBl9B,EAAG88B,OACH98B,EAAGpU,OAAO,CACT2f,SAAUxlB,EAAQs2C,gCAKrBd,oBAAqB,WACpB,IAAIx1C,EAAU/F,KAAK+F,QACfq3C,EAAgBr3C,EAAQgoB,QAAU,GAClCsvB,EAAet3C,EAAQwS,MAE3BgR,GAAUhL,KAAK6+B,EAAcjvB,OAAO,SAASmvB,EAAcp6C,GACrDo6C,EAAa9wC,KACjB8wC,EAAa9wC,GAAKivC,GAAqB2B,EAAcjvB,MAAO,UAAWjrB,OAIzEqmB,GAAUhL,KAAK6+B,EAAc/uB,OAAO,SAASkvB,EAAcr6C,GACrDq6C,EAAa/wC,KACjB+wC,EAAa/wC,GAAKivC,GAAqB2B,EAAc/uB,MAAO,UAAWnrB,OAIrEm6C,IACHA,EAAa7wC,GAAK6wC,EAAa7wC,IAAM,UAOvCgvC,oBAAqB,WACpB,IAAIx7B,EAAKhgB,KACL+F,EAAUia,EAAGja,QACbgoB,EAAS/N,EAAG+N,QAAU,GACtBuY,EAAQ,GACRkX,EAAU79C,OAAOsL,KAAK8iB,GAAQsoB,QAAO,SAAS9uC,EAAKiF,GAEtD,OADAjF,EAAIiF,IAAM,EACHjF,IACL,IAECxB,EAAQgoB,SACXuY,EAAQA,EAAMr/B,QACZlB,EAAQgoB,OAAOI,OAAS,IAAI7jB,KAAI,SAASgzC,GACzC,MAAO,CAACv3C,QAASu3C,EAAcG,MAAO,WAAYC,UAAW,cAE7D33C,EAAQgoB,OAAOM,OAAS,IAAI/jB,KAAI,SAASizC,GACzC,MAAO,CAACx3C,QAASw3C,EAAcE,MAAO,SAAUC,UAAW,aAK1D33C,EAAQwS,OACX+tB,EAAMr5B,KAAK,CACVlH,QAASA,EAAQwS,MACjBklC,MAAO,eACPE,WAAW,EACXD,UAAW,cAIbn0B,GAAUhL,KAAK+nB,GAAO,SAAS1lB,GAC9B,IAAIy8B,EAAez8B,EAAK7a,QACpByG,EAAK6wC,EAAa7wC,GAClBoxC,EAAY5C,GAAiBqC,EAAa39C,KAAMkhB,EAAK68B,OAErD5B,GAAqBwB,EAAazhB,YAAcigB,GAAqBj7B,EAAK88B,aAC7EL,EAAazhB,SAAWhb,EAAK88B,WAG9BF,EAAQhxC,IAAM,EACd,IAAI+L,EAAQ,KACZ,GAAI/L,KAAMuhB,GAAUA,EAAOvhB,GAAI9M,OAASk+C,EACvCrlC,EAAQwV,EAAOvhB,GACf+L,EAAMxS,QAAUs3C,EAChB9kC,EAAMzY,IAAMkgB,EAAGlgB,IACfyY,EAAMrO,MAAQ8V,MACR,CACN,IAAI69B,EAAa9M,GAAkBK,oBAAoBwM,GACvD,IAAKC,EACJ,OAEDtlC,EAAQ,IAAIslC,EAAW,CACtBrxC,GAAIA,EACJ9M,KAAMk+C,EACN73C,QAASs3C,EACTv9C,IAAKkgB,EAAGlgB,IACRoK,MAAO8V,IAER+N,EAAOxV,EAAM/L,IAAM+L,EAGpBA,EAAMulC,oBAKFl9B,EAAK+8B,YACR39B,EAAGzH,MAAQA,MAIbgR,GAAUhL,KAAKi/B,GAAS,SAASO,EAAYvxC,GACvCuxC,UACGhwB,EAAOvhB,MAIhBwT,EAAG+N,OAASA,EAEZgjB,GAAkBS,kBAAkBxxC,OAGrCg+C,yBAA0B,WACzB,IAGI36C,EAAGwb,EAHHmB,EAAKhgB,KACLi+C,EAAiB,GACjB5zC,EAAW2V,EAAGngB,KAAKwK,SAGvB,IAAKhH,EAAI,EAAGwb,EAAOxU,EAASS,OAAQzH,EAAIwb,EAAMxb,IAAK,CAClD,IAAIkH,EAAUF,EAAShH,GACnByqB,EAAO9N,EAAGsO,eAAejrB,GACzB3D,EAAO6K,EAAQ7K,MAAQsgB,EAAGuhB,OAAO7hC,KAUrC,GARIouB,EAAKpuB,MAAQouB,EAAKpuB,OAASA,IAC9BsgB,EAAGk+B,mBAAmB76C,GACtByqB,EAAO9N,EAAGsO,eAAejrB,IAE1ByqB,EAAKpuB,KAAOA,EACZouB,EAAKqwB,MAAQ5zC,EAAQ4zC,OAAS,EAC9BrwB,EAAK5qB,MAAQG,EAETyqB,EAAK6P,WACR7P,EAAK6P,WAAW9P,YAAYxqB,GAC5ByqB,EAAK6P,WAAWjQ,iBACV,CACN,IAAI0wB,EAAkBxZ,GAAY9W,EAAKpuB,MACvC,QAAwBiX,IAApBynC,EACH,MAAM,IAAI/wC,MAAM,IAAMygB,EAAKpuB,KAAO,0BAGnCouB,EAAK6P,WAAa,IAAIygB,EAAgBp+B,EAAI3c,GAC1C46C,EAAehxC,KAAK6gB,EAAK6P,aAI3B,OAAOsgB,GAORI,cAAe,WACd,IAAIr+B,EAAKhgB,KACTupB,GAAUhL,KAAKyB,EAAGngB,KAAKwK,UAAU,SAASE,EAAS8iB,GAClDrN,EAAGsO,eAAejB,GAAcsQ,WAAW9O,UACzC7O,IAMJ6O,MAAO,WACN7uB,KAAKq+C,gBACLr+C,KAAKk2C,QAAQ9rB,cAGdxe,OAAQ,SAAS21B,GAChB,IACIl+B,EAAGwb,EADHmB,EAAKhgB,KAiBT,GAdKuhC,GAA4B,kBAAXA,IAErBA,EAAS,CACRhW,SAAUgW,EACVzV,KAAMjY,UAAU,KAIlBwnC,GAAar7B,GAIbmwB,GAAaW,YAAY9wB,IAEuB,IAA5CmwB,GAAaM,OAAOzwB,EAAI,gBAA5B,CAKAA,EAAGk2B,QAAQnnB,MAAQ/O,EAAGngB,KAGtB,IAAIo+C,EAAiBj+B,EAAGg+B,2BAGxB,IAAK36C,EAAI,EAAGwb,EAAOmB,EAAGngB,KAAKwK,SAASS,OAAQzH,EAAIwb,EAAMxb,IACrD2c,EAAGsO,eAAejrB,GAAGs6B,WAAWnO,wBAGjCxP,EAAGs+B,eAGCt+B,EAAGja,QAAQulB,WAAatL,EAAGja,QAAQulB,UAAUC,UAChDhC,GAAUhL,KAAK0/B,GAAgB,SAAStgB,GACvCA,EAAW9O,WAIb7O,EAAGu+B,iBAIHv+B,EAAGk2B,QAAQ9rB,aAIXpK,EAAGw+B,WAAa,GAGhBrO,GAAaM,OAAOzwB,EAAI,eAExBA,EAAGypB,QAAQ/hB,KAAKo0B,GAAc,IAAK,SAE/B97B,EAAGu8B,gBACNv8B,EAAGy+B,iBAAmB,CACrBlzB,SAAUgW,EAAOhW,SACjB/B,OAAQ+X,EAAO/X,OACfsC,KAAMyV,EAAOzV,MAGd9L,EAAGha,OAAOu7B,KASZ+c,aAAc,WACb,IAAIt+B,EAAKhgB,MAEuC,IAA5CmwC,GAAaM,OAAOzwB,EAAI,kBAI5BupB,GAAa39B,OAAO5L,KAAMA,KAAK6B,MAAO7B,KAAK4B,QAE3Coe,EAAGypB,QAAU,GACblgB,GAAUhL,KAAKyB,EAAGinB,OAAO,SAASC,GAG7BA,EAAIvX,YACPuX,EAAIvX,aAEL3P,EAAGypB,QAAQx8B,KAAKqR,MAAM0B,EAAGypB,QAASvC,EAAIuC,aACpCzpB,GAEHA,EAAGypB,QAAQ1+B,SAAQ,SAAS6V,EAAM1d,GACjC0d,EAAK89B,KAAOx7C,KAUbitC,GAAaM,OAAOzwB,EAAI,oBACxBmwB,GAAaM,OAAOzwB,EAAI,iBAQzBu+B,eAAgB,WACf,IAAIv+B,EAAKhgB,KAET,IAAwD,IAApDmwC,GAAaM,OAAOzwB,EAAI,wBAA5B,CAIA,IAAK,IAAI3c,EAAI,EAAGwb,EAAOmB,EAAGngB,KAAKwK,SAASS,OAAQzH,EAAIwb,IAAQxb,EAC3D2c,EAAG2+B,cAAct7C,GAGlB8sC,GAAaM,OAAOzwB,EAAI,yBAQzB2+B,cAAe,SAASz7C,GACvB,IAAI8c,EAAKhgB,KACL8tB,EAAO9N,EAAGsO,eAAeprB,GACzB0Q,EAAO,CACVka,KAAMA,EACN5qB,MAAOA,IAGuD,IAA3DitC,GAAaM,OAAOzwB,EAAI,sBAAuB,CAACpM,MAIpDka,EAAK6P,WAAW7O,UAEhBqhB,GAAaM,OAAOzwB,EAAI,qBAAsB,CAACpM,MAGhD5N,OAAQ,SAASu7B,GAChB,IAAIvhB,EAAKhgB,KAEJuhC,GAA4B,kBAAXA,IAErBA,EAAS,CACRhW,SAAUgW,EACVzV,KAAMjY,UAAU,KAIlB,IAAI+qC,EAAmB5+B,EAAGja,QAAQulB,UAC9BC,EAAWyvB,GAAiBzZ,EAAOhW,SAAUqzB,GAAoBA,EAAiBrzB,UAClFO,EAAOyV,EAAOzV,KAElB,IAAgD,IAA5CqkB,GAAaM,OAAOzwB,EAAI,gBAA5B,CAIA,IAAIyL,EAAa,SAASH,GACzB6kB,GAAaM,OAAOzwB,EAAI,eACxBuJ,GAAUnL,SAASwgC,GAAoBA,EAAiBnzB,WAAY,CAACH,GAAYtL,IAGlF,GAAI4+B,GAAoBrzB,EAAU,CACjC,IAAID,EAAY,IAAIF,GAAe,CAClCH,SAAUM,EAAW,MACrB/B,OAAQ+X,EAAO/X,QAAUo1B,EAAiBp1B,OAE1CxjB,OAAQ,SAASkE,EAAO20C,GACvB,IAAIC,EAAiBv1B,GAAUC,OAAOxI,QAAQ69B,EAAgBr1B,QAC1DwB,EAAc6zB,EAAgB7zB,YAC9B+zB,EAAc/zB,EAAc6zB,EAAgB5zB,SAEhD/gB,EAAMvJ,KAAKm+C,EAAeC,GAAcA,EAAa/zB,IAGtDE,oBAAqB0zB,EAAiBpzB,WACtCL,oBAAqBM,IAGtBC,GAAgBG,aAAa7L,EAAIsL,EAAWC,EAAUO,QAEtD9L,EAAGrf,OAGH8qB,EAAW,IAAIL,GAAe,CAACH,SAAU,EAAG/gB,MAAO8V,KAGpD,OAAOA,IAGRrf,KAAM,SAASmvB,GACd,IACIzsB,EAAG27C,EADHh/B,EAAKhgB,KAWT,GARAggB,EAAGyD,QAEC8F,GAAU3L,cAAckS,KAC3BA,EAAc,GAGf9P,EAAG0K,WAAWoF,KAEV9P,EAAGne,OAAS,GAAKme,EAAGpe,QAAU,KAI2B,IAAzDuuC,GAAaM,OAAOzwB,EAAI,aAAc,CAAC8P,IAA3C,CAQA,IADAkvB,EAASh/B,EAAGypB,QACPpmC,EAAI,EAAGA,EAAI27C,EAAOl0C,QAAUk0C,EAAO37C,GAAG8O,GAAK,IAAK9O,EACpD27C,EAAO37C,GAAG1C,KAAKqf,EAAG+V,WAMnB,IAHA/V,EAAGi/B,aAAanvB,GAGTzsB,EAAI27C,EAAOl0C,SAAUzH,EAC3B27C,EAAO37C,GAAG1C,KAAKqf,EAAG+V,WAGnB/V,EAAGk/B,aAAapvB,GAEhBqgB,GAAaM,OAAOzwB,EAAI,YAAa,CAAC8P,MAMvCpF,WAAY,SAASoF,GAGpB,IAFA,IAAI9P,EAAKhgB,KAEAqD,EAAI,EAAGwb,GAAQmB,EAAGngB,KAAKwK,UAAY,IAAIS,OAAQzH,EAAIwb,IAAQxb,EAC/D2c,EAAGqe,iBAAiBh7B,IACvB2c,EAAGsO,eAAejrB,GAAGs6B,WAAWjT,WAAWoF,GAI7C9P,EAAGk2B,QAAQxrB,WAAWoF,IAMvBqvB,uBAAwB,SAASC,GAChC,IAGI/7C,EAAGwb,EAHHmB,EAAKhgB,KACLqK,EAAW2V,EAAGngB,KAAKwK,UAAY,GAC/ByM,EAAS,GAGb,IAAKzT,EAAI,EAAGwb,EAAOxU,EAASS,OAAQzH,EAAIwb,IAAQxb,EAC1C+7C,IAAiBp/B,EAAGqe,iBAAiBh7B,IACzCyT,EAAO7J,KAAK+S,EAAGsO,eAAejrB,IAMhC,OAFAyT,EAAO4Q,KAAKo0B,GAAc,QAAS,UAE5BhlC,GAMRyrB,8BAA+B,WAC9B,OAAOviC,KAAKm/C,wBAAuB,IAQpCF,aAAc,SAASnvB,GACtB,IACI2K,EAAUp3B,EADV2c,EAAKhgB,KAGT,IAAqE,IAAjEmwC,GAAaM,OAAOzwB,EAAI,qBAAsB,CAAC8P,IAAnD,CAKA,IADA2K,EAAWza,EAAGuiB,gCACTl/B,EAAIo3B,EAAS3vB,OAAS,EAAGzH,GAAK,IAAKA,EACvC2c,EAAGq/B,YAAY5kB,EAASp3B,GAAIysB,GAG7BqgB,GAAaM,OAAOzwB,EAAI,oBAAqB,CAAC8P,MAQ/CuvB,YAAa,SAASvxB,EAAMgC,GAC3B,IAAI9P,EAAKhgB,KACL4T,EAAO,CACVka,KAAMA,EACN5qB,MAAO4qB,EAAK5qB,MACZ4sB,YAAaA,IAG+C,IAAzDqgB,GAAaM,OAAOzwB,EAAI,oBAAqB,CAACpM,MAIlDka,EAAK6P,WAAWh9B,KAAKmvB,GAErBqgB,GAAaM,OAAOzwB,EAAI,mBAAoB,CAACpM,MAQ9CsrC,aAAc,SAASpvB,GACtB,IAAI9P,EAAKhgB,KACLk2C,EAAUl2B,EAAGk2B,QACbtiC,EAAO,CACVsiC,QAASA,EACTpmB,YAAaA,IAG+C,IAAzDqgB,GAAaM,OAAOzwB,EAAI,oBAAqB,CAACpM,MAIlDsiC,EAAQv1C,OAERwvC,GAAaM,OAAOzwB,EAAI,mBAAoB,CAACpM,MAO9C0rC,kBAAmB,SAASr2C,GAC3B,OAAOs9B,GAAiBC,MAAMC,OAAOzmC,KAAMiJ,IAG5Cs2C,mBAAoB,SAASt2C,GAC5B,OAAOs9B,GAAiBC,MAAMh8B,MAAMxK,KAAMiJ,EAAG,CAACw8B,WAAW,KAG1D+Z,mBAAoB,SAASv2C,GAC5B,OAAOs9B,GAAiBC,MAAM,UAAUxmC,KAAMiJ,EAAG,CAACw8B,WAAW,KAG9DoV,0BAA2B,SAAS5xC,EAAG6vB,EAAM/yB,GAC5C,IAAIinB,EAASuZ,GAAiBC,MAAM1N,GACpC,MAAsB,oBAAX9L,EACHA,EAAOhtB,KAAMiJ,EAAGlD,GAGjB,IAGR05C,kBAAmB,SAASx2C,GAC3B,OAAOs9B,GAAiBC,MAAMj8B,QAAQvK,KAAMiJ,EAAG,CAACw8B,WAAW,KAG5DnX,eAAgB,SAASjB,GACxB,IAAIrN,EAAKhgB,KACLuK,EAAUyV,EAAGngB,KAAKwK,SAASgjB,GAC1B9iB,EAAQm1C,QACZn1C,EAAQm1C,MAAQ,IAGjB,IAAI5xB,EAAOvjB,EAAQm1C,MAAM1/B,EAAGxT,IAe5B,OAdKshB,IACJA,EAAOvjB,EAAQm1C,MAAM1/B,EAAGxT,IAAM,CAC7B9M,KAAM,KACNG,KAAM,GACN0K,QAAS,KACTozB,WAAY,KACZrT,OAAQ,KACR4D,QAAS,KACTE,QAAS,KACT+vB,MAAO5zC,EAAQ4zC,OAAS,EACxBj7C,MAAOmqB,IAIFS,GAGRgW,uBAAwB,WAEvB,IADA,IAAItS,EAAQ,EACHnuB,EAAI,EAAGwb,EAAO7e,KAAKH,KAAKwK,SAASS,OAAQzH,EAAIwb,IAAQxb,EACzDrD,KAAKq+B,iBAAiBh7B,IACzBmuB,IAGF,OAAOA,GAGR6M,iBAAkB,SAAShR,GAC1B,IAAIS,EAAO9tB,KAAKsuB,eAAejB,GAI/B,MAA8B,mBAAhBS,EAAKxD,QAAwBwD,EAAKxD,QAAUtqB,KAAKH,KAAKwK,SAASgjB,GAAc/C,QAG5Fpd,eAAgB,WACf,OAAOlN,KAAK+F,QAAQi3B,eAAeh9B,OAMpCk+C,mBAAoB,SAAS7wB,GAC5B,IAAI7gB,EAAKxM,KAAKwM,GACVjC,EAAUvK,KAAKH,KAAKwK,SAASgjB,GAC7BS,EAAOvjB,EAAQm1C,OAASn1C,EAAQm1C,MAAMlzC,GAEtCshB,IACHA,EAAK6P,WAAW9xB,iBACTtB,EAAQm1C,MAAMlzC,KAIvBX,QAAS,WACR,IAEIxI,EAAGwb,EAFHmB,EAAKhgB,KACLoN,EAAS4S,EAAG5S,OAMhB,IAHA4S,EAAG88B,OAGEz5C,EAAI,EAAGwb,EAAOmB,EAAGngB,KAAKwK,SAASS,OAAQzH,EAAIwb,IAAQxb,EACvD2c,EAAGk+B,mBAAmB76C,GAGnB+J,IACH4S,EAAG2/B,eACHp2B,GAAUnc,OAAOqW,MAAMzD,GACvBkwB,GAASN,eAAe5vB,EAAGlgB,KAC3BkgB,EAAG5S,OAAS,KACZ4S,EAAGlgB,IAAM,MAGVqwC,GAAaM,OAAOzwB,EAAI,kBAEjBzf,GAAMi8C,UAAUx8B,EAAGxT,KAG3BozC,cAAe,WACd,OAAO5/C,KAAKoN,OAAOyyC,UAAUvhC,MAAMte,KAAKoN,OAAQyG,YAGjDgpC,YAAa,WACZ,IAAI78B,EAAKhgB,KACTggB,EAAGk2B,QAAU,IAAI6E,GAAa,CAC7B55C,OAAQ6e,EACR8/B,eAAgB9/B,EAChB+O,MAAO/O,EAAGngB,KACV48B,SAAUzc,EAAGja,QAAQ81B,UACnB7b,IAMJ28B,WAAY,WACX,IAAI38B,EAAKhgB,KACL+sB,EAAY/M,EAAG+/B,WAAa,GAC5BlzB,EAAW,WACd7M,EAAGggC,aAAa1hC,MAAM0B,EAAInM,YAG3B0V,GAAUhL,KAAKyB,EAAGja,QAAQk2C,QAAQ,SAASv8C,GAC1CwwC,GAAShE,iBAAiBlsB,EAAItgB,EAAMmtB,GACpCE,EAAUrtB,GAAQmtB,KAKf7M,EAAGja,QAAQq2C,aACdvvB,EAAW,WACV7M,EAAG48B,UAGJ1M,GAAShE,iBAAiBlsB,EAAI,SAAU6M,GACxCE,EAAU6vB,OAAS/vB,IAOrB8yB,aAAc,WACb,IAAI3/B,EAAKhgB,KACL+sB,EAAY/M,EAAG+/B,WACdhzB,WAIE/M,EAAG+/B,WACVx2B,GAAUhL,KAAKwO,GAAW,SAASF,EAAUntB,GAC5CwwC,GAAS3D,oBAAoBvsB,EAAItgB,EAAMmtB,QAIzCozB,iBAAkB,SAASz/C,EAAUs4B,EAAM6Y,GAC1C,IACIriB,EAASjsB,EAAGwb,EADZ88B,EAAShK,EAAU,MAAQ,SAG/B,IAAKtuC,EAAI,EAAGwb,EAAOre,EAASsK,OAAQzH,EAAIwb,IAAQxb,EAC/CisB,EAAU9uB,EAAS6C,GACfisB,GACHtvB,KAAKsuB,eAAegB,EAAQL,eAAe0O,WAAWge,EAAS,cAAcrsB,GAIlE,YAATwJ,GACH94B,KAAKsuB,eAAe9tB,EAAS,GAAGyuB,eAAe0O,WAAW,IAAMge,EAAS,wBAO3EqE,aAAc,SAAS/2C,GACtB,IAAI+W,EAAKhgB,KACLk2C,EAAUl2B,EAAGk2B,QAEjB,IAAoD,IAAhD/F,GAAaM,OAAOzwB,EAAI,cAAe,CAAC/W,IAA5C,CAKA+W,EAAGu8B,iBAAkB,EACrBv8B,EAAGy+B,iBAAmB,KAEtB,IAAItV,EAAUnpB,EAAG46B,YAAY3xC,GAKzBitC,IACH/M,EAAU+M,EAAQzrB,OACfyrB,EAAQ0E,YAAY3xC,GACpBkgC,EAAU+M,EAAQ0E,YAAY3xC,IAGlCknC,GAAaM,OAAOzwB,EAAI,aAAc,CAAC/W,IAEvC,IAAIi3C,EAAkBlgC,EAAGy+B,iBAmBzB,OAlBIyB,EAEHlgC,EAAGha,OAAOk6C,GACA/W,IAAYnpB,EAAGkM,YAEzBlM,EAAG88B,OAIH98B,EAAGha,OAAO,CACTulB,SAAUvL,EAAGja,QAAQmqB,MAAMisB,kBAC3BrwB,MAAM,KAIR9L,EAAGu8B,iBAAkB,EACrBv8B,EAAGy+B,iBAAmB,KAEfz+B,IASR46B,YAAa,SAAS3xC,GACrB,IAAI+W,EAAKhgB,KACL+F,EAAUia,EAAGja,SAAW,GACxBorB,EAAeprB,EAAQmqB,MACvBiZ,GAAU,EAqCd,OAnCAnpB,EAAGw+B,WAAax+B,EAAGw+B,YAAc,GAGlB,aAAXv1C,EAAEvJ,KACLsgB,EAAGu4B,OAAS,GAEZv4B,EAAGu4B,OAASv4B,EAAG66B,0BAA0B5xC,EAAGkoB,EAAa2H,KAAM3H,GAKhE5H,GAAUnL,SAASrY,EAAQm2C,SAAWn2C,EAAQmqB,MAAMgsB,QAAS,CAACjzC,EAAEi8B,OAAQllB,EAAGu4B,QAASv4B,GAErE,YAAX/W,EAAEvJ,MAAiC,UAAXuJ,EAAEvJ,MACzBqG,EAAQ63B,SAEX73B,EAAQ63B,QAAQx5B,KAAK4b,EAAI/W,EAAEi8B,OAAQllB,EAAGu4B,QAKpCv4B,EAAGw+B,WAAW1zC,QACjBkV,EAAGigC,iBAAiBjgC,EAAGw+B,WAAYrtB,EAAa2H,MAAM,GAInD9Y,EAAGu4B,OAAOztC,QAAUqmB,EAAa2H,MACpC9Y,EAAGigC,iBAAiBjgC,EAAGu4B,OAAQpnB,EAAa2H,MAAM,GAGnDqQ,GAAW5f,GAAU7K,YAAYsB,EAAGu4B,OAAQv4B,EAAGw+B,YAG/Cx+B,EAAGw+B,WAAax+B,EAAGu4B,OAEZpP,KAST5oC,GAAMi8C,UAAY,GAElB,IAAI2D,GAAkB5/C,GAWtBA,GAAM6/C,WAAa7/C,GASnBA,GAAM8/C,MAAQ,GASd92B,GAAU+2B,YAAcnF,GASxB5xB,GAAUg3B,WAAatF,GAEvB,IAAIuF,GAAe,WAoYlB,SAASC,EAAcC,EAAY5qC,EAAM6qC,GACxC,IAAIC,EAYJ,MAX0B,kBAAfF,GACVE,EAAgB/rC,SAAS6rC,EAAY,KAEJ,IAA7BA,EAAW19C,QAAQ,OAEtB49C,EAAgBA,EAAgB,IAAM9qC,EAAK24B,WAAWkS,KAGvDC,EAAgBF,EAGVE,EAOR,SAASC,EAAmBh5C,GAC3B,YAAiB8O,IAAV9O,GAAiC,OAAVA,GAA4B,SAAVA,EAUjD,SAASi5C,EAAuBC,EAASC,EAAUC,GAClD,IAAIr3B,EAAOwT,SAAS8jB,YAChBzS,EAAallB,GAAU43B,eAAeJ,GACtCK,EAAkBx3B,EAAKy3B,iBAAiBN,GAASC,GACjDM,EAAuB13B,EAAKy3B,iBAAiB5S,GAAYuS,GACzDO,EAAWV,EAAmBO,GAC9BI,EAAgBX,EAAmBS,GACnCG,EAAW90C,OAAOi5B,kBAEtB,OAAI2b,GAAYC,EACRz/C,KAAKC,IACXu/C,EAAWd,EAAcW,EAAiBL,EAASE,GAAsBQ,EACzED,EAAgBf,EAAca,EAAsB7S,EAAYwS,GAAsBQ,GAGjF,OA9aRl4B,GAAUsd,MAAQ,SAAS6a,EAAYC,GACtC,GAAIp4B,GAAU1L,QAAQ6jC,IAAe70C,MAAMnM,UAAU0K,OACpD,OAAOs2C,EAAWt2C,OAAOu2C,GAE1B,IAAIC,EAAW,GAQf,OANAr4B,GAAUhL,KAAKmjC,GAAY,SAAS9gC,GAC/B+gC,EAAe/gC,IAClBghC,EAAS30C,KAAK2T,MAITghC,GAERr4B,GAAU8C,UAAYxf,MAAMnM,UAAU2rB,UACrC,SAAS1L,EAAOvC,EAAUkC,GACzB,OAAOK,EAAM0L,UAAUjO,EAAUkC,IAElC,SAASK,EAAOvC,EAAUkC,GACzBA,OAAkB3J,IAAV2J,EAAsBK,EAAQL,EACtC,IAAK,IAAIjd,EAAI,EAAGwb,EAAO8B,EAAM7V,OAAQzH,EAAIwb,IAAQxb,EAChD,GAAI+a,EAASha,KAAKkc,EAAOK,EAAMtd,GAAIA,EAAGsd,GACrC,OAAOtd,EAGT,OAAQ,GAEVkmB,GAAUs4B,cAAgB,SAASC,EAAeH,EAAgBI,GAE7Dx4B,GAAU3L,cAAcmkC,KAC3BA,GAAc,GAEf,IAAK,IAAI1+C,EAAI0+C,EAAa,EAAG1+C,EAAIy+C,EAAch3C,OAAQzH,IAAK,CAC3D,IAAI2+C,EAAcF,EAAcz+C,GAChC,GAAIs+C,EAAeK,GAClB,OAAOA,IAIVz4B,GAAU04B,kBAAoB,SAASH,EAAeH,EAAgBI,GAEjEx4B,GAAU3L,cAAcmkC,KAC3BA,EAAaD,EAAch3C,QAE5B,IAAK,IAAIzH,EAAI0+C,EAAa,EAAG1+C,GAAK,EAAGA,IAAK,CACzC,IAAI2+C,EAAcF,EAAcz+C,GAChC,GAAIs+C,EAAeK,GAClB,OAAOA,IAMVz4B,GAAUsB,SAAW,SAAS/lB,GAC7B,OAAQ2T,MAAMH,WAAWxT,KAAOkZ,SAASlZ,IAE1CykB,GAAU24B,aAAe,SAASxgD,EAAGC,EAAGkjB,GACvC,OAAO9iB,KAAKE,IAAIP,EAAIC,GAAKkjB,GAE1B0E,GAAU44B,YAAc,SAASzgD,EAAGmjB,GACnC,IAAIu9B,EAAUrgD,KAAK+R,MAAMpS,GACzB,OAAS0gD,EAAUv9B,GAAYnjB,GAAQ0gD,EAAUv9B,GAAYnjB,GAE9D6nB,GAAUnY,IAAM,SAASuP,GACxB,OAAOA,EAAM01B,QAAO,SAASjlC,EAAKvJ,GACjC,OAAK4Q,MAAM5Q,GAGJuJ,EAFCrP,KAAKqP,IAAIA,EAAKvJ,KAGpB8E,OAAO01C,oBAEX94B,GAAUvnB,IAAM,SAAS2e,GACxB,OAAOA,EAAM01B,QAAO,SAASr0C,EAAK6F,GACjC,OAAK4Q,MAAM5Q,GAGJ7F,EAFCD,KAAKC,IAAIA,EAAK6F,KAGpB8E,OAAOi5B,oBAEXrc,GAAU+4B,KAAOvgD,KAAKugD,KACrB,SAAS5gD,GACR,OAAOK,KAAKugD,KAAK5gD,IAElB,SAASA,GAER,OADAA,GAAKA,EACK,IAANA,GAAW+W,MAAM/W,GACbA,EAEDA,EAAI,EAAI,GAAK,GAEtB6nB,GAAUg5B,UAAY,SAAStmC,GAC9B,OAAOA,GAAWla,KAAKyR,GAAK,MAE7B+V,GAAUi5B,UAAY,SAASC,GAC9B,OAAOA,GAAW,IAAM1gD,KAAKyR,KAU9B+V,GAAUm5B,eAAiB,SAAShhD,GACnC,GAAK6nB,GAAUvL,SAAStc,GAAxB,CAGA,IAAIuH,EAAI,EACJ9D,EAAI,EACR,MAAOpD,KAAK+R,MAAMpS,EAAIuH,GAAKA,IAAMvH,EAChCuH,GAAK,GACL9D,IAED,OAAOA,IAIRokB,GAAU+J,kBAAoB,SAASqvB,EAAaC,GACnD,IAAIC,EAAsBD,EAAWlhD,EAAIihD,EAAYjhD,EACjDohD,EAAsBF,EAAWjhD,EAAIghD,EAAYhhD,EACjDohD,EAA2BhhD,KAAK0R,KAAKovC,EAAsBA,EAAsBC,EAAsBA,GAEvGvvB,EAAQxxB,KAAKwR,MAAMuvC,EAAqBD,GAM5C,OAJItvB,GAAU,GAAMxxB,KAAKyR,KACxB+f,GAAS,EAAMxxB,KAAKyR,IAGd,CACN+f,MAAOA,EACPrhB,SAAU6wC,IAGZx5B,GAAU0qB,sBAAwB,SAAShO,EAAKC,GAC/C,OAAOnkC,KAAK0R,KAAK1R,KAAKiP,IAAIk1B,EAAIxkC,EAAIukC,EAAIvkC,EAAG,GAAKK,KAAKiP,IAAIk1B,EAAIvkC,EAAIskC,EAAItkC,EAAG,KASvE4nB,GAAUy5B,WAAa,SAASC,GAC/B,OAAQA,EAAa,IAAM,EAAK,EAAI,IAWrC15B,GAAU25B,YAAc,SAASh5C,EAAOi5C,EAAOthD,GAC9C,IAAI66C,EAAmBxyC,EAAMk5C,wBACzBC,EAAYxhD,EAAQ,EACxB,OAAOE,KAAK+R,OAAOqvC,EAAQE,GAAa3G,GAAoBA,EAAmB2G,GAGhF95B,GAAUsZ,YAAc,SAASygB,EAAYC,EAAaC,EAAY3wC,GAMrE,IAAI0N,EAAW+iC,EAAWtuB,KAAOuuB,EAAcD,EAC3C5tC,EAAU6tC,EACV5qB,EAAO6qB,EAAWxuB,KAAOuuB,EAAcC,EAEvCC,EAAM1hD,KAAK0R,KAAK1R,KAAKiP,IAAI0E,EAAQhU,EAAI6e,EAAS7e,EAAG,GAAKK,KAAKiP,IAAI0E,EAAQ/T,EAAI4e,EAAS5e,EAAG,IACvF+hD,EAAM3hD,KAAK0R,KAAK1R,KAAKiP,IAAI2nB,EAAKj3B,EAAIgU,EAAQhU,EAAG,GAAKK,KAAKiP,IAAI2nB,EAAKh3B,EAAI+T,EAAQ/T,EAAG,IAE/EgiD,EAAMF,GAAOA,EAAMC,GACnBE,EAAMF,GAAOD,EAAMC,GAGvBC,EAAMlrC,MAAMkrC,GAAO,EAAIA,EACvBC,EAAMnrC,MAAMmrC,GAAO,EAAIA,EAEvB,IAAIC,EAAKhxC,EAAI8wC,EACTG,EAAKjxC,EAAI+wC,EAEb,MAAO,CACNrjC,SAAU,CACT7e,EAAGgU,EAAQhU,EAAImiD,GAAMlrB,EAAKj3B,EAAI6e,EAAS7e,GACvCC,EAAG+T,EAAQ/T,EAAIkiD,GAAMlrB,EAAKh3B,EAAI4e,EAAS5e,IAExCg3B,KAAM,CACLj3B,EAAGgU,EAAQhU,EAAIoiD,GAAMnrB,EAAKj3B,EAAI6e,EAAS7e,GACvCC,EAAG+T,EAAQ/T,EAAImiD,GAAMnrB,EAAKh3B,EAAI4e,EAAS5e,MAI1C4nB,GAAUw6B,QAAUp3C,OAAOo3C,SAAW,MACtCx6B,GAAUqZ,oBAAsB,SAAS70B,GAMxC,IAUI1K,EAAG2gD,EAAaC,EAAcC,EA4B9BC,EAAQC,EAAOC,EAAMC,EA0BrBne,EAhEAoe,GAAsBx2C,GAAU,IAAIzD,KAAI,SAASqa,GACpD,MAAO,CACN7T,MAAO6T,EAAM6F,OACbg6B,OAAQ,EACRC,GAAI,MAKFC,EAAYH,EAAmBz5C,OAEnC,IAAKzH,EAAI,EAAGA,EAAIqhD,IAAarhD,EAE5B,GADA4gD,EAAeM,EAAmBlhD,IAC9B4gD,EAAanzC,MAAMkkB,KAAvB,CAMA,GAFAgvB,EAAc3gD,EAAI,EAAIkhD,EAAmBlhD,EAAI,GAAK,KAClD6gD,EAAa7gD,EAAIqhD,EAAY,EAAIH,EAAmBlhD,EAAI,GAAK,KACzD6gD,IAAeA,EAAWpzC,MAAMkkB,KAAM,CACzC,IAAI2vB,EAAeT,EAAWpzC,MAAMpP,EAAIuiD,EAAanzC,MAAMpP,EAG3DuiD,EAAaO,OAAyB,IAAhBG,GAAqBT,EAAWpzC,MAAMnP,EAAIsiD,EAAanzC,MAAMnP,GAAKgjD,EAAc,GAGlGX,GAAeA,EAAYlzC,MAAMkkB,KACrCivB,EAAaQ,GAAKR,EAAaO,QACpBN,GAAcA,EAAWpzC,MAAMkkB,KAC1CivB,EAAaQ,GAAKT,EAAYQ,OACpBxkD,KAAKsiD,KAAK0B,EAAYQ,UAAYxkD,KAAKsiD,KAAK2B,EAAaO,QACnEP,EAAaQ,GAAK,EAElBR,EAAaQ,IAAMT,EAAYQ,OAASP,EAAaO,QAAU,EAMjE,IAAKnhD,EAAI,EAAGA,EAAIqhD,EAAY,IAAKrhD,EAChC4gD,EAAeM,EAAmBlhD,GAClC6gD,EAAaK,EAAmBlhD,EAAI,GAChC4gD,EAAanzC,MAAMkkB,MAAQkvB,EAAWpzC,MAAMkkB,OAI5CzL,GAAU24B,aAAa+B,EAAaO,OAAQ,EAAGxkD,KAAK+jD,SACvDE,EAAaQ,GAAKP,EAAWO,GAAK,GAInCN,EAASF,EAAaQ,GAAKR,EAAaO,OACxCJ,EAAQF,EAAWO,GAAKR,EAAaO,OACrCF,EAAmBviD,KAAKiP,IAAImzC,EAAQ,GAAKpiD,KAAKiP,IAAIozC,EAAO,GACrDE,GAAoB,IAIxBD,EAAO,EAAItiD,KAAK0R,KAAK6wC,GACrBL,EAAaQ,GAAKN,EAASE,EAAOJ,EAAaO,OAC/CN,EAAWO,GAAKL,EAAQC,EAAOJ,EAAaO,UAK7C,IAAKnhD,EAAI,EAAGA,EAAIqhD,IAAarhD,EAC5B4gD,EAAeM,EAAmBlhD,GAC9B4gD,EAAanzC,MAAMkkB,OAIvBgvB,EAAc3gD,EAAI,EAAIkhD,EAAmBlhD,EAAI,GAAK,KAClD6gD,EAAa7gD,EAAIqhD,EAAY,EAAIH,EAAmBlhD,EAAI,GAAK,KACzD2gD,IAAgBA,EAAYlzC,MAAMkkB,OACrCmR,GAAU8d,EAAanzC,MAAMpP,EAAIsiD,EAAYlzC,MAAMpP,GAAK,EACxDuiD,EAAanzC,MAAMyU,sBAAwB0+B,EAAanzC,MAAMpP,EAAIykC,EAClE8d,EAAanzC,MAAM2U,sBAAwBw+B,EAAanzC,MAAMnP,EAAIwkC,EAAS8d,EAAaQ,IAErFP,IAAeA,EAAWpzC,MAAMkkB,OACnCmR,GAAU+d,EAAWpzC,MAAMpP,EAAIuiD,EAAanzC,MAAMpP,GAAK,EACvDuiD,EAAanzC,MAAM0U,kBAAoBy+B,EAAanzC,MAAMpP,EAAIykC,EAC9D8d,EAAanzC,MAAM4U,kBAAoBu+B,EAAanzC,MAAMnP,EAAIwkC,EAAS8d,EAAaQ,MAIvFl7B,GAAUuZ,SAAW,SAAS4e,EAAYx+C,EAAO0hD,GAChD,OAAIA,EACI1hD,GAASw+C,EAAW52C,OAAS,EAAI42C,EAAW,GAAKA,EAAWx+C,EAAQ,GAErEA,GAASw+C,EAAW52C,OAAS,EAAI42C,EAAWA,EAAW52C,OAAS,GAAK42C,EAAWx+C,EAAQ,IAEhGqmB,GAAUwL,aAAe,SAAS2sB,EAAYx+C,EAAO0hD,GACpD,OAAIA,EACI1hD,GAAS,EAAIw+C,EAAWA,EAAW52C,OAAS,GAAK42C,EAAWx+C,EAAQ,GAErEA,GAAS,EAAIw+C,EAAW,GAAKA,EAAWx+C,EAAQ,IAGxDqmB,GAAUs7B,QAAU,SAASvpB,EAAOxnB,GACnC,IAEIgxC,EAFAl9B,EAAW7lB,KAAKmN,MAAMqa,GAAU5B,MAAM2T,IACtCypB,EAAWzpB,EAAQv5B,KAAKiP,IAAI,GAAI4W,GAuBpC,OAlBEk9B,EAFEhxC,EACCixC,EAAW,IACC,EACLA,EAAW,EACN,EACLA,EAAW,EACN,EAEA,GAENA,GAAY,EACP,EACLA,GAAY,EACP,EACLA,GAAY,EACP,EAEA,GAGTD,EAAe/iD,KAAKiP,IAAI,GAAI4W,IAGpC2B,GAAUgD,iBAAoB,WAC7B,MAAsB,qBAAXjP,OACH,SAASc,GACfA,KAGKd,OAAO6O,uBACb7O,OAAO0nC,6BACP1nC,OAAO2nC,0BACP3nC,OAAO4nC,wBACP5nC,OAAO6nC,yBACP,SAAS/mC,GACR,OAAOd,OAAOzP,WAAWuQ,EAAU,IAAO,KAZhB,GAgB7BmL,GAAU0b,oBAAsB,SAASmgB,EAAKl7C,GAC7C,IAAI8oB,EAAQyC,EACRxsB,EAAIm8C,EAAIC,eAAiBD,EACzBh4C,EAASg4C,EAAI1oC,QAAU0oC,EAAIE,WAC3BC,EAAen4C,EAAOo4C,wBAEtBC,EAAUx8C,EAAEw8C,QACZA,GAAWA,EAAQ36C,OAAS,GAC/BkoB,EAASyyB,EAAQ,GAAGC,QACpBjwB,EAASgwB,EAAQ,GAAGE,UAGpB3yB,EAAS/pB,EAAEy8C,QACXjwB,EAASxsB,EAAE08C,SAMZ,IAAIC,EAActtC,WAAWiR,GAAUwG,SAAS3iB,EAAQ,iBACpDy4C,EAAavtC,WAAWiR,GAAUwG,SAAS3iB,EAAQ,gBACnD04C,EAAextC,WAAWiR,GAAUwG,SAAS3iB,EAAQ,kBACrD24C,EAAgBztC,WAAWiR,GAAUwG,SAAS3iB,EAAQ,mBACtDvL,EAAQ0jD,EAAa1kD,MAAQ0kD,EAAa3kD,KAAOglD,EAAcE,EAC/DlkD,EAAS2jD,EAAaxkD,OAASwkD,EAAazkD,IAAM+kD,EAAaE,EAOnE,OAHA/yB,EAASjxB,KAAK+R,OAAOkf,EAASuyB,EAAa3kD,KAAOglD,GAAe,EAAUx4C,EAAOvL,MAAQqI,EAAMk5C,yBAChG3tB,EAAS1zB,KAAK+R,OAAO2hB,EAAS8vB,EAAazkD,IAAM+kD,GAAc,EAAWz4C,EAAOxL,OAASsI,EAAMk5C,yBAEzF,CACN1hD,EAAGsxB,EACHrxB,EAAG8zB,IAuDLlM,GAAUy8B,mBAAqB,SAASjF,GACvC,OAAOD,EAAuBC,EAAS,YAAa,gBAGrDx3B,GAAU08B,oBAAsB,SAASlF,GACxC,OAAOD,EAAuBC,EAAS,aAAc,iBAKtDx3B,GAAU28B,kBAAoB,SAAS3X,EAAWzY,EAASqwB,GAG1D,OAFArwB,EAAUvM,GAAUwG,SAASwe,EAAWzY,GAEjCA,EAAQ9yB,QAAQ,MAAQ,EAAImjD,EAAkBtxC,SAASihB,EAAS,IAAM,IAAMjhB,SAASihB,EAAS,KAKtGvM,GAAU43B,eAAiB,SAASJ,GACnC,IAAIv6C,EAASu6C,EAAQtS,WAIrB,OAHIjoC,GAAgC,wBAAtBA,EAAO6N,aACpB7N,EAASA,EAAOkpC,MAEVlpC,GAER+iB,GAAUyzB,gBAAkB,SAAS+D,GACpC,IAAIxS,EAAYhlB,GAAU43B,eAAeJ,GACzC,IAAKxS,EACJ,OAAOwS,EAAQrS,YAGhB,IAAIA,EAAcH,EAAUG,YACxBkX,EAAcr8B,GAAU28B,kBAAkB3X,EAAW,eAAgBG,GACrEoX,EAAev8B,GAAU28B,kBAAkB3X,EAAW,gBAAiBG,GAEvE98B,EAAI88B,EAAckX,EAAcE,EAChCM,EAAK78B,GAAUy8B,mBAAmBjF,GACtC,OAAOtoC,MAAM2tC,GAAMx0C,EAAI7P,KAAKC,IAAI4P,EAAGw0C,IAEpC78B,GAAU0zB,iBAAmB,SAAS8D,GACrC,IAAIxS,EAAYhlB,GAAU43B,eAAeJ,GACzC,IAAKxS,EACJ,OAAOwS,EAAQsF,aAGhB,IAAIA,EAAe9X,EAAU8X,aACzBR,EAAat8B,GAAU28B,kBAAkB3X,EAAW,cAAe8X,GACnEN,EAAgBx8B,GAAU28B,kBAAkB3X,EAAW,iBAAkB8X,GAEzEr/C,EAAIq/C,EAAeR,EAAaE,EAChCO,EAAK/8B,GAAU08B,oBAAoBlF,GACvC,OAAOtoC,MAAM6tC,GAAMt/C,EAAIjF,KAAKC,IAAIgF,EAAGs/C,IAEpC/8B,GAAUwG,SAAW,SAASid,EAAI/nC,GACjC,OAAO+nC,EAAGuZ,aACTvZ,EAAGuZ,aAAathD,GAChBm4B,SAAS8jB,YAAYG,iBAAiBrU,EAAI,MAAM/jB,iBAAiBhkB,IAEnEskB,GAAUkzB,YAAc,SAASvyC,EAAOs8C,GACvC,IAAIC,EAAav8C,EAAMk5C,wBAA0BoD,GAAiC,qBAAXlpC,QAA0BA,OAAOo/B,kBAAqB,EAC7H,GAAmB,IAAf+J,EAAJ,CAIA,IAAIr5C,EAASlD,EAAMkD,OACfxL,EAASsI,EAAMtI,OACfC,EAAQqI,EAAMrI,MAElBuL,EAAOxL,OAASA,EAAS6kD,EACzBr5C,EAAOvL,MAAQA,EAAQ4kD,EACvBv8C,EAAMpK,IAAIyY,MAAMkuC,EAAYA,GAKvBr5C,EAAOf,MAAMzK,QAAWwL,EAAOf,MAAMxK,QACzCuL,EAAOf,MAAMzK,OAASA,EAAS,KAC/BwL,EAAOf,MAAMxK,MAAQA,EAAQ,QAI/B0nB,GAAUwtB,WAAa,SAAS2P,EAAWv/B,EAAWF,GACrD,OAAOE,EAAY,IAAMu/B,EAAY,MAAQz/B,GAE9CsC,GAAUo9B,YAAc,SAAS7mD,EAAK0mB,EAAMogC,EAAehW,GAC1DA,EAAQA,GAAS,GACjB,IAAI/wC,EAAO+wC,EAAM/wC,KAAO+wC,EAAM/wC,MAAQ,GAClCgnD,EAAKjW,EAAMkW,eAAiBlW,EAAMkW,gBAAkB,GAEpDlW,EAAMpqB,OAASA,IAClB3mB,EAAO+wC,EAAM/wC,KAAO,GACpBgnD,EAAKjW,EAAMkW,eAAiB,GAC5BlW,EAAMpqB,KAAOA,GAGd1mB,EAAI0mB,KAAOA,EACX,IAEInjB,EAAG+6B,EAAGkH,EAAMyhB,EAAOC,EAFnBC,EAAU,EACVpoC,EAAO+nC,EAAc97C,OAEzB,IAAKzH,EAAI,EAAGA,EAAIwb,EAAMxb,IAIrB,GAHA0jD,EAAQH,EAAcvjD,QAGRsT,IAAVowC,GAAiC,OAAVA,IAA+C,IAA7Bx9B,GAAU1L,QAAQkpC,GAC9DE,EAAU19B,GAAUutB,YAAYh3C,EAAKD,EAAMgnD,EAAII,EAASF,QAClD,GAAIx9B,GAAU1L,QAAQkpC,GAG5B,IAAK3oB,EAAI,EAAGkH,EAAOyhB,EAAMj8C,OAAQszB,EAAIkH,EAAMlH,IAC1C4oB,EAAcD,EAAM3oB,QAEAznB,IAAhBqwC,GAA6C,OAAhBA,GAAyBz9B,GAAU1L,QAAQmpC,KAC3EC,EAAU19B,GAAUutB,YAAYh3C,EAAKD,EAAMgnD,EAAII,EAASD,IAM5D,IAAIE,EAAQL,EAAG/7C,OAAS,EACxB,GAAIo8C,EAAQN,EAAc97C,OAAQ,CACjC,IAAKzH,EAAI,EAAGA,EAAI6jD,EAAO7jD,WACfxD,EAAKgnD,EAAGxjD,IAEhBwjD,EAAGv6B,OAAO,EAAG46B,GAEd,OAAOD,GAER19B,GAAUutB,YAAc,SAASh3C,EAAKD,EAAMgnD,EAAII,EAAS7yC,GACxD,IAAI+yC,EAAYtnD,EAAKuU,GAQrB,OAPK+yC,IACJA,EAAYtnD,EAAKuU,GAAUtU,EAAIg3C,YAAY1iC,GAAQvS,MACnDglD,EAAG55C,KAAKmH,IAEL+yC,EAAYF,IACfA,EAAUE,GAEJF,GAMR19B,GAAU69B,mBAAqB,SAASR,GACvC,IAAIS,EAAgB,EAQpB,OAPA99B,GAAUhL,KAAKqoC,GAAe,SAASG,GAClCx9B,GAAU1L,QAAQkpC,IACjBA,EAAMj8C,OAASu8C,IAClBA,EAAgBN,EAAMj8C,WAIlBu8C,GAGR99B,GAAUvV,MAASuJ,EAKlB,SAAS1V,GAMR,OAJIA,aAAiBy/C,iBACpBz/C,EAAQye,EAAclX,OAAO2W,cAGvBxI,EAAa1V,IAVrB,SAASA,GAER,OADA+U,QAAQC,MAAM,uBACPhV,GAWT0hB,GAAUsH,cAAgB,SAAS02B,GAElC,OAAQA,aAAsBC,eAAiBD,aAAsBD,eACpEC,EACAh+B,GAAUvV,MAAMuzC,GAAY9rC,SAAS,IAAKD,OAAO,IAAK7D,cAIzD,SAAS8vC,KACR,MAAM,IAAIp6C,MACT,6GAsBF,SAASq6C,GAAY3hD,GACpB/F,KAAK+F,QAAUA,GAAW,GAG3BwjB,GAAU7J,OAAOgoC,GAAYhnD,UAAqC,CAMjEinD,QAASF,GASTG,MAAOH,GASPI,OAAQJ,GAUR9gD,IAAK8gD,GAUL/1C,KAAM+1C,GAUNK,QAASL,GAQTM,MAAON,GAWPO,QAAS,SAASngD,GACjB,OAAOA,KAIT6/C,GAAYO,SAAW,SAASC,GAC/B3+B,GAAU7J,OAAOgoC,GAAYhnD,UAAWwnD,IAGzC,IAAIC,GAAQT,GAERU,GAAgB,CACnBD,MAAOA,IAOJE,GAAa,CAKhBC,WAAY,CAOXpvC,OAAQ,SAASrR,GAChB,OAAO0hB,GAAU1L,QAAQhW,GAASA,EAAQ,GAAKA,GAWhDoZ,OAAQ,SAASsnC,EAAWrlD,EAAOi+B,GAElC,IAAI9vB,EAAQ8vB,EAAMr2B,OAAS,EAAIq2B,EAAM,GAAKA,EAAM,GAAKA,EAAM,GAAKA,EAAM,GAGlEp/B,KAAKE,IAAIoP,GAAS,GACjBk3C,IAAcxmD,KAAKmN,MAAMq5C,KAE5Bl3C,EAAQk3C,EAAYxmD,KAAKmN,MAAMq5C,IAIjC,IAAIC,EAAWj/B,GAAU5B,MAAM5lB,KAAKE,IAAIoP,IACpCo3C,EAAa,GAEjB,GAAkB,IAAdF,EAAiB,CACpB,IAAIG,EAAU3mD,KAAKqP,IAAIrP,KAAKE,IAAIk/B,EAAM,IAAKp/B,KAAKE,IAAIk/B,EAAMA,EAAMr2B,OAAS,KACzE,GAAI49C,EAAU,KAAM,CACnB,IAAIC,EAAUp/B,GAAU5B,MAAM5lB,KAAKE,IAAIsmD,IACnCK,EAAiB7mD,KAAKmN,MAAMy5C,GAAW5mD,KAAKmN,MAAMs5C,GACtDI,EAAiB7mD,KAAKqP,IAAIrP,KAAKC,IAAI4mD,EAAgB,IAAK,GACxDH,EAAaF,EAAUM,cAAcD,OAC/B,CACN,IAAIE,GAAc,EAAI/mD,KAAKmN,MAAMs5C,GACjCM,EAAa/mD,KAAKqP,IAAIrP,KAAKC,IAAI8mD,EAAY,IAAK,GAChDL,EAAaF,EAAUQ,QAAQD,SAGhCL,EAAa,IAGd,OAAOA,GAGRO,YAAa,SAAST,EAAWrlD,EAAOi+B,GACvC,IAAI8nB,EAASV,EAAaxmD,KAAKiP,IAAI,GAAIjP,KAAKmN,MAAMqa,GAAU5B,MAAM4gC,KAElE,OAAkB,IAAdA,EACI,IACc,IAAXU,GAA2B,IAAXA,GAA2B,IAAXA,GAA0B,IAAV/lD,GAAeA,IAAUi+B,EAAMr2B,OAAS,EAC3Fy9C,EAAUM,gBAEX,MAKNhrC,GAAU0L,GAAU1L,QACpBD,GAAgB2L,GAAU3L,cAC1BsrC,GAAmB3/B,GAAUtL,eAC7BE,GAAwBoL,GAAUpL,sBA4DtC,SAASgrC,GAAOC,EAAKC,GAMpB,IALA,IAAIvyC,EAAS,GACTwyC,EAAYF,EAAIt+C,OAASu+C,EACzBhmD,EAAI,EACJiS,EAAM8zC,EAAIt+C,OAEPzH,EAAIiS,EAAKjS,GAAKimD,EACpBxyC,EAAO7J,KAAKm8C,EAAIrnD,KAAKmN,MAAM7L,KAE5B,OAAOyT,EAGR,SAASyyC,GAAoBhxC,EAAOrV,EAAO+1B,GAC1C,IAMIF,EANAjuB,EAASyN,EAAMyf,WAAWltB,OAC1B0+C,EAAaznD,KAAKC,IAAIkB,EAAO4H,EAAS,GACtC2+C,EAAYlxC,EAAM0f,gBAAgBuxB,GAClC7/B,EAAQpR,EAAMyiB,YACdnC,EAAMtgB,EAAM0iB,UACZpW,EAAU,KAGd,KAAIoU,IAEFF,EADc,IAAXjuB,EACM/I,KAAKqP,IAAIq4C,EAAY9/B,EAAOkP,EAAM4wB,GACvB,IAAVvmD,GACAqV,EAAM0f,gBAAgB,GAAKwxB,GAAa,GAExCA,EAAYlxC,EAAM0f,gBAAgBuxB,EAAa,IAAM,EAEhEC,GAAaD,EAAatmD,EAAQ61B,GAAUA,EAGxC0wB,EAAY9/B,EAAQ9E,GAAW4kC,EAAY5wB,EAAMhU,IAItD,OAAO4kC,EAGR,SAAS3C,GAAe4C,EAAQ5+C,GAC/Bye,GAAUhL,KAAKmrC,GAAQ,SAAS9Y,GAC/B,IAEIvtC,EAFAwjD,EAAKjW,EAAMiW,GACXK,EAAQL,EAAG/7C,OAAS,EAExB,GAAIo8C,EAAQp8C,EAAQ,CACnB,IAAKzH,EAAI,EAAGA,EAAI6jD,IAAS7jD,SACjButC,EAAM/wC,KAAKgnD,EAAGxjD,IAEtBwjD,EAAGv6B,OAAO,EAAG46B,OAShB,SAASyC,GAAkB7pD,EAAK8pD,EAAWzoB,EAAOuoB,GACjD,IAMIrmD,EAAG+6B,EAAGkH,EAAM96B,EAAOq/C,EAAU9S,EAAYnG,EAAO1pB,EAAYrlB,EAAOD,EAAQkoD,EAAaC,EAAQC,EANhGl/C,EAASq2B,EAAMr2B,OACfm/C,EAAS,GACTC,EAAU,GACVC,EAAU,GACVC,EAAkB,EAClBC,EAAmB,EAGvB,IAAKhnD,EAAI,EAAGA,EAAIyH,IAAUzH,EAAG,CAQ5B,GAPAmH,EAAQ22B,EAAM99B,GAAGmH,MACjBq/C,EAAW1oB,EAAM99B,GAAGinD,MAAQV,EAAUU,MAAQV,EAAUW,MACxDzqD,EAAI0mB,KAAOuwB,EAAa8S,EAASz1C,OACjCw8B,EAAQ8Y,EAAO3S,GAAc2S,EAAO3S,IAAe,CAACl3C,KAAM,GAAIgnD,GAAI,IAClE3/B,EAAa2iC,EAAS3iC,WACtBrlB,EAAQD,EAAS,EAEZgc,GAAcpT,IAAWqT,GAAQrT,IAG/B,GAAIqT,GAAQrT,GAElB,IAAK4zB,EAAI,EAAGkH,EAAO96B,EAAMM,OAAQszB,EAAIkH,IAAQlH,EAC5C0rB,EAAct/C,EAAM4zB,GAEfxgB,GAAcksC,IAAiBjsC,GAAQisC,KAC3CjoD,EAAQ0nB,GAAUutB,YAAYh3C,EAAK8wC,EAAM/wC,KAAM+wC,EAAMiW,GAAIhlD,EAAOioD,GAChEloD,GAAUslB,QATZrlB,EAAQ0nB,GAAUutB,YAAYh3C,EAAK8wC,EAAM/wC,KAAM+wC,EAAMiW,GAAIhlD,EAAO2I,GAChE5I,EAASslB,EAYV+iC,EAAOh9C,KAAKpL,GACZqoD,EAAQj9C,KAAKrL,GACbuoD,EAAQl9C,KAAKia,EAAa,GAC1BkjC,EAAkBroD,KAAKqP,IAAIvP,EAAOuoD,GAClCC,EAAmBtoD,KAAKqP,IAAIxP,EAAQyoD,GAOrC,SAASG,EAAQja,GAChB,MAAO,CACN1uC,MAAOooD,EAAO1Z,IAAQ,EACtB3uC,OAAQsoD,EAAQ3Z,IAAQ,EACxBxX,OAAQoxB,EAAQ5Z,IAAQ,GAI1B,OAbAuW,GAAe4C,EAAQ5+C,GAEvBi/C,EAASE,EAAOjnD,QAAQonD,GACxBJ,EAAUE,EAAQlnD,QAAQqnD,GAUnB,CACNI,MAAOD,EAAQ,GACfhwB,KAAMgwB,EAAQ1/C,EAAS,GACvBi/C,OAAQS,EAAQT,GAChBC,QAASQ,EAAQR,IAInB,SAASU,GAAkB3kD,GAC1B,OAAOA,EAAQ4kD,UAAY5kD,EAAQ6kD,eAAiB,EAGrD,SAASC,GAAoB9kD,GAC5B,IAAIygB,EAAMsP,EAEV,OAAK/vB,EAAQk9B,SAIbzc,EAAO+C,GAAUxjB,QAAQ+gB,WAAW/gB,GACpC+vB,EAAUvM,GAAUxjB,QAAQ8gB,UAAU9gB,EAAQ+vB,SAEvCtP,EAAKU,WAAa4O,EAAQl0B,QANzB,EAST,SAASkpD,GAAiB/kD,EAASglD,GAClC,OAAOxhC,GAAU7J,OAAO6J,GAAUxjB,QAAQ+gB,WAAW,CACpDG,WAAYiiC,GAAiB6B,EAAW9jC,WAAYlhB,EAAQkhB,YAC5DD,SAAUkiC,GAAiB6B,EAAW/jC,SAAUjhB,EAAQihB,UACxDG,UAAW+hC,GAAiB6B,EAAW5jC,UAAWphB,EAAQohB,WAC1DD,WAAYgiC,GAAiB6B,EAAW7jC,WAAYnhB,EAAQmhB,cACzD,CACHlT,MAAOuV,GAAUxjB,QAAQqhB,QAAQ,CAAC2jC,EAAWC,UAAWjlD,EAAQilD,UAAW1kC,EAAclX,OAAO4W,qBAIlG,SAASilC,GAAqBllD,GAC7B,IAAIwkD,EAAQO,GAAiB/kD,EAASA,EAAQwkD,OAC1CD,EAAQvkD,EAAQukD,MAAM3Y,QAAUmZ,GAAiB/kD,EAASA,EAAQukD,OAASC,EAE/E,MAAO,CAACA,MAAOA,EAAOD,MAAOA,GAG9B,SAASY,GAAWC,GACnB,IACIvqC,EAAM1d,EAAOoS,EADbssC,EAAW,GAEf,IAAK1+C,EAAQ,EAAGoS,EAAM61C,EAAcrgD,OAAQ5H,EAAQoS,IAAOpS,EAC1D0d,EAAOuqC,EAAcjoD,GACM,qBAAhB0d,EAAKuO,QACfyyB,EAAS30C,KAAK2T,GAGhB,OAAOghC,EAGR,SAASwJ,GAAehC,GACvB,IACI/lD,EAAGqO,EADH4D,EAAM8zC,EAAIt+C,OAGd,GAAIwK,EAAM,EACT,OAAO,EAGR,IAAK5D,EAAO03C,EAAI,GAAI/lD,EAAI,EAAGA,EAAIiS,IAAOjS,EACrC,GAAI+lD,EAAI/lD,GAAK+lD,EAAI/lD,EAAI,KAAOqO,EAC3B,OAAO,EAGT,OAAOA,EAGR,SAAS25C,GAAiBC,EAAcnqB,EAAOoqB,EAAYC,GAC1D,IAEIC,EAASC,EAAQroD,EAAGwb,EAFpB8sC,EAAmBP,GAAeE,GAClCM,GAAWzqB,EAAMr2B,OAAS,GAAK0gD,EAKnC,IAAKG,EACJ,OAAO5pD,KAAKqP,IAAIw6C,EAAS,GAI1B,IADAH,EAAUliC,GAAUE,KAAKhC,WAAWkkC,GAC/BtoD,EAAI,EAAGwb,EAAO4sC,EAAQ3gD,OAAS,EAAGzH,EAAIwb,EAAMxb,IAEhD,GADAqoD,EAASD,EAAQpoD,GACbqoD,EAASE,EACZ,OAAOF,EAGT,OAAO3pD,KAAKqP,IAAIw6C,EAAS,GAG1B,SAASC,GAAgB1qB,GACxB,IACI99B,EAAGwb,EADH/H,EAAS,GAEb,IAAKzT,EAAI,EAAGwb,EAAOsiB,EAAMr2B,OAAQzH,EAAIwb,EAAMxb,IACtC89B,EAAM99B,GAAGinD,OACZxzC,EAAO7J,KAAK5J,GAGd,OAAOyT,EAGR,SAASg1C,GAAW3qB,EAAOmqB,EAAcM,GACxC,IAEIvoD,EAAG0oD,EAFHv6B,EAAQ,EACRmH,EAAO2yB,EAAa,GAIxB,IADAM,EAAU7pD,KAAKiqD,KAAKJ,GACfvoD,EAAI,EAAGA,EAAI89B,EAAMr2B,OAAQzH,IAC7B0oD,EAAO5qB,EAAM99B,GACTA,IAAMs1B,GACTozB,EAAK58B,OAAS9rB,EACdmuB,IACAmH,EAAO2yB,EAAa95B,EAAQo6B,WAErBG,EAAKvhD,MAKf,SAASwqB,GAAKmM,EAAOyqB,EAASK,EAAYC,GACzC,IAGIphD,EAAQzH,EAAG0oD,EAAMpzB,EAHjBhP,EAAQu/B,GAAiB+C,EAAY,GACrCpzB,EAAM92B,KAAKC,IAAIknD,GAAiBgD,EAAU/qB,EAAMr2B,QAASq2B,EAAMr2B,QAC/D0mB,EAAQ,EAGZo6B,EAAU7pD,KAAKiqD,KAAKJ,GAChBM,IACHphD,EAASohD,EAAWD,EACpBL,EAAU9gD,EAAS/I,KAAKmN,MAAMpE,EAAS8gD,IAGxCjzB,EAAOhP,EAEP,MAAOgP,EAAO,EACbnH,IACAmH,EAAO52B,KAAK+R,MAAM6V,EAAQ6H,EAAQo6B,GAGnC,IAAKvoD,EAAItB,KAAKqP,IAAIuY,EAAO,GAAItmB,EAAIw1B,EAAKx1B,IACrC0oD,EAAO5qB,EAAM99B,GACTA,IAAMs1B,GACTozB,EAAK58B,OAAS9rB,EACdmuB,IACAmH,EAAO52B,KAAK+R,MAAM6V,EAAQ6H,EAAQo6B,WAE3BG,EAAKvhD,MAxTf8b,EAAcR,KAAK,QAAS,CAC3Bmd,SAAS,EACTrH,SAAU,OACV7C,QAAQ,EAGRC,UAAW,CACViK,SAAS,EACTjvB,MAAO,kBACPpR,UAAW,EACX+vB,YAAY,EACZw5B,iBAAiB,EACjBxB,WAAW,EACXC,eAAgB,GAChBwB,cAAe,EACfC,cAAe,mBACfC,mBAAoB,GACpBC,yBAA0B,EAC1BtzB,iBAAiB,EACjB7E,WAAY,GACZC,iBAAkB,GAInBm4B,WAAY,CAEXvpB,SAAS,EAGTwpB,YAAa,GAGb32B,QAAS,CACRh1B,IAAK,EACLC,OAAQ,IAKVogC,MAAO,CACNiC,aAAa,EACbspB,YAAa,EACbC,YAAa,GACbC,QAAQ,EACR92B,QAAS,EACTrX,SAAS,EACTwkB,SAAS,EACT4pB,UAAU,EACVC,gBAAiB,EACjBC,YAAa,EAEb3uC,SAAUiqC,GAAWC,WAAWpvC,OAChCqxC,MAAO,GACPD,MAAO,MAwQT,IAAI0C,GAAQliC,GAAapL,OAAO,CAE/ButC,cAAe,EAQf5kB,WAAY,WACX,IAAIroB,EAAKhgB,KACT,MAAO,CACNY,KAAMof,EAAG4lC,aAAe,EACxB9kD,IAAKkf,EAAG6lC,YAAc,EACtBhlD,MAAOmf,EAAG8lC,cAAgB,EAC1B/kD,OAAQif,EAAG+lC,eAAiB,IAQ9B/tB,SAAU,WACT,OAAOh4B,KAAKktD,QAMbC,WAAY,WACX,IAAIttD,EAAOG,KAAKkK,MAAMrK,KACtB,OAAOG,KAAK+F,QAAQyF,SAAWxL,KAAKg6B,eAAiBn6B,EAAK6L,QAAU7L,EAAK8L,UAAY9L,EAAK2L,QAAU,IAarGsyC,kBAAmB,aAInBsP,aAAc,WACb7jC,GAAUnL,SAASpe,KAAK+F,QAAQqnD,aAAc,CAACptD,QAWhD4L,OAAQ,SAAS0yB,EAAUC,EAAW8uB,GACrC,IAGIhqD,EAAGwb,EAAMrT,EAAQ21B,EAAOmsB,EAHxBttC,EAAKhgB,KACLkhC,EAAWlhB,EAAGja,QAAQo7B,MACtBosB,EAAarsB,EAASqsB,WAoD1B,GAhDAvtC,EAAGotC,eAGHptC,EAAGse,SAAWA,EACdte,EAAGue,UAAYA,EACfve,EAAGqtC,QAAU9jC,GAAU7J,OAAO,CAC7B9e,KAAM,EACNC,MAAO,EACPC,IAAK,EACLC,OAAQ,GACNssD,GAEHrtC,EAAGktC,OAAS,KACZltC,EAAGmhB,MAAQ,KACXnhB,EAAGwtC,YAAc,KACjBxtC,EAAGytC,eAAiB,EACpBztC,EAAG0tC,kBAAoB,EACvB1tC,EAAG2tC,iBAAmB3tC,EAAG2tC,kBAAoB,GAC7C3tC,EAAG4tC,eAAiB,KACpB5tC,EAAG6tC,YAAc,KAGjB7tC,EAAG8tC,sBACH9tC,EAAG+tC,gBACH/tC,EAAGguC,qBAGHhuC,EAAGiuC,mBACHjuC,EAAGkuC,sBACHluC,EAAGmuC,kBASHnuC,EAAGouC,mBAIHjtB,EAAQnhB,EAAGquC,cAAgB,GAG3BltB,EAAQnhB,EAAGsuC,gBAAgBntB,IAAUA,IAG/BA,IAAUA,EAAMr2B,SAAWkV,EAAGmhB,MAEnC,IADAA,EAAQ,GACH99B,EAAI,EAAGwb,EAAOmB,EAAGmhB,MAAMr2B,OAAQzH,EAAIwb,IAAQxb,EAC/C89B,EAAMl0B,KAAK,CACVpF,MAAOmY,EAAGmhB,MAAM99B,GAChBinD,OAAO,IA2CV,OAtCAtqC,EAAGktC,OAAS/rB,EAIZmsB,EAAkBC,EAAapsB,EAAMr2B,OACrCU,EAASwU,EAAGuuC,sBAAsBjB,EAAkBnE,GAAOhoB,EAAOosB,GAAcpsB,GAMhFnhB,EAAG2P,aAGH3P,EAAGwuC,8BACHxuC,EAAGyuC,wBACHzuC,EAAG0uC,6BAEH1uC,EAAG2uC,YACH3uC,EAAG4uC,MACH5uC,EAAG6uC,WAGH7uC,EAAG8uC,aAAe5tB,EAAS+B,UAAY/B,EAAS2rB,UAAgC,SAApB3rB,EAASzkB,QAAqBuD,EAAG+uC,UAAU5tB,GAASA,EAE5GmsB,IAEH9hD,EAASwU,EAAGuuC,sBAAsBvuC,EAAG8uC,eAGtC9uC,EAAGmhB,MAAQ31B,EAIXwU,EAAGgvC,cAIIhvC,EAAG6jB,SAMXlU,WAAY,WACX,IAEIs/B,EAAYC,EAFZlvC,EAAKhgB,KACLmvD,EAAgBnvC,EAAGja,QAAQo7B,MAAM1iB,QAGjCuB,EAAGga,gBACNi1B,EAAajvC,EAAGpf,KAChBsuD,EAAWlvC,EAAGnf,QAEdouD,EAAajvC,EAAGlf,IAChBouD,EAAWlvC,EAAGjf,OAEdouD,GAAiBA,GAElBnvC,EAAGgb,YAAci0B,EACjBjvC,EAAGib,UAAYi0B,EACflvC,EAAGovC,eAAiBD,EACpBnvC,EAAG+X,QAAUm3B,EAAWD,GAGzBD,YAAa,WACZzlC,GAAUnL,SAASpe,KAAK+F,QAAQipD,YAAa,CAAChvD,QAK/C8tD,oBAAqB,WACpBvkC,GAAUnL,SAASpe,KAAK+F,QAAQ+nD,oBAAqB,CAAC9tD,QAEvD+tD,cAAe,WACd,IAAI/tC,EAAKhgB,KAELggB,EAAGga,gBAENha,EAAGne,MAAQme,EAAGse,SACdte,EAAGpf,KAAO,EACVof,EAAGnf,MAAQmf,EAAGne,QAEdme,EAAGpe,OAASoe,EAAGue,UAGfve,EAAGlf,IAAM,EACTkf,EAAGjf,OAASif,EAAGpe,QAIhBoe,EAAG4lC,YAAc,EACjB5lC,EAAG6lC,WAAa,EAChB7lC,EAAG8lC,aAAe,EAClB9lC,EAAG+lC,cAAgB,GAEpBiI,mBAAoB,WACnBzkC,GAAUnL,SAASpe,KAAK+F,QAAQioD,mBAAoB,CAAChuD,QAItDiuD,iBAAkB,WACjB1kC,GAAUnL,SAASpe,KAAK+F,QAAQkoD,iBAAkB,CAACjuD,QAEpDkuD,oBAAqB3kC,GAAU7L,KAC/BywC,gBAAiB,WAChB5kC,GAAUnL,SAASpe,KAAK+F,QAAQooD,gBAAiB,CAACnuD,QAInDouD,iBAAkB,WACjB7kC,GAAUnL,SAASpe,KAAK+F,QAAQqoD,iBAAkB,CAACpuD,QAEpDquD,WAAY9kC,GAAU7L,KACtB4wC,gBAAiB,SAASntB,GACzB,IAAInhB,EAAKhgB,KAET,OAAI6d,GAAQsjB,IAAUA,EAAMr2B,OACpBye,GAAUnL,SAAS4B,EAAGja,QAAQuoD,gBAAiB,CAACtuC,EAAImhB,KAG5DnhB,EAAGmhB,MAAQ5X,GAAUnL,SAAS4B,EAAGja,QAAQuoD,gBAAiB,CAACtuC,EAAIA,EAAGmhB,SAAWnhB,EAAGmhB,MACzEA,IAGRkuB,4BAA6B,WAC5B9lC,GAAUnL,SAASpe,KAAK+F,QAAQspD,4BAA6B,CAACrvD,QAE/DsvD,qBAAsB,WACrB,IAAItvC,EAAKhgB,KAELkhC,EAAWlhB,EAAGja,QAAQo7B,MAC1BnhB,EAAGmhB,MAAQnhB,EAAGmhB,MAAM72B,IAAI42B,EAASquB,cAAgBruB,EAAS9iB,SAAUpe,OAErEwvD,2BAA4B,WAC3BjmC,GAAUnL,SAASpe,KAAK+F,QAAQypD,2BAA4B,CAACxvD,QAK9DwuD,4BAA6B,WAC5BjlC,GAAUnL,SAASpe,KAAK+F,QAAQyoD,4BAA6B,CAACxuD,QAE/DyuD,sBAAuB,WACtB,IAOIgB,EAAYC,EAAeC,EAAgBrxB,EAAUsxB,EAAWrxB,EAAWsxB,EAP3E7vC,EAAKhgB,KACL+F,EAAUia,EAAGja,QACbm7B,EAAWn7B,EAAQo7B,MACnB2uB,EAAW9vC,EAAGgY,WAAWltB,OACzB4hD,EAAcxrB,EAASwrB,aAAe,EACtCC,EAAczrB,EAASyrB,YACvBoD,EAAgBrD,GAGf1sC,EAAGgwC,eAAiB9uB,EAAS+B,SAAWypB,GAAeC,GAAemD,GAAY,IAAM9vC,EAAGga,eAC/Fha,EAAG+vC,cAAgBrD,GAIpB+C,EAAazvC,EAAGiwC,iBAChBP,EAAgBD,EAAW1F,OAAOloD,MAClC8tD,EAAiBF,EAAWzF,QAAQpoD,OAAS6tD,EAAWzF,QAAQjxB,OAIhEuF,EAAWv8B,KAAKC,IAAIge,EAAGse,SAAUte,EAAG9V,MAAMrI,MAAQ6tD,GAClDE,EAAY7pD,EAAQgzB,OAAS/Y,EAAGse,SAAWwxB,EAAWxxB,GAAYwxB,EAAW,GAGzEJ,EAAgB,EAAIE,IACvBA,EAAYtxB,GAAYwxB,GAAY/pD,EAAQgzB,OAAS,GAAM,IAC3DwF,EAAYve,EAAGue,UAAYmsB,GAAkB3kD,EAAQizB,WAClDkI,EAASpL,QAAU+0B,GAAoB9kD,EAAQymD,YAClDqD,EAAmB9tD,KAAK0R,KAAKi8C,EAAgBA,EAAgBC,EAAiBA,GAC9EI,EAAgBxmC,GAAUi5B,UAAUzgD,KAAKC,IACxCD,KAAKygB,KAAKzgB,KAAKC,KAAKytD,EAAWzF,QAAQpoD,OAAS,GAAKguD,EAAW,IAChE7tD,KAAKygB,KAAKzgB,KAAKC,IAAIu8B,EAAYsxB,EAAkB,IAAM9tD,KAAKygB,KAAKmtC,EAAiBE,KAEnFE,EAAgBhuD,KAAKqP,IAAIs7C,EAAa3qD,KAAKC,IAAI2qD,EAAaoD,KAG7D/vC,EAAG+vC,cAAgBA,IAEpBrB,2BAA4B,WAC3BnlC,GAAUnL,SAASpe,KAAK+F,QAAQ2oD,2BAA4B,CAAC1uD,QAK9D2uD,UAAW,WACVplC,GAAUnL,SAASpe,KAAK+F,QAAQ4oD,UAAW,CAAC3uD,QAE7C4uD,IAAK,WACJ,IAAI5uC,EAAKhgB,KAEL6jC,EAAU7jB,EAAG6jB,QAAU,CAC1BhiC,MAAO,EACPD,OAAQ,GAGLsI,EAAQ8V,EAAG9V,MACXs0B,EAAOxe,EAAGja,QACVm7B,EAAW1C,EAAK2C,MAChB+uB,EAAiB1xB,EAAKguB,WACtB2D,EAAe3xB,EAAKxF,UACpBiK,EAAUjjB,EAAGgwC,aACbI,EAA6B,WAAlB5xB,EAAK5C,SAChB5B,EAAeha,EAAGga,eAiBtB,GAdIA,EACH6J,EAAQhiC,MAAQme,EAAGse,SACT2E,IACVY,EAAQhiC,MAAQ6oD,GAAkByF,GAAgBtF,GAAoBqF,IAIlEl2B,EAEMiJ,IACVY,EAAQjiC,OAAS8oD,GAAkByF,GAAgBtF,GAAoBqF,IAFvErsB,EAAQjiC,OAASoe,EAAGue,UAMjB2C,EAAS+B,SAAWA,EAAS,CAChC,IAAI2mB,EAAYqB,GAAqB/pB,GACjCuuB,EAAazvC,EAAGiwC,iBAChBI,EAAiBZ,EAAWhF,MAC5B6F,EAAgBb,EAAWj1B,KAC3B4vB,EAAkBqF,EAAW1F,OAC7BM,EAAmBoF,EAAWzF,QAC9BuG,EAAyC,GAA7B3G,EAAUW,MAAMrjC,WAC5BspC,EAActvB,EAASpL,QAE3B,GAAIkE,EAAc,CAEjB,IAAIy2B,EAAiC,IAArBzwC,EAAG+vC,cACfW,EAAennC,GAAUg5B,UAAUviC,EAAG+vC,eACtCY,EAAc5uD,KAAK2R,IAAIg9C,GACvBE,EAAc7uD,KAAK4R,IAAI+8C,GAEvBG,EAAcD,EAAcxG,EAAgBvoD,MAC7C8uD,GAAetG,EAAiBzoD,QAAU6uD,EAAYpG,EAAiBtxB,OAAS,KAC/E03B,EAAY,EAAIF,GAEpB1sB,EAAQjiC,OAASG,KAAKC,IAAIge,EAAGue,UAAWsF,EAAQjiC,OAASivD,EAAcL,GAEvE,IAEI5K,EAAaE,EAFbgL,EAAa9wC,EAAGiY,gBAAgB,GAAKjY,EAAGpf,KACxCmwD,EAAc/wC,EAAGnf,MAAQmf,EAAGiY,gBAAgBjY,EAAGgY,WAAWltB,OAAS,GAKnE2lD,GACH7K,EAAcwK,EACbO,EAAcN,EAAexuD,MAAQ+uD,EAAcP,EAAet3B,OAClE63B,GAAeP,EAAezuD,OAASyuD,EAAet3B,QACvD+sB,EAAesK,EACdQ,GAAeN,EAAc1uD,OAAS0uD,EAAcv3B,QACpD43B,EAAcL,EAAczuD,MAAQ+uD,EAAcN,EAAcv3B,SAEjE6sB,EAAcyK,EAAexuD,MAAQ,EACrCikD,EAAewK,EAAczuD,MAAQ,GAKtCme,EAAG4lC,YAAc7jD,KAAKqP,KAAKw0C,EAAckL,GAAc9wC,EAAGne,OAASme,EAAGne,MAAQivD,GAAa,GAAK,EAChG9wC,EAAG8lC,aAAe/jD,KAAKqP,KAAK00C,EAAeiL,GAAe/wC,EAAGne,OAASme,EAAGne,MAAQkvD,GAAc,GAAK,MAC9F,CAGN,IAAIC,EAAa9vB,EAAS0rB,OAAS,EAGlCxC,EAAgBvoD,MAAQ2uD,EAAcD,EAEvC1sB,EAAQhiC,MAAQE,KAAKC,IAAIge,EAAGse,SAAUuF,EAAQhiC,MAAQmvD,GAEtDhxC,EAAG6lC,WAAawK,EAAezuD,OAAS,EACxCoe,EAAG+lC,cAAgBuK,EAAc1uD,OAAS,GAI5Coe,EAAGixC,gBAECj3B,GACHha,EAAGne,MAAQme,EAAG+X,QAAU7tB,EAAMrI,MAAQme,EAAGqtC,QAAQzsD,KAAOof,EAAGqtC,QAAQxsD,MACnEmf,EAAGpe,OAASiiC,EAAQjiC,SAEpBoe,EAAGne,MAAQgiC,EAAQhiC,MACnBme,EAAGpe,OAASoe,EAAG+X,QAAU7tB,EAAMtI,OAASoe,EAAGqtC,QAAQvsD,IAAMkf,EAAGqtC,QAAQtsD,SAQtEkwD,cAAe,WACd,IAAIjxC,EAAKhgB,KACLggB,EAAGqtC,UACNrtC,EAAGqtC,QAAQzsD,KAAOmB,KAAKqP,IAAI4O,EAAG4lC,YAAa5lC,EAAGqtC,QAAQzsD,MACtDof,EAAGqtC,QAAQvsD,IAAMiB,KAAKqP,IAAI4O,EAAG6lC,WAAY7lC,EAAGqtC,QAAQvsD,KACpDkf,EAAGqtC,QAAQxsD,MAAQkB,KAAKqP,IAAI4O,EAAG8lC,aAAc9lC,EAAGqtC,QAAQxsD,OACxDmf,EAAGqtC,QAAQtsD,OAASgB,KAAKqP,IAAI4O,EAAG+lC,cAAe/lC,EAAGqtC,QAAQtsD,UAI5D8tD,SAAU,WACTtlC,GAAUnL,SAASpe,KAAK+F,QAAQ8oD,SAAU,CAAC7uD,QAI5Cg6B,aAAc,WACb,IAAI8M,EAAM9mC,KAAK+F,QAAQ61B,SACvB,MAAe,QAARkL,GAAyB,WAARA,GAEzBoqB,YAAa,WACZ,OAAOlxD,KAAK+F,QAAQyhC,WAIrBlF,cAAe,SAAS6uB,GAEvB,GAAIvzC,GAAcuzC,GACjB,OAAO30B,IAGR,IAAyB,kBAAb20B,GAAyBA,aAAoBxkD,UAAYqR,SAASmzC,GAC7E,OAAO30B,IAIR,GAAI20B,EACH,GAAInxD,KAAKg6B,gBACR,QAAmBrjB,IAAfw6C,EAASzvD,EACZ,OAAO1B,KAAKsiC,cAAc6uB,EAASzvD,QAE9B,QAAmBiV,IAAfw6C,EAASxvD,EACnB,OAAO3B,KAAKsiC,cAAc6uB,EAASxvD,GAKrC,OAAOwvD,GAGR5C,sBAAuB,SAASptB,GAC/B,IACI31B,EAAQnI,EAAGwb,EADXmB,EAAKhgB,KAiBT,IAdAggB,EAAGmhB,MAAQA,EAAM72B,KAAI,SAASyhD,GAC7B,OAAOA,EAAKlkD,SAGbmY,EAAGqvC,8BAKH7jD,EAASwU,EAAGsvC,qBAAqBnuB,IAAUnhB,EAAGmhB,MAE9CnhB,EAAGwvC,6BAGEnsD,EAAI,EAAGwb,EAAOsiB,EAAMr2B,OAAQzH,EAAIwb,IAAQxb,EAC5C89B,EAAM99B,GAAGmH,MAAQgB,EAAOnI,GAGzB,OAAOmI,GAMRykD,eAAgB,WACf,IAAIjwC,EAAKhgB,KACLyvD,EAAazvC,EAAGwtC,YAOpB,OALKiC,IACJzvC,EAAGwtC,YAAciC,EAAa9F,GAAkB3pC,EAAGlgB,IAAKmrD,GAAqBjrC,EAAGja,QAAQo7B,OAAQnhB,EAAGgY,WAAYhY,EAAG2tC,kBAClH3tC,EAAG0tC,kBAAoB+B,EAAW1F,OAAOloD,OAGnC4tD,GAMRp0B,YAAa,SAASxzB,GACrB,IAAI8hB,EAAOkP,EAAK72B,EAAKoP,EAerB,OAbIyM,GAAQhW,IACX8hB,GAAS3pB,KAAKsiC,cAAcz6B,EAAM,IAClCgxB,GAAO74B,KAAKsiC,cAAcz6B,EAAM,IAChC7F,EAAMD,KAAKC,IAAI2nB,EAAOkP,GACtBznB,EAAMrP,KAAKqP,IAAIuY,EAAOkP,KAEtBhxB,GAAS7H,KAAKsiC,cAAcz6B,GAC5B8hB,OAAQhT,EACRkiB,EAAMhxB,EACN7F,EAAM6F,EACNuJ,EAAMvJ,GAGA,CACN7F,IAAKA,EACLoP,IAAKA,EACLuY,MAAOA,EACPkP,IAAKA,IAOPu4B,eAAgB,SAASD,GACxB,IAAI1/C,EAAIzR,KAAKq7B,YAAY81B,GACzB,YAAgBx6C,IAAZlF,EAAEkY,MACE,IAAMlY,EAAEkY,MAAQ,KAAOlY,EAAEonB,IAAM,KAG/B74B,KAAKsiC,cAAc6uB,IAQ5B1c,iBAAkBlrB,GAAU7L,KAS5Bqd,iBAAkBxR,GAAU7L,KAO5B2zC,iBAAkB9nC,GAAU7L,KAM5Bua,gBAAiB,SAAS/0B,GACzB,IAAI8c,EAAKhgB,KACL+4B,EAAS/Y,EAAGja,QAAQgzB,OACpB+2B,EAAW9vC,EAAGktC,OAAOpiD,OACrB8kD,EAAY,EAAI7tD,KAAKqP,IAAI0+C,GAAY/2B,EAAS,EAAI,GAAI,GAE1D,OAAO71B,EAAQ,GAAKA,EAAQ4sD,EAAW,EACpC,KACA9vC,EAAGuc,mBAAmBr5B,EAAQ0sD,GAAa72B,EAAS62B,EAAY,EAAI,KAOxErzB,mBAAoB,SAAS+0B,GAC5B,IAAItxC,EAAKhgB,KAMT,OAJIggB,EAAGovC,iBACNkC,EAAU,EAAIA,GAGRtxC,EAAGgb,YAAcs2B,EAAUtxC,EAAG+X,SAGtCw5B,mBAAoB,SAASpO,GAC5B,IAAImO,GAAWnO,EAAQnjD,KAAKg7B,aAAeh7B,KAAK+3B,QAChD,OAAO/3B,KAAKovD,eAAiB,EAAIkC,EAAUA,GAO5Cv3B,aAAc,WACb,OAAO/5B,KAAK+6B,iBAAiB/6B,KAAKwxD,iBAGnCA,aAAc,WACb,IAAIxxC,EAAKhgB,KACLgC,EAAMge,EAAGhe,IACToP,EAAM4O,EAAG5O,IAEb,OAAO4O,EAAGojB,YAAc,EACvBphC,EAAM,GAAKoP,EAAM,EAAIA,EACrBpP,EAAM,GAAKoP,EAAM,EAAIpP,EACrB,GAOF+sD,UAAW,SAAS5tB,GACnB,IAQI99B,EAAGwb,EAAM+sC,EAAS6F,EARlBzxC,EAAKhgB,KACLkhC,EAAWlhB,EAAGja,QAAQo7B,MACtBoqB,EAAavrC,EAAG+X,QAChByzB,EAAatqB,EAASwwB,eAAiBnG,EAAavrC,EAAG2xC,YAAc,EACrErG,EAAepqB,EAASopB,MAAM3Y,QAAUka,GAAgB1qB,GAAS,GACjEywB,EAAkBtG,EAAaxgD,OAC/B2/C,EAAQa,EAAa,GACrB9wB,EAAO8wB,EAAasG,EAAkB,GAI1C,GAAIA,EAAkBpG,EAErB,OADAM,GAAW3qB,EAAOmqB,EAAcsG,EAAkBpG,GAC3CN,GAAW/pB,GAKnB,GAFAyqB,EAAUP,GAAiBC,EAAcnqB,EAAOoqB,EAAYC,GAExDoG,EAAkB,EAAG,CACxB,IAAKvuD,EAAI,EAAGwb,EAAO+yC,EAAkB,EAAGvuD,EAAIwb,EAAMxb,IACjD2xB,GAAKmM,EAAOyqB,EAASN,EAAajoD,GAAIioD,EAAajoD,EAAI,IAKxD,OAHAouD,EAAkBG,EAAkB,GAAKp3B,EAAOiwB,IAAUmH,EAAkB,GAAK,KACjF58B,GAAKmM,EAAOyqB,EAASriC,GAAU3L,cAAc6zC,GAAmB,EAAIhH,EAAQgH,EAAiBhH,GAC7Fz1B,GAAKmM,EAAOyqB,EAASpxB,EAAMjR,GAAU3L,cAAc6zC,GAAmBtwB,EAAMr2B,OAAS0vB,EAAOi3B,GACrFvG,GAAW/pB,GAGnB,OADAnM,GAAKmM,EAAOyqB,GACLV,GAAW/pB,IAMnBwwB,UAAW,WACV,IAAI3xC,EAAKhgB,KACL6xD,EAAc7xC,EAAGja,QAAQo7B,MAGzB2wB,EAAMvoC,GAAUg5B,UAAUviC,EAAG+vC,eAC7Br8C,EAAM3R,KAAKE,IAAIF,KAAK2R,IAAIo+C,IACxBn+C,EAAM5R,KAAKE,IAAIF,KAAK4R,IAAIm+C,IAExBrC,EAAazvC,EAAGiwC,iBAChBn6B,EAAU+7B,EAAY/E,iBAAmB,EACzCl7C,EAAI69C,EAAaA,EAAW1F,OAAOloD,MAAQi0B,EAAU,EACrD9uB,EAAIyoD,EAAaA,EAAWzF,QAAQpoD,OAASk0B,EAAU,EAG3D,OAAO9V,EAAGga,eACPhzB,EAAI0M,EAAM9B,EAAI+B,EAAM/B,EAAI8B,EAAM1M,EAAI2M,EAClC3M,EAAI2M,EAAM/B,EAAI8B,EAAM1M,EAAI0M,EAAM9B,EAAI+B,GAMtCq8C,WAAY,WACX,IAGI3sD,EAAGwb,EAAMiP,EAHT9N,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MACX+4B,EAAUjjB,EAAGja,QAAQk9B,QAGzB,GAAgB,SAAZA,EACH,QAASA,EAIV,IAAK5/B,EAAI,EAAGwb,EAAO3U,EAAMrK,KAAKwK,SAASS,OAAQzH,EAAIwb,IAAQxb,EAC1D,GAAI6G,EAAMm0B,iBAAiBh7B,KAC1ByqB,EAAO5jB,EAAMokB,eAAejrB,GACxByqB,EAAKI,UAAYlO,EAAGxT,IAAMshB,EAAKM,UAAYpO,EAAGxT,IACjD,OAAO,EAKV,OAAO,GAMRulD,sBAAuB,SAASh8B,GAC/B,IAkBIi8B,EAAa3uD,EAAG0oD,EAAMtC,EAAWwI,EACjCC,EAAKC,EAAKC,EAAKC,EAAKl8B,EAAIC,EAAIhjB,EAAID,EAAIvQ,EAAW0vD,EAAWl+B,EAAYC,EAnBtErU,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MACXnE,EAAUia,EAAGja,QACbizB,EAAYjzB,EAAQizB,UACpB4C,EAAW71B,EAAQ61B,SACnB3C,EAAkBD,EAAUC,gBAC5Be,EAAeha,EAAGga,eAClBmH,EAAQnhB,EAAG8uC,aACXyD,EAAcpxB,EAAMr2B,QAAUmuB,EAAkB,EAAI,GAEpDu5B,EAAK9H,GAAkB1xB,GACvBsN,EAAQ,GACRmsB,EAAYz5B,EAAUrG,WAAaxU,GAAsB6a,EAAUp2B,UAAW,EAAG,GAAK,EACtF8vD,EAAgBD,EAAY,EAC5BE,EAAappC,GAAU25B,YACvB0P,EAAmB,SAASzP,GAC/B,OAAOwP,EAAWzoD,EAAOi5C,EAAOsP,IA+BjC,IA1BiB,QAAb72B,GACHo2B,EAAcY,EAAiB5yC,EAAGjf,QAClCoxD,EAAMnyC,EAAGjf,OAASyxD,EAClBH,EAAML,EAAcU,EACpBt8B,EAAKw8B,EAAiB78B,EAAUj1B,KAAO4xD,EACvCv/C,EAAK4iB,EAAUh1B,QACQ,WAAb66B,GACVo2B,EAAcY,EAAiB5yC,EAAGlf,KAClCs1B,EAAKL,EAAUj1B,IACfqS,EAAKy/C,EAAiB78B,EAAUh1B,QAAU2xD,EAC1CP,EAAMH,EAAcU,EACpBL,EAAMryC,EAAGlf,IAAM0xD,GACQ,SAAb52B,GACVo2B,EAAcY,EAAiB5yC,EAAGnf,OAClCqxD,EAAMlyC,EAAGnf,MAAQ2xD,EACjBJ,EAAMJ,EAAcU,EACpBv8B,EAAKy8B,EAAiB78B,EAAUn1B,MAAQ8xD,EACxCt/C,EAAK2iB,EAAUl1B,QAEfmxD,EAAcY,EAAiB5yC,EAAGpf,MAClCu1B,EAAKJ,EAAUn1B,KACfwS,EAAKw/C,EAAiB78B,EAAUl1B,OAAS6xD,EACzCR,EAAMF,EAAcU,EACpBN,EAAMpyC,EAAGpf,KAAO4xD,GAGZnvD,EAAI,EAAGA,EAAIkvD,IAAelvD,EAC9B0oD,EAAO5qB,EAAM99B,IAAM,GAGfua,GAAcmuC,EAAKvhD,QAAUnH,EAAI89B,EAAMr2B,SAIvCzH,IAAM2c,EAAGitC,eAAiBlnD,EAAQgzB,SAAWE,GAEhDr2B,EAAYo2B,EAAUozB,cACtBkG,EAAYt5B,EAAUqzB,cACtBj4B,EAAa4E,EAAUszB,oBAAsB,GAC7Cj4B,EAAmB2E,EAAUuzB,0BAA4B,IAEzD3pD,EAAYub,GAAsB6a,EAAUp2B,UAAWS,EAAG,GAC1DivD,EAAYn0C,GAAsB6a,EAAUhlB,MAAO3Q,EAAG,mBACtD+wB,EAAa4E,EAAU5E,YAAc,GACrCC,EAAmB2E,EAAU3E,kBAAoB,GAGlDo1B,EAAYF,GAAoBvpC,EAAI+rC,EAAK58B,QAAU9rB,EAAG41B,QAGpCtiB,IAAd8yC,IAIJwI,EAAmBU,EAAWzoD,EAAOu/C,EAAW7mD,GAE5Co3B,EACHk4B,EAAME,EAAMj8B,EAAK/iB,EAAK6+C,EAEtBE,EAAME,EAAMj8B,EAAKjjB,EAAK8+C,EAGvB3rB,EAAMr5B,KAAK,CACVilD,IAAKA,EACLC,IAAKA,EACLC,IAAKA,EACLC,IAAKA,EACLl8B,GAAIA,EACJC,GAAIA,EACJhjB,GAAIA,EACJD,GAAIA,EACJtR,MAAOe,EACPoR,MAAOs+C,EACPl+B,WAAYA,EACZC,iBAAkBA,MAOpB,OAHAiS,EAAMisB,YAAcA,EACpBjsB,EAAM0rB,YAAcA,EAEb1rB,GAMRusB,mBAAoB,WACnB,IAYIxvD,EAAGwb,EAAMktC,EAAMvhD,EAAO9I,EAAGC,EAAG0mB,EAAW86B,EAAO38B,EAAMU,EAAY4rC,EAAWC,EAZ3E/yC,EAAKhgB,KACL+F,EAAUia,EAAGja,QACb8rD,EAAc9rD,EAAQo7B,MACtBvF,EAAW71B,EAAQ61B,SACnBo3B,EAAanB,EAAYjF,OACzB5yB,EAAeha,EAAGga,eAClBmH,EAAQnhB,EAAG8uC,aACXmE,EAAQhI,GAAqB4G,GAC7BrB,EAAcqB,EAAY/7B,QAC1B08B,EAAK9H,GAAkB3kD,EAAQizB,WAC/BhV,GAAYuF,GAAUg5B,UAAUviC,EAAG+vC,eACnCzpB,EAAQ,GAiBZ,IAdiB,QAAb1K,GACHj6B,EAAIqe,EAAGjf,OAASyxD,EAAKhC,EACrBnoC,EAAarE,EAAsB,OAAX,UACD,WAAb4X,GACVj6B,EAAIqe,EAAGlf,IAAM0xD,EAAKhC,EAClBnoC,EAAarE,EAAsB,QAAX,UACD,SAAb4X,GACVl6B,EAAIse,EAAGnf,OAASmyD,EAAa,EAAIR,GAAMhC,EACvCnoC,EAAY2qC,EAAa,OAAS,UAElCtxD,EAAIse,EAAGpf,MAAQoyD,EAAa,EAAIR,GAAMhC,EACtCnoC,EAAY2qC,EAAa,QAAU,QAG/B3vD,EAAI,EAAGwb,EAAOsiB,EAAMr2B,OAAQzH,EAAIwb,IAAQxb,EAC5C0oD,EAAO5qB,EAAM99B,GACbmH,EAAQuhD,EAAKvhD,MAGToT,GAAcpT,KAIlB24C,EAAQnjC,EAAGiY,gBAAgB8zB,EAAK58B,QAAU9rB,GAAKwuD,EAAY9E,YAC3DvmC,EAAOulC,EAAKzB,MAAQ2I,EAAM3I,MAAQ2I,EAAM1I,MACxCrjC,EAAaV,EAAKU,WAClB4rC,EAAYj1C,GAAQrT,GAASA,EAAMM,OAAS,EAExCkvB,GACHt4B,EAAIyhD,EACJ4P,EAA0B,QAAbn3B,IACP5X,EAAiB,EAAN,IAAW8uC,GAAa5rC,GACpClD,EAAiB,EAAN,IAAWkD,IAE3BvlB,EAAIwhD,EACJ4P,GAAc,EAAID,GAAa5rC,EAAa,GAG7Cof,EAAMr5B,KAAK,CACVvL,EAAGA,EACHC,EAAGA,EACHqiB,SAAUA,EACVxZ,MAAOA,EACPgc,KAAMA,EACNusC,WAAYA,EACZ1qC,UAAWA,KAIb,OAAOie,GAMR4sB,UAAW,SAASn9B,GACnB,IAAI/V,EAAKhgB,KACLg5B,EAAYhZ,EAAGja,QAAQizB,UAE3B,GAAKA,EAAUiK,QAAf,CAIA,IAKIphC,EAAOmS,EAAO3Q,EAAGwb,EAAM+B,EALvB9gB,EAAMkgB,EAAGlgB,IACToK,EAAQ8V,EAAG9V,MACXyoD,EAAappC,GAAU25B,YACvBuP,EAAYz5B,EAAUrG,WAAaxU,GAAsB6a,EAAUp2B,UAAW,EAAG,GAAK,EACtF0jC,EAAQtmB,EAAG4tC,iBAAmB5tC,EAAG4tC,eAAiB5tC,EAAG+xC,sBAAsBh8B,IAG/E,IAAK1yB,EAAI,EAAGwb,EAAOynB,EAAMx7B,OAAQzH,EAAIwb,IAAQxb,EAC5Cud,EAAO0lB,EAAMjjC,GACbxB,EAAQ+e,EAAK/e,MACbmS,EAAQ4M,EAAK5M,MAETnS,GAASmS,IACZlU,EAAIukB,OACJvkB,EAAI8C,UAAYf,EAChB/B,EAAI4C,YAAcsR,EACdlU,EAAIo1B,cACPp1B,EAAIo1B,YAAYtU,EAAKwT,YACrBt0B,EAAIq1B,eAAiBvU,EAAKyT,kBAG3Bv0B,EAAIyC,YAEAy2B,EAAU2xB,YACb7qD,EAAIsD,OAAOwd,EAAKsxC,IAAKtxC,EAAKuxC,KAC1BryD,EAAI0D,OAAOod,EAAKwxC,IAAKxxC,EAAKyxC,MAGvBr5B,EAAUmzB,kBACbrsD,EAAIsD,OAAOwd,EAAKuV,GAAIvV,EAAKwV,IACzBt2B,EAAI0D,OAAOod,EAAKxN,GAAIwN,EAAKzN,KAG1BrT,EAAI6D,SACJ7D,EAAI0kB,WAIN,GAAIiuC,EAAW,CAEd,IAGIt8B,EAAI/iB,EAAIgjB,EAAIjjB,EAHZggD,EAAiBV,EACjBW,EAAgBj1C,GAAsB6a,EAAUp2B,UAAW0jC,EAAMisB,YAAc,EAAG,GAClFP,EAAc1rB,EAAM0rB,YAGpBhyC,EAAGga,gBACN7D,EAAKw8B,EAAWzoD,EAAO8V,EAAGpf,KAAMuyD,GAAkBA,EAAiB,EACnE//C,EAAKu/C,EAAWzoD,EAAO8V,EAAGnf,MAAOuyD,GAAiBA,EAAgB,EAClEh9B,EAAKjjB,EAAK6+C,IAEV57B,EAAKu8B,EAAWzoD,EAAO8V,EAAGlf,IAAKqyD,GAAkBA,EAAiB,EAClEhgD,EAAKw/C,EAAWzoD,EAAO8V,EAAGjf,OAAQqyD,GAAiBA,EAAgB,EACnEj9B,EAAK/iB,EAAK4+C,GAGXlyD,EAAI8C,UAAY6vD,EAChB3yD,EAAI4C,YAAcyb,GAAsB6a,EAAUhlB,MAAO,GACzDlU,EAAIyC,YACJzC,EAAIsD,OAAO+yB,EAAIC,GACft2B,EAAI0D,OAAO4P,EAAID,GACfrT,EAAI6D,YAON0vD,YAAa,WACZ,IAAIrzC,EAAKhgB,KACL6xD,EAAc7xC,EAAGja,QAAQo7B,MAE7B,GAAK0wB,EAAY5uB,QAAjB,CAIA,IAEI5/B,EAAG+6B,EAAGvf,EAAMymB,EAAM1kB,EAAMipC,EAAUr/C,EAAO7I,EAFzC7B,EAAMkgB,EAAGlgB,IACTwmC,EAAQtmB,EAAG6tC,cAAgB7tC,EAAG6tC,YAAc7tC,EAAG6yC,sBAGnD,IAAKxvD,EAAI,EAAGwb,EAAOynB,EAAMx7B,OAAQzH,EAAIwb,IAAQxb,EAAG,CAe/C,GAdAud,EAAO0lB,EAAMjjC,GACbwmD,EAAWjpC,EAAK4F,KAGhB1mB,EAAIukB,OACJvkB,EAAIwkB,UAAU1D,EAAKlf,EAAGkf,EAAKjf,GAC3B7B,EAAIkc,OAAO4E,EAAKoD,UAChBlkB,EAAI0mB,KAAOqjC,EAASz1C,OACpBtU,EAAI0C,UAAYqnD,EAAS71C,MACzBlU,EAAI+5C,aAAe,SACnB/5C,EAAIuoB,UAAYzH,EAAKyH,UAErB7d,EAAQoW,EAAKpW,MACb7I,EAAIif,EAAKmyC,WACLl1C,GAAQrT,GACX,IAAK4zB,EAAI,EAAGkH,EAAO96B,EAAMM,OAAQszB,EAAIkH,IAAQlH,EAE5Ct+B,EAAIg6C,SAAS,GAAKtvC,EAAM4zB,GAAI,EAAGz8B,GAC/BA,GAAKkoD,EAAS3iC,gBAGfpnB,EAAIg6C,SAAStvC,EAAO,EAAG7I,GAExB7B,EAAI0kB,aAON8uC,WAAY,WACX,IAAItzC,EAAKhgB,KACLF,EAAMkgB,EAAGlgB,IACTiG,EAAUia,EAAGja,QACbymD,EAAazmD,EAAQymD,WAEzB,GAAKA,EAAWvpB,QAAhB,CAIA,IAMIswB,EAAaC,EANbC,EAAsBvK,GAAiBsD,EAAWxB,UAAW1kC,EAAclX,OAAO4W,kBAClF0tC,EAAiBnqC,GAAUxjB,QAAQ+gB,WAAW0lC,GAC9CmH,EAAoBpqC,GAAUxjB,QAAQ8gB,UAAU2lC,EAAW12B,SAC3D89B,EAAiBF,EAAexsC,WAAa,EAC7C0U,EAAW71B,EAAQ61B,SACnB5X,EAAW,EAGf,GAAIhE,EAAGga,eACNu5B,EAAcvzC,EAAGpf,KAAOof,EAAGne,MAAQ,EACnC2xD,EAA2B,WAAb53B,EACX5b,EAAGjf,OAAS6yD,EAAiBD,EAAkB5yD,OAC/Cif,EAAGlf,IAAM8yD,EAAiBD,EAAkB7yD,QACzC,CACN,IAAI+yD,EAAsB,SAAbj4B,EACb23B,EAAcM,EACX7zC,EAAGpf,KAAOgzD,EAAiBD,EAAkB7yD,IAC7Ckf,EAAGnf,MAAQ+yD,EAAiBD,EAAkB7yD,IACjD0yD,EAAcxzC,EAAGlf,IAAMkf,EAAGpe,OAAS,EACnCoiB,EAAW6vC,GAAU,GAAM9xD,KAAKyR,GAAK,GAAMzR,KAAKyR,GAGjD1T,EAAIukB,OACJvkB,EAAIwkB,UAAUivC,EAAaC,GAC3B1zD,EAAIkc,OAAOgI,GACXlkB,EAAIuoB,UAAY,SAChBvoB,EAAI+5C,aAAe,SACnB/5C,EAAI0C,UAAYixD,EAChB3zD,EAAI0mB,KAAOktC,EAAet/C,OAC1BtU,EAAIg6C,SAAS0S,EAAWC,YAAa,EAAG,GACxC3sD,EAAI0kB,YAGL7jB,KAAM,SAASo1B,GACd,IAAI/V,EAAKhgB,KAEJggB,EAAGgwC,eAIRhwC,EAAGkzC,UAAUn9B,GACb/V,EAAGszC,aACHtzC,EAAGqzC,gBAMJ5pB,QAAS,WACR,IAAIzpB,EAAKhgB,KACLw+B,EAAOxe,EAAGja,QACV+tD,EAAKt1B,EAAK2C,OAAS3C,EAAK2C,MAAMhvB,GAAK,EACnC4hD,EAAKv1B,EAAKxF,WAAawF,EAAKxF,UAAU7mB,GAAK,EAE/C,OAAK6N,EAAGgwC,cAAgB8D,IAAOC,GAAM/zC,EAAGrf,OAASqf,EAAGg0C,MAU7C,CAAC,CACP7hD,EAAG4hD,EACHpzD,KAAM,WACLqf,EAAGkzC,UAAU50C,MAAM0B,EAAInM,WACvBmM,EAAGszC,WAAWh1C,MAAM0B,EAAInM,aAEvB,CACF1B,EAAG2hD,EACHnzD,KAAM,WACLqf,EAAGqzC,YAAY/0C,MAAM0B,EAAInM,cAjBnB,CAAC,CACP1B,EAAG2hD,EACHnzD,KAAM,WACLqf,EAAGrf,KAAK2d,MAAM0B,EAAInM,eAsBtB6mB,yBAA0B,SAASh7B,GAClC,IAAIsgB,EAAKhgB,KACLg6B,EAAeha,EAAGga,eACtB,OAAOha,EAAG9V,MAAMq4B,gCACdn3B,QAAO,SAAS0iB,GAChB,QAASpuB,GAAQouB,EAAKpuB,OAASA,KAC1Bs6B,EAAelM,EAAKI,UAAYlO,EAAGxT,GAAKshB,EAAKM,UAAYpO,EAAGxT,UAKrEwgD,GAAMtsD,UAAUszD,MAAQhH,GAAMtsD,UAAUC,KAExC,IAAIszD,GAAajH,GAEbkH,GAAkB3qC,GAAU3L,cAE5Bu2C,GAAgB,CACnBv4B,SAAU,UAGPw4B,GAAiBH,GAAWv0C,OAAO,CACtCwuC,oBAAqB,WACpB,IAOI7hC,EAPArM,EAAKhgB,KACLwL,EAASwU,EAAGmtC,aACZkH,EAAYr0C,EAAGja,QAAQo7B,MACvBn/B,EAAMqyD,EAAUryD,IAChBoP,EAAMijD,EAAUjjD,IAChBkjD,EAAW,EACXC,EAAW/oD,EAAOV,OAAS,OAGnB6L,IAAR3U,IAEHqqB,EAAY7gB,EAAOxI,QAAQhB,GACvBqqB,GAAa,IAChBioC,EAAWjoC,SAID1V,IAARvF,IAEHib,EAAY7gB,EAAOxI,QAAQoO,GACvBib,GAAa,IAChBkoC,EAAWloC,IAIbrM,EAAGs0C,SAAWA,EACdt0C,EAAGu0C,SAAWA,EACdv0C,EAAGhe,IAAMwJ,EAAO8oD,GAChBt0C,EAAG5O,IAAM5F,EAAO+oD,IAGjBlG,WAAY,WACX,IAAIruC,EAAKhgB,KACLwL,EAASwU,EAAGmtC,aACZmH,EAAWt0C,EAAGs0C,SACdC,EAAWv0C,EAAGu0C,SAGlBv0C,EAAGmhB,MAAsB,IAAbmzB,GAAkBC,IAAa/oD,EAAOV,OAAS,EAAKU,EAASA,EAAOoL,MAAM09C,EAAUC,EAAW,IAG5G9f,iBAAkB,SAASvxC,EAAOmqB,GACjC,IAAIrN,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MAEf,OAAIA,EAAMokB,eAAejB,GAAcsQ,WAAWlP,qBAAuBzO,EAAGxT,GACpEwT,EAAGsiB,cAAcp4B,EAAMrK,KAAKwK,SAASgjB,GAAcxtB,KAAKqD,IAGzD8c,EAAGmtC,aAAajqD,IAGxBysB,WAAY,WACX,IAAI3P,EAAKhgB,KACL+4B,EAAS/Y,EAAGja,QAAQgzB,OACpBoI,EAAQnhB,EAAGmhB,MAEf8yB,GAAWvzD,UAAUivB,WAAWvrB,KAAK4b,GAEhCA,EAAGga,iBAEPha,EAAGovC,gBAAkBpvC,EAAGovC,gBAGpBjuB,IAILnhB,EAAGw0C,YAAcx0C,EAAGs0C,UAAYv7B,EAAS,GAAM,GAC/C/Y,EAAGy0C,YAAc1yD,KAAKqP,IAAI+vB,EAAMr2B,QAAUiuB,EAAS,EAAI,GAAI,KAI5DgC,iBAAkB,SAASlzB,EAAO3E,EAAOmqB,GACxC,IACIqnC,EAAelpD,EAAQ+kC,EADvBvwB,EAAKhgB,KAqBT,OAlBKk0D,GAAgBhxD,IAAWgxD,GAAgB7mC,KAC/CxlB,EAAQmY,EAAG9V,MAAMrK,KAAKwK,SAASgjB,GAAcxtB,KAAKqD,IAK9CgxD,GAAgBrsD,KACpB6sD,EAAgB10C,EAAGga,eAAiBnyB,EAAMnG,EAAImG,EAAMlG,SAE/BgV,IAAlB+9C,QAA0C/9C,IAAV9O,GAAuB4Q,MAAMvV,MAChEsI,EAASwU,EAAGmtC,aACZtlD,EAAQ0hB,GAAUtL,eAAey2C,EAAe7sD,GAChD0oC,EAAM/kC,EAAOxI,QAAQ6E,GACrB3E,GAAiB,IAATqtC,EAAaA,EAAMrtC,EACvBuV,MAAMvV,KACTA,EAAQ2E,IAGHmY,EAAGuc,oBAAoBr5B,EAAQ8c,EAAGw0C,aAAex0C,EAAGy0C,cAG5Dx8B,gBAAiB,SAAS/0B,GACzB,IAAIi+B,EAAQnhC,KAAKmhC,MACjB,OAAOj+B,EAAQ,GAAKA,EAAQi+B,EAAMr2B,OAAS,EACxC,KACA9K,KAAK+6B,iBAAiBoG,EAAMj+B,GAAQA,EAAQlD,KAAKs0D,WAGrDjD,iBAAkB,SAASlO,GAC1B,IAAInjC,EAAKhgB,KACL6H,EAAQ9F,KAAK+R,MAAMkM,EAAGw0C,YAAcx0C,EAAGuxC,mBAAmBpO,GAASnjC,EAAGy0C,aAC1E,OAAO1yD,KAAKC,IAAID,KAAKqP,IAAIvJ,EAAO,GAAImY,EAAGmhB,MAAMr2B,OAAS,IAGvDivB,aAAc,WACb,OAAO/5B,KAAKe,UAKV4zD,GAAYR,GAChBC,GAAeO,UAAYA,GAE3B,IAAIj3C,GAAO6L,GAAU7L,KACjBk3C,GAAkBrrC,GAAU3L,cAQhC,SAASi3C,GAAcC,EAAmBC,GACzC,IAeIrJ,EAAQsJ,EAASC,EAASC,EAf1B/zB,EAAQ,GAKRg0B,EAAc,MACdC,EAAWN,EAAkBM,SAC7BC,EAAOD,GAAY,EACnBE,EAAeR,EAAkBS,SAAW,EAC5CvzD,EAAM8yD,EAAkB9yD,IACxBoP,EAAM0jD,EAAkB1jD,IACxBokD,EAAYV,EAAkBU,UAC9BC,EAAOV,EAAU/yD,IACjB0zD,EAAOX,EAAU3jD,IACjBw6C,EAAUriC,GAAUs7B,SAAS6Q,EAAOD,GAAQH,EAAeD,GAAQA,EAKvE,GAAIzJ,EAAUuJ,GAAeP,GAAgB5yD,IAAQ4yD,GAAgBxjD,GACpE,MAAO,CAACqkD,EAAMC,GAGfR,EAAYnzD,KAAKiqD,KAAK0J,EAAO9J,GAAW7pD,KAAKmN,MAAMumD,EAAO7J,GACtDsJ,EAAYI,IAEf1J,EAAUriC,GAAUs7B,QAAQqQ,EAAYtJ,EAAU0J,EAAeD,GAAQA,GAGtED,GAAYR,GAAgBY,GAE/B9J,EAAS3pD,KAAKiP,IAAI,GAAIuY,GAAUm5B,eAAekJ,KAG/CF,EAAS3pD,KAAKiP,IAAI,GAAIwkD,GACtB5J,EAAU7pD,KAAKiqD,KAAKJ,EAAUF,GAAUA,GAGzCsJ,EAAUjzD,KAAKmN,MAAMumD,EAAO7J,GAAWA,EACvCqJ,EAAUlzD,KAAKiqD,KAAK0J,EAAO9J,GAAWA,EAGlCwJ,KAEER,GAAgB5yD,IAAQunB,GAAU44B,YAAYngD,EAAM4pD,EAASA,EAAU,OAC3EoJ,EAAUhzD,IAEN4yD,GAAgBxjD,IAAQmY,GAAU44B,YAAY/wC,EAAMw6C,EAASA,EAAU,OAC3EqJ,EAAU7jD,IAIZ8jD,GAAaD,EAAUD,GAAWpJ,EAGjCsJ,EADG3rC,GAAU24B,aAAagT,EAAWnzD,KAAK+R,MAAMohD,GAAYtJ,EAAU,KAC1D7pD,KAAK+R,MAAMohD,GAEXnzD,KAAKiqD,KAAKkJ,GAGvBF,EAAUjzD,KAAK+R,MAAMkhD,EAAUtJ,GAAUA,EACzCuJ,EAAUlzD,KAAK+R,MAAMmhD,EAAUvJ,GAAUA,EACzCvqB,EAAMl0B,KAAK2nD,GAAgB5yD,GAAOgzD,EAAUhzD,GAC5C,IAAK,IAAIo8B,EAAI,EAAGA,EAAI82B,IAAa92B,EAChC+C,EAAMl0B,KAAKlL,KAAK+R,OAAOkhD,EAAU52B,EAAIwtB,GAAWF,GAAUA,GAI3D,OAFAvqB,EAAMl0B,KAAK2nD,GAAgBxjD,GAAO6jD,EAAU7jD,GAErC+vB,EAGR,IAAIw0B,GAAmB1B,GAAWv0C,OAAO,CACxC4iB,cAAe,SAASz6B,GACvB,MAAqB,kBAAVA,GACFA,EAEFosD,GAAWvzD,UAAU4hC,cAAcl+B,KAAKpE,KAAM6H,IAGtD+tD,uBAAwB,WACvB,IAAI51C,EAAKhgB,KACLw+B,EAAOxe,EAAGja,QACVm7B,EAAW1C,EAAK2C,MAKpB,GAAID,EAASkC,YAAa,CACzB,IAAIyyB,EAAUtsC,GAAU+4B,KAAKtiC,EAAGhe,KAC5B8zD,EAAUvsC,GAAU+4B,KAAKtiC,EAAG5O,KAE5BykD,EAAU,GAAKC,EAAU,EAE5B91C,EAAG5O,IAAM,EACCykD,EAAU,GAAKC,EAAU,IAEnC91C,EAAGhe,IAAM,GAIX,IAAI+zD,OAA0Bp/C,IAAjBuqB,EAASl/B,UAA+C2U,IAA1BuqB,EAAS80B,aAChDC,OAA0Bt/C,IAAjBuqB,EAAS9vB,UAA+CuF,IAA1BuqB,EAASg1B,kBAE/Bv/C,IAAjBuqB,EAASl/B,IACZge,EAAGhe,IAAMk/B,EAASl/B,SACkB2U,IAA1BuqB,EAAS80B,eACJ,OAAXh2C,EAAGhe,IACNge,EAAGhe,IAAMk/B,EAAS80B,aAElBh2C,EAAGhe,IAAMD,KAAKC,IAAIge,EAAGhe,IAAKk/B,EAAS80B,oBAIhBr/C,IAAjBuqB,EAAS9vB,IACZ4O,EAAG5O,IAAM8vB,EAAS9vB,SACkBuF,IAA1BuqB,EAASg1B,eACJ,OAAXl2C,EAAG5O,IACN4O,EAAG5O,IAAM8vB,EAASg1B,aAElBl2C,EAAG5O,IAAMrP,KAAKqP,IAAI4O,EAAG5O,IAAK8vB,EAASg1B,eAIjCH,IAAWE,GAKVj2C,EAAGhe,KAAOge,EAAG5O,MACZ2kD,EACH/1C,EAAG5O,IAAM4O,EAAGhe,IAAM,EAElBge,EAAGhe,IAAMge,EAAG5O,IAAM,GAKjB4O,EAAGhe,MAAQge,EAAG5O,MACjB4O,EAAG5O,MAEE8vB,EAASkC,aACbpjB,EAAGhe,QAKNm0D,aAAc,WACb,IAIIZ,EAJAv1C,EAAKhgB,KACLkhC,EAAWlhB,EAAGja,QAAQo7B,MACtBi0B,EAAWl0B,EAASk0B,SACpB1D,EAAgBxwB,EAASwwB,cAc7B,OAXI0D,EACHG,EAAWxzD,KAAKiqD,KAAKhsC,EAAG5O,IAAMgkD,GAAYrzD,KAAKmN,MAAM8Q,EAAGhe,IAAMozD,GAAY,GAE1EG,EAAWv1C,EAAGo2C,oBACd1E,EAAgBA,GAAiB,IAG9BA,IACH6D,EAAWxzD,KAAKC,IAAI0vD,EAAe6D,IAG7BA,GAGRa,kBAAmB,WAClB,OAAOzpD,OAAOi5B,mBAGfywB,yBAA0B34C,GAE1B2wC,WAAY,WACX,IAAIruC,EAAKhgB,KACLw+B,EAAOxe,EAAGja,QACVm7B,EAAW1C,EAAK2C,MAMhBo0B,EAAWv1C,EAAGm2C,eAClBZ,EAAWxzD,KAAKqP,IAAI,EAAGmkD,GAEvB,IAAIe,EAA0B,CAC7Bf,SAAUA,EACVvzD,IAAKk/B,EAASl/B,IACdoP,IAAK8vB,EAAS9vB,IACdokD,UAAWt0B,EAASs0B,UACpBJ,SAAU7rC,GAAUtL,eAAeijB,EAASq1B,cAAer1B,EAASk0B,WAEjEj0B,EAAQnhB,EAAGmhB,MAAQ0zB,GAAcyB,EAAyBt2C,GAE9DA,EAAGq2C,2BAIHr2C,EAAG5O,IAAMmY,GAAUnY,IAAI+vB,GACvBnhB,EAAGhe,IAAMunB,GAAUvnB,IAAIm/B,GAEnBD,EAASziB,SACZ0iB,EAAM1iB,UAENuB,EAAG2J,MAAQ3J,EAAG5O,IACd4O,EAAG6Y,IAAM7Y,EAAGhe,MAEZge,EAAG2J,MAAQ3J,EAAGhe,IACdge,EAAG6Y,IAAM7Y,EAAG5O,MAIdk+C,qBAAsB,WACrB,IAAItvC,EAAKhgB,KACTggB,EAAGw2C,eAAiBx2C,EAAGmhB,MAAMvqB,QAC7BoJ,EAAGitC,cAAgBjtC,EAAGmhB,MAAMn+B,QAAQ,GAEpCixD,GAAWvzD,UAAU4uD,qBAAqBlrD,KAAK4b,IAGhD2P,WAAY,WACX,IAIIoJ,EAJA/Y,EAAKhgB,KACLmhC,EAAQnhB,EAAGgY,WACXrO,EAAQ3J,EAAGhe,IACX62B,EAAM7Y,EAAG5O,IAGb6iD,GAAWvzD,UAAUivB,WAAWvrB,KAAK4b,GAEjCA,EAAGja,QAAQgzB,QAAUoI,EAAMr2B,SAC9BiuB,GAAUF,EAAMlP,GAAS5nB,KAAKqP,IAAI+vB,EAAMr2B,OAAS,EAAG,GAAK,EACzD6e,GAASoP,EACTF,GAAOE,GAER/Y,EAAGw0C,YAAc7qC,EACjB3J,EAAGy2C,UAAY59B,EACf7Y,EAAGy0C,YAAc57B,EAAMlP,KAIrB+sC,GAAkB,CACrB96B,SAAU,OACVuF,MAAO,CACN/iB,SAAUiqC,GAAWC,WAAWrnC,SAI9B01C,GAAc,EACdC,GAAc,EAElB,SAASC,GAAiBj8B,EAAQD,EAAS7M,GAC1C,IAAIziB,EAAM,CACTyiB,EAAKpuB,UAEOiX,IAAZgkB,QAAwChkB,IAAfmX,EAAKuL,MAAsBvL,EAAK5qB,MAAQ,GACjE4qB,EAAKuL,OACJzkB,KAAK,KASP,YAPoB+B,IAAhBikB,EAAOvvB,KACVuvB,EAAOvvB,GAAO,CACby7B,IAAK,GACLgwB,IAAK,KAIAl8B,EAAOvvB,GAGf,SAAS0rD,GAAUx+C,EAAOqiB,EAAQ9M,EAAMjuB,GACvC,IAMIwD,EAAGwE,EANH22B,EAAOjmB,EAAMxS,QACb40B,EAAU6D,EAAK7D,QACftB,EAAQw9B,GAAiBj8B,EAAQD,EAAS7M,GAC1CgZ,EAAMzN,EAAMyN,IACZgwB,EAAMz9B,EAAMy9B,IACZj4C,EAAOhf,EAAKiL,OAGhB,IAAKzH,EAAI,EAAGA,EAAIwb,IAAQxb,EACvBwE,EAAQ0Q,EAAM8iB,YAAYx7B,EAAKwD,IAC3BoV,MAAM5Q,EAAM7F,MAAQyW,MAAM5Q,EAAMuJ,MAAQ0c,EAAKjuB,KAAKwD,GAAGinB,SAIzDwc,EAAIzjC,GAAKyjC,EAAIzjC,IAAM,EACnByzD,EAAIzzD,GAAKyzD,EAAIzzD,IAAM,EAEfm7B,EAAKw4B,eACRlwB,EAAIzjC,GAAK,IACCwE,EAAM7F,IAAM,GAAK6F,EAAMuJ,IAAM,EACvC0lD,EAAIzzD,IAAMwE,EAAM7F,IAEhB8kC,EAAIzjC,IAAMwE,EAAMuJ,KAKnB,SAAS6lD,GAAa1+C,EAAOuV,EAAMjuB,GAClC,IACIwD,EAAGwE,EADHgX,EAAOhf,EAAKiL,OAGhB,IAAKzH,EAAI,EAAGA,EAAIwb,IAAQxb,EACvBwE,EAAQ0Q,EAAM8iB,YAAYx7B,EAAKwD,IAC3BoV,MAAM5Q,EAAM7F,MAAQyW,MAAM5Q,EAAMuJ,MAAQ0c,EAAKjuB,KAAKwD,GAAGinB,SAIzD/R,EAAMvW,IAAMD,KAAKC,IAAIuW,EAAMvW,IAAK6F,EAAM7F,KACtCuW,EAAMnH,IAAMrP,KAAKqP,IAAImH,EAAMnH,IAAKvJ,EAAMuJ,MAIxC,IAAI8lD,GAAevB,GAAiBj2C,OAAO,CAC1CwuC,oBAAqB,WACpB,IAQI7qD,EAAGyqB,EAAMjuB,EAAMqZ,EARf8G,EAAKhgB,KACLw+B,EAAOxe,EAAGja,QACVmE,EAAQ8V,EAAG9V,MACXG,EAAWH,EAAMrK,KAAKwK,SACtBowB,EAAWza,EAAG0a,2BACdy8B,EAAY34B,EAAK7D,QACjBC,EAAS,GACT/b,EAAO4b,EAAS3vB,OAMpB,GAHAkV,EAAGhe,IAAM2K,OAAOi5B,kBAChB5lB,EAAG5O,IAAMzE,OAAO01C,uBAEE1rC,IAAdwgD,EACH,IAAK9zD,EAAI,GAAI8zD,GAAa9zD,EAAIwb,IAAQxb,EACrCyqB,EAAO2M,EAASp3B,GAChB8zD,OAA2BxgD,IAAfmX,EAAKuL,MAInB,IAAKh2B,EAAI,EAAGA,EAAIwb,IAAQxb,EACvByqB,EAAO2M,EAASp3B,GAChBxD,EAAOwK,EAASyjB,EAAK5qB,OAAOrD,KACxBs3D,EACHJ,GAAU/2C,EAAI4a,EAAQ9M,EAAMjuB,GAE5Bo3D,GAAaj3C,EAAI8N,EAAMjuB,GAIzB0pB,GAAUhL,KAAKqc,GAAQ,SAASw8B,GAC/Bl+C,EAASk+C,EAAYtwB,IAAI7/B,OAAOmwD,EAAYN,KAC5C92C,EAAGhe,IAAMD,KAAKC,IAAIge,EAAGhe,IAAKunB,GAAUvnB,IAAIkX,IACxC8G,EAAG5O,IAAMrP,KAAKqP,IAAI4O,EAAG5O,IAAKmY,GAAUnY,IAAI8H,OAGzC8G,EAAGhe,IAAMunB,GAAUvL,SAASgC,EAAGhe,OAASyW,MAAMuH,EAAGhe,KAAOge,EAAGhe,IAAM20D,GACjE32C,EAAG5O,IAAMmY,GAAUvL,SAASgC,EAAG5O,OAASqH,MAAMuH,EAAG5O,KAAO4O,EAAG5O,IAAMwlD,GAGjE52C,EAAG41C,0BAIJQ,kBAAmB,WAClB,IACIvM,EADA7pC,EAAKhgB,KAGT,OAAIggB,EAAGga,eACCj4B,KAAKiqD,KAAKhsC,EAAGne,MAAQ,KAE7BgoD,EAAWtgC,GAAUxjB,QAAQ+gB,WAAW9G,EAAGja,QAAQo7B,OAC5Cp/B,KAAKiqD,KAAKhsC,EAAGpe,OAASioD,EAAS3iC,cAIvCmvC,yBAA0B,WACpBr2D,KAAKg6B,gBAETh6B,KAAKmhC,MAAM1iB,WAIbg2B,iBAAkB,SAASvxC,EAAOmqB,GACjC,OAAOrtB,KAAKoxD,eAAepxD,KAAKkK,MAAMrK,KAAKwK,SAASgjB,GAAcxtB,KAAKqD,KAIxE63B,iBAAkB,SAASlzB,GAC1B,IAAImY,EAAKhgB,KACT,OAAOggB,EAAGuc,qBAAqBvc,EAAGsiB,cAAcz6B,GAASmY,EAAGw0C,aAAex0C,EAAGy0C,cAG/EpD,iBAAkB,SAASlO,GAC1B,OAAOnjD,KAAKw0D,YAAcx0D,KAAKuxD,mBAAmBpO,GAASnjD,KAAKy0D,aAGjEx8B,gBAAiB,SAAS/0B,GACzB,IAAIi+B,EAAQnhC,KAAKw2D,eACjB,OAAItzD,EAAQ,GAAKA,EAAQi+B,EAAMr2B,OAAS,EAChC,KAED9K,KAAK+6B,iBAAiBoG,EAAMj+B,OAKjCm0D,GAAcX,GAClBQ,GAAavC,UAAY0C,GAEzB,IAAIC,GAAmB/tC,GAAUtL,eAC7B0J,GAAQ4B,GAAUE,KAAK9B,MAQ3B,SAAS4vC,GAAgBzC,EAAmBC,GAC3C,IAMIyC,EAAKC,EANLt2B,EAAQ,GAERu2B,EAAUJ,GAAiBxC,EAAkB9yD,IAAKD,KAAKiP,IAAI,GAAIjP,KAAKmN,MAAMyY,GAAMotC,EAAU/yD,QAE1F21D,EAAS51D,KAAKmN,MAAMyY,GAAMotC,EAAU3jD,MACpCwmD,EAAiB71D,KAAKiqD,KAAK+I,EAAU3jD,IAAMrP,KAAKiP,IAAI,GAAI2mD,IAG5C,IAAZD,GACHF,EAAMz1D,KAAKmN,MAAMyY,GAAMotC,EAAU8C,aACjCJ,EAAc11D,KAAKmN,MAAM6lD,EAAU8C,WAAa91D,KAAKiP,IAAI,GAAIwmD,IAE7Dr2B,EAAMl0B,KAAKyqD,GACXA,EAAUD,EAAc11D,KAAKiP,IAAI,GAAIwmD,KAErCA,EAAMz1D,KAAKmN,MAAMyY,GAAM+vC,IACvBD,EAAc11D,KAAKmN,MAAMwoD,EAAU31D,KAAKiP,IAAI,GAAIwmD,KAEjD,IAAIhC,EAAYgC,EAAM,EAAIz1D,KAAKiP,IAAI,GAAIjP,KAAKE,IAAIu1D,IAAQ,EAExD,GACCr2B,EAAMl0B,KAAKyqD,KAETD,EACkB,KAAhBA,IACHA,EAAc,IACZD,EACFhC,EAAYgC,GAAO,EAAI,EAAIhC,GAG5BkC,EAAU31D,KAAK+R,MAAM2jD,EAAc11D,KAAKiP,IAAI,GAAIwmD,GAAOhC,GAAaA,QAC5DgC,EAAMG,GAAWH,IAAQG,GAAUF,EAAcG,GAE1D,IAAIE,EAAWR,GAAiBxC,EAAkB1jD,IAAKsmD,GAGvD,OAFAv2B,EAAMl0B,KAAK6qD,GAEJ32B,EAGR,IAAI42B,GAAkB,CACrBn8B,SAAU,OAGVuF,MAAO,CACN/iB,SAAUiqC,GAAWC,WAAWU,cAKlC,SAASgP,GAAqBnwD,EAAOqW,GACpC,OAAOqL,GAAUvL,SAASnW,IAAUA,GAAS,EAAIA,EAAQqW,EAG1D,IAAI+5C,GAAoBhE,GAAWv0C,OAAO,CACzCwuC,oBAAqB,WACpB,IAQI7gC,EAAcS,EAAMjmB,EAAOhI,EAAMwD,EAAGwb,EARpCmB,EAAKhgB,KACLw+B,EAAOxe,EAAGja,QACVmE,EAAQ8V,EAAG9V,MACXG,EAAWH,EAAMrK,KAAKwK,SACtB2vB,EAAeha,EAAGga,eACtB,SAASk+B,EAAUpqC,GAClB,OAAOkM,EAAelM,EAAKI,UAAYlO,EAAGxT,GAAKshB,EAAKM,UAAYpO,EAAGxT,GAKpEwT,EAAGhe,IAAM2K,OAAOi5B,kBAChB5lB,EAAG5O,IAAMzE,OAAO01C,kBAChBriC,EAAG63C,WAAalrD,OAAOi5B,kBAEvB,IAAIuxB,EAAY34B,EAAK7D,QACrB,QAAkBhkB,IAAdwgD,EACH,IAAK9pC,EAAe,EAAGA,EAAehjB,EAASS,OAAQuiB,IAEtD,GADAS,EAAO5jB,EAAMokB,eAAejB,GACxBnjB,EAAMm0B,iBAAiBhR,IAAiB6qC,EAAUpqC,SACtCnX,IAAfmX,EAAKuL,MAAqB,CAC1B89B,GAAY,EACZ,MAKH,GAAI34B,EAAK7D,SAAWw8B,EAAW,CAC9B,IAAIgB,EAAiB,GAErB,IAAK9qC,EAAe,EAAGA,EAAehjB,EAASS,OAAQuiB,IAAgB,CACtES,EAAO5jB,EAAMokB,eAAejB,GAC5B,IAAIhiB,EAAM,CACTyiB,EAAKpuB,UAEciX,IAAjB6nB,EAAK7D,cAAwChkB,IAAfmX,EAAKuL,MAAuBhM,EAAe,GAC3ES,EAAKuL,OACJzkB,KAAK,KAEP,GAAI1K,EAAMm0B,iBAAiBhR,IAAiB6qC,EAAUpqC,GAMrD,SAL4BnX,IAAxBwhD,EAAe9sD,KAClB8sD,EAAe9sD,GAAO,IAGvBxL,EAAOwK,EAASgjB,GAAcxtB,KACzBwD,EAAI,EAAGwb,EAAOhf,EAAKiL,OAAQzH,EAAIwb,EAAMxb,IAAK,CAC9C,IAAI6V,EAASi/C,EAAe9sD,GAC5BxD,EAAQmY,EAAGqb,YAAYx7B,EAAKwD,IAExBoV,MAAM5Q,EAAM7F,MAAQyW,MAAM5Q,EAAMuJ,MAAQ0c,EAAKjuB,KAAKwD,GAAGinB,QAAUziB,EAAM7F,IAAM,GAAK6F,EAAMuJ,IAAM,IAGhG8H,EAAO7V,GAAK6V,EAAO7V,IAAM,EACzB6V,EAAO7V,IAAMwE,EAAMuJ,MAKtBmY,GAAUhL,KAAK45C,GAAgB,SAASC,GACvC,GAAIA,EAActtD,OAAS,EAAG,CAC7B,IAAIutD,EAAS9uC,GAAUvnB,IAAIo2D,GACvBE,EAAS/uC,GAAUnY,IAAIgnD,GAC3Bp4C,EAAGhe,IAAMD,KAAKC,IAAIge,EAAGhe,IAAKq2D,GAC1Br4C,EAAG5O,IAAMrP,KAAKqP,IAAI4O,EAAG5O,IAAKknD,YAK5B,IAAKjrC,EAAe,EAAGA,EAAehjB,EAASS,OAAQuiB,IAEtD,GADAS,EAAO5jB,EAAMokB,eAAejB,GACxBnjB,EAAMm0B,iBAAiBhR,IAAiB6qC,EAAUpqC,GAErD,IADAjuB,EAAOwK,EAASgjB,GAAcxtB,KACzBwD,EAAI,EAAGwb,EAAOhf,EAAKiL,OAAQzH,EAAIwb,EAAMxb,IACzCwE,EAAQmY,EAAGqb,YAAYx7B,EAAKwD,IAExBoV,MAAM5Q,EAAM7F,MAAQyW,MAAM5Q,EAAMuJ,MAAQ0c,EAAKjuB,KAAKwD,GAAGinB,QAAUziB,EAAM7F,IAAM,GAAK6F,EAAMuJ,IAAM,IAIhG4O,EAAGhe,IAAMD,KAAKC,IAAI6F,EAAM7F,IAAKge,EAAGhe,KAChCge,EAAG5O,IAAMrP,KAAKqP,IAAIvJ,EAAMuJ,IAAK4O,EAAG5O,KAEd,IAAdvJ,EAAM7F,MACTge,EAAG63C,WAAa91D,KAAKC,IAAI6F,EAAM7F,IAAKge,EAAG63C,cAO5C73C,EAAGhe,IAAMunB,GAAUvL,SAASgC,EAAGhe,KAAOge,EAAGhe,IAAM,KAC/Cge,EAAG5O,IAAMmY,GAAUvL,SAASgC,EAAG5O,KAAO4O,EAAG5O,IAAM,KAC/C4O,EAAG63C,WAAatuC,GAAUvL,SAASgC,EAAG63C,YAAc73C,EAAG63C,WAAa,KAGpE73D,KAAK41D,0BAGNA,uBAAwB,WACvB,IAAI51C,EAAKhgB,KACLkhC,EAAWlhB,EAAGja,QAAQo7B,MACtBw1B,EAAc,EACdC,EAAc,GAElB52C,EAAGhe,IAAMg2D,GAAqB92B,EAASl/B,IAAKge,EAAGhe,KAC/Cge,EAAG5O,IAAM4mD,GAAqB92B,EAAS9vB,IAAK4O,EAAG5O,KAE3C4O,EAAGhe,MAAQge,EAAG5O,MACF,IAAX4O,EAAGhe,KAAwB,OAAXge,EAAGhe,KACtBge,EAAGhe,IAAMD,KAAKiP,IAAI,GAAIjP,KAAKmN,MAAMyY,GAAM3H,EAAGhe,MAAQ,GAClDge,EAAG5O,IAAMrP,KAAKiP,IAAI,GAAIjP,KAAKmN,MAAMyY,GAAM3H,EAAG5O,MAAQ,KAElD4O,EAAGhe,IAAM20D,EACT32C,EAAG5O,IAAMwlD,IAGI,OAAX52C,EAAGhe,MACNge,EAAGhe,IAAMD,KAAKiP,IAAI,GAAIjP,KAAKmN,MAAMyY,GAAM3H,EAAG5O,MAAQ,IAEpC,OAAX4O,EAAG5O,MACN4O,EAAG5O,IAAiB,IAAX4O,EAAGhe,IACTD,KAAKiP,IAAI,GAAIjP,KAAKmN,MAAMyY,GAAM3H,EAAGhe,MAAQ,GACzC40D,GAEkB,OAAlB52C,EAAG63C,aACF73C,EAAGhe,IAAM,EACZge,EAAG63C,WAAa73C,EAAGhe,IACTge,EAAG5O,IAAM,EACnB4O,EAAG63C,WAAa91D,KAAKiP,IAAI,GAAIjP,KAAKmN,MAAMyY,GAAM3H,EAAG5O,OAEjD4O,EAAG63C,WAAalB,IAKnBtI,WAAY,WACX,IAAIruC,EAAKhgB,KACLkhC,EAAWlhB,EAAGja,QAAQo7B,MACtB1iB,GAAWuB,EAAGga,eAEd86B,EAAoB,CACvB9yD,IAAKg2D,GAAqB92B,EAASl/B,KACnCoP,IAAK4mD,GAAqB92B,EAAS9vB,MAEhC+vB,EAAQnhB,EAAGmhB,MAAQo2B,GAAgBzC,EAAmB90C,GAI1DA,EAAG5O,IAAMmY,GAAUnY,IAAI+vB,GACvBnhB,EAAGhe,IAAMunB,GAAUvnB,IAAIm/B,GAEnBD,EAASziB,SACZA,GAAWA,EACXuB,EAAG2J,MAAQ3J,EAAG5O,IACd4O,EAAG6Y,IAAM7Y,EAAGhe,MAEZge,EAAG2J,MAAQ3J,EAAGhe,IACdge,EAAG6Y,IAAM7Y,EAAG5O,KAETqN,GACH0iB,EAAM1iB,WAIR6wC,qBAAsB,WACrBtvD,KAAKu4D,WAAav4D,KAAKmhC,MAAMvqB,QAE7Bq9C,GAAWvzD,UAAU4uD,qBAAqBlrD,KAAKpE,OAIhDy0C,iBAAkB,SAASvxC,EAAOmqB,GACjC,OAAOrtB,KAAKoxD,eAAepxD,KAAKkK,MAAMrK,KAAKwK,SAASgjB,GAAcxtB,KAAKqD,KAGxE+0B,gBAAiB,SAAS/0B,GACzB,IAAIi+B,EAAQnhC,KAAKu4D,WACjB,OAAIr1D,EAAQ,GAAKA,EAAQi+B,EAAMr2B,OAAS,EAChC,KAED9K,KAAK+6B,iBAAiBoG,EAAMj+B,KASpCs1D,mBAAoB,SAAS3wD,GAC5B,IAAI2vD,EAAMz1D,KAAKmN,MAAMyY,GAAM9f,IACvB4vD,EAAc11D,KAAKmN,MAAMrH,EAAQ9F,KAAKiP,IAAI,GAAIwmD,IAElD,OAAOC,EAAc11D,KAAKiP,IAAI,GAAIwmD,IAGnC7nC,WAAY,WACX,IAAI3P,EAAKhgB,KACL2pB,EAAQ3J,EAAGhe,IACX+2B,EAAS,EAEbk7B,GAAWvzD,UAAUivB,WAAWvrB,KAAK4b,GAEvB,IAAV2J,IACHA,EAAQ3J,EAAGw4C,mBAAmBx4C,EAAG63C,YACjC9+B,EAASu+B,GAAiBt3C,EAAGja,QAAQo7B,MAAMna,SAAUV,EAAclX,OAAO8W,iBAAmBlG,EAAG+X,SAGjG/X,EAAGw0C,YAAc7sC,GAAMgC,GACvB3J,EAAGy4C,aAAe1/B,EAClB/Y,EAAGy0C,aAAe9sC,GAAM3H,EAAG5O,KAAOuW,GAAMgC,KAAW,EAAIoP,IAGxDgC,iBAAkB,SAASlzB,GAC1B,IAAImY,EAAKhgB,KACLsxD,EAAU,EAOd,OALAzpD,GAASmY,EAAGsiB,cAAcz6B,GAEtBA,EAAQmY,EAAGhe,KAAO6F,EAAQ,IAC7BypD,GAAW3pC,GAAM9f,GAASmY,EAAGw0C,aAAex0C,EAAGy0C,YAAcz0C,EAAGy4C,cAE1Dz4C,EAAGuc,mBAAmB+0B,IAG9BD,iBAAkB,SAASlO,GAC1B,IAAInjC,EAAKhgB,KACLsxD,EAAUtxC,EAAGuxC,mBAAmBpO,GACpC,OAAmB,IAAZmO,GAA4B,IAAXtxC,EAAGhe,IACxB,EACAD,KAAKiP,IAAI,GAAIgP,EAAGw0C,aAAelD,EAAUtxC,EAAGy4C,cAAgBz4C,EAAGy0C,gBAKhEiE,GAAcX,GAClBE,GAAkBtD,UAAY+D,GAE9B,IAAIC,GAAmBpvC,GAAUtL,eAC7B26C,GAA0BrvC,GAAUpL,sBACpC06C,GAAYtvC,GAAUxjB,QAAQqhB,QAE9B0xC,GAAkB,CACrB71B,SAAS,EAGT81B,SAAS,EACTn9B,SAAU,YAEVoH,WAAY,CACXC,SAAS,EACTjvB,MAAO,kBACPpR,UAAW,EACXwxB,WAAY,GACZC,iBAAkB,GAGnB2E,UAAW,CACVkK,UAAU,GAIX/B,MAAO,CAEN63B,mBAAmB,EAGnBC,cAAe,yBAGfC,iBAAkB,EAGlBC,iBAAkB,EAElB/6C,SAAUiqC,GAAWC,WAAWrnC,QAGjCkiB,YAAa,CAEZF,SAAS,EAGTjc,SAAU,GAGV5I,SAAU,SAAS5T,GAClB,OAAOA,KAKV,SAAS4uD,GAAsB56B,GAC9B,IAAI0C,EAAW1C,EAAK2C,MAEpB,OAAID,EAAS+B,SAAWzE,EAAKyE,QACrB01B,GAAiBz3B,EAASla,SAAUV,EAAclX,OAAO8W,iBAA+C,EAA5Bgb,EAASg4B,iBAEtF,EAGR,SAASG,GAAiBv5D,EAAKonB,EAAY1c,GAC1C,OAAI+e,GAAU1L,QAAQrT,GACd,CACNoH,EAAG2X,GAAUo9B,YAAY7mD,EAAKA,EAAI0mB,KAAMhc,GACxCxD,EAAGwD,EAAMM,OAASoc,GAIb,CACNtV,EAAG9R,EAAIg3C,YAAYtsC,GAAO3I,MAC1BmF,EAAGkgB,GAIL,SAASoyC,GAAgB/lC,EAAOuT,EAAK3iB,EAAMniB,EAAKoP,GAC/C,OAAImiB,IAAUvxB,GAAOuxB,IAAUniB,EACvB,CACNuY,MAAOmd,EAAO3iB,EAAO,EACrB0U,IAAKiO,EAAO3iB,EAAO,GAEVoP,EAAQvxB,GAAOuxB,EAAQniB,EAC1B,CACNuY,MAAOmd,EAAM3iB,EACb0U,IAAKiO,GAIA,CACNnd,MAAOmd,EACPjO,IAAKiO,EAAM3iB,GAOb,SAASo1C,GAAmBhhD,GA4B3B,IAWIlV,EAAGm2D,EAAUh1B,EAXbi1B,EAASlwC,GAAUxjB,QAAQ+gB,WAAWvO,EAAMxS,QAAQo9B,aAIpDu2B,EAAiB,CACpBv1D,EAAG,EACH8M,EAAGsH,EAAM1W,MACTgR,EAAG,EACH1B,EAAGoH,EAAM3W,OAAS2W,EAAMstC,YAErB8T,EAAiB,GAGrBphD,EAAMzY,IAAI0mB,KAAOizC,EAAOrlD,OACxBmE,EAAMqhD,iBAAmB,GAEzB,IAAIC,EAAathD,EAAMrO,MAAMrK,KAAK2L,OAAOV,OACzC,IAAKzH,EAAI,EAAGA,EAAIw2D,EAAYx2D,IAAK,CAChCmhC,EAAgBjsB,EAAMuhD,iBAAiBz2D,EAAGkV,EAAMwhD,YAAc,GAC9DP,EAAWH,GAAiB9gD,EAAMzY,IAAK25D,EAAOvyC,WAAY3O,EAAM4qB,YAAY9/B,IAC5EkV,EAAMqhD,iBAAiBv2D,GAAKm2D,EAG5B,IAAI9I,EAAen4C,EAAMyhD,cAAc32D,GACnCkwB,EAAQhK,GAAUi5B,UAAUkO,GAAgB,IAC5CuJ,EAAUX,GAAgB/lC,EAAOiR,EAAc9iC,EAAG83D,EAAS5nD,EAAG,EAAG,KACjEsoD,EAAUZ,GAAgB/lC,EAAOiR,EAAc7iC,EAAG63D,EAASxyD,EAAG,GAAI,KAElEizD,EAAQtwC,MAAQ+vC,EAAev1D,IAClCu1D,EAAev1D,EAAI81D,EAAQtwC,MAC3BgwC,EAAex1D,EAAIusD,GAGhBuJ,EAAQphC,IAAM6gC,EAAezoD,IAChCyoD,EAAezoD,EAAIgpD,EAAQphC,IAC3B8gC,EAAe1oD,EAAIy/C,GAGhBwJ,EAAQvwC,MAAQ+vC,EAAe7mD,IAClC6mD,EAAe7mD,EAAIqnD,EAAQvwC,MAC3BgwC,EAAe9mD,EAAI69C,GAGhBwJ,EAAQrhC,IAAM6gC,EAAevoD,IAChCuoD,EAAevoD,EAAI+oD,EAAQrhC,IAC3B8gC,EAAexoD,EAAIu/C,GAIrBn4C,EAAM4hD,cAAc5hD,EAAMwhD,YAAaL,EAAgBC,GAGxD,SAASS,GAAqB7mC,GAC7B,OAAc,IAAVA,GAAyB,MAAVA,EACX,SACGA,EAAQ,IACX,OAGD,QAGR,SAASumB,GAASh6C,EAAKiP,EAAM6sB,EAAU1U,GACtC,IACI7jB,EAAGwb,EADHld,EAAIi6B,EAASj6B,EAAIulB,EAAa,EAGlC,GAAIqC,GAAU1L,QAAQ9O,GACrB,IAAK1L,EAAI,EAAGwb,EAAO9P,EAAKjE,OAAQzH,EAAIwb,IAAQxb,EAC3CvD,EAAIg6C,SAAS/qC,EAAK1L,GAAIu4B,EAASl6B,EAAGC,GAClCA,GAAKulB,OAGNpnB,EAAIg6C,SAAS/qC,EAAM6sB,EAASl6B,EAAGC,GAIjC,SAAS04D,GAAkC9mC,EAAOimC,EAAU59B,GAC7C,KAAVrI,GAA0B,MAAVA,EACnBqI,EAASj6B,GAAM63D,EAASxyD,EAAI,GAClBusB,EAAQ,KAAOA,EAAQ,MACjCqI,EAASj6B,GAAK63D,EAASxyD,GAIzB,SAASszD,GAAgB/hD,GACxB,IAAIzY,EAAMyY,EAAMzY,IACZ0+B,EAAOjmB,EAAMxS,QACbw0D,EAAiB/7B,EAAK2E,YACtBq3B,EAAqBpB,GAAsB56B,GAC3Ci8B,EAAgBliD,EAAM2rB,8BAA8B1F,EAAK2C,MAAM1iB,QAAUlG,EAAMvW,IAAMuW,EAAMnH,KAC3FqoD,EAASlwC,GAAUxjB,QAAQ+gB,WAAWyzC,GAE1Cz6D,EAAIukB,OAEJvkB,EAAI0mB,KAAOizC,EAAOrlD,OAClBtU,EAAI+5C,aAAe,SAEnB,IAAK,IAAIx2C,EAAIkV,EAAMrO,MAAMrK,KAAK2L,OAAOV,OAAS,EAAGzH,GAAK,EAAGA,IAAK,CAE7D,IAAIq3D,EAAe,IAANr3D,EAAUm3D,EAAqB,EAAI,EAC5CG,EAAqBpiD,EAAMuhD,iBAAiBz2D,EAAGo3D,EAAgBC,EAAQ,GAGvEE,EAAsBhC,GAAwB2B,EAAevP,UAAW3nD,EAAGijB,EAAclX,OAAO4W,kBACpGlmB,EAAI0C,UAAYo4D,EAEhB,IAAIlK,EAAen4C,EAAMyhD,cAAc32D,GACnCkwB,EAAQhK,GAAUi5B,UAAUkO,GAChC5wD,EAAIuoB,UAAY+xC,GAAqB7mC,GACrC8mC,GAAkC9mC,EAAOhb,EAAMqhD,iBAAiBv2D,GAAIs3D,GACpE7gB,GAASh6C,EAAKyY,EAAM4qB,YAAY9/B,GAAIs3D,EAAoBlB,EAAOvyC,YAEhEpnB,EAAI0kB,UAGL,SAASq2C,GAAetiD,EAAO43C,EAAc5sD,EAAQL,GACpD,IAKIshC,EALA1kC,EAAMyY,EAAMzY,IACZojC,EAAWitB,EAAajtB,SACxB22B,EAAathD,EAAMrO,MAAMrK,KAAK2L,OAAOV,OACrCwnD,EAAYsG,GAAwBzI,EAAan8C,MAAO9Q,EAAQ,GAChEN,EAAYg2D,GAAwBzI,EAAavtD,UAAWM,EAAQ,GAGxE,IAAMggC,GAAa22B,IAAgBvH,GAAc1vD,EAAjD,CAaA,GATA9C,EAAIukB,OACJvkB,EAAI4C,YAAc4vD,EAClBxyD,EAAI8C,UAAYA,EACZ9C,EAAIo1B,cACPp1B,EAAIo1B,YAAYi7B,EAAa/7B,YAAc,IAC3Ct0B,EAAIq1B,eAAiBg7B,EAAa97B,kBAAoB,GAGvDv0B,EAAIyC,YACA2gC,EAEHpjC,EAAI8jB,IAAIrL,EAAMwrB,QAASxrB,EAAMyrB,QAASzgC,EAAQ,EAAa,EAAVxB,KAAKyR,QAChD,CAENgxB,EAAgBjsB,EAAMuhD,iBAAiB,EAAGv2D,GAC1CzD,EAAIsD,OAAOohC,EAAc9iC,EAAG8iC,EAAc7iC,GAE1C,IAAK,IAAI0B,EAAI,EAAGA,EAAIw2D,EAAYx2D,IAC/BmhC,EAAgBjsB,EAAMuhD,iBAAiBz2D,EAAGE,GAC1CzD,EAAI0D,OAAOghC,EAAc9iC,EAAG8iC,EAAc7iC,GAG5C7B,EAAI+jB,YACJ/jB,EAAI6D,SACJ7D,EAAI0kB,WAGL,SAASs2C,GAAaC,GACrB,OAAOxxC,GAAUsB,SAASkwC,GAASA,EAAQ,EAG5C,IAAIC,GAAqBrF,GAAiBj2C,OAAO,CAChDquC,cAAe,WACd,IAAI/tC,EAAKhgB,KAGTggB,EAAGne,MAAQme,EAAGse,SACdte,EAAGpe,OAASoe,EAAGue,UACfve,EAAG6lC,WAAauT,GAAsBp5C,EAAGja,SAAW,EACpDia,EAAG+jB,QAAUhiC,KAAKmN,MAAM8Q,EAAGne,MAAQ,GACnCme,EAAGgkB,QAAUjiC,KAAKmN,OAAO8Q,EAAGpe,OAASoe,EAAG6lC,YAAc,GACtD7lC,EAAG+5C,YAAch4D,KAAKC,IAAIge,EAAGpe,OAASoe,EAAG6lC,WAAY7lC,EAAGne,OAAS,GAGlEqsD,oBAAqB,WACpB,IAAIluC,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MACXlI,EAAM2K,OAAOi5B,kBACbx0B,EAAMzE,OAAO01C,kBAEjB94B,GAAUhL,KAAKrU,EAAMrK,KAAKwK,UAAU,SAASE,EAAS8iB,GACrD,GAAInjB,EAAMm0B,iBAAiBhR,GAAe,CACzC,IAAIS,EAAO5jB,EAAMokB,eAAejB,GAEhC9D,GAAUhL,KAAKhU,EAAQ1K,MAAM,SAASsxD,EAAUjuD,GAC/C,IAAI2E,GAASmY,EAAGsiB,cAAc6uB,GAC1B14C,MAAM5Q,IAAUimB,EAAKjuB,KAAKqD,GAAOonB,SAIrCtoB,EAAMD,KAAKC,IAAI6F,EAAO7F,GACtBoP,EAAMrP,KAAKqP,IAAIvJ,EAAOuJ,WAKzB4O,EAAGhe,IAAOA,IAAQ2K,OAAOi5B,kBAAoB,EAAI5jC,EACjDge,EAAG5O,IAAOA,IAAQzE,OAAO01C,kBAAoB,EAAIjxC,EAGjD4O,EAAG41C,0BAIJQ,kBAAmB,WAClB,OAAOr0D,KAAKiqD,KAAKhsD,KAAK+5D,YAAcX,GAAsBp5D,KAAK+F,WAGhEupD,qBAAsB,WACrB,IAAItvC,EAAKhgB,KAET21D,GAAiBj1D,UAAU4uD,qBAAqBlrD,KAAK4b,GAGrDA,EAAGmjB,YAAcnjB,EAAG9V,MAAMrK,KAAK2L,OAAOlB,KAAI,WACzC,IAAIE,EAAQ+e,GAAUnL,SAAS4B,EAAGja,QAAQo9B,YAAY/kB,SAAUvK,UAAWmM,GAC3E,OAAOxV,GAAmB,IAAVA,EAAcA,EAAQ,OAIxCiqC,iBAAkB,SAASvxC,EAAOmqB,GACjC,OAAQrtB,KAAKsiC,cAActiC,KAAKkK,MAAMrK,KAAKwK,SAASgjB,GAAcxtB,KAAKqD,KAGxE0rD,IAAK,WACJ,IAAI5uC,EAAKhgB,KACLw+B,EAAOxe,EAAGja,QAEVy4B,EAAKyE,SAAWzE,EAAK2E,YAAYF,QACpCs2B,GAAmBv5C,GAEnBA,EAAGi7C,eAAe,EAAG,EAAG,EAAG,IAQ7Bd,cAAe,SAASe,EAAuBxB,EAAgBC,GAC9D,IAAI35C,EAAKhgB,KACLm7D,EAAsBzB,EAAev1D,EAAIpC,KAAK4R,IAAIgmD,EAAex1D,GACjEi3D,EAAuBr5D,KAAKqP,IAAIsoD,EAAezoD,EAAI+O,EAAGne,MAAO,GAAKE,KAAK4R,IAAIgmD,EAAe1oD,GAC1FoqD,GAAsB3B,EAAe7mD,EAAI9Q,KAAK2R,IAAIimD,EAAe9mD,GACjEyoD,GAAyBv5D,KAAKqP,IAAIsoD,EAAevoD,GAAK6O,EAAGpe,OAASoe,EAAG6lC,YAAa,GAAK9jD,KAAK2R,IAAIimD,EAAexoD,GAEnHgqD,EAAsBL,GAAaK,GACnCC,EAAuBN,GAAaM,GACpCC,EAAqBP,GAAaO,GAClCC,EAAwBR,GAAaQ,GAErCt7C,EAAG+5C,YAAch4D,KAAKC,IACrBD,KAAKmN,MAAMgsD,GAAyBC,EAAsBC,GAAwB,GAClFr5D,KAAKmN,MAAMgsD,GAAyBG,EAAqBC,GAAyB,IACnFt7C,EAAGi7C,eAAeE,EAAqBC,EAAsBC,EAAoBC,IAGlFL,eAAgB,SAASM,EAAcC,EAAeC,EAAaC,GAClE,IAAI17C,EAAKhgB,KACL27D,EAAW37C,EAAGne,MAAQ25D,EAAgBx7C,EAAG+5C,YACzC6B,EAAUL,EAAev7C,EAAG+5C,YAC5B8B,EAASJ,EAAcz7C,EAAG+5C,YAC1B+B,EAAa97C,EAAGpe,OAASoe,EAAG6lC,WAAc6V,EAAiB17C,EAAG+5C,YAElE/5C,EAAG+jB,QAAUhiC,KAAKmN,OAAQ0sD,EAAUD,GAAY,EAAK37C,EAAGpf,MACxDof,EAAGgkB,QAAUjiC,KAAKmN,OAAQ2sD,EAASC,GAAa,EAAK97C,EAAGlf,IAAMkf,EAAG6lC,aAGlEmU,cAAe,SAAS92D,GACvB,IAAIgH,EAAQlK,KAAKkK,MACb6xD,EAAkB,IAAM7xD,EAAMrK,KAAK2L,OAAOV,OAC1C/E,EAAUmE,EAAMnE,SAAW,GAC3BmsB,EAAansB,EAAQmsB,YAAc,EAGnCqB,GAASrwB,EAAQ64D,EAAkB7pC,GAAc,IAErD,OAAQqB,EAAQ,EAAIA,EAAQ,IAAMA,GAASxxB,KAAKyR,GAAK,EAAI,KAG1D0wB,8BAA+B,SAASr8B,GACvC,IAAImY,EAAKhgB,KAET,GAAIupB,GAAU3L,cAAc/V,GAC3B,OAAO20B,IAIR,IAAIw/B,EAAgBh8C,EAAG+5C,aAAe/5C,EAAG5O,IAAM4O,EAAGhe,KAClD,OAAIge,EAAGja,QAAQo7B,MAAM1iB,SACZuB,EAAG5O,IAAMvJ,GAASm0D,GAEnBn0D,EAAQmY,EAAGhe,KAAOg6D,GAG3BlC,iBAAkB,SAAS52D,EAAO+4D,GACjC,IAAIj8C,EAAKhgB,KACLk8D,EAAYl8C,EAAGg6C,cAAc92D,GAAUnB,KAAKyR,GAAK,EACrD,MAAO,CACN9R,EAAGK,KAAK2R,IAAIwoD,GAAaD,EAAqBj8C,EAAG+jB,QACjDpiC,EAAGI,KAAK4R,IAAIuoD,GAAaD,EAAqBj8C,EAAGgkB,UAInDS,yBAA0B,SAASvhC,EAAO2E,GACzC,OAAO7H,KAAK85D,iBAAiB52D,EAAOlD,KAAKkkC,8BAA8Br8B,KAGxEs0D,gBAAiB,SAASj5D,GACzB,IAAI8c,EAAKhgB,KACLgC,EAAMge,EAAGhe,IACToP,EAAM4O,EAAG5O,IAEb,OAAO4O,EAAGykB,yBAAyBvhC,GAAS,EAC3C8c,EAAGojB,YAAc,EACjBphC,EAAM,GAAKoP,EAAM,EAAIA,EACrBpP,EAAM,GAAKoP,EAAM,EAAIpP,EACrB,IAMFkxD,UAAW,WACV,IAOI7vD,EAAG01B,EAAQ6C,EAPX5b,EAAKhgB,KACLF,EAAMkgB,EAAGlgB,IACT0+B,EAAOxe,EAAGja,QACVoqD,EAAe3xB,EAAKxF,UACpBojC,EAAgB59B,EAAKwE,WACrBpgC,EAAY+1D,GAAiByD,EAAcx5D,UAAWutD,EAAavtD,WACnE0vD,EAAYqG,GAAiByD,EAAcpoD,MAAOm8C,EAAan8C,OAgBnE,GAbIwqB,EAAK2E,YAAYF,SACpBq3B,GAAgBt6C,GAGbmwC,EAAaltB,SAChB1Z,GAAUhL,KAAKyB,EAAGmhB,OAAO,SAAS32B,EAAOtH,GAC1B,IAAVA,IACH61B,EAAS/Y,EAAGkkB,8BAA8BlkB,EAAGw2C,eAAetzD,IAC5D23D,GAAe76C,EAAImwC,EAAcp3B,EAAQ71B,OAKxCk5D,EAAcn5B,SAAWrgC,GAAa0vD,EAAW,CASpD,IARAxyD,EAAIukB,OACJvkB,EAAI8C,UAAYA,EAChB9C,EAAI4C,YAAc4vD,EACdxyD,EAAIo1B,cACPp1B,EAAIo1B,YAAY2jC,GAAU,CAACuD,EAAchoC,WAAY+7B,EAAa/7B,WAAY,MAC9Et0B,EAAIq1B,eAAiB0jC,GAAU,CAACuD,EAAc/nC,iBAAkB87B,EAAa97B,iBAAkB,KAG3FhxB,EAAI2c,EAAG9V,MAAMrK,KAAK2L,OAAOV,OAAS,EAAGzH,GAAK,EAAGA,IACjD01B,EAAS/Y,EAAGkkB,8BAA8B1F,EAAK2C,MAAM1iB,QAAUuB,EAAGhe,IAAMge,EAAG5O,KAC3EwqB,EAAW5b,EAAG85C,iBAAiBz2D,EAAG01B,GAClCj5B,EAAIyC,YACJzC,EAAIsD,OAAO4c,EAAG+jB,QAAS/jB,EAAGgkB,SAC1BlkC,EAAI0D,OAAOo4B,EAASl6B,EAAGk6B,EAASj6B,GAChC7B,EAAI6D,SAGL7D,EAAI0kB,YAON6uC,YAAa,WACZ,IAAIrzC,EAAKhgB,KACLF,EAAMkgB,EAAGlgB,IACT0+B,EAAOxe,EAAGja,QACVm7B,EAAW1C,EAAK2C,MAEpB,GAAKD,EAAS+B,QAAd,CAIA,IAGIlK,EAAQl3B,EAHRqwB,EAAalS,EAAGg6C,cAAc,GAC9BnQ,EAAWtgC,GAAUxjB,QAAQ+gB,WAAWoa,GACxCm7B,EAAgB1D,GAAiBz3B,EAAS8pB,UAAW1kC,EAAclX,OAAO4W,kBAG9ElmB,EAAIukB,OACJvkB,EAAI0mB,KAAOqjC,EAASz1C,OACpBtU,EAAIwkB,UAAUtE,EAAG+jB,QAAS/jB,EAAGgkB,SAC7BlkC,EAAIkc,OAAOkW,GACXpyB,EAAIuoB,UAAY,SAChBvoB,EAAI+5C,aAAe,SAEnBtwB,GAAUhL,KAAKyB,EAAGmhB,OAAO,SAAS32B,EAAOtH,IAC1B,IAAVA,GAAgBg+B,EAASziB,WAI7Bsa,EAAS/Y,EAAGkkB,8BAA8BlkB,EAAGw2C,eAAetzD,IAExDg+B,EAAS83B,oBACZn3D,EAAQ/B,EAAIg3C,YAAYtsC,GAAO3I,MAC/B/B,EAAI0C,UAAY0+B,EAAS+3B,cAEzBn5D,EAAIy3B,UACF11B,EAAQ,EAAIq/B,EAASi4B,kBACrBpgC,EAAS8wB,EAAS1lC,KAAO,EAAI+c,EAASg4B,iBACvCr3D,EAAoC,EAA5Bq/B,EAASi4B,iBACjBtP,EAAS1lC,KAAmC,EAA5B+c,EAASg4B,mBAI3Bp5D,EAAI0C,UAAY65D,EAChBv8D,EAAIg6C,SAAStvC,EAAO,GAAIuuB,OAGzBj5B,EAAI0kB,YAML8uC,WAAY/pC,GAAU7L,OAInB4+C,GAAcxD,GAClBkC,GAAmBrG,UAAY2H,GAE/B,IAAIC,GAAehzC,GAAUlJ,YACzBm8C,GAAYjzC,GAAUxjB,QAAQqhB,QAC9Bq1C,GAAmBlzC,GAAUtL,eAG7By+C,GAAc/vD,OAAOgwD,mBAAqB,iBAC1CC,GAAcjwD,OAAOkwD,kBAAoB,iBAEzCC,GAAY,CACfC,YAAa,CACZC,QAAQ,EACR74C,KAAM,EACN84C,MAAO,KAERC,OAAQ,CACPF,QAAQ,EACR74C,KAAM,IACN84C,MAAO,IAERE,OAAQ,CACPH,QAAQ,EACR74C,KAAM,IACN84C,MAAO,IAERG,KAAM,CACLJ,QAAQ,EACR74C,KAAM,KACN84C,MAAO,IAERI,IAAK,CACJL,QAAQ,EACR74C,KAAM,MACN84C,MAAO,IAERK,KAAM,CACLN,QAAQ,EACR74C,KAAM,OACN84C,MAAO,GAERM,MAAO,CACNP,QAAQ,EACR74C,KAAM,OACN84C,MAAO,IAERO,QAAS,CACRR,QAAQ,EACR74C,KAAM,OACN84C,MAAO,GAERQ,KAAM,CACLT,QAAQ,EACR74C,KAAM,SAIJu5C,GAAQ/9D,OAAOsL,KAAK6xD,IAExB,SAASa,GAAOp1D,EAAG4I,GAClB,OAAO5I,EAAI4I,EAGZ,SAASysD,GAAYt3B,GACpB,IAEIjjC,EAAGwb,EAAM+B,EAFTi9C,EAAO,GACPC,EAAM,GAGV,IAAKz6D,EAAI,EAAGwb,EAAOynB,EAAMx7B,OAAQzH,EAAIwb,IAAQxb,EAC5Cud,EAAO0lB,EAAMjjC,GACRw6D,EAAKj9C,KACTi9C,EAAKj9C,IAAQ,EACbk9C,EAAI7wD,KAAK2T,IAIX,OAAOk9C,EAGR,SAASC,GAAOh4D,GACf,OAAOwjB,GAAUtL,eAAelY,EAAQi4D,KAAKh8D,IAAK+D,EAAQo7B,MAAMn/B,KAGjE,SAASi8D,GAAOl4D,GACf,OAAOwjB,GAAUtL,eAAelY,EAAQi4D,KAAK5sD,IAAKrL,EAAQo7B,MAAM/vB,KAkBjE,SAAS8sD,GAAiBC,EAAYn8D,EAAKoP,EAAKgtD,GAC/C,GAAqB,WAAjBA,IAA8BD,EAAWrzD,OAC5C,MAAO,CACN,CAACkzD,KAAMh8D,EAAK8kC,IAAK,GACjB,CAACk3B,KAAM5sD,EAAK01B,IAAK,IAInB,IAEIzjC,EAAGwb,EAAMuS,EAAM0G,EAAMa,EAFrB0lC,EAAQ,GACR/3B,EAAQ,CAACtkC,GAGb,IAAKqB,EAAI,EAAGwb,EAAOs/C,EAAWrzD,OAAQzH,EAAIwb,IAAQxb,EACjDy0B,EAAOqmC,EAAW96D,GACdy0B,EAAO91B,GAAO81B,EAAO1mB,GACxBk1B,EAAMr5B,KAAK6qB,GAMb,IAFAwO,EAAMr5B,KAAKmE,GAEN/N,EAAI,EAAGwb,EAAOynB,EAAMx7B,OAAQzH,EAAIwb,IAAQxb,EAC5Cs1B,EAAO2N,EAAMjjC,EAAI,GACjB+tB,EAAOkV,EAAMjjC,EAAI,GACjBy0B,EAAOwO,EAAMjjC,QAGAsT,IAATya,QAA+Bza,IAATgiB,GAAsB52B,KAAK+R,OAAO6kB,EAAOvH,GAAQ,KAAO0G,GACjFumC,EAAMpxD,KAAK,CAAC+wD,KAAMlmC,EAAMgP,IAAKzjC,GAAKwb,EAAO,KAI3C,OAAOw/C,EAIR,SAASC,GAAOD,EAAOhzD,EAAKxD,GAC3B,IAEI02D,EAAKC,EAAIC,EAFTC,EAAK,EACLhsD,EAAK2rD,EAAMvzD,OAAS,EAGxB,MAAO4zD,GAAM,GAAKA,GAAMhsD,EAAI,CAK3B,GAJA6rD,EAAOG,EAAKhsD,GAAO,EACnB8rD,EAAKH,EAAME,EAAM,IAAM,KACvBE,EAAKJ,EAAME,IAENC,EAEJ,MAAO,CAACE,GAAI,KAAMhsD,GAAI+rD,GAChB,GAAIA,EAAGpzD,GAAOxD,EACpB62D,EAAKH,EAAM,MACL,MAAIC,EAAGnzD,GAAOxD,GAGpB,MAAO,CAAC62D,GAAIF,EAAI9rD,GAAI+rD,GAFpB/rD,EAAK6rD,EAAM,GAOb,MAAO,CAACG,GAAID,EAAI/rD,GAAI,MASrB,SAASisD,GAAcN,EAAOO,EAAMx/C,EAAMy/C,GACzC,IAAIvjC,EAAQgjC,GAAOD,EAAOO,EAAMx/C,GAG5BgS,EAAQkK,EAAMojC,GAAiBpjC,EAAM5oB,GAA+B4oB,EAAMojC,GAAhCL,EAAMA,EAAMvzD,OAAS,GAA5CuzD,EAAM,GACzB1lC,EAAQ2C,EAAMojC,GAAiBpjC,EAAM5oB,GAA+B4oB,EAAM5oB,GAAhC2rD,EAAMA,EAAMvzD,OAAS,GAA5CuzD,EAAM,GAEzBS,EAAOnmC,EAAKimC,GAAQxtC,EAAKwtC,GACzB1rD,EAAQ4rD,GAAQ1/C,EAAOgS,EAAKwtC,IAASE,EAAO,EAC5C/lC,GAAUJ,EAAKkmC,GAAQztC,EAAKytC,IAAS3rD,EAEzC,OAAOke,EAAKytC,GAAQ9lC,EAGrB,SAASgmC,GAAYxmD,EAAOymD,GAC3B,IAAIC,EAAU1mD,EAAM2mD,SAChBn5D,EAAUwS,EAAMxS,QAAQi4D,KACxBmB,EAASp5D,EAAQo5D,OACjBtX,EAASsX,GAAUp5D,EAAQ8hD,OAC3BhgD,EAAQm3D,EAaZ,MAXsB,oBAAXG,IACVt3D,EAAQs3D,EAAOt3D,IAIX0hB,GAAUvL,SAASnW,KACvBA,EAA0B,kBAAXggD,EACZoX,EAAQrX,MAAM//C,EAAOggD,GACrBoX,EAAQrX,MAAM//C,IAGJ,OAAVA,GACKA,GAKJs3D,GAA4B,oBAAXtX,IACrBhgD,EAAQggD,EAAOmX,GAGVz1C,GAAUvL,SAASnW,KACvBA,EAAQo3D,EAAQrX,MAAM//C,KAIjBA,GAGR,SAAS+/C,GAAMrvC,EAAOymD,GACrB,GAAIz1C,GAAU3L,cAAcohD,GAC3B,OAAO,KAGR,IAAIj5D,EAAUwS,EAAMxS,QAAQi4D,KACxBn2D,EAAQk3D,GAAYxmD,EAAOA,EAAM+pB,cAAc08B,IACnD,OAAc,OAAVn3D,GAIA9B,EAAQ+N,QACXjM,GAAS0Q,EAAM2mD,SAASpX,QAAQjgD,EAAO9B,EAAQ+N,QAJxCjM,EAaT,SAASu3D,GAA0BC,EAASr9D,EAAKoP,EAAKkuD,GACrD,IACIj8D,EAAGk8D,EAAU7T,EADb7sC,EAAO6+C,GAAM5yD,OAGjB,IAAKzH,EAAIq6D,GAAM16D,QAAQq8D,GAAUh8D,EAAIwb,EAAO,IAAKxb,EAIhD,GAHAk8D,EAAWzC,GAAUY,GAAMr6D,IAC3BqoD,EAAS6T,EAAStC,MAAQsC,EAAStC,MAAQL,GAEvC2C,EAASvC,QAAUj7D,KAAKiqD,MAAM56C,EAAMpP,IAAQ0pD,EAAS6T,EAASp7C,QAAUm7C,EAC3E,OAAO5B,GAAMr6D,GAIf,OAAOq6D,GAAM7+C,EAAO,GAMrB,SAAS2gD,GAA2BjnD,EAAOu3C,EAAUuP,EAASr9D,EAAKoP,GAClE,IAAI/N,EAAGgyD,EAEP,IAAKhyD,EAAIq6D,GAAM5yD,OAAS,EAAGzH,GAAKq6D,GAAM16D,QAAQq8D,GAAUh8D,IAEvD,GADAgyD,EAAOqI,GAAMr6D,GACTy5D,GAAUzH,GAAM2H,QAAUzkD,EAAM2mD,SAASxtD,KAAKN,EAAKpP,EAAKqzD,IAASvF,EAAW,EAC/E,OAAOuF,EAIT,OAAOqI,GAAM2B,EAAU3B,GAAM16D,QAAQq8D,GAAW,GAGjD,SAASI,GAAmBpK,GAC3B,IAAK,IAAIhyD,EAAIq6D,GAAM16D,QAAQqyD,GAAQ,EAAGx2C,EAAO6+C,GAAM5yD,OAAQzH,EAAIwb,IAAQxb,EACtE,GAAIy5D,GAAUY,GAAMr6D,IAAI25D,OACvB,OAAOU,GAAMr6D,GAWhB,SAASq8D,GAASnnD,EAAOvW,EAAKoP,EAAKkuD,GAClC,IAQItB,EARAiB,EAAU1mD,EAAM2mD,SAChBn5D,EAAUwS,EAAMxS,QAChB45D,EAAW55D,EAAQi4D,KACnBzT,EAAQoV,EAAStK,MAAQ+J,GAA0BO,EAASN,QAASr9D,EAAKoP,EAAKkuD,GAC/ElK,EAAWoH,GAAU,CAACmD,EAASvK,SAAUuK,EAASC,aAAc,IAChEC,EAAoB,SAAVtV,GAAmBoV,EAASG,WACtCrV,EAAQzoD,EACRm/B,EAAQ,GAYZ,GARI0+B,IACHpV,GAASwU,EAAQnX,QAAQ2C,EAAO,UAAWoV,IAI5CpV,GAASwU,EAAQnX,QAAQ2C,EAAOoV,EAAU,MAAQtV,GAG9C0U,EAAQvtD,KAAKN,EAAKpP,EAAKuoD,GAAS,IAAS6K,EAC5C,MAAMpzD,EAAM,QAAUoP,EAAM,uCAAyCgkD,EAAW,IAAM7K,EAGvF,IAAKyT,EAAOvT,EAAOuT,EAAO5sD,EAAK4sD,GAAQiB,EAAQt4D,IAAIq3D,EAAM5I,EAAU7K,GAClEppB,EAAMl0B,KAAK+wD,GAOZ,OAJIA,IAAS5sD,GAA0B,UAAnBrL,EAAQgxB,QAC3BoK,EAAMl0B,KAAK+wD,GAGL78B,EASR,SAAS4+B,GAAe1B,EAAOl9B,EAAOn/B,EAAKoP,EAAKrL,GAC/C,IAEI0kD,EAAOjwB,EAFP7Q,EAAQ,EACRkP,EAAM,EAkBV,OAfI9yB,EAAQgzB,QAAUoI,EAAMr2B,SAC3B2/C,EAAQkU,GAAcN,EAAO,OAAQl9B,EAAM,GAAI,OAE9CxX,EADoB,IAAjBwX,EAAMr2B,OACD,EAAI2/C,GAEHkU,GAAcN,EAAO,OAAQl9B,EAAM,GAAI,OAASspB,GAAS,EAEnEjwB,EAAOmkC,GAAcN,EAAO,OAAQl9B,EAAMA,EAAMr2B,OAAS,GAAI,OAE5D+tB,EADoB,IAAjBsI,EAAMr2B,OACH0vB,GAECA,EAAOmkC,GAAcN,EAAO,OAAQl9B,EAAMA,EAAMr2B,OAAS,GAAI,QAAU,GAIzE,CAAC6e,MAAOA,EAAOkP,IAAKA,EAAK6yB,OAAQ,GAAK/hC,EAAQ,EAAIkP,IAG1D,SAASmnC,GAAcznD,EAAO4oB,EAAO72B,EAAK21D,GACzC,IAGI3V,EAAOpnD,EAHP+7D,EAAU1mD,EAAM2mD,SAChBzU,GAASwU,EAAQnX,QAAQ3mB,EAAM,GAAGt5B,MAAOo4D,GACzCzlC,EAAO2G,EAAMA,EAAMr2B,OAAS,GAAGjD,MAGnC,IAAKyiD,EAAQG,EAAOH,GAAS9vB,EAAM8vB,GAAS2U,EAAQt4D,IAAI2jD,EAAO,EAAG2V,GACjE/8D,EAAQoH,EAAIggD,GACRpnD,GAAS,IACZi+B,EAAMj+B,GAAOonD,OAAQ,GAGvB,OAAOnpB,EAGR,SAAS++B,GAAoB3nD,EAAOW,EAAQ+mD,GAC3C,IAGI58D,EAAGwE,EAHHs5B,EAAQ,GACR72B,EAAM,GACNuU,EAAO3F,EAAOpO,OAGlB,IAAKzH,EAAI,EAAGA,EAAIwb,IAAQxb,EACvBwE,EAAQqR,EAAO7V,GACfiH,EAAIzC,GAASxE,EAEb89B,EAAMl0B,KAAK,CACVpF,MAAOA,EACPyiD,OAAO,IAMT,OAAiB,IAATzrC,GAAeohD,EAAqBD,GAAcznD,EAAO4oB,EAAO72B,EAAK21D,GAAzC9+B,EAGrC,IAAIg/B,GAAkB,CACrBvkC,SAAU,SASVwiC,aAAc,SASdrnC,OAAQ,OAERqpC,SAAU,GACVpC,KAAM,CACLmB,QAAQ,EACR9J,MAAM,EACNvhD,OAAO,EACPusD,eAAe,EACfP,YAAY,EACZT,QAAS,cACTiB,eAAgB,IAEjBn/B,MAAO,CACN0rB,UAAU,EAUVpwC,OAAQ,OAER6tC,MAAO,CACN3Y,SAAS,KAKR4uB,GAAatM,GAAWv0C,OAAO,CAClC0K,WAAY,WACXpqB,KAAK89C,oBACLmW,GAAWvzD,UAAU0pB,WAAWhmB,KAAKpE,OAGtC4L,OAAQ,WACP,IAAIoU,EAAKhgB,KACL+F,EAAUia,EAAGja,QACbi4D,EAAOj4D,EAAQi4D,OAASj4D,EAAQi4D,KAAO,IACvCiB,EAAUj/C,EAAGk/C,SAAW,IAAI9W,GAAcD,MAAMpiD,EAAQq6D,SAASI,MAarE,OAVAjE,GAAa,aAAcyB,EAAKnW,OAAQ,cAAe,eACvD0U,GAAa,aAAcyB,EAAKh8D,IAAK,WAAY,aACjDu6D,GAAa,aAAcyB,EAAK5sD,IAAK,WAAY,aAMjDmY,GAAUhK,QAAQy+C,EAAKsC,eAAgBrB,EAAQtX,WAExCsM,GAAWvzD,UAAUkL,OAAO0S,MAAM0B,EAAInM,YAM9CyuB,cAAe,SAAS6uB,GAIvB,OAHIA,QAA2Bx6C,IAAfw6C,EAASt+C,IACxBs+C,EAAWA,EAASt+C,GAEdohD,GAAWvzD,UAAU4hC,cAAcl+B,KAAKpE,KAAMmxD,IAGtDjD,oBAAqB,WACpB,IAUI7qD,EAAG+6B,EAAGvf,EAAMymB,EAAMzlC,EAAM4gE,EAAWC,EAVnC1gD,EAAKhgB,KACLkK,EAAQ8V,EAAG9V,MACX+0D,EAAUj/C,EAAGk/C,SACbn5D,EAAUia,EAAGja,QACbsvD,EAAOtvD,EAAQi4D,KAAK3I,MAAQ,MAC5BrzD,EAAM46D,GACNxrD,EAAMsrD,GACNyB,EAAa,GACb9zD,EAAW,GACXmB,EAAS,GAETm1D,EAAa3gD,EAAGmtC,aAEpB,IAAK9pD,EAAI,EAAGwb,EAAO8hD,EAAW71D,OAAQzH,EAAIwb,IAAQxb,EACjDmI,EAAOyB,KAAK26C,GAAM5nC,EAAI2gD,EAAWt9D,KAGlC,IAAKA,EAAI,EAAGwb,GAAQ3U,EAAMrK,KAAKwK,UAAY,IAAIS,OAAQzH,EAAIwb,IAAQxb,EAClE,GAAI6G,EAAMm0B,iBAAiBh7B,GAI1B,GAHAxD,EAAOqK,EAAMrK,KAAKwK,SAAShH,GAAGxD,KAG1B0pB,GAAUxL,SAASle,EAAK,IAG3B,IAFAwK,EAAShH,GAAK,GAET+6B,EAAI,EAAGkH,EAAOzlC,EAAKiL,OAAQszB,EAAIkH,IAAQlH,EAC3CqiC,EAAY7Y,GAAM5nC,EAAIngB,EAAKu+B,IAC3B+/B,EAAWlxD,KAAKwzD,GAChBp2D,EAAShH,GAAG+6B,GAAKqiC,OAGlBp2D,EAAShH,GAAKmI,EAAOoL,MAAM,GACtB8pD,IACJvC,EAAaA,EAAWl3D,OAAOuE,GAC/Bk1D,GAAc,QAIhBr2D,EAAShH,GAAK,GAIZmI,EAAOV,SACV9I,EAAMD,KAAKC,IAAIA,EAAKwJ,EAAO,IAC3B4F,EAAMrP,KAAKqP,IAAIA,EAAK5F,EAAOA,EAAOV,OAAS,KAGxCqzD,EAAWrzD,SACdqzD,EAAat/C,EAAO,EAAI++C,GAAYO,GAAYz2C,KAAKi2C,IAAUQ,EAAWz2C,KAAKi2C,IAC/E37D,EAAMD,KAAKC,IAAIA,EAAKm8D,EAAW,IAC/B/sD,EAAMrP,KAAKqP,IAAIA,EAAK+sD,EAAWA,EAAWrzD,OAAS,KAGpD9I,EAAM4lD,GAAM5nC,EAAI+9C,GAAOh4D,KAAa/D,EACpCoP,EAAMw2C,GAAM5nC,EAAIi+C,GAAOl4D,KAAaqL,EAGpCpP,EAAMA,IAAQ46D,IAAeqC,EAAQnX,QAAQ97B,KAAKC,MAAOopC,GAAQrzD,EACjEoP,EAAMA,IAAQsrD,IAAeuC,EAAQlX,MAAM/7B,KAAKC,MAAOopC,GAAQ,EAAIjkD,EAGnE4O,EAAGhe,IAAMD,KAAKC,IAAIA,EAAKoP,GACvB4O,EAAG5O,IAAMrP,KAAKqP,IAAIpP,EAAM,EAAGoP,GAG3B4O,EAAG4gD,OAAS,GACZ5gD,EAAG6gD,YAAc,CAChBhhE,KAAMs+D,EACN9zD,SAAUA,EACVmB,OAAQA,IAIV6iD,WAAY,WACX,IAWIhrD,EAAGwb,EAAM4hD,EAXTzgD,EAAKhgB,KACLgC,EAAMge,EAAGhe,IACToP,EAAM4O,EAAG5O,IACTrL,EAAUia,EAAGja,QACbm7B,EAAWn7B,EAAQo7B,MACnBw+B,EAAW55D,EAAQi4D,KACnBG,EAAan+C,EAAG6gD,YAChB1/B,EAAQ,GACRm+B,EAAWt/C,EAAG8gD,iBAAiB9+D,GAC/Bya,EAASykB,EAASzkB,OAClB2hD,EAAer4D,EAAQq4D,aAqB3B,IAjBCD,EADc,SAAX1hD,GAAiC,SAAXA,GAAsC,WAAjB2hD,EACjCD,EAAWt+D,KACH,WAAX4c,EACG0hD,EAAW3yD,OAEXk0D,GAAS1/C,EAAIhe,EAAKoP,EAAKkuD,GAGd,UAAnBv5D,EAAQgxB,QAAsBonC,EAAWrzD,SAC5C9I,EAAMm8D,EAAW,GACjB/sD,EAAM+sD,EAAWA,EAAWrzD,OAAS,IAItC9I,EAAM4lD,GAAM5nC,EAAI+9C,GAAOh4D,KAAa/D,EACpCoP,EAAMw2C,GAAM5nC,EAAIi+C,GAAOl4D,KAAaqL,EAG/B/N,EAAI,EAAGwb,EAAOs/C,EAAWrzD,OAAQzH,EAAIwb,IAAQxb,EACjDo9D,EAAYtC,EAAW96D,GACnBo9D,GAAaz+D,GAAOy+D,GAAarvD,GACpC+vB,EAAMl0B,KAAKwzD,GAsBb,OAlBAzgD,EAAGhe,IAAMA,EACTge,EAAG5O,IAAMA,EAKT4O,EAAG+gD,MAAQpB,EAAStK,OAASn0B,EAAS2rB,SACnCuS,GAA0BO,EAASN,QAASr/C,EAAGhe,IAAKge,EAAG5O,IAAKkuD,GAC5DE,GAA2Bx/C,EAAImhB,EAAMr2B,OAAQ60D,EAASN,QAASr/C,EAAGhe,IAAKge,EAAG5O,MAC7E4O,EAAGghD,WAAc9/B,EAASopB,MAAM3Y,SAAwB,SAAb3xB,EAAG+gD,MAC3CtB,GAAmBz/C,EAAG+gD,YADwCpqD,EAEjEqJ,EAAG4gD,OAAS1C,GAAiBl+C,EAAG6gD,YAAYhhE,KAAMmC,EAAKoP,EAAKgtD,GAC5Dp+C,EAAGihD,SAAWlB,GAAe//C,EAAG4gD,OAAQz/B,EAAOn/B,EAAKoP,EAAKrL,GAErDm7B,EAASziB,SACZ0iB,EAAM1iB,UAGAyhD,GAAoBlgD,EAAImhB,EAAOnhB,EAAGghD,aAG1CvsB,iBAAkB,SAASvxC,EAAOmqB,GACjC,IAAIrN,EAAKhgB,KACLi/D,EAAUj/C,EAAGk/C,SACbr/D,EAAOmgB,EAAG9V,MAAMrK,KAChB8/D,EAAW3/C,EAAGja,QAAQi4D,KACtBxzD,EAAQ3K,EAAK2L,QAAUtI,EAAQrD,EAAK2L,OAAOV,OAASjL,EAAK2L,OAAOtI,GAAS,GACzE2E,EAAQhI,EAAKwK,SAASgjB,GAAcxtB,KAAKqD,GAK7C,OAHIqmB,GAAUxL,SAASlW,KACtB2C,EAAQwV,EAAGsiB,cAAcz6B,IAEtB83D,EAASuB,cACLjC,EAAQpX,OAAOkX,GAAY/+C,EAAIxV,GAAQm1D,EAASuB,eAEnC,kBAAV12D,EACHA,EAEDy0D,EAAQpX,OAAOkX,GAAY/+C,EAAIxV,GAAQm1D,EAASW,eAAea,WAOvEC,mBAAoB,SAASpD,EAAM96D,EAAOi+B,EAAO0mB,GAChD,IAAI7nC,EAAKhgB,KACLi/D,EAAUj/C,EAAGk/C,SACbn5D,EAAUia,EAAGja,QACb4hD,EAAU5hD,EAAQi4D,KAAKsC,eACvBe,EAAc1Z,EAAQ3nC,EAAG+gD,OACzBd,EAAYjgD,EAAGghD,WACfM,EAAc3Z,EAAQsY,GACtBlU,EAAO5qB,EAAMj+B,GACbg+B,EAAWn7B,EAAQo7B,MACnBmpB,EAAQ2V,GAAaqB,GAAevV,GAAQA,EAAKzB,MACjD9/C,EAAQy0D,EAAQpX,OAAOmW,EAAMnW,IAAkByC,EAAQgX,EAAcD,IACrEE,EAAiBjX,EAAQppB,EAASopB,MAAQppB,EAASqpB,MACnDiX,EAAYhF,GAAU,CACzB+E,EAAenjD,SACfmjD,EAAehS,aACfruB,EAAS9iB,SACT8iB,EAASquB,eAGV,OAAOiS,EAAYA,EAAUh3D,EAAOtH,EAAOi+B,GAAS32B,GAGrD8kD,qBAAsB,SAASnuB,GAC9B,IACI99B,EAAGwb,EADHrT,EAAS,GAGb,IAAKnI,EAAI,EAAGwb,EAAOsiB,EAAMr2B,OAAQzH,EAAIwb,IAAQxb,EAC5CmI,EAAOyB,KAAKjN,KAAKohE,mBAAmBjgC,EAAM99B,GAAGwE,MAAOxE,EAAG89B,IAGxD,OAAO31B,GAMRi2D,kBAAmB,SAASzD,GAC3B,IAAIh+C,EAAKhgB,KACLmqD,EAAUnqC,EAAGihD,SACbn6B,EAAM63B,GAAc3+C,EAAG4gD,OAAQ,OAAQ5C,EAAM,OACjD,OAAOh+C,EAAGuc,oBAAoB4tB,EAAQxgC,MAAQmd,GAAOqjB,EAAQuB,SAG9D3wB,iBAAkB,SAASlzB,EAAO3E,EAAOmqB,GACxC,IAAIrN,EAAKhgB,KACLg+D,EAAO,KAUX,QARcrnD,IAAVzT,QAAwCyT,IAAjB0W,IAC1B2wC,EAAOh+C,EAAG6gD,YAAYx2D,SAASgjB,GAAcnqB,IAGjC,OAAT86D,IACHA,EAAOpW,GAAM5nC,EAAInY,IAGL,OAATm2D,EACH,OAAOh+C,EAAGyhD,kBAAkBzD,IAI9B/lC,gBAAiB,SAAS/0B,GACzB,IAAIi+B,EAAQnhC,KAAKg4B,WACjB,OAAO90B,GAAS,GAAKA,EAAQi+B,EAAMr2B,OAClC9K,KAAKyhE,kBAAkBtgC,EAAMj+B,GAAO2E,OACpC,MAGFwpD,iBAAkB,SAASlO,GAC1B,IAAInjC,EAAKhgB,KACLmqD,EAAUnqC,EAAGihD,SACbn6B,EAAM9mB,EAAGuxC,mBAAmBpO,GAASgH,EAAQuB,OAASvB,EAAQtxB,IAC9DmlC,EAAOW,GAAc3+C,EAAG4gD,OAAQ,MAAO95B,EAAK,QAGhD,OAAO9mB,EAAGk/C,SAASlX,QAAQgW,IAM5B0D,cAAe,SAASl3D,GACvB,IAAIwV,EAAKhgB,KACLq0D,EAAYr0C,EAAGja,QAAQo7B,MACvBwgC,EAAiB3hD,EAAGlgB,IAAIg3C,YAAYtsC,GAAO3I,MAC3C0xB,EAAQhK,GAAUg5B,UAAUviC,EAAGga,eAAiBq6B,EAAU1H,YAAc0H,EAAU3H,aAClFiE,EAAc5uD,KAAK2R,IAAI6f,GACvBq9B,EAAc7uD,KAAK4R,IAAI4f,GACvBquC,EAAenF,GAAiBpI,EAAUrtC,SAAUV,EAAclX,OAAO8W,iBAE7E,MAAO,CACNtU,EAAI+vD,EAAiBhR,EAAgBiR,EAAehR,EACpD5pD,EAAI26D,EAAiB/Q,EAAgBgR,EAAejR,IAQtDkR,cAAe,SAASr3D,GACvB,OAAOxK,KAAK0hE,cAAcl3D,GAAOoH,GAMlCkvD,iBAAkB,SAASgB,GAC1B,IAAI9hD,EAAKhgB,KACL2/D,EAAW3/C,EAAGja,QAAQi4D,KACtBsC,EAAiBX,EAASW,eAG1BzY,EAASyY,EAAeX,EAAStK,OAASiL,EAAevD,YACzDgF,EAAe/hD,EAAGohD,mBAAmBU,EAAa,EAAG5B,GAAoBlgD,EAAI,CAAC8hD,GAAc9hD,EAAGghD,YAAanZ,GAC5G1jC,EAAOnE,EAAG0hD,cAAcK,GACxBzC,EAAWv9D,KAAKmN,MAAM8Q,EAAGga,eAAiBha,EAAGne,MAAQsiB,EAAKvS,EAAIoO,EAAGpe,OAASuiB,EAAKnd,GAMnF,OAJIgZ,EAAGja,QAAQgzB,QACdumC,IAGMA,EAAW,EAAIA,EAAW,KAK/B0C,GAAc7B,GAClBI,GAAW5L,UAAYqN,GAEvB,IAAIj0C,GAAS,CACZk0C,SAAU7N,GACVnzC,OAAQi2C,GACRlO,YAAaiP,GACbiK,aAAclH,GACdgD,KAAMuC,IAGH4B,GAAU,CACbhB,SAAU,yBACVpE,YAAa,gBACbG,OAAQ,YACRC,OAAQ,SACRC,KAAM,KACNC,IAAK,QACLC,KAAM,KACNC,MAAO,WACPC,QAAS,cACTC,KAAM,QAGPrV,GAAcD,MAAMF,SAA2B,oBAAX34C,EAAwB,CAC3D8yD,IAAK,SAELza,QAAS,WACR,OAAOwa,IAGRva,MAAO,SAAS//C,EAAOggD,GAMtB,MALqB,kBAAVhgD,GAAwC,kBAAXggD,EACvChgD,EAAQyH,EAAOzH,EAAOggD,GACVhgD,aAAiByH,IAC7BzH,EAAQyH,EAAOzH,IAETA,EAAM2R,UAAY3R,EAAMw6D,UAAY,MAG5Cxa,OAAQ,SAASmW,EAAMnW,GACtB,OAAOv4C,EAAO0uD,GAAMnW,OAAOA,IAG5BlhD,IAAK,SAASq3D,EAAMsE,EAAQjN,GAC3B,OAAO/lD,EAAO0uD,GAAMr3D,IAAI27D,EAAQjN,GAAMgN,WAGvC3wD,KAAM,SAASN,EAAKpP,EAAKqzD,GACxB,OAAO/lD,EAAO8B,GAAKM,KAAKpC,EAAOtN,GAAMqzD,IAGtCvN,QAAS,SAASkW,EAAM3I,EAAMwK,GAE7B,OADA7B,EAAO1uD,EAAO0uD,GACD,YAAT3I,EACI2I,EAAK8B,WAAWD,GAASwC,UAE1BrE,EAAKlW,QAAQuN,GAAMgN,WAG3Bta,MAAO,SAASiW,EAAM3I,GACrB,OAAO/lD,EAAO0uD,GAAMjW,MAAMsN,GAAMgN,WAWjCra,QAAS,SAASgW,GACjB,OAAO1uD,EAAO0uD,KAEZ,IAEJ13C,EAAcR,KAAK,SAAU,CAC5BlZ,QAAS,CACR21D,OAAQ,CACPC,WAAW,MAKd,IAAIC,GAAU,CACbl4D,QAAS,SAASkS,GACjB,IAAIvZ,EAAQuZ,EAAO/Y,KACfwG,EAAQuS,EAAOvS,MACf4jB,EAAO5jB,EAAMokB,eAAeprB,GAC5Bw/D,EAAU50C,GAAQ5jB,EAAMm0B,iBAAiBn7B,GACzC6K,EAAU20D,GAAW50C,EAAKvjB,QAAQoqB,WAAc,GAChD7pB,EAASiD,EAAOjD,QAAU,EAE9B,OAAQA,EAAgB,SAAS6Z,EAAOthB,GACvC,OAAQA,EAAIyH,GAAUiD,EAAO1K,GAAGhC,OAAU,MAD1B,MAKlBshE,SAAU,SAASlmD,GAClB,IAAIkmD,EAAWlmD,EAAOkmD,SAClBjhE,EAAIihE,EAAWA,EAASjhE,EAAI,KAC5BC,EAAIghE,EAAWA,EAAShhE,EAAI,KAEhC,OAAI4nB,GAAU1L,QAAQ8kD,GACd,SAASh+C,EAAOthB,GACtB,OAAOs/D,EAASt/D,IAIX,SAASshB,GACf,MAAO,CACNjjB,EAAS,OAANA,EAAaijB,EAAMjjB,EAAIA,EAC1BC,EAAS,OAANA,EAAagjB,EAAMhjB,EAAIA,MAO9B,SAASihE,GAAW51B,EAAI9pC,EAAOsuB,GAC9B,IAEI9U,EAFA5L,EAAQk8B,EAAGxiB,QAAU,GACrB9mB,EAAOoN,EAAMpN,KAOjB,QAJaiT,IAATjT,IACHA,IAASoN,EAAMrO,kBAGH,IAATiB,GAA2B,OAATA,EACrB,OAAO,EAGR,IAAa,IAATA,EACH,MAAO,SAIR,GADAgZ,EAASpE,WAAW5U,EAAM,IACtBsa,SAAStB,IAAW3a,KAAKmN,MAAMwN,KAAYA,EAK9C,MAJgB,MAAZhZ,EAAK,IAA0B,MAAZA,EAAK,KAC3BgZ,EAASxZ,EAAQwZ,KAGdA,IAAWxZ,GAASwZ,EAAS,GAAKA,GAAU8U,IAIzC9U,EAGR,OAAQhZ,GAER,IAAK,SACJ,MAAO,QACR,IAAK,MACJ,MAAO,MACR,IAAK,OACJ,MAAO,SAER,IAAK,SACL,IAAK,QACL,IAAK,MACJ,OAAOA,EAER,QACC,OAAO,GAIT,SAASm/D,GAAsBpmD,GAC9B,IAIIjb,EAJAsP,EAAQ2L,EAAOuwB,GAAGxiB,QAAU,GAC5BjS,EAAQkE,EAAOuwB,GAAGrL,QAAU,GAC5Bj+B,EAAO+Y,EAAO/Y,KACdgZ,EAAS,KAGb,GAAIsB,SAASta,GACZ,OAAO,KAiBR,GAVa,UAATA,EACHgZ,OAA+B/F,IAAtB7F,EAAMgyD,YAA4BvqD,EAAMxX,OAAS+P,EAAMgyD,YAC7C,QAATp/D,EACVgZ,OAA4B/F,IAAnB7F,EAAMiyD,SAAyBxqD,EAAMzX,IAAMgQ,EAAMiyD,cAC5BpsD,IAApB7F,EAAMkyD,UAChBtmD,EAAS5L,EAAMkyD,UACLzqD,EAAMwhB,eAChBrd,EAASnE,EAAMwhB,qBAGDpjB,IAAX+F,GAAmC,OAAXA,EAAiB,CAC5C,QAAiB/F,IAAb+F,EAAOhb,QAAgCiV,IAAb+F,EAAO/a,EACpC,OAAO+a,EAGR,GAAI6M,GAAUvL,SAAStB,GAEtB,OADAlb,EAAa+W,EAAMyhB,eACZ,CACNt4B,EAAGF,EAAakb,EAAS,KACzB/a,EAAGH,EAAa,KAAOkb,GAK1B,OAAO,KAGR,SAASumD,GAAwBxmD,GAChC,IAKIkN,EAAOkP,EAAKyB,EAAQj3B,EAAGshB,EALvBpM,EAAQkE,EAAOuwB,GAAGrL,OAClB57B,EAAUwS,EAAMxS,QAChB+E,EAASyN,EAAMrO,MAAMrK,KAAK2L,OAAOV,OACjCpH,EAAO+Y,EAAO/Y,KACdgZ,EAAS,GAGb,IAAK5R,EACJ,OAAO,KAMR,IAHA6e,EAAQ5jB,EAAQo7B,MAAM1iB,QAAUlG,EAAMnH,IAAMmH,EAAMvW,IAClD62B,EAAM9yB,EAAQo7B,MAAM1iB,QAAUlG,EAAMvW,IAAMuW,EAAMnH,IAChDkpB,EAAS/hB,EAAMksB,yBAAyB,EAAG9a,GACtCtmB,EAAI,EAAGA,EAAIyH,IAAUzH,EACzBshB,EAAiB,UAATjhB,GAA6B,QAATA,EACzB6U,EAAMksB,yBAAyBphC,EAAY,UAATK,EAAmBimB,EAAQkP,GAC7DtgB,EAAM4jD,gBAAgB94D,GACrB0C,EAAQizB,UAAUkK,WACrBve,EAAMu+C,GAAK5oC,EAAO54B,EAClBijB,EAAMw+C,GAAK7oC,EAAO34B,EAClBgjB,EAAM4O,MAAQhb,EAAMyhD,cAAc32D,GAAKtB,KAAKyR,GAAK,GAElDkJ,EAAOzP,KAAK0X,GAEb,OAAOjI,EAGR,SAAS0mD,GAAgB3mD,GACxB,IAAIlE,EAAQkE,EAAOuwB,GAAGrL,QAAU,GAEhC,OAAIppB,EAAMksB,yBACFw+B,GAAwBxmD,GAEzBomD,GAAsBpmD,GAG9B,SAAS4mD,GAAc7jD,EAAStc,EAAOs/D,GACtC,IAGI9lD,EAHAD,EAAS+C,EAAQtc,GACjBQ,EAAO+Y,EAAO/Y,KACd4/D,EAAU,CAACpgE,GAGf,IAAKs/D,EACJ,OAAO9+D,EAGR,OAAgB,IAATA,IAA6C,IAA3B4/D,EAAQtgE,QAAQU,GAAc,CACtD,IAAKsa,SAASta,GACb,OAAOA,EAIR,GADAgZ,EAAS8C,EAAQ9b,IACZgZ,EACJ,OAAO,EAGR,GAAIA,EAAOgmD,QACV,OAAOh/D,EAGR4/D,EAAQr2D,KAAKvJ,GACbA,EAAOgZ,EAAOhZ,KAGf,OAAO,EAGR,SAAS6/D,GAAa9mD,GACrB,IAAI/Y,EAAO+Y,EAAO/Y,KACdhE,EAAO,UAEX,OAAa,IAATgE,EACI,MAGHsa,SAASta,KACbhE,EAAO,YAGD+iE,GAAQ/iE,GAAM+c,IAGtB,SAAS+mD,GAAW7+C,GACnB,OAAOA,IAAUA,EAAMqQ,KAGxB,SAASyuC,GAAS3jE,EAAK4jE,EAAQC,EAAQC,EAAMC,GAC5C,IAAIxgE,EAAG6/D,EAAIC,EAAIlyD,EAEf,GAAK2yD,GAASC,EAAd,CAMA,IADA/jE,EAAIsD,OAAOsgE,EAAO,GAAGhiE,EAAGgiE,EAAO,GAAG/hE,GAC7B0B,EAAI,EAAGA,EAAIugE,IAAQvgE,EACvBkmB,GAAUnc,OAAO5J,OAAO1D,EAAK4jE,EAAOrgE,EAAI,GAAIqgE,EAAOrgE,IAGpD,QAAwBsT,IAApBgtD,EAAO,GAAGpwC,MAcd,IAHAzzB,EAAI0D,OAAOmgE,EAAOE,EAAO,GAAGniE,EAAGiiE,EAAOE,EAAO,GAAGliE,GAG3C0B,EAAIwgE,EAAO,EAAGxgE,EAAI,IAAKA,EAC3BkmB,GAAUnc,OAAO5J,OAAO1D,EAAK6jE,EAAOtgE,GAAIsgE,EAAOtgE,EAAI,IAAI,QAXvD,IAHA6/D,EAAKS,EAAO,GAAGT,GACfC,EAAKQ,EAAO,GAAGR,GACflyD,EAAIlP,KAAK0R,KAAK1R,KAAKiP,IAAI2yD,EAAO,GAAGjiE,EAAIwhE,EAAI,GAAKnhE,KAAKiP,IAAI2yD,EAAO,GAAGhiE,EAAIwhE,EAAI,IACpE9/D,EAAIwgE,EAAO,EAAGxgE,EAAI,IAAKA,EAC3BvD,EAAI8jB,IAAIs/C,EAAIC,EAAIlyD,EAAG0yD,EAAOtgE,GAAGkwB,MAAOowC,EAAOtgE,EAAI,GAAGkwB,OAAO,IAc5D,SAASuwC,GAAOhkE,EAAKiO,EAAQg2D,EAAQn6C,EAAM5V,EAAO4wC,GACjD,IAMIvhD,EAAGwb,EAAM3b,EAAO8gE,EAAIC,EAAIC,EAAIC,EAAIC,EANhC5yC,EAAQzjB,EAAOjD,OACfg0D,EAAOl1C,EAAK8K,SACZgvC,EAAS,GACTC,EAAS,GACTC,EAAO,EACPC,EAAO,EAKX,IAFA/jE,EAAIyC,YAECc,EAAI,EAAGwb,EAAO2S,EAAOnuB,EAAIwb,IAAQxb,EACrCH,EAAQG,EAAImuB,EACZwyC,EAAKj2D,EAAO7K,GAAO7B,MACnB4iE,EAAKF,EAAOC,EAAI9gE,EAAO0mB,GACvBs6C,EAAKV,GAAWQ,GAChBG,EAAKX,GAAWS,GAEZrf,QAAuBjuC,IAAfytD,GAA4BF,IACvCE,EAAa/gE,EAAI,EACjBwb,EAAO2S,EAAQ4yC,GAGZF,GAAMC,GACTP,EAAOF,EAAOz2D,KAAK+2D,GACnBH,EAAOF,EAAO12D,KAAKg3D,IACTL,GAAQC,IACb/E,GAMAoF,GACHR,EAAOz2D,KAAK+2D,GAETG,GACHR,EAAO12D,KAAKg3D,KATbR,GAAS3jE,EAAK4jE,EAAQC,EAAQC,EAAMC,GACpCD,EAAOC,EAAO,EACdH,EAAS,GACTC,EAAS,KAYZF,GAAS3jE,EAAK4jE,EAAQC,EAAQC,EAAMC,GAEpC/jE,EAAI+jB,YACJ/jB,EAAI0C,UAAYwR,EAChBlU,EAAI4D,OAGL,IAAI2gE,GAAgB,CACnB73D,GAAI,SAEJ83D,oBAAqB,SAASp6D,EAAOnE,GACpC,IAGI+nB,EAAMzqB,EAAG2pC,EAAIvwB,EAHb+U,GAAStnB,EAAMrK,KAAKwK,UAAY,IAAIS,OACpC03D,EAAYz8D,EAAQy8D,UACpBhjD,EAAU,GAGd,IAAKnc,EAAI,EAAGA,EAAImuB,IAASnuB,EACxByqB,EAAO5jB,EAAMokB,eAAejrB,GAC5B2pC,EAAKlf,EAAKvjB,QACVkS,EAAS,KAELuwB,GAAMA,EAAGxiB,QAAUwiB,aAAcxsC,GAASgN,OAC7CiP,EAAS,CACRimD,QAASx4D,EAAMm0B,iBAAiBh7B,GAChCK,KAAMk/D,GAAW51B,EAAI3pC,EAAGmuB,GACxBtnB,MAAOA,EACP8iC,GAAIA,IAINlf,EAAKy2C,QAAU9nD,EACf+C,EAAQvS,KAAKwP,GAGd,IAAKpZ,EAAI,EAAGA,EAAImuB,IAASnuB,EACxBoZ,EAAS+C,EAAQnc,GACZoZ,IAILA,EAAO/Y,KAAO2/D,GAAc7jD,EAASnc,EAAGm/D,GACxC/lD,EAAOkmD,SAAWS,GAAgB3mD,GAClCA,EAAOsnD,OAASR,GAAa9mD,KAI/B+nD,mBAAoB,SAASt6D,GAC5B,IAEI4jB,EAAMzqB,EAAG2pC,EAAIpjB,EAAM7b,EAAQg2D,EAAQ/vD,EAFnCymB,EAAWvwB,EAAMq4B,gCACjBziC,EAAMoK,EAAMpK,IAGhB,IAAKuD,EAAIo3B,EAAS3vB,OAAS,EAAGzH,GAAK,IAAKA,EACvCyqB,EAAO2M,EAASp3B,GAAGkhE,QAEdz2C,GAASA,EAAK40C,UAInB11B,EAAKlf,EAAKkf,GACVpjB,EAAOojB,EAAG3rC,MACV0M,EAASi/B,EAAGrY,WAAa,GACzBovC,EAASj2C,EAAKi2C,OACd/vD,EAAQ4V,EAAKnnB,iBAAmB6jB,EAAclX,OAAO2W,aAEjDg+C,GAAU/vD,GAASjG,EAAOjD,SAC7Bye,GAAUnc,OAAO0X,SAAShlB,EAAKoK,EAAM6rB,WACrC+tC,GAAOhkE,EAAKiO,EAAQg2D,EAAQn6C,EAAM5V,EAAOg5B,EAAGlY,OAC5CvL,GAAUnc,OAAO4X,WAAWllB,OAM5B2kE,GAAiBl7C,GAAUV,IAAIX,cAC/Bw8C,GAASn7C,GAAU7L,KACnBinD,GAAmBp7C,GAAUtL,eAgGjC,SAAS2mD,GAAYC,EAAW79C,GAC/B,OAAO69C,EAAUC,eAAiBD,EAAUE,SAAW/9C,EACtDA,EACA69C,EAAUE,SAjGZz+C,EAAcR,KAAK,SAAU,CAC5B2X,OAAQ,CACPwF,SAAS,EACTrH,SAAU,MACVtT,MAAO,SACPkf,WAAW,EACX/oB,SAAS,EACTrC,OAAQ,IAGRwhB,QAAS,SAAS30B,EAAG40B,GACpB,IAAI36B,EAAQ26B,EAAWxQ,aACnB23C,EAAKhlE,KAAKkK,MACV4jB,EAAOk3C,EAAG12C,eAAeprB,GAG7B4qB,EAAKxD,OAAyB,OAAhBwD,EAAKxD,QAAmB06C,EAAGnlE,KAAKwK,SAASnH,GAAOonB,OAAS,KAGvE06C,EAAGp5D,UAGJswC,QAAS,KACT+oB,QAAS,KAETz5D,OAAQ,CACPu5D,SAAU,GACVjvC,QAAS,GAYT4H,eAAgB,SAASxzB,GACxB,IAAIG,EAAWH,EAAMrK,KAAKwK,SACtBtE,EAAUmE,EAAMnE,QAAQ03B,QAAU,GAClCqnC,EAAgB/+D,EAAQyF,QAAUzF,EAAQyF,OAAOs5D,cAErD,OAAO56D,EAAMi1C,yBAAyB70C,KAAI,SAASwjB,GAClD,IAAIzhB,EAAQyhB,EAAK6P,WAAW5N,SAAS+0C,EAAgB,OAAInuD,GAEzD,MAAO,CACN5H,KAAM1E,EAASyjB,EAAK5qB,OAAOsH,MAC3BhI,UAAW6J,EAAM5J,gBACjB6nB,QAASpgB,EAAMm0B,iBAAiBvQ,EAAK5qB,OACrC+xB,QAAS5oB,EAAM8nB,eACf+wC,SAAU74D,EAAM+nB,WAChBe,eAAgB9oB,EAAMgoB,iBACtBxB,SAAUxmB,EAAMioB,gBAChB1xB,UAAWyJ,EAAM/K,YACjBoB,YAAa2J,EAAM1J,YACnB+yB,WAAYrpB,EAAMqpB,WAClB1R,SAAU3X,EAAM2X,SAGhBqJ,aAAcS,EAAK5qB,SAElBlD,SAKNg9B,eAAgB,SAAS9yB,GACxB,IAEI7G,EAAGwb,EAAMoe,EAAUC,EAFnBC,EAAOC,SAAShxB,cAAc,MAC9B/B,EAAWH,EAAMrK,KAAKwK,SAK1B,IAFA8yB,EAAKE,aAAa,QAASnzB,EAAMsC,GAAK,WAEjCnJ,EAAI,EAAGwb,EAAOxU,EAASS,OAAQzH,EAAIwb,EAAMxb,IAC7C45B,EAAWE,EAAKG,YAAYF,SAAShxB,cAAc,OACnD8wB,EAAeD,EAASK,YAAYF,SAAShxB,cAAc,SAC3D8wB,EAAa7wB,MAAM5J,gBAAkB4H,EAAShH,GAAGZ,gBAC7C4H,EAAShH,GAAGmH,OACfyyB,EAASK,YAAYF,SAASG,eAAelzB,EAAShH,GAAGmH,QAI3D,OAAO2yB,EAAKK,aAmBd,IAAI2nC,GAASr6C,GAAapL,OAAO,CAEhC0K,WAAY,SAASmX,GACpB,IAAIvhB,EAAKhgB,KACTupB,GAAU7J,OAAOM,EAAIuhB,GAGrBvhB,EAAGolD,eAAiB,GAKpBplD,EAAGqlD,aAAe,KAGlBrlD,EAAGslD,cAAe,GAOnBlY,aAAcsX,GACd94D,OAAQ,SAAS0yB,EAAUC,EAAW8uB,GACrC,IAAIrtC,EAAKhgB,KA0BT,OAvBAggB,EAAGotC,eAGHptC,EAAGse,SAAWA,EACdte,EAAGue,UAAYA,EACfve,EAAGqtC,QAAUA,EAGbrtC,EAAG8tC,sBACH9tC,EAAG+tC,gBACH/tC,EAAGguC,qBAEHhuC,EAAGulD,oBACHvlD,EAAGwlD,cACHxlD,EAAGylD,mBAGHzlD,EAAG2uC,YACH3uC,EAAG4uC,MACH5uC,EAAG6uC,WAEH7uC,EAAGgvC,cAEIhvC,EAAG6jB,SAEXmrB,YAAa0V,GAIb5W,oBAAqB4W,GACrB3W,cAAe,WACd,IAAI/tC,EAAKhgB,KAELggB,EAAGga,gBAENha,EAAGne,MAAQme,EAAGse,SACdte,EAAGpf,KAAO,EACVof,EAAGnf,MAAQmf,EAAGne,QAEdme,EAAGpe,OAASoe,EAAGue,UAGfve,EAAGlf,IAAM,EACTkf,EAAGjf,OAASif,EAAGpe,QAIhBoe,EAAG4lC,YAAc,EACjB5lC,EAAG6lC,WAAa,EAChB7lC,EAAG8lC,aAAe,EAClB9lC,EAAG+lC,cAAgB,EAGnB/lC,EAAG6jB,QAAU,CACZhiC,MAAO,EACPD,OAAQ,IAGVosD,mBAAoB0W,GAIpBa,kBAAmBb,GACnBc,YAAa,WACZ,IAAIxlD,EAAKhgB,KACL6kE,EAAY7kD,EAAGja,QAAQyF,QAAU,GACjCk6D,EAAcn8C,GAAUnL,SAASymD,EAAUnnC,eAAgB,CAAC1d,EAAG9V,OAAQ8V,IAAO,GAE9E6kD,EAAUz5D,SACbs6D,EAAcA,EAAYt6D,QAAO,SAASwV,GACzC,OAAOikD,EAAUz5D,OAAOwV,EAAMZ,EAAG9V,MAAMrK,UAIrCmgB,EAAGja,QAAQ0Y,SACdinD,EAAYjnD,UAGbuB,EAAG0lD,YAAcA,GAElBD,iBAAkBf,GAIlB/V,UAAW+V,GACX9V,IAAK,WACJ,IAAI5uC,EAAKhgB,KACLw+B,EAAOxe,EAAGja,QACV8+D,EAAYrmC,EAAKhzB,OACjBy3B,EAAUzE,EAAKyE,QAEfnjC,EAAMkgB,EAAGlgB,IAET6lE,EAAYp8C,GAAUxjB,QAAQ+gB,WAAW+9C,GACzC79C,EAAW2+C,EAAUxhD,KAGrByhD,EAAW5lD,EAAGolD,eAAiB,GAE/BvhC,EAAU7jB,EAAG6jB,QACb7J,EAAeha,EAAGga,eAWtB,GATIA,GACH6J,EAAQhiC,MAAQme,EAAGse,SACnBuF,EAAQjiC,OAASqhC,EAAU,GAAK,IAEhCY,EAAQhiC,MAAQohC,EAAU,GAAK,EAC/BY,EAAQjiC,OAASoe,EAAGue,WAIhB0E,EAAL,CAMA,GAFAnjC,EAAI0mB,KAAOm/C,EAAUvxD,OAEjB4lB,EAAc,CAIjB,IAAI6rC,EAAa7lD,EAAG6lD,WAAa,CAAC,GAC9BC,EAAc,EAElBhmE,EAAIuoB,UAAY,OAChBvoB,EAAI+5C,aAAe,SAEnBtwB,GAAUhL,KAAKyB,EAAG0lD,aAAa,SAAS7nC,EAAYx6B,GACnD,IAAI0hE,EAAWH,GAAYC,EAAW79C,GAClCnlB,EAAQkjE,EAAY/9C,EAAW,EAAKlnB,EAAIg3C,YAAYjZ,EAAW9uB,MAAMlN,OAE/D,IAANwB,GAAWwiE,EAAWA,EAAW/6D,OAAS,GAAKjJ,EAAQ,EAAIgjE,EAAU/uC,QAAU+N,EAAQhiC,SAC1FikE,GAAe9+C,EAAW69C,EAAU/uC,QACpC+vC,EAAWA,EAAW/6D,QAAUzH,EAAI,EAAI,EAAI,IAAM,GAInDuiE,EAASviE,GAAK,CACbzC,KAAM,EACNE,IAAK,EACLe,MAAOA,EACPD,OAAQolB,GAGT6+C,EAAWA,EAAW/6D,OAAS,IAAMjJ,EAAQgjE,EAAU/uC,WAGxD+N,EAAQjiC,QAAUkkE,MAEZ,CACN,IAAIC,EAAWlB,EAAU/uC,QACrBkwC,EAAehmD,EAAGgmD,aAAe,GACjCC,EAAgBjmD,EAAGimD,cAAgB,GACnCC,EAAarB,EAAU/uC,QACvBqwC,EAAkB,EAClBC,EAAmB,EAEvB78C,GAAUhL,KAAKyB,EAAG0lD,aAAa,SAAS7nC,EAAYx6B,GACnD,IAAI0hE,EAAWH,GAAYC,EAAW79C,GAClCyB,EAAYs8C,EAAY/9C,EAAW,EAAKlnB,EAAIg3C,YAAYjZ,EAAW9uB,MAAMlN,MAGzEwB,EAAI,GAAK+iE,EAAmBp/C,EAAW,EAAI++C,EAAWliC,EAAQjiC,SACjEskE,GAAcC,EAAkBtB,EAAU/uC,QAC1CkwC,EAAa/4D,KAAKk5D,GAClBF,EAAch5D,KAAKm5D,GACnBD,EAAkB,EAClBC,EAAmB,GAIpBD,EAAkBpkE,KAAKqP,IAAI+0D,EAAiB19C,GAC5C29C,GAAoBp/C,EAAW++C,EAG/BH,EAASviE,GAAK,CACbzC,KAAM,EACNE,IAAK,EACLe,MAAO4mB,EACP7mB,OAAQolB,MAIVk/C,GAAcC,EACdH,EAAa/4D,KAAKk5D,GAClBF,EAAch5D,KAAKm5D,GACnBviC,EAAQhiC,OAASqkE,EAGlBlmD,EAAGne,MAAQgiC,EAAQhiC,MACnBme,EAAGpe,OAASiiC,EAAQjiC,YA9EnBoe,EAAGne,MAAQgiC,EAAQhiC,MAAQme,EAAGpe,OAASiiC,EAAQjiC,OAAS,GAgF1DitD,SAAU6V,GAGV1qC,aAAc,WACb,MAAiC,QAA1Bh6B,KAAK+F,QAAQ61B,UAAgD,WAA1B57B,KAAK+F,QAAQ61B,UAIxDj7B,KAAM,WACL,IAAIqf,EAAKhgB,KACLw+B,EAAOxe,EAAGja,QACV8+D,EAAYrmC,EAAKhzB,OACjBub,EAAiBT,EAAclX,OAC/B2W,EAAegB,EAAehB,aAC9BsgD,EAAct/C,EAAevmB,SAAS0zB,KACtCoyC,EAAetmD,EAAGpe,OAClBqkE,EAAgBjmD,EAAGimD,cACnBM,EAAcvmD,EAAGne,MACjBgkE,EAAa7lD,EAAG6lD,WAEpB,GAAKrnC,EAAKyE,QAAV,CAIA,IAKIujC,EALA5sB,EAAY6qB,GAAejmC,EAAK3V,IAAK7I,EAAGpf,KAAMof,EAAG6jB,QAAQhiC,OACzD/B,EAAMkgB,EAAGlgB,IACTkrD,EAAY2Z,GAAiBE,EAAU7Z,UAAWjkC,EAAef,kBACjE2/C,EAAYp8C,GAAUxjB,QAAQ+gB,WAAW+9C,GACzC79C,EAAW2+C,EAAUxhD,KAIzBrkB,EAAIuoB,UAAYuxB,EAAUvxB,UAAU,QACpCvoB,EAAI+5C,aAAe,SACnB/5C,EAAI8C,UAAY,GAChB9C,EAAI4C,YAAcsoD,EAClBlrD,EAAI0C,UAAYwoD,EAChBlrD,EAAI0mB,KAAOm/C,EAAUvxD,OAErB,IAAI2wD,EAAWH,GAAYC,EAAW79C,GAClC4+C,EAAW5lD,EAAGolD,eAGdqB,EAAgB,SAAS/kE,EAAGC,EAAGk8B,GAClC,KAAIplB,MAAMssD,IAAaA,GAAY,GAAnC,CAKAjlE,EAAIukB,OAEJ,IAAIzhB,EAAY+hE,GAAiB9mC,EAAWj7B,UAAWyjE,EAAY/kE,aAanE,GAZAxB,EAAI0C,UAAYmiE,GAAiB9mC,EAAWr7B,UAAWujB,GACvDjmB,EAAIm1B,QAAU0vC,GAAiB9mC,EAAW5I,QAASoxC,EAAYlyC,gBAC/Dr0B,EAAIq1B,eAAiBwvC,GAAiB9mC,EAAW1I,eAAgBkxC,EAAYhyC,kBAC7Ev0B,EAAI+yB,SAAW8xC,GAAiB9mC,EAAWhL,SAAUwzC,EAAY/xC,iBACjEx0B,EAAI8C,UAAYA,EAChB9C,EAAI4C,YAAciiE,GAAiB9mC,EAAWn7B,YAAaqjB,GAEvDjmB,EAAIo1B,aAEPp1B,EAAIo1B,YAAYyvC,GAAiB9mC,EAAWqnC,SAAUmB,EAAYjyC,aAG/DywC,GAAaA,EAAUC,cAAe,CAGzC,IAAIvhE,EAASwhE,EAAWhjE,KAAK2kE,MAAQ,EACjCtmC,EAAUwZ,EAAUrxB,MAAM7mB,EAAGqjE,EAAW,GACxC1kC,EAAU1+B,EAAIqlB,EAAW,EAG7BuC,GAAUnc,OAAO2W,UAAUjkB,EAAK+9B,EAAWnI,WAAYnyB,EAAQ68B,EAASC,EAASxC,EAAW7Z,eAG5FlkB,EAAIy3B,SAASqiB,EAAUpxB,WAAW9mB,EAAGqjE,GAAWpjE,EAAGojE,EAAU/9C,GAC3C,IAAdpkB,GACH9C,EAAIy6C,WAAWX,EAAUpxB,WAAW9mB,EAAGqjE,GAAWpjE,EAAGojE,EAAU/9C,GAIjElnB,EAAI0kB,YAGDs1B,EAAW,SAASp4C,EAAGC,EAAGk8B,EAAYspB,GACzC,IAAIwf,EAAe3/C,EAAW,EAC1B4/C,EAAQhtB,EAAUrxB,MAAM7mB,EAAGqjE,EAAW4B,GACtCE,EAAUllE,EAAIglE,EAElB7mE,EAAIg6C,SAASjc,EAAW9uB,KAAM63D,EAAOC,GAEjChpC,EAAWvT,SAEdxqB,EAAIyC,YACJzC,EAAI8C,UAAY,EAChB9C,EAAIsD,OAAOwjE,EAAOC,GAClB/mE,EAAI0D,OAAOo2C,EAAUrxB,MAAMq+C,EAAOzf,GAAY0f,GAC9C/mE,EAAI6D,WAIFmjE,EAAkB,SAASC,EAAWC,GACzC,OAAQxoC,EAAKlW,OACb,IAAK,QACJ,OAAOu8C,EAAU/uC,QAClB,IAAK,MACJ,OAAOixC,EAAYC,EACpB,QACC,OAAQD,EAAYC,EAAYnC,EAAU/uC,SAAW,IAKnDkE,EAAeha,EAAGga,eAErBwsC,EADGxsC,EACM,CACRt4B,EAAGse,EAAGpf,KAAOkmE,EAAgBP,EAAaV,EAAW,IACrDlkE,EAAGqe,EAAGlf,IAAM+jE,EAAU/uC,QACtB5B,KAAM,GAGE,CACRxyB,EAAGse,EAAGpf,KAAOikE,EAAU/uC,QACvBn0B,EAAGqe,EAAGlf,IAAMgmE,EAAgBR,EAAcL,EAAc,IACxD/xC,KAAM,GAIR3K,GAAUV,IAAIC,sBAAsB9I,EAAGlgB,IAAK0+B,EAAKsW,eAEjD,IAAImyB,EAAajgD,EAAW69C,EAAU/uC,QACtCvM,GAAUhL,KAAKyB,EAAG0lD,aAAa,SAAS7nC,EAAYx6B,GACnD,IAAI8jD,EAAYrnD,EAAIg3C,YAAYjZ,EAAW9uB,MAAMlN,MAC7CA,EAAQkjE,EAAY/9C,EAAW,EAAKmgC,EACpCzlD,EAAI8kE,EAAO9kE,EACXC,EAAI6kE,EAAO7kE,EAEfi4C,EAAUxxB,SAASpI,EAAG6jB,QAAQhiC,OAK1Bm4B,EACC32B,EAAI,GAAK3B,EAAIG,EAAQgjE,EAAU/uC,QAAU9V,EAAGpf,KAAOof,EAAG6jB,QAAQhiC,QACjEF,EAAI6kE,EAAO7kE,GAAKslE,EAChBT,EAAOtyC,OACPxyB,EAAI8kE,EAAO9kE,EAAIse,EAAGpf,KAAOkmE,EAAgBP,EAAaV,EAAWW,EAAOtyC,QAE/D7wB,EAAI,GAAK1B,EAAIslE,EAAajnD,EAAGlf,IAAMkf,EAAG6jB,QAAQjiC,SACxDF,EAAI8kE,EAAO9kE,EAAIA,EAAIse,EAAGgmD,aAAaQ,EAAOtyC,MAAQ2wC,EAAU/uC,QAC5D0wC,EAAOtyC,OACPvyB,EAAI6kE,EAAO7kE,EAAIqe,EAAGlf,IAAMgmE,EAAgBR,EAAcL,EAAcO,EAAOtyC,QAG5E,IAAIgzC,EAAQttB,EAAUl4C,EAAEA,GAExB+kE,EAAcS,EAAOvlE,EAAGk8B,GAExB+nC,EAASviE,GAAGzC,KAAOg5C,EAAUpxB,WAAW0+C,EAAOtB,EAASviE,GAAGxB,OAC3D+jE,EAASviE,GAAGvC,IAAMa,EAGlBm4C,EAASotB,EAAOvlE,EAAGk8B,EAAYspB,GAE3BntB,EACHwsC,EAAO9kE,GAAKG,EAAQgjE,EAAU/uC,QAE9B0wC,EAAO7kE,GAAKslE,KAId19C,GAAUV,IAAIQ,qBAAqBrJ,EAAGlgB,IAAK0+B,EAAKsW,iBAMjDqyB,iBAAkB,SAASzlE,EAAGC,GAC7B,IACI0B,EAAG+jE,EAAQC,EADXrnD,EAAKhgB,KAGT,GAAI0B,GAAKse,EAAGpf,MAAQc,GAAKse,EAAGnf,OAASc,GAAKqe,EAAGlf,KAAOa,GAAKqe,EAAGjf,OAG3D,IADAsmE,EAAKrnD,EAAGolD,eACH/hE,EAAI,EAAGA,EAAIgkE,EAAGv8D,SAAUzH,EAG5B,GAFA+jE,EAASC,EAAGhkE,GAER3B,GAAK0lE,EAAOxmE,MAAQc,GAAK0lE,EAAOxmE,KAAOwmE,EAAOvlE,OAASF,GAAKylE,EAAOtmE,KAAOa,GAAKylE,EAAOtmE,IAAMsmE,EAAOxlE,OAEtG,OAAOoe,EAAG0lD,YAAYriE,GAKzB,OAAO,MAQRu3C,YAAa,SAAS3xC,GACrB,IAGIq+D,EAHAtnD,EAAKhgB,KACLw+B,EAAOxe,EAAGja,QACVrG,EAAkB,YAAXuJ,EAAEvJ,KAAqB,QAAUuJ,EAAEvJ,KAG9C,GAAa,cAATA,GACH,IAAK8+B,EAAK0d,UAAY1d,EAAKymC,QAC1B,WAEK,IAAa,UAATvlE,EAKV,OAJA,IAAK8+B,EAAKZ,QACT,OAOF0pC,EAActnD,EAAGmnD,iBAAiBl+D,EAAEvH,EAAGuH,EAAEtH,GAE5B,UAATjC,EACC4nE,GAAe9oC,EAAKZ,SAEvBY,EAAKZ,QAAQx5B,KAAK4b,EAAI/W,EAAEi8B,OAAQoiC,IAG7B9oC,EAAKymC,SAAWqC,IAAgBtnD,EAAGqlD,eAClCrlD,EAAGqlD,cACN7mC,EAAKymC,QAAQ7gE,KAAK4b,EAAI/W,EAAEi8B,OAAQllB,EAAGqlD,cAEpCrlD,EAAGqlD,aAAeiC,GAGf9oC,EAAK0d,SAAWorB,GAEnB9oC,EAAK0d,QAAQ93C,KAAK4b,EAAI/W,EAAEi8B,OAAQoiC,OAMpC,SAASC,GAAyBr9D,EAAOs9D,GACxC,IAAI/pC,EAAS,IAAI0nC,GAAO,CACvBrlE,IAAKoK,EAAMpK,IACXiG,QAASyhE,EACTt9D,MAAOA,IAGRq/B,GAAaK,UAAU1/B,EAAOuzB,EAAQ+pC,GACtCj+B,GAAaC,OAAOt/B,EAAOuzB,GAC3BvzB,EAAMuzB,OAASA,EAGhB,IAAIgqC,GAAgB,CACnBj7D,GAAI,SASJk7D,SAAUvC,GAEVwC,WAAY,SAASz9D,GACpB,IAAIs9D,EAAat9D,EAAMnE,QAAQ03B,OAE3B+pC,GACHD,GAAyBr9D,EAAOs9D,IAIlCpa,aAAc,SAASljD,GACtB,IAAIs9D,EAAat9D,EAAMnE,QAAQ03B,OAC3BA,EAASvzB,EAAMuzB,OAEf+pC,GACHj+C,GAAUhK,QAAQioD,EAAYlhD,EAAclX,OAAOquB,QAE/CA,GACH8L,GAAaK,UAAU1/B,EAAOuzB,EAAQ+pC,GACtC/pC,EAAO13B,QAAUyhE,GAEjBD,GAAyBr9D,EAAOs9D,IAEvB/pC,IACV8L,GAAaG,UAAUx/B,EAAOuzB,UACvBvzB,EAAMuzB,SAIfmqC,WAAY,SAAS19D,EAAOjB,GAC3B,IAAIw0B,EAASvzB,EAAMuzB,OACfA,GACHA,EAAOmd,YAAY3xC,KAKlB4+D,GAASt+C,GAAU7L,KAEvB4I,EAAcR,KAAK,SAAU,CAC5BiW,MAAO,CACNkH,SAAS,EACT9b,UAAW,OACXqgB,WAAW,EACX1R,QAAS,GACT8F,SAAU,MACV7sB,KAAM,GACNqN,OAAQ,OAOV,IAAI0rD,GAAQh9C,GAAapL,OAAO,CAC/B0K,WAAY,SAASmX,GACpB,IAAIvhB,EAAKhgB,KACTupB,GAAU7J,OAAOM,EAAIuhB,GAGrBvhB,EAAGolD,eAAiB,IAKrBhY,aAAcya,GACdj8D,OAAQ,SAAS0yB,EAAUC,EAAW8uB,GACrC,IAAIrtC,EAAKhgB,KA0BT,OAvBAggB,EAAGotC,eAGHptC,EAAGse,SAAWA,EACdte,EAAGue,UAAYA,EACfve,EAAGqtC,QAAUA,EAGbrtC,EAAG8tC,sBACH9tC,EAAG+tC,gBACH/tC,EAAGguC,qBAEHhuC,EAAGulD,oBACHvlD,EAAGwlD,cACHxlD,EAAGylD,mBAGHzlD,EAAG2uC,YACH3uC,EAAG4uC,MACH5uC,EAAG6uC,WAEH7uC,EAAGgvC,cAEIhvC,EAAG6jB,SAGXmrB,YAAa6Y,GAIb/Z,oBAAqB+Z,GACrB9Z,cAAe,WACd,IAAI/tC,EAAKhgB,KAELggB,EAAGga,gBAENha,EAAGne,MAAQme,EAAGse,SACdte,EAAGpf,KAAO,EACVof,EAAGnf,MAAQmf,EAAGne,QAEdme,EAAGpe,OAASoe,EAAGue,UAGfve,EAAGlf,IAAM,EACTkf,EAAGjf,OAASif,EAAGpe,QAIhBoe,EAAG4lC,YAAc,EACjB5lC,EAAG6lC,WAAa,EAChB7lC,EAAG8lC,aAAe,EAClB9lC,EAAG+lC,cAAgB,EAGnB/lC,EAAG6jB,QAAU,CACZhiC,MAAO,EACPD,OAAQ,IAGVosD,mBAAoB6Z,GAIpBtC,kBAAmBsC,GACnBrC,YAAaqC,GACbpC,iBAAkBoC,GAIlBlZ,UAAWkZ,GACXjZ,IAAK,WACJ,IAIIkE,EAAW0G,EAJXx5C,EAAKhgB,KACLw+B,EAAOxe,EAAGja,QACV89B,EAAU7jB,EAAG6jB,QAAU,GACvB7J,EAAeha,EAAGga,eAGjBwE,EAAKyE,SAKV6vB,EAAYvpC,GAAU1L,QAAQ2gB,EAAKzvB,MAAQyvB,EAAKzvB,KAAKjE,OAAS,EAC9D0uD,EAAW1G,EAAYvpC,GAAUxjB,QAAQ+gB,WAAW0X,GAAMtX,WAA4B,EAAfsX,EAAK1I,QAE5E9V,EAAGne,MAAQgiC,EAAQhiC,MAAQm4B,EAAeha,EAAGse,SAAWk7B,EACxDx5C,EAAGpe,OAASiiC,EAAQjiC,OAASo4B,EAAew/B,EAAWx5C,EAAGue,WARzDve,EAAGne,MAAQgiC,EAAQhiC,MAAQme,EAAGpe,OAASiiC,EAAQjiC,OAAS,GAU1DitD,SAAUgZ,GAGV7tC,aAAc,WACb,IAAI8M,EAAM9mC,KAAK+F,QAAQ61B,SACvB,MAAe,QAARkL,GAAyB,WAARA,GAIzBnmC,KAAM,WACL,IAAIqf,EAAKhgB,KACLF,EAAMkgB,EAAGlgB,IACT0+B,EAAOxe,EAAGja,QAEd,GAAKy4B,EAAKyE,QAAV,CAIA,IAQI3E,EAAUypC,EAAQC,EARlBC,EAAW1+C,GAAUxjB,QAAQ+gB,WAAW0X,GACxCtX,EAAa+gD,EAAS/gD,WACtB6R,EAAS7R,EAAa,EAAIsX,EAAK1I,QAC/B9R,EAAW,EACXljB,EAAMkf,EAAGlf,IACTF,EAAOof,EAAGpf,KACVG,EAASif,EAAGjf,OACZF,EAAQmf,EAAGnf,MAGff,EAAI0C,UAAY+mB,GAAUtL,eAAeugB,EAAKwsB,UAAW1kC,EAAclX,OAAO4W,kBAC9ElmB,EAAI0mB,KAAOyhD,EAAS7zD,OAGhB4L,EAAGga,gBACN+tC,EAASnnE,GAASC,EAAQD,GAAQ,EAClConE,EAASlnE,EAAMi4B,EACfuF,EAAWz9B,EAAQD,IAEnBmnE,EAA2B,SAAlBvpC,EAAK5C,SAAsBh7B,EAAOm4B,EAASl4B,EAAQk4B,EAC5DivC,EAASlnE,GAAQC,EAASD,GAAO,EACjCw9B,EAAWv9B,EAASD,EACpBkjB,EAAWjiB,KAAKyR,IAAwB,SAAlBgrB,EAAK5C,UAAuB,GAAM,KAGzD97B,EAAIukB,OACJvkB,EAAIwkB,UAAUyjD,EAAQC,GACtBloE,EAAIkc,OAAOgI,GACXlkB,EAAIuoB,UAAY,SAChBvoB,EAAI+5C,aAAe,SAEnB,IAAI9qC,EAAOyvB,EAAKzvB,KAChB,GAAIwa,GAAU1L,QAAQ9O,GAErB,IADA,IAAIpN,EAAI,EACC0B,EAAI,EAAGA,EAAI0L,EAAKjE,SAAUzH,EAClCvD,EAAIg6C,SAAS/qC,EAAK1L,GAAI,EAAG1B,EAAG28B,GAC5B38B,GAAKulB,OAGNpnB,EAAIg6C,SAAS/qC,EAAM,EAAG,EAAGuvB,GAG1Bx+B,EAAI0kB,cAIN,SAAS0jD,GAA6Bh+D,EAAOi+D,GAC5C,IAAIpsC,EAAQ,IAAI+rC,GAAM,CACrBhoE,IAAKoK,EAAMpK,IACXiG,QAASoiE,EACTj+D,MAAOA,IAGRq/B,GAAaK,UAAU1/B,EAAO6xB,EAAOosC,GACrC5+B,GAAaC,OAAOt/B,EAAO6xB,GAC3B7xB,EAAMk+D,WAAarsC,EAGpB,IAAIssC,GAAe,CAClB77D,GAAI,QASJk7D,SAAUI,GAEVH,WAAY,SAASz9D,GACpB,IAAIi+D,EAAYj+D,EAAMnE,QAAQg2B,MAE1BosC,GACHD,GAA6Bh+D,EAAOi+D,IAItC/a,aAAc,SAASljD,GACtB,IAAIi+D,EAAYj+D,EAAMnE,QAAQg2B,MAC1BqsC,EAAal+D,EAAMk+D,WAEnBD,GACH5+C,GAAUhK,QAAQ4oD,EAAW7hD,EAAclX,OAAO2sB,OAE9CqsC,GACH7+B,GAAaK,UAAU1/B,EAAOk+D,EAAYD,GAC1CC,EAAWriE,QAAUoiE,GAErBD,GAA6Bh+D,EAAOi+D,IAE3BC,IACV7+B,GAAaG,UAAUx/B,EAAOk+D,UACvBl+D,EAAMk+D,cAKZx7D,GAAU,GACV21D,GAAS8B,GACT5mC,GAASgqC,GACT1rC,GAAQssC,GA2CZ,IAAK,IAAIx2D,MA1CTjF,GAAQ21D,OAASA,GACjB31D,GAAQ6wB,OAASA,GACjB7wB,GAAQmvB,MAAQA,GAOhBokB,GAAgB1iC,QAAU8L,GAG1Bi3B,KAEAL,GAAgBmoB,UAAYlgB,GAC5BjI,GAAgBooB,UAAYn9C,GAC5B+0B,GAAgBqoB,iBAAmB98C,GACnCy0B,GAAgBvb,YAAcA,GAC9Bub,GAAgB/yB,kBAAoB2E,GACpCouB,GAAgBt6B,SAAWS,EAC3B65B,GAAgBj2B,QAAUY,GAC1Bq1B,GAAgB3/C,SAAWA,GAC3B2/C,GAAgBsoB,YAAcliC,GAC9B4Z,GAAgB9Y,QAAUkC,GAC1B4W,GAAgBjQ,SAAWA,GAC3BiQ,GAAgBvzC,QAAUujC,GAC1BgQ,GAAgB6M,MAAQiH,GACxB9T,GAAgBuoB,aAAe33B,GAC/BoP,GAAgBwoB,MAAQtgB,GACxBlI,GAAgByoB,QAAU7tB,GAI1BoF,GAAgB1iC,QAAQc,KAAKwP,IAAQ,SAASxV,EAAO7Y,GACpDygD,GAAgBuoB,aAAaz3B,kBAAkBvxC,EAAM6Y,EAAOA,EAAMo8C,cAQrD/nD,GACTA,GAAQ1H,eAAe2M,KAC1BsuC,GAAgBvzC,QAAQyjC,SAASzjC,GAAQiF,KAI3CsuC,GAAgBjQ,SAAS9lB,aAEzB,IAAIvK,GAAMsgC,GAyGV,MAxGsB,qBAAX7iC,SACVA,OAAO/c,MAAQ4/C,IAYhBA,GAAgB5/C,MAAQ4/C,GASxBA,GAAgBglB,OAASv4D,GAAQ6wB,OAAOiqC,SASxCvnB,GAAgB2nB,MAAQl7D,GAAQmvB,MAAM2rC,SAStCvnB,GAAgB0oB,cAAgB1oB,GAAgBvzC,QAUhDuzC,GAAgB2oB,WAAa3oB,GAAgBj2B,QAAQxK,OAAO,IAS5DygC,GAAgB4oB,cAAgB5oB,GAAgB1iC,QAAQrQ,OASxD+yC,GAAgB6oB,cAAgB7oB,GAAgB9Y,QAShD8Y,GAAgB8oB,gBAAkBtT,GAQlCxV,GAAgB1iC,QAAQc,KACvB,CACC,MACA,SACA,WACA,OACA,YACA,QACA,YAED,SAAS2qD,GACR/oB,GAAgB+oB,GAAS,SAASppE,EAAKqpE,GACtC,OAAO,IAAIhpB,GAAgBrgD,EAAKqgD,GAAgB1iC,QAAQ4B,MAAM8pD,GAAO,GAAI,CACxEzpE,KAAMwpE,EAAMj6D,OAAO,GAAGm6D,cAAgBF,EAAMtyD,MAAM,UAM/CiJ,O,oCCvyfP,IAAIwpD,EAAW,EAAQ,QACnBC,EAAkB,EAAQ,QAC1BC,EAAW,EAAQ,QACvB1lE,EAAOC,QAAU,SAAc+D,GAC7B,IAAI2hE,EAAIH,EAASrpE,MACb8K,EAASy+D,EAASC,EAAE1+D,QACpB2+D,EAAO51D,UAAU/I,OACjB5H,EAAQomE,EAAgBG,EAAO,EAAI51D,UAAU,QAAK8C,EAAW7L,GAC7D+tB,EAAM4wC,EAAO,EAAI51D,UAAU,QAAK8C,EAChC+yD,OAAiB/yD,IAARkiB,EAAoB/tB,EAASw+D,EAAgBzwC,EAAK/tB,GAC/D,MAAO4+D,EAASxmE,EAAOsmE,EAAEtmE,KAAW2E,EACpC,OAAO2hE,I,uBCbT,IAAIG,EAAc,EAAQ,QACtBC,EAAU,EAAQ,QAClBC,EAAY,EAAQ,QACpBC,EAAS,EAAQ,QAAiBn3D,EACtC9O,EAAOC,QAAU,SAAUimE,GACzB,OAAO,SAAUC,GACf,IAKI3+D,EALAm+D,EAAIK,EAAUG,GACd/+D,EAAO2+D,EAAQJ,GACf1+D,EAASG,EAAKH,OACdzH,EAAI,EACJyT,EAAS,GAEb,MAAOhM,EAASzH,EACdgI,EAAMJ,EAAK5H,KACNsmE,IAAeG,EAAO1lE,KAAKolE,EAAGn+D,IACjCyL,EAAO7J,KAAK88D,EAAY,CAAC1+D,EAAKm+D,EAAEn+D,IAAQm+D,EAAEn+D,IAG9C,OAAOyL,K,kCClBX,4BAEe,QACb5X,KAAM,aACNC,QAASqO,OACTnO,OAAQ,CAACA,OAAOC,aAAcC,QAC9BC,MAAO,CACLC,aAAc,CACZC,KAAMC,OACNC,QAAS,iBAAO,MAGpBC,KAVa,WAWX,MAAO,CACLC,IAAK,OAGTC,QAfa,WAeH,WACRC,KAAKC,OACH,aACA,SAACC,EAAQC,GACFA,GACH,EAAKC,YAAY,EAAKC,UAAW,EAAKZ,gBAG1C,CAAEa,WAAW,O,uBCxBnB,IAAI2pE,EAAU,EAAQ,QAEtBA,EAAQA,EAAQC,EAAG,QAAS,CAAExmE,KAAM,EAAQ,UAE5C,EAAQ,OAAR,CAAiC,S,qBCLjCG,EAAOC,QACE,SAAUC,GAET,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUJ,QAGnC,IAAID,EAASG,EAAiBE,GAAY,CACzCb,EAAGa,EACHC,GAAG,EACHL,QAAS,IAUV,OANAC,EAAQG,GAAUE,KAAKP,EAAOC,QAASD,EAAQA,EAAOC,QAASG,GAG/DJ,EAAOM,GAAI,EAGJN,EAAOC,QAqCf,OAhCAG,EAAoBI,EAAIN,EAGxBE,EAAoBK,EAAIN,EAGxBC,EAAoBM,EAAI,SAAST,EAAS5E,EAAMsF,GAC3CP,EAAoBQ,EAAEX,EAAS5E,IAClCS,OAAO+E,eAAeZ,EAAS5E,EAAM,CACpCyF,cAAc,EACdC,YAAY,EACZC,IAAKL,KAMRP,EAAoBa,EAAI,SAASjB,GAChC,IAAIW,EAASX,GAAUA,EAAOkB,WAC7B,WAAwB,OAAOlB,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAI,EAAoBM,EAAEC,EAAQ,IAAKA,GAC5BA,GAIRP,EAAoBQ,EAAI,SAASO,EAAQC,GAAY,OAAOtF,OAAOe,UAAUwE,eAAed,KAAKY,EAAQC,IAGzGhB,EAAoBkB,EAAI,SAGjBlB,EAAoBA,EAAoBmB,EAAI,KA9DpD,CAiEC,CAEJC,EACA,SAAUxB,EAAQC,GAQxBD,EAAOC,QAAU,SACfwB,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAIC,EACAC,EAAgBP,EAAmBA,GAAoB,GAGvD5F,SAAc4F,EAAiB1F,QACtB,WAATF,GAA8B,aAATA,IACvBkG,EAAWN,EACXO,EAAgBP,EAAiB1F,SAInC,IAqBIkG,EArBAC,EAAmC,oBAAlBF,EACjBA,EAAcE,QACdF,EA+CJ,GA5CIN,IACFQ,EAAQC,OAAST,EAAiBS,OAClCD,EAAQE,gBAAkBV,EAAiBU,gBAC3CF,EAAQG,WAAY,GAIlBV,IACFO,EAAQI,YAAa,GAInBT,IACFK,EAAQK,SAAWV,GAIjBC,GACFG,EAAO,SAAUO,GAEfA,EACEA,GACCrG,KAAKsG,QAAUtG,KAAKsG,OAAOC,YAC3BvG,KAAKwG,QAAUxG,KAAKwG,OAAOF,QAAUtG,KAAKwG,OAAOF,OAAOC,WAEtDF,GAA0C,qBAAxBI,sBACrBJ,EAAUI,qBAGRhB,GACFA,EAAarB,KAAKpE,KAAMqG,GAGtBA,GAAWA,EAAQK,uBACrBL,EAAQK,sBAAsBC,IAAIhB,IAKtCI,EAAQa,aAAed,GACdL,IACTK,EAAOL,GAGLK,EAAM,CACR,IAAIK,EAAaJ,EAAQI,WACrBU,EAAWV,EACXJ,EAAQC,OACRD,EAAQe,aAEPX,GAQHJ,EAAQgB,cAAgBjB,EAExBC,EAAQC,OAAS,SAAmCgB,EAAGX,GAErD,OADAP,EAAK1B,KAAKiC,GACHQ,EAASG,EAAGX,KAVrBN,EAAQe,aAAeD,EACnB,GAAGI,OAAOJ,EAAUf,GACpB,CAACA,GAaT,MAAO,CACLF,SAAUA,EACV9B,QAAS+B,EACTE,QAASA,KAOPokE,IACA,SAAUtmE,EAAQC,EAASG,GAEjC,aAGAH,EAAQiB,YAAa,EAErB,IAAIqlE,EAAenmE,EAAoB,KAEnComE,EAAgB/iE,EAAuB8iE,GAE3C,SAAS9iE,EAAuBC,GAAO,OAAOA,GAAOA,EAAIxC,WAAawC,EAAM,CAAE3H,QAAS2H,GAGvF8iE,EAAczqE,QAAQ4H,QAAU,SAAUC,GACxCA,EAAIC,UAAU2iE,EAAczqE,QAAQV,KAAMmrE,EAAczqE,UAG1DkE,EAAQlE,QAAUyqE,EAAczqE,SAI1B0qE,IACA,SAAUzmE,EAAQ+D,EAAqB3D,GAE7C,aACAtE,OAAO+E,eAAekD,EAAqB,aAAc,CAAEC,OAAO,IAC7C,IAAI0iE,EAAwHtmE,EAAoB,KAC5IumE,EAAgIvmE,EAAoBa,EAAEylE,GACtJE,EAA8OxmE,EAAoB,KACvRgE,EAAqBhE,EAAoB,GAMvCiE,GAA8B,EAEhCC,EAAiB,KAEjBC,EAAkB,KAElBC,EAA4B,KAC5BC,EAAYL,EACduiE,EAA8HjiE,EAC9HkiE,EAA4O,KAC5OviE,EACAC,EACAC,EACAC,GAG2BT,EAAoB,WAAcU,EAAiB,SAK1EoiE,IACA,SAAU7mE,EAAQC,EAASG,GAEjC,aAGAH,EAAQiB,YAAa,EAOrBjB,EAAQlE,QAAU,CAChBV,KAAM,kBAKFyrE,IACA,SAAU9mE,EAAQ+D,EAAqB3D,GAE7C,aACA,IAAI+B,EAAS,WAAa,IAAIoD,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACL,EAAIS,GAAG,YAAY,IACzJ5D,EAAkB,GAClB6D,EAAY,CAAE9D,OAAQA,EAAQC,gBAAiBA,GACtB2B,EAAoB,KAAO,M,qBCrQxD,IAAIqiE,EAAU,EAAQ,QAClBW,EAAU,EAAQ,OAAR,EAA8B,GAE5CX,EAAQA,EAAQY,EAAG,SAAU,CAC3B3xD,OAAQ,SAAgB8wD,GACtB,OAAOY,EAAQZ,O,wBCNlB,SAAU56D,EAAQC,GAC8CA,EAAQvL,IADzE,CAIE9D,GAAM,SAAW8D,GAAW,aAE9B,SAAS4Z,KAET,SAASotD,EAAkBC,GACzB,IAAKA,EAAW,OAAOrtD,EACvB,IAAIstD,EACAC,EACAC,EAAKH,EAAUxyD,MAAM,GACrB4yD,EAAKJ,EAAUxyD,MAAM,GACrB6yD,EAAKL,EAAUzmD,UAAU,GACzB+mD,EAAKN,EAAUzmD,UAAU,GAC7B,OAAO,SAASK,EAAOthB,GAChBA,IAAG2nE,EAAKC,EAAK,GAClBtmD,EAAM,IAAMqmD,GAAMrmD,EAAM,IAAMumD,EAAKE,EACnCzmD,EAAM,IAAMsmD,GAAMtmD,EAAM,IAAMwmD,EAAKE,GAIvC,SAASC,EAAkBP,GACzB,IAAKA,EAAW,OAAOrtD,EACvB,IAAIstD,EACAC,EACAC,EAAKH,EAAUxyD,MAAM,GACrB4yD,EAAKJ,EAAUxyD,MAAM,GACrB6yD,EAAKL,EAAUzmD,UAAU,GACzB+mD,EAAKN,EAAUzmD,UAAU,GAC7B,OAAO,SAASK,EAAOthB,GAChBA,IAAG2nE,EAAKC,EAAK,GAClB,IAAI90C,EAAKp0B,KAAK+R,OAAO6Q,EAAM,GAAKymD,GAAMF,GAClC90C,EAAKr0B,KAAK+R,OAAO6Q,EAAM,GAAK0mD,GAAMF,GACtCxmD,EAAM,GAAKwR,EAAK60C,EAChBrmD,EAAM,GAAKyR,EAAK60C,EAChBD,EAAK70C,EACL80C,EAAK70C,GAIT,SAAS3X,EAAQkC,EAAO7b,GACtB,IAAI+N,EAAGurB,EAAIzd,EAAM7V,OAAQzH,EAAI+6B,EAAIt5B,EACjC,MAAOzB,IAAM+6B,EAAGvrB,EAAI8N,EAAMtd,GAAIsd,EAAMtd,KAAOsd,EAAMyd,GAAIzd,EAAMyd,GAAKvrB,EAGlE,SAAS04D,EAAOhjE,EAAG7G,GACjB,IAAIg9D,EAAK,EAAGhsD,EAAKnK,EAAEuC,OACnB,MAAO4zD,EAAKhsD,EAAI,CACd,IAAI6rD,EAAMG,EAAKhsD,IAAO,EAClBnK,EAAEg2D,GAAO78D,EAAGg9D,EAAKH,EAAM,EACtB7rD,EAAK6rD,EAEZ,OAAOG,EAGT,SAAS8M,EAAQC,EAAUhnE,GACzB,MAAkB,uBAAXA,EAAE/E,KAAgC,CACvCA,KAAM,oBACNgsE,SAAUjnE,EAAEknE,WAAWrhE,KAAI,SAAS7F,GAAK,OAAOmnE,EAAUH,EAAUhnE,OAClEmnE,EAAUH,EAAUhnE,GAG1B,SAASmnE,EAAUH,EAAUhnE,GAC3B,IAAIkO,EAAI,CACNjT,KAAM,UACN8M,GAAI/H,EAAE+H,GACNq/D,WAAYpnE,EAAEonE,YAAc,GAC5BC,SAAU9mE,EAAOymE,EAAUhnE,IAG7B,OADY,MAARA,EAAE+H,WAAmBmG,EAAEnG,GACpBmG,EAGT,SAAS3N,EAAOymE,EAAUhnE,GACxB,IAAIsnE,EAAWjB,EAAkBW,EAASV,WACtClsC,EAAO4sC,EAAS5sC,KAEpB,SAASjb,EAAIvgB,EAAG0K,GACVA,EAAOjD,QAAQiD,EAAO4H,MAC1B,IAAK,IAAmDxQ,EAA/CoD,EAAIs2B,EAAKx7B,EAAI,GAAKA,EAAIA,GAAIwO,EAAI,EAAG/M,EAAIyD,EAAEuC,OAAW+G,EAAI/M,IAAK+M,EAClE9D,EAAOd,KAAK9H,EAAIoD,EAAEsJ,GAAG+E,SACrBm1D,EAAS5mE,EAAG0M,GAEVxO,EAAI,GAAGob,EAAQ1Q,EAAQjJ,GAG7B,SAAS6f,EAAMxf,GAGb,OAFAA,EAAIA,EAAEyR,QACNm1D,EAAS5mE,EAAG,GACLA,EAGT,SAAS+uB,EAAK2K,GAEZ,IADA,IAAI9wB,EAAS,GACJ1K,EAAI,EAAGyB,EAAI+5B,EAAK/zB,OAAQzH,EAAIyB,IAAKzB,EAAGugB,EAAIib,EAAKx7B,GAAI0K,GAE1D,OADIA,EAAOjD,OAAS,GAAGiD,EAAOd,KAAKc,EAAO,GAAG6I,SACtC7I,EAGT,SAASi+D,EAAKntC,GACZ,IAAI9wB,EAASmmB,EAAK2K,GAClB,MAAO9wB,EAAOjD,OAAS,EAAGiD,EAAOd,KAAKc,EAAO,GAAG6I,SAChD,OAAO7I,EAGT,SAASk+D,EAAQptC,GACf,OAAOA,EAAKv0B,IAAI0hE,GAGlB,SAASF,EAASrnE,GAChB,IAAIoO,EAAIpO,EAAE/E,KACV,MAAa,uBAANmT,EAA6B,CAACnT,KAAMmT,EAAG84D,WAAYlnE,EAAEknE,WAAWrhE,IAAIwhE,IACrEj5D,KAAKq5D,EAAe,CAACxsE,KAAMmT,EAAGs5D,YAAaD,EAAar5D,GAAGpO,IAC3D,KAGR,IAAIynE,EAAe,CACjBz0C,MAAO,SAAShzB,GAAK,OAAOkgB,EAAMlgB,EAAE0nE,cACpCC,WAAY,SAAS3nE,GAAK,OAAOA,EAAE0nE,YAAY7hE,IAAIqa,IACnD0nD,WAAY,SAAS5nE,GAAK,OAAOyvB,EAAKzvB,EAAEo6B,OACxCytC,gBAAiB,SAAS7nE,GAAK,OAAOA,EAAEo6B,KAAKv0B,IAAI4pB,IACjDq4C,QAAS,SAAS9nE,GAAK,OAAOwnE,EAAQxnE,EAAEo6B,OACxC2tC,aAAc,SAAS/nE,GAAK,OAAOA,EAAEo6B,KAAKv0B,IAAI2hE,KAGhD,OAAOH,EAASrnE,GAGlB,SAASgoE,EAAWhB,EAAU5sC,GAC5B,IAAI6tC,EAAe,GACfC,EAAkB,GAClBC,EAAgB,GAChBC,EAAY,GACZC,GAAc,EA4ClB,SAASC,EAAK1pE,GACZ,IAAsD4gE,EAAlDrgD,EAAM6nD,EAAS5sC,KAAKx7B,EAAI,GAAKA,EAAIA,GAAI2gE,EAAKpgD,EAAI,GAGlD,OAFI6nD,EAASV,WAAW9G,EAAK,CAAC,EAAG,GAAIrgD,EAAI7Y,SAAQ,SAASiiE,GAAM/I,EAAG,IAAM+I,EAAG,GAAI/I,EAAG,IAAM+I,EAAG,OACvF/I,EAAKrgD,EAAIA,EAAI9Y,OAAS,GACpBzH,EAAI,EAAI,CAAC4gE,EAAID,GAAM,CAACA,EAAIC,GAGjC,SAASgJ,EAAML,EAAeD,GAC5B,IAAK,IAAI96D,KAAK+6D,EAAe,CAC3B,IAAIj6D,EAAIi6D,EAAc/6D,UACf86D,EAAgBh6D,EAAEgX,cAClBhX,EAAEgX,aACFhX,EAAEkmB,IACTlmB,EAAE5H,SAAQ,SAAS1H,GAAKqpE,EAAarpE,EAAI,GAAKA,EAAIA,GAAK,KACvDwpE,EAAU5/D,KAAK0F,IAQnB,OA/DAksB,EAAK9zB,SAAQ,SAAS1H,EAAG+6B,GACvB,IAAyCvrB,EAArC+Q,EAAM6nD,EAAS5sC,KAAKx7B,EAAI,GAAKA,EAAIA,GACjCugB,EAAI9Y,OAAS,IAAM8Y,EAAI,GAAG,KAAOA,EAAI,GAAG,KAC1C/Q,EAAIgsB,IAAOiuC,GAAajuC,EAAKiuC,GAAczpE,EAAGw7B,EAAKT,GAAKvrB,MAI5DgsB,EAAK9zB,SAAQ,SAAS1H,GACpB,IAGIsP,EAAGzB,EAHHjI,EAAI8jE,EAAK1pE,GACTsmB,EAAQ1gB,EAAE,GACV4vB,EAAM5vB,EAAE,GAGZ,GAAI0J,EAAIi6D,EAAcjjD,GAIpB,UAHOijD,EAAcj6D,EAAEkmB,KACvBlmB,EAAE1F,KAAK5J,GACPsP,EAAEkmB,IAAMA,EACJ3nB,EAAIy7D,EAAgB9zC,GAAM,QACrB8zC,EAAgBz7D,EAAEyY,OACzB,IAAIujD,EAAKh8D,IAAMyB,EAAIA,EAAIA,EAAE1L,OAAOiK,GAChCy7D,EAAgBO,EAAGvjD,MAAQhX,EAAEgX,OAASijD,EAAcM,EAAGr0C,IAAM3nB,EAAE2nB,KAAOq0C,OAEtEP,EAAgBh6D,EAAEgX,OAASijD,EAAcj6D,EAAEkmB,KAAOlmB,OAE/C,GAAIA,EAAIg6D,EAAgB9zC,GAI7B,UAHO8zC,EAAgBh6D,EAAEgX,OACzBhX,EAAEoD,QAAQ1S,GACVsP,EAAEgX,MAAQA,EACNzY,EAAI07D,EAAcjjD,GAAQ,QACrBijD,EAAc17D,EAAE2nB,KACvB,IAAIs0C,EAAKj8D,IAAMyB,EAAIA,EAAIzB,EAAEjK,OAAO0L,GAChCg6D,EAAgBQ,EAAGxjD,MAAQzY,EAAEyY,OAASijD,EAAcO,EAAGt0C,IAAMlmB,EAAEkmB,KAAOs0C,OAEtER,EAAgBh6D,EAAEgX,OAASijD,EAAcj6D,EAAEkmB,KAAOlmB,OAGpDA,EAAI,CAACtP,GACLspE,EAAgBh6D,EAAEgX,MAAQA,GAASijD,EAAcj6D,EAAEkmB,IAAMA,GAAOlmB,KAsBpEs6D,EAAML,EAAeD,GACrBM,EAAMN,EAAiBC,GACvB/tC,EAAK9zB,SAAQ,SAAS1H,GAAUqpE,EAAarpE,EAAI,GAAKA,EAAIA,IAAIwpE,EAAU5/D,KAAK,CAAC5J,OAEvEwpE,EAGT,SAASO,EAAK3B,GACZ,OAAOzmE,EAAOymE,EAAU4B,EAAS/uD,MAAMte,KAAM6T,YAG/C,SAASw5D,EAAS5B,EAAUhnE,EAAG2G,GAC7B,IAAIyzB,EAAO,GAEX,SAASjb,EAAIvgB,GACX,IAAI+6B,EAAI/6B,EAAI,GAAKA,EAAIA,GACpBiqE,EAAWlvC,KAAOkvC,EAAWlvC,GAAK,KAAKnxB,KAAK,CAAC5J,EAAGA,EAAG6N,EAAGq8D,IAGzD,SAASr5C,EAAK2K,GACZA,EAAK9zB,QAAQ6Y,GAGf,SAASqoD,EAAQptC,GACfA,EAAK9zB,QAAQmpB,GAGf,SAAS43C,EAASrnE,GACD,uBAAXA,EAAE/E,KAA+B+E,EAAEknE,WAAW5gE,QAAQ+gE,GACjDrnE,EAAE/E,QAAQwsE,IAAcqB,EAAO9oE,EAAGynE,EAAaznE,EAAE/E,MAAM+E,EAAEo6B,OAGpE,GAAIhrB,UAAU/I,OAAS,EAAG,CACxB,IACIyiE,EADAD,EAAa,GAGbpB,EAAe,CACjBG,WAAYn4C,EACZo4C,gBAAiBL,EACjBM,QAASN,EACTO,aAAc,SAAS3tC,GAAQA,EAAK9zB,QAAQkhE,KAG9CH,EAASrnE,GAET6oE,EAAWviE,QAAQ8I,UAAU/I,OAAS,EAChC,SAAS0iE,GAAS3uC,EAAK5xB,KAAKugE,EAAM,GAAGnqE,IACrC,SAASmqE,GAAapiE,EAAOoiE,EAAM,GAAGt8D,EAAGs8D,EAAMA,EAAM1iE,OAAS,GAAGoG,IAAI2tB,EAAK5xB,KAAKugE,EAAM,GAAGnqE,UAE9F,IAAK,IAAIA,EAAI,EAAGyB,EAAI2mE,EAAS5sC,KAAK/zB,OAAQzH,EAAIyB,IAAKzB,EAAGw7B,EAAK5xB,KAAK5J,GAGlE,MAAO,CAAC3D,KAAM,kBAAmBm/B,KAAM4tC,EAAWhB,EAAU5sC,IAG9D,SAAS4uC,EAAsBC,GAC7B,IAAInlE,EAAImlE,EAAS,GAAIv8D,EAAIu8D,EAAS,GAAIppE,EAAIopE,EAAS,GACnD,OAAO3rE,KAAKE,KAAKsG,EAAE,GAAKjE,EAAE,KAAO6M,EAAE,GAAK5I,EAAE,KAAOA,EAAE,GAAK4I,EAAE,KAAO7M,EAAE,GAAKiE,EAAE,KAG5E,SAASyjE,EAAKA,GACZ,IAEIzjE,EAFAlF,GAAK,EACLyB,EAAIknE,EAAKlhE,OAETqG,EAAI66D,EAAKlnE,EAAI,GACb8f,EAAO,EAEX,QAASvhB,EAAIyB,EACXyD,EAAI4I,EACJA,EAAI66D,EAAK3oE,GACTuhB,GAAQrc,EAAE,GAAK4I,EAAE,GAAK5I,EAAE,GAAK4I,EAAE,GAGjC,OAAOyT,EAAO,EAGhB,SAASvF,EAAMosD,GACb,OAAOzmE,EAAOymE,EAAUkC,EAAUrvD,MAAMte,KAAM6T,YAGhD,SAAS85D,EAAUlC,EAAUmC,GAC3B,IAAIC,EAAgB,GAChBC,EAAW,GACXC,EAAa,GAOjB,SAAS19B,EAAS47B,GAChBA,EAAQlhE,SAAQ,SAASijE,GACvBA,EAAOjjE,SAAQ,SAAS6Y,IACrBiqD,EAAcjqD,EAAMA,EAAM,GAAKA,EAAMA,KAASiqD,EAAcjqD,GAAO,KAAK3W,KAAKg/D,SAGlF6B,EAAS7gE,KAAKg/D,GAGhB,SAASrnD,EAAKopD,GACZ,OAAOjsE,KAAKE,IAAI+pE,EAAKhnE,EAAOymE,EAAU,CAAC/rE,KAAM,UAAWm/B,KAAM,CAACmvC,KAAU7B,YAAY,KA6BvF,OA5CAyB,EAAQ7iE,SAAQ,SAAStG,GACR,YAAXA,EAAE/E,KAAoB2wC,EAAS5rC,EAAEo6B,MACjB,iBAAXp6B,EAAE/E,MAAyB+E,EAAEo6B,KAAK9zB,QAAQslC,MAgBrDy9B,EAAS/iE,SAAQ,SAASkhE,GACxB,IAAKA,EAAQgC,EAAG,CACd,IAAIvmE,EAAY,GACZwmE,EAAY,CAACjC,GACjBA,EAAQgC,EAAI,EACZF,EAAW9gE,KAAKvF,GAChB,MAAOukE,EAAUiC,EAAUv4D,MACzBjO,EAAUuF,KAAKg/D,GACfA,EAAQlhE,SAAQ,SAASijE,GACvBA,EAAOjjE,SAAQ,SAAS6Y,GACtBiqD,EAAcjqD,EAAM,GAAKA,EAAMA,GAAK7Y,SAAQ,SAASkhE,GAC9CA,EAAQgC,IACXhC,EAAQgC,EAAI,EACZC,EAAUjhE,KAAKg/D,iBAS7B6B,EAAS/iE,SAAQ,SAASkhE,UACjBA,EAAQgC,KAGV,CACLvuE,KAAM,eACNm/B,KAAMkvC,EAAWzjE,KAAI,SAASwjE,GAC5B,IAAehpE,EAAX+5B,EAAO,GAmBX,GAhBAivC,EAAS/iE,SAAQ,SAASkhE,GACxBA,EAAQlhE,SAAQ,SAASijE,GACvBA,EAAOjjE,SAAQ,SAAS6Y,GAClBiqD,EAAcjqD,EAAM,GAAKA,EAAMA,GAAK9Y,OAAS,GAC/C+zB,EAAK5xB,KAAK2W,YAOlBib,EAAO4tC,EAAWhB,EAAU5sC,IAKvB/5B,EAAI+5B,EAAK/zB,QAAU,EACtB,IAAK,IAA8BqjE,EAAIt7D,EAA9BxP,EAAI,EAAGwO,EAAI+S,EAAKia,EAAK,IAAYx7B,EAAIyB,IAAKzB,GAC5C8qE,EAAKvpD,EAAKia,EAAKx7B,KAAOwO,IACzBgB,EAAIgsB,EAAK,GAAIA,EAAK,GAAKA,EAAKx7B,GAAIw7B,EAAKx7B,GAAKwP,EAAGhB,EAAIs8D,GAKvD,OAAOtvC,MAKb,SAASqvC,EAAUN,GACjB,IAAIQ,EAAe,GACfF,EAAYN,EAAQtjE,KAAI,WAAa,MAAO,MAEhD,SAAS4pB,EAAK2K,EAAMx7B,GAClBw7B,EAAK9zB,SAAQ,SAASxC,GAChBA,EAAI,IAAGA,GAAKA,GAChB,IAAI9D,EAAI2pE,EAAa7lE,GACjB9D,EAAGA,EAAEwI,KAAK5J,GACT+qE,EAAa7lE,GAAK,CAAClF,MAI5B,SAAS4oE,EAAQptC,EAAMx7B,GACrBw7B,EAAK9zB,SAAQ,SAAS6Y,GAAOsQ,EAAKtQ,EAAKvgB,MAGzC,SAASyoE,EAASrnE,EAAGpB,GACJ,uBAAXoB,EAAE/E,KAA+B+E,EAAEknE,WAAW5gE,SAAQ,SAAStG,GAAKqnE,EAASrnE,EAAGpB,MAC3EoB,EAAE/E,QAAQwsE,GAAcA,EAAaznE,EAAE/E,MAAM+E,EAAEo6B,KAAMx7B,GAGhE,IAAI6oE,EAAe,CACjBG,WAAYn4C,EACZo4C,gBAAiBL,EACjBM,QAASN,EACTO,aAAc,SAAS3tC,EAAMx7B,GAAKw7B,EAAK9zB,SAAQ,SAAS6Y,GAAOqoD,EAAQroD,EAAKvgB,QAK9E,IAAK,IAAIA,KAFTuqE,EAAQ7iE,QAAQ+gE,GAEFsC,EACZ,IAAK,IAAIC,EAAUD,EAAa/qE,GAAIgB,EAAIgqE,EAAQvjE,OAAQszB,EAAI,EAAGA,EAAI/5B,IAAK+5B,EACtE,IAAK,IAAIvsB,EAAIusB,EAAI,EAAGvsB,EAAIxN,IAAKwN,EAAG,CAC9B,IAAsC/M,EAAlCwpE,EAAKD,EAAQjwC,GAAImwC,EAAKF,EAAQx8D,IAC7B/M,EAAIopE,EAAUI,IAAKjrE,EAAIkoE,EAAOzmE,EAAGypE,MAASA,GAAIzpE,EAAEwnB,OAAOjpB,EAAG,EAAGkrE,IAC7DzpE,EAAIopE,EAAUK,IAAKlrE,EAAIkoE,EAAOzmE,EAAGwpE,MAASA,GAAIxpE,EAAEwnB,OAAOjpB,EAAG,EAAGirE,GAKxE,OAAOJ,EAGT,SAASM,EAAYjmE,EAAG4I,GACtB,OAAO5I,EAAE,GAAG,GAAK4I,EAAE,GAAG,GAGxB,SAASs9D,IACP,IAAIC,EAAO,GACP/tD,EAAQ,GACRwD,EAAO,EAqBX,SAASwqD,EAAG3pE,EAAQ3B,GAClB,MAAOA,EAAI,EAAG,CACZ,IAAI+6B,GAAM/6B,EAAI,GAAM,GAAK,EACrBmD,EAASma,EAAMyd,GACnB,GAAIowC,EAAYxpE,EAAQwB,IAAW,EAAG,MACtCma,EAAMna,EAAOynE,EAAI5qE,GAAKmD,EACtBma,EAAM3b,EAAOipE,EAAI5qE,EAAI+6B,GAAKp5B,GAI9B,SAAS4pE,EAAK5pE,EAAQ3B,GACpB,MAAO,EAAM,CACX,IAAI4N,EAAK5N,EAAI,GAAM,EACfc,EAAI8M,EAAI,EACRmtB,EAAI/6B,EACJwrE,EAAQluD,EAAMyd,GAGlB,GAFIj6B,EAAIggB,GAAQqqD,EAAY7tD,EAAMxc,GAAI0qE,GAAS,IAAGA,EAAQluD,EAAMyd,EAAIj6B,IAChE8M,EAAIkT,GAAQqqD,EAAY7tD,EAAM1P,GAAI49D,GAAS,IAAGA,EAAQluD,EAAMyd,EAAIntB,IAChEmtB,IAAM/6B,EAAG,MACbsd,EAAMkuD,EAAMZ,EAAI5qE,GAAKwrE,EACrBluD,EAAM3b,EAAOipE,EAAI5qE,EAAI+6B,GAAKp5B,GAI9B,OA3CA0pE,EAAKzhE,KAAO,SAASjI,GAEnB,OADA2pE,EAAGhuD,EAAM3b,EAAOipE,EAAI9pD,GAAQnf,EAAQmf,KAC7BA,GAGTuqD,EAAK/4D,IAAM,WACT,KAAIwO,GAAQ,GAAZ,CACA,IAAwBnf,EAApB8pE,EAAUnuD,EAAM,GAEpB,QADMwD,EAAO,IAAGnf,EAAS2b,EAAMwD,GAAOyqD,EAAKjuD,EAAM3b,EAAOipE,EAAI,GAAKjpE,EAAQ,IAClE8pE,IAGTJ,EAAKrgC,OAAS,SAASygC,GACrB,IAAmB9pE,EAAf3B,EAAIyrE,EAAQb,EAChB,GAAIttD,EAAMtd,KAAOyrE,EAEjB,OADIzrE,MAAQ8gB,IAAMnf,EAAS2b,EAAMwD,IAAQqqD,EAAYxpE,EAAQ8pE,GAAW,EAAIH,EAAKC,GAAMjuD,EAAM3b,EAAOipE,EAAI5qE,GAAK2B,EAAQ3B,IAC9GA,GA2BFqrE,EAGT,SAASK,EAAYtD,EAAUuD,GAC7B,IAAIjD,EAAWjB,EAAkBW,EAASV,WACtCkE,EAAW3D,EAAkBG,EAASV,WACtC2D,EAAOD,IA6DX,SAAS7iE,EAAO8hE,GACdgB,EAAKrgC,OAAOq/B,GACZA,EAAS,GAAG,GAAKsB,EAAatB,GAC9BgB,EAAKzhE,KAAKygE,GAGZ,OAjEKsB,IAAcA,EAAevB,GAElChC,EAAS5sC,KAAK9zB,SAAQ,SAAS6Y,GAC7B,IAEI8pD,EACArqE,EACAyB,EACAK,EALA+pE,EAAY,GACZC,EAAU,EAUd,IAAK9rE,EAAI,EAAGyB,EAAI8e,EAAI9Y,OAAQzH,EAAIyB,IAAKzB,EACnC8B,EAAIye,EAAIvgB,GACR0oE,EAASnoD,EAAIvgB,GAAK,CAAC8B,EAAE,GAAIA,EAAE,GAAI8M,KAAW5O,GAG5C,IAAKA,EAAI,EAAGyB,EAAI8e,EAAI9Y,OAAS,EAAGzH,EAAIyB,IAAKzB,EACvCqqE,EAAW9pD,EAAIhN,MAAMvT,EAAI,EAAGA,EAAI,GAChCqqE,EAAS,GAAG,GAAKsB,EAAatB,GAC9BwB,EAAUjiE,KAAKygE,GACfgB,EAAKzhE,KAAKygE,GAGZ,IAAKrqE,EAAI,EAAGyB,EAAIoqE,EAAUpkE,OAAQzH,EAAIyB,IAAKzB,EACzCqqE,EAAWwB,EAAU7rE,GACrBqqE,EAASntD,SAAW2uD,EAAU7rE,EAAI,GAClCqqE,EAAS/0C,KAAOu2C,EAAU7rE,EAAI,GAGhC,MAAOqqE,EAAWgB,EAAK/4D,MAAO,CAC5B,IAAI4K,EAAWmtD,EAASntD,SACpBoY,EAAO+0C,EAAS/0C,KAMhB+0C,EAAS,GAAG,GAAKyB,EAASzB,EAAS,GAAG,GAAKyB,EAC1CA,EAAUzB,EAAS,GAAG,GAEvBntD,IACFA,EAASoY,KAAOA,EAChBpY,EAAS,GAAKmtD,EAAS,GACvB9hE,EAAO2U,IAGLoY,IACFA,EAAKpY,SAAWA,EAChBoY,EAAK,GAAK+0C,EAAS,GACnB9hE,EAAO+sB,IAIX/U,EAAI7Y,QAAQkkE,MASPxD,EAGT,IAAI2D,EAAU,SAEdtrE,EAAQsrE,QAAUA,EAClBtrE,EAAQspE,KAAOA,EACftpE,EAAQupE,SAAWA,EACnBvpE,EAAQub,MAAQA,EAChBvb,EAAQ6pE,UAAYA,EACpB7pE,EAAQ0nE,QAAUA,EAClB1nE,EAAQoqE,UAAYA,EACpBpqE,EAAQirE,YAAcA,EAEtBpvE,OAAO+E,eAAeZ,EAAS,aAAc,CAAE+D,OAAO,Q,sJChiBvC,SAASwnE,EAAQ9nE,GAa9B,OATE8nE,EADoB,oBAAXC,QAAoD,kBAApBA,OAAOC,SACtC,SAAiBhoE,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX+nE,QAAyB/nE,EAAI2Y,cAAgBovD,QAAU/nE,IAAQ+nE,OAAO5uE,UAAY,gBAAkB6G,GAItH8nE,EAAQ9nE,GCZV,SAASioE,EAAahpE,EAAQT,GACnC,IAAK,IAAI6a,KAAQ7a,EACc,WAAzB,EAAOA,EAAQ6a,IACjBpa,EAAOoa,GAAQ7a,EAAQ6a,GAEvB4uD,EAAahpE,EAAOoa,GAAO7a,EAAQ6a,I,qmBCHlC,IAAM6uD,EAAS,CACpB32C,KAAM,QACNm6B,MAAO,CACLxxD,KAAM,aAERmN,OAAQ,CACNiC,KAAM,CACJ6+D,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,WAEPC,MAAO,CACL,QAAW,UACX,QAAW,UACX,UAAa,UACb,KAAQ,UACR,QAAW,UACX,OAAU,UACV,QAAW,WAEb11D,MAAO,UACP21D,MAAO,UACPC,YAAa,gBAIjB,SAASC,IACP,IAAM1hE,EAAwB6gE,EAAxB7gE,OAAQkqB,EAAgB22C,EAAhB32C,KAAMm6B,EAAUwc,EAAVxc,MAEhBltD,EAAU,CACZ8f,SAAU,CACRzW,OAAQ,CACNgtC,YAAY,EACZ5N,qBAAqB,EACrBzoB,aAAwB,SAAT+S,EAAmBlqB,EAAOiC,KAAK,KAAOjC,EAAOiC,KAAK,KACjEmV,iBAA4B,SAAT8S,EAAmBlqB,EAAOiC,KAAK,KAAOjC,EAAOiC,KAAK,KACrEoV,kBAAmBgtC,EAAMxxD,KACzBykB,gBAAiB,GACjBqhB,OAAQ,CACNzR,QAAS,GAEX2H,OAAQ,CACNwF,SAAS,EACTrH,SAAU,SACVpwB,OAAQ,CACNs5D,eAAe,EACfhvC,QAAS,KAGbt1B,SAAU,CACRmkB,MAAO,CACLphB,OAAQ,EACRd,gBAAiBmM,EAAOuhE,MAAM,YAEhCj8C,KAAM,CACJ7O,QAAS,GACT/jB,YAAa,EACbqB,YAAaiM,EAAOuhE,MAAM,WAC1B1tE,gBAAiBmM,EAAOyhE,YACxBl8C,eAAgB,WAElBiD,UAAW,CACT30B,gBAAiBmM,EAAOuhE,MAAM,YAEhCvsD,IAAK,CACHnhB,gBAAiBmM,EAAOuhE,MAAM,WAC9BxtE,YAAsB,QAARm2B,EAAkBlqB,EAAOiC,KAAK,KAAOjC,EAAOwhE,MAC1D9uE,YAAa,IAGjBu6B,SAAU,CACR8V,SAAS,EACT7Y,KAAM,QACN2M,WAAW,IAGfV,IAAK,CACHlJ,SAAU,CACR/C,KAAM,UAGVsL,SAAU,CACRvI,SAAU,CACR/C,KAAM,SAERgF,iBAAkB,GAClBd,eAAgB,SAAU9yB,GACxB,IAAIrK,EAAOqK,EAAMrK,KACb0wE,EAAU,GAWd,OATA1wE,EAAK2L,OAAOT,SAAQ,SAAUP,EAAOtH,GACnC,IAAIstE,EAAU3wE,EAAKwK,SAAS,GAAG5H,gBAAgBS,GAE/CqtE,GAAW,mCACXA,GAAW,8DAAgEC,EAAU,SACrFD,GAAW/lE,EACX+lE,GAAW,aAGNA,MA6Cf,OAtCAhwE,IAAMmoE,aAAap3B,oBAAoB,SAAU,CAC/CtY,UAAW,CACT5E,WAAY,CAAC,GACbC,iBAAkB,CAAC,GACnBrgB,MAAiB,SAAT8kB,EAAmBlqB,EAAOiC,KAAK,KAAOjC,EAAOiC,KAAK,KAC1D8hB,YAAY,EACZg4B,WAAW,EACXyB,cAAe,EACfC,cAAyB,SAATvzB,EAAmBlqB,EAAOiC,KAAK,KAAOjC,EAAOiC,KAAK,KAClEy7C,mBAAoB,CAAC,GACrBC,yBAA0B,CAAC,IAE7BprB,MAAO,CACLiC,aAAa,EACbtN,QAAS,GACT1X,SAAU,SAAUvW,GAClB,KAAMA,EAAQ,IACZ,OAAOA,MAOftH,IAAMmoE,aAAap3B,oBAAoB,WAAY,CACjDtY,UAAW,CACTrG,YAAY,EACZw5B,iBAAiB,EACjBxB,WAAW,EACX/nD,UAAW,EACXwpD,cAAe,GAEjBjrB,MAAO,CACLrL,QAAS,IAEXyD,gBAAiB,KAGZxzB,EAGT,IAAI0qE,GAAc,EAEX,SAAS7sE,IACV6sE,IAGJjB,EAAajvE,IAAO+vE,KACpBG,GAAc,GAGT,IAAMC,EAAe,CAC1BliC,qBAAqB,EACrB/Q,OAAQ,CACNwF,SAAS,GAEXmZ,YAAY,GAEHu0B,EAAmB,CAC5B5iD,OAAQ,CACNM,MAAO,CAAC,CACN2K,UAAW,CACThlB,MAAOy7D,EAAO7gE,OAAOiC,KAAK,KAC1Bw7C,cAAeojB,EAAO7gE,OAAOiC,KAAK,UAMR,EAAH,KAC1B6/D,GAD0B,IAE7B70C,SAAU,CACRp5B,gBAAiB,UACjBsvC,eAAgB,OAChBG,cAAe,OACfD,YAAa,EACbS,SAAU,GACV5Z,KAAM,UACN2M,UAAW,EACX7J,SAAU,WAEZwgB,YAAY,EACZruB,OAAQ,CACNM,MAAO,CACL,CACEmK,cAAe,IACfQ,UAAW,CACTrG,YAAY,EACZ3e,MAAO,uBACPq4C,cAAe,eAEjBlrB,MAAO,CACL60B,aAAc,GACdE,aAAc,IACdpgC,QAAS,GACTk1B,UAAW,aAKjB78B,MAAO,CACL,CACEqK,cAAe,IACfQ,UAAW,CACTrG,YAAY,EACZ3e,MAAO,uBACPq4C,cAAe,eAEjBlrB,MAAO,CACLrL,QAAS,GACTk1B,UAAW,gBAOgB,EAAH,KAC7B0lB,GAD6B,IAEhC70C,SAAU,CACRp5B,gBAAiB,UACjBsvC,eAAgB,OAChBG,cAAe,OACfD,YAAa,EACbS,SAAU,GACV5Z,KAAM,UACN2M,UAAW,EACX7J,SAAU,WAEZwgB,YAAY,EACZruB,OAAQ,CACNM,MAAO,CACL,CACE2K,UAAW,CACTrG,YAAY,EACZ3e,MAAO,uBACPq4C,cAAe,eAEjBlrB,MAAO,CACL60B,aAAc,GACdE,aAAc,IACdpgC,QAAS,GACTk1B,UAAW,aAKjB78B,MAAO,CACL,CACE6K,UAAW,CACTrG,YAAY,EACZ3e,MAAO,uBACPq4C,cAAe,eAEjBlrB,MAAO,CACLrL,QAAS,GACTk1B,UAAW,gBAOQ,EAAH,KACrB0lB,GADqB,IAExB5yC,iBAAkB,GAClBjC,SAAU,CACRp5B,gBAAiB,UACjBsvC,eAAgB,OAChBG,cAAe,OACfD,YAAa,EACbS,SAAU,GACV5Z,KAAM,UACN2M,UAAW,EACX7J,SAAU,WAGZ7N,OAAQ,CACNM,MAAO,CACL,CACE4U,QAAS,EACT9B,MAAO,CACL8B,SAAS,GAEXjK,UAAW,CACTrG,YAAY,EACZ05B,cAAe,cACfr4C,MAAO,4BAKbma,MAAO,CACL,CACE8U,QAAS,EACTzK,cAAe,IACfQ,UAAW,CACTrG,YAAY,EACZ3e,MAAO,wBACPq4C,cAAe,eAEjBlrB,MAAO,CACL8B,SAAS,QAOa,EAAH,KACxBytC,GADwB,IAE3B70C,SAAU,CACRp5B,gBAAiB,UACjBsvC,eAAgB,OAChBG,cAAe,OACfD,YAAa,EACbS,SAAU,GACV5Z,KAAM,UACN2M,UAAW,EACX7J,SAAU,WAEZ7N,OAAQ,CACNM,MAAO,CACL,CACEmK,cAAe,IACfQ,UAAW,CACTrG,YAAY,EACZ3e,MAAO,uBACPq4C,cAAe,eAEjBlrB,MAAO,CACL60B,aAAc,GACdE,aAAc,IACdpgC,QAAS,GACTk1B,UAAW,aAKjB78B,MAAO,CACL,CACEqK,cAAe,IACfQ,UAAW,CACTrG,YAAY,EACZ3e,MAAO,uBACPq4C,cAAe,eAEjBlrB,MAAO,CACLrL,QAAS,GACTk1B,UAAW,gBAOW,EAAH,KACxB0lB,GADwB,IAE3B70C,SAAU,CACRp5B,gBAAiB,UACjBsvC,eAAgB,OAChBG,cAAe,OACfD,YAAa,EACbS,SAAU,GACV5Z,KAAM,UACN2M,UAAW,EACX7J,SAAU,WAEZ7N,OAAQ,CACNM,MAAO,CACL,CACEmK,cAAe,IACfQ,UAAW,CACTrG,YAAY,EACZ3e,MAAO,uBACPq4C,cAAe,eAEjBlrB,MAAO,CACL60B,aAAc,GACdE,aAAc,IACdpgC,QAAS,GACTk1B,UAAW,aAKjB78B,MAAO,CACL,CACEqK,cAAe,IACfQ,UAAW,CACTrG,YAAY,EACZ3e,MAAO,sBACPq4C,cAAe,eAEjBlrB,MAAO,CACLrL,QAAS,GACTk1B,UAAW,gBAMU,EAAH,KACvB0lB,GADuB,IAE1B70C,SAAU,CACRp5B,gBAAiB,UACjBsvC,eAAgB,OAChBG,cAAe,OACfD,YAAa,EACbS,SAAU,GACV5Z,KAAM,UACN2M,UAAW,EACX7J,SAAU,WAEZ7N,OAAQ,CACNM,MAAO,CACL,CACEmK,cAAe,IACfQ,UAAW,CACTrG,YAAY,EACZ3e,MAAO,uBACPq4C,cAAe,eAEjBlrB,MAAO,CACL60B,aAAc,GACdE,aAAc,IACdpgC,QAAS,GACTk1B,UAAW,aAKjB78B,MAAO,CACL,CACEqK,cAAe,IACfQ,UAAW,CACTrG,YAAY,EACZ3e,MAAO,sBACPq4C,cAAe,eAEjBlrB,MAAO,CACLrL,QAAS,GACTk1B,UAAW,gBAOQ,EAAH,KACrB0lB,GADqB,IAExB70C,SAAU,CACRp5B,gBAAiB,UACjBsvC,eAAgB,OAChBG,cAAe,OACfD,YAAa,EACbS,SAAU,GACV5Z,KAAM,UACN2M,UAAW,EACX7J,SAAU,WAEZ7N,OAAQ,CACNM,MAAO,CACL,CACE2K,UAAW,CACTrG,YAAY,EACZ3e,MAAO,uBACPq4C,cAAe,eAEjBlrB,MAAO,CACL60B,aAAc,GACdE,aAAc,IACdpgC,QAAS,GACTk1B,UAAW,aAIjB78B,MAAO,CACL,CACE6K,UAAW,CACTrG,YAAY,EACZ3e,MAAO,uBACPq4C,cAAe,eAEjBlrB,MAAO,CACLrL,QAAS,GACTk1B,UAAW,iB,8CCrfrBnnD,EAAOC,QACE,SAAUC,GAET,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUJ,QAGnC,IAAID,EAASG,EAAiBE,GAAY,CACzCb,EAAGa,EACHC,GAAG,EACHL,QAAS,IAUV,OANAC,EAAQG,GAAUE,KAAKP,EAAOC,QAASD,EAAQA,EAAOC,QAASG,GAG/DJ,EAAOM,GAAI,EAGJN,EAAOC,QAqCf,OAhCAG,EAAoBI,EAAIN,EAGxBE,EAAoBK,EAAIN,EAGxBC,EAAoBM,EAAI,SAAST,EAAS5E,EAAMsF,GAC3CP,EAAoBQ,EAAEX,EAAS5E,IAClCS,OAAO+E,eAAeZ,EAAS5E,EAAM,CACpCyF,cAAc,EACdC,YAAY,EACZC,IAAKL,KAMRP,EAAoBa,EAAI,SAASjB,GAChC,IAAIW,EAASX,GAAUA,EAAOkB,WAC7B,WAAwB,OAAOlB,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAI,EAAoBM,EAAEC,EAAQ,IAAKA,GAC5BA,GAIRP,EAAoBQ,EAAI,SAASO,EAAQC,GAAY,OAAOtF,OAAOe,UAAUwE,eAAed,KAAKY,EAAQC,IAGzGhB,EAAoBkB,EAAI,SAGjBlB,EAAoBA,EAAoBmB,EAAI,IA9DpD,CAiEC,CAEJC,EACA,SAAUxB,EAAQC,GAQxBD,EAAOC,QAAU,SACfwB,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAIC,EACAC,EAAgBP,EAAmBA,GAAoB,GAGvD5F,SAAc4F,EAAiB1F,QACtB,WAATF,GAA8B,aAATA,IACvBkG,EAAWN,EACXO,EAAgBP,EAAiB1F,SAInC,IAqBIkG,EArBAC,EAAmC,oBAAlBF,EACjBA,EAAcE,QACdF,EA+CJ,GA5CIN,IACFQ,EAAQC,OAAST,EAAiBS,OAClCD,EAAQE,gBAAkBV,EAAiBU,gBAC3CF,EAAQG,WAAY,GAIlBV,IACFO,EAAQI,YAAa,GAInBT,IACFK,EAAQK,SAAWV,GAIjBC,GACFG,EAAO,SAAUO,GAEfA,EACEA,GACCrG,KAAKsG,QAAUtG,KAAKsG,OAAOC,YAC3BvG,KAAKwG,QAAUxG,KAAKwG,OAAOF,QAAUtG,KAAKwG,OAAOF,OAAOC,WAEtDF,GAA0C,qBAAxBI,sBACrBJ,EAAUI,qBAGRhB,GACFA,EAAarB,KAAKpE,KAAMqG,GAGtBA,GAAWA,EAAQK,uBACrBL,EAAQK,sBAAsBC,IAAIhB,IAKtCI,EAAQa,aAAed,GACdL,IACTK,EAAOL,GAGLK,EAAM,CACR,IAAIK,EAAaJ,EAAQI,WACrBU,EAAWV,EACXJ,EAAQC,OACRD,EAAQe,aAEPX,GAQHJ,EAAQgB,cAAgBjB,EAExBC,EAAQC,OAAS,SAAmCgB,EAAGX,GAErD,OADAP,EAAK1B,KAAKiC,GACHQ,EAASG,EAAGX,KAVrBN,EAAQe,aAAeD,EACnB,GAAGI,OAAOJ,EAAUf,GACpB,CAACA,GAaT,MAAO,CACLF,SAAUA,EACV9B,QAAS+B,EACTE,QAASA,KAOPmB,EACA,SAAUrD,EAAQC,GAExBD,EAAOC,QAAU,EAAQ,SAInB8sE,GACA,SAAU/sE,EAAQC,GAExBD,EAAOC,QAAU,EAAQ,SAInB+sE,GACA,SAAUhtE,EAAQC,GAExBD,EAAOC,QAAU,EAAQ,SAInBgtE,EACA,SAAUjtE,EAAQC,GAExBD,EAAOC,QAAU,EAAQ,SAInBitE,GACA,SAAUltE,EAAQC,EAASG,GAEjC,aAGAH,EAAQiB,YAAa,EAErB,IAAIisE,EAAY/sE,EAAoB,IAEhCgtE,EAAa3pE,EAAuB0pE,GAExC,SAAS1pE,EAAuBC,GAAO,OAAOA,GAAOA,EAAIxC,WAAawC,EAAM,CAAE3H,QAAS2H,GAGvF0pE,EAAWrxE,QAAQ4H,QAAU,SAAUC,GACrCA,EAAIC,UAAUupE,EAAWrxE,QAAQV,KAAM+xE,EAAWrxE,UAGpDkE,EAAQlE,QAAUqxE,EAAWrxE,SAIvBsxE,GACA,SAAUrtE,EAAQ+D,EAAqB3D,GAE7C,aACAtE,OAAO+E,eAAekD,EAAqB,aAAc,CAAEC,OAAO,IAC7C,IAAIspE,EAAoHltE,EAAoB,IACxImtE,EAA4HntE,EAAoBa,EAAEqsE,GACvKlpE,EAAqBhE,EAAoB,GAIzCotE,EAAmB,KAEjBnpE,GAA8B,EAEhCC,EAAiB,KAEjBC,EAAkB,KAElBC,EAA4B,KAC5BC,EAAYL,EACdmpE,EAA0H7oE,EAC1H8oE,EACAnpE,EACAC,EACAC,EACAC,GAG2BT,EAAoB,WAAcU,EAAiB,SAK1EgpE,GACA,SAAUztE,EAAQC,EAASG,GAEjC,aAGAH,EAAQiB,YAAa,EAErB,IAAIwsE,EAAgBttE,EAAoB,IAEpCutE,EAAiBlqE,EAAuBiqE,GAExC9oE,EAAWxE,EAAoB,GAE/ByE,EAAYpB,EAAuBmB,GAEnCgpE,EAAaxtE,EAAoB,GAEjCytE,EAAcpqE,EAAuBmqE,GAErCE,EAAU1tE,EAAoB,IAE9B2tE,EAAWtqE,EAAuBqqE,GAElCvH,EAAenmE,EAAoB,IAEnComE,EAAgB/iE,EAAuB8iE,GAEvCyH,EAAQ5tE,EAAoB,GAEhC,SAASqD,EAAuBC,GAAO,OAAOA,GAAOA,EAAIxC,WAAawC,EAAM,CAAE3H,QAAS2H,GAEvFzD,EAAQlE,QAAU,CAChBV,KAAM,aAEN4yE,cAAe,aAEfzyE,OAAQ,CAACqJ,EAAU9I,QAAS8xE,EAAY9xE,SAExCmyE,WAAY,CAAEC,aAAcR,EAAe5xE,SAE3CmuE,WAAY,CACVkE,SAAUL,EAAShyE,QACnBsyE,cAAe7H,EAAczqE,SAG/BuyE,QAAS,WACP,MAAO,CACLC,SAAUpyE,OAKdR,MAAO,CACL6yE,QAAS,CACP3yE,KAAMgN,OACN9M,QAAS,SAEXF,KAAMgN,OACNyX,KAAM,CACJzkB,KAAMgN,OACN9M,QAAS,IAEX0yE,YAAazpE,QACb0pE,YAAa,CACX7yE,KAAMmJ,QACNjJ,SAAS,GAEX4yE,UAAW,CACT9yE,KAAMgN,OACN9M,QAAS,cAEX6yE,aAAc,CACZ7yE,SAAS,GAEX8yE,YAAa,CACXhzE,KAAMiN,OACN/M,QAAS,KAEX+yE,YAAa,CACXjzE,KAAMiN,OACN/M,QAAS,MAIbC,KAAM,WACJ,MAAO,CACL+N,QAAS,KACT80D,SAAS,EACTkQ,WAAY,KACZC,UAAW,KACXC,eAAgB,KAChBC,YAAa,KACbC,UAAU,EACVC,OAAQ,kBAAmB,EAAIpB,EAAMqB,gBAKzCC,SAAU,CACRC,aAAc,WACZ,OAAOpzE,KAAKmkB,OAASnkB,KAAKqzE,UAAY,IAAIlvD,OAI9CpkB,QAAS,WACPC,KAAKszE,IAAI,kBAAmBtzE,KAAKuzE,qBACjCvzE,KAAKwzE,YACLxzE,KAAKyzE,YAIP1nE,MAAO,CACL22D,QAAS,SAAiB7zD,GACxB7O,KAAK0zE,UAAU,iBAAkB,UAAW7kE,GAC5C7O,KAAKyL,MAAM,iBAAkBoD,IAE/BmkE,SAAU,SAAkBnkE,GAC1B,IAAI8kE,EAAa3zE,KAAK4zE,IAAIC,cAAc,2BACpCF,IAEE9kE,EACF8kE,EAAW1mC,WAAa,YAExB0mC,EAAW1mC,UAAY0mC,EAAW1mC,UAAU6mC,QAAQ,WAAY,OAMxE/qE,QAAS,CACPgrE,mBAAoB,WAClB,MAAO,CACLv0E,MAAO,CACL,aAAc,yCAIpBw0E,KAAM,WACJ,IAAIC,EAAQj0E,KAERA,KAAK4yE,WAAWhqE,WACpBsrE,aAAal0E,KAAK4N,SAClB5N,KAAK4N,QAAUC,YAAW,WACxBomE,EAAMvR,SAAU,IACE,UAAjB1iE,KAAKqyE,QAAsB,EAAIryE,KAAK0yE,eAEzCyB,KAAM,WACJ,IAAIC,EAASp0E,KAETA,KAAK4yE,WAAWhqE,WACpB5I,KAAKq0E,iBACLr0E,KAAKs0E,cAAct0E,KAAK4yE,YACxBsB,aAAal0E,KAAK4N,SAClB5N,KAAK4N,QAAUC,YAAW,WACxBumE,EAAO1R,SAAU,IACC,UAAjB1iE,KAAKqyE,QAAsB,EAAIryE,KAAK2yE,eAEzC3pE,YAAa,WACPhJ,KAAK4yE,WAAWhqE,WAChB5I,KAAK0iE,QACP1iE,KAAKm0E,OAELn0E,KAAKg0E,SAGTO,qBAAsB,SAA8BC,GAClD,IAAIC,EAAUD,EAAGC,QACb,CAAC,GAAI,IAAIzxE,QAAQyxE,IAAY,GAE/Bz0E,KAAKq0E,iBACLr0E,KAAKs0E,cAAct0E,KAAK6yE,UAAU,IAClC7yE,KAAK6yE,UAAU,GAAG6B,QAClBF,EAAGG,iBACHH,EAAGI,mBACkB,KAAZH,EAETz0E,KAAKgJ,cACI,CAAC,EAAG,IAAIhG,QAAQyxE,IAAY,GAErCz0E,KAAKm0E,QAITU,kBAAmB,SAA2BL,GAC5C,IAAIC,EAAUD,EAAGC,QACb/3D,EAAS83D,EAAG93D,OACZo4D,EAAe90E,KAAK8yE,eAAe9vE,QAAQ0Z,GAC3CtL,EAAMpR,KAAK8yE,eAAehoE,OAAS,EACnCiqE,OAAY,EACZ,CAAC,GAAI,IAAI/xE,QAAQyxE,IAAY,GAI7BM,EAFc,KAAZN,EAE2B,IAAjBK,EAAqBA,EAAe,EAAI,EAGxCA,EAAe1jE,EAAM0jE,EAAe,EAAI1jE,EAEtDpR,KAAKq0E,iBACLr0E,KAAKs0E,cAAct0E,KAAK6yE,UAAUkC,IAClC/0E,KAAK6yE,UAAUkC,GAAWL,QAC1BF,EAAGG,iBACHH,EAAGI,mBACkB,KAAZH,GAETz0E,KAAK4yE,WAAW8B,QAChBh4D,EAAOs4D,QACHh1E,KAAKuyE,cAEPvyE,KAAK0iE,SAAU,IAER,CAAC,EAAG,IAAI1/D,QAAQyxE,IAAY,IAErCz0E,KAAKm0E,OACLn0E,KAAK4yE,WAAW8B,UAIpBJ,cAAe,SAAuBW,GAEpCj1E,KAAKq0E,iBACLY,EAAI53C,aAAa,WAAY,MAE/Bg3C,eAAgB,WACdr0E,KAAK4yE,WAAWv1C,aAAa,WAAY,MACzCr9B,KAAK8yE,eAAe/nE,SAAQ,SAAU6V,GACpCA,EAAKyc,aAAa,WAAY,UAGlCo2C,SAAU,WACRzzE,KAAK+yE,YAAY11C,aAAa,KAAMr9B,KAAKizE,QACzCjzE,KAAK4yE,WAAWv1C,aAAa,gBAAiB,QAC9Cr9B,KAAK4yE,WAAWv1C,aAAa,gBAAiBr9B,KAAKizE,QACnDjzE,KAAK6yE,UAAY7yE,KAAK+yE,YAAYmC,iBAAiB,mBACnDl1E,KAAK8yE,eAAiBjmE,MAAMnM,UAAUkW,MAAMxS,KAAKpE,KAAK6yE,WAEjD7yE,KAAKsyE,cAERtyE,KAAK4yE,WAAWv1C,aAAa,OAAQ,UACrCr9B,KAAK4yE,WAAWv1C,aAAa,WAAY,KACzCr9B,KAAK4yE,WAAWv1C,aAAa,SAAUr9B,KAAK4yE,WAAWlnC,aAAa,UAAY,IAAM,6BAG1F8nC,UAAW,WACT,IAAI2B,EAASn1E,KAETqyE,EAAUryE,KAAKqyE,QACf2B,EAAOh0E,KAAKg0E,KACZG,EAAOn0E,KAAKm0E,KACZnrE,EAAchJ,KAAKgJ,YACnBspE,EAActyE,KAAKsyE,YACnBiC,EAAuBv0E,KAAKu0E,qBAC5BM,EAAoB70E,KAAK60E,kBAE7B70E,KAAK4yE,WAAaN,EAActyE,KAAKmN,MAAMklE,QAAQuB,IAAM5zE,KAAKo1E,OAAOx1E,QAAQ,GAAGy1E,IAEhF,IAAItC,EAAc/yE,KAAK+yE,YAAc/yE,KAAKo1E,OAAOhD,SAAS,GAAGiD,IAE7Dr1E,KAAK4yE,WAAW1mC,iBAAiB,UAAWqoC,GAC5CxB,EAAY7mC,iBAAiB,UAAW2oC,GAAmB,GAEtDvC,IACHtyE,KAAK4yE,WAAW1mC,iBAAiB,SAAS,WACxCipC,EAAOnC,UAAW,KAEpBhzE,KAAK4yE,WAAW1mC,iBAAiB,QAAQ,WACvCipC,EAAOnC,UAAW,KAEpBhzE,KAAK4yE,WAAW1mC,iBAAiB,SAAS,WACxCipC,EAAOnC,UAAW,MAGN,UAAZX,GACFryE,KAAK4yE,WAAW1mC,iBAAiB,aAAc8nC,GAC/Ch0E,KAAK4yE,WAAW1mC,iBAAiB,aAAcioC,GAC/CpB,EAAY7mC,iBAAiB,aAAc8nC,GAC3CjB,EAAY7mC,iBAAiB,aAAcioC,IACtB,UAAZ9B,GACTryE,KAAK4yE,WAAW1mC,iBAAiB,QAASljC,IAG9CuqE,oBAAqB,SAA6B5qE,EAAS2sE,GACrDt1E,KAAKuyE,cACPvyE,KAAK0iE,SAAU,GAEjB1iE,KAAKyL,MAAM,UAAW9C,EAAS2sE,IAEjCZ,MAAO,WACL10E,KAAK4yE,WAAW8B,OAAS10E,KAAK4yE,WAAW8B,UAI7C1uE,OAAQ,SAAgBgB,GACtB,IAAIuuE,EAASv1E,KAETm0E,EAAOn0E,KAAKm0E,KACZ7B,EAActyE,KAAKsyE,YACnB5yE,EAAOM,KAAKN,KACZ0zE,EAAepzE,KAAKozE,aAGpBoC,EAAwB,SAA+B7oC,GACzD4oC,EAAO9pE,MAAM,QAASkhC,GACtBwnC,KAGEvB,EAAcN,EAAoCtrE,EACpD,kBACA,KACA,CAACA,EACC,YACA,CACE2C,MAAO,CAAEjK,KAAMA,EAAMykB,KAAMivD,GAC3BqC,SAAU,CACR,MAASD,IAGb,CAACx1E,KAAKo1E,OAAOx1E,UACZoH,EACD,YACA,CAAEyF,IAAK,UAAW9C,MAAO,CAAEjK,KAAMA,EAAMykB,KAAMivD,GAC3C,MAAS,6BACX,CAACpsE,EACC,IACA,CAAE,MAAS,wCACX,QAnB0BhH,KAAKo1E,OAAOx1E,QAwB5C,OAAOoH,EACL,MACA,CAAE,MAAS,cAAe+qE,WAAY,CAAC,CACnC7yE,KAAM,eACN2I,MAAOssE,KAGX,CAACvB,EAAY5yE,KAAKo1E,OAAOhD,cAOzBsD,GACA,SAAU7xE,EAAQC,GAExBD,EAAOC,QAAU,EAAQ,SAInB6xE,EACA,SAAU9xE,EAAQC,GAExBD,EAAOC,QAAU,EAAQ,Y,mEC1mBzBD,EAAOC,QACE,SAAUC,GAET,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUJ,QAGnC,IAAID,EAASG,EAAiBE,GAAY,CACzCb,EAAGa,EACHC,GAAG,EACHL,QAAS,IAUV,OANAC,EAAQG,GAAUE,KAAKP,EAAOC,QAASD,EAAQA,EAAOC,QAASG,GAG/DJ,EAAOM,GAAI,EAGJN,EAAOC,QAqCf,OAhCAG,EAAoBI,EAAIN,EAGxBE,EAAoBK,EAAIN,EAGxBC,EAAoBM,EAAI,SAAST,EAAS5E,EAAMsF,GAC3CP,EAAoBQ,EAAEX,EAAS5E,IAClCS,OAAO+E,eAAeZ,EAAS5E,EAAM,CACpCyF,cAAc,EACdC,YAAY,EACZC,IAAKL,KAMRP,EAAoBa,EAAI,SAASjB,GAChC,IAAIW,EAASX,GAAUA,EAAOkB,WAC7B,WAAwB,OAAOlB,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAI,EAAoBM,EAAEC,EAAQ,IAAKA,GAC5BA,GAIRP,EAAoBQ,EAAI,SAASO,EAAQC,GAAY,OAAOtF,OAAOe,UAAUwE,eAAed,KAAKY,EAAQC,IAGzGhB,EAAoBkB,EAAI,SAGjBlB,EAAoBA,EAAoBmB,EAAI,IA9DpD,CAiEC,CAEJC,EACA,SAAUxB,EAAQC,GAQxBD,EAAOC,QAAU,SACfwB,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAIC,EACAC,EAAgBP,EAAmBA,GAAoB,GAGvD5F,SAAc4F,EAAiB1F,QACtB,WAATF,GAA8B,aAATA,IACvBkG,EAAWN,EACXO,EAAgBP,EAAiB1F,SAInC,IAqBIkG,EArBAC,EAAmC,oBAAlBF,EACjBA,EAAcE,QACdF,EA+CJ,GA5CIN,IACFQ,EAAQC,OAAST,EAAiBS,OAClCD,EAAQE,gBAAkBV,EAAiBU,gBAC3CF,EAAQG,WAAY,GAIlBV,IACFO,EAAQI,YAAa,GAInBT,IACFK,EAAQK,SAAWV,GAIjBC,GACFG,EAAO,SAAUO,GAEfA,EACEA,GACCrG,KAAKsG,QAAUtG,KAAKsG,OAAOC,YAC3BvG,KAAKwG,QAAUxG,KAAKwG,OAAOF,QAAUtG,KAAKwG,OAAOF,OAAOC,WAEtDF,GAA0C,qBAAxBI,sBACrBJ,EAAUI,qBAGRhB,GACFA,EAAarB,KAAKpE,KAAMqG,GAGtBA,GAAWA,EAAQK,uBACrBL,EAAQK,sBAAsBC,IAAIhB,IAKtCI,EAAQa,aAAed,GACdL,IACTK,EAAOL,GAGLK,EAAM,CACR,IAAIK,EAAaJ,EAAQI,WACrBU,EAAWV,EACXJ,EAAQC,OACRD,EAAQe,aAEPX,GAQHJ,EAAQgB,cAAgBjB,EAExBC,EAAQC,OAAS,SAAmCgB,EAAGX,GAErD,OADAP,EAAK1B,KAAKiC,GACHQ,EAASG,EAAGX,KAVrBN,EAAQe,aAAeD,EACnB,GAAGI,OAAOJ,EAAUf,GACpB,CAACA,GAaT,MAAO,CACLF,SAAUA,EACV9B,QAAS+B,EACTE,QAASA,KAOP6vE,EACA,SAAU/xE,EAAQC,GAExBD,EAAOC,QAAU,EAAQ,SAInB+xE,GACA,SAAUhyE,EAAQC,EAASG,GAEjC,aAGAH,EAAQiB,YAAa,EAErB,IAAI+wE,EAAgB7xE,EAAoB,IAEpC8xE,EAAiBzuE,EAAuBwuE,GAE5C,SAASxuE,EAAuBC,GAAO,OAAOA,GAAOA,EAAIxC,WAAawC,EAAM,CAAE3H,QAAS2H,GAGvFwuE,EAAen2E,QAAQ4H,QAAU,SAAUC,GACzCA,EAAIC,UAAUquE,EAAen2E,QAAQV,KAAM62E,EAAen2E,UAG5DkE,EAAQlE,QAAUm2E,EAAen2E,SAI3Bo2E,GACA,SAAUnyE,EAAQ+D,EAAqB3D,GAE7C,aACAtE,OAAO+E,eAAekD,EAAqB,aAAc,CAAEC,OAAO,IAC7C,IAAIouE,EAAyHhyE,EAAoB,IAC7IiyE,EAAiIjyE,EAAoBa,EAAEmxE,GACvJE,EAA+OlyE,EAAoB,IACxRgE,EAAqBhE,EAAoB,GAMvCiE,GAA8B,EAEhCC,EAAiB,KAEjBC,EAAkB,KAElBC,EAA4B,KAC5BC,EAAYL,EACdiuE,EAA+H3tE,EAC/H4tE,EAA6O,KAC7OjuE,EACAC,EACAC,EACAC,GAG2BT,EAAoB,WAAcU,EAAiB,SAK1E8tE,GACA,SAAUvyE,EAAQC,EAASG,GAEjC,aAGAH,EAAQiB,YAAa,EAErB,IAAIsxE,EAAapyE,EAAoB,GAEjCqyE,EAAchvE,EAAuB+uE,GAEzC,SAAS/uE,EAAuBC,GAAO,OAAOA,GAAOA,EAAIxC,WAAawC,EAAM,CAAE3H,QAAS2H,GAEvFzD,EAAQlE,QAAU,CAChBV,KAAM,iBAEN4yE,cAAe,iBAEfzyE,OAAQ,CAACi3E,EAAY12E,SAErBJ,MAAO,CACLizE,aAAc,CACZ/yE,KAAMmJ,QACNjJ,SAAS,GAEX22E,YAAa,CACX72E,KAAMiN,OACN/M,QAAS,IAIbC,KAAM,WACJ,MAAO,CACLskB,KAAMnkB,KAAKoyE,SAASgB,eAKxBoD,OAAQ,CAAC,YAETC,QAAS,WACP,IAAIxC,EAAQj0E,KAEZA,KAAKszE,IAAI,gBAAgB,WACnBW,EAAMyC,YAAYzC,EAAM0C,kBAE9B32E,KAAKszE,IAAI,WAAW,SAAUzkE,GAC5BolE,EAAMyC,WAAa7nE,MAGvB9O,QAAS,WACPC,KAAK42E,QAAQC,UAAY72E,KAAK62E,UAAY72E,KAAK4zE,IAC/C5zE,KAAK82E,aAAe92E,KAAK42E,QAAQhD,KAInC7nE,MAAO,CACL,qBAAsB,CACpBzL,WAAW,EACX8kC,QAAS,SAAiBv2B,GACxB7O,KAAK+2E,iBAAmBloE,OAc1BmoE,GACA,SAAUnzE,EAAQ+D,EAAqB3D,GAE7C,aACA,IAAI+B,EAAS,WAAa,IAAIoD,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,kBAAkBC,GAAG,CAAC,cAAcR,EAAI6tE,YAAY,CAAC1tE,EAAG,KAAK,CAACwoE,WAAW,CAAC,CAAC7yE,KAAK,OAAOg4E,QAAQ,SAASrvE,MAAOuB,EAAc,WAAE+tE,WAAW,eAAe1tE,YAAY,6BAA6BC,MAAM,CAACN,EAAI+a,MAAS,qBAAuB/a,EAAI+a,OAAQ,CAAC/a,EAAIS,GAAG,YAAY,MACxY5D,EAAkB,GAClB6D,EAAY,CAAE9D,OAAQA,EAAQC,gBAAiBA,GACtB2B,EAAoB,KAAO,M,yCCrUxD,I,MAAI5B,EAAS,WAAa,IAAIoD,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,cAAc,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,UAAU,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,IAAI,GAAK,MAAM,CAACJ,EAAG,KAAK,CAACE,YAAY,qCAAqC,CAACL,EAAIguE,GAAG,aAAa7tE,EAAG,MAAM,CAACE,YAAY,mCAAmCE,MAAM,CAAC,aAAa,eAAe,CAACJ,EAAG,sBAAsB,KAAKA,EAAG,QAAQ,CAACE,YAAY,aAAaE,MAAM,CAAC,KAAO,IAAI,GAAK,MAAM,CAACJ,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,KAAK,KAAO,YAAY,CAACP,EAAIguE,GAAG,SAAS7tE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,KAAK,KAAO,YAAY,CAACP,EAAIguE,GAAG,cAAc,IAAI,GAAG7tE,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,IAAI,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQ,gBAAgB,KAAO,eAAe,YAAY,UAAU,KAAO,oBAAoB,CAACJ,EAAG,WAAW,CAAC8tE,KAAK,UAAU,CAAC9tE,EAAG,OAAO,CAACE,YAAY,qBAAqB,CAACF,EAAG,IAAI,CAACE,YAAY,mBAAmBL,EAAIguE,GAAG,YAAY7tE,EAAG,OAAO,CAACE,YAAY,eAAe,CAACL,EAAIguE,GAAG,yBAAyB,IAAI,GAAG7tE,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,IAAI,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQ,gBAAgB,KAAO,kBAAkB,YAAY,QAAQ,KAAO,uBAAuB,CAACJ,EAAG,WAAW,CAAC8tE,KAAK,UAAU,CAAC9tE,EAAG,OAAO,CAACE,YAAY,qBAAqB,CAACF,EAAG,IAAI,CAACE,YAAY,mBAAmBL,EAAIguE,GAAG,aAAa7tE,EAAG,OAAO,CAACE,YAAY,eAAe,CAACL,EAAIguE,GAAG,yBAAyB,IAAI,GAAG7tE,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,IAAI,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQ,QAAQ,KAAO,iBAAiB,YAAY,MAAM,KAAO,sBAAsB,CAACJ,EAAG,WAAW,CAAC8tE,KAAK,UAAU,CAAC9tE,EAAG,OAAO,CAACE,YAAY,oBAAoB,CAACF,EAAG,IAAI,CAACE,YAAY,qBAAqBL,EAAIguE,GAAG,YAAY7tE,EAAG,OAAO,CAACE,YAAY,eAAe,CAACL,EAAIguE,GAAG,yBAAyB,IAAI,GAAG7tE,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,IAAI,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQ,cAAc,KAAO,gBAAgB,YAAY,SAAS,KAAO,uBAAuB,CAACJ,EAAG,WAAW,CAAC8tE,KAAK,UAAU,CAAC9tE,EAAG,OAAO,CAACE,YAAY,qBAAqB,CAACF,EAAG,IAAI,CAACE,YAAY,mBAAmBL,EAAIguE,GAAG,YAAY7tE,EAAG,OAAO,CAACE,YAAY,eAAe,CAACL,EAAIguE,GAAG,yBAAyB,IAAI,IAAI,IAAI,GAAG7tE,EAAG,cAAc,CAACE,YAAY,QAAQE,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,OAAO,CAACI,MAAM,CAAC,KAAO,UAAU,iBAAiB,mBAAmB,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,SAAS,UAAU,UAAU0tE,KAAK,UAAU,CAAC9tE,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACE,YAAY,uCAAuC,CAACL,EAAIguE,GAAG,cAAc7tE,EAAG,KAAK,CAACE,YAAY,sBAAsB,CAACL,EAAIguE,GAAG,mBAAmB7tE,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,iCAAiC,CAACF,EAAG,aAAa,CAACE,YAAY,eAAeE,MAAM,CAAC,OAA0C,IAAjCP,EAAIkuE,aAAaC,YAAkB,eAAe,aAAa3tE,GAAG,CAAC,MAAQ,SAAS4tE,GAAgC,OAAxBA,EAAO7C,iBAAwBvrE,EAAIquE,aAAa,MAAM,CAACluE,EAAG,OAAO,CAACE,YAAY,qBAAqB,CAACL,EAAIguE,GAAG,WAAW7tE,EAAG,OAAO,CAACE,YAAY,aAAa,CAACL,EAAIguE,GAAG,SAAS7tE,EAAG,aAAa,CAACI,MAAM,CAAC,eAAe,YAAY,OAA0C,IAAjCP,EAAIkuE,aAAaC,aAAmB3tE,GAAG,CAAC,MAAQ,SAAS4tE,GAAgC,OAAxBA,EAAO7C,iBAAwBvrE,EAAIquE,aAAa,MAAM,CAACluE,EAAG,OAAO,CAACE,YAAY,qBAAqB,CAACL,EAAIguE,GAAG,UAAU7tE,EAAG,OAAO,CAACE,YAAY,aAAa,CAACL,EAAIguE,GAAG,UAAU,IAAI,IAAI,GAAG7tE,EAAG,aAAa,CAACkD,IAAI,WAAW9C,MAAM,CAAC,OAAS,IAAI,aAAaP,EAAIkuE,aAAaj3E,UAAU,gBAAgB+I,EAAIkuE,aAAa73E,iBAAiB,IAAI,GAAG8J,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,OAAO,CAACI,MAAM,CAAC,iBAAiB,mBAAmB,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,SAAS,UAAU,UAAU0tE,KAAK,UAAU,CAAC9tE,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACE,YAAY,uCAAuC,CAACL,EAAIguE,GAAG,iBAAiB7tE,EAAG,KAAK,CAACE,YAAY,WAAW,CAACL,EAAIguE,GAAG,qBAAqB,GAAG7tE,EAAG,YAAY,CAACkD,IAAI,WAAW9C,MAAM,CAAC,OAAS,IAAI,aAAaP,EAAIsuE,YAAYr3E,cAAc,IAAI,IAAI,GAAGkJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,OAAO,CAACA,EAAG,KAAK,CAACE,YAAY,UAAUE,MAAM,CAAC,KAAO,UAAU0tE,KAAK,UAAU,CAACjuE,EAAIguE,GAAG,kBAAkB7tE,EAAG,cAAc,IAAI,GAAGA,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,OAAO,CAACA,EAAG,KAAK,CAACE,YAAY,UAAUE,MAAM,CAAC,KAAO,UAAU0tE,KAAK,UAAU,CAACjuE,EAAIguE,GAAG,gBAAgB7tE,EAAG,cAAc,IAAI,GAAGA,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,OAAO,CAACA,EAAG,KAAK,CAACE,YAAY,UAAUE,MAAM,CAAC,KAAO,UAAU0tE,KAAK,UAAU,CAACjuE,EAAIguE,GAAG,oBAAoB7tE,EAAG,wBAAwB,IAAI,IAAI,GAAGA,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,kBAAkB,GAAGA,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,eAAeA,EAAG,eAAe,CAACI,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAG,OAAO,CAACI,MAAM,CAAC,SAAW,UAAU,UAAU,KAAK,CAACJ,EAAG,cAAc,CAACA,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACE,YAAY,cAAc,CAACL,EAAIguE,GAAG,OAAO7tE,EAAG,OAAO,CAACE,YAAY,iBAAiB,CAACL,EAAIguE,GAAG,WAAW7tE,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACL,EAAIguE,GAAG,0BAA0B7tE,EAAG,MAAM,CAACA,EAAG,OAAO,CAACE,YAAY,gCAAgC,CAACL,EAAIguE,GAAG,WAAW7tE,EAAG,OAAO,CAACE,YAAY,cAAc,CAACL,EAAIguE,GAAG,gBAAgB7tE,EAAG,WAAW,CAACI,MAAM,CAAC,KAAO,KAAK,QAAU,UAAU,MAAQ,KAAK,CAACP,EAAIguE,GAAG,iBAAiB,GAAG7tE,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,cAAc,CAACL,EAAIguE,GAAG,iBAAiB7tE,EAAG,gBAAgB,CAACI,MAAM,CAAC,MAAQ,GAAG,KAAO,KAAK,mBAAmB,OAAO,KAAO,cAAc,GAAGJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,cAAc,CAACL,EAAIguE,GAAG,gBAAgB7tE,EAAG,gBAAgB,CAACI,MAAM,CAAC,MAAQ,GAAG,KAAO,KAAK,mBAAmB,OAAO,KAAO,cAAc,IAAI,IAAI,IAAI,GAAGJ,EAAG,OAAO,CAACI,MAAM,CAAC,SAAW,WAAW,CAACJ,EAAG,QAAQ,CAACE,YAAY,0BAA0BE,MAAM,CAAC,UAAU,WAAW,CAACJ,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,8BAA8B,IAAM,yBAAyBJ,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,SAAS,CAACJ,EAAG,UAAU,CAACI,MAAM,CAAC,KAAO,KAAK,QAAU,YAAY,CAACP,EAAIguE,GAAG,aAAa,IAAI,GAAG7tE,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,OAAO,CAACE,YAAY,0BAA0B,CAACL,EAAIguE,GAAG,gDAAgD7tE,EAAG,MAAM,CAACE,YAAY,iBAAiB,CAACL,EAAIguE,GAAG,iBAAiB7tE,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACA,EAAG,OAAO,CAACE,YAAY,0BAA0B,CAACL,EAAIguE,GAAG,UAAU7tE,EAAG,OAAO,CAACE,YAAY,yBAAyB,CAACL,EAAIguE,GAAG,kBAAkB,IAAI,IAAI,IAAI,IAAI,GAAG7tE,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,sBAAsB,GAAGA,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,yBAAyB,IAAI,IAAI,IAAI,IACxqMtD,EAAkB,G,wECDlB,EAAS,WAAa,IAAImD,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACouE,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,SAASmE,GAAG,WAAW,MAAO,CAACjG,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,KAAK,CAACE,YAAY,WAAW,CAACL,EAAIguE,GAAG,qBAAqB7tE,EAAG,MAAM,CAACE,YAAY,6BAA6B,CAACF,EAAG,MAAM,CAACE,YAAY,6BAA6B,CAACF,EAAG,IAAI,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACE,YAAY,SAASE,MAAM,CAAC,IAAM,2BAA2B,GAAGJ,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,IAAI,CAACE,YAAY,oCAAoCE,MAAM,CAAC,KAAO,MAAM,CAACP,EAAIguE,GAAG,eAAe7tE,EAAG,QAAQ,CAACE,YAAY,sBAAsB,CAACL,EAAIguE,GAAG,oBAAoB7tE,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,WAAW,CAACE,YAAY,WAAWE,MAAM,CAAC,QAAU,UAAU,KAAO,OAAO,CAACJ,EAAG,OAAO,CAACE,YAAY,mBAAmB,CAACF,EAAG,IAAI,CAACE,YAAY,oBAAoBF,EAAG,OAAO,CAACE,YAAY,mBAAmB,CAACL,EAAIguE,GAAG,eAAe,OAAOtpC,OAAM,MAAS,CAACvkC,EAAG,MAAM,CAACA,EAAG,IAAI,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAG,wNAAwN7tE,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAM,oBAAoB,IAAM,+BAA+B,QAAU,GAAG,MAAQ,MAAMJ,EAAG,QAAQ,CAACE,YAAY,0BAA0BE,MAAM,CAAC,UAAU,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,IAAI,CAACE,YAAY,cAAcE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,IAAI,CAACE,YAAY,iBAAiBF,EAAG,OAAO,CAACE,YAAY,cAAc,CAACL,EAAIguE,GAAG,WAAW7tE,EAAG,IAAI,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,IAAI,CAACE,YAAY,qBAAqBF,EAAG,OAAO,CAACE,YAAY,cAAc,CAACL,EAAIguE,GAAG,UAAU7tE,EAAG,IAAI,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,IAAI,CAACE,YAAY,sBAAsBF,EAAG,OAAO,CAACE,YAAY,cAAc,CAACL,EAAIguE,GAAG,cAAc7tE,EAAG,QAAQ,CAACE,YAAY,oBAAoBE,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,oDAAoD,CAACF,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,IAAI,CAACE,YAAY,kCAAkCE,MAAM,CAAC,KAAO,IAAI,cAAc,UAAU,sBAAsB,oBAAoB,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,OAAS,SAAS,IAAM,oBAAoB,IAAM,2BAA2B,GAAGJ,EAAG,IAAI,CAACE,YAAY,kCAAkCE,MAAM,CAAC,KAAO,IAAI,cAAc,UAAU,sBAAsB,gBAAgB,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,OAAS,SAAS,IAAM,oBAAoB,IAAM,2BAA2B,GAAGJ,EAAG,IAAI,CAACE,YAAY,kCAAkCE,MAAM,CAAC,KAAO,IAAI,cAAc,UAAU,sBAAsB,kBAAkB,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,OAAS,SAAS,IAAM,oBAAoB,IAAM,2BAA2B,KAAKJ,EAAG,QAAQ,CAACE,YAAY,yBAAyB,CAACL,EAAIguE,GAAG,uBAAuB,GAAG7tE,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,UAAU,CAACI,MAAM,CAAC,aAAa,uBAAuB,YAAY,gBAAgB,KAAO,mIAAmI,aAAa,EAAE,cAAc,KAAKJ,EAAG,UAAU,CAACI,MAAM,CAAC,aAAa,uBAAuB,YAAY,iBAAiB,KAAO,kKAAkK,aAAa,GAAG,cAAc,KAAKJ,EAAG,MAAMA,EAAG,UAAU,CAACE,YAAY,qBAAqBE,MAAM,CAAC,UAAU,KAAK,CAACJ,EAAG,QAAQ,CAACE,YAAY,wBAAwBE,MAAM,CAAC,QAAU,SAAS,IAAM,oBAAoB,IAAM,0BAA0BJ,EAAG,eAAe,CAACA,EAAG,UAAU,CAACI,MAAM,CAAC,YAAc,yBAAyB,IAAI,IAAI,IAAI,MACpqH,EAAkB,GCDlB,EAAS,WAAa,IAAIP,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,UAAU,CAACE,YAAY,sBAAsBE,MAAM,CAAC,UAAU,KAAK,CAACJ,EAAG,QAAQ,CAACE,YAAY,wCAAwCE,MAAM,CAAC,IAAM,oBAAoB,QAAU,SAAS,IAAMP,EAAIyuE,aAAatuE,EAAG,eAAe,CAACE,YAAY,cAAc,CAACF,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,KAAK,CAACE,YAAY,WAAW,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAG1uE,EAAI2uE,aAAaxuE,EAAG,IAAI,CAACE,YAAY,iBAAiBuuE,SAAS,CAAC,UAAY5uE,EAAI0uE,GAAG1uE,EAAI2F,SAASxF,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,IAAI,CAACE,YAAY,cAAcE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,IAAI,CAACE,YAAY,iBAAiBF,EAAG,OAAO,CAACE,YAAY,cAAc,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAG1uE,EAAI6uE,WAAW,cAAc1uE,EAAG,IAAI,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,IAAI,CAACE,YAAY,sBAAsBF,EAAG,OAAO,CAACE,YAAY,cAAc,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAG1uE,EAAI8uE,YAAY,sBAAsB,IAC74B,EAAkB,GCqBtB,G,UAAA,CACE,KAAF,UACE,MAAF,CACI,UAAJ,CACM,KAAN,OACM,QAAN,wBAEI,SAAJ,CACM,KAAN,OACM,QAAN,iBAEI,KAAJ,CACM,KAAN,OACM,QAAN,oIAEI,UAAJ,CACM,KAAN,OACM,QAAN,GAEI,WAAJ,CACM,KAAN,OACM,QAAN,MC3CgW,I,YCO5VxwE,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,QC4Ef,GACE,KAAF,gBACE,WAAF,CACI,QAAJ,ICjGqW,ICOjW,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAI0B,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQ,GAAG,cAAc,cAAcP,EAAI+uE,GAAI/uE,EAAS,OAAE,SAASwX,GAC7L,IAAIw3D,EACJ,OAAO7uE,EAAG,oBAAoB,CAAC8B,IAAIuV,EAAKmb,MAAMtyB,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACE,YAAY,iBAAiBC,OAAQ0uE,EAAO,CAAC,yBAA0Bx3D,EAAKy3D,MAAOD,EAAM,kBAAqBx3D,EAAc,WAAMA,EAAK03D,UAAWF,IAAQ,CAAC7uE,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,KAAK,CAACE,YAAY,wBAAwB,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAGl3D,EAAKmb,UAAUxyB,EAAG,QAAQ,CAACH,EAAIguE,GAAGhuE,EAAI0uE,GAAGl3D,EAAK23D,kBAAkBhvE,EAAG,MAAM,CAACA,EAAG,kBAAkB,CAACG,MAAO,mBAAsBkX,EAAc,UAAG9P,MAAM,CAACjJ,MAAO+Y,EAAS,KAAExC,SAAS,SAAUo6D,GAAMpvE,EAAIqvE,KAAK73D,EAAM,OAAQ43D,IAAMrB,WAAW,gBAAgB,UAAS,IAC1kB,EAAkB,GCiBtB,GACEt3E,KADF,WAEI,MAAO,CACLymC,MAAO,CACb,CACQ,MAAR,iBACQ,YAAR,WACQ,MAAR,EACQ,UAAR,WAEA,CACQ,MAAR,gBACQ,YAAR,WACQ,MAAR,EACQ,UAAR,WAEA,CACQ,MAAR,yBACQ,YAAR,WACQ,MAAR,EACQ,UAAR,QAEA,CACQ,MAAR,kBACQ,YAAR,WACQ,MAAR,EACQ,UAAR,cC9CiW,ICO7V,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAIl9B,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,eAAe,CAACE,YAAY,QAAQE,MAAM,CAAC,MAAQ,KAAKP,EAAI+uE,GAAI/uE,EAAS,OAAE,SAASsvE,GAAM,OAAOnvE,EAAG,oBAAoB,CAAC8B,IAAIqtE,EAAKlsE,GAAG/C,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAU,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,SAAS,CAACJ,EAAG,IAAI,CAACE,YAAY,wBAAwBE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAM,oBAAoB,IAAM+uE,EAAKC,QAAQ,KAAKpvE,EAAG,QAAQ,CAACE,YAAY,SAAS,CAACF,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACF,EAAG,IAAI,CAACI,MAAM,CAAC,KAAO,OAAO,CAACP,EAAIguE,GAAGhuE,EAAI0uE,GAAGY,EAAKx5E,WAAWqK,EAAG,OAAO,CAACG,MAAO,QAAWgvE,EAAe,YAAI,CAACtvE,EAAIguE,GAAG,QAAQ7tE,EAAG,QAAQ,CAACH,EAAIguE,GAAGhuE,EAAI0uE,GAAGY,EAAKE,aAAarvE,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,SAAS,CAACJ,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,UAAU,KAAO,OAAO,CAACP,EAAIguE,GAAG,UAAU,IAAI,IAAI,MAAK,IAC/yB,EAAkB,G,YC6BtB,GACEl4E,KAAM,YACN6uE,WAAY,CACV8K,aAAJ,QAEEh5E,KALF,WAMI,MAAO,CACLi5E,MAAO,CACb,CACQ,GAAR,EACQ,IAAR,uBACQ,KAAR,eACQ,OAAR,SACQ,WAAR,WAEA,CACQ,GAAR,EACQ,IAAR,uBACQ,KAAR,aACQ,OAAR,eACQ,WAAR,UAEA,CACQ,GAAR,EACQ,IAAR,uBACQ,KAAR,eACQ,OAAR,UACQ,WAAR,UAEA,CACQ,GAAR,EACQ,IAAR,uBACQ,KAAR,eACQ,OAAR,SACQ,WAAR,eChEiW,ICO7V,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,oBClBX,EAAS,WAAa,IAAI1vE,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACI,MAAM,CAAC,aAAa,MAAM,eAAe,YAAYguE,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,SAASmE,GAAG,WAAW,MAAO,CAACjG,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAG,mBAAmBtpC,OAAM,MAAS,CAACvkC,EAAG,WAAW,CAACE,YAAY,+BAA+BE,MAAM,CAAC,wBAAwB,cAAc,KAAOP,EAAI2vE,SAASniE,MAAM,EAAGxN,EAAI4vE,aAAa,CAACzvE,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,UAAU,YAAY,QAAQ,KAAO,OAAO,SAAW,IAAIguE,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,UAAUmE,GAAG,SAAS/C,GACvkB,IAAIwsE,EAAMxsE,EAAIwsE,IACd,MAAO,CAAC1vE,EAAG,UAAU,CAACE,YAAY,qBAAqBE,MAAM,CAAC,UAAU,KAAK,CAACJ,EAAG,IAAI,CAACE,YAAY,6BAA6BE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAM,oBAAoB,IAAMsvE,EAAIN,QAAQ,GAAGpvE,EAAG,eAAe,CAACA,EAAG,OAAO,CAACE,YAAY,qCAAqC,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAGmB,EAAIl9C,aAAa,UAAUxyB,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,SAAS,KAAO,SAAS,YAAY,QAAQ,SAAW,MAAMJ,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,SAAS,YAAY,QAAQ,KAAO,SAAS,SAAW,IAAIguE,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,UAAUmE,GAAG,SAAS/C,GAClkB,IAAIwsE,EAAMxsE,EAAIwsE,IACd,MAAO,CAAC1vE,EAAG,QAAQ,CAACE,YAAY,iBAAiBE,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAG,IAAI,CAACG,MAAO,MAASuvE,EAAc,aAAK1vE,EAAG,OAAO,CAACE,YAAY,UAAU,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAGmB,EAAIL,oBAAoBrvE,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,QAAQ,YAAY,UAAU,CAACJ,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,IAAI,CAACE,YAAY,kCAAkCE,MAAM,CAAC,KAAO,IAAI,cAAc,UAAU,sBAAsB,iBAAiB,CAACJ,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,oBAAoB,IAAM,4BAA4BJ,EAAG,IAAI,CAACE,YAAY,kCAAkCE,MAAM,CAAC,KAAO,IAAI,cAAc,UAAU,sBAAsB,iBAAiB,CAACJ,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,oBAAoB,IAAM,4BAA4BJ,EAAG,IAAI,CAACE,YAAY,kCAAkCE,MAAM,CAAC,KAAO,IAAI,cAAc,UAAU,sBAAsB,oBAAoB,CAACJ,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,oBAAoB,IAAM,4BAA4BJ,EAAG,IAAI,CAACE,YAAY,kCAAkCE,MAAM,CAAC,KAAO,IAAI,cAAc,UAAU,sBAAsB,gBAAgB,CAACJ,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,oBAAoB,IAAM,gCAAgCJ,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,aAAa,KAAO,aAAa,YAAY,QAAQ,SAAW,IAAIguE,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,UAAUmE,GAAG,SAAS/C,GACrxC,IAAIwsE,EAAMxsE,EAAIwsE,IACd,MAAO,CAAC1vE,EAAG,MAAM,CAACE,YAAY,6BAA6B,CAACF,EAAG,OAAO,CAACE,YAAY,mBAAmB,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAGmB,EAAIC,YAAY,OAAO3vE,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACI,MAAM,CAAC,KAAOsvE,EAAIE,WAAW,MAAQF,EAAIC,eAAe,YAAY3vE,EAAG,kBAAkB,CAACI,MAAM,CAAC,YAAY,SAASguE,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,UAAUmE,GAAG,SAAS/C,GACrUA,EAAIwsE,IACd,MAAO,CAAC1vE,EAAG,cAAc,CAACE,YAAY,WAAWE,MAAM,CAAC,QAAU,UAAU,CAACJ,EAAG,OAAO,CAACE,YAAY,uCAAuC,CAACF,EAAG,IAAI,CAACE,YAAY,6BAA6BF,EAAG,mBAAmB,CAACE,YAAY,yCAAyCE,MAAM,CAAC,KAAO,YAAY0tE,KAAK,YAAY,CAAC9tE,EAAG,kBAAkB,CAACH,EAAIguE,GAAG,YAAY7tE,EAAG,kBAAkB,CAACH,EAAIguE,GAAG,oBAAoB7tE,EAAG,kBAAkB,CAACH,EAAIguE,GAAG,0BAA0B,IAAI,WAAW,IAAI,IACrd,EAAkB,G,qMCsFtB,IACE,KAAF,cACE,YAAF,sBACA,SADA,sBAEA,SAFA,sBAGA,SAHA,sBAIA,SAJA,sBAKA,SALA,QAOE,MAAF,CACI,UAAJ,CACM,KAAN,OACM,QAAN,IAGE,KAfF,WAgBI,MAAJ,CACM,SAAN,CACA,CACQ,IAAR,0BACQ,MAAR,sBACQ,OAAR,YACQ,OAAR,UACQ,WAAR,UACQ,WAAR,IAEA,CACQ,IAAR,wBACQ,MAAR,yBACQ,OAAR,YACQ,OAAR,YACQ,WAAR,UACQ,WAAR,KAEA,CACQ,IAAR,uBACQ,MAAR,kBACQ,OAAR,YACQ,OAAR,UACQ,WAAR,SACQ,WAAR,IAEA,CACQ,IAAR,sBACQ,MAAR,2BACQ,OAAR,YACQ,OAAR,cACQ,WAAR,OACQ,WAAR,IAEA,CACQ,IAAR,oBACQ,MAAR,uBACQ,OAAR,YACQ,OAAR,YACQ,WAAR,UACQ,WAAR,KAEA,CACQ,IAAR,0BACQ,MAAR,sBACQ,OAAR,YACQ,OAAR,UACQ,WAAR,UACQ,WAAR,IAEA,CACQ,IAAR,wBACQ,MAAR,yBACQ,OAAR,YACQ,OAAR,YACQ,WAAR,UACQ,WAAR,KAEA,CACQ,IAAR,uBACQ,MAAR,kBACQ,OAAR,YACQ,OAAR,UACQ,WAAR,SACQ,WAAR,IAEA,CACQ,IAAR,oBACQ,MAAR,uBACQ,OAAR,YACQ,OAAR,YACQ,WAAR,UACQ,WAAR,MAGM,YAAN,KC1LmW,MCO/V,GAAY,eACd,GACA,EACA,GACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIhuE,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACI,MAAM,CAAC,aAAa,MAAM,eAAe,YAAYguE,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,SAASmE,GAAG,WAAW,MAAO,CAACjG,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAU,WAAW,CAACJ,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAG,sBAAsB7tE,EAAG,QAAQ,CAACE,YAAY,cAAc,CAACF,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,KAAK,KAAO,YAAY,CAACP,EAAIguE,GAAG,cAAc,IAAI,KAAKtpC,OAAM,MAAS,CAACvkC,EAAG,WAAW,CAACE,YAAY,yBAAyBE,MAAM,CAAC,KAAOP,EAAIgwE,UAAU,wBAAwB,gBAAgB,CAAC7vE,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,WAAW,YAAY,QAAQ,KAAO,QAAQguE,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,UAAUmE,GAAG,SAAS/C,GACntB,IAAIwsE,EAAMxsE,EAAIwsE,IACd,MAAO,CAAC1vE,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAGmB,EAAI/5E,gBAAgBqK,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,WAAW,YAAY,QAAQ,KAAO,cAAcJ,EAAG,kBAAkB,CAACI,MAAM,CAAC,YAAY,QAAQ,KAAO,YAAYguE,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,UAAUmE,GAAG,SAAS/C,GAChS,IAAIwsE,EAAMxsE,EAAIwsE,IACd,MAAO,CAAC1vE,EAAG,MAAM,CAACE,YAAY,6BAA6B,CAACF,EAAG,OAAO,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAGmB,EAAII,UAAU,OAAO9vE,EAAG,gBAAgB,CAACI,MAAM,CAAC,KAAOsvE,EAAIK,aAAa,MAAQL,EAAII,aAAa,WAAW,IAAI,IACtN,GAAkB,GCoCtB,IACE,KAAF,uBACE,YAAF,GACI,aAAJ,QADA,iBAEA,SAFA,sBAGA,SAHA,sBAIA,SAJA,sBAKA,SALA,sBAMA,SANA,QAQE,KAVF,WAWI,MAAJ,CACM,UAAN,CACA,CACQ,KAAR,WACQ,SAAR,QACQ,SAAR,GACQ,aAAR,mBAEA,CACQ,KAAR,WACQ,SAAR,QACQ,SAAR,GACQ,aAAR,oBAEA,CACQ,KAAR,SACQ,SAAR,QACQ,SAAR,GACQ,aAAR,oBAEA,CACQ,KAAR,YACQ,SAAR,QACQ,SAAR,GACQ,aAAR,iBAEA,CACQ,KAAR,UACQ,SAAR,QACQ,SAAR,GACQ,aAAR,wBClF2W,MCOvW,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIjwE,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACI,MAAM,CAAC,aAAa,MAAM,eAAe,YAAYguE,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,SAASmE,GAAG,WAAW,MAAO,CAACjG,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAU,WAAW,CAACJ,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAG,mBAAmB7tE,EAAG,QAAQ,CAACE,YAAY,cAAc,CAACF,EAAG,IAAI,CAACE,YAAY,yBAAyBE,MAAM,CAAC,KAAO,OAAO,CAACP,EAAIguE,GAAG,gBAAgB,KAAKtpC,OAAM,MAAS,CAACvkC,EAAG,WAAW,CAACE,YAAY,yBAAyBE,MAAM,CAAC,KAAOP,EAAIgwE,UAAU,wBAAwB,gBAAgB,CAAC7vE,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,YAAY,SAAW,GAAG,YAAY,QAAQ,KAAO,QAAQguE,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,UAAUmE,GAAG,SAAS/C,GACvuB,IAAIwsE,EAAMxsE,EAAIwsE,IACd,MAAO,CAAC1vE,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAGmB,EAAIM,gBAAgBhwE,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,WAAW,SAAW,GAAG,YAAY,OAAO,KAAO,cAAcJ,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,eAAe,SAAW,GAAG,YAAY,OAAO,KAAO,YAAYJ,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,cAAc,SAAW,GAAG,YAAY,OAAO,KAAO,cAAcguE,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,UAAUmE,GAAG,SAAS/C,GAC1b,IAAIwsE,EAAMxsE,EAAIwsE,IACd,MAAO,CAAC1vE,EAAG,IAAI,CAACE,YAAY,oCAAoCC,MAAkC,OAA5BuvE,EAAIO,oBAA+B,eAAgB,gBAAgBpwE,EAAIguE,GAAG,aAAahuE,EAAI0uE,GAAGmB,EAAIQ,YAAY,oBAAoB,IAAI,IACxM,GAAkB,GC+CtB,IACE,KAAF,oBACE,YAAF,sBACA,SADA,sBAEA,SAFA,sBAGA,SAHA,sBAIA,SAJA,sBAKA,SALA,QAOE,KATF,WAUI,MAAJ,CACM,UAAN,CACA,CACQ,KAAR,UACQ,SAAR,QACQ,OAAR,MACQ,WAAR,SACQ,oBAAR,MAEA,CACQ,KAAR,oBACQ,SAAR,QACQ,OAAR,MACQ,WAAR,SACQ,oBAAR,QAEA,CACQ,KAAR,qBACQ,SAAR,QACQ,OAAR,MACQ,WAAR,SACQ,oBAAR,QAEA,CACQ,KAAR,qBACQ,SAAR,QACQ,OAAR,MACQ,WAAR,SACQ,oBAAR,MAEA,CACQ,KAAR,sBACQ,SAAR,QACQ,OAAR,MACQ,WAAR,SACQ,oBAAR,YCjGwW,MCOpW,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCsPf,IACE,WAAF,CACI,aAAJ,EACI,UAAJ,OACI,SAAJ,OACI,aAAJ,OACI,gBAAJ,OACI,UAAJ,OACI,SAAJ,EACI,gBAAJ,GACI,mBAAJ,GACI,WAAJ,GACI,SAAJ,EACI,kBAAJ,QAEE,KAfF,WAgBI,MAAJ,CACM,aAAN,CACQ,QAAR,CACA,4BACA,4BAEQ,YAAR,EACQ,UAAR,CACU,SAAV,CACA,CACY,MAAZ,cACY,KAAZ,8BAGU,OAAV,mDAEQ,aAAR,QAEM,YAAN,CACQ,UAAR,CACU,OAAV,sCACU,SAAV,EACY,MAAZ,QACY,KAAZ,uBAGQ,aAAR,UAIE,QAAF,CACI,aADJ,SACA,GACM,IAAN,GACQ,SAAR,CACA,CACU,MAAV,cACU,KAAV,+BAGQ,OAAR,mDAEM,KAAN,yBACM,KAAN,6BAGE,QA7DF,WA8DI,KAAJ,kBCtUkW,MCO9V,GAAY,eACd,GACAzzE,EACAC,GACA,EACA,KACA,KACA,MAIa,gB,kDClBf,I,EAAID,EAAS,WAAa,IAAIoD,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,cAAc,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,UAAU,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,IAAI,KAAO,MAAM,CAACJ,EAAG,KAAK,CAACE,YAAY,0BAA0B,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAG1uE,EAAIswE,eAAe,iBAAiBnwE,EAAG,MAAM,CAACE,YAAY,mCAAmCE,MAAM,CAAC,aAAa,eAAe,CAACJ,EAAG,eAAe,CAACE,YAAY,oBAAoB,CAACF,EAAG,oBAAoB,CAACA,EAAG,cAAc,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,IAAI,CAACE,YAAY,mBAAmB,GAAGF,EAAG,oBAAoB,CAACA,EAAG,IAAI,CAACI,MAAM,CAAC,KAAO,MAAM,CAACP,EAAIguE,GAAGhuE,EAAI0uE,GAAG1uE,EAAIswE,eAAe,oBAAoB,IAAI,MAAM,GAAGnwE,EAAG,UAAU,CAACI,MAAM,CAAC,OAASP,EAAIuwE,QAAQ,MAAQ,UAAU,MAAQ,IAAI,OAAS,IAAI,OAAS,OAAO,cAAa,EAAK,gBAAe,GAAM/vE,GAAG,CAAC,gBAAgB,SAAS4tE,GAAQpuE,EAAIuwE,QAAQnC,MAA+2BpuE,EAAIwwE,MAAM,GAAOrwE,EAAG,cAAc,CAACE,YAAY,QAAQE,MAAM,CAAC,MAAQ,KAAK,CAAEP,EAAIywE,kBAAkBC,qBAAqBhvE,OAAS,EAAGvB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,OAAO,CAACJ,EAAG,sBAAsB,CAACI,MAAM,CAAC,MAAQ,yBAA2BP,EAAIywE,kBAAkBC,qBAAqBhvE,OAAS,IAAI,MAAQ1B,EAAIywE,kBAAkBC,qBAAqB,IAAM,8BAA8B,IAAI,GAAG1wE,EAAIwwE,KAA01BxwE,EAAIwwE,KAAKrwE,EAAG,eAAe,CAACE,YAAY,0BAA0BE,MAAM,CAAC,KAAO,OAAO,IAAa,IAC9kG1D,EAAkB,G,8KCDlB,EAAS,WAAa,IAAImD,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACI,MAAM,CAAC,UAAU,KAAK,CAACJ,EAAG,gBAAgB,CAACA,EAAG,KAAK,CAACE,YAAY,WAAW,CAACL,EAAIguE,GAAG,oBAAqBhuE,EAAc,WAAEG,EAAG,gBAAgB,CAACE,YAAY,QAAQ,CAACF,EAAG,SAAS,CAACA,EAAG,eAAe,CAACE,YAAY,QAAQ,CAACF,EAAG,aAAa,CAACE,YAAY,wCAAwCE,MAAM,CAAC,eAAe,gBAAgB,YAAc,SAAS,KAAO,UAAUmH,MAAM,CAACjJ,MAAOuB,EAAiB,cAAEgV,SAAS,SAAUo6D,GAAMpvE,EAAI2wE,cAAcvB,GAAKrB,WAAW,oBAAoB,IAAI,IAAI,GAAG/tE,EAAIwwE,KAAKrwE,EAAG,cAAc,CAACA,EAAG,eAAe,CAACE,YAAY,aAAaE,MAAM,CAAC,MAAQ,KAAKP,EAAI+uE,GAAI/uE,EAAW,SAAE,SAAS4wE,GAAQ,OAAOzwE,EAAG,oBAAoB,CAAC8B,IAAI2uE,EAAOC,MAAMxwE,YAAY,wBAAwB,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAU,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,SAAS,CAACJ,EAAG,IAAI,CAACE,YAAY,SAASE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,QAAU,SAAS,IAAM,oBAAoB,IAAMqwE,EAAOC,UAAU,KAAK1wE,EAAG,QAAQ,CAACE,YAAY,SAAS,CAACF,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACF,EAAG,IAAI,CAACI,MAAM,CAAC,KAAO,OAAO,CAACP,EAAIguE,GAAGhuE,EAAI0uE,GAAGkC,EAAO96E,WAAWqK,EAAG,OAAO,CAACG,MAAO,QAAWswE,EAAiB,YAAI,CAAC5wE,EAAIguE,GAAG,QAAQ7tE,EAAG,QAAQ,CAACH,EAAIguE,GAAGhuE,EAAI0uE,GAAGkC,EAAOpB,aAAarvE,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,SAAS,CAACJ,EAAG,WAAW,CAACI,MAAM,CAAC,KAAO,SAAS,KAAO,KAAK,QAAU,YAAY,CAACP,EAAIguE,GAAG,UAAU,IAAI,IAAI,MAAK,IAAI,IAAI,IAC33C,EAAkB,GCmDtB,GACE,KAAF,eACE,MAAF,CACI,WAAJ,CACM,KAAN,QACM,SAAN,IAGE,KARF,WASI,MAAJ,CACM,cAAN,GACM,QAAN,CACA,CACQ,KAAR,eACQ,OAAR,SACQ,WAAR,UACQ,MAAR,wBAEA,CACQ,KAAR,aACQ,OAAR,eACQ,WAAR,SACQ,MAAR,wBAEA,CACQ,KAAR,eACQ,OAAR,UACQ,WAAR,SACQ,MAAR,wBAEA,CACQ,KAAR,eACQ,OAAR,SACQ,WAAR,UACQ,MAAR,wBAEA,CACQ,KAAR,YACQ,OAAR,SACQ,WAAR,UACQ,MAAR,4BC5FoW,I,YCOhW1vE,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,QClBX,EAAS,WAAa,IAAI0B,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,OAAO,CAACI,MAAM,CAAC,eAAe,QAAQ,CAACJ,EAAG,KAAK,CAACE,YAAY,UAAUE,MAAM,CAAC,KAAO,UAAU0tE,KAAK,UAAU,CAACjuE,EAAIguE,GAAG,gBAAgB7tE,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQ,GAAG,cAAc,cAAcP,EAAI+uE,GAAI/uE,EAAS,OAAE,SAASwX,GACrU,IAAIw3D,EACJ,OAAO7uE,EAAG,oBAAoB,CAAC8B,IAAIuV,EAAKmb,MAAMtyB,YAAY,2DAA2D,CAACF,EAAG,MAAM,CAACE,YAAY,iBAAiBC,OAAQ0uE,EAAO,CAAC,yBAA0Bx3D,EAAKy3D,MAAOD,EAAM,kBAAqBx3D,EAAc,WAAMA,EAAK03D,UAAWF,IAAQ,CAAC7uE,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,KAAK,CAACE,YAAY,wBAAwB,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAGl3D,EAAKmb,UAAUxyB,EAAG,QAAQ,CAACH,EAAIguE,GAAGhuE,EAAI0uE,GAAGl3D,EAAK23D,kBAAkBhvE,EAAG,MAAM,CAACA,EAAG,kBAAkB,CAACG,MAAO,mBAAsBkX,EAAc,UAAG9P,MAAM,CAACjJ,MAAO+Y,EAAS,KAAExC,SAAS,SAAUo6D,GAAMpvE,EAAIqvE,KAAK73D,EAAM,OAAQ43D,IAAMrB,WAAW,gBAAgB,UAAS,IAAI,IACjoB,EAAkB,GCwBtB,GACE,KADF,WAEI,MAAJ,CACM,MAAN,CACA,CACQ,MAAR,iBACQ,YAAR,WACQ,MAAR,EACQ,UAAR,WAEA,CACQ,MAAR,gBACQ,YAAR,WACQ,MAAR,EACQ,UAAR,WAEA,CACQ,MAAR,yBACQ,YAAR,WACQ,MAAR,EACQ,UAAR,QAEA,CACQ,MAAR,kBACQ,YAAR,WACQ,MAAR,EACQ,UAAR,UAEA,CACQ,MAAR,qBACQ,YAAR,WACQ,MAAR,EACQ,UAAR,eC3DiW,ICO7V,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAI/tE,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACI,MAAM,CAAC,aAAa,MAAM,eAAe,YAAYguE,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,SAASmE,GAAG,WAAW,MAAO,CAACjG,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAU,WAAW,CAACJ,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAG1uE,EAAI2yB,YAAYxyB,EAAG,QAAQ,CAACE,YAAY,cAAc,CAACF,EAAG,IAAI,CAACE,YAAY,yBAAyBE,MAAM,CAAC,KAAO,sBAAsBC,GAAG,CAAC,MAAQR,EAAI8wE,UAAU,CAAC9wE,EAAIguE,GAAGhuE,EAAI0uE,GAAG1uE,EAAIswE,eAAe,mBAAmB,KAAK5rC,OAAM,MAAS,CAACvkC,EAAG,UAAU,CAACI,MAAM,CAAC,OAASP,EAAIuwE,QAAQ,MAAQ,UAAU,MAAQ,IAAI,OAAS,IAAI,OAAS,OAAO,cAAa,EAAK,gBAAe,GAAM/vE,GAAG,CAAC,gBAAgB,SAAS4tE,GAAQpuE,EAAIuwE,QAAQnC,MAAWjuE,EAAG,WAAW,CAACE,YAAY,yBAAyBE,MAAM,CAAC,KAAOP,EAAIk9B,MAAM,wBAAwB,eAAe18B,GAAG,CAAC,YAAYR,EAAI+wE,iBAAiB,CAAC5wE,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQP,EAAIswE,eAAe,YAAY,SAAW,GAAG,YAAY,OAAO,KAAO,QAAQ/B,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,UAAUmE,GAAG,SAAS/C,GAC3iC,IAAIwsE,EAAMxsE,EAAIwsE,IACd,MAAO,CAAC1vE,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAGmB,EAAImB,SAAS7wE,EAAG,MAAM,CAACH,EAAIguE,GAAGhuE,EAAI0uE,GAAGmB,EAAIzY,gBAAgBj3D,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQP,EAAIswE,eAAe,YAAY,SAAW,GAAG,YAAY,OAAO,KAAO,kBAAkBnwE,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQP,EAAIswE,eAAe,eAAe,SAAW,GAAG,YAAY,OAAO,KAAO,8BAA8BnwE,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQP,EAAIswE,eAAe,YAAY,SAAW,GAAG,YAAY,OAAO,KAAO,cAAcnwE,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQP,EAAIswE,eAAe,eAAe,SAAW,GAAG,KAAO,eAAe/B,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,UAAUmE,GAAG,SAAS/C,GACxpB,IAAIwsE,EAAMxsE,EAAIwsE,IACd,MAAO,CAAC1vE,EAAG,MAAM,CAACH,EAAIguE,GAAGhuE,EAAI0uE,GAAGmB,EAAIoB,iBAAiB,IAAIjxE,EAAI0uE,GAAGmB,EAAIqB,wBAAwB,IAAI,IAC5F,EAAkB,G,oyBC2DtB,I,EAAA,GACE,KAAF,oBACE,YAAF,GACI,QAAJ,KADA,iBAEA,SAFA,sBAGA,SAHA,sBAIA,SAJA,sBAKA,SALA,sBAMA,SANA,QAQE,SAAF,KACA,gBACI,eAAJ,YAAM,OAAN,4BACI,cAAJ,YAAM,OAAN,kCAGE,MAAF,CACI,MAAJ,CACM,KAAN,OACM,QAAN,GACM,YAAN,aACM,UAAN,GAEI,MAAJ,CACM,KAAN,MACM,QAAN,WAAQ,MAAR,IACM,YAAN,cACM,UAAN,GAEI,IAAJ,CACM,KAAN,OACM,QAAN,GACM,YAAN,WACM,UAAN,IAGE,KApCF,WAqCI,MAAJ,CACM,SAAN,IAGE,QACF,CACI,eADJ,oEACA,GADA,wFAGA,gBAHA,SAIA,oDAJA,OAKA,gBALA,yGAQI,QARJ,8JAUA,gBAVA,SAWA,mCAXA,OAYA,gBAZA,0GC1GmW,ICO/V,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAIlxE,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACI,MAAM,CAAC,aAAa,MAAM,eAAe,YAAYguE,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,SAASmE,GAAG,WAAW,MAAO,CAACjG,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAU,WAAW,CAACJ,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAG1uE,EAAI2yB,aAAa,KAAK+R,OAAM,MAAS,CAACvkC,EAAG,UAAU,CAACI,MAAM,CAAC,OAASP,EAAIuwE,QAAQ,MAAQ,UAAU,MAAQ,IAAI,OAAS,IAAI,OAAS,OAAO,cAAa,EAAK,gBAAe,GAAM/vE,GAAG,CAAC,gBAAgB,SAAS4tE,GAAQpuE,EAAIuwE,QAAQnC,MAAWjuE,EAAG,WAAW,CAACE,YAAY,yBAAyBE,MAAM,CAAC,KAAOP,EAAIk9B,MAAM,wBAAwB,eAAe18B,GAAG,CAAC,YAAYR,EAAI+wE,iBAAiB,CAAC5wE,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,UAAU,SAAW,GAAG,YAAY,QAAQ,KAAO,QAAQguE,YAAYvuE,EAAIwuE,GAAG,CAAC,CAACvsE,IAAI,UAAUmE,GAAG,SAAS/C,GACj1B,IAAIwsE,EAAMxsE,EAAIwsE,IACd,MAAO,CAAC1vE,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACL,EAAIguE,GAAGhuE,EAAI0uE,GAAGmB,EAAIsB,iBAAiBhxE,EAAG,MAAM,CAACH,EAAIguE,GAAGhuE,EAAI0uE,GAAGmB,EAAIuB,wBAAwBjxE,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,MAAM,SAAW,GAAG,YAAY,OAAO,KAAO,SAASJ,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,WAAW,SAAW,GAAG,YAAY,QAAQ,KAAO,mBAAmBJ,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,cAAc,SAAW,GAAG,YAAY,OAAO,KAAO,mBAAmB,IAAI,IAC/b,EAAkB,G,6kBCyCtB,QACE,KAAF,oBACE,YAAF,GACI,QAAJ,KADA,iBAEA,SAFA,sBAGA,SAHA,sBAIA,SAJA,sBAKA,SALA,sBAMA,SANA,QAQE,SAAF,MACA,gBACI,eAAJ,YAAM,OAAN,4BACI,cAAJ,YAAM,OAAN,kCAGE,MAAF,CACI,MAAJ,CACM,KAAN,OACM,QAAN,GACM,YAAN,aACM,UAAN,GAEI,MAAJ,CACM,KAAN,MACM,QAAN,WAAQ,MAAR,IACM,YAAN,cACM,UAAN,GAEI,IAAJ,CACM,KAAN,OACM,QAAN,GACM,YAAN,WACM,UAAN,IAGE,KApCF,WAqCI,MAAJ,CACM,SAAN,IAGE,QACF,CACI,eADJ,WAAM,IAAN,qDACA,GADA,uFAGA,gBACA,uDACA,wBAGA,gBARA,gDAAM,SAAN,oCAAM,OAAN,KAWI,QAXJ,WAAM,IAAN,+IAaA,gBAbA,SAcA,mCAdA,OAeA,gBAfA,gDAAM,SAAN,mCAAM,OAAN,OCtF4W,MCOxW,GAAY,eACd,GACA,EACA,GACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIP,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACE,YAAY,kBAAkBE,MAAM,CAAC,UAAU,KAAK,CAACJ,EAAG,gBAAgB,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAU,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,KAAK,CAACE,YAAY,WAAW,CAACL,EAAIguE,GAAG,iBAAiB7tE,EAAG,QAAQ,CAACE,YAAY,aAAaE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,IAAI,CAACE,YAAY,yBAAyBE,MAAM,CAAC,KAAO,OAAO,CAACP,EAAIguE,GAAG,eAAe,IAAI,GAAG7tE,EAAG,cAAc,CAACA,EAAG,YAAY,CAACE,YAAY,2BAA2BE,MAAM,CAAC,WAAWP,EAAI0E,QAAQ,OAAS1E,EAAI2E,UAAUxE,EAAG,eAAe,CAACE,YAAY,aAAaE,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,oBAAoB,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAU,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,SAAS,CAACJ,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,yBAAyB,IAAM,oBAAoBJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACH,EAAIguE,GAAG,cAAc7tE,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAG,qBAAqB7tE,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACH,EAAIguE,GAAG,aAAa7tE,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAG,YAAY7tE,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACH,EAAIguE,GAAG,aAAa7tE,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAG,YAAY,IAAI,GAAG7tE,EAAG,oBAAoB,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAU,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,SAAS,CAACJ,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,yBAAyB,IAAM,oBAAoBJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACH,EAAIguE,GAAG,cAAc7tE,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAG,eAAe7tE,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACH,EAAIguE,GAAG,aAAa7tE,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAG,YAAY7tE,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACH,EAAIguE,GAAG,aAAa7tE,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAG,YAAY,IAAI,GAAG7tE,EAAG,oBAAoB,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAU,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,SAAS,CAACJ,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,yBAAyB,IAAM,oBAAoBJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACH,EAAIguE,GAAG,cAAc7tE,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAG,qBAAqB7tE,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACH,EAAIguE,GAAG,aAAa7tE,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAG,YAAY7tE,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACH,EAAIguE,GAAG,aAAa7tE,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACL,EAAIguE,GAAG,YAAY,IAAI,IAAI,IAAI,IAAI,IAC/kE,GAAkB,G,aCwFtB,IACE,KAAF,WACE,WAAF,CACI,SAAJ,eAEE,KALF,WAMI,MAAJ,CACM,QAAN,CACQ,IAAR,IACQ,IAAR,IACQ,IAAR,IACQ,IAAR,KACQ,IAAR,IACQ,IAAR,IACQ,IAAR,IACQ,IAAR,IACQ,IAAR,IACQ,IAAR,IACQ,IAAR,MAEM,OAAN,CACA,CACQ,KAAR,SACQ,SAAR,OAEA,CACQ,KAAR,SACQ,SAAR,OAEA,CACQ,KAAR,QACQ,SAAR,OAEA,CACQ,KAAR,OACQ,SAAR,OAEA,CACQ,KAAR,YACQ,SAAR,OAEA,CACQ,KAAR,UACQ,SAAR,WCpIsW,MCOlW,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,wlBC4If,QACE,SAAF,MACA,gBACI,eAAJ,YAAM,OAAN,4BACI,cAAJ,YAAM,OAAN,+BACI,kBAAJ,YAAM,OAAN,6BAGE,WAAF,CACI,QAAJ,IACI,UAAJ,OACI,SAAJ,OACI,WAAJ,OACI,aAAJ,OACI,gBAAJ,OACI,UAAJ,OACI,SAAJ,EACI,cAAJ,GACI,WAAJ,EACI,oBAAJ,GACI,kBAAJ,OACI,YAAJ,GAEE,QAvBF,8JAyBA,gBAzBA,SA0BA,6BA1BA,OA2BA,gBA3BA,wGA6BE,KA7BF,WA8BI,MAAJ,CACM,SAAN,EACM,aAAN,CACQ,UAAR,CACU,SAAV,CACA,CACY,MAAZ,cACY,KAAZ,8BAGU,OAAV,mDAEQ,aAAR,QAEM,YAAN,CACQ,UAAR,CACU,OAAV,sCACU,SAAV,EACY,MAAZ,QACY,KAAZ,0BAME,QACF,CACI,sBADJ,uKAGA,sDAHA,wGAKI,YALJ,SAKA,GAEM,KAAN,WACM,KAAN,gBACM,KAAN,cC/N6W,MCOzW,GAAY,eACd,GACApxE,EACAC,GACA,EACA,KACA,KACA,MAIa,gB,2CClBf,IAAID,EAAS,WAAa,IAAIoD,EAAIpJ,KAASqJ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,eAAe,CAACE,YAAY,QAAQE,MAAM,CAAC,MAAQ,KAAKP,EAAI+uE,GAAI/uE,EAAIk9B,MAAM1vB,MAAM,EAAGxN,EAAI4vE,YAAY,SAASp4D,GAAM,OAAOrX,EAAG,oBAAoB,CAAC8B,IAAIuV,EAAKpU,GAAG/C,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAU,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,SAAS,CAACJ,EAAG,IAAI,CAACE,YAAY,SAASE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAM,oBAAoB,QAAU,SAAS,IAAMiX,EAAK+3D,QAAQ,KAAKpvE,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACH,EAAIguE,GAAGhuE,EAAI0uE,GAAGl3D,EAAKmb,UAAUxyB,EAAG,gBAAgB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAOiX,EAAK04D,aAAa,MAAQ14D,EAAKy4D,aAAa,IAAI,IAAI,MAAK,IACxoBpzE,EAAkB,G,wBCwBtB,GACE,KAAF,sBACE,MAAF,CACI,UAAJ,CACM,KAAN,OACM,QAAN,IAGE,WAAF,CACI,aAAJ,QAEE,KAXF,WAYI,MAAJ,CACM,MAAN,CACA,CACQ,GAAR,EACQ,IAAR,0BACQ,MAAR,sBACQ,SAAR,GACQ,aAAR,UAEA,CACQ,GAAR,EACQ,IAAR,wBACQ,MAAR,yBACQ,SAAR,IACQ,aAAR,SAEA,CACQ,GAAR,EACQ,IAAR,uBACQ,MAAR,kBACQ,SAAR,GACQ,aAAR,OAEA,CACQ,GAAR,EACQ,IAAR,sBACQ,MAAR,2BACQ,SAAR,GACQ,aAAR,QAEA,CACQ,GAAR,EACQ,IAAR,oBACQ,MAAR,uBACQ,SAAR,IACQ,aAAR,eCxE0W,I,YCOtWyB,EAAY,eACd,EACA1B,EACAC,GACA,EACA,KACA,KACA,MAIa,OAAAyB,E","file":"js/dashboard.fd07f7a5.js","sourcesContent":["import { Bar, mixins } from 'vue-chartjs';\nimport globalOptionsMixin from \"@/components/Charts/globalOptionsMixin\";\n\nexport default {\n name: 'bar-chart',\n extends: Bar,\n mixins: [mixins.reactiveProp, globalOptionsMixin],\n props: {\n extraOptions: {\n type: Object,\n default: () => ({})\n }\n },\n data() {\n return {\n ctx: null\n };\n },\n mounted() {\n this.$watch(\n 'chartData',\n (newVal, oldVal) => {\n if (!oldVal) {\n this.renderChart(this.chartData, this.extraOptions);\n }\n },\n { immediate: true }\n );\n }\n};\n","//\n// Chart extension for making the bars rounded\n// Code from: https://codepen.io/jedtrow/full/ygRYgo\n//\nimport Chart from 'chart.js'\nChart.elements.Rectangle.prototype.draw = function() {\n\n let ctx = this._chart.ctx;\n let vm = this._view;\n let left, right, top, bottom, signX, signY, borderSkipped, radius;\n let borderWidth = vm.borderWidth;\n // Set Radius Here\n // If radius is large enough to cause drawing errors a max radius is imposed\n let cornerRadius = 6;\n\n if (!vm.horizontal) {\n // bar\n left = vm.x - vm.width / 2;\n right = vm.x + vm.width / 2;\n top = vm.y;\n bottom = vm.base;\n signX = 1;\n signY = bottom > top ? 1 : -1;\n borderSkipped = vm.borderSkipped || 'bottom';\n } else {\n // horizontal bar\n left = vm.base;\n right = vm.x;\n top = vm.y - vm.height / 2;\n bottom = vm.y + vm.height / 2;\n signX = right > left ? 1 : -1;\n signY = 1;\n borderSkipped = vm.borderSkipped || 'left';\n }\n\n // Canvas doesn't allow us to stroke inside the width so we can\n // adjust the sizes to fit if we're setting a stroke on the line\n if (borderWidth) {\n // borderWidth shold be less than bar width and bar height.\n let barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\n borderWidth = borderWidth > barSize ? barSize : borderWidth;\n let halfStroke = borderWidth / 2;\n // Adjust borderWidth when bar top position is near vm.base(zero).\n let borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\n let borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\n let borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\n let borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\n // not become a vertical line?\n if (borderLeft !== borderRight) {\n top = borderTop;\n bottom = borderBottom;\n }\n // not become a horizontal line?\n if (borderTop !== borderBottom) {\n left = borderLeft;\n right = borderRight;\n }\n }\n\n ctx.beginPath();\n ctx.fillStyle = vm.backgroundColor;\n ctx.strokeStyle = vm.borderColor;\n ctx.lineWidth = borderWidth;\n\n // Corner points, from bottom-left to bottom-right clockwise\n // | 1 2 |\n // | 0 3 |\n let corners = [\n [left, bottom],\n [left, top],\n [right, top],\n [right, bottom]\n ];\n\n // Find first (starting) corner with fallback to 'bottom'\n let borders = ['bottom', 'left', 'top', 'right'];\n let startCorner = borders.indexOf(borderSkipped, 0);\n if (startCorner === -1) {\n startCorner = 0;\n }\n\n function cornerAt(index) {\n return corners[(startCorner + index) % 4];\n }\n\n // Draw rectangle from 'startCorner'\n let corner = cornerAt(0);\n ctx.moveTo(corner[0], corner[1]);\n\n for (let i = 1; i < 4; i++) {\n corner = cornerAt(i);\n let nextCornerId = i + 1;\n if (nextCornerId == 4) {\n nextCornerId = 0\n }\n\n let nextCorner = cornerAt(nextCornerId);\n\n let width = corners[2][0] - corners[1][0];\n let height = corners[0][1] - corners[1][1];\n let x = corners[1][0];\n let y = corners[1][1];\n\n let radius = cornerRadius;\n\n // Fix radius being too large\n if (radius > height / 2) {\n radius = height / 2;\n }\n if (radius > width / 2) {\n radius = width / 2;\n }\n\n ctx.moveTo(x + radius, y);\n ctx.lineTo(x + width - radius, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n ctx.lineTo(x + width, y + height - radius);\n ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n ctx.lineTo(x + radius, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n ctx.lineTo(x, y + radius);\n ctx.quadraticCurveTo(x, y, x + radius, y);\n\n }\n\n ctx.fill();\n if (borderWidth) {\n ctx.stroke();\n }\n};\n","import { initGlobalOptions } from \"@/components/Charts/config\";\nimport './roundedCornersExtension'\nexport default {\n mounted() {\n initGlobalOptions();\n }\n}\n","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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 = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 80);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n\n/***/ 80:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dropdownItem = __webpack_require__(81);\n\nvar _dropdownItem2 = _interopRequireDefault(_dropdownItem);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_dropdownItem2.default.install = function (Vue) {\n Vue.component(_dropdownItem2.default.name, _dropdownItem2.default);\n};\n\nexports.default = _dropdownItem2.default;\n\n/***/ }),\n\n/***/ 81:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue__ = __webpack_require__(82);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_646df6c7_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_item_vue__ = __webpack_require__(83);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_646df6c7_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_item_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 82:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: 'ElDropdownItem',\n\n mixins: [_emitter2.default],\n\n props: {\n command: {},\n disabled: Boolean,\n divided: Boolean\n },\n\n methods: {\n handleClick: function handleClick(e) {\n this.dispatch('ElDropdown', 'menu-item-click', [this.command, this]);\n }\n }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n\n/***/ 83:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"el-dropdown-menu__item\",class:{\n 'is-disabled': _vm.disabled,\n 'el-dropdown-menu__item--divided': _vm.divided\n },attrs:{\"aria-disabled\":_vm.disabled,\"tabindex\":_vm.disabled ? null : -1},on:{\"click\":_vm.handleClick}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n\n/******/ });","function dataHandler(newData, oldData) {\n if (oldData) {\n var chart = this.$data._chart;\n var newDatasetLabels = newData.datasets.map(function (dataset) {\n return dataset.label;\n });\n var oldDatasetLabels = oldData.datasets.map(function (dataset) {\n return dataset.label;\n });\n var oldLabels = JSON.stringify(oldDatasetLabels);\n var newLabels = JSON.stringify(newDatasetLabels);\n\n if (newLabels === oldLabels && oldData.datasets.length === newData.datasets.length) {\n newData.datasets.forEach(function (dataset, i) {\n var oldDatasetKeys = Object.keys(oldData.datasets[i]);\n var newDatasetKeys = Object.keys(dataset);\n var deletionKeys = oldDatasetKeys.filter(function (key) {\n return key !== '_meta' && newDatasetKeys.indexOf(key) === -1;\n });\n deletionKeys.forEach(function (deletionKey) {\n delete chart.data.datasets[i][deletionKey];\n });\n\n for (var attribute in dataset) {\n if (dataset.hasOwnProperty(attribute)) {\n chart.data.datasets[i][attribute] = dataset[attribute];\n }\n }\n });\n\n if (newData.hasOwnProperty('labels')) {\n chart.data.labels = newData.labels;\n this.$emit('labels:update');\n }\n\n if (newData.hasOwnProperty('xLabels')) {\n chart.data.xLabels = newData.xLabels;\n this.$emit('xlabels:update');\n }\n\n if (newData.hasOwnProperty('yLabels')) {\n chart.data.yLabels = newData.yLabels;\n this.$emit('ylabels:update');\n }\n\n chart.update();\n this.$emit('chart:update');\n } else {\n if (chart) {\n chart.destroy();\n this.$emit('chart:destroy');\n }\n\n this.renderChart(this.chartData, this.options);\n this.$emit('chart:render');\n }\n } else {\n if (this.$data._chart) {\n this.$data._chart.destroy();\n\n this.$emit('chart:destroy');\n }\n\n this.renderChart(this.chartData, this.options);\n this.$emit('chart:render');\n }\n}\n\nexport var reactiveData = {\n data: function data() {\n return {\n chartData: null\n };\n },\n watch: {\n 'chartData': dataHandler\n }\n};\nexport var reactiveProp = {\n props: {\n chartData: {\n type: Object,\n required: true,\n default: function _default() {}\n }\n },\n watch: {\n 'chartData': dataHandler\n }\n};\nexport default {\n reactiveData: reactiveData,\n reactiveProp: reactiveProp\n};","import Chart from 'chart.js';\nexport function generateChart(chartId, chartType) {\n return {\n render: function render(createElement) {\n return createElement('div', {\n style: this.styles,\n class: this.cssClasses\n }, [createElement('canvas', {\n attrs: {\n id: this.chartId,\n width: this.width,\n height: this.height\n },\n ref: 'canvas'\n })]);\n },\n props: {\n chartId: {\n default: chartId,\n type: String\n },\n width: {\n default: 400,\n type: Number\n },\n height: {\n default: 400,\n type: Number\n },\n cssClasses: {\n type: String,\n default: ''\n },\n styles: {\n type: Object\n },\n plugins: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n _chart: null,\n _plugins: this.plugins\n };\n },\n methods: {\n addPlugin: function addPlugin(plugin) {\n this.$data._plugins.push(plugin);\n },\n generateLegend: function generateLegend() {\n if (this.$data._chart) {\n return this.$data._chart.generateLegend();\n }\n },\n renderChart: function renderChart(data, options) {\n if (this.$data._chart) this.$data._chart.destroy();\n if (!this.$refs.canvas) throw new Error('Please remove the tags from your chart component. See https://vue-chartjs.org/guide/#vue-single-file-components');\n this.$data._chart = new Chart(this.$refs.canvas.getContext('2d'), {\n type: chartType,\n data: data,\n options: options,\n plugins: this.$data._plugins\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n if (this.$data._chart) {\n this.$data._chart.destroy();\n }\n }\n };\n}\nexport var Bar = generateChart('bar-chart', 'bar');\nexport var HorizontalBar = generateChart('horizontalbar-chart', 'horizontalBar');\nexport var Doughnut = generateChart('doughnut-chart', 'doughnut');\nexport var Line = generateChart('line-chart', 'line');\nexport var Pie = generateChart('pie-chart', 'pie');\nexport var PolarArea = generateChart('polar-chart', 'polarArea');\nexport var Radar = generateChart('radar-chart', 'radar');\nexport var Bubble = generateChart('bubble-chart', 'bubble');\nexport var Scatter = generateChart('scatter-chart', 'scatter');\nexport default {\n Bar: Bar,\n HorizontalBar: HorizontalBar,\n Doughnut: Doughnut,\n Line: Line,\n Pie: Pie,\n PolarArea: PolarArea,\n Radar: Radar,\n Bubble: Bubble,\n Scatter: Scatter\n};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"world-map\",attrs:{\"id\":_vm.id}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Simple throttle function that executes a passed function only once in the specified timeout\n * @param handlerFunc\n * @param [timeout] the throttle interval\n */\nexport function throttle(handlerFunc, timeout = 66) {\n let resizeTimeout;\n if (!resizeTimeout) {\n resizeTimeout = setTimeout(() => {\n resizeTimeout = null;\n handlerFunc();\n // The actualResizeHandler will execute at a rate of 15fps\n }, timeout);\n }\n}\n","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WorldMap.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WorldMap.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WorldMap.vue?vue&type=template&id=d2879e58&\"\nimport script from \"./WorldMap.vue?vue&type=script&lang=js&\"\nexport * from \"./WorldMap.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName$1[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\nfunction isValidKey(key) {\r\n\treturn ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\r\n}\r\n\r\n/**\r\n * @namespace Chart.helpers\r\n */\r\nvar helpers = {\r\n\t/**\r\n\t * An empty function that can be used, for example, for optional callback.\r\n\t */\r\n\tnoop: function() {},\r\n\r\n\t/**\r\n\t * Returns a unique id, sequentially generated from a global variable.\r\n\t * @returns {number}\r\n\t * @function\r\n\t */\r\n\tuid: (function() {\r\n\t\tvar id = 0;\r\n\t\treturn function() {\r\n\t\t\treturn id++;\r\n\t\t};\r\n\t}()),\r\n\r\n\t/**\r\n\t * Returns true if `value` is neither null nor undefined, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisNullOrUndef: function(value) {\r\n\t\treturn value === null || typeof value === 'undefined';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @function\r\n\t */\r\n\tisArray: function(value) {\r\n\t\tif (Array.isArray && Array.isArray(value)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar type = Object.prototype.toString.call(value);\r\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an object (excluding null), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisObject: function(value) {\r\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is a finite number, else returns false\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t */\r\n\tisFinite: function(value) {\r\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns `value` if defined, else returns `defaultValue`.\r\n\t * @param {*} value - The value to return if defined.\r\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueOrDefault: function(value, defaultValue) {\r\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\r\n\t * @param {Array} value - The array to lookup for value at `index`.\r\n\t * @param {number} index - The index in `value` to lookup for value.\r\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\r\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\r\n\t},\r\n\r\n\t/**\r\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\r\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\r\n\t * @param {function} fn - The function to call.\r\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @returns {*}\r\n\t */\r\n\tcallback: function(fn, args, thisArg) {\r\n\t\tif (fn && typeof fn.call === 'function') {\r\n\t\t\treturn fn.apply(thisArg, args);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Note(SB) for performance sake, this method should only be used when loopable type\r\n\t * is unknown or in none intensive code (not called often and small loopable). Else\r\n\t * it's preferable to use a regular for() loop and save extra function calls.\r\n\t * @param {object|Array} loopable - The object or array to be iterated.\r\n\t * @param {function} fn - The function to call for each item.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\r\n\t */\r\n\teach: function(loopable, fn, thisArg, reverse) {\r\n\t\tvar i, len, keys;\r\n\t\tif (helpers.isArray(loopable)) {\r\n\t\t\tlen = loopable.length;\r\n\t\t\tif (reverse) {\r\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (helpers.isObject(loopable)) {\r\n\t\t\tkeys = Object.keys(loopable);\r\n\t\t\tlen = keys.length;\r\n\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\r\n\t * @see https://stackoverflow.com/a/14853974\r\n\t * @param {Array} a0 - The array to compare\r\n\t * @param {Array} a1 - The array to compare\r\n\t * @returns {boolean}\r\n\t */\r\n\tarrayEquals: function(a0, a1) {\r\n\t\tvar i, ilen, v0, v1;\r\n\r\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\r\n\t\t\tv0 = a0[i];\r\n\t\t\tv1 = a1[i];\r\n\r\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\r\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} else if (v0 !== v1) {\r\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\r\n\t * @param {*} source - The value to clone.\r\n\t * @returns {*}\r\n\t */\r\n\tclone: function(source) {\r\n\t\tif (helpers.isArray(source)) {\r\n\t\t\treturn source.map(helpers.clone);\r\n\t\t}\r\n\r\n\t\tif (helpers.isObject(source)) {\r\n\t\t\tvar target = Object.create(source);\r\n\t\t\tvar keys = Object.keys(source);\r\n\t\t\tvar klen = keys.length;\r\n\t\t\tvar k = 0;\r\n\r\n\t\t\tfor (; k < klen; ++k) {\r\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\treturn source;\r\n\t},\r\n\r\n\t/**\r\n\t * The default merger when Chart.helpers.merge is called without merger option.\r\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\r\n\t * @private\r\n\t */\r\n\t_merger: function(key, target, source, options) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.merge(tval, sval, options);\r\n\t\t} else {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Merges source[key] in target[key] only if target[key] is undefined.\r\n\t * @private\r\n\t */\r\n\t_mergerIf: function(key, target, source) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.mergeIf(tval, sval);\r\n\t\t} else if (!target.hasOwnProperty(key)) {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @param {object} [options] - Merging options:\r\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmerge: function(target, source, options) {\r\n\t\tvar sources = helpers.isArray(source) ? source : [source];\r\n\t\tvar ilen = sources.length;\r\n\t\tvar merge, i, keys, klen, k;\r\n\r\n\t\tif (!helpers.isObject(target)) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\toptions = options || {};\r\n\t\tmerge = options.merger || helpers._merger;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!helpers.isObject(source)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tkeys = Object.keys(source);\r\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\r\n\t\t\t\tmerge(keys[k], target, source, options);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmergeIf: function(target, source) {\r\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\r\n\t},\r\n\r\n\t/**\r\n\t * Applies the contents of two or more objects together into the first object.\r\n\t * @param {object} target - The target object in which all objects are merged into.\r\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\r\n\t * @param {object} argN - Additional objects containing properties to merge in target.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\textend: Object.assign || function(target) {\r\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, dst, src) {\r\n\t\t\t\tdst[key] = src[key];\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Basic javascript inheritance based on the model created in Backbone.js\r\n\t */\r\n\tinherits: function(extensions) {\r\n\t\tvar me = this;\r\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\r\n\t\t\treturn me.apply(this, arguments);\r\n\t\t};\r\n\r\n\t\tvar Surrogate = function() {\r\n\t\t\tthis.constructor = ChartElement;\r\n\t\t};\r\n\r\n\t\tSurrogate.prototype = me.prototype;\r\n\t\tChartElement.prototype = new Surrogate();\r\n\t\tChartElement.extend = helpers.inherits;\r\n\r\n\t\tif (extensions) {\r\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\r\n\t\t}\r\n\r\n\t\tChartElement.__super__ = me.prototype;\r\n\t\treturn ChartElement;\r\n\t},\r\n\r\n\t_deprecated: function(scope, value, previous, current) {\r\n\t\tif (value !== undefined) {\r\n\t\t\tconsole.warn(scope + ': \"' + previous +\r\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar helpers_core = helpers;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.callback instead.\r\n * @function Chart.helpers.callCallback\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.callCallback = helpers.callback;\r\n\r\n/**\r\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\r\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\r\n * @function Chart.helpers.indexOf\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.indexOf = function(array, item, fromIndex) {\r\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\r\n};\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\r\n * @function Chart.helpers.getValueOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueOrDefault = helpers.valueOrDefault;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\r\n * @function Chart.helpers.getValueAtIndexOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\r\n * Easing functions adapted from Robert Penner's easing equations.\r\n * @namespace Chart.helpers.easingEffects\r\n * @see http://www.robertpenner.com/easing/\r\n */\r\nvar effects = {\r\n\tlinear: function(t) {\r\n\t\treturn t;\r\n\t},\r\n\r\n\teaseInQuad: function(t) {\r\n\t\treturn t * t;\r\n\t},\r\n\r\n\teaseOutQuad: function(t) {\r\n\t\treturn -t * (t - 2);\r\n\t},\r\n\r\n\teaseInOutQuad: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\r\n\t},\r\n\r\n\teaseInCubic: function(t) {\r\n\t\treturn t * t * t;\r\n\t},\r\n\r\n\teaseOutCubic: function(t) {\r\n\t\treturn (t = t - 1) * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutCubic: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\r\n\t},\r\n\r\n\teaseInQuart: function(t) {\r\n\t\treturn t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuart: function(t) {\r\n\t\treturn -((t = t - 1) * t * t * t - 1);\r\n\t},\r\n\r\n\teaseInOutQuart: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\r\n\t},\r\n\r\n\teaseInQuint: function(t) {\r\n\t\treturn t * t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuint: function(t) {\r\n\t\treturn (t = t - 1) * t * t * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutQuint: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\r\n\t},\r\n\r\n\teaseInSine: function(t) {\r\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\r\n\t},\r\n\r\n\teaseOutSine: function(t) {\r\n\t\treturn Math.sin(t * (Math.PI / 2));\r\n\t},\r\n\r\n\teaseInOutSine: function(t) {\r\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\r\n\t},\r\n\r\n\teaseInExpo: function(t) {\r\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\r\n\t},\r\n\r\n\teaseOutExpo: function(t) {\r\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\r\n\t},\r\n\r\n\teaseInOutExpo: function(t) {\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\r\n\t\t}\r\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\r\n\t},\r\n\r\n\teaseInCirc: function(t) {\r\n\t\tif (t >= 1) {\r\n\t\t\treturn t;\r\n\t\t}\r\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\r\n\t},\r\n\r\n\teaseOutCirc: function(t) {\r\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\r\n\t},\r\n\r\n\teaseInOutCirc: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\r\n\t\t}\r\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\r\n\t},\r\n\r\n\teaseInElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t},\r\n\r\n\teaseOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\r\n\t},\r\n\r\n\teaseInOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif ((t /= 0.5) === 2) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.45;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\tif (t < 1) {\r\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n\t},\r\n\teaseInBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn t * t * ((s + 1) * t - s);\r\n\t},\r\n\r\n\teaseOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\r\n\t},\r\n\r\n\teaseInOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\r\n\t},\r\n\r\n\teaseInBounce: function(t) {\r\n\t\treturn 1 - effects.easeOutBounce(1 - t);\r\n\t},\r\n\r\n\teaseOutBounce: function(t) {\r\n\t\tif (t < (1 / 2.75)) {\r\n\t\t\treturn 7.5625 * t * t;\r\n\t\t}\r\n\t\tif (t < (2 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\r\n\t\t}\r\n\t\tif (t < (2.5 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\r\n\t\t}\r\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\r\n\t},\r\n\r\n\teaseInOutBounce: function(t) {\r\n\t\tif (t < 0.5) {\r\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\r\n\t\t}\r\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\r\n\t}\r\n};\r\n\r\nvar helpers_easing = {\r\n\teffects: effects\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\r\n * @function Chart.helpers.easingEffects\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\r\nvar RAD_PER_DEG = PI / 180;\r\nvar DOUBLE_PI = PI * 2;\r\nvar HALF_PI = PI / 2;\r\nvar QUARTER_PI = PI / 4;\r\nvar TWO_THIRDS_PI = PI * 2 / 3;\r\n\r\n/**\r\n * @namespace Chart.helpers.canvas\r\n */\r\nvar exports$1 = {\r\n\t/**\r\n\t * Clears the entire canvas associated to the given `chart`.\r\n\t * @param {Chart} chart - The chart for which to clear the canvas.\r\n\t */\r\n\tclear: function(chart) {\r\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\r\n\t},\r\n\r\n\t/**\r\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\r\n\t * given size (width, height) and the same `radius` for all corners.\r\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\r\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} width - The rectangle's width.\r\n\t * @param {number} height - The rectangle's height.\r\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\r\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\r\n\t */\r\n\troundedRect: function(ctx, x, y, width, height, radius) {\r\n\t\tif (radius) {\r\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\r\n\t\t\tvar left = x + r;\r\n\t\t\tvar top = y + r;\r\n\t\t\tvar right = x + width - r;\r\n\t\t\tvar bottom = y + height - r;\r\n\r\n\t\t\tctx.moveTo(x, top);\r\n\t\t\tif (left < right && top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\r\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\r\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\r\n\t\t\t} else if (left < right) {\r\n\t\t\t\tctx.moveTo(left, y);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\r\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\r\n\t\t\t} else if (top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\r\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\r\n\t\t\t} else {\r\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\r\n\t\t\t}\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t} else {\r\n\t\t\tctx.rect(x, y, width, height);\r\n\t\t}\r\n\t},\r\n\r\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\r\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\r\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\r\n\r\n\t\tif (style && typeof style === 'object') {\r\n\t\t\ttype = style.toString();\r\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\r\n\t\t\t\tctx.save();\r\n\t\t\t\tctx.translate(x, y);\r\n\t\t\t\tctx.rotate(rad);\r\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\r\n\t\t\t\tctx.restore();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isNaN(radius) || radius <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\r\n\t\tswitch (style) {\r\n\t\t// Default includes circle\r\n\t\tdefault:\r\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'triangle':\r\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rectRounded':\r\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\r\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\r\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\r\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\r\n\t\t\t// circle with `radius`. For more details, see the following PRs:\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\r\n\t\t\tcornerRadius = radius * 0.516;\r\n\t\t\tsize = radius - cornerRadius;\r\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\r\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\r\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\r\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\r\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\r\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rect':\r\n\t\t\tif (!rotation) {\r\n\t\t\t\tsize = Math.SQRT1_2 * radius;\r\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'rectRot':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'crossRot':\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'cross':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'star':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'line':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'dash':\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tctx.fill();\r\n\t\tctx.stroke();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the point is inside the rectangle\r\n\t * @param {object} point - The point to test\r\n\t * @param {object} area - The rectangle\r\n\t * @returns {boolean}\r\n\t * @private\r\n\t */\r\n\t_isPointInArea: function(point, area) {\r\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\r\n\r\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\r\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\r\n\t},\r\n\r\n\tclipArea: function(ctx, area) {\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\r\n\t\tctx.clip();\r\n\t},\r\n\r\n\tunclipArea: function(ctx) {\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\tlineTo: function(ctx, previous, target, flip) {\r\n\t\tvar stepped = target.steppedLine;\r\n\t\tif (stepped) {\r\n\t\t\tif (stepped === 'middle') {\r\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\r\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\r\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\r\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\r\n\t\t\t\tctx.lineTo(previous.x, target.y);\r\n\t\t\t} else {\r\n\t\t\t\tctx.lineTo(target.x, previous.y);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.tension) {\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.bezierCurveTo(\r\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\r\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\r\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\r\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\r\n\t\t\ttarget.x,\r\n\t\t\ttarget.y);\r\n\t}\r\n};\r\n\r\nvar helpers_canvas = exports$1;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\r\n * @namespace Chart.helpers.clear\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.clear = exports$1.clear;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\r\n * @namespace Chart.helpers.drawRoundedRectangle\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.drawRoundedRectangle = function(ctx) {\r\n\tctx.beginPath();\r\n\texports$1.roundedRect.apply(exports$1, arguments);\r\n};\n\nvar defaults = {\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_set: function(scope, values) {\r\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\r\n\t}\r\n};\r\n\r\n// TODO(v3): remove 'global' from namespace. all default are global and\r\n// there's inconsistency around which options are under 'global'\r\ndefaults._set('global', {\r\n\tdefaultColor: 'rgba(0,0,0,0.1)',\r\n\tdefaultFontColor: '#666',\r\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\r\n\tdefaultFontSize: 12,\r\n\tdefaultFontStyle: 'normal',\r\n\tdefaultLineHeight: 1.2,\r\n\tshowLines: true\r\n});\r\n\r\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\r\n\r\n/**\r\n * Converts the given font object into a CSS font string.\r\n * @param {object} font - A font object.\r\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n * @private\r\n */\r\nfunction toFontString(font) {\r\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (font.style ? font.style + ' ' : '')\r\n\t\t+ (font.weight ? font.weight + ' ' : '')\r\n\t\t+ font.size + 'px '\r\n\t\t+ font.family;\r\n}\r\n\r\n/**\r\n * @alias Chart.helpers.options\r\n * @namespace\r\n */\r\nvar helpers_options = {\r\n\t/**\r\n\t * Converts the given line height `value` in pixels for a specific font `size`.\r\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\r\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\r\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\r\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoLineHeight: function(value, size) {\r\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\r\n\t\tif (!matches || matches[1] === 'normal') {\r\n\t\t\treturn size * 1.2;\r\n\t\t}\r\n\r\n\t\tvalue = +matches[2];\r\n\r\n\t\tswitch (matches[3]) {\r\n\t\tcase 'px':\r\n\t\t\treturn value;\r\n\t\tcase '%':\r\n\t\t\tvalue /= 100;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn size * value;\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the given value into a padding object with pre-computed width/height.\r\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\r\n\t * else, if and object, use defined properties and sets undefined ones to 0.\r\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoPadding: function(value) {\r\n\t\tvar t, r, b, l;\r\n\r\n\t\tif (helpers_core.isObject(value)) {\r\n\t\t\tt = +value.top || 0;\r\n\t\t\tr = +value.right || 0;\r\n\t\t\tb = +value.bottom || 0;\r\n\t\t\tl = +value.left || 0;\r\n\t\t} else {\r\n\t\t\tt = r = b = l = +value || 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: t,\r\n\t\t\tright: r,\r\n\t\t\tbottom: b,\r\n\t\t\tleft: l,\r\n\t\t\theight: t + b,\r\n\t\t\twidth: l + r\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Parses font options and returns the font object.\r\n\t * @param {object} options - A object that contains font options to be parsed.\r\n\t * @return {object} The font object.\r\n\t * @todo Support font.* options and renamed to toFont().\r\n\t * @private\r\n\t */\r\n\t_parseFont: function(options) {\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\r\n\t\tvar font = {\r\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\r\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\r\n\t\t\tsize: size,\r\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\r\n\t\t\tweight: null,\r\n\t\t\tstring: ''\r\n\t\t};\r\n\r\n\t\tfont.string = toFontString(font);\r\n\t\treturn font;\r\n\t},\r\n\r\n\t/**\r\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\r\n\t * @param {Array} inputs - An array of values, falling back to the last value.\r\n\t * @param {object} [context] - If defined and the current value is a function, the value\r\n\t * is called with `context` as first argument and the result becomes the new input.\r\n\t * @param {number} [index] - If defined and the current value is an array, the value\r\n\t * at `index` become the new input.\r\n\t * @param {object} [info] - object to return information about resolution in\r\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\r\n\t * @since 2.7.0\r\n\t */\r\n\tresolve: function(inputs, context, index, info) {\r\n\t\tvar cacheable = true;\r\n\t\tvar i, ilen, value;\r\n\r\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\r\n\t\t\tvalue = inputs[i];\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (context !== undefined && typeof value === 'function') {\r\n\t\t\t\tvalue = value(context);\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\r\n\t\t\t\tvalue = value[index];\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (value !== undefined) {\r\n\t\t\t\tif (info && !cacheable) {\r\n\t\t\t\t\tinfo.cacheable = false;\r\n\t\t\t\t}\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\n/**\r\n * @alias Chart.helpers.math\r\n * @namespace\r\n */\r\nvar exports$2 = {\r\n\t/**\r\n\t * Returns an array of factors sorted from 1 to sqrt(value)\r\n\t * @private\r\n\t */\r\n\t_factorize: function(value) {\r\n\t\tvar result = [];\r\n\t\tvar sqrt = Math.sqrt(value);\r\n\t\tvar i;\r\n\r\n\t\tfor (i = 1; i < sqrt; i++) {\r\n\t\t\tif (value % i === 0) {\r\n\t\t\t\tresult.push(i);\r\n\t\t\t\tresult.push(value / i);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\r\n\t\t\tresult.push(sqrt);\r\n\t\t}\r\n\r\n\t\tresult.sort(function(a, b) {\r\n\t\t\treturn a - b;\r\n\t\t}).pop();\r\n\t\treturn result;\r\n\t},\r\n\r\n\tlog10: Math.log10 || function(x) {\r\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\r\n\t\t// Check for whole powers of 10,\r\n\t\t// which due to floating point rounding error should be corrected.\r\n\t\tvar powerOf10 = Math.round(exponent);\r\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\r\n\r\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\r\n\t}\r\n};\r\n\r\nvar helpers_math = exports$2;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\r\n * @namespace Chart.helpers.log10\r\n * @deprecated since version 2.9.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn rectX + rectX + width - x;\r\n\t\t},\r\n\t\tsetWidth: function(w) {\r\n\t\t\twidth = w;\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\tif (align === 'center') {\r\n\t\t\t\treturn align;\r\n\t\t\t}\r\n\t\t\treturn align === 'right' ? 'left' : 'right';\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x - value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, itemWidth) {\r\n\t\t\treturn x - itemWidth;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getLtrAdapter = function() {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn x;\r\n\t\t},\r\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\treturn align;\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x + value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\r\n\t\t\treturn x;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getAdapter = function(rtl, rectX, width) {\r\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\r\n};\r\n\r\nvar overrideTextDirection = function(ctx, direction) {\r\n\tvar style, original;\r\n\tif (direction === 'ltr' || direction === 'rtl') {\r\n\t\tstyle = ctx.canvas.style;\r\n\t\toriginal = [\r\n\t\t\tstyle.getPropertyValue('direction'),\r\n\t\t\tstyle.getPropertyPriority('direction'),\r\n\t\t];\r\n\r\n\t\tstyle.setProperty('direction', direction, 'important');\r\n\t\tctx.prevTextDirection = original;\r\n\t}\r\n};\r\n\r\nvar restoreTextDirection = function(ctx) {\r\n\tvar original = ctx.prevTextDirection;\r\n\tif (original !== undefined) {\r\n\t\tdelete ctx.prevTextDirection;\r\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\r\n\t}\r\n};\r\n\r\nvar helpers_rtl = {\r\n\tgetRtlAdapter: getAdapter,\r\n\toverrideTextDirection: overrideTextDirection,\r\n\trestoreTextDirection: restoreTextDirection,\r\n};\n\nvar helpers$1 = helpers_core;\r\nvar easing = helpers_easing;\r\nvar canvas = helpers_canvas;\r\nvar options = helpers_options;\r\nvar math = helpers_math;\r\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\r\n\tvar keys = Object.keys(model);\r\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\r\n\r\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\tkey = keys[i];\r\n\r\n\t\ttarget = model[key];\r\n\r\n\t\t// if a value is added to the model after pivot() has been called, the view\r\n\t\t// doesn't contain it, so let's initialize the view to the target value.\r\n\t\tif (!view.hasOwnProperty(key)) {\r\n\t\t\tview[key] = target;\r\n\t\t}\r\n\r\n\t\tactual = view[key];\r\n\r\n\t\tif (actual === target || key[0] === '_') {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (!start.hasOwnProperty(key)) {\r\n\t\t\tstart[key] = actual;\r\n\t\t}\r\n\r\n\t\torigin = start[key];\r\n\r\n\t\ttype = typeof target;\r\n\r\n\t\tif (type === typeof origin) {\r\n\t\t\tif (type === 'string') {\r\n\t\t\t\tc0 = chartjsColor(origin);\r\n\t\t\t\tif (c0.valid) {\r\n\t\t\t\t\tc1 = chartjsColor(target);\r\n\t\t\t\t\tif (c1.valid) {\r\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\r\n\t\t\t\tview[key] = origin + (target - origin) * ease;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tview[key] = target;\r\n\t}\r\n}\r\n\r\nvar Element = function(configuration) {\r\n\thelpers$1.extend(this, configuration);\r\n\tthis.initialize.apply(this, arguments);\r\n};\r\n\r\nhelpers$1.extend(Element.prototype, {\r\n\t_type: undefined,\r\n\r\n\tinitialize: function() {\r\n\t\tthis.hidden = false;\r\n\t},\r\n\r\n\tpivot: function() {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\tme._view = helpers$1.extend({}, me._model);\r\n\t\t}\r\n\t\tme._start = {};\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttransition: function(ease) {\r\n\t\tvar me = this;\r\n\t\tvar model = me._model;\r\n\t\tvar start = me._start;\r\n\t\tvar view = me._view;\r\n\r\n\t\t// No animation -> No Transition\r\n\t\tif (!model || ease === 1) {\r\n\t\t\tme._view = helpers$1.extend({}, model);\r\n\t\t\tme._start = null;\r\n\t\t\treturn me;\r\n\t\t}\r\n\r\n\t\tif (!view) {\r\n\t\t\tview = me._view = {};\r\n\t\t}\r\n\r\n\t\tif (!start) {\r\n\t\t\tstart = me._start = {};\r\n\t\t}\r\n\r\n\t\tinterpolate(start, view, model, ease);\r\n\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\treturn {\r\n\t\t\tx: this._model.x,\r\n\t\t\ty: this._model.y\r\n\t\t};\r\n\t},\r\n\r\n\thasValue: function() {\r\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\r\n\t}\r\n});\r\n\r\nElement.extend = helpers$1.inherits;\r\n\r\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\r\n\tchart: null, // the animation associated chart instance\r\n\tcurrentStep: 0, // the current animation step\r\n\tnumSteps: 60, // default number of steps\r\n\teasing: '', // the easing to use for this animation\r\n\trender: null, // render function used by the animation service\r\n\r\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\r\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\r\n});\r\n\r\nvar core_animation = exports$3;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation instead\r\n * @prop Chart.Animation#animationObject\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'animationObject', {\r\n\tget: function() {\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation#chart instead\r\n * @prop Chart.Animation#chartInstance\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\r\n\tget: function() {\r\n\t\treturn this.chart;\r\n\t},\r\n\tset: function(value) {\r\n\t\tthis.chart = value;\r\n\t}\r\n});\n\ncore_defaults._set('global', {\r\n\tanimation: {\r\n\t\tduration: 1000,\r\n\t\teasing: 'easeOutQuart',\r\n\t\tonProgress: helpers$1.noop,\r\n\t\tonComplete: helpers$1.noop\r\n\t}\r\n});\r\n\r\nvar core_animations = {\r\n\tanimations: [],\r\n\trequest: null,\r\n\r\n\t/**\r\n\t * @param {Chart} chart - The chart to animate.\r\n\t * @param {Chart.Animation} animation - The animation that we will animate.\r\n\t * @param {number} duration - The animation duration in ms.\r\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\r\n\t */\r\n\taddAnimation: function(chart, animation, duration, lazy) {\r\n\t\tvar animations = this.animations;\r\n\t\tvar i, ilen;\r\n\r\n\t\tanimation.chart = chart;\r\n\t\tanimation.startTime = Date.now();\r\n\t\tanimation.duration = duration;\r\n\r\n\t\tif (!lazy) {\r\n\t\t\tchart.animating = true;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\r\n\t\t\tif (animations[i].chart === chart) {\r\n\t\t\t\tanimations[i] = animation;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tanimations.push(animation);\r\n\r\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\r\n\t\tif (animations.length === 1) {\r\n\t\t\tthis.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\tcancelAnimation: function(chart) {\r\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\r\n\t\t\treturn animation.chart === chart;\r\n\t\t});\r\n\r\n\t\tif (index !== -1) {\r\n\t\t\tthis.animations.splice(index, 1);\r\n\t\t\tchart.animating = false;\r\n\t\t}\r\n\t},\r\n\r\n\trequestAnimationFrame: function() {\r\n\t\tvar me = this;\r\n\t\tif (me.request === null) {\r\n\t\t\t// Skip animation frame requests until the active one is executed.\r\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\r\n\t\t\t// and 'mouseout' events will trigger multiple renders.\r\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tme.request = null;\r\n\t\t\t\tme.startDigest();\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tstartDigest: function() {\r\n\t\tvar me = this;\r\n\r\n\t\tme.advance();\r\n\r\n\t\t// Do we have more stuff to animate?\r\n\t\tif (me.animations.length > 0) {\r\n\t\t\tme.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tadvance: function() {\r\n\t\tvar animations = this.animations;\r\n\t\tvar animation, chart, numSteps, nextStep;\r\n\t\tvar i = 0;\r\n\r\n\t\t// 1 animation per chart, so we are looping charts here\r\n\t\twhile (i < animations.length) {\r\n\t\t\tanimation = animations[i];\r\n\t\t\tchart = animation.chart;\r\n\t\t\tnumSteps = animation.numSteps;\r\n\r\n\t\t\t// Make sure that currentStep starts at 1\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\r\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\r\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\r\n\r\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\r\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\r\n\r\n\t\t\tif (animation.currentStep >= numSteps) {\r\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\r\n\t\t\t\tchart.animating = false;\r\n\t\t\t\tanimations.splice(i, 1);\r\n\t\t\t} else {\r\n\t\t\t\t++i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\nvar resolve = helpers$1.options.resolve;\r\n\r\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\r\n\r\n/**\r\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\r\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\r\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\r\n */\r\nfunction listenArrayEvents(array, listener) {\r\n\tif (array._chartjs) {\r\n\t\tarray._chartjs.listeners.push(listener);\r\n\t\treturn;\r\n\t}\r\n\r\n\tObject.defineProperty(array, '_chartjs', {\r\n\t\tconfigurable: true,\r\n\t\tenumerable: false,\r\n\t\tvalue: {\r\n\t\t\tlisteners: [listener]\r\n\t\t}\r\n\t});\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\r\n\t\tvar base = array[key];\r\n\r\n\t\tObject.defineProperty(array, key, {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: function() {\r\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\r\n\t\t\t\tvar res = base.apply(this, args);\r\n\r\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\r\n\t\t\t\t\tif (typeof object[method] === 'function') {\r\n\t\t\t\t\t\tobject[method].apply(object, args);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n\r\n/**\r\n * Removes the given array event listener and cleanup extra attached properties (such as\r\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\r\n */\r\nfunction unlistenArrayEvents(array, listener) {\r\n\tvar stub = array._chartjs;\r\n\tif (!stub) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar listeners = stub.listeners;\r\n\tvar index = listeners.indexOf(listener);\r\n\tif (index !== -1) {\r\n\t\tlisteners.splice(index, 1);\r\n\t}\r\n\r\n\tif (listeners.length > 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tdelete array[key];\r\n\t});\r\n\r\n\tdelete array._chartjs;\r\n}\r\n\r\n// Base class for all dataset controllers (line, bar, etc)\r\nvar DatasetController = function(chart, datasetIndex) {\r\n\tthis.initialize(chart, datasetIndex);\r\n};\r\n\r\nhelpers$1.extend(DatasetController.prototype, {\r\n\r\n\t/**\r\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdatasetElementType: null,\r\n\r\n\t/**\r\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdataElementType: null,\r\n\r\n\t/**\r\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth'\r\n\t],\r\n\r\n\t/**\r\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'pointStyle'\r\n\t],\r\n\r\n\tinitialize: function(chart, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tme.chart = chart;\r\n\t\tme.index = datasetIndex;\r\n\t\tme.linkScales();\r\n\t\tme.addElements();\r\n\t\tme._type = me.getMeta().type;\r\n\t},\r\n\r\n\tupdateIndex: function(datasetIndex) {\r\n\t\tthis.index = datasetIndex;\r\n\t},\r\n\r\n\tlinkScales: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar chart = me.chart;\r\n\t\tvar scales = chart.scales;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scalesOpts = chart.options.scales;\r\n\r\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\r\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\r\n\t\t}\r\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\r\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\r\n\t\t}\r\n\t},\r\n\r\n\tgetDataset: function() {\r\n\t\treturn this.chart.data.datasets[this.index];\r\n\t},\r\n\r\n\tgetMeta: function() {\r\n\t\treturn this.chart.getDatasetMeta(this.index);\r\n\t},\r\n\r\n\tgetScaleForId: function(scaleID) {\r\n\t\treturn this.chart.scales[scaleID];\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScale: function() {\r\n\t\treturn this.getScaleForId(this._getValueScaleId());\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScale: function() {\r\n\t\treturn this.getScaleForId(this._getIndexScaleId());\r\n\t},\r\n\r\n\treset: function() {\r\n\t\tthis._update(true);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tdestroy: function() {\r\n\t\tif (this._data) {\r\n\t\t\tunlistenArrayEvents(this._data, this);\r\n\t\t}\r\n\t},\r\n\r\n\tcreateMetaDataset: function() {\r\n\t\tvar me = this;\r\n\t\tvar type = me.datasetElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index\r\n\t\t});\r\n\t},\r\n\r\n\tcreateMetaData: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar type = me.dataElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index\r\n\t\t});\r\n\t},\r\n\r\n\taddElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data || [];\r\n\t\tvar metaData = meta.data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\r\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\r\n\t\t}\r\n\r\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\r\n\t},\r\n\r\n\taddElementAndReset: function(index) {\r\n\t\tvar element = this.createMetaData(index);\r\n\t\tthis.getMeta().data.splice(index, 0, element);\r\n\t\tthis.updateElement(element, index, true);\r\n\t},\r\n\r\n\tbuildOrUpdateElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar data = dataset.data || (dataset.data = []);\r\n\r\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\r\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\r\n\t\t// the internal meta data accordingly.\r\n\t\tif (me._data !== data) {\r\n\t\t\tif (me._data) {\r\n\t\t\t\t// This case happens when the user replaced the data array instance.\r\n\t\t\t\tunlistenArrayEvents(me._data, me);\r\n\t\t\t}\r\n\r\n\t\t\tif (data && Object.isExtensible(data)) {\r\n\t\t\t\tlistenArrayEvents(data, me);\r\n\t\t\t}\r\n\t\t\tme._data = data;\r\n\t\t}\r\n\r\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\r\n\t\t// any updates and so make sure that we handle number of datapoints changing.\r\n\t\tme.resyncElements();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the merged user-supplied and default dataset-level options\r\n\t * @private\r\n\t */\r\n\t_configure: function() {\r\n\t\tvar me = this;\r\n\t\tme._config = helpers$1.merge(Object.create(null), [\r\n\t\t\tme.chart.options.datasets[me._type],\r\n\t\t\tme.getDataset(),\r\n\t\t], {\r\n\t\t\tmerger: function(key, target, source) {\r\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\r\n\t\t\t\t\thelpers$1._merger(key, target, source);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_update: function(reset) {\r\n\t\tvar me = this;\r\n\t\tme._configure();\r\n\t\tme._cachedDataOpts = null;\r\n\t\tme.update(reset);\r\n\t},\r\n\r\n\tupdate: helpers$1.noop,\r\n\r\n\ttransition: function(easingValue) {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].transition(easingValue);\r\n\t\t}\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.transition(easingValue);\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.draw();\r\n\t\t}\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].draw();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a set of predefined style properties that should be used to represent the dataset\r\n\t * or the data if the index is specified\r\n\t * @param {number} index - data index\r\n\t * @return {IStyleInterface} style object\r\n\t */\r\n\tgetStyle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = meta.dataset;\r\n\t\tvar style;\r\n\r\n\t\tme._configure();\r\n\t\tif (dataset && index === undefined) {\r\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\r\n\t\t} else {\r\n\t\t\tindex = index || 0;\r\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\r\n\t\t}\r\n\r\n\t\tif (style.fill === false || style.fill === null) {\r\n\t\t\tstyle.backgroundColor = style.borderColor;\r\n\t\t}\r\n\r\n\t\treturn style;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element, hover) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._datasetElementOptions;\r\n\t\tvar values = {};\r\n\t\tvar i, ilen, key, readKey;\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index,\r\n\t\t\thover: hover\r\n\t\t};\r\n\r\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\tkey = elementOptions[i];\r\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\r\n\t\t\tvalues[key] = resolve([\r\n\t\t\t\tcustom[readKey],\r\n\t\t\t\tdatasetOpts[readKey],\r\n\t\t\t\toptions[readKey]\r\n\t\t\t], context);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(element, index) {\r\n\t\tvar me = this;\r\n\t\tvar custom = element && element.custom;\r\n\t\tvar cached = me._cachedDataOpts;\r\n\t\tif (cached && !custom) {\r\n\t\t\treturn cached;\r\n\t\t}\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._dataElementOptions;\r\n\t\tvar values = {};\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\r\n\t\tvar info = {cacheable: !custom};\r\n\r\n\t\tvar keys, i, ilen, key;\r\n\r\n\t\tcustom = custom || {};\r\n\r\n\t\tif (helpers$1.isArray(elementOptions)) {\r\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\t\tkey = elementOptions[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tkeys = Object.keys(elementOptions);\r\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\t\tkey = keys[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (info.cacheable) {\r\n\t\t\tme._cachedDataOpts = Object.freeze(values);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tremoveHoverStyle: function(element) {\r\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\r\n\t\tdelete element.$previousStyle;\r\n\t},\r\n\r\n\tsetHoverStyle: function(element) {\r\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\tvar index = element._index;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar model = element._model;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\telement.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\r\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\r\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_removeDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\r\n\t\tif (element) {\r\n\t\t\tthis.removeHoverStyle(element);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_setDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\t\tvar prev = {};\r\n\t\tvar i, ilen, key, keys, hoverOptions, model;\r\n\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tmodel = element._model;\r\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\r\n\r\n\t\tkeys = Object.keys(hoverOptions);\r\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\tkey = keys[i];\r\n\t\t\tprev[key] = model[key];\r\n\t\t\tmodel[key] = hoverOptions[key];\r\n\t\t}\r\n\r\n\t\telement.$previousStyle = prev;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tresyncElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data;\r\n\t\tvar numMeta = meta.data.length;\r\n\t\tvar numData = data.length;\r\n\r\n\t\tif (numData < numMeta) {\r\n\t\t\tmeta.data.splice(numData, numMeta - numData);\r\n\t\t} else if (numData > numMeta) {\r\n\t\t\tme.insertElements(numMeta, numData - numMeta);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tinsertElements: function(start, count) {\r\n\t\tfor (var i = 0; i < count; ++i) {\r\n\t\t\tthis.addElementAndReset(start + i);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPush: function() {\r\n\t\tvar count = arguments.length;\r\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPop: function() {\r\n\t\tthis.getMeta().data.pop();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataShift: function() {\r\n\t\tthis.getMeta().data.shift();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataSplice: function(start, count) {\r\n\t\tthis.getMeta().data.splice(start, count);\r\n\t\tthis.insertElements(start, arguments.length - 2);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataUnshift: function() {\r\n\t\tthis.insertElements(0, arguments.length);\r\n\t}\r\n});\r\n\r\nDatasetController.extend = helpers$1.inherits;\r\n\r\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tarc: {\r\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\r\n\t\t\tborderColor: '#fff',\r\n\t\t\tborderWidth: 2,\r\n\t\t\tborderAlign: 'center'\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction clipArc(ctx, arc) {\r\n\tvar startAngle = arc.startAngle;\r\n\tvar endAngle = arc.endAngle;\r\n\tvar pixelMargin = arc.pixelMargin;\r\n\tvar angleMargin = pixelMargin / arc.outerRadius;\r\n\tvar x = arc.x;\r\n\tvar y = arc.y;\r\n\r\n\t// Draw an inner border by cliping the arc and drawing a double-width border\r\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\r\n\tctx.beginPath();\r\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\r\n\tif (arc.innerRadius > pixelMargin) {\r\n\t\tangleMargin = pixelMargin / arc.innerRadius;\r\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\r\n\t} else {\r\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\r\n\t}\r\n\tctx.closePath();\r\n\tctx.clip();\r\n}\r\n\r\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\r\n\tvar endAngle = arc.endAngle;\r\n\tvar i;\r\n\r\n\tif (inner) {\r\n\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\tclipArc(ctx, arc);\r\n\t\tarc.endAngle = endAngle;\r\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\r\n\t\t\tarc.endAngle += TAU;\r\n\t\t\tarc.fullCircles--;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nfunction drawBorder(ctx, vm, arc) {\r\n\tvar inner = vm.borderAlign === 'inner';\r\n\r\n\tif (inner) {\r\n\t\tctx.lineWidth = vm.borderWidth * 2;\r\n\t\tctx.lineJoin = 'round';\r\n\t} else {\r\n\t\tctx.lineWidth = vm.borderWidth;\r\n\t\tctx.lineJoin = 'bevel';\r\n\t}\r\n\r\n\tif (arc.fullCircles) {\r\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\r\n\t}\r\n\r\n\tif (inner) {\r\n\t\tclipArc(ctx, arc);\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\tctx.closePath();\r\n\tctx.stroke();\r\n}\r\n\r\nvar element_arc = core_element.extend({\r\n\t_type: 'arc',\r\n\r\n\tinLabelRange: function(mouseX) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinRange: function(chartX, chartY) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\r\n\t\t\tvar angle = pointRelativePosition.angle;\r\n\t\t\tvar distance = pointRelativePosition.distance;\r\n\r\n\t\t\t// Sanitise angle range\r\n\t\t\tvar startAngle = vm.startAngle;\r\n\t\t\tvar endAngle = vm.endAngle;\r\n\t\t\twhile (endAngle < startAngle) {\r\n\t\t\t\tendAngle += TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle > endAngle) {\r\n\t\t\t\tangle -= TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle < startAngle) {\r\n\t\t\t\tangle += TAU;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if within the range of the open/close angle\r\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\r\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\r\n\r\n\t\t\treturn (betweenAngles && withinRadius);\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\r\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\r\n\t\treturn {\r\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\r\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\r\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\r\n\r\n\t\treturn {\r\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\r\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\r\n\t\tvar arc = {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tinnerRadius: vm.innerRadius,\r\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\r\n\t\t\tpixelMargin: pixelMargin,\r\n\t\t\tstartAngle: vm.startAngle,\r\n\t\t\tendAngle: vm.endAngle,\r\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\r\n\t\t};\r\n\t\tvar i;\r\n\r\n\t\tctx.save();\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\r\n\t\tif (arc.fullCircles) {\r\n\t\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\t\tctx.closePath();\r\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\t\t\tctx.fill();\r\n\t\t\t}\r\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\tctx.closePath();\r\n\t\tctx.fill();\r\n\r\n\t\tif (vm.borderWidth) {\r\n\t\t\tdrawBorder(ctx, vm, arc);\r\n\t\t}\r\n\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0.4,\r\n\t\t\tbackgroundColor: defaultColor,\r\n\t\t\tborderWidth: 3,\r\n\t\t\tborderColor: defaultColor,\r\n\t\t\tborderCapStyle: 'butt',\r\n\t\t\tborderDash: [],\r\n\t\t\tborderDashOffset: 0.0,\r\n\t\t\tborderJoinStyle: 'miter',\r\n\t\t\tcapBezierPoints: true,\r\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar element_line = core_element.extend({\r\n\t_type: 'line',\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar vm = me._view;\r\n\t\tvar ctx = me._chart.ctx;\r\n\t\tvar spanGaps = vm.spanGaps;\r\n\t\tvar points = me._children.slice(); // clone array\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\r\n\t\tvar lastDrawnIndex = -1;\r\n\t\tvar closePath = me._loop;\r\n\t\tvar index, previous, currentVM;\r\n\r\n\t\tif (!points.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (me._loop) {\r\n\t\t\tfor (index = 0; index < points.length; ++index) {\r\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\r\n\t\t\t\t// If the line has an open path, shift the point array\r\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\r\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\r\n\t\t\t\t\tclosePath = spanGaps;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If the line has a close path, add the first point again\r\n\t\t\tif (closePath) {\r\n\t\t\t\tpoints.push(points[0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\r\n\t\t// Stroke Line Options\r\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\r\n\r\n\t\t// IE 9 and 10 do not support line dash\r\n\t\tif (ctx.setLineDash) {\r\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\r\n\t\t}\r\n\r\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\r\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\r\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\r\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\r\n\r\n\t\t// Stroke Line\r\n\t\tctx.beginPath();\r\n\r\n\t\t// First point moves to it's starting position no matter what\r\n\t\tcurrentVM = points[0]._view;\r\n\t\tif (!currentVM.skip) {\r\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\tlastDrawnIndex = 0;\r\n\t\t}\r\n\r\n\t\tfor (index = 1; index < points.length; ++index) {\r\n\t\t\tcurrentVM = points[index]._view;\r\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\r\n\r\n\t\t\tif (!currentVM.skip) {\r\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\r\n\t\t\t\t\t// There was a gap and this is the first point after the gap\r\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Line to next point\r\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\r\n\t\t\t\t}\r\n\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (closePath) {\r\n\t\t\tctx.closePath();\r\n\t\t}\r\n\r\n\t\tctx.stroke();\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor$1 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tpoint: {\r\n\t\t\tradius: 3,\r\n\t\t\tpointStyle: 'circle',\r\n\t\t\tbackgroundColor: defaultColor$1,\r\n\t\t\tborderColor: defaultColor$1,\r\n\t\t\tborderWidth: 1,\r\n\t\t\t// Hover\r\n\t\t\thitRadius: 1,\r\n\t\t\thoverRadius: 4,\r\n\t\t\thoverBorderWidth: 1\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction xRange(mouseX) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nfunction yRange(mouseY) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nvar element_point = core_element.extend({\r\n\t_type: 'point',\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\r\n\t},\r\n\r\n\tinLabelRange: xRange,\r\n\tinXRange: xRange,\r\n\tinYRange: yRange,\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tpadding: vm.radius + vm.borderWidth\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function(chartArea) {\r\n\t\tvar vm = this._view;\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar pointStyle = vm.pointStyle;\r\n\t\tvar rotation = vm.rotation;\r\n\t\tvar radius = vm.radius;\r\n\t\tvar x = vm.x;\r\n\t\tvar y = vm.y;\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\r\n\r\n\t\tif (vm.skip) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Clipping for Points.\r\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\r\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\r\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\r\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\r\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\r\n\t\t}\r\n\t}\r\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tbackgroundColor: defaultColor$2,\r\n\t\t\tborderColor: defaultColor$2,\r\n\t\t\tborderSkipped: 'bottom',\r\n\t\t\tborderWidth: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction isVertical(vm) {\r\n\treturn vm && vm.width !== undefined;\r\n}\r\n\r\n/**\r\n * Helper function to get the bounds of the bar regardless of the orientation\r\n * @param bar {Chart.Element.Rectangle} the bar\r\n * @return {Bounds} bounds of the bar\r\n * @private\r\n */\r\nfunction getBarBounds(vm) {\r\n\tvar x1, x2, y1, y2, half;\r\n\r\n\tif (isVertical(vm)) {\r\n\t\thalf = vm.width / 2;\r\n\t\tx1 = vm.x - half;\r\n\t\tx2 = vm.x + half;\r\n\t\ty1 = Math.min(vm.y, vm.base);\r\n\t\ty2 = Math.max(vm.y, vm.base);\r\n\t} else {\r\n\t\thalf = vm.height / 2;\r\n\t\tx1 = Math.min(vm.x, vm.base);\r\n\t\tx2 = Math.max(vm.x, vm.base);\r\n\t\ty1 = vm.y - half;\r\n\t\ty2 = vm.y + half;\r\n\t}\r\n\r\n\treturn {\r\n\t\tleft: x1,\r\n\t\ttop: y1,\r\n\t\tright: x2,\r\n\t\tbottom: y2\r\n\t};\r\n}\r\n\r\nfunction swap(orig, v1, v2) {\r\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\r\n}\r\n\r\nfunction parseBorderSkipped(vm) {\r\n\tvar edge = vm.borderSkipped;\r\n\tvar res = {};\r\n\r\n\tif (!edge) {\r\n\t\treturn res;\r\n\t}\r\n\r\n\tif (vm.horizontal) {\r\n\t\tif (vm.base > vm.x) {\r\n\t\t\tedge = swap(edge, 'left', 'right');\r\n\t\t}\r\n\t} else if (vm.base < vm.y) {\r\n\t\tedge = swap(edge, 'bottom', 'top');\r\n\t}\r\n\r\n\tres[edge] = true;\r\n\treturn res;\r\n}\r\n\r\nfunction parseBorderWidth(vm, maxW, maxH) {\r\n\tvar value = vm.borderWidth;\r\n\tvar skip = parseBorderSkipped(vm);\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = +value.top || 0;\r\n\t\tr = +value.right || 0;\r\n\t\tb = +value.bottom || 0;\r\n\t\tl = +value.left || 0;\r\n\t} else {\r\n\t\tt = r = b = l = +value || 0;\r\n\t}\r\n\r\n\treturn {\r\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\r\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\r\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\r\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\r\n\t};\r\n}\r\n\r\nfunction boundingRects(vm) {\r\n\tvar bounds = getBarBounds(vm);\r\n\tvar width = bounds.right - bounds.left;\r\n\tvar height = bounds.bottom - bounds.top;\r\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\r\n\r\n\treturn {\r\n\t\touter: {\r\n\t\t\tx: bounds.left,\r\n\t\t\ty: bounds.top,\r\n\t\t\tw: width,\r\n\t\t\th: height\r\n\t\t},\r\n\t\tinner: {\r\n\t\t\tx: bounds.left + border.l,\r\n\t\t\ty: bounds.top + border.t,\r\n\t\t\tw: width - border.l - border.r,\r\n\t\t\th: height - border.t - border.b\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction inRange(vm, x, y) {\r\n\tvar skipX = x === null;\r\n\tvar skipY = y === null;\r\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\r\n\r\n\treturn bounds\r\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\r\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\r\n}\r\n\r\nvar element_rectangle = core_element.extend({\r\n\t_type: 'rectangle',\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar rects = boundingRects(vm);\r\n\t\tvar outer = rects.outer;\r\n\t\tvar inner = rects.inner;\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\r\n\r\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\r\n\t\tctx.clip();\r\n\t\tctx.fillStyle = vm.borderColor;\r\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\r\n\t\tctx.fill('evenodd');\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\theight: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.base - vm.y;\r\n\t},\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\treturn inRange(this._view, mouseX, mouseY);\r\n\t},\r\n\r\n\tinLabelRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn isVertical(vm)\r\n\t\t\t? inRange(vm, mouseX, null)\r\n\t\t\t: inRange(vm, null, mouseY);\r\n\t},\r\n\r\n\tinXRange: function(mouseX) {\r\n\t\treturn inRange(this._view, mouseX, null);\r\n\t},\r\n\r\n\tinYRange: function(mouseY) {\r\n\t\treturn inRange(this._view, null, mouseY);\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar x, y;\r\n\t\tif (isVertical(vm)) {\r\n\t\t\tx = vm.x;\r\n\t\t\ty = (vm.y + vm.base) / 2;\r\n\t\t} else {\r\n\t\t\tx = (vm.x + vm.base) / 2;\r\n\t\t\ty = vm.y;\r\n\t\t}\r\n\r\n\t\treturn {x: x, y: y};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\r\n\t\treturn isVertical(vm)\r\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\r\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t}\r\n});\n\nvar elements = {};\r\nvar Arc = element_arc;\r\nvar Line = element_line;\r\nvar Point = element_point;\r\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\r\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('bar', {\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tbar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\r\n * @private\r\n */\r\nfunction computeMinSampleSize(scale, pixels) {\r\n\tvar min = scale._length;\r\n\tvar prev, curr, i, ilen;\r\n\r\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\r\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\r\n\t}\r\n\r\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\r\n\t\tcurr = scale.getPixelForTick(i);\r\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\r\n\t\tprev = curr;\r\n\t}\r\n\r\n\treturn min;\r\n}\r\n\r\n/**\r\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\r\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\r\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\r\n * @private\r\n */\r\nfunction computeFitCategoryTraits(index, ruler, options) {\r\n\tvar thickness = options.barThickness;\r\n\tvar count = ruler.stackCount;\r\n\tvar curr = ruler.pixels[index];\r\n\tvar min = helpers$1.isNullOrUndef(thickness)\r\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\r\n\t\t: -1;\r\n\tvar size, ratio;\r\n\r\n\tif (helpers$1.isNullOrUndef(thickness)) {\r\n\t\tsize = min * options.categoryPercentage;\r\n\t\tratio = options.barPercentage;\r\n\t} else {\r\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\r\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\r\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\r\n\t\tsize = thickness * count;\r\n\t\tratio = 1;\r\n\t}\r\n\r\n\treturn {\r\n\t\tchunk: size / count,\r\n\t\tratio: ratio,\r\n\t\tstart: curr - (size / 2)\r\n\t};\r\n}\r\n\r\n/**\r\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\r\n * percentage options are 1), based on the previous and following categories. This mode\r\n * generates bars with different widths when data are not evenly spaced.\r\n * @private\r\n */\r\nfunction computeFlexCategoryTraits(index, ruler, options) {\r\n\tvar pixels = ruler.pixels;\r\n\tvar curr = pixels[index];\r\n\tvar prev = index > 0 ? pixels[index - 1] : null;\r\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\r\n\tvar percent = options.categoryPercentage;\r\n\tvar start, size;\r\n\r\n\tif (prev === null) {\r\n\t\t// first data: its size is double based on the next point or,\r\n\t\t// if it's also the last data, we use the scale size.\r\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\r\n\t}\r\n\r\n\tif (next === null) {\r\n\t\t// last data: its size is also double based on the previous point.\r\n\t\tnext = curr + curr - prev;\r\n\t}\r\n\r\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\r\n\tsize = Math.abs(next - prev) / 2 * percent;\r\n\r\n\treturn {\r\n\t\tchunk: size / ruler.stackCount,\r\n\t\tratio: options.barPercentage,\r\n\t\tstart: start\r\n\t};\r\n}\r\n\r\nvar controller_bar = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Rectangle,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderSkipped',\r\n\t\t'borderWidth',\r\n\t\t'barPercentage',\r\n\t\t'barThickness',\r\n\t\t'categoryPercentage',\r\n\t\t'maxBarThickness',\r\n\t\t'minBarLength'\r\n\t],\r\n\r\n\tinitialize: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta, scaleOpts;\r\n\r\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\r\n\r\n\t\tmeta = me.getMeta();\r\n\t\tmeta.stack = me.getDataset().stack;\r\n\t\tmeta.bar = true;\r\n\r\n\t\tscaleOpts = me._getIndexScale().options;\r\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\r\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\r\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\r\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\r\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._ruler = me.getRuler();\r\n\r\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(rects[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(rectangle, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\r\n\r\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\r\n\t\trectangle._datasetIndex = me.index;\r\n\t\trectangle._index = index;\r\n\t\trectangle._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderSkipped: options.borderSkipped,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\tdatasetLabel: dataset.label,\r\n\t\t\tlabel: me.chart.data.labels[index]\r\n\t\t};\r\n\r\n\t\tif (helpers$1.isArray(dataset.data[index])) {\r\n\t\t\trectangle._model.borderSkipped = null;\r\n\t\t}\r\n\r\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\r\n\r\n\t\trectangle.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\r\n\t\tvar me = this;\r\n\t\tvar model = rectangle._model;\r\n\t\tvar vscale = me._getValueScale();\r\n\t\tvar base = vscale.getBasePixel();\r\n\t\tvar horizontal = vscale.isHorizontal();\r\n\t\tvar ruler = me._ruler || me.getRuler();\r\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\r\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\r\n\r\n\t\tmodel.horizontal = horizontal;\r\n\t\tmodel.base = reset ? base : vpixels.base;\r\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\r\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\r\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\r\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stacks based on groups and bar visibility.\r\n\t * @param {number} [last] - The dataset index\r\n\t * @returns {string[]} The list of stack IDs\r\n\t * @private\r\n\t */\r\n\t_getStacks: function(last) {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar stacks = [];\r\n\t\tvar i, meta;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tmeta = metasets[i];\r\n\t\t\t// stacked | meta.stack\r\n\t\t\t// | found | not found | undefined\r\n\t\t\t// false | x | x | x\r\n\t\t\t// true | | x |\r\n\t\t\t// undefined | | x | x\r\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\r\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\r\n\t\t\t\tstacks.push(meta.stack);\r\n\t\t\t}\r\n\t\t\tif (meta.index === last) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn stacks;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the effective number of stacks based on groups and bar visibility.\r\n\t * @private\r\n\t */\r\n\tgetStackCount: function() {\r\n\t\treturn this._getStacks().length;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\r\n\t * @param {number} [datasetIndex] - The dataset index\r\n\t * @param {string} [name] - The stack name to find\r\n\t * @returns {number} The stack index\r\n\t * @private\r\n\t */\r\n\tgetStackIndex: function(datasetIndex, name) {\r\n\t\tvar stacks = this._getStacks(datasetIndex);\r\n\t\tvar index = (name !== undefined)\r\n\t\t\t? stacks.indexOf(name)\r\n\t\t\t: -1; // indexOf returns -1 if element is not present\r\n\r\n\t\treturn (index === -1)\r\n\t\t\t? stacks.length - 1\r\n\t\t\t: index;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tgetRuler: function() {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar pixels = [];\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\r\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tpixels: pixels,\r\n\t\t\tstart: scale._startPixel,\r\n\t\t\tend: scale._endPixel,\r\n\t\t\tstackCount: me.getStackCount(),\r\n\t\t\tscale: scale\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Note: pixel values are not clamped to the scale area.\r\n\t * @private\r\n\t */\r\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar isHorizontal = scale.isHorizontal();\r\n\t\tvar datasets = chart.data.datasets;\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\r\n\t\tvar minBarLength = options.minBarLength;\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar stack = me.getMeta().stack;\r\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\r\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\r\n\r\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\timeta = metasets[i];\r\n\r\n\t\t\t\tif (imeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (imeta.stack === stack) {\r\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\r\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\r\n\r\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\r\n\t\t\t\t\t\tstart += ivalue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tbase = scale.getPixelForValue(start);\r\n\t\thead = scale.getPixelForValue(start + length);\r\n\t\tsize = head - base;\r\n\r\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\r\n\t\t\tsize = minBarLength;\r\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\r\n\t\t\t\thead = base - minBarLength;\r\n\t\t\t} else {\r\n\t\t\t\thead = base + minBarLength;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tsize: size,\r\n\t\t\tbase: base,\r\n\t\t\thead: head,\r\n\t\t\tcenter: head + size / 2\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\r\n\t\tvar me = this;\r\n\t\tvar range = options.barThickness === 'flex'\r\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\r\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\r\n\r\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\r\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\r\n\t\tvar size = Math.min(\r\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\r\n\t\t\trange.chunk * range.ratio);\r\n\r\n\t\treturn {\r\n\t\t\tbase: center - size / 2,\r\n\t\t\thead: center + size / 2,\r\n\t\t\tcenter: center,\r\n\t\t\tsize: size\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar ilen = rects.length;\r\n\t\tvar i = 0;\r\n\r\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\r\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\r\n\t\t\t\trects[i].draw();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\r\n\t\tvar indexOpts = me._getIndexScale().options;\r\n\t\tvar valueOpts = me._getValueScale().options;\r\n\r\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\r\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\r\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\r\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\r\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\r\n\r\n\t\treturn values;\r\n\t}\r\n\r\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\r\nvar resolve$1 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('bubble', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\r\n\t\t\tposition: 'bottom',\r\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\r\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_bubble = core_datasetController.extend({\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t\t'hoverRadius',\r\n\t\t'hitRadius',\r\n\t\t'pointStyle',\r\n\t\t'rotation'\r\n\t],\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data;\r\n\r\n\t\t// Update Points\r\n\t\thelpers$1.each(points, function(point, index) {\r\n\t\t\tme.updateElement(point, index, reset);\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar data = me.getDataset().data[index];\r\n\t\tvar dsIndex = me.index;\r\n\r\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\r\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\r\n\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = dsIndex;\r\n\t\tpoint._index = index;\r\n\t\tpoint._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\thitRadius: options.hitRadius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tradius: reset ? 0 : options.radius,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t};\r\n\r\n\t\tpoint.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = options.radius + options.hoverRadius;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(point, index) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar data = dataset.data[index] || {};\r\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// In case values were cached (and thus frozen), we need to clone the values\r\n\t\tif (me._cachedDataOpts === values) {\r\n\t\t\tvalues = helpers$1.extend({}, values);\r\n\t\t}\r\n\r\n\t\t// Custom radius resolution\r\n\t\tvalues.radius = resolve$1([\r\n\t\t\tcustom.radius,\r\n\t\t\tdata.r,\r\n\t\t\tme._config.radius,\r\n\t\t\tchart.options.elements.point.radius\r\n\t\t], context, index);\r\n\r\n\t\treturn values;\r\n\t}\r\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\r\n\r\nvar PI$1 = Math.PI;\r\nvar DOUBLE_PI$1 = PI$1 * 2;\r\nvar HALF_PI$1 = PI$1 / 2;\r\n\r\ncore_defaults._set('doughnut', {\r\n\tanimation: {\r\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\r\n\t\tanimateRotate: true,\r\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\r\n\t\tanimateScale: false\r\n\t},\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t// toggle visibility of index if exists\r\n\t\t\t\tif (meta.data[index]) {\r\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// The percentage of the chart that we cut out of the middle.\r\n\tcutoutPercentage: 50,\r\n\r\n\t// The rotation of the chart, where the first data arc begins.\r\n\trotation: -HALF_PI$1,\r\n\r\n\t// The total circumference of the chart.\r\n\tcircumference: DOUBLE_PI$1,\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\r\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\r\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\r\n\t\t\t\t\t// show value on first line of multiline label\r\n\t\t\t\t\t// need to clone because we are changing the value\r\n\t\t\t\t\tdataLabel = dataLabel.slice();\r\n\t\t\t\t\tdataLabel[0] += value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataLabel += value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn dataLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_doughnut = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\r\n\tgetRingIndex: function(datasetIndex) {\r\n\t\tvar ringIndex = 0;\r\n\r\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\r\n\t\t\tif (this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t++ringIndex;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringIndex;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar ratioX = 1;\r\n\t\tvar ratioY = 1;\r\n\t\tvar offsetX = 0;\r\n\t\tvar offsetY = 0;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar arcs = meta.data;\r\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\r\n\t\tvar circumference = opts.circumference;\r\n\t\tvar chartWeight = me._getRingWeight(me.index);\r\n\t\tvar maxWidth, maxHeight, i, ilen;\r\n\r\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\r\n\t\tif (circumference < DOUBLE_PI$1) {\r\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\r\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\r\n\t\t\tvar endAngle = startAngle + circumference;\r\n\t\t\tvar startX = Math.cos(startAngle);\r\n\t\t\tvar startY = Math.sin(startAngle);\r\n\t\t\tvar endX = Math.cos(endAngle);\r\n\t\t\tvar endY = Math.sin(endAngle);\r\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\r\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\r\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\r\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\r\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tratioX = (maxX - minX) / 2;\r\n\t\t\tratioY = (maxY - minY) / 2;\r\n\t\t\toffsetX = -(maxX + minX) / 2;\r\n\t\t\toffsetY = -(maxY + minY) / 2;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t}\r\n\r\n\t\tchart.borderWidth = me.getMaxBorderWidth();\r\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\r\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\r\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\r\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\r\n\t\tchart.offsetX = offsetX * chart.outerRadius;\r\n\t\tchart.offsetY = offsetY * chart.outerRadius;\r\n\r\n\t\tmeta.total = me.calculateTotal();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\r\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\r\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\r\n\t\tvar startAngle = opts.rotation; // non reset case handled later\r\n\t\tvar endAngle = opts.rotation; // non reset case handled later\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\r\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\r\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX + chart.offsetX,\r\n\t\t\t\ty: centerY + chart.offsetY,\r\n\t\t\t\tstartAngle: startAngle,\r\n\t\t\t\tendAngle: endAngle,\r\n\t\t\t\tcircumference: circumference,\r\n\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar model = arc._model;\r\n\r\n\t\t// Set correct angles if not resetting\r\n\t\tif (!reset || !animationOpts.animateRotate) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\tmodel.startAngle = opts.rotation;\r\n\t\t\t} else {\r\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\r\n\t\t}\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcalculateTotal: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar total = 0;\r\n\t\tvar value;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tvalue = dataset.data[index];\r\n\t\t\tif (!isNaN(value) && !element.hidden) {\r\n\t\t\t\ttotal += Math.abs(value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/* if (total === 0) {\r\n\t\t\ttotal = NaN;\r\n\t\t}*/\r\n\r\n\t\treturn total;\r\n\t},\r\n\r\n\tcalculateCircumference: function(value) {\r\n\t\tvar total = this.getMeta().total;\r\n\t\tif (total > 0 && !isNaN(value)) {\r\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\t// gets the max border or hover width to properly scale pie charts\r\n\tgetMaxBorderWidth: function(arcs) {\r\n\t\tvar me = this;\r\n\t\tvar max = 0;\r\n\t\tvar chart = me.chart;\r\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\r\n\r\n\t\tif (!arcs) {\r\n\t\t\t// Find the outmost visible dataset\r\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tif (chart.isDatasetVisible(i)) {\r\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\tarcs = meta.data;\r\n\t\t\t\t\tif (i !== me.index) {\r\n\t\t\t\t\t\tcontroller = meta.controller;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!arcs) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarc = arcs[i];\r\n\t\t\tif (controller) {\r\n\t\t\t\tcontroller._configure();\r\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\r\n\t\t\t} else {\r\n\t\t\t\toptions = arc._options;\r\n\t\t\t}\r\n\t\t\tif (options.borderAlign !== 'inner') {\r\n\t\t\t\tborderWidth = options.borderWidth;\r\n\t\t\t\thoverWidth = options.hoverBorderWidth;\r\n\r\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\r\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn max;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\r\n\t * @private\r\n\t */\r\n\t_getRingWeightOffset: function(datasetIndex) {\r\n\t\tvar ringWeightOffset = 0;\r\n\r\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\r\n\t\t\tif (this.chart.isDatasetVisible(i)) {\r\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringWeightOffset;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getRingWeight: function(dataSetIndex) {\r\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the sum of all visibile data set weights. This value can be 0.\r\n\t * @private\r\n\t */\r\n\t_getVisibleDatasetWeightTotal: function() {\r\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\r\n\t}\r\n});\n\ncore_defaults._set('horizontalBar', {\r\n\thover: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tposition: 'left',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}]\r\n\t},\r\n\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tborderSkipped: 'left'\r\n\t\t}\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\thorizontalBar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_horizontalBar = controller_bar.extend({\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t}\r\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\r\nvar resolve$2 = helpers$1.options.resolve;\r\nvar isPointInArea = helpers$1.canvas._isPointInArea;\r\n\r\ncore_defaults._set('line', {\r\n\tshowLines: true,\r\n\tspanGaps: false,\r\n\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tid: 'x-axis-0'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\nfunction scaleClip(scale, halfBorderWidth) {\r\n\tvar tickOpts = scale && scale.options.ticks || {};\r\n\tvar reverse = tickOpts.reverse;\r\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\r\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\r\n\treturn {\r\n\t\tstart: reverse ? max : min,\r\n\t\tend: reverse ? min : max\r\n\t};\r\n}\r\n\r\nfunction defaultClip(xScale, yScale, borderWidth) {\r\n\tvar halfBorderWidth = borderWidth / 2;\r\n\tvar x = scaleClip(xScale, halfBorderWidth);\r\n\tvar y = scaleClip(yScale, halfBorderWidth);\r\n\r\n\treturn {\r\n\t\ttop: y.end,\r\n\t\tright: x.end,\r\n\t\tbottom: y.start,\r\n\t\tleft: x.start\r\n\t};\r\n}\r\n\r\nfunction toClip(value) {\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = value.top;\r\n\t\tr = value.right;\r\n\t\tb = value.bottom;\r\n\t\tl = value.left;\r\n\t} else {\r\n\t\tt = r = b = l = value;\r\n\t}\r\n\r\n\treturn {\r\n\t\ttop: t,\r\n\t\tright: r,\r\n\t\tbottom: b,\r\n\t\tleft: l\r\n\t};\r\n}\r\n\r\n\r\nvar controller_line = core_datasetController.extend({\r\n\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth',\r\n\t\t'cubicInterpolationMode',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar options = me.chart.options;\r\n\t\tvar config = me._config;\r\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\r\n\r\n\t\t// Update Line\r\n\t\tif (showLine) {\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\t\tconfig.lineTension = config.tension;\r\n\t\t\t}\r\n\r\n\t\t\t// Utility\r\n\t\t\tline._scale = me._yScale;\r\n\t\t\tline._datasetIndex = me.index;\r\n\t\t\t// Data\r\n\t\t\tline._children = points;\r\n\t\t\t// Model\r\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\t\tline.pivot();\r\n\t\t}\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\tif (showLine && line._model.tension !== 0) {\r\n\t\t\tme.updateBezierControlPoints();\r\n\t\t}\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar datasetIndex = me.index;\r\n\t\tvar value = dataset.data[index];\r\n\t\tvar xScale = me._xScale;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar x, y;\r\n\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\r\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\r\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\r\n\r\n\t\t// Utility\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = datasetIndex;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\r\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element) {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = me.chart.options;\r\n\t\tvar lineOptions = options.elements.line;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\t// The default behavior of lines is to break at null values, according\r\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\r\n\t\t// This option gives lines the ability to span gaps\r\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\r\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\r\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tcalculatePointY: function(value, index, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar sumPos = 0;\r\n\t\tvar sumNeg = 0;\r\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\r\n\r\n\t\tif (yScale.options.stacked) {\r\n\t\t\trightValue = +yScale.getRightValue(value);\r\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\r\n\t\t\tilen = metasets.length;\r\n\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\tdsMeta = metasets[i];\r\n\t\t\t\tif (dsMeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\r\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\r\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\r\n\t\t\t\t\tif (stackedRightValue < 0) {\r\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (rightValue < 0) {\r\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\r\n\t\t\t}\r\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\r\n\t\t}\r\n\t\treturn yScale.getPixelForValue(value);\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (lineModel.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\r\n\t\t\thelpers$1.splineCurveMonotone(points);\r\n\t\t} else {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\r\n\t\t\t\t\tmodel,\r\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\r\n\t\t\t\t\tlineModel.tension\r\n\t\t\t\t);\r\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\r\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\r\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\r\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (chart.options.elements.line.capBezierPoints) {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tif (isPointInArea(model, area)) {\r\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data || [];\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar canvas = chart.canvas;\r\n\t\tvar i = 0;\r\n\t\tvar ilen = points.length;\r\n\t\tvar clip;\r\n\r\n\t\tif (me._showLine) {\r\n\t\t\tclip = meta.dataset._model.clip;\r\n\r\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\r\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\r\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\r\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\r\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\r\n\t\t\t});\r\n\r\n\t\t\tmeta.dataset.draw();\r\n\r\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t\t}\r\n\r\n\t\t// Draw the points\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tpoints[i].draw(area);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\r\n\t},\r\n});\n\nvar resolve$3 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('polarArea', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear',\r\n\t\tangleLines: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tgridLines: {\r\n\t\t\tcircular: true\r\n\t\t},\r\n\t\tpointLabels: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tbeginAtZero: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Boolean - Whether to animate the rotation of the chart\r\n\tanimation: {\r\n\t\tanimateRotate: true,\r\n\t\tanimateScale: true\r\n\t},\r\n\r\n\tstartAngle: -0.5 * Math.PI,\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_polarArea = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar start = me.chart.options.startAngle || 0;\r\n\t\tvar starts = me._starts = [];\r\n\t\tvar angles = me._angles = [];\r\n\t\tvar arcs = meta.data;\r\n\t\tvar i, ilen, angle;\r\n\r\n\t\tme._updateRadius();\r\n\r\n\t\tmeta.count = me.countVisibleElements();\r\n\r\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\r\n\t\t\tstarts[i] = start;\r\n\t\t\tangle = me._computeAngle(i);\r\n\t\t\tangles[i] = angle;\r\n\t\t\tstart += angle;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateRadius: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n\r\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\r\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\r\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar scale = chart.scale;\r\n\t\tvar labels = chart.data.labels;\r\n\r\n\t\tvar centerX = scale.xCenter;\r\n\t\tvar centerY = scale.yCenter;\r\n\r\n\t\t// var negHalfPI = -0.5 * Math.PI;\r\n\t\tvar datasetStartAngle = opts.startAngle;\r\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar startAngle = me._starts[index];\r\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\r\n\r\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\t\t\t_scale: scale,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX,\r\n\t\t\t\ty: centerY,\r\n\t\t\t\tinnerRadius: 0,\r\n\t\t\t\touterRadius: reset ? resetRadius : distance,\r\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\r\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcountVisibleElements: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar count = 0;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn count;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_computeAngle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar count = this.getMeta().count;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\r\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: me.chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\treturn resolve$3([\r\n\t\t\tme.chart.options.elements.arc.angle,\r\n\t\t\t(2 * Math.PI) / count\r\n\t\t], context, index);\r\n\t}\r\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\r\ncore_defaults._set('pie', {\r\n\tcutoutPercentage: 0\r\n});\r\n\r\n// Pie charts are Doughnut chart with different defaults\r\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('radar', {\r\n\tspanGaps: false,\r\n\tscale: {\r\n\t\ttype: 'radialLinear'\r\n\t},\r\n\telements: {\r\n\t\tline: {\r\n\t\t\tfill: 'start',\r\n\t\t\ttension: 0 // no bezier in radar\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_radar = core_datasetController.extend({\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderWidth',\r\n\t\t'borderColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar config = me._config;\r\n\t\tvar i, ilen;\r\n\r\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\tconfig.lineTension = config.tension;\r\n\t\t}\r\n\r\n\t\t// Utility\r\n\t\tline._scale = scale;\r\n\t\tline._datasetIndex = me.index;\r\n\t\t// Data\r\n\t\tline._children = points;\r\n\t\tline._loop = true;\r\n\t\t// Model\r\n\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\tline.pivot();\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\t// Update bezier control points\r\n\t\tme.updateBezierControlPoints();\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar lineModel = me.getMeta().dataset._model;\r\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\r\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\r\n\r\n\t\t// Utility\r\n\t\tpoint._scale = scale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = me.index;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\r\n\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar options = me.chart.options;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar area = me.chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (meta.dataset._model.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tmodel = points[i]._model;\r\n\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\r\n\t\t\t\tmodel,\r\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\r\n\t\t\t\tmodel.tension\r\n\t\t\t);\r\n\r\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\r\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\r\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\r\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\r\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\r\n\t\t}\r\n\t},\r\n\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\r\n\t}\r\n});\n\ncore_defaults._set('scatter', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\r\n\t\t\ttype: 'linear', // scatter should not use a category axis\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\tid: 'y-axis-1',\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\r\n\t\t\t},\r\n\t\t\tlabel: function(item) {\r\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tscatter: {\r\n\t\t\tshowLine: false\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// Scatter charts use line controllers\r\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\r\n// the class, and so must be CamelCase in order to be correctly retrieved\r\n// by the controller in core.controller.js (`controllers[meta.type]`).\r\n\r\nvar controllers = {\r\n\tbar: controller_bar,\r\n\tbubble: controller_bubble,\r\n\tdoughnut: controller_doughnut,\r\n\thorizontalBar: controller_horizontalBar,\r\n\tline: controller_line,\r\n\tpolarArea: controller_polarArea,\r\n\tpie: controller_pie,\r\n\tradar: controller_radar,\r\n\tscatter: controller_scatter\r\n};\n\n/**\r\n * Helper function to get relative position for an event\r\n * @param {Event|IEvent} event - The event to get the position for\r\n * @param {Chart} chart - The chart\r\n * @returns {object} the event position\r\n */\r\nfunction getRelativePosition(e, chart) {\r\n\tif (e.native) {\r\n\t\treturn {\r\n\t\t\tx: e.x,\r\n\t\t\ty: e.y\r\n\t\t};\r\n\t}\r\n\r\n\treturn helpers$1.getRelativePosition(e, chart);\r\n}\r\n\r\n/**\r\n * Helper function to traverse all of the visible elements in the chart\r\n * @param {Chart} chart - the chart\r\n * @param {function} handler - the callback to execute for each visible item\r\n */\r\nfunction parseVisibleItems(chart, handler) {\r\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\r\n\tvar metadata, i, j, ilen, jlen, element;\r\n\r\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\r\n\t\tmetadata = metasets[i].data;\r\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\r\n\t\t\telement = metadata[j];\r\n\t\t\tif (!element._view.skip) {\r\n\t\t\t\thandler(element);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper function to get the items that intersect the event position\r\n * @param {ChartElement[]} items - elements to filter\r\n * @param {object} position - the point to be nearest to\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getIntersectItems(chart, position) {\r\n\tvar elements = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\r\n * @param {Chart} chart - the chart to look at elements from\r\n * @param {object} position - the point to be nearest to\r\n * @param {boolean} intersect - if true, only consider items that intersect the position\r\n * @param {function} distanceMetric - function to provide the distance between points\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\r\n\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\tvar nearestItems = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar center = element.getCenterPoint();\r\n\t\tvar distance = distanceMetric(position, center);\r\n\t\tif (distance < minDistance) {\r\n\t\t\tnearestItems = [element];\r\n\t\t\tminDistance = distance;\r\n\t\t} else if (distance === minDistance) {\r\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\r\n\t\t\tnearestItems.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn nearestItems;\r\n}\r\n\r\n/**\r\n * Get a distance metric function for two points based on the\r\n * axis mode setting\r\n * @param {string} axis - the axis mode. x|y|xy\r\n */\r\nfunction getDistanceMetricForAxis(axis) {\r\n\tvar useX = axis.indexOf('x') !== -1;\r\n\tvar useY = axis.indexOf('y') !== -1;\r\n\r\n\treturn function(pt1, pt2) {\r\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\r\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\r\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\r\n\t};\r\n}\r\n\r\nfunction indexMode(chart, e, options) {\r\n\tvar position = getRelativePosition(e, chart);\r\n\t// Default axis for index mode is 'x' to match old behaviour\r\n\toptions.axis = options.axis || 'x';\r\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\tvar elements = [];\r\n\r\n\tif (!items.length) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\r\n\t\tvar element = meta.data[items[0]._index];\r\n\r\n\t\t// don't count items that are skipped (null data)\r\n\t\tif (element && !element._view.skip) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * @interface IInteractionOptions\r\n */\r\n/**\r\n * If true, only consider items that intersect the point\r\n * @name IInterfaceOptions#boolean\r\n * @type Boolean\r\n */\r\n\r\n/**\r\n * Contains interaction related functions\r\n * @namespace Chart.Interaction\r\n */\r\nvar core_interaction = {\r\n\t// Helper function for different modes\r\n\tmodes: {\r\n\t\tsingle: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar elements = [];\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t\treturn elements;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn elements.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.label\r\n\t\t * @deprecated since version 2.4.0\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\tlabel: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\r\n\t\t * @function Chart.Interaction.modes.index\r\n\t\t * @since v2.4.0\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tindex: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\r\n\t\t * @function Chart.Interaction.modes.dataset\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tdataset: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\r\n\t\t\tif (items.length > 0) {\r\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\r\n\t\t\t}\r\n\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.x-axis\r\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\t'x-axis': function(chart, e) {\r\n\t\t\treturn indexMode(chart, e, {intersect: false});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Point mode returns all elements that hit test based on the event position\r\n\t\t * of the event\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tpoint: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\treturn getIntersectItems(chart, position);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * nearest mode returns the element closest to the point\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tnearest: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * x mode returns the elements that hit-test at the current x coordinate\r\n\t\t * @function Chart.Interaction.modes.x\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tx: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inXRange(position.x)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * y mode returns the elements that hit-test at the current y coordinate\r\n\t\t * @function Chart.Interaction.modes.y\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\ty: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inYRange(position.y)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t}\r\n\t}\r\n};\n\nvar extend = helpers$1.extend;\r\n\r\nfunction filterByPosition(array, position) {\r\n\treturn helpers$1.where(array, function(v) {\r\n\t\treturn v.pos === position;\r\n\t});\r\n}\r\n\r\nfunction sortByWeight(array, reverse) {\r\n\treturn array.sort(function(a, b) {\r\n\t\tvar v0 = reverse ? b : a;\r\n\t\tvar v1 = reverse ? a : b;\r\n\t\treturn v0.weight === v1.weight ?\r\n\t\t\tv0.index - v1.index :\r\n\t\t\tv0.weight - v1.weight;\r\n\t});\r\n}\r\n\r\nfunction wrapBoxes(boxes) {\r\n\tvar layoutBoxes = [];\r\n\tvar i, ilen, box;\r\n\r\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\r\n\t\tbox = boxes[i];\r\n\t\tlayoutBoxes.push({\r\n\t\t\tindex: i,\r\n\t\t\tbox: box,\r\n\t\t\tpos: box.position,\r\n\t\t\thorizontal: box.isHorizontal(),\r\n\t\t\tweight: box.weight\r\n\t\t});\r\n\t}\r\n\treturn layoutBoxes;\r\n}\r\n\r\nfunction setLayoutDims(layouts, params) {\r\n\tvar i, ilen, layout;\r\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\r\n\t\tlayout = layouts[i];\r\n\t\t// store width used instead of chartArea.w in fitBoxes\r\n\t\tlayout.width = layout.horizontal\r\n\t\t\t? layout.box.fullWidth && params.availableWidth\r\n\t\t\t: params.vBoxMaxWidth;\r\n\t\t// store height used instead of chartArea.h in fitBoxes\r\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\r\n\t}\r\n}\r\n\r\nfunction buildLayoutBoxes(boxes) {\r\n\tvar layoutBoxes = wrapBoxes(boxes);\r\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\r\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\r\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\r\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\r\n\r\n\treturn {\r\n\t\tleftAndTop: left.concat(top),\r\n\t\trightAndBottom: right.concat(bottom),\r\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\r\n\t\tvertical: left.concat(right),\r\n\t\thorizontal: top.concat(bottom)\r\n\t};\r\n}\r\n\r\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\r\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\r\n}\r\n\r\nfunction updateDims(chartArea, params, layout) {\r\n\tvar box = layout.box;\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\tvar newWidth, newHeight;\r\n\r\n\tif (layout.size) {\r\n\t\t// this layout was already counted for, lets first reduce old size\r\n\t\tchartArea[layout.pos] -= layout.size;\r\n\t}\r\n\tlayout.size = layout.horizontal ? box.height : box.width;\r\n\tchartArea[layout.pos] += layout.size;\r\n\r\n\tif (box.getPadding) {\r\n\t\tvar boxPadding = box.getPadding();\r\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\r\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\r\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\r\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\r\n\t}\r\n\r\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\r\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\r\n\r\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\r\n\t\tchartArea.w = newWidth;\r\n\t\tchartArea.h = newHeight;\r\n\r\n\t\t// return true if chart area changed in layout's direction\r\n\t\tvar sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\r\n\t\treturn sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\r\n\t}\r\n}\r\n\r\nfunction handleMaxPadding(chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction updatePos(pos) {\r\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\r\n\t\tchartArea[pos] += change;\r\n\t\treturn change;\r\n\t}\r\n\tchartArea.y += updatePos('top');\r\n\tchartArea.x += updatePos('left');\r\n\tupdatePos('right');\r\n\tupdatePos('bottom');\r\n}\r\n\r\nfunction getMargins(horizontal, chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction marginForPositions(positions) {\r\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\r\n\t\tpositions.forEach(function(pos) {\r\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\r\n\t\t});\r\n\t\treturn margin;\r\n\t}\r\n\r\n\treturn horizontal\r\n\t\t? marginForPositions(['left', 'right'])\r\n\t\t: marginForPositions(['top', 'bottom']);\r\n}\r\n\r\nfunction fitBoxes(boxes, chartArea, params) {\r\n\tvar refitBoxes = [];\r\n\tvar i, ilen, layout, box, refit, changed;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\r\n\t\tbox.update(\r\n\t\t\tlayout.width || chartArea.w,\r\n\t\t\tlayout.height || chartArea.h,\r\n\t\t\tgetMargins(layout.horizontal, chartArea)\r\n\t\t);\r\n\t\tif (updateDims(chartArea, params, layout)) {\r\n\t\t\tchanged = true;\r\n\t\t\tif (refitBoxes.length) {\r\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\r\n\t\t\t\t// -> we have to refit those\r\n\t\t\t\trefit = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\r\n\t\t\trefitBoxes.push(layout);\r\n\t\t}\r\n\t}\r\n\r\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\r\n}\r\n\r\nfunction placeBoxes(boxes, chartArea, params) {\r\n\tvar userPadding = params.padding;\r\n\tvar x = chartArea.x;\r\n\tvar y = chartArea.y;\r\n\tvar i, ilen, layout, box;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\t\tif (layout.horizontal) {\r\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\r\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\r\n\t\t\tbox.top = y;\r\n\t\t\tbox.bottom = y + box.height;\r\n\t\t\tbox.width = box.right - box.left;\r\n\t\t\ty = box.bottom;\r\n\t\t} else {\r\n\t\t\tbox.left = x;\r\n\t\t\tbox.right = x + box.width;\r\n\t\t\tbox.top = chartArea.top;\r\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\r\n\t\t\tbox.height = box.bottom - box.top;\r\n\t\t\tx = box.right;\r\n\t\t}\r\n\t}\r\n\r\n\tchartArea.x = x;\r\n\tchartArea.y = y;\r\n}\r\n\r\ncore_defaults._set('global', {\r\n\tlayout: {\r\n\t\tpadding: {\r\n\t\t\ttop: 0,\r\n\t\t\tright: 0,\r\n\t\t\tbottom: 0,\r\n\t\t\tleft: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * @interface ILayoutItem\r\n * @prop {string} position - The position of the item in the chart layout. Possible values are\r\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\r\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\r\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\r\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\r\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\r\n * @prop {function} getPadding - Returns an object with padding on the edges\r\n * @prop {number} width - Width of item. Must be valid after update()\r\n * @prop {number} height - Height of item. Must be valid after update()\r\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\r\n */\r\n\r\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\r\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\r\n// It is this service's responsibility of carrying out that layout.\r\nvar core_layouts = {\r\n\tdefaults: {},\r\n\r\n\t/**\r\n\t * Register a box to a chart.\r\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\r\n\t * @param {Chart} chart - the chart to use\r\n\t * @param {ILayoutItem} item - the item to add to be layed out\r\n\t */\r\n\taddBox: function(chart, item) {\r\n\t\tif (!chart.boxes) {\r\n\t\t\tchart.boxes = [];\r\n\t\t}\r\n\r\n\t\t// initialize item with default values\r\n\t\titem.fullWidth = item.fullWidth || false;\r\n\t\titem.position = item.position || 'top';\r\n\t\titem.weight = item.weight || 0;\r\n\t\titem._layers = item._layers || function() {\r\n\t\t\treturn [{\r\n\t\t\t\tz: 0,\r\n\t\t\t\tdraw: function() {\r\n\t\t\t\t\titem.draw.apply(item, arguments);\r\n\t\t\t\t}\r\n\t\t\t}];\r\n\t\t};\r\n\r\n\t\tchart.boxes.push(item);\r\n\t},\r\n\r\n\t/**\r\n\t * Remove a layoutItem from a chart\r\n\t * @param {Chart} chart - the chart to remove the box from\r\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\r\n\t */\r\n\tremoveBox: function(chart, layoutItem) {\r\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\r\n\t\tif (index !== -1) {\r\n\t\t\tchart.boxes.splice(index, 1);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Sets (or updates) options on the given `item`.\r\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\r\n\t * @param {ILayoutItem} item - the item to configure with the given options\r\n\t * @param {object} options - the new item options.\r\n\t */\r\n\tconfigure: function(chart, item, options) {\r\n\t\tvar props = ['fullWidth', 'position', 'weight'];\r\n\t\tvar ilen = props.length;\r\n\t\tvar i = 0;\r\n\t\tvar prop;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tprop = props[i];\r\n\t\t\tif (options.hasOwnProperty(prop)) {\r\n\t\t\t\titem[prop] = options[prop];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Fits boxes of the given chart into the given size by having each box measure itself\r\n\t * then running a fitting algorithm\r\n\t * @param {Chart} chart - the chart\r\n\t * @param {number} width - the width to fit into\r\n\t * @param {number} height - the height to fit into\r\n\t */\r\n\tupdate: function(chart, width, height) {\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar layoutOptions = chart.options.layout || {};\r\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\r\n\r\n\t\tvar availableWidth = width - padding.width;\r\n\t\tvar availableHeight = height - padding.height;\r\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\r\n\t\tvar verticalBoxes = boxes.vertical;\r\n\t\tvar horizontalBoxes = boxes.horizontal;\r\n\r\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\r\n\t\t// Our canvas looks like the following.\r\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\r\n\t\t// B1 is the bottom axis\r\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\r\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\r\n\t\t// an error will be thrown.\r\n\t\t//\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | T1 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | | | T2 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | C1 | | C2 | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | | |\r\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\r\n\t\t// | | | | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | C3 | | C4 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | B1 | |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | B2 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t//\r\n\r\n\t\tvar params = Object.freeze({\r\n\t\t\touterWidth: width,\r\n\t\t\touterHeight: height,\r\n\t\t\tpadding: padding,\r\n\t\t\tavailableWidth: availableWidth,\r\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\r\n\t\t\thBoxMaxHeight: availableHeight / 2\r\n\t\t});\r\n\t\tvar chartArea = extend({\r\n\t\t\tmaxPadding: extend({}, padding),\r\n\t\t\tw: availableWidth,\r\n\t\t\th: availableHeight,\r\n\t\t\tx: padding.left,\r\n\t\t\ty: padding.top\r\n\t\t}, padding);\r\n\r\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\r\n\r\n\t\t// First fit vertical boxes\r\n\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\r\n\t\t// Then fit horizontal boxes\r\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\r\n\t\t\t// if the area changed, re-fit vertical boxes\r\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\t\t}\r\n\r\n\t\thandleMaxPadding(chartArea);\r\n\r\n\t\t// Finally place the boxes to correct coordinates\r\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\r\n\r\n\t\t// Move to opposite side of chart\r\n\t\tchartArea.x += chartArea.w;\r\n\t\tchartArea.y += chartArea.h;\r\n\r\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\r\n\r\n\t\tchart.chartArea = {\r\n\t\t\tleft: chartArea.left,\r\n\t\t\ttop: chartArea.top,\r\n\t\t\tright: chartArea.left + chartArea.w,\r\n\t\t\tbottom: chartArea.top + chartArea.h\r\n\t\t};\r\n\r\n\t\t// Finally update boxes in chartArea (radial scale for example)\r\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\r\n\t\t\tvar box = layout.box;\r\n\t\t\textend(box, chart.chartArea);\r\n\t\t\tbox.update(chartArea.w, chartArea.h);\r\n\t\t});\r\n\t}\r\n};\n\n/**\r\n * Platform fallback implementation (minimal).\r\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\r\n */\r\n\r\nvar platform_basic = {\r\n\tacquireContext: function(item) {\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\treturn item && item.getContext('2d') || null;\r\n\t}\r\n};\n\nvar platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\r\nvar CSS_PREFIX = 'chartjs-';\r\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\r\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\r\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\r\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\r\n\r\n/**\r\n * DOM event types -> Chart.js event types.\r\n * Note: only events with different types are mapped.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\r\n */\r\nvar EVENT_TYPES = {\r\n\ttouchstart: 'mousedown',\r\n\ttouchmove: 'mousemove',\r\n\ttouchend: 'mouseup',\r\n\tpointerenter: 'mouseenter',\r\n\tpointerdown: 'mousedown',\r\n\tpointermove: 'mousemove',\r\n\tpointerup: 'mouseup',\r\n\tpointerleave: 'mouseout',\r\n\tpointerout: 'mouseout'\r\n};\r\n\r\n/**\r\n * The \"used\" size is the final value of a dimension property after all calculations have\r\n * been performed. This method uses the computed style of `element` but returns undefined\r\n * if the computed style is not expressed in pixels. That can happen in some cases where\r\n * `element` has a size relative to its parent and this last one is not yet displayed,\r\n * for example because of `display: none` on a parent node.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\r\n * @returns {number} Size in pixels or undefined if unknown.\r\n */\r\nfunction readUsedSize(element, property) {\r\n\tvar value = helpers$1.getStyle(element, property);\r\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\r\n\treturn matches ? Number(matches[1]) : undefined;\r\n}\r\n\r\n/**\r\n * Initializes the canvas style and render size without modifying the canvas display size,\r\n * since responsiveness is handled by the controller.resize() method. The config is used\r\n * to determine the aspect ratio to apply in case no explicit height has been specified.\r\n */\r\nfunction initCanvas(canvas, config) {\r\n\tvar style = canvas.style;\r\n\r\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\r\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\r\n\tvar renderHeight = canvas.getAttribute('height');\r\n\tvar renderWidth = canvas.getAttribute('width');\r\n\r\n\t// Chart.js modifies some canvas values that we want to restore on destroy\r\n\tcanvas[EXPANDO_KEY] = {\r\n\t\tinitial: {\r\n\t\t\theight: renderHeight,\r\n\t\t\twidth: renderWidth,\r\n\t\t\tstyle: {\r\n\t\t\t\tdisplay: style.display,\r\n\t\t\t\theight: style.height,\r\n\t\t\t\twidth: style.width\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Force canvas to display as block to avoid extra space caused by inline\r\n\t// elements, which would interfere with the responsive resize process.\r\n\t// https://github.com/chartjs/Chart.js/issues/2538\r\n\tstyle.display = style.display || 'block';\r\n\r\n\tif (renderWidth === null || renderWidth === '') {\r\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\r\n\t\tif (displayWidth !== undefined) {\r\n\t\t\tcanvas.width = displayWidth;\r\n\t\t}\r\n\t}\r\n\r\n\tif (renderHeight === null || renderHeight === '') {\r\n\t\tif (canvas.style.height === '') {\r\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\r\n\t\t\t// which one can be specified by the user but also by charts as default option\r\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\r\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\r\n\t\t} else {\r\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\r\n\t\t\tif (displayWidth !== undefined) {\r\n\t\t\t\tcanvas.height = displayHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn canvas;\r\n}\r\n\r\n/**\r\n * Detects support for options object argument in addEventListener.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n * @private\r\n */\r\nvar supportsEventListenerOptions = (function() {\r\n\tvar supports = false;\r\n\ttry {\r\n\t\tvar options = Object.defineProperty({}, 'passive', {\r\n\t\t\t// eslint-disable-next-line getter-return\r\n\t\t\tget: function() {\r\n\t\t\t\tsupports = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('e', null, options);\r\n\t} catch (e) {\r\n\t\t// continue regardless of error\r\n\t}\r\n\treturn supports;\r\n}());\r\n\r\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\r\n// https://github.com/chartjs/Chart.js/issues/4287\r\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\r\n\r\nfunction addListener(node, type, listener) {\r\n\tnode.addEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction removeListener(node, type, listener) {\r\n\tnode.removeEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction createEvent(type, chart, x, y, nativeEvent) {\r\n\treturn {\r\n\t\ttype: type,\r\n\t\tchart: chart,\r\n\t\tnative: nativeEvent || null,\r\n\t\tx: x !== undefined ? x : null,\r\n\t\ty: y !== undefined ? y : null,\r\n\t};\r\n}\r\n\r\nfunction fromNativeEvent(event, chart) {\r\n\tvar type = EVENT_TYPES[event.type] || event.type;\r\n\tvar pos = helpers$1.getRelativePosition(event, chart);\r\n\treturn createEvent(type, chart, pos.x, pos.y, event);\r\n}\r\n\r\nfunction throttled(fn, thisArg) {\r\n\tvar ticking = false;\r\n\tvar args = [];\r\n\r\n\treturn function() {\r\n\t\targs = Array.prototype.slice.call(arguments);\r\n\t\tthisArg = thisArg || this;\r\n\r\n\t\tif (!ticking) {\r\n\t\t\tticking = true;\r\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tticking = false;\r\n\t\t\t\tfn.apply(thisArg, args);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction createDiv(cls) {\r\n\tvar el = document.createElement('div');\r\n\tel.className = cls || '';\r\n\treturn el;\r\n}\r\n\r\n// Implementation based on https://github.com/marcj/css-element-queries\r\nfunction createResizer(handler) {\r\n\tvar maxSize = 1000000;\r\n\r\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\r\n\t// https://github.com/chartjs/Chart.js/issues/5902\r\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\r\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\r\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\r\n\r\n\texpand.appendChild(createDiv());\r\n\tshrink.appendChild(createDiv());\r\n\r\n\tresizer.appendChild(expand);\r\n\tresizer.appendChild(shrink);\r\n\tresizer._reset = function() {\r\n\t\texpand.scrollLeft = maxSize;\r\n\t\texpand.scrollTop = maxSize;\r\n\t\tshrink.scrollLeft = maxSize;\r\n\t\tshrink.scrollTop = maxSize;\r\n\t};\r\n\r\n\tvar onScroll = function() {\r\n\t\tresizer._reset();\r\n\t\thandler();\r\n\t};\r\n\r\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\r\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\r\n\r\n\treturn resizer;\r\n}\r\n\r\n// https://davidwalsh.name/detect-node-insertion\r\nfunction watchForRender(node, handler) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\tvar proxy = expando.renderProxy = function(e) {\r\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\r\n\t\t\thandler();\r\n\t\t}\r\n\t};\r\n\r\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\taddListener(node, type, proxy);\r\n\t});\r\n\r\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\r\n\t// is removed then added back immediately (same animation frame?). Accessing the\r\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\r\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\r\n\t// https://github.com/chartjs/Chart.js/issues/4737\r\n\texpando.reflow = !!node.offsetParent;\r\n\r\n\tnode.classList.add(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction unwatchForRender(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar proxy = expando.renderProxy;\r\n\r\n\tif (proxy) {\r\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\t\tremoveListener(node, type, proxy);\r\n\t\t});\r\n\r\n\t\tdelete expando.renderProxy;\r\n\t}\r\n\r\n\tnode.classList.remove(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction addResizeListener(node, listener, chart) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\r\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\r\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\r\n\t\t\tvar w = container ? container.clientWidth : 0;\r\n\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\r\n\t\t\t\t// If the container size shrank during chart resize, let's assume\r\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\r\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\r\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\r\n\t\t\t\t// events are ignored during this whole 2 resize process.\r\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\r\n\t\t\t\t// twice in a frame (potential performance issue)\r\n\t\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\t}\r\n\t\t}\r\n\t}));\r\n\r\n\t// The resizer needs to be attached to the node parent, so we first need to be\r\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\r\n\twatchForRender(node, function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = node.parentNode;\r\n\t\t\tif (container && container !== resizer.parentNode) {\r\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\r\n\t\t\t}\r\n\r\n\t\t\t// The container size might have changed, let's reset the resizer state.\r\n\t\t\tresizer._reset();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction removeResizeListener(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar resizer = expando.resizer;\r\n\r\n\tdelete expando.resizer;\r\n\tunwatchForRender(node);\r\n\r\n\tif (resizer && resizer.parentNode) {\r\n\t\tresizer.parentNode.removeChild(resizer);\r\n\t}\r\n}\r\n\r\n/**\r\n * Injects CSS styles inline if the styles are not already present.\r\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the \n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Comment.vue?vue&type=template&id=e53e0b80&\"\nimport script from \"./Comment.vue?vue&type=script&lang=js&\"\nexport * from \"./Comment.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityFeed.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityFeed.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ActivityFeed.vue?vue&type=template&id=7ef0e43e&\"\nimport script from \"./ActivityFeed.vue?vue&type=script&lang=js&\"\nexport * from \"./ActivityFeed.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-list-group',{attrs:{\"flush\":\"\",\"data-toggle\":\"checklist\"}},_vm._l((_vm.items),function(item){\nvar _obj;\nreturn _c('b-list-group-item',{key:item.title,staticClass:\"px-0\"},[_c('div',{staticClass:\"checklist-item\",class:( _obj = {'checklist-item-checked': item.done}, _obj[(\"checklist-item-\" + (item.checkType))] = item.checkType, _obj )},[_c('div',{staticClass:\"checklist-info\"},[_c('h5',{staticClass:\"checklist-title mb-0\"},[_vm._v(_vm._s(item.title))]),_c('small',[_vm._v(_vm._s(item.description))])]),_c('div',[_c('b-form-checkbox',{class:(\"custom-checkbox-\" + (item.checkType)),model:{value:(item.done),callback:function ($$v) {_vm.$set(item, \"done\", $$v)},expression:\"item.done\"}})],1)])])}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TaskList.vue?vue&type=template&id=5846fd30&\"\nimport script from \"./TaskList.vue?vue&type=script&lang=js&\"\nexport * from \"./TaskList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-list-group',{staticClass:\"my--3\",attrs:{\"flush\":\"\"}},_vm._l((_vm.users),function(user){return _c('b-list-group-item',{key:user.id,staticClass:\"px-0\"},[_c('b-row',{attrs:{\"align-v\":\"center\"}},[_c('b-col',{attrs:{\"cols\":\"auto\"}},[_c('a',{staticClass:\"avatar rounded-circle\",attrs:{\"href\":\"#\"}},[_c('b-img',{attrs:{\"alt\":\"Image placeholder\",\"src\":user.img}})],1)]),_c('b-col',{staticClass:\"ml--2\"},[_c('h4',{staticClass:\"mb-0\"},[_c('a',{attrs:{\"href\":\"#!\"}},[_vm._v(_vm._s(user.name))])]),_c('span',{class:(\"text-\" + (user.statusType))},[_vm._v(\"● \")]),_c('small',[_vm._v(_vm._s(user.status))])]),_c('b-col',{attrs:{\"cols\":\"auto\"}},[_c('base-button',{attrs:{\"type\":\"primary\",\"size\":\"sm\"}},[_vm._v(\"Add\")])],1)],1)],1)}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserList.vue?vue&type=template&id=acc1b3b8&\"\nimport script from \"./UserList.vue?vue&type=script&lang=js&\"\nexport * from \"./UserList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"body-class\":\"p-0\",\"header-class\":\"border-0\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h3',{staticClass:\"mb-0\"},[_vm._v(\"Light table\")])]},proxy:true}])},[_c('el-table',{staticClass:\"table-responsive table-flush\",attrs:{\"header-row-class-name\":\"thead-light\",\"data\":_vm.projects.slice(0, _vm.itemLimit)}},[_c('el-table-column',{attrs:{\"label\":\"Project\",\"min-width\":\"310px\",\"prop\":\"name\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('b-media',{staticClass:\"align-items-center\",attrs:{\"no-body\":\"\"}},[_c('a',{staticClass:\"avatar rounded-circle mr-3\",attrs:{\"href\":\"#\"}},[_c('b-img',{attrs:{\"alt\":\"Image placeholder\",\"src\":row.img}})],1),_c('b-media-body',[_c('span',{staticClass:\"font-weight-600 name mb-0 text-sm\"},[_vm._v(_vm._s(row.title))])])],1)]}}])}),_c('el-table-column',{attrs:{\"label\":\"Budget\",\"prop\":\"budget\",\"min-width\":\"140px\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"Status\",\"min-width\":\"170px\",\"prop\":\"status\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('badge',{staticClass:\"badge-dot mr-4\",attrs:{\"type\":\"\"}},[_c('i',{class:(\"bg-\" + (row.statusType))}),_c('span',{staticClass:\"status\"},[_vm._v(_vm._s(row.status))])])]}}])}),_c('el-table-column',{attrs:{\"label\":\"Users\",\"min-width\":\"190px\"}},[_c('div',{staticClass:\"avatar-group\"},[_c('a',{staticClass:\"avatar avatar-sm rounded-circle\",attrs:{\"href\":\"#\",\"data-toggle\":\"tooltip\",\"data-original-title\":\"Ryan Tompson\"}},[_c('img',{attrs:{\"alt\":\"Image placeholder\",\"src\":\"img/theme/team-1.jpg\"}})]),_c('a',{staticClass:\"avatar avatar-sm rounded-circle\",attrs:{\"href\":\"#\",\"data-toggle\":\"tooltip\",\"data-original-title\":\"Romina Hadid\"}},[_c('img',{attrs:{\"alt\":\"Image placeholder\",\"src\":\"img/theme/team-2.jpg\"}})]),_c('a',{staticClass:\"avatar avatar-sm rounded-circle\",attrs:{\"href\":\"#\",\"data-toggle\":\"tooltip\",\"data-original-title\":\"Alexander Smith\"}},[_c('img',{attrs:{\"alt\":\"Image placeholder\",\"src\":\"img/theme/team-3.jpg\"}})]),_c('a',{staticClass:\"avatar avatar-sm rounded-circle\",attrs:{\"href\":\"#\",\"data-toggle\":\"tooltip\",\"data-original-title\":\"Jessica Doe\"}},[_c('img',{attrs:{\"alt\":\"Image placeholder\",\"src\":\"img/theme/team-4.jpg\"}})])])]),_c('el-table-column',{attrs:{\"label\":\"Completion\",\"prop\":\"completion\",\"min-width\":\"240px\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('div',{staticClass:\"d-flex align-items-center\"},[_c('span',{staticClass:\"completion mr-2\"},[_vm._v(_vm._s(row.completion)+\"%\")]),_c('div',[_c('base-progress',{attrs:{\"type\":row.statusType,\"value\":row.completion}})],1)])]}}])}),_c('el-table-column',{attrs:{\"min-width\":\"180px\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('el-dropdown',{staticClass:\"dropdown\",attrs:{\"trigger\":\"click\"}},[_c('span',{staticClass:\"btn btn-sm btn-icon-only text-light\"},[_c('i',{staticClass:\"fas fa-ellipsis-v mt-2\"})]),_c('el-dropdown-menu',{staticClass:\"dropdown-menu dropdown-menu-arrow show\",attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('b-dropdown-item',[_vm._v(\"Action\")]),_c('b-dropdown-item',[_vm._v(\"Another action\")]),_c('b-dropdown-item',[_vm._v(\"Something else here\")])],1)],1)]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LightTable.vue?vue&type=template&id=c0b23534&\"\nimport script from \"./LightTable.vue?vue&type=script&lang=js&\"\nexport * from \"./LightTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"body-class\":\"p-0\",\"header-class\":\"border-0\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('b-row',{attrs:{\"align-v\":\"center\"}},[_c('b-col',[_c('h3',{staticClass:\"mb-0\"},[_vm._v(\"Social traffic\")])]),_c('b-col',{staticClass:\"text-right\"},[_c('base-button',{attrs:{\"size\":\"sm\",\"type\":\"primary\"}},[_vm._v(\"See all\")])],1)],1)]},proxy:true}])},[_c('el-table',{staticClass:\"table-responsive table\",attrs:{\"data\":_vm.tableData,\"header-row-class-name\":\"thead-light\"}},[_c('el-table-column',{attrs:{\"label\":\"Referral\",\"min-width\":\"115px\",\"prop\":\"name\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('div',{staticClass:\"font-weight-600\"},[_vm._v(_vm._s(row.name))])]}}])}),_c('el-table-column',{attrs:{\"label\":\"Visitors\",\"min-width\":\"110px\",\"prop\":\"visitors\"}}),_c('el-table-column',{attrs:{\"min-width\":\"220px\",\"prop\":\"progress\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('div',{staticClass:\"d-flex align-items-center\"},[_c('span',{staticClass:\"mr-2\"},[_vm._v(_vm._s(row.progress)+\"%\")]),_c('base-progress',{attrs:{\"type\":row.progressType,\"value\":row.progress}})],1)]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocialTrafficTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocialTrafficTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SocialTrafficTable.vue?vue&type=template&id=869c4f6e&\"\nimport script from \"./SocialTrafficTable.vue?vue&type=script&lang=js&\"\nexport * from \"./SocialTrafficTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"body-class\":\"p-0\",\"header-class\":\"border-0\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('b-row',{attrs:{\"align-v\":\"center\"}},[_c('b-col',[_c('h3',{staticClass:\"mb-0\"},[_vm._v(\"Page visits\")])]),_c('b-col',{staticClass:\"text-right\"},[_c('a',{staticClass:\"btn btn-sm btn-primary\",attrs:{\"href\":\"#!\"}},[_vm._v(\"See all\")])])],1)]},proxy:true}])},[_c('el-table',{staticClass:\"table-responsive table\",attrs:{\"data\":_vm.tableData,\"header-row-class-name\":\"thead-light\"}},[_c('el-table-column',{attrs:{\"label\":\"Page name\",\"sortable\":\"\",\"min-width\":\"130px\",\"prop\":\"page\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('div',{staticClass:\"font-weight-600\"},[_vm._v(_vm._s(row.page))])]}}])}),_c('el-table-column',{attrs:{\"label\":\"Visitors\",\"sortable\":\"\",\"min-width\":\"70px\",\"prop\":\"visitors\"}}),_c('el-table-column',{attrs:{\"label\":\"Unique users\",\"sortable\":\"\",\"min-width\":\"90px\",\"prop\":\"unique\"}}),_c('el-table-column',{attrs:{\"label\":\"Bounce rate\",\"sortable\":\"\",\"min-width\":\"90px\",\"prop\":\"bounceRate\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('i',{staticClass:\"fas fa-arrow-up text-success mr-3\",class:row.bounceRateDirection === 'up' ? 'text-success': 'text-danger'}),_vm._v(\"\\n \"+_vm._s(row.bounceRate)+\"\\n \")]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageVisitsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageVisitsTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PageVisitsTable.vue?vue&type=template&id=309c7e36&\"\nimport script from \"./PageVisitsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./PageVisitsTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=dd9fca16&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('base-header',{staticClass:\"pb-6\",attrs:{\"type\":\"\"}},[_c('b-row',{staticClass:\"py-4\",attrs:{\"align-v\":\"center\"}},[_c('b-col',{attrs:{\"lg\":\"6\",\"cols\":\"7\"}},[_c('h6',{staticClass:\"h2 d-inline-block mb-0\"},[_vm._v(_vm._s(_vm.language_terms['DASHBOARD']))]),_c('nav',{staticClass:\"d-none d-md-inline-block ml-md-4\",attrs:{\"aria-label\":\"breadcrumb\"}},[_c('b-breadcrumb',{staticClass:\"breadcrumb-links\"},[_c('b-breadcrumb-item',[_c('router-link',{attrs:{\"to\":\"/\"}},[_c('i',{staticClass:\"fas fa-home\"})])],1),_c('b-breadcrumb-item',[_c('a',{attrs:{\"href\":\"#\"}},[_vm._v(_vm._s(_vm.language_terms['DASHBOARD']))])])],1)],1)])],1),_c('loading',{attrs:{\"active\":_vm.loading,\"color\":\"#007bff\",\"width\":128,\"height\":128,\"loader\":\"dots\",\"can-cancel\":true,\"is-full-page\":true},on:{\"update:active\":function($event){_vm.loading=$event}}}),(0)?_c('b-row',_vm._l((_vm.dashboard_summary.cards),function(card,index){return _c('b-col',{key:index,attrs:{\"xl\":\"3\",\"md\":\"6\"}},[_c('b-card',{class:card.class,attrs:{\"no-body\":\"\"}},[_c('b-card-body',[_c('b-row',[_c('b-col',[_c('b-card-title',{staticClass:\"text-uppercase text-muted mb-0 text-white\",attrs:{\"title-tag\":\"h5\"}},[_vm._v(_vm._s(_vm.language_terms['APPROVAL_REQUESTS']))]),_c('span',{staticClass:\"h2 font-weight-bold mb-0 text-white\"},[_vm._v(_vm._s(card.stats))]),_c('base-progress',{staticClass:\"progress-xs mt-3 mb-0\",attrs:{\"type\":\"success\",\"value\":30}})],1)],1),_c('p',{staticClass:\"mt-3 mb-0 text-sm\"},[_c('a',{staticClass:\"text-nowrap text-white font-weight-600\",attrs:{\"href\":\"javascript:void(0)\"},on:{\"click\":function($event){return _vm.viewDetails(card.details_page_url)}}},[_vm._v(_vm._s(_vm.language_terms['SEE_DETAILS']))])])],1)],1)],1)}),1):_vm._e()],1),(1)?_c('b-container',{staticClass:\"mt--6\",attrs:{\"fluid\":\"\"}},[(_vm.dashboard_summary.expired_reservations.length > 0)?_c('b-row',[_c('b-col',{attrs:{\"sm\":\"12\"}},[_c('expiredReservations',{attrs:{\"title\":'Expired Reservations (' + _vm.dashboard_summary.expired_reservations.length + ')',\"items\":_vm.dashboard_summary.expired_reservations,\"url\":'/sales/sales-quotations'}})],1)],1):_vm._e(),(0)?_c('b-card-group',{staticClass:\"flex-column flex-xl-row\",attrs:{\"deck\":\"\"}},[_c('card',[_c('b-row',{attrs:{\"slot\":\"header\",\"align-v\":\"center\"},slot:\"header\"},[_c('b-col',[_c('h6',{staticClass:\"text-uppercase text-muted ls-1 mb-1\"},[_vm._v(\"Overview\")]),_c('h5',{staticClass:\"h3 mb-0\"},[_vm._v(\"Sales value\")])])],1),_c('line-chart',{ref:\"bigChart\",attrs:{\"height\":350,\"chart-data\":_vm.bigLineChart.chartData,\"extra-options\":_vm.bigLineChart.extraOptions}})],1),_c('card',{attrs:{\"header-classes\":\"bg-transparent\"}},[_c('b-row',{attrs:{\"slot\":\"header\",\"align-v\":\"center\"},slot:\"header\"},[_c('b-col',[_c('h6',{staticClass:\"text-uppercase text-muted ls-1 mb-1\"},[_vm._v(\"Performance\")]),_c('h5',{staticClass:\"h3 mb-0\"},[_vm._v(\"Total orders\")])])],1),_c('bar-chart',{ref:\"barChart\",attrs:{\"height\":350,\"chart-data\":_vm.redBarChart.chartData}})],1)],1):_vm._e(),_c('b-card-group',{staticClass:\"flex-column flex-xl-row\",attrs:{\"deck\":\"\"}})],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"no-body\":\"\"}},[_c('b-card-header',[_c('h5',{staticClass:\"h3 mb-0\"},[_vm._v(\"Team members\")])]),(_vm.showSearch)?_c('b-card-header',{staticClass:\"py-0\"},[_c('b-form',[_c('b-form-group',{staticClass:\"mb-0\"},[_c('base-input',{staticClass:\"input-group-lg input-group-flush mb-0\",attrs:{\"prepend-icon\":\"fas fa-search\",\"placeholder\":\"Search\",\"type\":\"search\"},model:{value:(_vm.membersSearch),callback:function ($$v) {_vm.membersSearch=$$v},expression:\"membersSearch\"}})],1)],1)],1):_vm._e(),_c('b-card-body',[_c('b-list-group',{staticClass:\"list my--3\",attrs:{\"flush\":\"\"}},_vm._l((_vm.members),function(member){return _c('b-list-group-item',{key:member.image,staticClass:\"list-group-item px-0\"},[_c('b-row',{attrs:{\"align-v\":\"center\"}},[_c('b-col',{attrs:{\"md\":\"auto\"}},[_c('a',{staticClass:\"avatar\",attrs:{\"href\":\"#\"}},[_c('b-img',{attrs:{\"rounded\":\"circle\",\"alt\":\"Image placeholder\",\"src\":member.image}})],1)]),_c('b-col',{staticClass:\"ml--2\"},[_c('h4',{staticClass:\"mb-0\"},[_c('a',{attrs:{\"href\":\"#!\"}},[_vm._v(_vm._s(member.name))])]),_c('span',{class:(\"text-\" + (member.statusType))},[_vm._v(\"● \")]),_c('small',[_vm._v(_vm._s(member.status))])]),_c('b-col',{attrs:{\"md\":\"auto\"}},[_c('b-button',{attrs:{\"type\":\"button\",\"size\":\"sm\",\"variany\":\"primary\"}},[_vm._v(\"Add\")])],1)],1)],1)}),1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MembersCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MembersCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MembersCard.vue?vue&type=template&id=6ea1b655&\"\nimport script from \"./MembersCard.vue?vue&type=script&lang=js&\"\nexport * from \"./MembersCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('card',{attrs:{\"body-classes\":\"p-0\"}},[_c('h5',{staticClass:\"h3 mb-0\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_vm._v(\"To do list\")]),_c('b-list-group',{attrs:{\"flush\":\"\",\"data-toggle\":\"checklist\"}},_vm._l((_vm.items),function(item){\nvar _obj;\nreturn _c('b-list-group-item',{key:item.title,staticClass:\"checklist-entry flex-column align-items-start py-4 px-4\"},[_c('div',{staticClass:\"checklist-item\",class:( _obj = {'checklist-item-checked': item.done}, _obj[(\"checklist-item-\" + (item.checkType))] = item.checkType, _obj )},[_c('div',{staticClass:\"checklist-info\"},[_c('h5',{staticClass:\"checklist-title mb-0\"},[_vm._v(_vm._s(item.title))]),_c('small',[_vm._v(_vm._s(item.description))])]),_c('div',[_c('b-form-checkbox',{class:(\"custom-checkbox-\" + (item.checkType)),model:{value:(item.done),callback:function ($$v) {_vm.$set(item, \"done\", $$v)},expression:\"item.done\"}})],1)])])}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TaskList.vue?vue&type=template&id=611d8d6a&\"\nimport script from \"./TaskList.vue?vue&type=script&lang=js&\"\nexport * from \"./TaskList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"body-class\":\"p-0\",\"header-class\":\"border-0\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('b-row',{attrs:{\"align-v\":\"center\"}},[_c('b-col',[_c('h3',{staticClass:\"mb-0\"},[_vm._v(_vm._s(_vm.title))])]),_c('b-col',{staticClass:\"text-right\"},[_c('a',{staticClass:\"btn btn-sm btn-primary\",attrs:{\"href\":\"javascript:void(0)\"},on:{\"click\":_vm.viewAll}},[_vm._v(_vm._s(_vm.language_terms['VIEW_ALL']))])])],1)]},proxy:true}])},[_c('loading',{attrs:{\"active\":_vm.loading,\"color\":\"#007bff\",\"width\":128,\"height\":128,\"loader\":\"dots\",\"can-cancel\":true,\"is-full-page\":true},on:{\"update:active\":function($event){_vm.loading=$event}}}),_c('el-table',{staticClass:\"table-responsive table\",attrs:{\"data\":_vm.items,\"header-row-class-name\":\"thead-light\"},on:{\"row-click\":_vm.clickOnDetails}},[_c('el-table-column',{attrs:{\"label\":_vm.language_terms['DOCUMENT'],\"sortable\":\"\",\"min-width\":\"70px\",\"prop\":\"code\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('div',{staticClass:\"font-weight-600\"},[_vm._v(_vm._s(row.code))]),_c('div',[_vm._v(_vm._s(row.date))])]}}])}),_c('el-table-column',{attrs:{\"label\":_vm.language_terms['CUSTOMER'],\"sortable\":\"\",\"min-width\":\"70px\",\"prop\":\"contact_name\"}}),_c('el-table-column',{attrs:{\"label\":_vm.language_terms['SALESPERSON'],\"sortable\":\"\",\"min-width\":\"70px\",\"prop\":\"salesperson_contact_name\"}}),_c('el-table-column',{attrs:{\"label\":_vm.language_terms['DUE_DATE'],\"sortable\":\"\",\"min-width\":\"55px\",\"prop\":\"due_date\"}}),_c('el-table-column',{attrs:{\"label\":_vm.language_terms['NETT_AMOUNT'],\"sortable\":\"\",\"prop\":\"nett_amount\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('div',[_vm._v(_vm._s(row.currency_prefix)+\" \"+_vm._s(row.nett_amount))])]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./quotations.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./quotations.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./quotations.vue?vue&type=template&id=d0a4da42&\"\nimport script from \"./quotations.vue?vue&type=script&lang=js&\"\nexport * from \"./quotations.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"body-class\":\"p-0\",\"header-class\":\"border-0\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('b-row',{attrs:{\"align-v\":\"center\"}},[_c('b-col',[_c('h3',{staticClass:\"mb-0\"},[_vm._v(_vm._s(_vm.title))])])],1)]},proxy:true}])},[_c('loading',{attrs:{\"active\":_vm.loading,\"color\":\"#007bff\",\"width\":128,\"height\":128,\"loader\":\"dots\",\"can-cancel\":true,\"is-full-page\":true},on:{\"update:active\":function($event){_vm.loading=$event}}}),_c('el-table',{staticClass:\"table-responsive table\",attrs:{\"data\":_vm.items,\"header-row-class-name\":\"thead-light\"},on:{\"row-click\":_vm.clickOnDetails}},[_c('el-table-column',{attrs:{\"label\":\"Product\",\"sortable\":\"\",\"min-width\":\"200px\",\"prop\":\"code\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('div',{staticClass:\"font-weight-600\"},[_vm._v(_vm._s(row.product_code))]),_c('div',[_vm._v(_vm._s(row.product_name))])]}}])}),_c('el-table-column',{attrs:{\"label\":\"Qty\",\"sortable\":\"\",\"min-width\":\"50px\",\"prop\":\"qty\"}}),_c('el-table-column',{attrs:{\"label\":\"Customer\",\"sortable\":\"\",\"min-width\":\"150px\",\"prop\":\"customer_name\"}}),_c('el-table-column',{attrs:{\"label\":\"Expiry Date\",\"sortable\":\"\",\"min-width\":\"60px\",\"prop\":\"date_expired\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n ","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./expiredReservations.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./expiredReservations.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./expiredReservations.vue?vue&type=template&id=464dc2f4&\"\nimport script from \"./expiredReservations.vue?vue&type=script&lang=js&\"\nexport * from \"./expiredReservations.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{staticClass:\"widget-calendar\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',[_c('b-row',{attrs:{\"align-v\":\"center\"}},[_c('b-col',{attrs:{\"cols\":\"8\"}},[_c('h5',{staticClass:\"h3 mb-0\"},[_vm._v(\"Real time\")])]),_c('b-col',{staticClass:\"text-right\",attrs:{\"cols\":\"4\"}},[_c('a',{staticClass:\"btn btn-sm btn-neutral\",attrs:{\"href\":\"#!\"}},[_vm._v(\"Action\")])])],1)],1),_c('b-card-body',[_c('world-map',{staticClass:\"vector-map vector-map-sm\",attrs:{\"map-data\":_vm.mapData,\"points\":_vm.points}}),_c('b-list-group',{staticClass:\"list my--3\",attrs:{\"flush\":\"\"}},[_c('b-list-group-item',{staticClass:\"px-0\"},[_c('b-row',{attrs:{\"align-v\":\"center\"}},[_c('b-col',{attrs:{\"md\":\"auto\"}},[_c('img',{attrs:{\"src\":\"img/icons/flags/US.png\",\"alt\":\"Country flag\"}})]),_c('b-col',[_c('small',[_vm._v(\"Country:\")]),_c('h5',{staticClass:\"mb-0\"},[_vm._v(\"United States\")])]),_c('b-col',[_c('small',[_vm._v(\"Visits:\")]),_c('h5',{staticClass:\"mb-0\"},[_vm._v(\"2500\")])]),_c('b-col',[_c('small',[_vm._v(\"Bounce:\")]),_c('h5',{staticClass:\"mb-0\"},[_vm._v(\"30%\")])])],1)],1),_c('b-list-group-item',{staticClass:\"px-0\"},[_c('b-row',{attrs:{\"align-v\":\"center\"}},[_c('b-col',{attrs:{\"md\":\"auto\"}},[_c('img',{attrs:{\"src\":\"img/icons/flags/DE.png\",\"alt\":\"Country flag\"}})]),_c('b-col',[_c('small',[_vm._v(\"Country:\")]),_c('h5',{staticClass:\"mb-0\"},[_vm._v(\"Germany\")])]),_c('b-col',[_c('small',[_vm._v(\"Visits:\")]),_c('h5',{staticClass:\"mb-0\"},[_vm._v(\"2500\")])]),_c('b-col',[_c('small',[_vm._v(\"Bounce:\")]),_c('h5',{staticClass:\"mb-0\"},[_vm._v(\"30%\")])])],1)],1),_c('b-list-group-item',{staticClass:\"px-0\"},[_c('b-row',{attrs:{\"align-v\":\"center\"}},[_c('b-col',{attrs:{\"md\":\"auto\"}},[_c('img',{attrs:{\"src\":\"img/icons/flags/GB.png\",\"alt\":\"Country flag\"}})]),_c('b-col',[_c('small',[_vm._v(\"Country:\")]),_c('h5',{staticClass:\"mb-0\"},[_vm._v(\"Great Britain\")])]),_c('b-col',[_c('small',[_vm._v(\"Visits:\")]),_c('h5',{staticClass:\"mb-0\"},[_vm._v(\"2500\")])]),_c('b-col',[_c('small',[_vm._v(\"Bounce:\")]),_c('h5',{staticClass:\"mb-0\"},[_vm._v(\"30%\")])])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VectorMapCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VectorMapCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./VectorMapCard.vue?vue&type=template&id=a88e5304&\"\nimport script from \"./VectorMapCard.vue?vue&type=script&lang=js&\"\nexport * from \"./VectorMapCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlternativeDashboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlternativeDashboard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AlternativeDashboard.vue?vue&type=template&id=96e03962&\"\nimport script from \"./AlternativeDashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./AlternativeDashboard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-list-group',{staticClass:\"my--3\",attrs:{\"flush\":\"\"}},_vm._l((_vm.items.slice(0, _vm.itemLimit)),function(item){return _c('b-list-group-item',{key:item.id,staticClass:\"px-0\"},[_c('b-row',{attrs:{\"align-v\":\"center\"}},[_c('b-col',{attrs:{\"cols\":\"auto\"}},[_c('a',{staticClass:\"avatar\",attrs:{\"href\":\"#\"}},[_c('b-img',{attrs:{\"alt\":\"Image placeholder\",\"rounded\":\"circle\",\"src\":item.img}})],1)]),_c('b-col',[_c('h5',[_vm._v(_vm._s(item.title))]),_c('base-progress',{staticClass:\"mb-0\",attrs:{\"type\":item.progressType,\"value\":item.progress}})],1)],1)],1)}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressTrackList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressTrackList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProgressTrackList.vue?vue&type=template&id=e74b3248&\"\nimport script from \"./ProgressTrackList.vue?vue&type=script&lang=js&\"\nexport * from \"./ProgressTrackList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}